<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>django/conf/locale/fi/LC_MESSAGES/django.mo</filename>
    </added>
    <added>
      <filename>django/conf/locale/fi/LC_MESSAGES/django.po</filename>
    </added>
    <added>
      <filename>django/conf/locale/fi/LC_MESSAGES/djangojs.mo</filename>
    </added>
    <added>
      <filename>django/conf/locale/fi/LC_MESSAGES/djangojs.po</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -44,6 +44,7 @@ answer newbie questions, and generally made Django that much better:
 
     akaihola
     Andreas
+    ant9000@netwise.it
     David Ascher &lt;http://ascher.ca/&gt;
     Arthur &lt;avandorp@gmail.com&gt;
     Jiri Barton
@@ -67,15 +68,19 @@ answer newbie questions, and generally made Django that much better:
     Alex Dedul
     deric@monowerks.com
     dne@mayonnaise.net
+    Maximillian Dornseif &lt;md@hudora.de&gt;
+    dummy@habmalnefrage.de
     Jeremy Dunck &lt;http://dunck.us/&gt;
     Andy Dustman &lt;farcepest@gmail.com&gt;
     Clint Ecker
+    favo@exoweb.net
     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
+    heckj@mac.com
     hipertracker@gmail.com
     Ian Holsman &lt;http://feh.holsman.net/&gt;
     Kieran Holland &lt;http://www.kieranholland.com&gt;
@@ -95,6 +100,7 @@ answer newbie questions, and generally made Django that much better:
     lakin.wecker@gmail.com
     Stuart Langridge &lt;http://www.kryogenix.org/&gt;
     Eugene Lazutkin &lt;http://lazutkin.com/blog/&gt;
+    Jeong-Min Lee
     Christopher Lenz &lt;http://www.cmlenz.net/&gt;
     limodou
     Martin Maney &lt;http://www.chipy.org/Martin_Maney&gt;
@@ -121,11 +127,13 @@ answer newbie questions, and generally made Django that much better:
     Daniel Poelzleithner &lt;http://poelzi.org/&gt;
     J. Rademaker
     Michael Radziej &lt;mir@noris.de&gt;
+    ramiro
     Brian Ray &lt;http://brianray.chipy.org/&gt;
     rhettg@gmail.com
     Oliver Rutherfurd &lt;http://rutherfurd.net/&gt;
     Ivan Sagalaev (Maniac) &lt;http://www.softwaremaniacs.org/&gt;
     David Schein
+    serbaut@gmail.com
     Pete Shinners &lt;pete@shinners.org&gt;
     SmileyChris &lt;smileychris@gmail.com&gt;
     sopel</diff>
      <filename>AUTHORS</filename>
    </modified>
    <modified>
      <diff>@@ -25,10 +25,10 @@ http://code.djangoproject.com/newticket
 To get more help:
 
     * Join the #django channel on irc.freenode.net. Lots of helpful people
-      hang out there. Read the archives at http://loglibrary.com/179 .
+      hang out there. Read the archives at http://simon.bofh.ms/logger/django/ .
 
     * Join the django-users mailing list, or read the archives, at
-      http://groups-beta.google.com/group/django-users.
+      http://groups.google.com/group/django-users.
 
 To contribute to Django:
 </diff>
      <filename>README</filename>
    </modified>
    <modified>
      <diff>@@ -46,6 +46,7 @@ LANGUAGES = (
     ('en', gettext_noop('English')),
     ('es', gettext_noop('Spanish')),
     ('es_AR', gettext_noop('Argentinean Spanish')),
+    ('fi', gettext_noop('Finnish')),
     ('fr', gettext_noop('French')),
     ('gl', gettext_noop('Galician')),
     ('hu', gettext_noop('Hungarian')),
@@ -271,6 +272,10 @@ CACHE_MIDDLEWARE_KEY_PREFIX = ''
 
 COMMENTS_ALLOW_PROFANITIES = False
 
+# The profanities that will trigger a validation error in the
+# 'hasNoProfanities' validator. All of these should be in lower-case.
+PROFANITIES_LIST = ['asshat', 'asshead', 'asshole', 'cunt', 'fuck', 'gook', 'nigger', 'shit']
+
 # The group ID that designates which users are banned.
 # Set to None if you're not using it.
 COMMENTS_BANNED_USERS_GROUP = None</diff>
      <filename>django/conf/global_settings.py</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>django/conf/locale/es_AR/LC_MESSAGES/django.mo</filename>
    </modified>
    <modified>
      <diff>@@ -8,8 +8,8 @@ msgid &quot;&quot;
 msgstr &quot;&quot;
 &quot;Project-Id-Version: django\n&quot;
 &quot;Report-Msgid-Bugs-To: \n&quot;
-&quot;POT-Creation-Date: 2006-06-19 11:19-0300\n&quot;
-&quot;PO-Revision-Date: 2006-05-16 10:05-0300\n&quot;
+&quot;POT-Creation-Date: 2006-08-18 18:57-0300\n&quot;
+&quot;PO-Revision-Date: 2006-08-21 18:06-0300\n&quot;
 &quot;Last-Translator: Ramiro Morales &lt;rm0@gmx.net&gt;\n&quot;
 &quot;Language-Team: Spanish &lt;es@li.org&gt;\n&quot;
 &quot;MIME-Version: 1.0\n&quot;
@@ -17,15 +17,15 @@ msgstr &quot;&quot;
 &quot;Content-Transfer-Encoding: 8bit\n&quot;
 &quot;Plural-Forms:  nplurals=2; plural=(n != 1);\n&quot;
 
-#: contrib/contenttypes/models.py:25
+#: contrib/contenttypes/models.py:20
 msgid &quot;python model class name&quot;
 msgstr &quot;nombre de la clase python del modelo&quot;
 
-#: contrib/contenttypes/models.py:28
+#: contrib/contenttypes/models.py:23
 msgid &quot;content type&quot;
 msgstr &quot;tipo de contenido&quot;
 
-#: contrib/contenttypes/models.py:29
+#: contrib/contenttypes/models.py:24
 msgid &quot;content types&quot;
 msgstr &quot;tipos de contenido&quot;
 
@@ -33,79 +33,103 @@ msgstr &quot;tipos de contenido&quot;
 msgid &quot;Logged out&quot;
 msgstr &quot;Sesi&#243;n cerrada&quot;
 
-#: contrib/auth/models.py:13 contrib/auth/models.py:26
+#: contrib/auth/models.py:38 contrib/auth/models.py:57
 msgid &quot;name&quot;
 msgstr &quot;nombre&quot;
 
-#: contrib/auth/models.py:15
+#: contrib/auth/models.py:40
 msgid &quot;codename&quot;
 msgstr &quot;nombre en c&#243;digo&quot;
 
-#: contrib/auth/models.py:17
+#: contrib/auth/models.py:42
 msgid &quot;permission&quot;
 msgstr &quot;permiso&quot;
 
-#: contrib/auth/models.py:18 contrib/auth/models.py:27
+#: contrib/auth/models.py:43 contrib/auth/models.py:58
 msgid &quot;permissions&quot;
 msgstr &quot;permisos&quot;
 
-#: contrib/auth/models.py:29
+#: contrib/auth/models.py:60
 msgid &quot;group&quot;
 msgstr &quot;grupo&quot;
 
-#: contrib/auth/models.py:30 contrib/auth/models.py:65
+#: contrib/auth/models.py:61 contrib/auth/models.py:100
 msgid &quot;groups&quot;
 msgstr &quot;grupos&quot;
 
-#: contrib/auth/models.py:55
+#: contrib/auth/models.py:90
 msgid &quot;username&quot;
 msgstr &quot;nombre de usuario&quot;
 
-#: contrib/auth/models.py:56
+#: contrib/auth/models.py:90
+msgid &quot;&quot;
+&quot;Required. 30 characters or fewer. Alphanumeric characters only (letters, &quot;
+&quot;digits and underscores).&quot;
+msgstr &quot;&quot;
+&quot;Requerido. Longitud m&#225;xima 30 caracteres alfanum&#233;ricos (letras, d&#237;gitos y &quot;
+&quot;guiones bajos).&quot;
+
+#: contrib/auth/models.py:91
 msgid &quot;first name&quot;
 msgstr &quot;nombre&quot;
 
-#: contrib/auth/models.py:57
+#: contrib/auth/models.py:92
 msgid &quot;last name&quot;
 msgstr &quot;apellido&quot;
 
-#: contrib/auth/models.py:58
+#: contrib/auth/models.py:93
 msgid &quot;e-mail address&quot;
 msgstr &quot;direcci&#243;n de correo&quot;
 
-#: contrib/auth/models.py:59
+#: contrib/auth/models.py:94
 msgid &quot;password&quot;
 msgstr &quot;contrase&#241;a&quot;
 
-#: contrib/auth/models.py:59
+#: contrib/auth/models.py:94
 msgid &quot;Use '[algo]$[salt]$[hexdigest]'&quot;
 msgstr &quot;Use '[algoritmo]$[salt]$[hexdigest]'&quot;
 
-#: contrib/auth/models.py:60
+#: contrib/auth/models.py:95
 msgid &quot;staff status&quot;
 msgstr &quot;es staff&quot;
 
-#: contrib/auth/models.py:60
+#: contrib/auth/models.py:95
 msgid &quot;Designates whether the user can log into this admin site.&quot;
 msgstr &quot;Indica si el usuario puede ingresar a este sitio de administraci&#243;n.&quot;
 
-#: contrib/auth/models.py:61
+#: contrib/auth/models.py:96
 msgid &quot;active&quot;
 msgstr &quot;activo&quot;
 
-#: contrib/auth/models.py:62
+#: contrib/auth/models.py:96
+msgid &quot;&quot;
+&quot;Designates whether this user can log into the Django admin. Unselect this &quot;
+&quot;instead of deleting accounts.&quot;
+msgstr &quot;&quot;
+&quot;Indica si el usuario puede ingresar al sitio de administraci&#243;n Django.&quot;
+&quot;Desactive este campo en lugar de eliminar usuarios.&quot;
+
+#: contrib/auth/models.py:97
 msgid &quot;superuser status&quot;
 msgstr &quot;es superusuario&quot;
 
-#: contrib/auth/models.py:63
+#: contrib/auth/models.py:97
+msgid &quot;&quot;
+&quot;Designates that this user has all permissions without explicitly assigning &quot;
+&quot;them.&quot;
+msgstr &quot;&quot;
+&quot;Indica que este usuario posee todos los permisos, sin asignarle los mismos &quot;
+&quot;expl&#237;citamente.&quot;
+
+#: contrib/auth/models.py:98
 msgid &quot;last login&quot;
 msgstr &quot;&#250;ltimo registro&quot;
 
-#: contrib/auth/models.py:64
+#: contrib/auth/models.py:99
 msgid &quot;date joined&quot;
 msgstr &quot;fecha de creaci&#243;n&quot;
 
-#: contrib/auth/models.py:66
+#: contrib/auth/models.py:101
 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;
@@ -113,39 +137,39 @@ msgstr &quot;&quot;
 &quot;Adem&#225;s de los permisos asignados manualmente, este usuario tambi&#233;n poseer&#225; &quot;
 &quot;todos los permisos de los grupos a los que pertenezca.&quot;
 
-#: contrib/auth/models.py:67
+#: contrib/auth/models.py:102
 msgid &quot;user permissions&quot;
 msgstr &quot;permisos de usuario&quot;
 
-#: contrib/auth/models.py:70
+#: contrib/auth/models.py:105
 msgid &quot;user&quot;
 msgstr &quot;usuario&quot;
 
-#: contrib/auth/models.py:71
+#: contrib/auth/models.py:106
 msgid &quot;users&quot;
 msgstr &quot;usuarios&quot;
 
-#: contrib/auth/models.py:76
+#: contrib/auth/models.py:111
 msgid &quot;Personal info&quot;
 msgstr &quot;Informaci&#243;n personal&quot;
 
-#: contrib/auth/models.py:77
+#: contrib/auth/models.py:112
 msgid &quot;Permissions&quot;
 msgstr &quot;Permisos&quot;
 
-#: contrib/auth/models.py:78
+#: contrib/auth/models.py:113
 msgid &quot;Important dates&quot;
 msgstr &quot;Fechas importantes&quot;
 
-#: contrib/auth/models.py:79
+#: contrib/auth/models.py:114
 msgid &quot;Groups&quot;
 msgstr &quot;Grupos&quot;
 
-#: contrib/auth/models.py:219
+#: contrib/auth/models.py:256
 msgid &quot;message&quot;
 msgstr &quot;mensaje&quot;
 
-#: contrib/auth/forms.py:30
+#: contrib/auth/forms.py:52
 msgid &quot;&quot;
 &quot;Your Web browser doesn't appear to have cookies enabled. Cookies are &quot;
 &quot;required for logging in.&quot;
@@ -153,8 +177,7 @@ msgstr &quot;&quot;
 &quot;Su navegador Web aparenta no tener cookies activas. Las cookies son un &quot;
 &quot;requerimiento para poder ingresar.&quot;
 
-#: contrib/auth/forms.py:36 contrib/auth/forms.py:43
-#: contrib/admin/views/decorators.py:9
+#: contrib/auth/forms.py:59 contrib/admin/views/decorators.py:10
 msgid &quot;&quot;
 &quot;Please enter a correct username and password. Note that both fields are case-&quot;
 &quot;sensitive.&quot;
@@ -162,7 +185,7 @@ msgstr &quot;&quot;
 &quot;Por favor ingrese un nombre de usuario y una contrase&#241;a correctos. Note que &quot;
 &quot;ambos campos son sensibles a may&#250;sculas/min&#250;sculas.&quot;
 
-#: contrib/auth/forms.py:45
+#: contrib/auth/forms.py:61
 msgid &quot;This account is inactive.&quot;
 msgstr &quot;Esta cuenta est&#225; inactiva&quot;
 
@@ -255,7 +278,7 @@ msgstr &quot;fecha/hora de env
 msgid &quot;is public&quot;
 msgstr &quot;es p&#250;blico&quot;
 
-#: contrib/comments/models.py:85 contrib/admin/views/doc.py:292
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304
 msgid &quot;IP address&quot;
 msgstr &quot;Direcci&#243;n IP&quot;
 
@@ -392,12 +415,12 @@ msgstr &quot;ID de comentario no v
 msgid &quot;No voting for yourself&quot;
 msgstr &quot;No puedes votarte t&#250; mismo&quot;
 
-#: contrib/comments/views/comments.py:28
+#: contrib/comments/views/comments.py:27
 msgid &quot;&quot;
 &quot;This rating is required because you've entered at least one other rating.&quot;
 msgstr &quot;Se precisa esta puntuaci&#243;n porque ha introducido al menos otra m&#225;s.&quot;
 
-#: contrib/comments/views/comments.py:112
+#: contrib/comments/views/comments.py:111
 #, python-format
 msgid &quot;&quot;
 &quot;This comment was posted by a user who has posted fewer than %(count)s &quot;
@@ -420,7 +443,7 @@ msgstr[1] &quot;&quot;
 &quot;\n&quot;
 &quot;%(text)s&quot;
 
-#: contrib/comments/views/comments.py:117
+#: contrib/comments/views/comments.py:116
 #, fuzzy, python-format
 msgid &quot;&quot;
 &quot;This comment was posted by a sketchy user:\n&quot;
@@ -431,24 +454,24 @@ msgstr &quot;&quot;
 &quot;\n&quot;
 &quot;%(text)s&quot;
 
-#: contrib/comments/views/comments.py:189
+#: contrib/comments/views/comments.py:188
 #: contrib/comments/views/comments.py:280
 msgid &quot;Only POSTs are allowed&quot;
 msgstr &quot;S&#243;lo se admiten POSTs&quot;
 
-#: contrib/comments/views/comments.py:193
+#: contrib/comments/views/comments.py:192
 #: contrib/comments/views/comments.py:284
 msgid &quot;One or more of the required fields wasn't submitted&quot;
 msgstr &quot;No se proporcion&#243; uno o m&#225;s de los siguientes campos requeridos&quot;
 
-#: contrib/comments/views/comments.py:197
+#: contrib/comments/views/comments.py:196
 #: contrib/comments/views/comments.py:286
 msgid &quot;Somebody tampered with the comment form (security violation)&quot;
 msgstr &quot;&quot;
 &quot;Alguien est&#225; jugando con el formulario de comentarios (violaci&#243;n de &quot;
 &quot;seguridad)&quot;
 
-#: contrib/comments/views/comments.py:207
+#: contrib/comments/views/comments.py:206
 #: contrib/comments/views/comments.py:292
 msgid &quot;&quot;
 &quot;The comment form had an invalid 'target' parameter -- the object ID was &quot;
@@ -467,12 +490,12 @@ msgid &quot;Your name:&quot;
 msgstr &quot;Su nombre:&quot;
 
 #: contrib/comments/templates/comments/freeform.html:5
-#: contrib/comments/templates/comments/form.html:27
+#: contrib/comments/templates/comments/form.html:28
 msgid &quot;Comment:&quot;
 msgstr &quot;Comentario:&quot;
 
-#: contrib/comments/templates/comments/freeform.html:9
-#: contrib/comments/templates/comments/form.html:32
+#: contrib/comments/templates/comments/freeform.html:10
+#: contrib/comments/templates/comments/form.html:35
 msgid &quot;Preview comment&quot;
 msgstr &quot;Previsualizar comentario&quot;
 
@@ -483,19 +506,10 @@ msgid &quot;Username:&quot;
 msgstr &quot;Usuario:&quot;
 
 #: contrib/comments/templates/comments/form.html:6
-#: contrib/admin/templates/admin/login.html:20
-msgid &quot;Password:&quot;
-msgstr &quot;Contrase&#241;a:&quot;
-
-#: contrib/comments/templates/comments/form.html:6
-msgid &quot;Forgotten your password?&quot;
-msgstr &quot;Olvid&#243; su contrase&#241;a?&quot;
-
-#: contrib/comments/templates/comments/form.html:8
 #: contrib/admin/templates/admin/object_history.html:3
 #: contrib/admin/templates/admin/change_list.html:5
 #: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/base.html:24
+#: contrib/admin/templates/admin/base.html:25
 #: contrib/admin/templates/admin/delete_confirmation.html:3
 #: contrib/admin/templates/registration/password_change_done.html:3
 #: contrib/admin/templates/registration/password_change_form.html:3
@@ -512,6 +526,15 @@ msgstr &quot;Olvid
 msgid &quot;Log out&quot;
 msgstr &quot;Cerrar sesi&#243;n&quot;
 
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid &quot;Password:&quot;
+msgstr &quot;Contrase&#241;a:&quot;
+
+#: contrib/comments/templates/comments/form.html:8
+msgid &quot;Forgotten your password?&quot;
+msgstr &quot;Olvid&#243; su contrase&#241;a?&quot;
+
 #: contrib/comments/templates/comments/form.html:12
 msgid &quot;Ratings&quot;
 msgstr &quot;Calificaciones&quot;
@@ -530,7 +553,7 @@ msgstr &quot;Opcional&quot;
 msgid &quot;Post a photo&quot;
 msgstr &quot;Enviar una foto&quot;
 
-#: contrib/flatpages/models.py:7 contrib/admin/views/doc.py:303
+#: contrib/flatpages/models.py:7 contrib/admin/views/doc.py:315
 msgid &quot;URL&quot;
 msgstr &quot;URL&quot;
 
@@ -559,11 +582,11 @@ msgstr &quot;nombre de plantilla&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;
+&quot;Example: 'flatpages/contact_page.html'. If this isn't provided, the system &quot;
+&quot;will use 'flatpages/default.html'.&quot;
 msgstr &quot;&quot;
-&quot;Ejemplo: 'flatpages/contact_page'. Si no lo proporciona, el sistema usar&#225; &quot;
-&quot;'flatpages/default'.&quot;
+&quot;Ejemplo: 'flatpages/contact_page.html'. Si no lo proporciona, el sistema &quot;
+&quot;usar&#225; 'flatpages/default.html'.&quot;
 
 #: contrib/flatpages/models.py:14
 msgid &quot;registration required&quot;
@@ -581,23 +604,23 @@ msgstr &quot;p
 msgid &quot;flat pages&quot;
 msgstr &quot;p&#225;ginas est&#225;ticas&quot;
 
-#: contrib/sessions/models.py:35
+#: contrib/sessions/models.py:51
 msgid &quot;session key&quot;
 msgstr &quot;clave de sesi&#243;n&quot;
 
-#: contrib/sessions/models.py:36
+#: contrib/sessions/models.py:52
 msgid &quot;session data&quot;
 msgstr &quot;datos de sesi&#243;n&quot;
 
-#: contrib/sessions/models.py:37
+#: contrib/sessions/models.py:53
 msgid &quot;expire date&quot;
 msgstr &quot;fecha de caducidad&quot;
 
-#: contrib/sessions/models.py:41
+#: contrib/sessions/models.py:57
 msgid &quot;session&quot;
 msgstr &quot;sesi&#243;n&quot;
 
-#: contrib/sessions/models.py:42
+#: contrib/sessions/models.py:58
 msgid &quot;sessions&quot;
 msgstr &quot;sesiones&quot;
 
@@ -695,12 +718,12 @@ msgstr &quot;entradas de registro&quot;
 msgid &quot;All dates&quot;
 msgstr &quot;Todas las fechas&quot;
 
-#: contrib/admin/views/decorators.py:23
+#: contrib/admin/views/decorators.py:24
 #: contrib/admin/templates/admin/login.html:25
 msgid &quot;Log in&quot;
 msgstr &quot;Identificarse&quot;
 
-#: contrib/admin/views/decorators.py:61
+#: contrib/admin/views/decorators.py:62
 msgid &quot;&quot;
 &quot;Please log in again, because your session has expired. Don't worry: Your &quot;
 &quot;submission has been saved.&quot;
@@ -708,7 +731,7 @@ msgstr &quot;&quot;
 &quot;Por favor, identif&#237;quese de nuevo porque su sesi&#243;n ha caducado. No se &quot;
 &quot;preocupe: se ha guardado su env&#237;o.&quot;
 
-#: contrib/admin/views/decorators.py:68
+#: contrib/admin/views/decorators.py:69
 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;
@@ -716,187 +739,253 @@ msgstr &quot;&quot;
 &quot;Parece que su navegador no est&#225; configurado para aceptar cookies. Act&#237;velas &quot;
 &quot;por favor, recargue esta p&#225;gina, e int&#233;ntelo de nuevo.&quot;
 
-#: contrib/admin/views/decorators.py:82
+#: contrib/admin/views/decorators.py:83
 msgid &quot;Usernames cannot contain the '@' character.&quot;
 msgstr &quot;Los nombres de usuario no pueden contener el car&#225;cter '@'.&quot;
 
-#: contrib/admin/views/decorators.py:84
+#: contrib/admin/views/decorators.py:85
 #, python-format
 msgid &quot;Your e-mail address is not your username. Try '%s' instead.&quot;
 msgstr &quot;&quot;
 &quot;Su direcci&#243;n de correo no es su nombre de usuario. Pruebe con '%s' en su &quot;
 &quot;lugar.&quot;
 
-#: contrib/admin/views/main.py:226
+#: contrib/admin/views/main.py:223
 msgid &quot;Site administration&quot;
 msgstr &quot;Sitio administrativo&quot;
 
-#: contrib/admin/views/main.py:260
+#: contrib/admin/views/main.py:257 contrib/admin/views/auth.py:14
 #, python-format
 msgid &quot;The %(name)s \&quot;%(obj)s\&quot; was added successfully.&quot;
-msgstr &quot;Se a&#241;adi&#243; con &#233;xito el %(name)s \&quot;%(obj)s\&quot;.&quot;
+msgstr &quot;Se agreg&#243; con &#233;xito el %(name)s \&quot;%(obj)s\&quot;.&quot;
 
-#: contrib/admin/views/main.py:264 contrib/admin/views/main.py:348
+#: contrib/admin/views/main.py:261 contrib/admin/views/main.py:347
+#: contrib/admin/views/auth.py:19
 msgid &quot;You may edit it again below.&quot;
-msgstr &quot;Puede editarlo de nuevo abajo.&quot;
+msgstr &quot;Puede modificarlo nuevamente abajo.&quot;
 
-#: contrib/admin/views/main.py:272 contrib/admin/views/main.py:357
+#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
 #, python-format
 msgid &quot;You may add another %s below.&quot;
 msgstr &quot;Puede agregar otro %s abajo.&quot;
 
-#: contrib/admin/views/main.py:290
+#: contrib/admin/views/main.py:289
 #, python-format
 msgid &quot;Add %s&quot;
 msgstr &quot;Agregar %s&quot;
 
-#: contrib/admin/views/main.py:336
+#: contrib/admin/views/main.py:335
 #, python-format
 msgid &quot;Added %s.&quot;
 msgstr &quot;Agregado %s.&quot;
 
-#: contrib/admin/views/main.py:336 contrib/admin/views/main.py:338
-#: contrib/admin/views/main.py:340
+#: contrib/admin/views/main.py:335 contrib/admin/views/main.py:337
+#: contrib/admin/views/main.py:339
 msgid &quot;and&quot;
 msgstr &quot;y&quot;
 
-#: contrib/admin/views/main.py:338
+#: contrib/admin/views/main.py:337
 #, python-format
 msgid &quot;Changed %s.&quot;
 msgstr &quot;Modifica %s.&quot;
 
-#: contrib/admin/views/main.py:340
+#: contrib/admin/views/main.py:339
 #, python-format
 msgid &quot;Deleted %s.&quot;
 msgstr &quot;Elimina %s.&quot;
 
-#: contrib/admin/views/main.py:343
+#: contrib/admin/views/main.py:342
 msgid &quot;No fields changed.&quot;
-msgstr &quot;No ha cambiado ning&#250;n campo.&quot;
+msgstr &quot;No ha modificado ning&#250;n campo.&quot;
 
-#: contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:345
 #, python-format
 msgid &quot;The %(name)s \&quot;%(obj)s\&quot; was changed successfully.&quot;
 msgstr &quot;Se modific&#243; con &#233;xito el %(name)s \&quot;%(obj)s.&quot;
 
-#: contrib/admin/views/main.py:354
+#: contrib/admin/views/main.py:353
 #, 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;Se agreg&#243; con &#233;xito el %(name)s \&quot;%(obj)s. Puede editarlo de nuevo abajo.&quot;
+&quot;Se agreg&#243; con &#233;xito el %(name)s \&quot;%(obj)s. Puede modificarlo nuevamente &quot;
+&quot;abajo.&quot;
 
-#: contrib/admin/views/main.py:392
+#: contrib/admin/views/main.py:391
 #, python-format
 msgid &quot;Change %s&quot;
 msgstr &quot;Modificar %s&quot;
 
-#: contrib/admin/views/main.py:470
+#: contrib/admin/views/main.py:473
 #, python-format
 msgid &quot;One or more %(fieldname)s in %(name)s: %(obj)s&quot;
 msgstr &quot;Uno o m&#225;s %(fieldname)s en %(name)s: %(obj)s&quot;
 
-#: contrib/admin/views/main.py:475
+#: contrib/admin/views/main.py:478
 #, python-format
 msgid &quot;One or more %(fieldname)s in %(name)s:&quot;
 msgstr &quot;Uno o m&#225;s %(fieldname)s en %(name)s:&quot;
 
-#: contrib/admin/views/main.py:508
+#: contrib/admin/views/main.py:511
 #, python-format
 msgid &quot;The %(name)s \&quot;%(obj)s\&quot; was deleted successfully.&quot;
 msgstr &quot;Se elimin&#243; con &#233;xito el %(name)s \&quot;%(obj)s\&quot;.&quot;
 
-#: contrib/admin/views/main.py:511
+#: contrib/admin/views/main.py:514
 msgid &quot;Are you sure?&quot;
 msgstr &quot;&#191;Est&#225; seguro?&quot;
 
-#: contrib/admin/views/main.py:533
+#: contrib/admin/views/main.py:536
 #, python-format
 msgid &quot;Change history: %s&quot;
 msgstr &quot;Historia de modificaciones: %s&quot;
 
-#: contrib/admin/views/main.py:567
+#: contrib/admin/views/main.py:570
 #, python-format
 msgid &quot;Select %s&quot;
 msgstr &quot;Seleccione %s&quot;
 
-#: contrib/admin/views/main.py:567
+#: contrib/admin/views/main.py:570
 #, python-format
 msgid &quot;Select %s to change&quot;
 msgstr &quot;Seleccione %s a modificar&quot;
 
-#: contrib/admin/views/main.py:743
+#: contrib/admin/views/main.py:756
 msgid &quot;Database error&quot;
 msgstr &quot;Error de base de datos&quot;
 
-#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:289
-#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:297
-#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:300
+#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid &quot;tag:&quot;
+msgstr &quot;etiqueta:&quot;
+
+#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid &quot;filter:&quot;
+msgstr &quot;Filtrar:&quot;
+
+#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid &quot;view:&quot;
+msgstr &quot;ver:&quot;
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid &quot;App %r not found&quot;
+msgstr &quot;App %r no encontrada&quot;
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid &quot;Model %r not found in app %r&quot;
+msgstr &quot;Modelo %r no encontrado en app %r&quot;
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid &quot;the related `%s.%s` object&quot;
+msgstr &quot;El objeto relacionado `%s.%s`&quot;
+
+#: contrib/admin/views/doc.py:183 contrib/admin/views/doc.py:205
+#: contrib/admin/views/doc.py:219 contrib/admin/views/doc.py:224
+msgid &quot;model:&quot;
+msgstr &quot;modelo:&quot;
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid &quot;related `%s.%s` objects&quot;
+msgstr &quot;objetos relacionados `%s.%s`&quot;
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid &quot;all %s&quot;
+msgstr &quot;todos %s&quot;
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid &quot;number of %s&quot;
+msgstr &quot;n&#250;mero de %s&quot;
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid &quot;Fields on %s objects&quot;
+msgstr &quot;Capos en %s objetos&quot;
+
+#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:303 contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310 contrib/admin/views/doc.py:312
 msgid &quot;Integer&quot;
 msgstr &quot;Entero&quot;
 
-#: contrib/admin/views/doc.py:280
+#: contrib/admin/views/doc.py:292
 msgid &quot;Boolean (Either True or False)&quot;
 msgstr &quot;Booleano (Verdadero o Falso)&quot;
 
-#: contrib/admin/views/doc.py:281 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
 #, python-format
 msgid &quot;String (up to %(maxlength)s)&quot;
 msgstr &quot;Cadena (m&#225;ximo %(maxlength)s)&quot;
 
-#: contrib/admin/views/doc.py:282
+#: contrib/admin/views/doc.py:294
 msgid &quot;Comma-separated integers&quot;
 msgstr &quot;Enteros separados por comas&quot;
 
-#: contrib/admin/views/doc.py:283
+#: contrib/admin/views/doc.py:295
 msgid &quot;Date (without time)&quot;
 msgstr &quot;Fecha (sin hora)&quot;
 
-#: contrib/admin/views/doc.py:284
+#: contrib/admin/views/doc.py:296
 msgid &quot;Date (with time)&quot;
 msgstr &quot;Fecha (con hora)&quot;
 
-#: contrib/admin/views/doc.py:285
+#: contrib/admin/views/doc.py:297
 msgid &quot;E-mail address&quot;
 msgstr &quot;Direcci&#243;n de correo electr&#243;nico&quot;
 
-#: contrib/admin/views/doc.py:286 contrib/admin/views/doc.py:287
-#: contrib/admin/views/doc.py:290
+#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
 msgid &quot;File path&quot;
 msgstr &quot;Ruta de archivo&quot;
 
-#: contrib/admin/views/doc.py:288
+#: contrib/admin/views/doc.py:300
 msgid &quot;Decimal number&quot;
 msgstr &quot;N&#250;mero decimal&quot;
 
-#: contrib/admin/views/doc.py:294
+#: contrib/admin/views/doc.py:306
 msgid &quot;Boolean (Either True, False or None)&quot;
 msgstr &quot;Booleano (Verdadero, Falso o Nulo)&quot;
 
-#: contrib/admin/views/doc.py:295
+#: contrib/admin/views/doc.py:307
 msgid &quot;Relation to parent model&quot;
 msgstr &quot;Relaci&#243;n con el modelo padre&quot;
 
-#: contrib/admin/views/doc.py:296
+#: contrib/admin/views/doc.py:308
 msgid &quot;Phone number&quot;
 msgstr &quot;N&#250;mero de tel&#233;fono&quot;
 
-#: contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:313
 msgid &quot;Text&quot;
 msgstr &quot;Texto&quot;
 
-#: contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:314
 msgid &quot;Time&quot;
 msgstr &quot;Hora&quot;
 
-#: contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:316
 msgid &quot;U.S. state (two uppercase letters)&quot;
 msgstr &quot;Estado de los EEUU (dos letras may&#250;sculas)&quot;
 
-#: contrib/admin/views/doc.py:305
+#: contrib/admin/views/doc.py:317
 msgid &quot;XML text&quot;
 msgstr &quot;Texto XML&quot;
 
+#: contrib/admin/views/doc.py:339
+#, python-format
+msgid &quot;%s does not appear to be a urlpattern object&quot;
+msgstr &quot;%s no parece ser un objeto urlpattern&quot;
+
+#: contrib/admin/views/auth.py:25
+msgid &quot;Add user&quot;
+msgstr &quot;Agregar usuario&quot;
+
 #: contrib/admin/templates/widget/file.html:2
 msgid &quot;Currently:&quot;
 msgstr &quot;Actualmente&quot;
@@ -916,7 +1005,7 @@ msgstr &quot;Hora:&quot;
 #: contrib/admin/templates/admin/object_history.html:3
 #: contrib/admin/templates/admin/change_list.html:5
 #: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/base.html:24
+#: contrib/admin/templates/admin/base.html:25
 #: contrib/admin/templates/admin/delete_confirmation.html:3
 #: contrib/admin/templates/registration/password_change_done.html:3
 #: contrib/admin/templates/registration/password_change_form.html:3
@@ -927,7 +1016,7 @@ msgstr &quot;Documentaci
 #: contrib/admin/templates/admin/object_history.html:3
 #: contrib/admin/templates/admin/change_list.html:5
 #: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/base.html:24
+#: contrib/admin/templates/admin/base.html:25
 #: contrib/admin/templates/admin/delete_confirmation.html:3
 #: contrib/admin/templates/registration/password_change_done.html:3
 #: contrib/admin/templates/registration/password_change_form.html:3
@@ -948,7 +1037,7 @@ msgstr &quot;Cambiar contrase
 #: contrib/admin/templates/admin/change_list.html:6
 #: contrib/admin/templates/admin/500.html:4
 #: contrib/admin/templates/admin/change_form.html:13
-#: contrib/admin/templates/admin/base.html:29
+#: contrib/admin/templates/admin/base.html:30
 #: contrib/admin/templates/admin/delete_confirmation.html:6
 #: contrib/admin/templates/admin/invalid_setup.html:4
 #: contrib/admin/templates/registration/password_change_done.html:4
@@ -996,8 +1085,8 @@ msgstr &quot;Agregar %(name)s&quot;
 
 #: contrib/admin/templates/admin/filter.html:2
 #, python-format
-msgid &quot; By %(title)s &quot;
-msgstr &quot; Por %(title)s &quot;
+msgid &quot; By %(filter_title)s &quot;
+msgstr &quot; Por %(filter_title)s &quot;
 
 #: contrib/admin/templates/admin/500.html:4
 msgid &quot;Server error&quot;
@@ -1053,6 +1142,11 @@ msgstr &quot;Administraci
 msgid &quot;Models available in the %(name)s application.&quot;
 msgstr &quot;Modelos disponibles en la aplicaci&#243;n %(name)s.&quot;
 
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid &quot;%(name)s&quot;
+msgstr &quot;%(name)s&quot;
+
 #: contrib/admin/templates/admin/index.html:28
 #: contrib/admin/templates/admin/change_form.html:15
 msgid &quot;Add&quot;
@@ -1113,7 +1207,7 @@ msgstr &quot;Ordenaci
 msgid &quot;Order:&quot;
 msgstr &quot;Orden:&quot;
 
-#: contrib/admin/templates/admin/base.html:24
+#: contrib/admin/templates/admin/base.html:25
 msgid &quot;Welcome,&quot;
 msgstr &quot;Bienvenido,&quot;
 
@@ -1125,22 +1219,22 @@ msgstr &quot;Eliminar&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;
+&quot;Deleting the %(object_name)s '%(escaped_object)s' would result in deleting &quot;
+&quot;related objects, but your account doesn't have permission to delete the &quot;
+&quot;following types of objects:&quot;
 msgstr &quot;&quot;
-&quot;Eliminar el %(object_name)s '%(object)s' provocar&#237;a la eliminaci&#243;n de &quot;
-&quot;objetos relacionados, pero su cuenta no tiene permiso para eliminar los &quot;
+&quot;Eliminar el %(object_name)s '%(escaped_object)s' provocar&#237;a la eliminaci&#243;n &quot;
+&quot;de objetos relacionados, pero su cuenta no tiene permiso para eliminar los &quot;
 &quot;siguientes tipos de objetos:&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;
+&quot;Are you sure you want to delete the %(object_name)s \&quot;%(escaped_object)s\&quot;? &quot;
+&quot;All of the following related items will be deleted:&quot;
 msgstr &quot;&quot;
-&quot;&#191;Est&#225; seguro de que quiere eliminar los %(object_name)s \&quot;%(object)s\&quot;? Se &quot;
-&quot;eliminar&#225;n los siguientes objetos relacionados:&quot;
+&quot;&#191;Est&#225; seguro de que quiere eliminar los %(object_name)s \&quot;%(escaped_object)s&quot;
+&quot;\&quot;? Se eliminar&#225;n los siguientes objetos relacionados:&quot;
 
 #: contrib/admin/templates/admin/delete_confirmation.html:26
 msgid &quot;Yes, I'm sure&quot;
@@ -1172,6 +1266,30 @@ msgstr &quot;&quot;
 &quot;tablas de la misma hayan sido creadas, y aseg&#250;rese de que el usuario &quot;
 &quot;apropiado tenga permisos de escritura en la base de datos.&quot;
 
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid &quot;&quot;
+&quot;First, enter a username and password. Then, you'll be able to edit more user &quot;
+&quot;options.&quot;
+msgstr &quot;&quot;
+&quot;Primero, ingrese un nombre de usuario y una contrase&#241;a. Luego podr&#225; &quot;
+&quot;configurar opciones adicionales.&quot;
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid &quot;Username&quot;
+msgstr &quot;Nombre de usuario:&quot;
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+msgid &quot;Password&quot;
+msgstr &quot;Contrase&#241;a:&quot;
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+msgid &quot;Password (again)&quot;
+msgstr &quot;Contrase&#241;a (de nuevo)&quot;
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+msgid &quot;Enter the same password as above, for verification.&quot;
+msgstr &quot;Para verificaci&#243;n, ingrese la misma contrase&#241;a que ingres&#243; arriba.&quot;
+
 #: contrib/admin/templates/registration/password_change_done.html:4
 #: contrib/admin/templates/registration/password_change_form.html:4
 #: contrib/admin/templates/registration/password_change_form.html:6
@@ -1359,26 +1477,6 @@ msgid &quot;As above, but opens the admin page in a new window.&quot;
 msgstr &quot;&quot;
 &quot;Como antes, pero abre la p&#225;gina de administraci&#243;n en una nueva ventana.&quot;
 
-#: utils/translation.py:363
-msgid &quot;DATE_FORMAT&quot;
-msgstr &quot;j N Y&quot;
-
-#: utils/translation.py:364
-msgid &quot;DATETIME_FORMAT&quot;
-msgstr &quot;j N Y P&quot;
-
-#: utils/translation.py:365
-msgid &quot;TIME_FORMAT&quot;
-msgstr &quot;P&quot;
-
-#: utils/translation.py:381
-msgid &quot;YEAR_MONTH_FORMAT&quot;
-msgstr &quot;F Y&quot;
-
-#: utils/translation.py:382
-msgid &quot;MONTH_DAY_FORMAT&quot;
-msgstr &quot;j \\de F&quot;
-
 #: utils/dates.py:6
 msgid &quot;Monday&quot;
 msgstr &quot;Lunes&quot;
@@ -1567,115 +1665,143 @@ msgid_plural &quot;minutes&quot;
 msgstr[0] &quot;minuto&quot;
 msgstr[1] &quot;minutos&quot;
 
-#: conf/global_settings.py:37
+#: utils/translation/trans_real.py:362
+msgid &quot;DATE_FORMAT&quot;
+msgstr &quot;j N Y&quot;
+
+#: utils/translation/trans_real.py:363
+msgid &quot;DATETIME_FORMAT&quot;
+msgstr &quot;j N Y P&quot;
+
+#: utils/translation/trans_real.py:364
+msgid &quot;TIME_FORMAT&quot;
+msgstr &quot;P&quot;
+
+#: utils/translation/trans_real.py:380
+msgid &quot;YEAR_MONTH_FORMAT&quot;
+msgstr &quot;F Y&quot;
+
+#: utils/translation/trans_real.py:381
+msgid &quot;MONTH_DAY_FORMAT&quot;
+msgstr &quot;j \\de F&quot;
+
+#: conf/global_settings.py:39
+msgid &quot;Arabic&quot;
+msgstr &quot;&#193;rabe&quot;
+
+#: conf/global_settings.py:40
 msgid &quot;Bengali&quot;
 msgstr &quot;Bengal&#237;&quot;
 
-#: conf/global_settings.py:38
+#: conf/global_settings.py:41
 msgid &quot;Czech&quot;
 msgstr &quot;Checo&quot;
 
-#: conf/global_settings.py:39
+#: conf/global_settings.py:42
 msgid &quot;Welsh&quot;
 msgstr &quot;Gal&#233;s&quot;
 
-#: conf/global_settings.py:40
+#: conf/global_settings.py:43
 msgid &quot;Danish&quot;
 msgstr &quot;Dan&#233;s&quot;
 
-#: conf/global_settings.py:41
+#: conf/global_settings.py:44
 msgid &quot;German&quot;
 msgstr &quot;Alem&#225;n&quot;
 
-#: conf/global_settings.py:42
+#: conf/global_settings.py:45
 msgid &quot;Greek&quot;
 msgstr &quot;Griego&quot;
 
-#: conf/global_settings.py:43
+#: conf/global_settings.py:46
 msgid &quot;English&quot;
 msgstr &quot;Ingl&#233;s&quot;
 
-#: conf/global_settings.py:44
+#: conf/global_settings.py:47
 msgid &quot;Spanish&quot;
 msgstr &quot;Espa&#241;ol&quot;
 
-#: conf/global_settings.py:45
+#: conf/global_settings.py:48
 msgid &quot;Argentinean Spanish&quot;
 msgstr &quot;Espa&#241;ol Argentino&quot;
 
-#: conf/global_settings.py:46
+#: conf/global_settings.py:49
 msgid &quot;French&quot;
 msgstr &quot;Franc&#233;s&quot;
 
-#: conf/global_settings.py:47
+#: conf/global_settings.py:50
 msgid &quot;Galician&quot;
 msgstr &quot;Gallego&quot;
 
-#: conf/global_settings.py:48
+#: conf/global_settings.py:51
 msgid &quot;Hungarian&quot;
 msgstr &quot;H&#250;ngaro&quot;
 
-#: conf/global_settings.py:49
+#: conf/global_settings.py:52
 msgid &quot;Hebrew&quot;
 msgstr &quot;Hebreo&quot;
 
-#: conf/global_settings.py:50
+#: conf/global_settings.py:53
 msgid &quot;Icelandic&quot;
 msgstr &quot;Island&#233;s&quot;
 
-#: conf/global_settings.py:51
+#: conf/global_settings.py:54
 msgid &quot;Italian&quot;
 msgstr &quot;Italiano&quot;
 
-#: conf/global_settings.py:52
+#: conf/global_settings.py:55
 msgid &quot;Japanese&quot;
 msgstr &quot;Japon&#233;s&quot;
 
-#: conf/global_settings.py:53
+#: conf/global_settings.py:56
 msgid &quot;Dutch&quot;
 msgstr &quot;Holand&#233;s&quot;
 
-#: conf/global_settings.py:54
+#: conf/global_settings.py:57
 msgid &quot;Norwegian&quot;
 msgstr &quot;Noruego&quot;
 
-#: conf/global_settings.py:55
+#: conf/global_settings.py:58
 msgid &quot;Brazilian&quot;
 msgstr &quot;Brasile&#241;o&quot;
 
-#: conf/global_settings.py:56
+#: conf/global_settings.py:59
 msgid &quot;Romanian&quot;
 msgstr &quot;Rumano&quot;
 
-#: conf/global_settings.py:57
+#: conf/global_settings.py:60
 msgid &quot;Russian&quot;
 msgstr &quot;Ruso&quot;
 
-#: conf/global_settings.py:58
+#: conf/global_settings.py:61
 msgid &quot;Slovak&quot;
 msgstr &quot;Eslovaco&quot;
 
-#: conf/global_settings.py:59
+#: conf/global_settings.py:62
 msgid &quot;Slovenian&quot;
 msgstr &quot;Esloveno&quot;
 
-#: conf/global_settings.py:60
+#: conf/global_settings.py:63
 msgid &quot;Serbian&quot;
 msgstr &quot;Serbio&quot;
 
-#: conf/global_settings.py:61
+#: conf/global_settings.py:64
 msgid &quot;Swedish&quot;
 msgstr &quot;Sueco&quot;
 
-#: conf/global_settings.py:62
+#: conf/global_settings.py:65
+msgid &quot;Tamil&quot;
+msgstr &quot;Tamil&quot;
+
+#: conf/global_settings.py:66
 msgid &quot;Ukrainian&quot;
 msgstr &quot;Ucraniano&quot;
 
-#: conf/global_settings.py:63
+#: conf/global_settings.py:67
 msgid &quot;Simplified Chinese&quot;
 msgstr &quot;Chino simplificado&quot;
 
-#: conf/global_settings.py:64
+#: conf/global_settings.py:68
 msgid &quot;Traditional Chinese&quot;
 msgstr &quot;Chino tradicional&quot;
 
@@ -1691,47 +1817,51 @@ msgid &quot;%(optname)s with this %(fieldname)s already exists.&quot;
 msgstr &quot;Ya existe %(optname)s con este %(fieldname)s.&quot;
 
 #: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
-#: db/models/fields/__init__.py:545 db/models/fields/__init__.py:556
+#: db/models/fields/__init__.py:551 db/models/fields/__init__.py:562
 #: forms/__init__.py:346
 msgid &quot;This field is required.&quot;
 msgstr &quot;Este campo es obligatorio.&quot;
 
-#: db/models/fields/__init__.py:337
+#: db/models/fields/__init__.py:340
 msgid &quot;This value must be an integer.&quot;
 msgstr &quot;Este valor debe ser un n&#250;mero entero.&quot;
 
-#: db/models/fields/__init__.py:369
+#: db/models/fields/__init__.py:372
 msgid &quot;This value must be either True or False.&quot;
 msgstr &quot;Este valor debe ser True o False.&quot;
 
-#: db/models/fields/__init__.py:385
+#: db/models/fields/__init__.py:388
 msgid &quot;This field cannot be null.&quot;
 msgstr &quot;Este campo no puede ser nulo.&quot;
 
-#: db/models/fields/__init__.py:471 core/validators.py:135
+#: db/models/fields/__init__.py:415 core/validators.py:127
+msgid &quot;Enter a valid date in YYYY-MM-DD format.&quot;
+msgstr &quot;Introduzca una fecha v&#225;lida en formato AAAA-MM-DD.&quot;
+
+#: db/models/fields/__init__.py:477 core/validators.py:135
 msgid &quot;Enter a valid date/time in YYYY-MM-DD HH:MM format.&quot;
 msgstr &quot;Introduzca una fecha/hora v&#225;lida en formato YYYY-MM-DD HH:MM.&quot;
 
-#: db/models/fields/__init__.py:565
+#: db/models/fields/__init__.py:571
 msgid &quot;Enter a valid filename.&quot;
 msgstr &quot;Introduzca un nombre de achivo v&#225;lido&quot;
 
-#: db/models/fields/related.py:43
+#: db/models/fields/related.py:51
 #, python-format
 msgid &quot;Please enter a valid %s.&quot;
 msgstr &quot;Por favor, introduzca un %s v&#225;lido.&quot;
 
-#: db/models/fields/related.py:579
+#: db/models/fields/related.py:618
 msgid &quot;Separate multiple IDs with commas.&quot;
 msgstr &quot; Separe m&#250;ltiples IDs con comas.&quot;
 
-#: db/models/fields/related.py:581
+#: db/models/fields/related.py:620
 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;Pulse \&quot;Control\&quot;, o \&quot;Command\&quot; en un Mac, para seleccionar m&#225;s de uno.&quot;
 
-#: db/models/fields/related.py:625
+#: db/models/fields/related.py:664
 #, python-format
 msgid &quot;Please enter valid %(self)s IDs. The value %(value)r is invalid.&quot;
 msgid_plural &quot;&quot;
@@ -1754,29 +1884,29 @@ msgstr[1] &quot;Aseg
 msgid &quot;Line breaks are not allowed here.&quot;
 msgstr &quot;No se permiten saltos de l&#237;nea.&quot;
 
-#: forms/__init__.py:485 forms/__init__.py:558 forms/__init__.py:597
+#: forms/__init__.py:487 forms/__init__.py:560 forms/__init__.py:599
 #, python-format
 msgid &quot;Select a valid choice; '%(data)s' is not in %(choices)s.&quot;
 msgstr &quot;Seleccione una opci&#243;n v&#225;lida; '%(data)s' no est&#225; en %(choices)s.&quot;
 
-#: forms/__init__.py:659 core/validators.py:151 core/validators.py:379
+#: forms/__init__.py:661 core/validators.py:151 core/validators.py:379
 msgid &quot;No file was submitted. Check the encoding type on the form.&quot;
 msgstr &quot;&quot;
 &quot;No se envi&#243; un archivo. Verifique el tipo de codificaci&#243;n en el formulario.&quot;
 
-#: forms/__init__.py:661
+#: forms/__init__.py:663
 msgid &quot;The submitted file is empty.&quot;
 msgstr &quot;El archivo enviado est&#225; vac&#237;o.&quot;
 
-#: forms/__init__.py:717
+#: forms/__init__.py:719
 msgid &quot;Enter a whole number between -32,768 and 32,767.&quot;
 msgstr &quot;Introduzca un n&#250;mero entero entre -32,768 y 32,767.&quot;
 
-#: forms/__init__.py:727
+#: forms/__init__.py:729
 msgid &quot;Enter a positive number.&quot;
 msgstr &quot;Introduzca un n&#250;mero positivo.&quot;
 
-#: forms/__init__.py:737
+#: forms/__init__.py:739
 msgid &quot;Enter a whole number between 0 and 32,767.&quot;
 msgstr &quot;Introduzca un n&#250;mero entero entre 0 y 32,767.&quot;
 
@@ -1832,10 +1962,6 @@ msgstr &quot;Introduzca un n
 msgid &quot;Only alphabetical characters are allowed here.&quot;
 msgstr &quot;S&#243;lo se admiten caracteres alfab&#233;ticos.&quot;
 
-#: core/validators.py:127
-msgid &quot;Enter a valid date in YYYY-MM-DD format.&quot;
-msgstr &quot;Introduzca una fecha v&#225;lida en formato AAAA-MM-DD.&quot;
-
 #: core/validators.py:131
 msgid &quot;Enter a valid time in HH:MM format.&quot;
 msgstr &quot;Introduzca una hora v&#225;lida en formato HH:MM.&quot;
@@ -2066,18 +2192,28 @@ msgstr &quot;&quot;
 &quot;El atributo \&quot;%(attr)s\&quot; de la l&#237;nea %(line)s tiene un valor que no es &quot;
 &quot;v&#225;lido. (La l&#237;nea empieza por \&quot;%(start)s\&quot;.)&quot;
 
-#: template/defaultfilters.py:389
+#: template/defaultfilters.py:401
 msgid &quot;yes,no,maybe&quot;
 msgstr &quot;si,no,tal vez&quot;
 
-#, fuzzy
+#: views/generic/create_update.py:43
+#, python-format
+msgid &quot;The %(verbose_name)s was created successfully.&quot;
+msgstr &quot;Se cre&#243; con &#233;xito el %(verbose_name).&quot;
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid &quot;The %(verbose_name)s was updated successfully.&quot;
+msgstr &quot;Se actualiz&#243; con &#233;xito el %(verbose_name)s.&quot;
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid &quot;The %(verbose_name)s was deleted.&quot;
+msgstr &quot;Se elimin&#243; el %(verbose_name)s.&quot;
+
 #~ msgid &quot;%(content_type_name)s&quot;
 #~ msgstr &quot;tipos de contenido&quot;
 
-#, fuzzy
-#~ msgid &quot;%(myname)s&quot;
-#~ msgstr &quot;Agregar %(name)s&quot;
-
 #~ msgid &quot;%(result_count)s result&quot;
 #~ msgid_plural &quot;%(counter)s results&quot;
 #~ msgstr[0] &quot;un resultado&quot;</diff>
      <filename>django/conf/locale/es_AR/LC_MESSAGES/django.po</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>django/conf/locale/no/LC_MESSAGES/django.mo</filename>
    </modified>
    <modified>
      <diff>@@ -264,7 +264,7 @@ msgstr &quot;Bare POST er tillatt&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;En eller flere av feltene som er krevd ble ikke sendt.&quot;
+msgstr &quot;En eller flere av feltene som er p&#229;krevd ble ikke sendt.&quot;
 
 #: contrib/comments/views/comments.py:197
 #: contrib/comments/views/comments.py:286
@@ -371,35 +371,32 @@ msgid &quot;All&quot;
 msgstr &quot;Alle&quot;
 
 #: contrib/admin/filterspecs.py:109
-#, fuzzy
 msgid &quot;Any date&quot;
-msgstr &quot;Alle datoer&quot;
+msgstr &quot;N&#229;r som helst&quot;
 
 #: contrib/admin/filterspecs.py:110
-#, fuzzy
 msgid &quot;Today&quot;
-msgstr &quot;Mondag&quot;
+msgstr &quot;I dag&quot;
 
 #: contrib/admin/filterspecs.py:113
 msgid &quot;Past 7 days&quot;
-msgstr &quot;&quot;
+msgstr &quot;Siste 7 dager&quot;
 
 #: contrib/admin/filterspecs.py:115
 msgid &quot;This month&quot;
-msgstr &quot;&quot;
+msgstr &quot;Denne m&#229;neden&quot;
 
 #: contrib/admin/filterspecs.py:117
 msgid &quot;This year&quot;
-msgstr &quot;&quot;
+msgstr &quot;I &#229;r&quot;
 
 #: contrib/admin/filterspecs.py:143
 msgid &quot;Yes&quot;
-msgstr &quot;&quot;
+msgstr &quot;Ja&quot;
 
 #: contrib/admin/filterspecs.py:143
-#, fuzzy
 msgid &quot;No&quot;
-msgstr &quot;Nov.&quot;
+msgstr &quot;Nei&quot;
 
 #: contrib/admin/filterspecs.py:150
 msgid &quot;Unknown&quot;
@@ -443,11 +440,13 @@ 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;V&#230;r snill &#229; angi korrekt brukernavn og passord. La merke til at sm&#229; og &quot;
+&quot;store bokstaver er betraktet ulik.&quot;
 
 #: contrib/admin/views/decorators.py:23
 #: contrib/admin/templates/admin/login.html:25
 msgid &quot;Log in&quot;
-msgstr &quot;Log inn&quot;
+msgstr &quot;Logg inn&quot;
 
 #: contrib/admin/views/decorators.py:61
 msgid &quot;&quot;
@@ -473,12 +472,11 @@ msgstr &quot;Brukernavnet kan ikke inneholde '@'&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;Epost adressen din er ikke brukernavnet ditt, pr&#248;v '%s' i stede.&quot;
+msgstr &quot;E-post adressen din er ikke brukernavnet ditt, pr&#248;v '%s' i stede.&quot;
 
 #: contrib/admin/views/main.py:226
-#, fuzzy
 msgid &quot;Site administration&quot;
-msgstr &quot;Django administrasjon&quot;
+msgstr &quot;Nettsted administrasjon&quot;
 
 #: contrib/admin/views/main.py:260
 #, python-format
@@ -502,7 +500,7 @@ msgstr &quot;Ny %s&quot;
 #: contrib/admin/views/main.py:336
 #, python-format
 msgid &quot;Added %s.&quot;
-msgstr &quot;La til %s&quot;
+msgstr &quot;Lagt til %s&quot;
 
 #: contrib/admin/views/main.py:336 contrib/admin/views/main.py:338
 #: contrib/admin/views/main.py:340
@@ -559,7 +557,7 @@ msgid &quot;Are you sure?&quot;
 msgstr &quot;Er du sikker?&quot;
 
 #: contrib/admin/views/main.py:533
-#, fuzzy, python-format
+#, python-format
 msgid &quot;Change history: %s&quot;
 msgstr &quot;Endre historien: %s&quot;
 
@@ -580,7 +578,6 @@ msgid &quot;Integer&quot;
 msgstr &quot;Heltall&quot;
 
 #: contrib/admin/views/doc.py:278
-#, fuzzy
 msgid &quot;Boolean (Either True or False)&quot;
 msgstr &quot;Boolean (Enten \&quot;True\&quot; eller \&quot;False\&quot;)&quot;
 
@@ -603,7 +600,7 @@ msgstr &quot;Dato/tid&quot;
 
 #: contrib/admin/views/doc.py:283
 msgid &quot;E-mail address&quot;
-msgstr &quot;Epost adresse&quot;
+msgstr &quot;E-post adresse&quot;
 
 #: contrib/admin/views/doc.py:284 contrib/admin/views/doc.py:287
 msgid &quot;File path&quot;
@@ -614,13 +611,12 @@ msgid &quot;Decimal number&quot;
 msgstr &quot;Desimal tall&quot;
 
 #: contrib/admin/views/doc.py:291
-#, fuzzy
 msgid &quot;Boolean (Either True, False or None)&quot;
 msgstr &quot;Boolean (enten \&quot;True\&quot;, \&quot;False\&quot; eller \&quot;None\&quot;)&quot;
 
 #: contrib/admin/views/doc.py:292
 msgid &quot;Relation to parent model&quot;
-msgstr &quot;&quot;
+msgstr &quot;Relasjon til forelder modell&quot;
 
 #: contrib/admin/views/doc.py:293
 msgid &quot;Phone number&quot;
@@ -636,7 +632,7 @@ msgstr &quot;Tid&quot;
 
 #: contrib/admin/views/doc.py:300 contrib/flatpages/models.py:7
 msgid &quot;URL&quot;
-msgstr &quot;Internettadresse&quot;
+msgstr &quot;URL&quot;
 
 #: contrib/admin/views/doc.py:301
 msgid &quot;U.S. state (two uppercase letters)&quot;
@@ -756,12 +752,12 @@ msgstr &quot;Fant ikke siden&quot;
 
 #: contrib/admin/templates/admin/404.html:10
 msgid &quot;We're sorry, but the requested page could not be found.&quot;
-msgstr &quot;Beklager, men siden du sp&#248;r etter finnest ikke.&quot;
+msgstr &quot;Beklager, men siden du sp&#248;r etter finnes ikke.&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;Modeller fra applikasjonen %(name)s.&quot;
 
 #: contrib/admin/templates/admin/index.html:28
 #: contrib/admin/templates/admin/change_form.html:15
@@ -813,7 +809,7 @@ msgid &quot;&quot;
 &quot;objects, but your account doesn't have permission to delete the following &quot;
 &quot;types of objects:&quot;
 msgstr &quot;&quot;
-&quot;Vist du sletter %(object_name)s '%(object)s' vill du ogs&#229; slette relaterte &quot;
+&quot;Hivs du sletter %(object_name)s '%(object)s' vil du ogs&#229; slette relaterte &quot;
 &quot;objekter, men du har ikke tillatelse til &#229; slette de f&#248;lgende objektene:&quot;
 
 #: contrib/admin/templates/admin/delete_confirmation.html:21
@@ -836,11 +832,11 @@ msgstr &quot;Av %(title)s &quot;
 
 #: contrib/admin/templates/admin/search_form.html:8
 msgid &quot;Go&quot;
-msgstr &quot;&quot;
+msgstr &quot;G&#229;&quot;
 
 #: contrib/admin/templates/admin/change_form.html:21
 msgid &quot;View on site&quot;
-msgstr &quot;Vis p&#229; siden&quot;
+msgstr &quot;Vis p&#229; nettsted&quot;
 
 #: contrib/admin/templates/admin/change_form.html:30
 msgid &quot;Please correct the error below.&quot;
@@ -900,12 +896,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;Har du glemt passordet ditt? Skriv inn epost adressen din under, s&#229; sender &quot;
-&quot;vi deg et nytt passord via epost.&quot;
+&quot;Har du glemt passordet ditt? Skriv inn e-post adressen din under, s&#229; sender &quot;
+&quot;vi deg et nytt passord via e-post.&quot;
 
 #: contrib/admin/templates/registration/password_reset_form.html:16
 msgid &quot;E-mail address:&quot;
-msgstr &quot;Epost adresse:&quot;
+msgstr &quot;E-post adresse:&quot;
 
 #: contrib/admin/templates/registration/password_reset_form.html:16
 msgid &quot;Reset my password&quot;
@@ -917,7 +913,7 @@ msgstr &quot;Takk for &#229; bruke tid p&#229; internett siden i dag.&quot;
 
 #: contrib/admin/templates/registration/logged_out.html:10
 msgid &quot;Log in again&quot;
-msgstr &quot;Log inn igjen&quot;
+msgstr &quot;Logg inn igjen&quot;
 
 #: contrib/admin/templates/registration/password_reset_done.html:6
 #: contrib/admin/templates/registration/password_reset_done.html:10
@@ -929,7 +925,7 @@ 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;Vi sender deg et nytt passord til epost adressen du oppgav. Du villmotta det &quot;
+&quot;Vi sender deg et nytt passord til e-post adressen du oppgav. Du villmotta det &quot;
 &quot;snart.&quot;
 
 #: contrib/admin/templates/registration/password_change_form.html:12
@@ -959,7 +955,7 @@ msgstr &quot;Endre passord&quot;
 #: contrib/admin/templates/registration/password_reset_email.html:2
 msgid &quot;You're receiving this e-mail because you requested a password reset&quot;
 msgstr &quot;&quot;
-&quot;Du har mottatt denne epost-en fordi du ba om &#229; tilbakestille passordet ditt&quot;
+&quot;Du har mottatt denne e-posten fordi du ba om &#229; tilbakestille passordet ditt&quot;
 
 #: contrib/admin/templates/registration/password_reset_email.html:3
 #, python-format
@@ -1036,10 +1032,9 @@ msgid &quot;Edit this object (current window)&quot;
 msgstr &quot;Endre dette objektet (&#229;pnes i dette vinduet)&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:26
-#, fuzzy
 msgid &quot;Jumps to the admin page for pages that represent a single object.&quot;
 msgstr &quot;&quot;
-&quot;Hopp til administrasjonsiden for siden som representerer et enkelt objekt.&quot;
+&quot;Hopp til administrasjonsiden for sidene som representerer et enkelt objekt.&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:28
 msgid &quot;Edit this object (new window)&quot;
@@ -1051,21 +1046,19 @@ msgstr &quot;Samme som over, men &#229;pner administrasjonsiden i et nytt vindu.&quot;
 
 #: contrib/admin/templates/widget/date_time.html:3
 msgid &quot;Date:&quot;
-msgstr &quot;&quot;
+msgstr &quot;Dato:&quot;
 
 #: contrib/admin/templates/widget/date_time.html:4
-#, fuzzy
 msgid &quot;Time:&quot;
-msgstr &quot;Tid&quot;
+msgstr &quot;Tid:&quot;
 
 #: contrib/admin/templates/widget/file.html:2
 msgid &quot;Currently:&quot;
-msgstr &quot;&quot;
+msgstr &quot;N&#229;:&quot;
 
 #: contrib/admin/templates/widget/file.html:3
-#, fuzzy
 msgid &quot;Change:&quot;
-msgstr &quot;Endre&quot;
+msgstr &quot;Endre:&quot;
 
 #: contrib/redirects/models.py:7
 msgid &quot;redirect from&quot;
@@ -1126,7 +1119,7 @@ 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;Eksempel: 'flatfiler/kontakt_side'. Vist denne ikke denne er gitt, vill &quot;
+&quot;Eksempel: 'flatfiler/kontakt_side'. Hvis denne ikke denne er gitt, vill &quot;
 &quot;'flatfiles/default' bli brukt.&quot;
 
 #: contrib/flatpages/models.py:14
@@ -1136,7 +1129,7 @@ msgstr &quot;registrering kreves&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;Vist denne er krysset av er det bare brukere som er logget inn som kan se &quot;
+&quot;Hvis denne er krysset av er det bare brukere som er logget inn som kan se &quot;
 &quot;siden.&quot;
 
 #: contrib/flatpages/models.py:18
@@ -1156,24 +1149,20 @@ msgid &quot;codename&quot;
 msgstr &quot;kodenavn&quot;
 
 #: contrib/auth/models.py:17
-#, fuzzy
 msgid &quot;permission&quot;
-msgstr &quot;Rettighet&quot;
+msgstr &quot;rettighet&quot;
 
 #: contrib/auth/models.py:18 contrib/auth/models.py:27
-#, fuzzy
 msgid &quot;permissions&quot;
-msgstr &quot;Rettigheter&quot;
+msgstr &quot;rettigheter&quot;
 
 #: contrib/auth/models.py:29
-#, fuzzy
 msgid &quot;group&quot;
-msgstr &quot;Gruppe&quot;
+msgstr &quot;gruppe&quot;
 
 #: contrib/auth/models.py:30 contrib/auth/models.py:65
-#, fuzzy
 msgid &quot;groups&quot;
-msgstr &quot;Grupper&quot;
+msgstr &quot;grupper&quot;
 
 #: contrib/auth/models.py:55
 msgid &quot;username&quot;
@@ -1205,7 +1194,7 @@ msgstr &quot;administrasjons status&quot;
 
 #: contrib/auth/models.py:60
 msgid &quot;Designates whether the user can log into this admin site.&quot;
-msgstr &quot;Bestemmer om brukeren kan logge inn p&#229; denne administrasjons siden.&quot;
+msgstr &quot;Bestemmer om brukeren kan logge inn p&#229; dette administrasjons sted.&quot;
 
 #: contrib/auth/models.py:61
 msgid &quot;active&quot;
@@ -1217,7 +1206,7 @@ msgstr &quot;super bruker&quot;
 
 #: contrib/auth/models.py:63
 msgid &quot;last login&quot;
-msgstr &quot;liste logg inn&quot;
+msgstr &quot;siste logg inn&quot;
 
 #: contrib/auth/models.py:64
 msgid &quot;date joined&quot;
@@ -1232,19 +1221,16 @@ msgstr &quot;&quot;
 &quot;tilgang til gruppene han/hun er i.&quot;
 
 #: contrib/auth/models.py:67
-#, fuzzy
 msgid &quot;user permissions&quot;
 msgstr &quot;Rettigheter&quot;
 
 #: contrib/auth/models.py:70
-#, fuzzy
 msgid &quot;user&quot;
-msgstr &quot;Bruker&quot;
+msgstr &quot;bruker&quot;
 
 #: contrib/auth/models.py:71
-#, fuzzy
 msgid &quot;users&quot;
-msgstr &quot;Brukere&quot;
+msgstr &quot;brukere&quot;
 
 #: contrib/auth/models.py:76
 msgid &quot;Personal info&quot;
@@ -1263,9 +1249,8 @@ msgid &quot;Groups&quot;
 msgstr &quot;Grupper&quot;
 
 #: contrib/auth/models.py:219
-#, fuzzy
 msgid &quot;message&quot;
-msgstr &quot;Meldinger&quot;
+msgstr &quot;Melding&quot;
 
 #: contrib/auth/forms.py:30
 msgid &quot;&quot;
@@ -1274,9 +1259,8 @@ msgid &quot;&quot;
 msgstr &quot;&quot;
 
 #: contrib/contenttypes/models.py:25
-#, fuzzy
 msgid &quot;python model class name&quot;
-msgstr &quot;python modul navn&quot;
+msgstr &quot;python modell klasse navn&quot;
 
 #: contrib/contenttypes/models.py:28
 msgid &quot;content type&quot;
@@ -1312,23 +1296,23 @@ msgstr &quot;domene navn&quot;
 
 #: contrib/sites/models.py:11
 msgid &quot;display name&quot;
-msgstr &quot;vist navn&quot;
+msgstr &quot;vise navn&quot;
 
 #: contrib/sites/models.py:15
 msgid &quot;site&quot;
-msgstr &quot;side&quot;
+msgstr &quot;nettsted&quot;
 
 #: contrib/sites/models.py:16
 msgid &quot;sites&quot;
-msgstr &quot;sider&quot;
+msgstr &quot;nettsteder&quot;
 
 #: utils/translation.py:360
 msgid &quot;DATE_FORMAT&quot;
-msgstr &quot;j. M U&quot;
+msgstr &quot;j. M Y&quot;
 
 #: utils/translation.py:361
 msgid &quot;DATETIME_FORMAT&quot;
-msgstr &quot;j. M U - h:i&quot;
+msgstr &quot;j. M Y - h:i&quot;
 
 #: utils/translation.py:362
 msgid &quot;TIME_FORMAT&quot;
@@ -1336,7 +1320,7 @@ msgstr &quot;h:i&quot;
 
 #: utils/dates.py:6
 msgid &quot;Monday&quot;
-msgstr &quot;Mondag&quot;
+msgstr &quot;Mandag&quot;
 
 #: utils/dates.py:6
 msgid &quot;Tuesday&quot;
@@ -1411,54 +1395,52 @@ msgid &quot;December&quot;
 msgstr &quot;Desember&quot;
 
 #: utils/dates.py:19
-#, fuzzy
 msgid &quot;jan&quot;
-msgstr &quot;og&quot;
+msgstr &quot;jan&quot;
 
 #: utils/dates.py:19
 msgid &quot;feb&quot;
-msgstr &quot;&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;Mai&quot;
+msgstr &quot;mai&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;aug&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;des&quot;
 
 #: utils/dates.py:27
 msgid &quot;Jan.&quot;
@@ -1466,7 +1448,7 @@ msgstr &quot;Jan.&quot;
 
 #: utils/dates.py:27
 msgid &quot;Feb.&quot;
-msgstr &quot;Fef.&quot;
+msgstr &quot;Feb.&quot;
 
 #: utils/dates.py:28
 msgid &quot;Aug.&quot;
@@ -1491,40 +1473,38 @@ msgstr &quot;Des.&quot;
 #: utils/timesince.py:12
 msgid &quot;year&quot;
 msgid_plural &quot;years&quot;
-msgstr[0] &quot;&quot;
-msgstr[1] &quot;&quot;
+msgstr[0] &quot;&#229;r&quot;
+msgstr[1] &quot;&#229;r&quot;
 
 #: utils/timesince.py:13
 msgid &quot;month&quot;
 msgid_plural &quot;months&quot;
-msgstr[0] &quot;&quot;
-msgstr[1] &quot;&quot;
+msgstr[0] &quot;m&#229;ned&quot;
+msgstr[1] &quot;m&#229;ndeder&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;uke&quot;
+msgstr[1] &quot;uker&quot;
 
 #: utils/timesince.py:15
-#, fuzzy
 msgid &quot;day&quot;
 msgid_plural &quot;days&quot;
-msgstr[0] &quot;Mai&quot;
-msgstr[1] &quot;Mai&quot;
+msgstr[0] &quot;dag&quot;
+msgstr[1] &quot;dager&quot;
 
 #: utils/timesince.py:16
 msgid &quot;hour&quot;
 msgid_plural &quot;hours&quot;
-msgstr[0] &quot;&quot;
-msgstr[1] &quot;&quot;
+msgstr[0] &quot;time&quot;
+msgstr[1] &quot;timer&quot;
 
 #: utils/timesince.py:17
-#, fuzzy
 msgid &quot;minute&quot;
 msgid_plural &quot;minutes&quot;
-msgstr[0] &quot;side&quot;
-msgstr[1] &quot;side&quot;
+msgstr[0] &quot;minutt&quot;
+msgstr[1] &quot;minutter&quot;
 
 #: conf/global_settings.py:37
 msgid &quot;Bengali&quot;
@@ -1548,7 +1528,7 @@ msgstr &quot;Tysk&quot;
 
 #: conf/global_settings.py:42
 msgid &quot;Greek&quot;
-msgstr &quot;&quot;
+msgstr &quot;Gresk&quot;
 
 #: conf/global_settings.py:43
 msgid &quot;English&quot;
@@ -1568,11 +1548,11 @@ msgstr &quot;Galisisk&quot;
 
 #: conf/global_settings.py:47
 msgid &quot;Hungarian&quot;
-msgstr &quot;&quot;
+msgstr &quot;Ungarsk&quot;
 
 #: conf/global_settings.py:48
 msgid &quot;Hebrew&quot;
-msgstr &quot;&quot;
+msgstr &quot;Hebraiske&quot;
 
 #: conf/global_settings.py:49
 msgid &quot;Icelandic&quot;
@@ -1584,11 +1564,11 @@ msgstr &quot;Italiensk&quot;
 
 #: conf/global_settings.py:51
 msgid &quot;Japanese&quot;
-msgstr &quot;&quot;
+msgstr &quot;Japansk&quot;
 
 #: conf/global_settings.py:52
 msgid &quot;Dutch&quot;
-msgstr &quot;&quot;
+msgstr &quot;Nederlandsk&quot;
 
 #: conf/global_settings.py:53
 msgid &quot;Norwegian&quot;
@@ -1600,7 +1580,7 @@ msgstr &quot;Brasiliansk&quot;
 
 #: conf/global_settings.py:55
 msgid &quot;Romanian&quot;
-msgstr &quot;Romansk&quot;
+msgstr &quot;Rumensk&quot;
 
 #: conf/global_settings.py:56
 msgid &quot;Russian&quot;
@@ -1611,9 +1591,8 @@ msgid &quot;Slovak&quot;
 msgstr &quot;Slovakisk&quot;
 
 #: conf/global_settings.py:58
-#, fuzzy
 msgid &quot;Slovenian&quot;
-msgstr &quot;Slovakisk&quot;
+msgstr &quot;Slovensk&quot;
 
 #: conf/global_settings.py:59
 msgid &quot;Serbian&quot;
@@ -1624,9 +1603,8 @@ msgid &quot;Swedish&quot;
 msgstr &quot;Svensk&quot;
 
 #: conf/global_settings.py:61
-#, fuzzy
 msgid &quot;Ukrainian&quot;
-msgstr &quot;Brasiliansk&quot;
+msgstr &quot;Ukrainsk&quot;
 
 #: conf/global_settings.py:62
 msgid &quot;Simplified Chinese&quot;
@@ -1634,14 +1612,13 @@ msgstr &quot;Simplifisert Kinesisk&quot;
 
 #: conf/global_settings.py:63
 msgid &quot;Traditional Chinese&quot;
-msgstr &quot;&quot;
+msgstr &quot;Tradisjonell Kinesisk&quot;
 
 #: core/validators.py:60
 msgid &quot;This value must contain only letters, numbers and underscores.&quot;
 msgstr &quot;Dette feltet m&#229; bare inneholde bokstaver, nummer og understreker.&quot;
 
 #: core/validators.py:64
-#, fuzzy
 msgid &quot;&quot;
 &quot;This value must contain only letters, numbers, underscores, dashes or &quot;
 &quot;slashes.&quot;
@@ -1651,7 +1628,7 @@ msgstr &quot;&quot;
 
 #: core/validators.py:72
 msgid &quot;Uppercase letters are not allowed here.&quot;
-msgstr &quot;Tor skrift er ikke tillatt her.&quot;
+msgstr &quot;Stor bokstaver er ikke tillatt her.&quot;
 
 #: core/validators.py:76
 msgid &quot;Lowercase letters are not allowed here.&quot;
@@ -1687,19 +1664,19 @@ msgstr &quot;Skriv inn et helt nummer.&quot;
 
 #: core/validators.py:120
 msgid &quot;Only alphabetical characters are allowed here.&quot;
-msgstr &quot;Bare alfabetiske bokstaber er tillatt her.&quot;
+msgstr &quot;Bare alfabetiske bokstaver er tillatt her.&quot;
 
 #: core/validators.py:124
 msgid &quot;Enter a valid date in YYYY-MM-DD format.&quot;
-msgstr &quot;Skriv inn en dato i &#197;&#197;&#197;&#197;-MM-DD formatet.&quot;
+msgstr &quot;Skriv inn en dato i &#197;&#197;&#197;&#197;-MM-DD format.&quot;
 
 #: core/validators.py:128
 msgid &quot;Enter a valid time in HH:MM format.&quot;
-msgstr &quot;Skriv inn tiden i TT:MM formatet.&quot;
+msgstr &quot;Skriv inn tiden i TT:MM format.&quot;
 
 #: 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;Skriv inn dato og tid i &#197;&#197;&#197;&#197;-MM-DD TT:MM formatet.&quot;
+msgstr &quot;Skriv inn dato og tid i &#197;&#197;&#197;&#197;-MM-DD TT:MM format.&quot;
 
 #: core/validators.py:136
 msgid &quot;Enter a valid e-mail address.&quot;
@@ -1722,7 +1699,7 @@ msgstr &quot;Internettadressen %s peker ikke til et godkjent bilde.&quot;
 #, python-format
 msgid &quot;Phone numbers must be in XXX-XXX-XXXX format. \&quot;%s\&quot; is invalid.&quot;
 msgstr &quot;&quot;
-&quot;Telefon nummeret m&#229; v&#230;re i XXX-XXX-XXXX formatet. \&quot;%s\&quot; er ikke godkjent.&quot;
+&quot;Telefon nummeret m&#229; v&#230;re i XXX-XXX-XXXX format. \&quot;%s\&quot; er ikke godkjent.&quot;
 
 #: core/validators.py:167
 #, python-format
@@ -1731,7 +1708,7 @@ msgstr &quot;Internettadressen %s peker ikke til en godkjent QuickTime film.&quot;
 
 #: core/validators.py:171
 msgid &quot;A valid URL is required.&quot;
-msgstr &quot;En godkjent internettadresse er p&#229;budt.&quot;
+msgstr &quot;En godkjent internettadresse er p&#229;krevd.&quot;
 
 #: core/validators.py:185
 #, python-format
@@ -1739,7 +1716,7 @@ msgid &quot;&quot;
 &quot;Valid HTML is required. Specific errors are:\n&quot;
 &quot;%s&quot;
 msgstr &quot;&quot;
-&quot;Godkjent HTML er p&#229;budt. Feilene var:\n&quot;
+&quot;Godkjent HTML er p&#229;krevd. Feilene var:\n&quot;
 &quot;%s&quot;
 
 #: core/validators.py:192
@@ -1750,7 +1727,7 @@ msgstr &quot;Ikke godkjent XML: %s&quot;
 #: core/validators.py:202
 #, python-format
 msgid &quot;Invalid URL: %s&quot;
-msgstr &quot;Ikke godkjent internettadresse: %s&quot;
+msgstr &quot;Ikke godkjent URL: %s&quot;
 
 #: core/validators.py:206 core/validators.py:208
 #, python-format
@@ -1759,7 +1736,7 @@ msgstr &quot;Internettadresse f&#248;rer til en side som ikke virker.&quot;
 
 #: core/validators.py:214
 msgid &quot;Enter a valid U.S. state abbreviation.&quot;
-msgstr &quot;Skriv inn en godkjent amerikansk stats forkortelse.&quot;
+msgstr &quot;Skriv inn en godkjent amerikansk delstat forkortelse.&quot;
 
 #: core/validators.py:229
 #, python-format
@@ -1771,7 +1748,7 @@ msgstr[1] &quot;Pass munnen din! Ordene %s er ikke tillatt her.&quot;
 #: core/validators.py:236
 #, python-format
 msgid &quot;This field must match the '%s' field.&quot;
-msgstr &quot;Dette felte m&#229; v&#230;re det samme som i '%s' feltet.&quot;
+msgstr &quot;Dette feltet m&#229; v&#230;re det samme som i '%s' feltet.&quot;
 
 #: core/validators.py:255
 msgid &quot;Please enter something for at least one field.&quot;
@@ -1784,12 +1761,12 @@ msgstr &quot;Vennligst skriv inn noe i begge felta, eller la dem st&#229; blanke.&quot;
 #: core/validators.py:282
 #, python-format
 msgid &quot;This field must be given if %(field)s is %(value)s&quot;
-msgstr &quot;Dette feltet m&#229; bare brukes vist %(field)s er lik %(value)s&quot;
+msgstr &quot;Dette feltet m&#229; bare brukes hvis %(field)s er lik %(value)s&quot;
 
 #: core/validators.py:294
 #, python-format
 msgid &quot;This field must be given if %(field)s is not %(value)s&quot;
-msgstr &quot;Dette feltet m&#229; bare brukes vist %(field)s ikke er lik %(value)s&quot;
+msgstr &quot;Dette feltet m&#229; bare brukes hvis %(field)s ikke er lik %(value)s&quot;
 
 #: core/validators.py:313
 msgid &quot;Duplicate values are not allowed.&quot;
@@ -1824,13 +1801,13 @@ msgstr[1] &quot;Skriv inn et desimal tall med maksimum %s tall bak komma. &quot;
 #, python-format
 msgid &quot;Make sure your uploaded file is at least %s bytes big.&quot;
 msgstr &quot;&quot;
-&quot;Er du sikker p&#229; at fila du pr&#248;ver &#229; laste opp er minimum %s bytes stor?&quot;
+&quot;V&#230;r sikker p&#229; at fila du pr&#248;ver &#229; laste opp er minimum %s bytes stor.&quot;
 
 #: core/validators.py:363
 #, python-format
 msgid &quot;Make sure your uploaded file is at most %s bytes big.&quot;
 msgstr &quot;&quot;
-&quot;Er du sikker p&#229; at fila du pr&#248;ver &#229; laste opp er maksimum %s bytes stor?&quot;
+&quot;V&#230;r sikker p&#229; at fila du pr&#248;ver &#229; laste opp er maksimum %s bytes stor.&quot;
 
 #: core/validators.py:376
 msgid &quot;The format for this field is wrong.&quot;
@@ -1850,7 +1827,7 @@ msgstr &quot;Klarte ikke &#229; motta noe fra %s.&quot;
 msgid &quot;&quot;
 &quot;The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'.&quot;
 msgstr &quot;&quot;
-&quot;Tnternettadressen %(url)s returnerte en ikke godkjent Content-Type '%&quot;
+&quot;Internettadressen %(url)s returnerte en ikke godkjent Content-Type '%&quot;
 &quot;(contenttype)s'.&quot;
 
 #: core/validators.py:462
@@ -1859,7 +1836,7 @@ 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;Vennligst lukk taggen %(tag)s p&#229; linje %(line)s. (Linja starer med \&quot;%(start)&quot;
+&quot;Vennligst lukk taggen %(tag)s p&#229; linje %(line)s. (Linjen starer med \&quot;%(start)&quot;
 &quot;s\&quot;.)&quot;
 
 #: core/validators.py:466
@@ -1868,7 +1845,7 @@ 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;Noe av teksten som starter p&#229; linje %(line)s er ikke tillatt. (Linja starter &quot;
+&quot;Noe av teksten som starter p&#229; linje %(line)s er ikke tillatt. (Linjen starter &quot;
 &quot;med \&quot;%(start)s\&quot;.)&quot;
 
 #: core/validators.py:471
@@ -1877,7 +1854,7 @@ 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;%(attr)s\&quot; p&#229; linje %(line)s er ikke en godkjent tillegg. (Linja starter &quot;
+&quot;\&quot;%(attr)s\&quot; p&#229; linje %(line)s er ikke en godkjent tillegg. (Linjen starter &quot;
 &quot;med \&quot;%(start)s\&quot;.)&quot;
 
 #: core/validators.py:476
@@ -1886,7 +1863,7 @@ 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; p&#229; linje %(line)s er ikke en godkjent tag. (linja starter med &quot;
+&quot;\&quot;&lt;%(tag)s&gt;\&quot; p&#229; linje %(line)s er ikke en godkjent tag. (linjen starter med &quot;
 &quot;\&quot;%(start)s\&quot;.)&quot;
 
 #: core/validators.py:480
@@ -1895,7 +1872,7 @@ 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;En tag p&#229; linje %(line)s mangler en av de p&#229;bydte tillegga. (linja starter &quot;
+&quot;En tag p&#229; linje %(line)s mangler en av de p&#229;krevde attributtene. (linjen starter &quot;
 &quot;med \&quot;%(start)s\&quot;.)&quot;
 
 #: core/validators.py:485
@@ -1904,13 +1881,13 @@ 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;\&quot;%(attr)s\&quot; tillegg p&#229; linje $(line)s har en ikke godkjent verdi. (Linja &quot;
+&quot;\&quot;%(attr)s\&quot; tillegg p&#229; linje $(line)s har en ikke godkjent verdi. (Linjen &quot;
 &quot;starter med \&quot;%(start)s\&quot;.)&quot;
 
 #: db/models/manipulators.py:302
-#, fuzzy, python-format
+#, python-format
 msgid &quot;%(object)s with this %(type)s already exists for the given %(field)s.&quot;
-msgstr &quot;$(optname)s med %(fieldname)s finnes allerede.&quot;
+msgstr &quot;%(object)s med %(type)s finnes allerede for angitt %(field)s.&quot;
 
 #: db/models/fields/__init__.py:40
 #, python-format
@@ -1924,37 +1901,31 @@ msgid &quot;This field is required.&quot;
 msgstr &quot;Dette feltet er p&#229;krevd.&quot;
 
 #: db/models/fields/__init__.py:337
-#, fuzzy
 msgid &quot;This value must be an integer.&quot;
-msgstr &quot;Denne verdien m&#229; v&#230;re 'power' av %s.&quot;
+msgstr &quot;Denne verdien m&#229; v&#230;re et heltall.&quot;
 
 #: db/models/fields/__init__.py:369
-#, fuzzy
 msgid &quot;This value must be either True or False.&quot;
-msgstr &quot;Denne verdien m&#229; v&#230;re 'power' av %s.&quot;
+msgstr &quot;Denne verdien m&#229; v&#230;re enten \&quot;True\&quot; eller \&quot;False\&quot;.&quot;
 
 #: db/models/fields/__init__.py:385
-#, fuzzy
 msgid &quot;This field cannot be null.&quot;
-msgstr &quot;Dette feltet er feil.&quot;
+msgstr &quot;Dette feltet kan ikke v&#230;re null/tom.&quot;
 
 #: db/models/fields/__init__.py:562
-#, fuzzy
 msgid &quot;Enter a valid filename.&quot;
-msgstr &quot;Skriv inn en godkjent e-post adresse.&quot;
+msgstr &quot;Skriv inn et godkjent fil navn.&quot;
 
 #: db/models/fields/related.py:43
-#, fuzzy, python-format
+#, python-format
 msgid &quot;Please enter a valid %s.&quot;
-msgstr &quot;Vennligst skriv inn en godkjent IP adresse.&quot;
+msgstr &quot;Vennligst skriv inn en/et gyldig %s.&quot;
 
 #: db/models/fields/related.py:579
-#, fuzzy
 msgid &quot;Separate multiple IDs with commas.&quot;
 msgstr &quot;Separer Id-ene med kommaer.&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;
@@ -1965,14 +1936,14 @@ msgstr &quot;&quot;
 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;
-msgstr[1] &quot;&quot;
+msgstr[0] &quot;Skriv inn gyldige %(self)s ID-er. Verdien %(value)r er ikke gyldig.&quot;
+msgstr[1] &quot;Skriv inn gyldige %(self)s ID-er. Verdiene %(value)r er ikke gyldige.&quot;
 
 #: forms/__init__.py:380
-#, fuzzy, python-format
+#, 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;Sjekk at teksten er kortere enn %s bokstaver&quot;
+msgstr[0] &quot;Sjekk at teksten er kortere enn %s bokstav&quot;
 msgstr[1] &quot;Sjekk at teksten er kortere enn %s bokstaver&quot;
 
 #: forms/__init__.py:385
@@ -1982,7 +1953,7 @@ msgstr &quot;Det er ikke tillatt med flere linjer her.&quot;
 #: 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;Velg et av valga; '%(data)s' er ikke i %(choices)s.&quot;
+msgstr &quot;Velg et gyldig valg; '%(data)s' er ikke i %(choices)s.&quot;
 
 #: forms/__init__.py:645
 msgid &quot;The submitted file is empty.&quot;
@@ -2002,7 +1973,7 @@ msgstr &quot;Skriv inn et heltall mellom 0 og 32767.&quot;
 
 #: template/defaultfilters.py:379
 msgid &quot;yes,no,maybe&quot;
-msgstr &quot;&quot;
+msgstr &quot;ja,nei,kanskje&quot;
 
 #, fuzzy
 #~ msgid &quot;Comments&quot;</diff>
      <filename>django/conf/locale/no/LC_MESSAGES/django.po</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>django/conf/locale/no/LC_MESSAGES/djangojs.mo</filename>
    </modified>
    <modified>
      <diff>@@ -61,6 +61,15 @@ msgstr &quot;S&#248;ndag Mandag Tirsdag Onsdag Torsdag Fredag L&#248;rdag&quot;
 msgid &quot;S M T W T F S&quot;
 msgstr &quot;S M T O T F L&quot;
 
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid &quot;Show&quot;
+msgstr &quot;Vis&quot;
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid &quot;Hide&quot;
+msgstr &quot;Skjul&quot;
+
 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
 msgid &quot;Now&quot;
@@ -80,7 +89,7 @@ msgstr &quot;24.00&quot;
 
 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
 msgid &quot;6 a.m.&quot;
-msgstr &quot;18.00&quot;
+msgstr &quot;06.00&quot;
 
 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
 msgid &quot;Noon&quot;</diff>
      <filename>django/conf/locale/no/LC_MESSAGES/djangojs.po</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>django/conf/locale/pl/LC_MESSAGES/django.mo</filename>
    </modified>
    <modified>
      <diff>@@ -126,12 +126,10 @@ msgid &quot;approved by staff&quot;
 msgstr &quot;zaakceptowano&quot;
 
 #: contrib/comments/models.py:176
-#, fuzzy
 msgid &quot;free comment&quot;
 msgstr &quot;wolny komentarz&quot;
 
 #: contrib/comments/models.py:177
-#, fuzzy
 msgid &quot;free comments&quot;
 msgstr &quot;wolne komentarze&quot;
 
@@ -144,7 +142,6 @@ msgid &quot;score date&quot;
 msgstr &quot;data przyznania punkt&#243;w&quot;
 
 #: contrib/comments/models.py:237
-#, fuzzy
 msgid &quot;karma score&quot;
 msgstr &quot;ilo&#347;&#263; punkt&#243;w&quot;
 
@@ -243,6 +240,9 @@ msgid &quot;&quot;
 &quot;\n&quot;
 &quot;%(text)s&quot;
 msgstr &quot;&quot;
+&quot;Ten komentarze zosta&#322; dodany przez u&#380;ytkownika::\n&quot;
+&quot;\n&quot;
+&quot;%(text)s&quot;
 
 #: contrib/comments/views/comments.py:189
 #: contrib/comments/views/comments.py:280
@@ -257,19 +257,20 @@ msgstr &quot;Jedno lub wi&#281;cej wymaganych p&#243;l nie zosta&#322;o wype&#322;nionych&quot;
 #: contrib/comments/views/comments.py:197
 #: contrib/comments/views/comments.py:286
 msgid &quot;Somebody tampered with the comment form (security violation)&quot;
-msgstr &quot;&quot;
+msgstr &quot;Kto&#347; pr&#243;bowa&#322; obej&#347;&#263; zabezpieczenia formularza komentarzy&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;
+msgstr &quot;Formularz komentarza mia&#322; niepoprawny parametr 'target' -- ID obiektu by&#322;o &quot;
+&quot;niepoprawne&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;&quot;
+msgstr &quot;Formularz komentarza nie zapewni&#322; obiekt&#243;w 'preview' ani 'post'&quot;
 
 #: contrib/comments/templates/comments/form.html:6
 #: contrib/comments/templates/comments/form.html:8
@@ -600,7 +601,7 @@ msgstr &quot;Warto&#347;&#263; logiczna (True, False, None - prawda, fa&#322;sz lub nic)&quot;
 
 #: contrib/admin/views/doc.py:292
 msgid &quot;Relation to parent model&quot;
-msgstr &quot;&quot;
+msgstr &quot;Relacja do modelu rodzica&quot;
 
 #: contrib/admin/views/doc.py:293
 msgid &quot;Phone number&quot;
@@ -794,6 +795,9 @@ msgid &quot;&quot;
 &quot;objects, but your account doesn't have permission to delete the following &quot;
 &quot;types of objects:&quot;
 msgstr &quot;&quot;
+&quot;Skasowanie %(object_name)s '%(object)s' spowoduje kasacj&#281; zale&#380;nych &quot;
+&quot;obiekt&#243;w, lecz twoje uprawnienia nie pozwalaj&#261; na usuni&#281;cie nast&#281;puj&#261;cych &quot;
+&quot;typ&#243;w obiekt&#243;w:&quot;
 
 #: contrib/admin/templates/admin/delete_confirmation.html:21
 #, python-format
@@ -801,6 +805,8 @@ 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;Czy chcesz skasowa&#263; %(object_name)s \&quot;%(object)s\&quot;? Wszystkie &quot;
+&quot;zale&#380;ne obiekty zostan&#261; skasowane:&quot;
 
 #: contrib/admin/templates/admin/delete_confirmation.html:26
 msgid &quot;Yes, I'm sure&quot;
@@ -820,11 +826,10 @@ msgid &quot;View on site&quot;
 msgstr &quot;Poka&#380; na stronie&quot;
 
 #: contrib/admin/templates/admin/change_form.html:30
-#, fuzzy
 msgid &quot;Please correct the error below.&quot;
 msgid_plural &quot;Please correct the errors below.&quot;
 msgstr[0] &quot;Prosz&#281; popraw poni&#380;szy b&#322;&#261;d&quot;
-msgstr[1] &quot;Prosz&#281; popraw poni&#380;szy b&#322;&#261;d&quot;
+msgstr[1] &quot;Prosz&#281; popraw poni&#380;sze b&#322;&#281;dy&quot;
 
 #: contrib/admin/templates/admin/change_form.html:48
 msgid &quot;Ordering&quot;
@@ -965,11 +970,11 @@ msgstr &quot;Zesp&#243;&#322; %(site_name)s&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:3
 msgid &quot;Bookmarklets&quot;
-msgstr &quot;&quot;
+msgstr &quot;Zak&#322;adki&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:5
 msgid &quot;Documentation bookmarklets&quot;
-msgstr &quot;&quot;
+msgstr &quot;Zak&#322;adki Dokumentacji&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:9
 msgid &quot;&quot;
@@ -1094,6 +1099,8 @@ 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;Przyk&#322;ad: 'flatpages/contact_page'. Je&#380;eli nie podane system u&#380;yje &quot;
+&quot;'flatpages/default'.&quot;
 
 #: contrib/flatpages/models.py:14
 msgid &quot;registration required&quot;
@@ -1105,11 +1112,11 @@ msgstr &quot;Je&#380;eli zaznaczone - tylko zalogowani u&#380;ytkownicy b&#281;d&#261; mogli zobaczy
 
 #: contrib/flatpages/models.py:18
 msgid &quot;flat page&quot;
-msgstr &quot;&quot;
+msgstr &quot;strona statyczna&quot;
 
 #: contrib/flatpages/models.py:19
 msgid &quot;flat pages&quot;
-msgstr &quot;&quot;
+msgstr &quot;strony statyczne&quot;
 
 #: contrib/auth/models.py:13 contrib/auth/models.py:26
 msgid &quot;name&quot;
@@ -1117,7 +1124,7 @@ msgstr &quot;nazwa&quot;
 
 #: contrib/auth/models.py:15
 msgid &quot;codename&quot;
-msgstr &quot;&quot;
+msgstr &quot;nazwa kodowa&quot;
 
 #: contrib/auth/models.py:17
 msgid &quot;permission&quot;
@@ -1161,11 +1168,11 @@ msgstr &quot;U&#380;yj '[algo]$[salt]$[hexdigest]'&quot;
 
 #: contrib/auth/models.py:60
 msgid &quot;staff status&quot;
-msgstr &quot;stan w zespole&quot;
+msgstr &quot;w zespole&quot;
 
 #: contrib/auth/models.py:60
 msgid &quot;Designates whether the user can log into this admin site.&quot;
-msgstr &quot;Oznaczy czy u&#380;ytkownik mo&#380;e zalogowa&#263; si&#281; do panelu admina.&quot;
+msgstr &quot;Oznacza czy u&#380;ytkownik mo&#380;e zalogowa&#263; si&#281; do panelu admina.&quot;
 
 #: contrib/auth/models.py:61
 msgid &quot;active&quot;
@@ -1195,15 +1202,14 @@ msgstr &quot;&quot;
 msgid &quot;user permissions&quot;
 msgstr &quot;uprawnienia u&#380;ytkownika&quot;
 
+#kurwa
 #: contrib/auth/models.py:70
-#, fuzzy
 msgid &quot;user&quot;
-msgstr &quot;U&#380;ytkownik&quot;
+msgstr &quot;u&#380;ytkownik&quot;
 
 #: contrib/auth/models.py:71
-#, fuzzy
 msgid &quot;users&quot;
-msgstr &quot;Uzytkownicy&quot;
+msgstr &quot;u&#380;ytkownicy&quot;
 
 #: contrib/auth/models.py:76
 msgid &quot;Personal info&quot;
@@ -1222,7 +1228,6 @@ msgid &quot;Groups&quot;
 msgstr &quot;Grupy&quot;
 
 #: contrib/auth/models.py:219
-#, fuzzy
 msgid &quot;message&quot;
 msgstr &quot;wiadomo&#347;&#263;&quot;
 
@@ -1371,7 +1376,6 @@ msgid &quot;December&quot;
 msgstr &quot;Grudzie&#324;&quot;
 
 #: utils/dates.py:19
-#, fuzzy
 msgid &quot;jan&quot;
 msgstr &quot;sty&quot;
 
@@ -1472,11 +1476,10 @@ msgstr[0] &quot;dzie&#324;&quot;
 msgstr[1] &quot;dni&quot;
 
 #: utils/timesince.py:16
-#, fuzzy
 msgid &quot;hour&quot;
 msgid_plural &quot;hours&quot;
 msgstr[0] &quot;godzina&quot;
-msgstr[1] &quot;godzina&quot;
+msgstr[1] &quot;godzin&quot;
 
 #: utils/timesince.py:17
 msgid &quot;minute&quot;
@@ -1569,7 +1572,6 @@ msgid &quot;Slovak&quot;
 msgstr &quot;S&#322;owacki&quot;
 
 #: conf/global_settings.py:58
-#, fuzzy
 msgid &quot;Slovenian&quot;
 msgstr &quot;S&#322;owacki&quot;
 
@@ -1582,9 +1584,8 @@ msgid &quot;Swedish&quot;
 msgstr &quot;Szwedzki&quot;
 
 #: conf/global_settings.py:61
-#, fuzzy
 msgid &quot;Ukrainian&quot;
-msgstr &quot;Brazylijski&quot;
+msgstr &quot;Ukrai&#324;ski&quot;
 
 #: conf/global_settings.py:62
 msgid &quot;Simplified Chinese&quot;
@@ -1715,14 +1716,14 @@ msgstr &quot;Odno&#347;nik %s jest nieprawid&#322;owy.&quot;
 
 #: core/validators.py:214
 msgid &quot;Enter a valid U.S. state abbreviation.&quot;
-msgstr &quot;Wpisz poprawny kod stanu U.S.&quot;
+msgstr &quot;Wpisz poprawny kod stanu U.S.A.&quot;
 
 #: core/validators.py:229
-#, fuzzy, python-format
+#, python-format
 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;Nie wolno przeklina&#263;! S&#322;owo %s jest niedozwolone.&quot;
-msgstr[1] &quot;Nie wolno przeklina&#263;! S&#322;owo %s jest niedozwolone.&quot;
+msgstr[1] &quot;Nie wolno przeklina&#263;! S&#322;owa %s s&#261; niedozwolone.&quot;
 
 #: core/validators.py:236
 #, python-format
@@ -1745,11 +1746,11 @@ msgstr &quot;To pole musi by&#263; uzupe&#322;nione je&#347;li %(field)s jest %(value)s&quot;
 #: core/validators.py:294
 #, python-format
 msgid &quot;This field must be given if %(field)s is not %(value)s&quot;
-msgstr &quot;&quot;
+msgstr &quot;To pole musi by&#263; wype&#322;nione je&#380;eli %(field)s nie jest %(value)s&quot;
 
 #: core/validators.py:313
 msgid &quot;Duplicate values are not allowed.&quot;
-msgstr &quot;&quot;
+msgstr &quot;Duplikaty s&#261; niedozwolone.&quot;
 
 #: core/validators.py:336
 #, python-format
@@ -1761,20 +1762,20 @@ msgid &quot;Please enter a valid decimal number.&quot;
 msgstr &quot;Prosz&#281; wpisa&#263; poprawn&#261; liczb&#281; dziesi&#281;tn&#261;.&quot;
 
 #: core/validators.py:349
-#, fuzzy, python-format
+#, 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;Prosz&#281; wpisa&#263; poprawn&#261; liczb&#281; dziesi&#281;tn&#261;.&quot;
-msgstr[1] &quot;Prosz&#281; wpisa&#263; poprawn&#261; liczb&#281; dziesi&#281;tn&#261;.&quot;
+msgstr[0] &quot;Prosz&#281; wpisa&#263; poprawn&#261; liczb&#281; dziesi&#281;tn&#261; zawieraj&#261;c&#261; nie wi&#281;cej ni&#380;  %s cyfry.&quot;
+msgstr[1] &quot;Prosz&#281; wpisa&#263; poprawn&#261; liczb&#281; dziesi&#281;tn&#261; zawieraj&#261;c&#261; nie wi&#281;cej ni&#380;  %s cyfr.&quot;
 
 #: core/validators.py:352
-#, fuzzy, python-format
+#, 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;Prosz&#281; wpisa&#263; poprawn&#261; liczb&#281; dziesi&#281;tn&#261;.&quot;
-msgstr[1] &quot;Prosz&#281; wpisa&#263; poprawn&#261; liczb&#281; dziesi&#281;tn&#261;.&quot;
+msgstr[0] &quot;Prosz&#281; wpisa&#263; poprawn&#261; liczb&#281; dziesi&#281;tn&#261; z dok&#322;adno&#347;ci&#261; do %s miejsca po przecinku.&quot;
+msgstr[1] &quot;Prosz&#281; wpisa&#263; poprawn&#261; liczb&#281; dziesi&#281;tn&#261; z dok&#322;adno&#347;ci&#261; do %s miejsc po przecinku.&quot;
 
 #: core/validators.py:362
 #, python-format
@@ -1797,13 +1798,14 @@ msgstr &quot;To pole jest nieprawid&#322;owe.&quot;
 #: core/validators.py:426
 #, python-format
 msgid &quot;Could not retrieve anything from %s.&quot;
-msgstr &quot;Nie mo&#380;na otrzyma&#263; nic z %s.&quot;
+msgstr &quot;Nie mo&#380;na nic pobra&#263; z %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;&quot;
+&quot;URL %(url)s zwr&#243;ci&#322; niepoprawny Content-Type header '%(contenttype)s'.&quot;
 
 
 #: core/validators.py:462
@@ -1866,17 +1868,15 @@ msgstr &quot;To pole jest wymagane&quot;
 
 #: db/models/fields/__init__.py:337
 msgid &quot;This value must be an integer.&quot;
-msgstr &quot;&quot;
+msgstr &quot;Ta warto&#347;&#263; musi by&#263; liczb&#261; ca&#322;kowit&#261;&quot;
 
 #: db/models/fields/__init__.py:369
-#, fuzzy
 msgid &quot;This value must be either True or False.&quot;
-msgstr &quot;Warto&#347;&#263; logiczna (True, False - prawda lub fa&#322;sz)&quot;
+msgstr &quot;Ta warto&#347;&#263; musi by&#263; logiczna (True, False - prawda lub fa&#322;sz).&quot;
 
 #: db/models/fields/__init__.py:385
-#, fuzzy
 msgid &quot;This field cannot be null.&quot;
-msgstr &quot;To pole jest nieprawid&#322;owe.&quot;
+msgstr &quot;To pole nie mo&#380;e by&#263; puste.&quot;
 
 #: db/models/fields/__init__.py:562
 msgid &quot;Enter a valid filename.&quot;
@@ -1888,12 +1888,10 @@ msgid &quot;Please enter a valid %s.&quot;
 msgstr &quot;Prosz&#281; wpisa&#263; poprawne %s.&quot;
 
 #: db/models/fields/related.py:579
-#, fuzzy
 msgid &quot;Separate multiple IDs with commas.&quot;
 msgstr &quot;Oddziel kilka p&#243;l ID przecinkami.&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;
@@ -1909,11 +1907,11 @@ msgstr[0] &quot;&quot;
 msgstr[1] &quot;&quot;
 
 #: forms/__init__.py:380
-#, fuzzy, python-format
+#, 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;Upewnij si&#281;, &#380;e jest mniej ni&#380; %s znak&#243;w.&quot;
-msgstr[1] &quot;Upewnij si&#281;, &#380;e jest mniej ni&#380; %s znak&#243;w.&quot;
+msgstr[0] &quot;Upewnij si&#281;, &#380;e tekst ma mniej ni&#380; %s znak.&quot;
+msgstr[1] &quot;Upewnij si&#281;, &#380;e tekst ma mniej ni&#380; %s znak&#243;w.&quot;
 
 #: forms/__init__.py:385
 msgid &quot;Line breaks are not allowed here.&quot;</diff>
      <filename>django/conf/locale/pl/LC_MESSAGES/django.po</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>django/conf/locale/ru/LC_MESSAGES/django.mo</filename>
    </modified>
    <modified>
      <diff>@@ -8,12 +8,13 @@ msgstr &quot;&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: 2006-08-14 18:08+0300\n&quot;
-&quot;Last-Translator: Grigory Fateyev &lt;greg@dial.com.ru&gt;\n&quot;
+&quot;PO-Revision-Date: 2006-09-07 15:28+0300\n&quot;
+&quot;Last-Translator: Alexander Yakovlev &lt;AYakovlev@rambler.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;Plural-Forms: nplurals=3; plural=n%10==1 &amp;&amp; n%100!=11 ? 0 : n%10&gt;=2 &amp;&amp; n%10&lt;=4 &amp;&amp; (n%100&lt;10 || n%100&gt;=20) ? 1 : 2;\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;
@@ -25,81 +26,81 @@ msgstr &quot;ID &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;&#1072;&quot;
 
 #: contrib/comments/models.py:68
 msgid &quot;headline&quot;
-msgstr &quot;&#1079;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082;&quot;
+msgstr &quot;&#1047;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082;&quot;
 
 #: 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;
+msgstr &quot;&#1050;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1081;&quot;
 
 #: contrib/comments/models.py:70
 msgid &quot;rating #1&quot;
-msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; #1&quot;
+msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; &#8470;1&quot;
 
 #: contrib/comments/models.py:71
 msgid &quot;rating #2&quot;
-msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; #2&quot;
+msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; &#8470;2&quot;
 
 #: contrib/comments/models.py:72
 msgid &quot;rating #3&quot;
-msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; #3&quot;
+msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; &#8470;3&quot;
 
 #: contrib/comments/models.py:73
 msgid &quot;rating #4&quot;
-msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; #4&quot;
+msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; &#8470;4&quot;
 
 #: contrib/comments/models.py:74
 msgid &quot;rating #5&quot;
-msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; #5&quot;
+msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; &#8470;5&quot;
 
 #: contrib/comments/models.py:75
 msgid &quot;rating #6&quot;
-msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; #6&quot;
+msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; &#8470;6&quot;
 
 #: contrib/comments/models.py:76
 msgid &quot;rating #7&quot;
-msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; #7&quot;
+msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; &#8470;7&quot;
 
 #: contrib/comments/models.py:77
 msgid &quot;rating #8&quot;
-msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; #8&quot;
+msgstr &quot;&#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; &#8470;8&quot;
 
 #: contrib/comments/models.py:82
 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;
+msgstr &quot;&#1044;&#1086;&#1087;&#1091;&#1089;&#1090;&#1080;&#1084;&#1099;&#1081; &#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075;&quot;
 
 #: 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;
+msgstr &quot;&#1044;&#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
 msgid &quot;is public&quot;
-msgstr &quot;&#1087;&#1091;&#1073;&#1083;&#1080;&#1095;&#1085;&#1099;&#1081;&quot;
+msgstr &quot;&#1055;&#1091;&#1073;&#1083;&#1080;&#1095;&#1085;&#1099;&#1081;&quot;
 
 #: 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;
+msgstr &quot;IP-&#1072;&#1076;&#1088;&#1077;&#1089;&quot;
 
 #: contrib/comments/models.py:86
 msgid &quot;is removed&quot;
-msgstr &quot;&#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&quot;
+msgstr &quot;&#1059;&#1076;&#1072;&#1083;&#1077;&#1085;&quot;
 
 #: contrib/comments/models.py:86
 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;
+msgstr &quot;&#1054;&#1090;&#1084;&#1077;&#1090;&#1100;&#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
 msgid &quot;comments&quot;
-msgstr &quot;&#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1080;&quot;
+msgstr &quot;&#1050;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1080;&quot;
 
 #: 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;
+msgstr &quot;&#1054;&#1073;&#1098;&#1077;&#1082;&#1090; &#1089;&#1086;&#1076;&#1077;&#1088;&#1078;&#1080;&#1084;&#1086;&#1075;&#1086;&quot;
 
 #: contrib/comments/models.py:159
 #, python-format
@@ -110,7 +111,7 @@ msgid &quot;&quot;
 &quot;\n&quot;
 &quot;http://%(domain)s%(url)s&quot;
 msgstr &quot;&quot;
-&quot;&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1083;  %(user)s  %(date)s\n&quot;
+&quot;&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1083; %(user)s %(date)s\n&quot;
 &quot;\n&quot;
 &quot;%(comment)s\n&quot;
 &quot;\n&quot;
@@ -118,15 +119,15 @@ msgstr &quot;&quot;
 
 #: contrib/comments/models.py:168
 msgid &quot;person's name&quot;
-msgstr &quot;&#1080;&#1084;&#1103; &#1095;&#1077;&#1083;&#1086;&#1074;&#1077;&#1082;&#1072;&quot;
+msgstr &quot;&#1048;&#1084;&#1103; &#1095;&#1077;&#1083;&#1086;&#1074;&#1077;&#1082;&#1072;&quot;
 
 #: contrib/comments/models.py:171
 msgid &quot;ip address&quot;
-msgstr &quot;ip &#1072;&#1076;&#1088;&#1077;&#1089;:&quot;
+msgstr &quot;IP-&#1072;&#1076;&#1088;&#1077;&#1089;:&quot;
 
 #: contrib/comments/models.py:173
 msgid &quot;approved by staff&quot;
-msgstr &quot;&#1086;&#1076;&#1086;&#1073;&#1088;&#1077;&#1085;&#1086; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1077;&#1081;&quot;
+msgstr &quot;&#1054;&#1076;&#1086;&#1073;&#1088;&#1077;&#1085;&#1086; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1077;&#1081;&quot;
 
 #: contrib/comments/models.py:176
 msgid &quot;free comment&quot;
@@ -138,24 +139,24 @@ msgstr &quot;&#1057;&#1074;&#1086;&#1073;&#1086;&#1076;&#1085;&#1099;&#1077; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1080;&quot;
 
 #: contrib/comments/models.py:233
 msgid &quot;score&quot;
-msgstr &quot;&#1089;&#1095;&#1105;&#1090;&quot;
+msgstr &quot;&#1057;&#1095;&#1105;&#1090;&quot;
 
 #: contrib/comments/models.py:234
 msgid &quot;score date&quot;
-msgstr &quot;&#1089;&#1095;&#1105;&#1090; &#1074;&#1088;&#1077;&#1084;&#1077;&#1085;&#1080;&quot;
+msgstr &quot;&#1042;&#1088;&#1077;&#1084;&#1103; &#1089;&#1095;&#1105;&#1090;&#1072;&quot;
 
 #: contrib/comments/models.py:237
 msgid &quot;karma score&quot;
-msgstr &quot;&#1050;&#1072;&#1088;&#1084;&#1072; &#1089;&#1095;&#1105;&#1090;&quot;
+msgstr &quot;&#1050;&#1072;&#1088;&#1084;&#1080;&#1095;&#1077;&#1089;&#1082;&#1080;&#1081; &#1089;&#1095;&#1105;&#1090;&quot;
 
 #: contrib/comments/models.py:238
 msgid &quot;karma scores&quot;
-msgstr &quot;&#1050;&#1072;&#1088;&#1084;&#1072; &#1089;&#1095;&#1077;&#1090;&#1072;&quot;
+msgstr &quot;&#1050;&#1072;&#1088;&#1084;&#1080;&#1095;&#1077;&#1089;&#1082;&#1080;&#1077; &#1089;&#1095;&#1077;&#1090;&#1072;&quot;
 
 #: contrib/comments/models.py:242
 #, python-format
 msgid &quot;%(score)d rating by %(user)s&quot;
-msgstr &quot;%(score)d &#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; %(user)s&quot;
+msgstr &quot;%(score)d &#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103; %(user)s&quot;
 
 #: contrib/comments/models.py:258
 #, python-format
@@ -164,21 +165,21 @@ msgid &quot;&quot;
 &quot;\n&quot;
 &quot;%(text)s&quot;
 msgstr &quot;&quot;
-&quot;&#1069;&#1090;&#1086;&#1090; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1081; &#1073;&#1099;&#1083; &#1086;&#1090;&#1084;&#1077;&#1095;&#1077;&#1085; %(user)s:\n&quot;
+&quot;&#1069;&#1090;&#1086;&#1090; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1081; &#1073;&#1099;&#1083; &#1086;&#1090;&#1084;&#1077;&#1095;&#1077;&#1085; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1077;&#1084; %(user)s:\n&quot;
 &quot;\n&quot;
 &quot;%(text)s&quot;
 
 #: contrib/comments/models.py:265
 msgid &quot;flag date&quot;
-msgstr &quot;&#1086;&#1090;&#1084;&#1077;&#1090;&#1082;&#1072; &#1076;&#1072;&#1090;&#1099;&quot;
+msgstr &quot;&#1044;&#1072;&#1090;&#1072; &#1086;&#1090;&#1084;&#1077;&#1090;&#1082;&#1080;&quot;
 
 #: contrib/comments/models.py:268
 msgid &quot;user flag&quot;
-msgstr &quot;&#1055;&#1088;&#1080;&#1079;&#1085;&#1072;&#1082; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;&quot;
+msgstr &quot;&#1054;&#1090;&#1084;&#1077;&#1090;&#1082;&#1072; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;&quot;
 
 #: contrib/comments/models.py:269
 msgid &quot;user flags&quot;
-msgstr &quot;&#1055;&#1088;&#1080;&#1079;&#1085;&#1072;&#1082;&#1080; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;&quot;
+msgstr &quot;&#1054;&#1090;&#1084;&#1077;&#1090;&#1082;&#1080; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;&quot;
 
 #: contrib/comments/models.py:273
 #, python-format
@@ -187,11 +188,11 @@ msgstr &quot;&#1054;&#1090;&#1084;&#1077;&#1095;&#1077;&#1085; %r&quot;
 
 #: contrib/comments/models.py:278
 msgid &quot;deletion date&quot;
-msgstr &quot;&#1076;&#1072;&#1090;&#1072; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1080;&#1103;&quot;
+msgstr &quot;&#1044;&#1072;&#1090;&#1072; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1080;&#1103;&quot;
 
 #: contrib/comments/models.py:280
 msgid &quot;moderator deletion&quot;
-msgstr &quot;&#1059;&#1076;&#1072;&#1083;&#1077;&#1085;&#1085;&#1086; &#1084;&#1086;&#1076;&#1077;&#1088;&#1072;&#1090;&#1086;&#1088;&#1086;&#1084;&quot;
+msgstr &quot;&#1059;&#1076;&#1072;&#1083;&#1077;&#1085;&#1080;&#1077; &#1084;&#1086;&#1076;&#1077;&#1088;&#1072;&#1090;&#1086;&#1088;&#1086;&#1084;&quot;
 
 #: contrib/comments/models.py:281
 msgid &quot;moderator deletions&quot;
@@ -216,7 +217,7 @@ 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;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;
+msgstr &quot;&#1069;&#1090;&#1086;&#1090; &#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075; &#1086;&#1073;&#1103;&#1079;&#1072;&#1090;&#1077;&#1083;&#1077;&#1085;, &#1090;&#1072;&#1082; &#1082;&#1072;&#1082; &#1074;&#1099; &#1091;&#1078;&#1077; &#1074;&#1074;&#1077;&#1083;&#1080; &#1082;&#1072;&#1082; &#1084;&#1080;&#1085;&#1080;&#1084;&#1091;&#1084; &#1077;&#1097;&#1077; &#1086;&#1076;&#1080;&#1085; &#1088;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075;.&quot;
 
 #: contrib/comments/views/comments.py:112
 #, python-format
@@ -229,7 +230,17 @@ msgid_plural &quot;&quot;
 &quot;\n&quot;
 &quot;%(text)s&quot;
 msgstr[0] &quot;&quot;
+&quot;&#1069;&#1090;&#1086;&#1090; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1081; &#1089;&#1076;&#1077;&#1083;&#1072;&#1085; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1077;&#1084;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1081; &#1086;&#1090;&#1087;&#1088;&#1072;&#1074;&#1080;&#1083; &#1084;&#1077;&#1085;&#1100;&#1096;&#1077; %(count)s &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1103;:\n&quot;
+&quot;\n&quot;
+&quot;%(text)s&quot;
 msgstr[1] &quot;&quot;
+&quot;&#1069;&#1090;&#1086;&#1090; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1081; &#1089;&#1076;&#1077;&#1083;&#1072;&#1085; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1077;&#1084;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1081; &#1086;&#1090;&#1087;&#1088;&#1072;&#1074;&#1080;&#1083; &#1084;&#1077;&#1085;&#1100;&#1096;&#1077; %(count)s &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1077;&#1074;:\n&quot;
+&quot;\n&quot;
+&quot;%(text)s&quot;
+msgstr[2] &quot;&quot;
+&quot;&#1069;&#1090;&#1086;&#1090; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1081; &#1089;&#1076;&#1077;&#1083;&#1072;&#1085; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1077;&#1084;, &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1081; &#1086;&#1090;&#1087;&#1088;&#1072;&#1074;&#1080;&#1083; &#1084;&#1077;&#1085;&#1100;&#1096;&#1077; %(count)s &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1077;&#1074;:\n&quot;
+&quot;\n&quot;
+&quot;%(text)s&quot;
 
 #: contrib/comments/views/comments.py:117
 #, python-format
@@ -238,14 +249,14 @@ msgid &quot;&quot;
 &quot;\n&quot;
 &quot;%(text)s&quot;
 msgstr &quot;&quot;
-&quot;&#1050;&#1086;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1081; &#1073;&#1099;&#1083; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085; &#1085;&#1076;&#1086;&#1074;&#1077;&#1088;&#1077;&#1085;&#1085;&#1099;&#1084; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1077;&#1084;:\n&quot;
+&quot;&#1050;&#1086;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1081; &#1073;&#1099;&#1083; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085; &#1085;&#1077;&#1076;&#1086;&#1074;&#1077;&#1088;&#1077;&#1085;&#1085;&#1099;&#1084; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1077;&#1084;:\n&quot;
 &quot;\n&quot;
 &quot;%(text)s&quot;
 
 #: contrib/comments/views/comments.py:189
 #: contrib/comments/views/comments.py:280
 msgid &quot;Only POSTs are allowed&quot;
-msgstr &quot;&#1058;&#1086;&#1083;&#1100;&#1082;&#1086; POST&#1099; &#1088;&#1072;&#1079;&#1088;&#1077;&#1096;&#1077;&#1085;&#1099;&quot;
+msgstr &quot;&#1056;&#1072;&#1079;&#1088;&#1077;&#1096;&#1077;&#1085;&#1099; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; POST&#1099;&quot;
 
 #: contrib/comments/views/comments.py:193
 #: contrib/comments/views/comments.py:284
@@ -255,17 +266,17 @@ msgstr &quot;&#1054;&#1076;&#1085;&#1086; &#1080;&#1083;&#1080; &#1073;&#1086;&#1083;&#1100;&#1096;&#1077; &#1086;&#1073;&#1103;&#1079;&#1072;&#1090;&#1077;&#1083;&#1100;&#1085;&#1099;&#1093; &#1087;&#1086;&#1083;&#1077;&#1081; &#1085;&#1077; &#1073;
 #: contrib/comments/views/comments.py:197
 #: contrib/comments/views/comments.py:286
 msgid &quot;Somebody tampered with the comment form (security violation)&quot;
-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; (&#1085;&#1072;&#1088;&#1091;&#1096;&#1077;&#1085;&#1080;&#1077; &#1073;&#1077;&#1079;&#1086;&#1087;&#1072;&#1089;&#1085;&#1086;&#1089;&#1090;&#1080;)&quot;
+msgstr &quot;&#1050;&#1090;&#1086;-&#1090;&#1086; &#1074;&#1084;&#1077;&#1096;&#1072;&#1083;&#1089;&#1103; &#1074; &#1092;&#1086;&#1088;&#1084;&#1091; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1103; (&#1085;&#1072;&#1088;&#1091;&#1096;&#1077;&#1085;&#1080;&#1077; &#1073;&#1077;&#1079;&#1086;&#1087;&#1072;&#1089;&#1085;&#1086;&#1089;&#1090;&#1080;)&quot;
 
 #: contrib/comments/views/comments.py:207
 #: contrib/comments/views/comments.py:292
 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;
+msgstr &quot;&#1060;&#1086;&#1088;&#1084;&#1072; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1103; &#1080;&#1084;&#1077;&#1083;&#1072; &#1085;&#1077;&#1074;&#1077;&#1088;&#1085;&#1099;&#1081; &#1087;&#1072;&#1088;&#1072;&#1084;&#1077;&#1090;&#1088; 'target' -- ID &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;&#1072; &#1085;&#1077;&#1074;&#1077;&#1088;&#1077;&#1085;&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;&#1060;&#1086;&#1088;&#1084;&#1072; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1103; &#1085;&#1077; &#1086;&#1073;&#1077;&#1089;&#1087;&#1077;&#1095;&#1080;&#1074;&#1072;&#1077;&#1090; &#1080; 'preview' &#1080;&#1083;&#1080; 'post'&quot;
+msgstr &quot;&#1060;&#1086;&#1088;&#1084;&#1072; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1103; &#1085;&#1077; &#1087;&#1088;&#1077;&#1076;&#1086;&#1089;&#1090;&#1072;&#1074;&#1080;&#1083;&#1072; &#1085;&#1080; '&#1087;&#1088;&#1077;&#1076;&#1087;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;', &#1085;&#1080; '&#1086;&#1090;&#1087;&#1088;&#1072;&#1074;&#1080;&#1090;&#1100;'&quot;
 
 #: contrib/comments/templates/comments/form.html:6
 #: contrib/comments/templates/comments/form.html:8
@@ -310,7 +321,7 @@ msgstr &quot;&#1056;&#1077;&#1081;&#1090;&#1080;&#1085;&#1075;&#1080;&quot;
 #: contrib/comments/templates/comments/form.html:12
 #: contrib/comments/templates/comments/form.html:23
 msgid &quot;Required&quot;
-msgstr &quot;&#1053;&#1077;&#1086;&#1073;&#1093;&#1086;&#1076;&#1080;&#1084;&#1086;&#1077;&quot;
+msgstr &quot;&#1054;&#1073;&#1103;&#1079;&#1072;&#1090;&#1077;&#1083;&#1100;&#1085;&#1086;&#1077;&quot;
 
 #: contrib/comments/templates/comments/form.html:12
 #: contrib/comments/templates/comments/form.html:23
@@ -329,11 +340,11 @@ msgstr &quot;&#1050;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1081;:&quot;
 #: contrib/comments/templates/comments/form.html:32
 #: contrib/comments/templates/comments/freeform.html:9
 msgid &quot;Preview comment&quot;
-msgstr &quot;&#1055;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1103;&quot;
+msgstr &quot;&#1055;&#1088;&#1077;&#1076;&#1087;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1103;&quot;
 
 #: contrib/comments/templates/comments/freeform.html:4
 msgid &quot;Your name:&quot;
-msgstr &quot;&#1080;&#1084;&#1103; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;:&quot;
+msgstr &quot;&#1048;&#1084;&#1103; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;:&quot;
 
 #: contrib/admin/filterspecs.py:40
 #, python-format
@@ -341,7 +352,7 @@ 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;h3&gt;&#1055;&#1086; %s:&lt;/h3&gt;\n&quot;
 &quot;&lt;ul&gt;\n&quot;
 
 #: contrib/admin/filterspecs.py:70
@@ -384,7 +395,7 @@ msgstr &quot;&#1053;&#1077;&#1080;&#1079;&#1074;&#1077;&#1089;&#1090;&#1085;&#1086;&quot;
 
 #: contrib/admin/models.py:16
 msgid &quot;action time&quot;
-msgstr &quot;&#1074;&#1088;&#1077;&#1084;&#1103; &#1076;&#1077;&#1081;&#1089;&#1090;&#1074;&#1080;&#1103;&quot;
+msgstr &quot;&#1042;&#1088;&#1077;&#1084;&#1103; &#1076;&#1077;&#1081;&#1089;&#1090;&#1074;&#1080;&#1103;&quot;
 
 #: contrib/admin/models.py:19
 msgid &quot;object id&quot;
@@ -392,23 +403,23 @@ msgstr &quot;id &#1086;&#1073;&#1100;&#1077;&#1082;&#1090;&#1072;&quot;
 
 #: contrib/admin/models.py:20
 msgid &quot;object repr&quot;
-msgstr &quot;&#1087;&#1088;&#1077;&#1076;&#1089;&#1090;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1086;&#1073;&#1100;&#1077;&#1082;&#1090;&#1072;&quot;
+msgstr &quot;&#1055;&#1088;&#1077;&#1076;&#1089;&#1090;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1086;&#1073;&#1100;&#1077;&#1082;&#1090;&#1072;&quot;
 
 #: contrib/admin/models.py:21
 msgid &quot;action flag&quot;
-msgstr &quot;&#1086;&#1090;&#1084;&#1077;&#1090;&#1082;&#1072; &#1076;&#1077;&#1081;&#1089;&#1090;&#1074;&#1080;&#1103;&quot;
+msgstr &quot;&#1054;&#1090;&#1084;&#1077;&#1090;&#1082;&#1072; &#1076;&#1077;&#1081;&#1089;&#1090;&#1074;&#1080;&#1103;&quot;
 
 #: contrib/admin/models.py:22
 msgid &quot;change message&quot;
-msgstr &quot;&#1080;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; &#1089;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1077;&quot;
+msgstr &quot;&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; &#1089;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1077;&quot;
 
 #: contrib/admin/models.py:25
 msgid &quot;log entry&quot;
-msgstr &quot;&#1078;&#1091;&#1088;&#1085;&#1072;&#1083;&#1100;&#1085;&#1072;&#1103; &#1079;&#1072;&#1087;&#1080;&#1089;&#1100;&quot;
+msgstr &quot;&#1046;&#1091;&#1088;&#1085;&#1072;&#1083;&#1100;&#1085;&#1072;&#1103; &#1079;&#1072;&#1087;&#1080;&#1089;&#1100;&quot;
 
 #: contrib/admin/models.py:26
 msgid &quot;log entries&quot;
-msgstr &quot;&#1078;&#1091;&#1088;&#1085;&#1072;&#1083;&#1100;&#1085;&#1099;&#1077; &#1079;&#1072;&#1087;&#1080;&#1089;&#1080;&quot;
+msgstr &quot;&#1046;&#1091;&#1088;&#1085;&#1072;&#1083;&#1100;&#1085;&#1099;&#1077; &#1079;&#1072;&#1087;&#1080;&#1089;&#1080;&quot;
 
 #: contrib/admin/templatetags/admin_list.py:228
 msgid &quot;All dates&quot;
@@ -418,7 +429,7 @@ msgstr &quot;&#1042;&#1089;&#1077; &#1076;&#1072;&#1090;&#1099;&quot;
 #: contrib/auth/forms.py:36
 #: contrib/auth/forms.py:41
 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;
+msgstr &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1074;&#1077;&#1088;&#1085;&#1099;&#1077; &#1080;&#1084;&#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
@@ -427,11 +438,11 @@ msgstr &quot;&#1042;&#1093;&#1086;&#1076;&quot;
 
 #: contrib/admin/views/decorators.py:61
 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;
+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; &#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;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;
+msgstr &quot;&#1055;&#1086;&#1093;&#1086;&#1078;&#1077;, &#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;
@@ -440,7 +451,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;&#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;
+msgstr &quot;&#1042;&#1072;&#1096; &#1072;&#1076;&#1088;&#1077;&#1089; &#1101;&#1083;&#1077;&#1082;&#1090;&#1088;&#1086;&#1085;&#1085;&#1086;&#1081; &#1087;&#1086;&#1095;&#1090;&#1099; &#1085;&#1077; &#1103;&#1074;&#1083;&#1103;&#1077;&#1090;&#1089;&#1103; &#1074;&#1072;&#1096;&#1080;&#1084; &#1080;&#1084;&#1077;&#1085;&#1077;&#1084; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#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;
@@ -449,12 +460,12 @@ 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;
 #: contrib/admin/views/main.py:260
 #, python-format
 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;
+msgstr &quot;%(name)s \&quot;%(obj)s\&quot; &#1073;&#1099;&#1083; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;.&quot;
 
 #: 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;
+msgstr &quot;&#1053;&#1080;&#1078;&#1077; &#1084;&#1086;&#1078;&#1085;&#1086; &#1089;&#1085;&#1086;&#1074;&#1072; &#1088;&#1077;&#1076;&#1072;&#1082;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1077;&#1075;&#1086;&quot;
 
 #: contrib/admin/views/main.py:272
 #: contrib/admin/views/main.py:357
@@ -470,7 +481,7 @@ msgstr &quot;&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; %s&quot;
 #: contrib/admin/views/main.py:336
 #, python-format
 msgid &quot;Added %s.&quot;
-msgstr &quot;&#1044;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;&#1086; %s&quot;
+msgstr &quot;&#1044;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085; %s.&quot;
 
 #: contrib/admin/views/main.py:336
 #: contrib/admin/views/main.py:338
@@ -481,12 +492,12 @@ msgstr &quot;&#1080;&quot;
 #: contrib/admin/views/main.py:338
 #, python-format
 msgid &quot;Changed %s.&quot;
-msgstr &quot;&#1048;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1086; %s.&quot;
+msgstr &quot;&#1048;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085; %s.&quot;
 
 #: contrib/admin/views/main.py:340
 #, python-format
 msgid &quot;Deleted %s.&quot;
-msgstr &quot;&#1059;&#1076;&#1072;&#1083;&#1077;&#1085;&#1086; %s.&quot;
+msgstr &quot;&#1059;&#1076;&#1072;&#1083;&#1077;&#1085; %s.&quot;
 
 #: contrib/admin/views/main.py:343
 msgid &quot;No fields changed.&quot;
@@ -495,12 +506,12 @@ 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;%(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;
+msgstr &quot;%(name)s \&quot;%(obj)s\&quot; &#1073;&#1099;&#1083; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;.&quot;
 
 #: contrib/admin/views/main.py:354
 #, python-format
 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;
+msgstr &quot;%(name)s \&quot;%(obj)s\&quot; &#1073;&#1099;&#1083; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;. &#1053;&#1080;&#1078;&#1077; &#1084;&#1086;&#1078;&#1085;&#1086; &#1089;&#1085;&#1086;&#1074;&#1072; &#1088;&#1077;&#1076;&#1072;&#1082;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1077;&#1075;&#1086;.&quot;
 
 #: contrib/admin/views/main.py:392
 #, python-format
@@ -510,17 +521,17 @@ msgstr &quot;&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; %s&quot;
 #: contrib/admin/views/main.py:470
 #, python-format
 msgid &quot;One or more %(fieldname)s in %(name)s: %(obj)s&quot;
-msgstr &quot;&#1054;&#1076;&#1085;&#1086; &#1080;&#1083;&#1080; &#1073;&#1086;&#1083;&#1077;&#1077;  %(fieldname)s &#1074; %(name)s: %(obj)s&quot;
+msgstr &quot;&#1054;&#1076;&#1080;&#1085; &#1080;&#1083;&#1080; &#1073;&#1086;&#1083;&#1077;&#1077;  %(fieldname)s &#1074; %(name)s: %(obj)s&quot;
 
 #: contrib/admin/views/main.py:475
 #, python-format
 msgid &quot;One or more %(fieldname)s in %(name)s:&quot;
-msgstr &quot;&#1054;&#1076;&#1085;&#1086; &#1080;&#1083;&#1080; &#1073;&#1086;&#1083;&#1077;&#1077; %(fieldname)s &#1074; %(name)s:&quot;
+msgstr &quot;&#1054;&#1076;&#1080;&#1085; &#1080;&#1083;&#1080; &#1073;&#1086;&#1083;&#1077;&#1077; %(fieldname)s &#1074; %(name)s:&quot;
 
 #: contrib/admin/views/main.py:508
 #, python-format
 msgid &quot;The %(name)s \&quot;%(obj)s\&quot; was deleted successfully.&quot;
-msgstr &quot;%(name)s \&quot;%(obj)s\&quot; &#1073;&#1099;&#1083;&#1086; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1086;.&quot;
+msgstr &quot;%(name)s \&quot;%(obj)s\&quot; &#1073;&#1099;&#1083; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;.&quot;
 
 #: contrib/admin/views/main.py:511
 msgid &quot;Are you sure?&quot;
@@ -529,7 +540,7 @@ msgstr &quot;&#1042;&#1099; &#1091;&#1074;&#1077;&#1088;&#1077;&#1085;&#1099;?&quot;
 #: contrib/admin/views/main.py:533
 #, python-format
 msgid &quot;Change history: %s&quot;
-msgstr &quot;&#1048;&#1079;&#1084;&#1077;&#1085;&#1080; &#1080;&#1089;&#1090;&#1086;&#1088;&#1080;&#1102;: %s&quot;
+msgstr &quot;&#1048;&#1089;&#1090;&#1086;&#1088;&#1080;&#1103; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1080;&#1081;: %s&quot;
 
 #: contrib/admin/views/main.py:565
 #, python-format
@@ -574,7 +585,7 @@ msgstr &quot;&#1044;&#1072;&#1090;&#1072; (&#1089; &#1091;&#1082;&#1072;&#1079;&#1072;&#1085;&#1080;&#1077;&#1084; &#1074;&#1088;&#1077;&#1084;&#1077;&#1085;&#1080;)&quot;
 
 #: contrib/admin/views/doc.py:283
 msgid &quot;E-mail address&quot;
-msgstr &quot;E-mail &#1072;&#1076;&#1088;&#1077;&#1089;&quot;
+msgstr &quot;&#1040;&#1076;&#1088;&#1077;&#1089; &#1101;&#1083;&#1077;&#1082;&#1090;&#1088;&#1086;&#1085;&#1085;&#1086;&#1081; &#1087;&#1086;&#1095;&#1090;&#1099;&quot;
 
 #: contrib/admin/views/doc.py:284
 #: contrib/admin/views/doc.py:287
@@ -591,7 +602,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;&#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;
+msgstr &quot;&#1057;&#1074;&#1103;&#1079;&#1100; &#1089; &#1088;&#1086;&#1076;&#1080;&#1090;&#1077;&#1083;&#1100;&#1089;&#1082;&#1086;&#1081; &#1084;&#1086;&#1076;&#1077;&#1083;&#1100;&#1102;&quot;
 
 #: contrib/admin/views/doc.py:293
 msgid &quot;Phone number&quot;
@@ -612,11 +623,11 @@ msgstr &quot;URL&quot;
 
 #: contrib/admin/views/doc.py:301
 msgid &quot;U.S. state (two uppercase letters)&quot;
-msgstr &quot;&#1064;&#1090;&#1072;&#1090; &#1057;&#1064;&#1040; (&#1076;&#1074;&#1072; &#1079;&#1072;&#1075;&#1083;&#1072;&#1074;&#1085;&#1099;&#1093; &#1089;&#1080;&#1084;&#1074;&#1086;&#1083;&#1072;)&quot;
+msgstr &quot;&#1064;&#1090;&#1072;&#1090; &#1057;&#1064;&#1040; (&#1076;&#1074;&#1077; &#1079;&#1072;&#1075;&#1083;&#1072;&#1074;&#1085;&#1099;&#1077; &#1073;&#1091;&#1082;&#1074;&#1099;)&quot;
 
 #: contrib/admin/views/doc.py:302
 msgid &quot;XML text&quot;
-msgstr &quot;XML &#1090;&#1077;&#1082;&#1089;&#1090;&quot;
+msgstr &quot;&#1058;&#1077;&#1082;&#1089;&#1090; XML&quot;
 
 #: contrib/admin/templates/admin/object_history.html:3
 #: contrib/admin/templates/admin/change_list.html:5
@@ -683,11 +694,11 @@ msgstr &quot;&#1044;&#1077;&#1081;&#1089;&#1090;&#1074;&#1080;&#1077;&quot;
 
 #: contrib/admin/templates/admin/object_history.html:26
 msgid &quot;DATE_WITH_TIME_FULL&quot;
-msgstr &quot;j. N Y, H:i&quot;
+msgstr &quot;j N Y H:i&quot;
 
 #: contrib/admin/templates/admin/object_history.html:36
 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;
+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;&#1081;. &#1042;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086;, &#1086;&#1085; &#1073;&#1099;&#1083; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085; &#1085;&#1077; &#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;
@@ -711,7 +722,7 @@ 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;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;
+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; &#1101;&#1083;&#1077;&#1082;&#1090;&#1088;&#1086;&#1085;&#1085;&#1086;&#1081; &#1087;&#1086;&#1095;&#1090;&#1077;, &#1086;&#1096;&#1080;&#1073;&#1082;&#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
@@ -725,7 +736,7 @@ msgstr &quot;&#1050; &#1089;&#1086;&#1078;&#1072;&#1083;&#1077;&#1085;&#1080;&#1102;, &#1079;&#1072;&#1087;&#1088;&#1072;&#1096;&#1080;&#1074;&#1072;&#1077;&#1084;&#1072;&#1103; &#1074;&#1072;&#1084;&#1080; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;
 #: contrib/admin/templates/admin/index.html:17
 #, python-format
 msgid &quot;Models available in the %(name)s application.&quot;
-msgstr &quot;&#1052;&#1086;&#1076;&#1077;&#1083;&#1080; &#1076;&#1086;&#1089;&#1090;&#1091;&#1087;&#1085;&#1099; &#1074; %(name)s &#1087;&#1088;&#1080;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1080;.&quot;
+msgstr &quot;&#1052;&#1086;&#1076;&#1077;&#1083;&#1080; &#1076;&#1086;&#1089;&#1090;&#1091;&#1087;&#1085;&#1099; &#1074; &#1087;&#1088;&#1080;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1080; %(name)s.&quot;
 
 #: contrib/admin/templates/admin/index.html:28
 #: contrib/admin/templates/admin/change_form.html:15
@@ -742,11 +753,11 @@ msgstr &quot;&#1053;&#1077;&#1076;&#1086;&#1089;&#1090;&#1072;&#1090;&#1086;&#1095;&#1085;&#1086; &#1087;&#1088;&#1072;&#1074; &#1076;&#1083;&#1103; &#1088;&#1077;&#1076;&#1072;&#1082;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1103;.&quot;
 
 #: contrib/admin/templates/admin/index.html:52
 msgid &quot;Recent Actions&quot;
-msgstr &quot;&#1055;&#1086;&#1089;&#1083;&#1077;&#1076;&#1085;&#1080;&#1077; &#1044;&#1077;&#1081;&#1089;&#1090;&#1074;&#1080;&#1103;&quot;
+msgstr &quot;&#1055;&#1086;&#1089;&#1083;&#1077;&#1076;&#1085;&#1080;&#1077; &#1076;&#1077;&#1081;&#1089;&#1090;&#1074;&#1080;&#1103;&quot;
 
 #: contrib/admin/templates/admin/index.html:53
 msgid &quot;My Actions&quot;
-msgstr &quot;&#1052;&#1086;&#1080; &#1044;&#1077;&#1081;&#1089;&#1090;&#1074;&#1080;&#1103;&quot;
+msgstr &quot;&#1052;&#1086;&#1080; &#1076;&#1077;&#1081;&#1089;&#1090;&#1074;&#1080;&#1103;&quot;
 
 #: contrib/admin/templates/admin/index.html:57
 msgid &quot;None available&quot;
@@ -773,12 +784,12 @@ msgstr &quot;&#1059;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100;&quot;
 #: contrib/admin/templates/admin/delete_confirmation.html:14
 #, python-format
 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;
+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;&#1083;&#1086; &#1073;&#1099; &#1082; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1080;&#1102; &#1089;&#1074;&#1103;&#1079;&#1072;&#1085;&#1085;&#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;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;
+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; &#1089;&#1074;&#1103;&#1079;&#1072;&#1085;&#1085;&#1099;&#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;
@@ -787,12 +798,24 @@ 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;&#1050;%(title)s &quot;
+msgstr &quot; &#1055;&#1086; %(title)s &quot;
 
 #: contrib/admin/templates/admin/search_form.html:8
 msgid &quot;Go&quot;
 msgstr &quot;&#1042;&#1087;&#1077;&#1088;&#1105;&#1076;&quot;
 
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid &quot;1 result&quot;
+msgid_plural &quot;%(counter)s results&quot;
+msgstr[0] &quot;1 &#1088;&#1077;&#1079;&#1091;&#1083;&#1100;&#1090;&#1072;&#1090;&quot;
+msgstr[1] &quot;%(counter)s &#1088;&#1077;&#1079;&#1091;&#1083;&#1100;&#1090;&#1072;&#1090;&#1072;&quot;
+msgstr[2] &quot;%(counter)s &#1088;&#1077;&#1079;&#1091;&#1083;&#1100;&#1090;&#1072;&#1090;&#1086;&#1074;&quot;
+
+#: contrib/admin/templates/admin/search_form.html:10
+msgid &quot;%(full_result_count)s total&quot;
+msgstr &quot;%(full_result_count)s &#1074;&#1089;&#1077;&#1075;&#1086;&quot;
+
 #: contrib/admin/templates/admin/change_form.html:21
 msgid &quot;View on site&quot;
 msgstr &quot;&#1057;&#1084;&#1086;&#1090;&#1088;&#1077;&#1090;&#1100; &#1089;&#1072;&#1081;&#1090;&quot;
@@ -800,8 +823,9 @@ msgstr &quot;&#1057;&#1084;&#1086;&#1090;&#1088;&#1077;&#1090;&#1100; &#1089;&#1072;&#1081;&#1090;&quot;
 #: contrib/admin/templates/admin/change_form.html:30
 msgid &quot;Please correct the error below.&quot;
 msgid_plural &quot;Please correct the errors below.&quot;
-msgstr[0] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072; &#1080;&#1089;&#1087;&#1088;&#1072;&#1074;&#1100;&#1090;&#1077; &#1086;&#1096;&#1080;&#1073;&#1082;&#1091; &#1085;&#1080;&#1078;&#1077;.&quot;
-msgstr[1] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072; &#1080;&#1089;&#1087;&#1088;&#1072;&#1074;&#1100;&#1090;&#1077; &#1086;&#1096;&#1080;&#1073;&#1082;&#1080; &#1085;&#1080;&#1078;&#1077;.&quot;
+msgstr[0] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1080;&#1089;&#1087;&#1088;&#1072;&#1074;&#1100;&#1090;&#1077; &#1086;&#1096;&#1080;&#1073;&#1082;&#1091; &#1085;&#1080;&#1078;&#1077;.&quot;
+msgstr[1] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1080;&#1089;&#1087;&#1088;&#1072;&#1074;&#1100;&#1090;&#1077; &#1086;&#1096;&#1080;&#1073;&#1082;&#1080; &#1085;&#1080;&#1078;&#1077;.&quot;
+msgstr[2] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1080;&#1089;&#1087;&#1088;&#1072;&#1074;&#1100;&#1090;&#1077; &#1086;&#1096;&#1080;&#1073;&#1082;&#1080; &#1085;&#1080;&#1078;&#1077;.&quot;
 
 #: contrib/admin/templates/admin/change_form.html:48
 msgid &quot;Ordering&quot;
@@ -852,11 +876,11 @@ 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;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;
+msgstr &quot;&#1047;&#1072;&#1073;&#1099;&#1083;&#1080; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;? &#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1089;&#1074;&#1086;&#1081; &#1072;&#1076;&#1088;&#1077;&#1089; &#1101;&#1083;&#1077;&#1082;&#1090;&#1088;&#1086;&#1085;&#1085;&#1086;&#1081; &#1087;&#1086;&#1095;&#1090;&#1099; &#1085;&#1080;&#1078;&#1077;, &#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;
-msgstr &quot;E-mail &#1072;&#1076;&#1088;&#1077;&#1089;:&quot;
+msgstr &quot;&#1040;&#1076;&#1088;&#1077;&#1089; &#1101;&#1083;&#1077;&#1082;&#1090;&#1088;&#1086;&#1085;&#1085;&#1086;&#1081; &#1087;&#1086;&#1095;&#1090;&#1099;:&quot;
 
 #: contrib/admin/templates/registration/password_reset_form.html:16
 msgid &quot;Reset my password&quot;
@@ -877,11 +901,11 @@ 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;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;
+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;&#1089;&#1082;&#1086;&#1088;&#1077; &#1074;&#1099; &#1077;&#1075;&#1086; &#1087;&#1086;&#1083;&#1091;&#1095;&#1080;&#1090;&#1077;.&quot;
 
 #: contrib/admin/templates/registration/password_change_form.html:12
 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;
+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; &#1089;&#1074;&#1086;&#1081; &#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;
@@ -901,12 +925,12 @@ msgstr &quot;&#1048;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1080;&#1077; &#1087;&#1072;&#1088;&#1086;&#1083;&#1103;&quot;
 
 #: contrib/admin/templates/registration/password_reset_email.html:2
 msgid &quot;You're receiving this e-mail because you requested a password reset&quot;
-msgstr &quot;&#1042;&#1099; &#1087;&#1086;&#1083;&#1091;&#1095;&#1080;&#1083;&#1080; &#1101;&#1090;&#1086; &#1089;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1077; &#1087;&#1086;&#1090;&#1086;&#1084;&#1091; &#1095;&#1090;&#1086; &#1073;&#1099;&#1083;&#1072; &#1079;&#1072;&#1087;&#1088;&#1086;&#1096;&#1077;&#1085;&#1072; &#1086;&#1095;&#1080;&#1089;&#1090;&#1082;&#1072; &#1087;&#1072;&#1088;&#1086;&#1083;&#1103;&quot;
+msgstr &quot;&#1042;&#1099; &#1087;&#1086;&#1083;&#1091;&#1095;&#1080;&#1083;&#1080; &#1101;&#1090;&#1086; &#1089;&#1086;&#1086;&#1073;&#1097;&#1077;&#1085;&#1080;&#1077;, &#1087;&#1086;&#1090;&#1086;&#1084;&#1091; &#1095;&#1090;&#1086; &#1073;&#1099;&#1083;&#1072; &#1079;&#1072;&#1087;&#1088;&#1086;&#1096;&#1077;&#1085;&#1072; &#1086;&#1095;&#1080;&#1089;&#1090;&#1082;&#1072; &#1087;&#1072;&#1088;&#1086;&#1083;&#1103;&quot;
 
 #: contrib/admin/templates/registration/password_reset_email.html:3
 #, python-format
 msgid &quot;for your user account at %(site_name)s&quot;
-msgstr &quot;&#1076;&#1083;&#1103; &#1074;&#1072;&#1096;&#1077;&#1075;&#1086; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1100;&#1089;&#1082;&#1086;&#1075;&#1086; &#1072;&#1082;&#1082;&#1072;&#1091;&#1085;&#1090;&#1072; &#1085;&#1072; %(site_name)s&quot;
+msgstr &quot;&#1044;&#1083;&#1103; &#1074;&#1072;&#1096;&#1077;&#1081; &#1091;&#1095;&#1077;&#1090;&#1085;&#1086;&#1081; &#1079;&#1072;&#1087;&#1080;&#1089;&#1080; &#1085;&#1072; %(site_name)s&quot;
 
 #: contrib/admin/templates/registration/password_reset_email.html:5
 #, python-format
@@ -915,7 +939,7 @@ msgstr &quot;&#1042;&#1072;&#1096; &#1085;&#1086;&#1074;&#1099;&#1081; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;: %(new_password)s&quot;
 
 #: contrib/admin/templates/registration/password_reset_email.html:7
 msgid &quot;Feel free to change this password by going to this page:&quot;
-msgstr &quot;&#1042;&#1099; &#1074;&#1089;&#1077;&#1075;&#1076;&#1072; &#1084;&#1086;&#1078;&#1077;&#1090;&#1077; &#1080;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; &#1101;&#1090;&#1086;&#1090; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100; &#1087;&#1077;&#1088;&#1077;&#1081;&#1076;&#1103; &#1085;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091;:&quot;
+msgstr &quot;&#1042;&#1099; &#1074;&#1089;&#1077;&#1075;&#1076;&#1072; &#1084;&#1086;&#1078;&#1077;&#1090;&#1077; &#1080;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100; &#1101;&#1090;&#1086;&#1090; &#1087;&#1072;&#1088;&#1086;&#1083;&#1100;, &#1087;&#1077;&#1088;&#1077;&#1081;&#1076;&#1103; &#1085;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091;:&quot;
 
 #: contrib/admin/templates/registration/password_reset_email.html:11
 msgid &quot;Your username, in case you've forgotten:&quot;
@@ -936,7 +960,7 @@ msgstr &quot;&#1047;&#1072;&#1082;&#1083;&#1072;&#1076;&#1082;&#1080;&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:5
 msgid &quot;Documentation bookmarklets&quot;
-msgstr &quot;&#1044;&#1086;&#1082;&#1091;&#1084;&#1077;&#1085;&#1090;&#1072;&#1094;&#1080;&#1103; &#1087;&#1086; bookmarklets&quot;
+msgstr &quot;&#1047;&#1072;&#1082;&#1083;&#1072;&#1076;&#1082;&#1080; &#1076;&#1086;&#1082;&#1091;&#1084;&#1077;&#1085;&#1090;&#1072;&#1094;&#1080;&#1080;&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:9
 msgid &quot;&quot;
@@ -948,6 +972,13 @@ msgid &quot;&quot;
 &quot;as \&quot;internal\&quot; (talk to your system administrator if you aren't sure if\n&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;&#1044;&#1083;&#1103; &#1091;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1082;&#1080; &#1079;&#1072;&#1082;&#1083;&#1072;&#1076;&#1086;&#1082; &#1087;&#1077;&#1088;&#1077;&#1090;&#1072;&#1097;&#1080;&#1090;&#1077; &#1089;&#1089;&#1099;&#1083;&#1082;&#1091; &#1082; &#1089;&#1077;&#1073;&#1077; &#1085;&#1072; &#1087;&#1072;&#1085;&#1077;&#1083;&#1100;\n&quot;
+&quot;&#1079;&#1072;&#1082;&#1083;&#1072;&#1076;&#1086;&#1082; &#1080;&#1083;&#1080; &#1097;&#1077;&#1083;&#1082;&#1085;&#1080;&#1090;&#1077; &#1087;&#1088;&#1072;&#1074;&#1086;&#1081; &#1082;&#1085;&#1086;&#1087;&#1082;&#1086;&#1081; &#1084;&#1099;&#1096;&#1080; &#1087;&#1086; &#1089;&#1089;&#1099;&#1083;&#1082;&#1077; &#1080; &#1076;&#1086;&#1073;&#1072;&#1074;&#1100;&#1090;&#1077; &#1077;&#1077; &#1074; &#1079;&#1072;&#1082;&#1083;&#1072;&#1076;&#1082;&#1080;. &#1058;&#1077;&#1087;&#1077;&#1088;&#1100; &#1091; &#1074;&#1072;&#1089; &#1077;&#1089;&#1090;&#1100; &#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086;&#1089;&#1090;&#1100;\n&quot;
+&quot;&#1074;&#1099;&#1073;&#1088;&#1072;&#1090;&#1100; &#1079;&#1072;&#1082;&#1083;&#1072;&#1076;&#1082;&#1091; &#1089; &#1083;&#1102;&#1073;&#1086;&#1081; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099; &#1089;&#1072;&#1081;&#1090;&#1072;. &#1054;&#1073;&#1088;&#1072;&#1090;&#1080;&#1090;&#1077; &#1074;&#1085;&#1080;&#1084;&#1072;&#1085;&#1080;&#1077;: &#1085;&#1077;&#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1077; &#1080;&#1079; &#1101;&#1090;&#1080;&#1093;\n&quot;
+&quot;&#1079;&#1072;&#1082;&#1083;&#1072;&#1076;&#1086;&#1082; &#1090;&#1088;&#1077;&#1073;&#1091;&#1102;&#1090;, &#1095;&#1090;&#1086;&#1073;&#1099; &#1074;&#1099; &#1087;&#1088;&#1086;&#1089;&#1084;&#1072;&#1090;&#1088;&#1080;&#1074;&#1072;&#1083;&#1080; &#1089;&#1072;&#1081;&#1090; &#1089; &#1082;&#1086;&#1084;&#1087;&#1100;&#1102;&#1090;&#1077;&#1088;&#1072;, &#1086;&#1087;&#1088;&#1077;&#1076;&#1077;&#1083;&#1077;&#1085;&#1085;&#1086;&#1075;&#1086;\n&quot;
+&quot;&#1082;&#1072;&#1082; \&quot;&#1074;&#1085;&#1091;&#1090;&#1088;&#1077;&#1085;&#1085;&#1080;&#1081;\&quot; (&#1091;&#1090;&#1086;&#1095;&#1085;&#1080;&#1090;&#1077; &#1091; &#1089;&#1074;&#1086;&#1077;&#1075;&#1086; &#1089;&#1080;&#1089;&#1090;&#1077;&#1084;&#1085;&#1086;&#1075;&#1086; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1086;&#1088;&#1072;, &#1077;&#1089;&#1083;&#1080; &#1085;&#1077; &#1091;&#1074;&#1077;&#1088;&#1077;&#1085;&#1099;, &#1103;&#1074;&#1083;&#1103;&#1077;&#1090;&#1089;&#1103; &#1083;&#1080;\n&quot;
+&quot;&#1074;&#1072;&#1096; &#1082;&#1086;&#1084;&#1087;&#1100;&#1102;&#1090;&#1077;&#1088; \&quot;&#1074;&#1085;&#1091;&#1090;&#1088;&#1077;&#1085;&#1085;&#1080;&#1084;\&quot;).&lt;/p&gt;\n&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:19
 msgid &quot;Documentation for this page&quot;
@@ -955,7 +986,7 @@ 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;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;
+msgstr &quot;&#1055;&#1077;&#1088;&#1077;&#1085;&#1072;&#1087;&#1088;&#1072;&#1074;&#1083;&#1103;&#1077;&#1090; &#1074;&#1072;&#1089; &#1089; &#1083;&#1102;&#1073;&#1086;&#1081; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099; &#1082; &#1076;&#1086;&#1082;&#1091;&#1084;&#1077;&#1085;&#1090;&#1072;&#1094;&#1080;&#1080; view, &#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;
@@ -963,7 +994,7 @@ 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;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;
+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;, &#1087;&#1088;&#1077;&#1076;&#1089;&#1090;&#1072;&#1074;&#1083;&#1103;&#1102;&#1097;&#1080;&#1093; &#1086;&#1076;&#1080;&#1085; &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;.&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:25
 msgid &quot;Edit this object (current window)&quot;
@@ -971,7 +1002,7 @@ msgstr &quot;&#1056;&#1077;&#1076;&#1072;&#1082;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1076;&#1072;&#1085;&#1085;&#1099;&#1081; &#1086;&#1073;&#1100;&#1077;&#1082;&#1090; (&#1074; &#1090;&#1077;&#1082;&#1091;&#1097;&#1077;&#1084;
 
 #: 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;&#1055;&#1077;&#1088;&#1077;&#1081;&#1090;&#1080; &#1085;&#1072; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1086;&#1088; &#1076;&#1083;&#1103; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094; &#1087;&#1088;&#1077;&#1076;&#1089;&#1090;&#1072;&#1074;&#1083;&#1103;&#1102;&#1097;&#1080;&#1093; &#1086;&#1076;&#1080;&#1085; &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;.&quot;
+msgstr &quot;&#1055;&#1077;&#1088;&#1077;&#1081;&#1076;&#1077;&#1090; &#1085;&#1072; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1080;&#1074;&#1085;&#1091;&#1102; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091; &#1076;&#1083;&#1103; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;, &#1087;&#1088;&#1077;&#1076;&#1089;&#1090;&#1072;&#1074;&#1083;&#1103;&#1102;&#1097;&#1080;&#1093; &#1086;&#1076;&#1080;&#1085; &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;.&quot;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:28
 msgid &quot;Edit this object (new window)&quot;
@@ -979,7 +1010,7 @@ msgstr &quot;&#1056;&#1077;&#1076;&#1072;&#1082;&#1090;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1076;&#1072;&#1085;&#1085;&#1099;&#1081; &#1086;&#1073;&#1100;&#1077;&#1082;&#1090; (&#1074; &#1085;&#1086;&#1074;&#1086;&#1084; &#1086;&#1082;
 
 #: contrib/admin/templates/admin_doc/bookmarklets.html:29
 msgid &quot;As above, but opens the admin page in a new window.&quot;
-msgstr &quot;&#1058;&#1086; &#1078;&#1077; &#1095;&#1090;&#1086; &#1080; &#1074;&#1099;&#1096;&#1077;, &#1085;&#1086; &#1086;&#1090;&#1082;&#1088;&#1086;&#1077;&#1090; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1080;&#1074;&#1085;&#1091;&#1102; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091; &#1074; &#1085;&#1086;&#1074;&#1086;&#1084; &#1086;&#1082;&#1085;&#1077;&quot;
+msgstr &quot;&#1058;&#1086; &#1078;&#1077; &#1095;&#1090;&#1086; &#1080; &#1074;&#1099;&#1096;&#1077;, &#1085;&#1086; &#1086;&#1090;&#1082;&#1088;&#1086;&#1077;&#1090; &#1072;&#1076;&#1084;&#1080;&#1085;&#1080;&#1089;&#1090;&#1088;&#1072;&#1090;&#1080;&#1074;&#1085;&#1091;&#1102; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1091; &#1074; &#1085;&#1086;&#1074;&#1086;&#1084; &#1086;&#1082;&#1085;&#1077;.&quot;
 
 #: contrib/admin/templates/widget/date_time.html:3
 msgid &quot;Date:&quot;
@@ -999,27 +1030,27 @@ msgstr &quot;&#1048;&#1079;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100;:&quot;
 
 #: contrib/redirects/models.py:7
 msgid &quot;redirect from&quot;
-msgstr &quot;&#1087;&#1077;&#1088;&#1077;&#1085;&#1072;&#1087;&#1088;&#1072;&#1074;&#1080;&#1090;&#1100; &#1080;&#1079;&quot;
+msgstr &quot;&#1055;&#1077;&#1088;&#1077;&#1085;&#1072;&#1087;&#1088;&#1072;&#1074;&#1080;&#1090;&#1100; &#1080;&#1079;&quot;
 
 #: contrib/redirects/models.py:8
 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;
+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; &#1073;&#1077;&#1079; &#1076;&#1086;&#1084;&#1077;&#1085;&#1085;&#1086;&#1075;&#1086; &#1080;&#1084;&#1077;&#1085;&#1080;. &#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;
+msgstr &quot;&#1055;&#1077;&#1088;&#1077;&#1085;&#1072;&#1087;&#1088;&#1072;&#1074;&#1080;&#1090;&#1100; &#1085;&#1072;&quot;
 
 #: contrib/redirects/models.py:10
 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;
+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; (&#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;
-msgstr &quot;&#1087;&#1077;&#1088;&#1077;&#1085;&#1072;&#1087;&#1088;&#1072;&#1074;&#1080;&#1090;&#1100;&quot;
+msgstr &quot;&#1055;&#1077;&#1088;&#1077;&#1085;&#1072;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077;&quot;
 
 #: contrib/redirects/models.py:13
 msgid &quot;redirects&quot;
-msgstr &quot;&#1087;&#1077;&#1088;&#1077;&#1085;&#1072;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1103;&quot;
+msgstr &quot;&#1055;&#1077;&#1088;&#1077;&#1085;&#1072;&#1087;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1103;&quot;
 
 #: contrib/flatpages/models.py:8
 msgid &quot;Example: '/about/contact/'. Make sure to have leading and trailing slashes.&quot;
@@ -1027,19 +1058,19 @@ 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; 
 
 #: contrib/flatpages/models.py:9
 msgid &quot;title&quot;
-msgstr &quot;&#1079;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082;&quot;
+msgstr &quot;&#1047;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082;&quot;
 
 #: contrib/flatpages/models.py:10
 msgid &quot;content&quot;
-msgstr &quot;&#1085;&#1072;&#1087;&#1086;&#1083;&#1085;&#1077;&#1085;&#1080;&#1077;&quot;
+msgstr &quot;&#1057;&#1086;&#1076;&#1077;&#1088;&#1078;&#1080;&#1084;&#1086;&#1077;&quot;
 
 #: contrib/flatpages/models.py:11
 msgid &quot;enable comments&quot;
-msgstr &quot;&#1072;&#1082;&#1090;&#1080;&#1074;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1080;&quot;
+msgstr &quot;&#1040;&#1082;&#1090;&#1080;&#1074;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1082;&#1086;&#1084;&#1084;&#1077;&#1085;&#1090;&#1072;&#1088;&#1080;&#1080;&quot;
 
 #: contrib/flatpages/models.py:12
 msgid &quot;template name&quot;
-msgstr &quot;&#1080;&#1084;&#1103; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;&#1072;&quot;
+msgstr &quot;&#1048;&#1084;&#1103; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;&#1072;&quot;
 
 #: contrib/flatpages/models.py:13
 msgid &quot;Example: 'flatpages/contact_page'. If this isn't provided, the system will use 'flatpages/default'.&quot;
@@ -1047,7 +1078,7 @@ 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;
 
 #: contrib/flatpages/models.py:14
 msgid &quot;registration required&quot;
-msgstr &quot;&#1088;&#1077;&#1075;&#1080;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1103; &#1086;&#1073;&#1103;&#1079;&#1072;&#1090;&#1077;&#1083;&#1100;&#1085;&#1072;&quot;
+msgstr &quot;&#1056;&#1077;&#1075;&#1080;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1103; &#1086;&#1073;&#1103;&#1079;&#1072;&#1090;&#1077;&#1083;&#1100;&#1085;&#1072;&quot;
 
 #: contrib/flatpages/models.py:14
 msgid &quot;If this is checked, only logged-in users will be able to view the page.&quot;
@@ -1055,24 +1086,24 @@ msgstr &quot;&#1045;&#1089;&#1083;&#1080; &#1086;&#1090;&#1084;&#1077;&#1095;&#1077;&#1085;&#1086;, &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1074;&#1086;&#1096;&#1077;&#1076;&#1096;&#1080;&#1077; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;
 
 #: contrib/flatpages/models.py:18
 msgid &quot;flat page&quot;
-msgstr &quot;&#1087;&#1088;&#1086;&#1089;&#1090;&#1072;&#1103; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;&quot;
+msgstr &quot;&#1055;&#1088;&#1086;&#1089;&#1090;&#1072;&#1103; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072;&quot;
 
 #: contrib/flatpages/models.py:19
 msgid &quot;flat pages&quot;
-msgstr &quot;&#1087;&#1088;&#1086;&#1089;&#1090;&#1099;&#1077; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1099;&quot;
+msgstr &quot;&#1055;&#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
 msgid &quot;name&quot;
-msgstr &quot;&#1080;&#1084;&#1103;&quot;
+msgstr &quot;&#1048;&#1084;&#1103;&quot;
 
 #: contrib/auth/models.py:15
 msgid &quot;codename&quot;
-msgstr &quot;&#1082;&#1086;&#1076;&quot;
+msgstr &quot;&#1050;&#1086;&#1076;&#1086;&#1074;&#1086;&#1077; &#1085;&#1072;&#1079;&#1074;&#1072;&#1085;&#1080;&#1077;&quot;
 
 #: contrib/auth/models.py:17
 msgid &quot;permission&quot;
-msgstr &quot;&#1055;&#1088;&#1072;&#1074;&#1072;&quot;
+msgstr &quot;&#1055;&#1088;&#1072;&#1074;&#1086;&quot;
 
 #: contrib/auth/models.py:18
 #: contrib/auth/models.py:27
@@ -1090,23 +1121,23 @@ msgstr &quot;&#1043;&#1088;&#1091;&#1087;&#1087;&#1099;&quot;
 
 #: contrib/auth/models.py:55
 msgid &quot;username&quot;
-msgstr &quot;&#1080;&#1084;&#1103; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;&quot;
+msgstr &quot;&#1048;&#1084;&#1103; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;&quot;
 
 #: contrib/auth/models.py:56
 msgid &quot;first name&quot;
-msgstr &quot;&#1080;&#1084;&#1103;&quot;
+msgstr &quot;&#1048;&#1084;&#1103;&quot;
 
 #: contrib/auth/models.py:57
 msgid &quot;last name&quot;
-msgstr &quot;&#1092;&#1072;&#1084;&#1080;&#1083;&#1080;&#1103;&quot;
+msgstr &quot;&#1060;&#1072;&#1084;&#1080;&#1083;&#1080;&#1103;&quot;
 
 #: contrib/auth/models.py:58
 msgid &quot;e-mail address&quot;
-msgstr &quot;e-mail &#1072;&#1076;&#1088;&#1077;&#1089;&quot;
+msgstr &quot;&#1040;&#1076;&#1088;&#1077;&#1089; &#1101;&#1083;&#1077;&#1082;&#1090;&#1088;&#1086;&#1085;&#1085;&#1086;&#1081; &#1087;&#1086;&#1095;&#1090;&#1099;&quot;
 
 #: contrib/auth/models.py:59
 msgid &quot;password&quot;
-msgstr &quot;&#1087;&#1072;&#1088;&#1086;&#1083;&#1100;&quot;
+msgstr &quot;&#1055;&#1072;&#1088;&#1086;&#1083;&#1100;&quot;
 
 #: contrib/auth/models.py:59
 msgid &quot;Use '[algo]$[salt]$[hexdigest]'&quot;
@@ -1114,7 +1145,7 @@ 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;
-msgstr &quot;&#1089;&#1090;&#1072;&#1090;&#1091;&#1089; &#1087;&#1077;&#1088;&#1089;&#1086;&#1085;&#1072;&#1083;&#1072;&quot;
+msgstr &quot;&#1057;&#1090;&#1072;&#1090;&#1091;&#1089; &#1087;&#1077;&#1088;&#1089;&#1086;&#1085;&#1072;&#1083;&#1072;&quot;
 
 #: contrib/auth/models.py:60
 msgid &quot;Designates whether the user can log into this admin site.&quot;
@@ -1122,27 +1153,27 @@ msgstr &quot;&#1054;&#1090;&#1084;&#1077;&#1090;&#1100;&#1090;&#1077;, &#1077;&#1089;&#1083;&#1080; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1100; &#1084;&#1086;&#1078;&#1077;&#1090; &#1074;&#1093;&#1086;&#1076;
 
 #: contrib/auth/models.py:61
 msgid &quot;active&quot;
-msgstr &quot;&#1072;&#1082;&#1090;&#1080;&#1074;&#1077;&#1085;&quot;
+msgstr &quot;&#1040;&#1082;&#1090;&#1080;&#1074;&#1085;&#1099;&#1081;&quot;
 
 #: contrib/auth/models.py:62
 msgid &quot;superuser status&quot;
-msgstr &quot;&#1089;&#1090;&#1072;&#1090;&#1091;&#1089; &#1072;&#1076;&#1084;&#1080;&#1085;&#1072;&quot;
+msgstr &quot;&#1057;&#1090;&#1072;&#1090;&#1091;&#1089; &#1089;&#1091;&#1087;&#1077;&#1088;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;&quot;
 
 #: contrib/auth/models.py:63
 msgid &quot;last login&quot;
-msgstr &quot;&#1087;&#1086;&#1089;&#1083;&#1077;&#1076;&#1085;&#1080;&#1081; &#1074;&#1093;&#1086;&#1076;&quot;
+msgstr &quot;&#1055;&#1086;&#1089;&#1083;&#1077;&#1076;&#1085;&#1080;&#1081; &#1074;&#1093;&#1086;&#1076;&quot;
 
 #: contrib/auth/models.py:64
 msgid &quot;date joined&quot;
-msgstr &quot;&#1076;&#1072;&#1090;&#1072; &#1088;&#1077;&#1075;&#1080;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1080;&quot;
+msgstr &quot;&#1044;&#1072;&#1090;&#1072; &#1088;&#1077;&#1075;&#1080;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1080;&quot;
 
 #: contrib/auth/models.py:66
 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;
+msgstr &quot;&#1042; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1082; &#1087;&#1088;&#1072;&#1074;&#1072;&#1084;, &#1087;&#1088;&#1080;&#1089;&#1074;&#1086;&#1077;&#1085;&#1085;&#1099;&#1084; &#1074;&#1088;&#1091;&#1095;&#1085;&#1091;&#1102;, &#1101;&#1090;&#1086;&#1090; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1100; &#1087;&#1086;&#1083;&#1091;&#1095;&#1080;&#1090; &#1074;&#1089;&#1077; &#1087;&#1088;&#1072;&#1074;&#1072; &#1075;&#1088;&#1091;&#1087;&#1087;, &#1082; &#1082;&#1086;&#1090;&#1086;&#1088;&#1099;&#1084; &#1086;&#1085; &#1087;&#1088;&#1080;&#1085;&#1072;&#1076;&#1083;&#1077;&#1078;&#1080;&#1090;.&quot;
 
 #: contrib/auth/models.py:67
 msgid &quot;user permissions&quot;
-msgstr &quot;&#1055;&#1088;&#1072;&#1074;&#1072; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;&quot;
+msgstr &quot;&#1087;&#1088;&#1072;&#1074;&#1072; &#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1077;&#1083;&#1103;&quot;
 
 #: contrib/auth/models.py:70
 msgid &quot;user&quot;
@@ -1182,59 +1213,59 @@ msgstr &quot;&#1080;&#1084;&#1103; &#1082;&#1083;&#1072;&#1089;&#1089;&#1072; python &#1084;&#1086;&#1076;&#1091;&#1083;&#1103;&quot;
 
 #: contrib/contenttypes/models.py:28
 msgid &quot;content type&quot;
-msgstr &quot;&#1090;&#1080;&#1087; &#1085;&#1072;&#1087;&#1086;&#1083;&#1085;&#1077;&#1085;&#1080;&#1103;&quot;
+msgstr &quot;&#1058;&#1080;&#1087; &#1089;&#1086;&#1076;&#1077;&#1088;&#1078;&#1080;&#1084;&#1086;&#1075;&#1086;&quot;
 
 #: contrib/contenttypes/models.py:29
 msgid &quot;content types&quot;
-msgstr &quot;&#1090;&#1080;&#1087;&#1099; &#1085;&#1072;&#1087;&#1086;&#1083;&#1085;&#1077;&#1085;&#1080;&#1103;&quot;
+msgstr &quot;&#1058;&#1080;&#1087;&#1099; &#1089;&#1086;&#1076;&#1077;&#1088;&#1078;&#1080;&#1084;&#1086;&#1075;&#1086;&quot;
 
 #: contrib/sessions/models.py:35
 msgid &quot;session key&quot;
-msgstr &quot;&#1082;&#1083;&#1102;&#1095; &#1089;&#1077;&#1089;&#1089;&#1080;&#1080;&quot;
+msgstr &quot;&#1050;&#1083;&#1102;&#1095; &#1089;&#1077;&#1089;&#1089;&#1080;&#1080;&quot;
 
 #: contrib/sessions/models.py:36
 msgid &quot;session data&quot;
-msgstr &quot;&#1076;&#1072;&#1085;&#1085;&#1099;&#1077; &#1089;&#1077;&#1089;&#1089;&#1080;&#1080;&quot;
+msgstr &quot;&#1044;&#1072;&#1085;&#1085;&#1099;&#1077; &#1089;&#1077;&#1089;&#1089;&#1080;&#1080;&quot;
 
 #: contrib/sessions/models.py:37
 msgid &quot;expire date&quot;
-msgstr &quot;&#1076;&#1072;&#1090;&#1072; &#1086;&#1082;&#1086;&#1085;&#1095;&#1072;&#1085;&#1080;&#1103;&quot;
+msgstr &quot;&#1044;&#1072;&#1090;&#1072; &#1086;&#1082;&#1086;&#1085;&#1095;&#1072;&#1085;&#1080;&#1103;&quot;
 
 #: contrib/sessions/models.py:41
 msgid &quot;session&quot;
-msgstr &quot;&#1089;&#1077;&#1089;&#1089;&#1080;&#1103;&quot;
+msgstr &quot;&#1057;&#1077;&#1089;&#1089;&#1080;&#1103;&quot;
 
 #: contrib/sessions/models.py:42
 msgid &quot;sessions&quot;
-msgstr &quot;&#1089;&#1077;&#1089;&#1089;&#1080;&#1080;&quot;
+msgstr &quot;&#1057;&#1077;&#1089;&#1089;&#1080;&#1080;&quot;
 
 #: contrib/sites/models.py:10
 msgid &quot;domain name&quot;
-msgstr &quot;&#1076;&#1086;&#1084;&#1077;&#1085;&quot;
+msgstr &quot;&#1044;&#1086;&#1084;&#1077;&#1085;&#1085;&#1086;&#1077; &#1080;&#1084;&#1103;&quot;
 
 #: contrib/sites/models.py:11
 msgid &quot;display name&quot;
-msgstr &quot;&#1074;&#1099;&#1074;&#1086;&#1076;&#1080;&#1084;&#1086;&#1077; &#1080;&#1084;&#1103;&quot;
+msgstr &quot;&#1042;&#1099;&#1074;&#1086;&#1076;&#1080;&#1084;&#1086;&#1077; &#1080;&#1084;&#1103;&quot;
 
 #: contrib/sites/models.py:15
 msgid &quot;site&quot;
-msgstr &quot;&#1089;&#1072;&#1081;&#1090;&quot;
+msgstr &quot;&#1057;&#1072;&#1081;&#1090;&quot;
 
 #: contrib/sites/models.py:16
 msgid &quot;sites&quot;
-msgstr &quot;&#1089;&#1072;&#1081;&#1090;&#1099;&quot;
+msgstr &quot;&#1057;&#1072;&#1081;&#1090;&#1099;&quot;
 
 #: utils/translation.py:360
 msgid &quot;DATE_FORMAT&quot;
-msgstr &quot;&quot;
+msgstr &quot;d.m.Y&quot;
 
 #: utils/translation.py:361
 msgid &quot;DATETIME_FORMAT&quot;
-msgstr &quot;&quot;
+msgstr &quot;d.m.Y H:i&quot;
 
 #: utils/translation.py:362
 msgid &quot;TIME_FORMAT&quot;
-msgstr &quot;&quot;
+msgstr &quot;H:i&quot;
 
 #: utils/dates.py:6
 msgid &quot;Monday&quot;
@@ -1307,7 +1338,7 @@ msgstr &quot;&#1057;&#1077;&#1085;&#1090;&#1103;&#1073;&#1088;&#1100;&quot;
 
 #: utils/dates.py:15
 msgid &quot;October&quot;
-msgstr &quot;&#1054;&#1089;&#1090;&#1103;&#1073;&#1088;&#1100;&quot;
+msgstr &quot;&#1054;&#1082;&#1090;&#1103;&#1073;&#1088;&#1100;&quot;
 
 #: utils/dates.py:15
 msgid &quot;November&quot;
@@ -1367,143 +1398,149 @@ msgstr &quot;&#1076;&#1077;&#1082;&quot;
 
 #: utils/dates.py:27
 msgid &quot;Jan.&quot;
-msgstr &quot;&#1071;&#1085;&#1074;.&quot;
+msgstr &quot;&#1103;&#1085;&#1074;.&quot;
 
 #: utils/dates.py:27
 msgid &quot;Feb.&quot;
-msgstr &quot;&#1060;&#1077;&#1074;.&quot;
+msgstr &quot;&#1092;&#1077;&#1074;.&quot;
 
 #: utils/dates.py:28
 msgid &quot;Aug.&quot;
-msgstr &quot;&#1040;&#1074;&#1075;.&quot;
+msgstr &quot;&#1072;&#1074;&#1075;.&quot;
 
 #: utils/dates.py:28
 msgid &quot;Sept.&quot;
-msgstr &quot;&#1057;&#1077;&#1085;.&quot;
+msgstr &quot;&#1089;&#1077;&#1085;.&quot;
 
 #: utils/dates.py:28
 msgid &quot;Oct.&quot;
-msgstr &quot;&#1054;&#1082;&#1090;.&quot;
+msgstr &quot;&#1086;&#1082;&#1090;.&quot;
 
 #: utils/dates.py:28
 msgid &quot;Nov.&quot;
-msgstr &quot;&#1053;&#1086;&#1103;&#1073;.&quot;
+msgstr &quot;&#1085;&#1086;&#1103;&#1073;.&quot;
 
 #: utils/dates.py:28
 msgid &quot;Dec.&quot;
-msgstr &quot;&#1044;&#1077;&#1082;.&quot;
+msgstr &quot;&#1076;&#1077;&#1082;.&quot;
 
 #: utils/timesince.py:12
 msgid &quot;year&quot;
 msgid_plural &quot;years&quot;
 msgstr[0] &quot;&#1075;&#1086;&#1076;&quot;
-msgstr[1] &quot;&#1083;&#1077;&#1090;&quot;
+msgstr[1] &quot;&#1075;&#1086;&#1076;&#1072;&quot;
+msgstr[2] &quot;&#1083;&#1077;&#1090;&quot;
 
 #: utils/timesince.py:13
 msgid &quot;month&quot;
 msgid_plural &quot;months&quot;
 msgstr[0] &quot;&#1084;&#1077;&#1089;&#1103;&#1094;&quot;
-msgstr[1] &quot;&#1084;&#1077;&#1089;&#1103;&#1094;&#1077;&#1074;&quot;
+msgstr[1] &quot;&#1084;&#1077;&#1089;&#1103;&#1094;&#1072;&quot;
+msgstr[2] &quot;&#1084;&#1077;&#1089;&#1103;&#1094;&#1077;&#1074;&quot;
 
 #: utils/timesince.py:14
 msgid &quot;week&quot;
 msgid_plural &quot;weeks&quot;
 msgstr[0] &quot;&#1085;&#1077;&#1076;&#1077;&#1083;&#1103;&quot;
-msgstr[1] &quot;&#1085;&#1077;&#1076;&#1077;&#1083;&#1100;&quot;
+msgstr[1] &quot;&#1085;&#1077;&#1076;&#1077;&#1083;&#1080;&quot;
+msgstr[2] &quot;&#1085;&#1077;&#1076;&#1077;&#1083;&#1100;&quot;
 
 #: utils/timesince.py:15
 msgid &quot;day&quot;
 msgid_plural &quot;days&quot;
 msgstr[0] &quot;&#1076;&#1077;&#1085;&#1100;&quot;
-msgstr[1] &quot;&#1076;&#1085;&#1077;&#1081;&quot;
+msgstr[1] &quot;&#1076;&#1085;&#1103;&quot;
+msgstr[2] &quot;&#1076;&#1085;&#1077;&#1081;&quot;
 
 #: utils/timesince.py:16
 msgid &quot;hour&quot;
 msgid_plural &quot;hours&quot;
 msgstr[0] &quot;&#1095;&#1072;&#1089;&quot;
-msgstr[1] &quot;&#1095;&#1072;&#1089;&#1086;&#1074;&quot;
+msgstr[1] &quot;&#1095;&#1072;&#1089;&#1072;&quot;
+msgstr[2] &quot;&#1095;&#1072;&#1089;&#1086;&#1074;&quot;
 
 #: utils/timesince.py:17
 msgid &quot;minute&quot;
 msgid_plural &quot;minutes&quot;
 msgstr[0] &quot;&#1084;&#1080;&#1085;&#1091;&#1090;&#1072;&quot;
-msgstr[1] &quot;&#1084;&#1080;&#1085;&#1091;&#1090;&quot;
+msgstr[1] &quot;&#1084;&#1080;&#1085;&#1091;&#1090;&#1099;&quot;
+msgstr[2] &quot;&#1084;&#1080;&#1085;&#1091;&#1090;&quot;
 
 #: conf/global_settings.py:37
 msgid &quot;Bengali&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1041;&#1077;&#1085;&#1075;&#1072;&#1083;&#1100;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:38
 msgid &quot;Czech&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1063;&#1077;&#1096;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:39
 msgid &quot;Welsh&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1059;&#1101;&#1083;&#1100;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:40
 msgid &quot;Danish&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1044;&#1072;&#1090;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:41
 msgid &quot;German&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1053;&#1077;&#1084;&#1077;&#1094;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:42
 msgid &quot;Greek&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1043;&#1088;&#1077;&#1095;&#1077;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:43
 msgid &quot;English&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1040;&#1085;&#1075;&#1083;&#1080;&#1081;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:44
 msgid &quot;Spanish&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1048;&#1089;&#1087;&#1072;&#1085;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:45
 msgid &quot;French&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1060;&#1088;&#1072;&#1085;&#1094;&#1091;&#1079;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:46
 msgid &quot;Galician&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1043;&#1072;&#1083;&#1083;&#1100;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:47
 msgid &quot;Hungarian&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1042;&#1077;&#1085;&#1075;&#1077;&#1088;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:48
 msgid &quot;Hebrew&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1048;&#1074;&#1088;&#1080;&#1090;&quot;
 
 #: conf/global_settings.py:49
 msgid &quot;Icelandic&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1048;&#1089;&#1083;&#1072;&#1085;&#1076;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:50
 msgid &quot;Italian&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1048;&#1090;&#1072;&#1083;&#1100;&#1103;&#1085;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:51
 msgid &quot;Japanese&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1071;&#1087;&#1086;&#1085;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:52
 msgid &quot;Dutch&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1043;&#1086;&#1083;&#1083;&#1072;&#1085;&#1076;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:53
 msgid &quot;Norwegian&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1053;&#1086;&#1088;&#1074;&#1077;&#1078;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:54
 msgid &quot;Brazilian&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1041;&#1088;&#1072;&#1079;&#1080;&#1083;&#1100;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:55
 msgid &quot;Romanian&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1056;&#1091;&#1084;&#1099;&#1085;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:56
 msgid &quot;Russian&quot;
@@ -1511,100 +1548,100 @@ msgstr &quot;&#1056;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:57
 msgid &quot;Slovak&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1057;&#1083;&#1086;&#1074;&#1072;&#1094;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:58
 msgid &quot;Slovenian&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1057;&#1083;&#1086;&#1074;&#1077;&#1085;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:59
 msgid &quot;Serbian&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1057;&#1077;&#1088;&#1073;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:60
 msgid &quot;Swedish&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1064;&#1074;&#1077;&#1076;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:61
 msgid &quot;Ukrainian&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1059;&#1082;&#1088;&#1072;&#1080;&#1085;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:62
 msgid &quot;Simplified Chinese&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1059;&#1087;&#1088;&#1086;&#1097;&#1077;&#1085;&#1085;&#1099;&#1081; &#1082;&#1080;&#1090;&#1072;&#1081;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: conf/global_settings.py:63
 msgid &quot;Traditional Chinese&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1058;&#1088;&#1072;&#1076;&#1080;&#1094;&#1080;&#1086;&#1085;&#1085;&#1099;&#1081; &#1082;&#1080;&#1090;&#1072;&#1081;&#1089;&#1082;&#1080;&#1081;&quot;
 
 #: core/validators.py:60
 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;
+msgstr &quot;&#1047;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1076;&#1086;&#1083;&#1078;&#1085;&#1086; &#1089;&#1086;&#1089;&#1090;&#1086;&#1103;&#1090;&#1100; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1080;&#1079; &#1073;&#1091;&#1082;&#1074;, &#1094;&#1080;&#1092;&#1088; &#1080; &#1079;&#1085;&#1072;&#1082;&#1086;&#1074; &#1087;&#1086;&#1076;&#1095;&#1077;&#1088;&#1082;&#1080;&#1074;&#1072;&#1085;&#1080;&#1103;.&quot;
 
 #: core/validators.py:64
 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;
+msgstr &quot;&#1047;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1076;&#1086;&#1083;&#1078;&#1085;&#1086; &#1089;&#1086;&#1089;&#1090;&#1086;&#1103;&#1090;&#1100; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1080;&#1079; &#1073;&#1091;&#1082;&#1074;, &#1094;&#1080;&#1092;&#1088;, &#1079;&#1085;&#1072;&#1082;&#1086;&#1074; &#1087;&#1086;&#1076;&#1095;&#1077;&#1088;&#1082;&#1080;&#1074;&#1072;&#1085;&#1080;&#1103;, &#1090;&#1080;&#1088;&#1077; &#1080;&#1083;&#1080; &#1085;&#1072;&#1082;&#1083;&#1086;&#1085;&#1085;&#1086;&#1081; &#1095;&#1077;&#1088;&#1090;&#1099; &#1074;&#1087;&#1088;&#1072;&#1074;&#1086;.&quot;
 
 #: core/validators.py:72
 msgid &quot;Uppercase letters are not allowed here.&quot;
-msgstr &quot;&#1047;&#1072;&#1075;&#1083;&#1072;&#1074;&#1085;&#1099;&#1077; &#1073;&#1091;&#1082;&#1074;&#1099; &#1085;&#1077; &#1088;&#1072;&#1079;&#1088;&#1077;&#1096;&#1077;&#1085;&#1099;&quot;
+msgstr &quot;&#1047;&#1072;&#1075;&#1083;&#1072;&#1074;&#1085;&#1099;&#1077; &#1073;&#1091;&#1082;&#1074;&#1099; &#1085;&#1077;&#1076;&#1086;&#1087;&#1091;&#1089;&#1090;&#1080;&#1084;&#1099;.&quot;
 
 #: core/validators.py:76
 msgid &quot;Lowercase letters are not allowed here.&quot;
-msgstr &quot;&#1057;&#1090;&#1088;&#1086;&#1095;&#1085;&#1099;&#1077; &#1073;&#1091;&#1082;&#1074;&#1099; &#1085;&#1077; &#1088;&#1072;&#1079;&#1088;&#1077;&#1096;&#1077;&#1085;&#1099;&quot;
+msgstr &quot;&#1057;&#1090;&#1088;&#1086;&#1095;&#1085;&#1099;&#1077; &#1073;&#1091;&#1082;&#1074;&#1099; &#1079;&#1076;&#1077;&#1089;&#1100; &#1085;&#1077;&#1076;&#1086;&#1087;&#1091;&#1089;&#1090;&#1080;&#1084;&#1099;.&quot;
 
 #: core/validators.py:83
 msgid &quot;Enter only digits separated by commas.&quot;
-msgstr &quot;&#1042;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1094;&#1080;&#1092;&#1088;&#1099; &#1088;&#1072;&#1079;&#1076;&#1077;&#1083;&#1105;&#1085;&#1085;&#1099;&#1077; &#1079;&#1072;&#1087;&#1103;&#1090;&#1099;&#1084;&#1080;&quot;
+msgstr &quot;&#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1094;&#1080;&#1092;&#1088;&#1099;, &#1088;&#1072;&#1079;&#1076;&#1077;&#1083;&#1105;&#1085;&#1085;&#1099;&#1077; &#1079;&#1072;&#1087;&#1103;&#1090;&#1099;&#1084;&#1080;.&quot;
 
 #: core/validators.py:95
 msgid &quot;Enter valid e-mail addresses separated by commas.&quot;
-msgstr &quot;&#1042;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1088;&#1077;&#1072;&#1083;&#1100;&#1085;&#1099;&#1077; e-mail &#1072;&#1076;&#1088;&#1077;&#1089;&#1072; &#1088;&#1072;&#1079;&#1076;&#1077;&#1083;&#1105;&#1085;&#1085;&#1099;&#1077; &#1079;&#1072;&#1087;&#1103;&#1090;&#1099;&#1084;&#1080;&quot;
+msgstr &quot;&#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1099;&#1077; &#1072;&#1076;&#1088;&#1077;&#1089;&#1072; &#1101;&#1083;&#1077;&#1082;&#1090;&#1088;&#1086;&#1085;&#1085;&#1086;&#1081; &#1087;&#1086;&#1095;&#1090;&#1099;, &#1088;&#1072;&#1079;&#1076;&#1077;&#1083;&#1105;&#1085;&#1085;&#1099;&#1077; &#1079;&#1072;&#1087;&#1103;&#1090;&#1099;&#1084;&#1080;.&quot;
 
 #: core/validators.py:99
 msgid &quot;Please enter a valid IP address.&quot;
-msgstr &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1088;&#1077;&#1072;&#1083;&#1100;&#1085;&#1099;&#1081; IP &#1072;&#1076;&#1088;&#1077;&#1089;&quot;
+msgstr &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1099;&#1081; IP-&#1072;&#1076;&#1088;&#1077;&#1089;.&quot;
 
 #: core/validators.py:103
 msgid &quot;Empty values are not allowed here.&quot;
-msgstr &quot;&#1055;&#1091;&#1089;&#1090;&#1086;&#1077; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1085;&#1077; &#1088;&#1072;&#1079;&#1088;&#1077;&#1096;&#1077;&#1085;&#1086;&quot;
+msgstr &quot;&#1055;&#1091;&#1089;&#1090;&#1086;&#1077; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1079;&#1076;&#1077;&#1089;&#1100; &#1085;&#1077;&#1076;&#1086;&#1087;&#1091;&#1089;&#1090;&#1080;&#1084;&#1086;.&quot;
 
 #: core/validators.py:107
 msgid &quot;Non-numeric characters aren't allowed here.&quot;
-msgstr &quot;&#1053;&#1077; &#1094;&#1080;&#1092;&#1088;&#1086;&#1074;&#1099;&#1077; &#1089;&#1080;&#1084;&#1074;&#1086;&#1083;&#1099; &#1085;&#1077; &#1088;&#1085;&#1072;&#1079;&#1088;&#1077;&#1096;&#1077;&#1085;&#1099;&quot;
+msgstr &quot;&#1053;&#1077;&#1094;&#1080;&#1092;&#1088;&#1086;&#1074;&#1099;&#1077; &#1089;&#1080;&#1084;&#1074;&#1086;&#1083;&#1099; &#1079;&#1076;&#1077;&#1089;&#1100; &#1085;&#1077;&#1076;&#1086;&#1087;&#1091;&#1089;&#1090;&#1080;&#1084;&#1099;.&quot;
 
 #: core/validators.py:111
 msgid &quot;This value can't be comprised solely of digits.&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1069;&#1090;&#1086; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1085;&#1077; &#1084;&#1086;&#1078;&#1077;&#1090; &#1073;&#1099;&#1090;&#1100; &#1089;&#1086;&#1089;&#1090;&#1072;&#1074;&#1083;&#1077;&#1085;&#1086; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1080;&#1079; &#1094;&#1080;&#1092;&#1088;.&quot;
 
 #: core/validators.py:116
 msgid &quot;Enter a whole number.&quot;
-msgstr &quot;&#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1085;&#1086;&#1084;&#1077;&#1088;&quot;
+msgstr &quot;&#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1094;&#1077;&#1083;&#1086;&#1077; &#1095;&#1080;&#1089;&#1083;&#1086;.&quot;
 
 #: core/validators.py:120
 msgid &quot;Only alphabetical characters are allowed here.&quot;
-msgstr &quot;&#1058;&#1086;&#1083;&#1100;&#1082;&#1086; &#1073;&#1091;&#1082;&#1074;&#1099; &#1084;&#1086;&#1078;&#1085;&#1086; &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1100;&quot;
+msgstr &quot;&#1047;&#1076;&#1077;&#1089;&#1100; &#1088;&#1072;&#1079;&#1088;&#1077;&#1096;&#1077;&#1085;&#1099; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1072;&#1083;&#1092;&#1072;&#1074;&#1080;&#1090;&#1085;&#1099;&#1077; &#1089;&#1080;&#1084;&#1074;&#1086;&#1083;&#1099;.&quot;
 
 #: core/validators.py:124
 msgid &quot;Enter a valid date in YYYY-MM-DD format.&quot;
-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;
+msgstr &quot;&#1042;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1091;&#1102; &#1076;&#1072;&#1090;&#1091; &#1074; &#1092;&#1086;&#1088;&#1084;&#1072;&#1090;&#1077; YYYY-MM-DD.&quot;
 
 #: core/validators.py:128
 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;
+msgstr &quot;&#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1087;&#1088;&#1072;&#1074;&#1080;&#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
 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;
+msgstr &quot;&#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1099;&#1077; &#1076;&#1072;&#1090;&#1091;/&#1074;&#1088;&#1077;&#1084;&#1103; &#1074; &#1092;&#1086;&#1088;&#1084;&#1072;&#1090;&#1077; YYYY-MM-DD HH:MM.&quot;
 
 #: core/validators.py:136
 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;
+msgstr &quot;&#1059;&#1082;&#1072;&#1078;&#1080;&#1090;&#1077; &#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1099;&#1081; &#1072;&#1076;&#1088;&#1077;&#1089; &#1101;&#1083;&#1077;&#1082;&#1090;&#1088;&#1086;&#1085;&#1085;&#1086;&#1081; &#1087;&#1086;&#1095;&#1090;&#1099;.&quot;
 
 #: core/validators.py:148
 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;
+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;&#1079;&#1080;&#1083;&#1080;, &#1085;&#1077; &#1103;&#1074;&#1083;&#1103;&#1077;&#1090;&#1089;&#1103; &#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
@@ -1614,7 +1651,7 @@ msgstr &quot;URL %s &#1085;&#1077; &#1091;&#1082;&#1072;&#1079;&#1099;&#1074;&#1072;&#1077;&#1090; &#1085;&#1072; &#1088;&#1077;&#1072;&#1083;&#1100;&#1085;&#1086;&#1077; &#1080;&#1079;&#1086;&#1073;&#1088;&#1072;&#1078;&#1077;&#1085;
 #: core/validators.py:159
 #, python-format
 msgid &quot;Phone numbers must be in XXX-XXX-XXXX format. \&quot;%s\&quot; is invalid.&quot;
-msgstr &quot;&#1058;&#1077;&#1083;&#1077;&#1092;&#1086;&#1085;&#1085;&#1099;&#1081; &#1085;&#1086;&#1084;&#1077;&#1088; &#1076;&#1086;&#1083;&#1078;&#1077;&#1085; &#1073;&#1099;&#1090;&#1100; &#1074; &#1092;&#1086;&#1088;&#1084;&#1072;&#1090;&#1077; XXX-XXX-XXXX. \&quot;%s\&quot; &#1085;&#1077; &#1074;&#1077;&#1088;&#1077;&#1085;.&quot;
+msgstr &quot;&#1058;&#1077;&#1083;&#1077;&#1092;&#1086;&#1085;&#1085;&#1099;&#1077; &#1085;&#1086;&#1084;&#1077;&#1088;&#1072; &#1076;&#1086;&#1083;&#1078;&#1077;&#1085; &#1073;&#1099;&#1090;&#1100; &#1074; &#1092;&#1086;&#1088;&#1084;&#1072;&#1090;&#1077; XXX-XXX-XXXX. \&quot;%s\&quot; &#1085;&#1077;&#1074;&#1077;&#1088;&#1077;&#1085;.&quot;
 
 #: core/validators.py:167
 #, python-format
@@ -1623,7 +1660,7 @@ msgstr &quot;URL %s &#1085;&#1077; &#1091;&#1082;&#1072;&#1079;&#1099;&#1074;&#1072;&#1077;&#1090; &#1085;&#1072; &#1088;&#1077;&#1072;&#1083;&#1100;&#1085;&#1086;&#1077; &#1074;&#1080;&#1076;&#1077;&#1086; QuickTim
 
 #: core/validators.py:171
 msgid &quot;A valid URL is required.&quot;
-msgstr &quot;&#1056;&#1077;&#1072;&#1083;&#1100;&#1085;&#1099;&#1081; URL &#1086;&#1073;&#1103;&#1079;&#1072;&#1090;&#1077;&#1083;&#1077;&#1085;.&quot;
+msgstr &quot;&#1055;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1099;&#1081; URL &#1086;&#1073;&#1103;&#1079;&#1072;&#1090;&#1077;&#1083;&#1077;&#1085;.&quot;
 
 #: core/validators.py:185
 #, python-format
@@ -1631,7 +1668,7 @@ msgid &quot;&quot;
 &quot;Valid HTML is required. Specific errors are:\n&quot;
 &quot;%s&quot;
 msgstr &quot;&quot;
-&quot;&#1056;&#1077;&#1072;&#1083;&#1100;&#1085;&#1099;&#1081; HTML &#1086;&#1073;&#1103;&#1079;&#1072;&#1090;&#1077;&#1083;&#1077;&#1085;. &#1057;&#1087;&#1077;&#1094;&#1080;&#1092;&#1080;&#1095;&#1085;&#1099;&#1077; &#1086;&#1096;&#1080;&#1073;&#1082;&#1080;:\n&quot;
+&quot;&#1055;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1099;&#1081; HTML &#1086;&#1073;&#1103;&#1079;&#1072;&#1090;&#1077;&#1083;&#1077;&#1085;. &#1057;&#1087;&#1077;&#1094;&#1080;&#1092;&#1080;&#1095;&#1085;&#1099;&#1077; &#1086;&#1096;&#1080;&#1073;&#1082;&#1080;:\n&quot;
 &quot;%s&quot;
 
 #: core/validators.py:192
@@ -1648,11 +1685,11 @@ msgstr &quot;&#1053;&#1077;&#1074;&#1077;&#1088;&#1085;&#1099;&#1081; URL: %s&quot;
 #: 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;
+msgstr &quot;URL %s - &#1089;&#1083;&#1086;&#1084;&#1072;&#1085;&#1085;&#1072;&#1103; &#1089;&#1089;&#1099;&#1083;&#1082;&#1072;.&quot;
 
 #: core/validators.py:214
 msgid &quot;Enter a valid U.S. state abbreviation.&quot;
-msgstr &quot;&#1042;&#1074;&#1086;&#1076;&#1080;&#1090;&#1077; &#1088;&#1077;&#1072;&#1083;&#1100;&#1085;&#1091;&#1102; &#1072;&#1073;&#1088;&#1077;&#1074;&#1080;&#1072;&#1090;&#1091;&#1088;&#1091; &#1096;&#1090;&#1072;&#1090;&#1086;&#1074; &#1057;&#1064;&#1040;.&quot;
+msgstr &quot;&#1042;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1091;&#1102; &#1072;&#1073;&#1073;&#1088;&#1077;&#1074;&#1080;&#1072;&#1090;&#1091;&#1088;&#1091; &#1096;&#1090;&#1072;&#1090;&#1072; &#1057;&#1064;&#1040;.&quot;
 
 #: core/validators.py:229
 #, python-format
@@ -1660,6 +1697,7 @@ 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;&#1057;&#1083;&#1077;&#1076;&#1080;&#1090;&#1077; &#1079;&#1072; &#1089;&#1074;&#1086;&#1080;&#1084;&#1080; &#1089;&#1083;&#1086;&#1074;&#1072;&#1084;&#1080;! &#1057;&#1083;&#1086;&#1074;&#1086; %s &#1079;&#1076;&#1077;&#1089;&#1100; &#1079;&#1072;&#1087;&#1088;&#1077;&#1097;&#1077;&#1085;&#1086;.&quot;
 msgstr[1] &quot;&#1057;&#1083;&#1077;&#1076;&#1080;&#1090;&#1077; &#1079;&#1072; &#1089;&#1074;&#1086;&#1080;&#1084;&#1080; &#1089;&#1083;&#1086;&#1074;&#1072;&#1084;&#1080;! &#1057;&#1083;&#1086;&#1074;&#1072; %s &#1079;&#1076;&#1077;&#1089;&#1100; &#1079;&#1072;&#1087;&#1088;&#1077;&#1097;&#1077;&#1085;&#1099;.&quot;
+msgstr[2] &quot;&#1057;&#1083;&#1077;&#1076;&#1080;&#1090;&#1077; &#1079;&#1072; &#1089;&#1074;&#1086;&#1080;&#1084;&#1080; &#1089;&#1083;&#1086;&#1074;&#1072;&#1084;&#1080;! &#1057;&#1083;&#1086;&#1074;&#1072; %s &#1079;&#1076;&#1077;&#1089;&#1100; &#1079;&#1072;&#1087;&#1088;&#1077;&#1097;&#1077;&#1085;&#1099;.&quot;
 
 #: core/validators.py:236
 #, python-format
@@ -1673,58 +1711,60 @@ 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;
 #: 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;
+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; &#1080;&#1083;&#1080; &#1086;&#1089;&#1090;&#1072;&#1074;&#1100;&#1090;&#1077; &#1080;&#1093; &#1086;&#1073;&#1072; &#1087;&#1091;&#1089;&#1090;&#1099;&#1084;&#1080;.&quot;
 
 #: core/validators.py:282
 #, python-format
 msgid &quot;This field must be given if %(field)s is %(value)s&quot;
-msgstr &quot;&#1069;&#1090;&#1086; &#1087;&#1086;&#1083;&#1077; &#1076;&#1086;&#1083;&#1078;&#1085;&#1086; &#1073;&#1099;&#1090;&#1100; &#1079;&#1072;&#1087;&#1086;&#1083;&#1085;&#1077;&#1085;&#1086; &#1077;&#1089;&#1083;&#1080; %(field)s &#1088;&#1072;&#1074;&#1085;&#1086; %(value)s&quot;
+msgstr &quot;&#1069;&#1090;&#1086; &#1087;&#1086;&#1083;&#1077; &#1076;&#1086;&#1083;&#1078;&#1085;&#1086; &#1073;&#1099;&#1090;&#1100; &#1079;&#1072;&#1087;&#1086;&#1083;&#1085;&#1077;&#1085;&#1086;, &#1077;&#1089;&#1083;&#1080; %(field)s &#1088;&#1072;&#1074;&#1085;&#1086; %(value)s&quot;
 
 #: core/validators.py:294
 #, python-format
 msgid &quot;This field must be given if %(field)s is not %(value)s&quot;
-msgstr &quot;&#1069;&#1090;&#1086; &#1087;&#1086;&#1083;&#1077; &#1076;&#1086;&#1083;&#1078;&#1085;&#1086; &#1073;&#1099;&#1090;&#1100; &#1079;&#1072;&#1087;&#1086;&#1083;&#1085;&#1077;&#1085;&#1086; &#1077;&#1089;&#1083;&#1080; %(field)s &#1085;&#1077; &#1088;&#1072;&#1074;&#1085;&#1086; %(value)s&quot;
+msgstr &quot;&#1069;&#1090;&#1086; &#1087;&#1086;&#1083;&#1077; &#1076;&#1086;&#1083;&#1078;&#1085;&#1086; &#1073;&#1099;&#1090;&#1100; &#1079;&#1072;&#1087;&#1086;&#1083;&#1085;&#1077;&#1085;&#1086;, &#1077;&#1089;&#1083;&#1080; %(field)s &#1085;&#1077; &#1088;&#1072;&#1074;&#1085;&#1086; %(value)s&quot;
 
 #: core/validators.py:313
 msgid &quot;Duplicate values are not allowed.&quot;
-msgstr &quot;&#1044;&#1074;&#1086;&#1081;&#1085;&#1099;&#1077; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1103; &#1079;&#1072;&#1087;&#1088;&#1077;&#1097;&#1077;&#1085;&#1085;&#1099;.&quot;
+msgstr &quot;&#1044;&#1074;&#1086;&#1081;&#1085;&#1099;&#1077; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1103; &#1079;&#1072;&#1087;&#1088;&#1077;&#1097;&#1077;&#1085;&#1099;.&quot;
 
 #: core/validators.py:336
 #, python-format
 msgid &quot;This value must be a power of %s.&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1069;&#1090;&#1086; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1076;&#1086;&#1083;&#1078;&#1085;&#1086; &#1073;&#1099;&#1090;&#1100; &#1089;&#1090;&#1077;&#1087;&#1077;&#1085;&#1100;&#1102; %s.&quot;
 
 #: core/validators.py:347
 msgid &quot;Please enter a valid decimal number.&quot;
-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;&#1085;&#1086;&#1077; &#1095;&#1080;&#1089;&#1083;&#1086;.&quot;
+msgstr &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1077;&#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;.&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;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;
+msgstr[0] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1077;&#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; &#1084;&#1072;&#1082;&#1089;&#1080;&#1084;&#1072;&#1083;&#1100;&#1085;&#1086; &#1089; %s &#1079;&#1085;&#1072;&#1082;&#1086;&#1084;.&quot;
+msgstr[1] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1077;&#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; &#1084;&#1072;&#1082;&#1089;&#1080;&#1084;&#1072;&#1083;&#1100;&#1085;&#1086; &#1089; %s &#1079;&#1085;&#1072;&#1082;&#1072;&#1084;&#1080;.&quot;
+msgstr[2] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1077;&#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; &#1084;&#1072;&#1082;&#1089;&#1080;&#1084;&#1072;&#1083;&#1100;&#1085;&#1086; &#1089; %s &#1079;&#1085;&#1072;&#1082;&#1072;&#1084;&#1080;.&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;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;
+msgstr[0] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1077;&#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; &#1084;&#1072;&#1082;&#1089;&#1080;&#1084;&#1072;&#1083;&#1100;&#1085;&#1086; &#1089; %s &#1079;&#1085;&#1072;&#1082;&#1086;&#1084; &#1087;&#1086;&#1089;&#1083;&#1077; &#1079;&#1072;&#1087;&#1103;&#1090;&#1086;&#1081;.&quot;
+msgstr[1] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1077;&#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; &#1084;&#1072;&#1082;&#1089;&#1080;&#1084;&#1072;&#1083;&#1100;&#1085;&#1086; &#1089; %s &#1079;&#1085;&#1072;&#1082;&#1072;&#1084;&#1080; &#1087;&#1086;&#1089;&#1083;&#1077; &#1079;&#1072;&#1087;&#1103;&#1090;&#1086;&#1081;.&quot;
+msgstr[2] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1077;&#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; &#1084;&#1072;&#1082;&#1089;&#1080;&#1084;&#1072;&#1083;&#1100;&#1085;&#1086; &#1089; %s &#1079;&#1085;&#1072;&#1082;&#1072;&#1084;&#1080; &#1087;&#1086;&#1089;&#1083;&#1077; &#1079;&#1072;&#1087;&#1103;&#1090;&#1086;&#1081;.&quot;
 
 #: core/validators.py:362
 #, python-format
 msgid &quot;Make sure your uploaded file is at least %s bytes big.&quot;
-msgstr &quot;&#1059;&#1073;&#1077;&#1076;&#1080;&#1090;&#1077;&#1089;&#1100;, &#1095;&#1090;&#1086; &#1079;&#1072;&#1075;&#1088;&#1091;&#1078;&#1077;&#1085;&#1085;&#1099;&#1081; &#1092;&#1072;&#1081;&#1083; &#1087;&#1086; &#1082;&#1088;&#1072;&#1081;&#1085;&#1077;&#1081; &#1084;&#1077;&#1088;&#1077; &#1085;&#1077; &#1084;&#1077;&#1085;&#1100;&#1096;&#1077; %s &#1073;&#1072;&#1081;&#1090;.&quot;
+msgstr &quot;&#1059;&#1073;&#1077;&#1076;&#1080;&#1090;&#1077;&#1089;&#1100;, &#1095;&#1090;&#1086; &#1079;&#1072;&#1075;&#1088;&#1091;&#1078;&#1077;&#1085;&#1085;&#1099;&#1081; &#1092;&#1072;&#1081;&#1083; &#1085;&#1077; &#1084;&#1077;&#1085;&#1100;&#1096;&#1077; %s &#1073;&#1072;&#1081;&#1090;.&quot;
 
 #: core/validators.py:363
 #, python-format
 msgid &quot;Make sure your uploaded file is at most %s bytes big.&quot;
-msgstr &quot;&#1059;&#1073;&#1077;&#1076;&#1080;&#1090;&#1077;&#1089;&#1100;, &#1095;&#1090;&#1086; &#1079;&#1072;&#1075;&#1088;&#1091;&#1078;&#1077;&#1085;&#1085;&#1099;&#1081; &#1092;&#1072;&#1081;&#1083; &#1073;&#1086;&#1083;&#1100;&#1096;&#1077; &#1095;&#1077;&#1084; %s &#1073;&#1072;&#1081;&#1090;.&quot;
+msgstr &quot;&#1059;&#1073;&#1077;&#1076;&#1080;&#1090;&#1077;&#1089;&#1100;, &#1095;&#1090;&#1086; &#1079;&#1072;&#1075;&#1088;&#1091;&#1078;&#1077;&#1085;&#1085;&#1099;&#1081; &#1092;&#1072;&#1081;&#1083; &#1085;&#1077; &#1073;&#1086;&#1083;&#1100;&#1096;&#1077; %s &#1073;&#1072;&#1081;&#1090;.&quot;
 
 #: core/validators.py:376
 msgid &quot;The format for this field is wrong.&quot;
-msgstr &quot;&#1060;&#1086;&#1088;&#1084;&#1072;&#1090; &#1101;&#1090;&#1086;&#1075;&#1086; &#1087;&#1086;&#1083;&#1103; &#1085;&#1077;&#1074;&#1077;&#1088;&#1077;&#1085;&quot;
+msgstr &quot;&#1060;&#1086;&#1088;&#1084;&#1072;&#1090; &#1101;&#1090;&#1086;&#1075;&#1086; &#1087;&#1086;&#1083;&#1103; &#1085;&#1077;&#1074;&#1077;&#1088;&#1077;&#1085;.&quot;
 
 #: core/validators.py:391
 msgid &quot;This field is invalid.&quot;
@@ -1733,7 +1773,7 @@ msgstr &quot;&#1069;&#1090;&#1086; &#1087;&#1086;&#1083;&#1077; &#1085;&#1077;&#1074;&#1077;&#1088;&#1085;&#1086;.&quot;
 #: core/validators.py:426
 #, python-format
 msgid &quot;Could not retrieve anything from %s.&quot;
-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;
+msgstr &quot;&#1053;&#1077;&#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1087;&#1086;&#1083;&#1091;&#1095;&#1080;&#1090;&#1100; &#1085;&#1080;&#1095;&#1077;&#1075;&#1086; &#1089; %s.&quot;
 
 #: core/validators.py:429
 #, python-format
@@ -1743,42 +1783,42 @@ 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-Typ
 #: core/validators.py:462
 #, python-format
 msgid &quot;Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \&quot;%(start)s\&quot;.)&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1079;&#1072;&#1082;&#1088;&#1086;&#1081;&#1090;&#1077; &#1085;&#1077;&#1079;&#1072;&#1082;&#1088;&#1099;&#1090;&#1099;&#1081; &#1090;&#1101;&#1075; %(tag)s &#1085;&#1072; &#1089;&#1090;&#1088;&#1086;&#1082;&#1077; %(line)s. (&#1057;&#1090;&#1088;&#1086;&#1082;&#1072; &#1085;&#1072;&#1095;&#1080;&#1085;&#1072;&#1077;&#1090;&#1089;&#1103; &#1089; \&quot;%(start)s\&quot;.)&quot;
 
 #: core/validators.py:466
 #, python-format
 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;
+msgstr &quot;&#1063;&#1090;&#1086;-&#1090;&#1086; &#1080;&#1079; &#1090;&#1077;&#1082;&#1089;&#1090;&#1072;, &#1085;&#1072;&#1095;&#1080;&#1085;&#1072;&#1102;&#1097;&#1077;&#1075;&#1086;&#1089;&#1103; &#1085;&#1072; &#1089;&#1090;&#1088;&#1086;&#1082;&#1077; %(line)s, &#1085;&#1077;&#1076;&#1086;&#1087;&#1091;&#1089;&#1090;&#1080;&#1084;&#1086; &#1074; &#1090;&#1086;&#1084; &#1082;&#1086;&#1085;&#1090;&#1077;&#1082;&#1089;&#1090;&#1077;. (&#1057;&#1090;&#1088;&#1086;&#1082;&#1072; &#1085;&#1072;&#1095;&#1080;&#1085;&#1072;&#1077;&#1090;&#1089;&#1103; &#1089; \&quot;%(start)s\&quot;.)&quot;
 
 #: core/validators.py:471
 #, 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;
+msgstr &quot;\&quot;%(attr)s\&quot; &#1085;&#1072; &#1089;&#1090;&#1088;&#1086;&#1082;&#1077; %(line)s - &#1085;&#1077;&#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1099;&#1081; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;. (&#1057;&#1090;&#1088;&#1086;&#1082;&#1072; &#1085;&#1072;&#1095;&#1080;&#1085;&#1072;&#1077;&#1090;&#1089;&#1103; &#1089; \&quot;%(start)s\&quot;.)&quot;
 
 #: core/validators.py:476
 #, python-format
 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;
+msgstr &quot;\&quot;&lt;%(tag)s&gt;\&quot; &#1085;&#1072; &#1089;&#1090;&#1088;&#1086;&#1082;&#1077; %(line)s - &#1085;&#1077;&#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1099;&#1081; &#1090;&#1077;&#1075;. (&#1057;&#1090;&#1088;&#1086;&#1082;&#1072; &#1085;&#1072;&#1095;&#1080;&#1085;&#1072;&#1077;&#1090;&#1089;&#1103; &#1089; \&quot;%(start)s\&quot;.)&quot;
 
 #: core/validators.py:480
 #, python-format
 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;
+msgstr &quot;&#1042; &#1090;&#1077;&#1075;&#1077; &#1085;&#1072; &#1089;&#1090;&#1088;&#1086;&#1082;&#1077; %(line)s &#1085;&#1077; &#1093;&#1074;&#1072;&#1090;&#1072;&#1077;&#1090; &#1086;&#1076;&#1085;&#1086;&#1075;&#1086; &#1080;&#1083;&#1080; &#1073;&#1086;&#1083;&#1077;&#1077; &#1086;&#1073;&#1103;&#1079;&#1072;&#1090;&#1077;&#1083;&#1100;&#1085;&#1099;&#1093; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1086;&#1074;. (&#1057;&#1090;&#1088;&#1086;&#1082;&#1072; &#1085;&#1072;&#1095;&#1080;&#1085;&#1072;&#1077;&#1090;&#1089;&#1103; &#1089; \&quot;%(start)s\&quot;.)&quot;
 
 #: core/validators.py:485
 #, python-format
 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;
+msgstr &quot;&#1040;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090; \&quot;%(attr)s\&quot; &#1085;&#1072; &#1089;&#1090;&#1088;&#1086;&#1082;&#1077; %(line)s &#1080;&#1084;&#1077;&#1077;&#1090; &#1085;&#1077;&#1076;&#1086;&#1087;&#1091;&#1089;&#1090;&#1080;&#1084;&#1086;&#1077; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077;. (&#1057;&#1090;&#1088;&#1086;&#1082;&#1072; &#1085;&#1072;&#1095;&#1080;&#1085;&#1072;&#1077;&#1090;&#1089;&#1103; &#1089; \&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;&quot;
+msgstr &quot;%(object)s &#1089; &#1090;&#1080;&#1087;&#1086;&#1084; %(type)s &#1091;&#1078;&#1077; &#1089;&#1091;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1077;&#1090; &#1076;&#1083;&#1103; &#1076;&#1072;&#1085;&#1085;&#1086;&#1075;&#1086; %(field)s.&quot;
 
 #: db/models/fields/__init__.py:40
 #, python-format
 msgid &quot;%(optname)s with this %(fieldname)s already exists.&quot;
-msgstr &quot;&quot;
+msgstr &quot;%(optname)s &#1089; %(fieldname)s &#1091;&#1078;&#1077; &#1089;&#1091;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1077;&#1090;.&quot;
 
 #: db/models/fields/__init__.py:114
 #: db/models/fields/__init__.py:265
@@ -1790,11 +1830,11 @@ msgstr &quot;&#1054;&#1073;&#1103;&#1079;&#1072;&#1090;&#1077;&#1083;&#1100;&#1085;&#1086;&#1077; &#1087;&#1086;&#1083;&#1077;.&quot;
 
 #: db/models/fields/__init__.py:337
 msgid &quot;This value must be an integer.&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1069;&#1090;&#1086; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1076;&#1086;&#1083;&#1078;&#1085;&#1086; &#1073;&#1099;&#1090;&#1100; &#1094;&#1077;&#1083;&#1099;&#1084; &#1095;&#1080;&#1089;&#1083;&#1086;&#1084;.&quot;
 
 #: db/models/fields/__init__.py:369
 msgid &quot;This value must be either True or 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;
+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
 msgid &quot;This field cannot be null.&quot;
@@ -1807,48 +1847,50 @@ msgstr &quot;&#1059;&#1082;&#1072;&#1078;&#1080;&#1090;&#1077; &#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1086;&#1077; &#1080;&#1084;&#1103; &#1092;&#1072;&#1081;&#1083;&#1072;.&quot;
 #: db/models/fields/related.py:43
 #, python-format
 msgid &quot;Please enter a valid %s.&quot;
-msgstr &quot;&quot;
+msgstr &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1099;&#1081; %s.&quot;
 
 #: db/models/fields/related.py:579
 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;
+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;&#1080;&#1090;&#1077; &#1079;&#1072;&#1087;&#1103;&#1090;&#1099;&#1084;&#1080;.&quot;
 
 #: db/models/fields/related.py:581
 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;
+msgstr &quot;&#1059;&#1076;&#1077;&#1088;&#1078;&#1080;&#1074;&#1072;&#1081;&#1090;&#1077; \&quot;Control\&quot; (&#1080;&#1083;&#1080; \&quot;Command\&quot; &#1085;&#1072; Mac) &#1076;&#1083;&#1103; &#1074;&#1099;&#1073;&#1086;&#1088;&#1072; &#1085;&#1077;&#1089;&#1082;&#1086;&#1083;&#1100;&#1082;&#1080;&#1093;.&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;Please enter valid %(self)s IDs. The values %(value)r are invalid.&quot;
-msgstr[0] &quot;&quot;
-msgstr[1] &quot;&quot;
+msgstr[0] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1082;&#1086;&#1088;&#1088;&#1077;&#1082;&#1090;&#1085;&#1099;&#1081; ID &#1076;&#1083;&#1103; %(self)s. &#1047;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; %(value)r &#1085;&#1077;&#1076;&#1086;&#1087;&#1091;&#1089;&#1090;&#1080;&#1084;&#1086;.&quot;
+msgstr[1] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1082;&#1086;&#1088;&#1088;&#1077;&#1082;&#1090;&#1085;&#1099;&#1077; ID &#1076;&#1083;&#1103; %(self)s. &#1047;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1103; %(value)r &#1085;&#1077;&#1076;&#1086;&#1087;&#1091;&#1089;&#1090;&#1080;&#1084;&#1099;.&quot;
+msgstr[2] &quot;&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1081;&#1089;&#1090;&#1072;, &#1074;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1082;&#1086;&#1088;&#1088;&#1077;&#1082;&#1090;&#1085;&#1099;&#1077; ID &#1076;&#1083;&#1103; %(self)s. &#1047;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1103; %(value)r &#1085;&#1077;&#1076;&#1086;&#1087;&#1091;&#1089;&#1090;&#1080;&#1084;&#1099;.&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;&quot;
-msgstr[1] &quot;&quot;
+msgstr[0] &quot;&#1059;&#1073;&#1077;&#1076;&#1080;&#1090;&#1077;&#1089;&#1100;, &#1095;&#1090;&#1086; &#1076;&#1083;&#1080;&#1085;&#1072; &#1074;&#1072;&#1096;&#1077;&#1075;&#1086; &#1090;&#1077;&#1082;&#1089;&#1090;&#1072; &#1084;&#1077;&#1085;&#1100;&#1096;&#1077; %s &#1089;&#1080;&#1084;&#1074;&#1086;&#1083;&#1072;.&quot;
+msgstr[1] &quot;&#1059;&#1073;&#1077;&#1076;&#1080;&#1090;&#1077;&#1089;&#1100;, &#1095;&#1090;&#1086; &#1076;&#1083;&#1080;&#1085;&#1072; &#1074;&#1072;&#1096;&#1077;&#1075;&#1086; &#1090;&#1077;&#1082;&#1089;&#1090;&#1072; &#1084;&#1077;&#1085;&#1100;&#1096;&#1077; %s &#1089;&#1080;&#1084;&#1074;&#1086;&#1083;&#1086;&#1074;.&quot;
+msgstr[2] &quot;&#1059;&#1073;&#1077;&#1076;&#1080;&#1090;&#1077;&#1089;&#1100;, &#1095;&#1090;&#1086; &#1076;&#1083;&#1080;&#1085;&#1072; &#1074;&#1072;&#1096;&#1077;&#1075;&#1086; &#1090;&#1077;&#1082;&#1089;&#1090;&#1072; &#1084;&#1077;&#1085;&#1100;&#1096;&#1077; %s &#1089;&#1080;&#1084;&#1074;&#1086;&#1083;&#1086;&#1074;.&quot;
 
 #: forms/__init__.py:385
 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;
+msgstr &quot;&#1055;&#1077;&#1088;&#1077;&#1085;&#1086;&#1089;&#1099; &#1089;&#1090;&#1088;&#1086;&#1082; &#1079;&#1076;&#1077;&#1089;&#1100; &#1085;&#1077; &#1076;&#1086;&#1087;&#1091;&#1089;&#1082;&#1072;&#1102;&#1090;&#1089;&#1103;.&quot;
 
 #: 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;
+msgstr &quot;&#1042;&#1099;&#1073;&#1077;&#1088;&#1080;&#1090;&#1077; &#1082;&#1086;&#1088;&#1088;&#1077;&#1082;&#1090;&#1085;&#1099;&#1081; &#1074;&#1072;&#1088;&#1080;&#1072;&#1085;&#1090;; '%(data)s' &#1085;&#1077;&#1090; &#1074; %(choices)s.&quot;
 
 #: forms/__init__.py:645
 msgid &quot;The submitted file is empty.&quot;
-msgstr &quot;&#1059;&#1082;&#1072;&#1079;&#1072;&#1085;&#1085;&#1099;&#1081; &#1092;&#1072;&#1081;&#1083; - &#1087;&#1091;&#1089;&#1090;.&quot;
+msgstr &quot;&#1059;&#1082;&#1072;&#1079;&#1072;&#1085;&#1085;&#1099;&#1081; &#1092;&#1072;&#1081;&#1083; &#1087;&#1091;&#1089;&#1090;.&quot;
 
 #: forms/__init__.py:699
 msgid &quot;Enter a whole number between -32,768 and 32,767.&quot;
-msgstr &quot;&quot;
+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; -32768 &#1076;&#1086; 32767.&quot;
 
 #: forms/__init__.py:708
 msgid &quot;Enter a positive number.&quot;</diff>
      <filename>django/conf/locale/ru/LC_MESSAGES/django.po</filename>
    </modified>
    <modified>
      <diff>@@ -171,7 +171,6 @@ var DateTimeShortcuts = {
         cal_nav_prev.className = 'calendarnav-previous';
         var cal_nav_next = quickElement('a', cal_nav, '&gt;', 'href', 'javascript:DateTimeShortcuts.drawNext('+num+');');
         cal_nav_next.className = 'calendarnav-next';
-        cal_box.appendChild(cal_nav);
 
         // main box
         var cal_main = quickElement('div', cal_box, '', 'id', DateTimeShortcuts.calendarDivName2 + num);</diff>
      <filename>django/contrib/admin/media/js/admin/DateTimeShortcuts.js</filename>
    </modified>
    <modified>
      <diff>@@ -161,8 +161,10 @@ class EditInlineNode(template.Node):
         context.push()
         if relation.field.rel.edit_inline == models.TABULAR:
             bound_related_object_class = TabularBoundRelatedObject
-        else:
+        elif relation.field.rel.edit_inline == models.STACKED:
             bound_related_object_class = StackedBoundRelatedObject
+        else:
+            bound_related_object_class = relation.field.rel.edit_inline
         original = context.get('original', None)
         bound_related_object = relation.bind(context['form'], original, bound_related_object_class)
         context['bound_related_object'] = bound_related_object</diff>
      <filename>django/contrib/admin/templatetags/admin_modify.py</filename>
    </modified>
    <modified>
      <diff>@@ -41,7 +41,6 @@ def paginator(context, adjacent_pages=2):
     page_numbers = [n for n in \
                     range(context[&quot;page&quot;] - adjacent_pages, context[&quot;page&quot;] + adjacent_pages + 1) \
                     if n &gt; 0 and n &lt;= context[&quot;pages&quot;]]
-    print page_numbers
     return {
         &quot;hits&quot;: context[&quot;hits&quot;],
         &quot;results_per_page&quot;: context[&quot;results_per_page&quot;],</diff>
      <filename>django/contrib/admin/templatetags/row_level_permission.py</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,4 @@
+from django.contrib.admin.views.decorators import staff_member_required
 from django.contrib.auth.forms import UserCreationForm
 from django.contrib.auth.models import User
 from django import forms, template
@@ -5,6 +6,8 @@ from django.shortcuts import render_to_response
 from django.http import HttpResponseRedirect
 
 def user_add_stage(request):
+    if not request.user.has_perm('auth.change_user'):
+        raise PermissionDenied
     manipulator = UserCreationForm()
     if request.method == 'POST':
         new_data = request.POST.copy()
@@ -38,3 +41,4 @@ def user_add_stage(request):
         'opts': User._meta,
         'username_help_text': User._meta.get_field('username').help_text,
     }, context_instance=template.RequestContext(request))
+user_add_stage = staff_member_required(user_add_stage)</diff>
      <filename>django/contrib/admin/views/auth.py</filename>
    </modified>
    <modified>
      <diff>@@ -757,6 +757,8 @@ class ChangeList(object):
             for bit in self.query.split():
                 or_queries = [models.Q(**{construct_search(field_name): bit}) for field_name in self.lookup_opts.admin.search_fields]
                 other_qs = QuerySet(self.model)
+                if qs._select_related:
+                    other_qs = other_qs.select_related()
                 other_qs = other_qs.filter(reduce(operator.or_, or_queries))
                 qs = qs &amp; other_qs
 </diff>
      <filename>django/contrib/admin/views/main.py</filename>
    </modified>
    <modified>
      <diff>@@ -26,3 +26,11 @@ login_required.__doc__ = (
     to the log-in page if necessary.
     &quot;&quot;&quot;
     )
+
+def permission_required(perm, login_url=LOGIN_URL):
+    &quot;&quot;&quot;
+    Decorator for views that checks if a user has a particular permission
+    enabled, redirectiing to the log-in page if necessary.
+    &quot;&quot;&quot;
+    return user_passes_test(lambda u: u.has_perm(perm), login_url=login_url)
+</diff>
      <filename>django/contrib/auth/decorators.py</filename>
    </modified>
    <modified>
      <diff>@@ -22,6 +22,8 @@ def authenhandler(req, **kwargs):
         os.environ['DJANGO_SETTINGS_MODULE'] = settings_module
 
     from django.contrib.auth.models import User
+    from django import db
+    db.reset_queries()
 
     # check that the username is valid
     kwargs = {'username': req.user, 'is_active': True}
@@ -30,18 +32,21 @@ def authenhandler(req, **kwargs):
     if superuser_only:
         kwargs['is_superuser'] = True
     try:
-        user = User.objects.get(**kwargs)
-    except User.DoesNotExist:
-        return apache.HTTP_UNAUTHORIZED
-
-    # check the password and any permission given
-    if user.check_password(req.get_basic_auth_pw()):
-        if permission_name:
-            if user.has_perm(permission_name):
-                return apache.OK
+        try:
+            user = User.objects.get(**kwargs)
+        except User.DoesNotExist:
+            return apache.HTTP_UNAUTHORIZED
+    
+        # check the password and any permission given
+        if user.check_password(req.get_basic_auth_pw()):
+            if permission_name:
+                if user.has_perm(permission_name):
+                    return apache.OK
+                else:
+                    return apache.HTTP_UNAUTHORIZED
             else:
-                return apache.HTTP_UNAUTHORIZED
+                return apache.OK
         else:
-            return apache.OK
-    else:
-        return apache.HTTP_UNAUTHORIZED
+            return apache.HTTP_UNAUTHORIZED
+    finally:
+        db.connection.close()</diff>
      <filename>django/contrib/auth/handlers/modpython.py</filename>
    </modified>
    <modified>
      <diff>@@ -1,12 +1,9 @@
 class LazyUser(object):
-    def __init__(self):
-        self._user = None
-
     def __get__(self, request, obj_type=None):
-        if self._user is None:
+        if not hasattr(request, '_cached_user'):
             from django.contrib.auth import get_user
-            self._user = get_user(request)
-        return self._user
+            request._cached_user = get_user(request)
+        return request._cached_user
 
 class AuthenticationMiddleware(object):
     def process_request(self, request):</diff>
      <filename>django/contrib/auth/middleware.py</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,6 @@
 from django import template
 from django.template import loader
+from django.conf import settings 
 
 register = template.Library()
 
@@ -28,28 +29,28 @@ def if_has_perm(parser, token):
     else:
         nodelist_false = template.NodeList()
     
-    object = None
+    object_var = None
     not_flag = False
     if tokens[1] is &quot;not&quot;:
         not_flag = True
         permission=tokens[2]
         if len(tokens)&gt;3:
-            object=tokens[3]
+            object_var = parser.compile_filter(tokens[3])
     else:
         permission=tokens[1]
         if len(tokens)&gt;2:
-            object=tokens[2]
+            object_var = parser.compile_filter(tokens[2])
 
     if not (permission[0] == permission[-1] and permission[0] in ('&quot;', &quot;'&quot;)):            
         raise template.TemplateSyntaxError, &quot;%r tag's argument should be in quotes&quot; % tokens[0]
-            
-    return HasPermNode(permission[1:-1], not_flag, object, nodelist_true, nodelist_false)
+    
+    return HasPermNode(permission[1:-1], not_flag, object_var, nodelist_true, nodelist_false)
     
 class HasPermNode(template.Node):
-    def __init__(self, permission, not_flag, object, nodelist_true, nodelist_false):
+    def __init__(self, permission, not_flag, object_var, nodelist_true, nodelist_false):
         self.permission = permission
         self.not_flag = not_flag
-        self.object_name = object
+        self.object_var = object_var
         self.nodelist_true, self.nodelist_false = nodelist_true, nodelist_false
 
     def __repr__(self):
@@ -70,21 +71,20 @@ class HasPermNode(template.Node):
         return nodes
 
     def render(self, context):   
-        if self.object_name:
+        if self.object_var:
             try:
-                object = template.resolve_variable(self.object_name, context)
+                object = self.object_var.resolve(context)
             except template.VariableDoesNotExist:
-                return ''
+                object = None
         else:
             object=None
         
         try:
             user = template.resolve_variable(&quot;user&quot;, context)
         except template.VariableDoesNotExist:
-            return ''
+            return settings.TEMPLATE_STRING_IF_INVALID
         
         bool_perm = user.has_perm(self.permission, object=object)
-
         if (self.not_flag and not bool_perm) or (not self.not_flag and bool_perm):
             return self.nodelist_true.render(context)
         if (self.not_flag and bool_perm) or (not self.not_flag and not bool_perm):</diff>
      <filename>django/contrib/auth/templatetags/auth.py</filename>
    </modified>
    <modified>
      <diff>@@ -51,15 +51,19 @@ def request(request):
 class PermLookupDict(object):
     def __init__(self, user, module_name):
         self.user, self.module_name = user, module_name
+
     def __repr__(self):
-        return str(self.user.get_permission_list())
+        return str(self.user.get_all_permissions())
+
     def __getitem__(self, perm_name):
         return self.user.has_perm(&quot;%s.%s&quot; % (self.module_name, perm_name))
+
     def __nonzero__(self):
         return self.user.has_module_perms(self.module_name)
 
 class PermWrapper(object):
     def __init__(self, user):
         self.user = user
+
     def __getitem__(self, module_name):
         return PermLookupDict(self.user, module_name)</diff>
      <filename>django/core/context_processors.py</filename>
    </modified>
    <modified>
      <diff>@@ -155,8 +155,11 @@ def populate_apache_request(http_response, mod_python_req):
     for c in http_response.cookies.values():
         mod_python_req.headers_out.add('Set-Cookie', c.output(header=''))
     mod_python_req.status = http_response.status_code
-    for chunk in http_response.iterator:
-        mod_python_req.write(chunk)
+    try:
+        for chunk in http_response:
+            mod_python_req.write(chunk)
+    finally:
+        http_response.close()
 
 def handler(req):
     # mod_python hooks into this function.</diff>
      <filename>django/core/handlers/modpython.py</filename>
    </modified>
    <modified>
      <diff>@@ -4,6 +4,11 @@ from django.dispatch import dispatcher
 from django.utils import datastructures
 from django import http
 from pprint import pformat
+from shutil import copyfileobj
+try:
+    from cStringIO import StringIO
+except ImportError:
+    from StringIO import StringIO
 
 # See http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
 STATUS_CODE_TEXT = {
@@ -50,6 +55,21 @@ STATUS_CODE_TEXT = {
     505: 'HTTP VERSION NOT SUPPORTED',
 }
 
+def safe_copyfileobj(fsrc, fdst, length=16*1024, size=0):
+    &quot;&quot;&quot;
+    A version of shutil.copyfileobj that will not read more than 'size' bytes.
+    This makes it safe from clients sending more than CONTENT_LENGTH bytes of
+    data in the body.
+    &quot;&quot;&quot;
+    if not size:
+        return copyfileobj(fsrc, fdst, length)
+    while size &gt; 0:
+        buf = fsrc.read(min(length, size))
+        if not buf:
+            break
+        fdst.write(buf)
+        size -= len(buf)
+
 class WSGIRequest(http.HttpRequest):
     def __init__(self, environ):
         self.environ = environ
@@ -119,7 +139,11 @@ class WSGIRequest(http.HttpRequest):
         try:
             return self._raw_post_data
         except AttributeError:
-            self._raw_post_data = self.environ['wsgi.input'].read(int(self.environ[&quot;CONTENT_LENGTH&quot;]))
+            buf = StringIO()
+            content_length = int(self.environ['CONTENT_LENGTH'])
+            safe_copyfileobj(self.environ['wsgi.input'], buf, size=content_length)
+            self._raw_post_data = buf.getvalue()
+            buf.close()
             return self._raw_post_data
 
     GET = property(_get_get, _set_get)
@@ -163,4 +187,4 @@ class WSGIHandler(BaseHandler):
         for c in response.cookies.values():
             response_headers.append(('Set-Cookie', c.output(header='')))
         start_response(status, response_headers)
-        return response.iterator
+        return response</diff>
      <filename>django/core/handlers/wsgi.py</filename>
    </modified>
    <modified>
      <diff>@@ -492,7 +492,7 @@ def syncdb(verbosity=2, interactive=True):
     # to do at this point.
     for app in models.get_apps():
         dispatcher.send(signal=signals.post_syncdb, sender=app,
-            app=app, created_models=created_models, 
+            app=app, created_models=created_models,
             verbosity=verbosity, interactive=interactive)
 
         # Install initial data for the app (but only if this is a model we've
@@ -552,7 +552,7 @@ def diffsettings():
     # Inspired by Postfix's &quot;postconf -n&quot;.
     from django.conf import settings, global_settings
 
-    user_settings = _module_to_dict(settings)
+    user_settings = _module_to_dict(settings._target)
     default_settings = _module_to_dict(global_settings)
 
     output = []
@@ -903,27 +903,32 @@ def get_validation_errors(outfile, app=None):
 
             rel_name = RelatedObject(f.rel.to, cls, f).get_accessor_name()
             rel_query_name = f.related_query_name()
-            for r in rel_opts.fields:
-                if r.name == rel_name:
-                    e.add(opts, &quot;Accessor for m2m field '%s' clashes with field '%s.%s'. Add a related_name argument to the definition for '%s'.&quot; % (f.name, rel_opts.object_name, r.name, f.name))
-                if r.name == rel_query_name:
-                    e.add(opts, &quot;Reverse query name for m2m field '%s' clashes with field '%s.%s'. Add a related_name argument to the definition for '%s'.&quot; % (f.name, rel_opts.object_name, r.name, f.name))
-            for r in rel_opts.many_to_many:
-                if r.name == rel_name:
-                    e.add(opts, &quot;Accessor for m2m field '%s' clashes with m2m field '%s.%s'. Add a related_name argument to the definition for '%s'.&quot; % (f.name, rel_opts.object_name, r.name, f.name))
-                if r.name == rel_query_name:
-                    e.add(opts, &quot;Reverse query name for m2m field '%s' clashes with m2m field '%s.%s'. Add a related_name argument to the definition for '%s'.&quot; % (f.name, rel_opts.object_name, r.name, f.name))
-            for r in rel_opts.get_all_related_many_to_many_objects():
-                if r.field is not f:
+            # If rel_name is none, there is no reverse accessor.
+            # (This only occurs for symmetrical m2m relations to self).
+            # If this is the case, there are no clashes to check for this field, as
+            # there are no reverse descriptors for this field.
+            if rel_name is not None:
+                for r in rel_opts.fields:
+                    if r.name == rel_name:
+                        e.add(opts, &quot;Accessor for m2m field '%s' clashes with field '%s.%s'. Add a related_name argument to the definition for '%s'.&quot; % (f.name, rel_opts.object_name, r.name, f.name))
+                    if r.name == rel_query_name:
+                        e.add(opts, &quot;Reverse query name for m2m field '%s' clashes with field '%s.%s'. Add a related_name argument to the definition for '%s'.&quot; % (f.name, rel_opts.object_name, r.name, f.name))
+                for r in rel_opts.many_to_many:
+                    if r.name == rel_name:
+                        e.add(opts, &quot;Accessor for m2m field '%s' clashes with m2m field '%s.%s'. Add a related_name argument to the definition for '%s'.&quot; % (f.name, rel_opts.object_name, r.name, f.name))
+                    if r.name == rel_query_name:
+                        e.add(opts, &quot;Reverse query name for m2m field '%s' clashes with m2m field '%s.%s'. Add a related_name argument to the definition for '%s'.&quot; % (f.name, rel_opts.object_name, r.name, f.name))
+                for r in rel_opts.get_all_related_many_to_many_objects():
+                    if r.field is not f:
+                        if r.get_accessor_name() == rel_name:
+                            e.add(opts, &quot;Accessor for m2m field '%s' clashes with related m2m field '%s.%s'. Add a related_name argument to the definition for '%s'.&quot; % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name))
+                        if r.get_accessor_name() == rel_query_name:
+                            e.add(opts, &quot;Reverse query name for m2m field '%s' clashes with related m2m field '%s.%s'. Add a related_name argument to the definition for '%s'.&quot; % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name))
+                for r in rel_opts.get_all_related_objects():
                     if r.get_accessor_name() == rel_name:
-                        e.add(opts, &quot;Accessor for m2m field '%s' clashes with related m2m field '%s.%s'. Add a related_name argument to the definition for '%s'.&quot; % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name))
+                        e.add(opts, &quot;Accessor for m2m field '%s' clashes with related field '%s.%s'. Add a related_name argument to the definition for '%s'.&quot; % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name))
                     if r.get_accessor_name() == rel_query_name:
-                        e.add(opts, &quot;Reverse query name for m2m field '%s' clashes with related m2m field '%s.%s'. Add a related_name argument to the definition for '%s'.&quot; % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name))
-            for r in rel_opts.get_all_related_objects():
-                if r.get_accessor_name() == rel_name:
-                    e.add(opts, &quot;Accessor for m2m field '%s' clashes with related field '%s.%s'. Add a related_name argument to the definition for '%s'.&quot; % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name))
-                if r.get_accessor_name() == rel_query_name:
-                    e.add(opts, &quot;Reverse query name for m2m field '%s' clashes with related field '%s.%s'. Add a related_name argument to the definition for '%s'.&quot; % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name))
+                        e.add(opts, &quot;Reverse query name for m2m field '%s' clashes with related field '%s.%s'. Add a related_name argument to the definition for '%s'.&quot; % (f.name, rel_opts.object_name, r.get_accessor_name(), f.name))
 
         # Check admin attribute.
         if opts.admin is not None:
@@ -953,7 +958,8 @@ def get_validation_errors(outfile, app=None):
                         try:
                             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)
+                            if not hasattr(cls, fn):
+                                e.add(opts, '&quot;admin.list_display_links&quot; refers to %r, which isn\'t an attribute, method or property.' % fn)
                         if fn not in opts.admin.list_display:
                             e.add(opts, '&quot;admin.list_display_links&quot; refers to %r, which is not defined in &quot;admin.list_display&quot;.' % fn)
                 # list_filter
@@ -1011,10 +1017,12 @@ def get_validation_errors(outfile, app=None):
 
     return len(e.errors)
 
-def validate(outfile=sys.stdout):
+def validate(outfile=sys.stdout, silent_success=False):
     &quot;Validates all installed models.&quot;
     try:
         num_errors = get_validation_errors(outfile)
+        if silent_success and num_errors == 0:
+            return
         outfile.write('%s error%s found.\n' % (num_errors, num_errors != 1 and 's' or ''))
     except ImproperlyConfigured:
         outfile.write(&quot;Skipping validation because things aren't configured properly.&quot;)
@@ -1167,7 +1175,7 @@ def test(verbosity, app_labels):
         app_list = get_apps()
     else:
         app_list = [get_app(app_label) for app_label in app_labels]
-    
+
     test_path = settings.TEST_RUNNER.split('.')
     # Allow for Python 2.5 relative paths
     if len(test_path) &gt; 1:
@@ -1176,7 +1184,7 @@ def test(verbosity, app_labels):
         test_module_name = '.'
     test_module = __import__(test_module_name, [],[],test_path[-1])
     test_runner = getattr(test_module, test_path[-1])
-    
+
     test_runner(app_list, verbosity)
 test.help_doc = 'Runs the test suite for the specified applications, or the entire site if no apps are specified'
 test.args = '[--verbosity] ' + APP_ARGS
@@ -1331,6 +1339,7 @@ def execute_from_command_line(action_mapping=DEFAULT_ACTION_MAPPING, argv=None):
         action_mapping[action](args[1:])
     else:
         from django.db import models
+        validate(silent_success=True)
         try:
             mod_list = [models.get_app(app_label) for app_label in args[1:]]
         except ImportError, e:</diff>
      <filename>django/core/management.py</filename>
    </modified>
    <modified>
      <diff>@@ -16,7 +16,7 @@ class Serializer(PythonSerializer):
     Convert a queryset to JSON.
     &quot;&quot;&quot;
     def end_serialization(self):
-        simplejson.dump(self.objects, self.stream, cls=DateTimeAwareJSONEncoder)
+        simplejson.dump(self.objects, self.stream, cls=DateTimeAwareJSONEncoder, **self.options)
         
     def getvalue(self):
         return self.stream.getvalue()</diff>
      <filename>django/core/serializers/json.py</filename>
    </modified>
    <modified>
      <diff>@@ -74,8 +74,9 @@ def fastcgi_help(message=None):
         print message
     return False
 
-def runfastcgi(argset):
+def runfastcgi(argset=[], **kwargs):
     options = FASTCGI_OPTIONS.copy()
+    options.update(kwargs)
     for x in argset:
         if &quot;=&quot; in x:
             k, v = x.split('=', 1)</diff>
      <filename>django/core/servers/fastcgi.py</filename>
    </modified>
    <modified>
      <diff>@@ -227,9 +227,8 @@ def hasNoProfanities(field_data, all_data):
     catch 'motherfucker' as well. Raises a ValidationError such as:
         Watch your mouth! The words &quot;f--k&quot; and &quot;s--t&quot; are not allowed here.
     &quot;&quot;&quot;
-    bad_words = ['asshat', 'asshead', 'asshole', 'cunt', 'fuck', 'gook', 'nigger', 'shit'] # all in lower case
     field_data = field_data.lower() # normalize
-    words_seen = [w for w in bad_words if field_data.find(w) &gt; -1]
+    words_seen = [w for w in settings.PROFANITIES_LIST if field_data.find(w) &gt; -1]
     if words_seen:
         from django.utils.text import get_text_list
         plural = len(words_seen) &gt; 1
@@ -352,10 +351,12 @@ class IsValidFloat(object):
             float(data)
         except ValueError:
             raise ValidationError, gettext(&quot;Please enter a valid decimal number.&quot;)
-        if len(data) &gt; (self.max_digits + 1):
+        # Negative floats require more space to input.
+        max_allowed_length = data.startswith('-') and (self.max_digits + 2) or (self.max_digits + 1)
+        if len(data) &gt; max_allowed_length:
             raise ValidationError, ngettext(&quot;Please enter a valid decimal number with at most %s total digit.&quot;,
                 &quot;Please enter a valid decimal number with at most %s total digits.&quot;, self.max_digits) % self.max_digits
-        if (not '.' in data and len(data) &gt; (self.max_digits - self.decimal_places)) or ('.' in data and len(data) &gt; (self.max_digits - (self.decimal_places - len(data.split('.')[1])) + 1)):
+        if (not '.' in data and len(data) &gt; (max_allowed_length - self.decimal_places)) or ('.' in data and len(data) &gt; (self.max_digits - (self.decimal_places - len(data.split('.')[1])) + 1)):
             raise ValidationError, ngettext( &quot;Please enter a valid decimal number with a whole part of at most %s digit.&quot;,
                 &quot;Please enter a valid decimal number with a whole part of at most %s digits.&quot;, str(self.max_digits-self.decimal_places)) % str(self.max_digits-self.decimal_places)
         if '.' in data and len(data.split('.')[1]) &gt; self.decimal_places:</diff>
      <filename>django/core/validators.py</filename>
    </modified>
    <modified>
      <diff>@@ -13,9 +13,10 @@ def populate_xheaders(request, response, model, object_id):
     &quot;&quot;&quot;
     Adds the &quot;X-Object-Type&quot; and &quot;X-Object-Id&quot; headers to the given
     HttpResponse according to the given model and object_id -- but only if the
-    given HttpRequest object has an IP address within the INTERNAL_IPS setting.
+    given HttpRequest object has an IP address within the INTERNAL_IPS setting
+    or if the request is from a logged in staff member.
     &quot;&quot;&quot;
     from django.conf import settings
-    if request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS:
+    if request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS or (request.user.is_authenticated() and request.user.is_staff):
         response['X-Object-Type'] = &quot;%s.%s&quot; % (model._meta.app_label, model._meta.object_name.lower())
         response['X-Object-Id'] = str(object_id)</diff>
      <filename>django/core/xheaders.py</filename>
    </modified>
    <modified>
      <diff>@@ -36,13 +36,14 @@ def get_relations(cursor, table_name):
             SELECT column_name, referenced_table_name, referenced_column_name
             FROM information_schema.key_column_usage
             WHERE table_name = %s
+                AND table_schema = DATABASE()
                 AND referenced_table_name IS NOT NULL
                 AND referenced_column_name IS NOT NULL&quot;&quot;&quot;, [table_name])
         constraints.extend(cursor.fetchall())
     except (ProgrammingError, OperationalError):
         # Fall back to &quot;SHOW CREATE TABLE&quot;, for previous MySQL versions.
         # Go through all constraints and save the equal matches.
-        cursor.execute(&quot;SHOW CREATE TABLE %s&quot; % table_name)
+        cursor.execute(&quot;SHOW CREATE TABLE %s&quot; % quote_name(table_name))
         for row in cursor.fetchall():
             pos = 0
             while True:</diff>
      <filename>django/db/backends/mysql/introspection.py</filename>
    </modified>
    <modified>
      <diff>@@ -110,9 +110,11 @@ def dictfetchone(cursor):
 def dictfetchmany(cursor, number):
     &quot;Returns a certain number of rows from a cursor as a dict&quot;
     desc = cursor.description
-    return [_dict_helper(desc, row) for row in cursor.fetchmany(number)]
+    for row in cursor.fetchmany(number):
+        yield _dict_helper(desc, row)
 
 def dictfetchall(cursor):
     &quot;Returns all rows from a cursor as a dict&quot;
     desc = cursor.description
-    return [_dict_helper(desc, row) for row in cursor.fetchall()]
+    for row in cursor.fetchall():
+        yield _dict_helper(desc, row)</diff>
      <filename>django/db/backends/util.py</filename>
    </modified>
    <modified>
      <diff>@@ -131,6 +131,9 @@ class RelatedObject(object):
         # many-to-many objects. It uses the lower-cased object_name + &quot;_set&quot;,
         # but this can be overridden with the &quot;related_name&quot; option.
         if self.field.rel.multiple:
+            # If this is a symmetrical m2m relation on self, there is no reverse accessor.
+            if getattr(self.field.rel, 'symmetrical', False) and self.model == self.parent_model:
+                return None
             return self.field.rel.related_name or (self.opts.object_name.lower() + '_set')
         else:
             return self.field.rel.related_name or (self.opts.object_name.lower())</diff>
      <filename>django/db/models/related.py</filename>
    </modified>
    <modified>
      <diff>@@ -434,11 +434,11 @@ class HiddenField(FormField):
             (self.get_id(), self.field_name, escape(data))
 
 class CheckboxField(FormField):
-    def __init__(self, field_name, checked_by_default=False, validator_list=None):
+    def __init__(self, field_name, checked_by_default=False, validator_list=None, is_required=False):
         if validator_list is None: validator_list = []
         self.field_name = field_name
         self.checked_by_default = checked_by_default
-        self.is_required = False # because the validator looks for these
+        self.is_required = is_required
         self.validator_list = validator_list[:]
 
     def render(self, data):
@@ -639,8 +639,8 @@ class CheckboxSelectMultipleField(SelectMultipleField):
                 checked_html = ' checked=&quot;checked&quot;'
             field_name = '%s%s' % (self.field_name, value)
             output.append('&lt;li&gt;&lt;input type=&quot;checkbox&quot; id=&quot;%s&quot; class=&quot;v%s&quot; name=&quot;%s&quot;%s /&gt; &lt;label for=&quot;%s&quot;&gt;%s&lt;/label&gt;&lt;/li&gt;' % \
-                (self.get_id() + value , self.__class__.__name__, field_name, checked_html,
-                self.get_id() + value, choice))
+                (self.get_id() + escape(value), self.__class__.__name__, field_name, checked_html,
+                self.get_id() + escape(value), choice))
         output.append('&lt;/ul&gt;')
         return '\n'.join(output)
 
@@ -743,7 +743,7 @@ class FloatField(TextField):
         if validator_list is None: validator_list = []
         self.max_digits, self.decimal_places = max_digits, decimal_places
         validator_list = [self.isValidFloat] + validator_list
-        TextField.__init__(self, field_name, max_digits+1, max_digits+1, is_required, validator_list)
+        TextField.__init__(self, field_name, max_digits+2, max_digits+2, is_required, validator_list)
 
     def isValidFloat(self, field_data, all_data):
         v = validators.IsValidFloat(self.max_digits, self.decimal_places)
@@ -952,10 +952,7 @@ class USStateField(TextField):
             raise validators.CriticalValidationError, e.messages
 
     def html2python(data):
-        if data:
-            return data.upper() # Should always be stored in upper case
-        else:
-            return None
+        return data.upper() # Should always be stored in upper case
     html2python = staticmethod(html2python)
 
 class CommaSeparatedIntegerField(TextField):
@@ -972,9 +969,19 @@ class CommaSeparatedIntegerField(TextField):
         except validators.ValidationError, e:
             raise validators.CriticalValidationError, e.messages
 
+    def render(self, data):
+        if data is None:
+            data = ''
+        elif isinstance(data, (list, tuple)):
+            data = ','.join(data)
+        return super(CommaSeparatedIntegerField, self).render(data)
+
 class RawIdAdminField(CommaSeparatedIntegerField):
     def html2python(data):
-        return data.split(',')
+        if data:
+            return data.split(',')
+        else:
+            return []
     html2python = staticmethod(html2python)
 
 class XMLLargeTextField(LargeTextField):</diff>
      <filename>django/forms/__init__.py</filename>
    </modified>
    <modified>
      <diff>@@ -161,10 +161,10 @@ class HttpResponse(object):
         if not mimetype:
             mimetype = &quot;%s; charset=%s&quot; % (settings.DEFAULT_CONTENT_TYPE, settings.DEFAULT_CHARSET)
         if hasattr(content, '__iter__'):
-            self._iterator = content
+            self._container = content
             self._is_string = False
         else:
-            self._iterator = [content]
+            self._container = [content]
             self._is_string = True
         self.headers = {'Content-Type': mimetype}
         self.cookies = SimpleCookie()
@@ -213,32 +213,37 @@ class HttpResponse(object):
         self.cookies[key]['max-age'] = 0
 
     def _get_content(self):
-        content = ''.join(self._iterator)
+        content = ''.join(self._container)
         if isinstance(content, unicode):
             content = content.encode(self._charset)
         return content
 
     def _set_content(self, value):
-        self._iterator = [value]
+        self._container = [value]
         self._is_string = True
 
     content = property(_get_content, _set_content)
 
-    def _get_iterator(self):
-        &quot;Output iterator. Converts data into client charset if necessary.&quot;
-        for chunk in self._iterator:
-            if isinstance(chunk, unicode):
-                chunk = chunk.encode(self._charset)
-            yield chunk
+    def __iter__(self):
+        self._iterator = self._container.__iter__()
+        return self
 
-    iterator = property(_get_iterator)
+    def next(self):
+        chunk = self._iterator.next()
+        if isinstance(chunk, unicode):
+            chunk = chunk.encode(self._charset)
+        return chunk
+
+    def close(self):
+        if hasattr(self._container, 'close'):
+            self._container.close()
 
     # The remaining methods partially implement the file-like object interface.
     # See http://docs.python.org/lib/bltin-file-objects.html
     def write(self, content):
         if not self._is_string:
             raise Exception, &quot;This %s instance is not writable&quot; % self.__class__
-        self._iterator.append(content)
+        self._container.append(content)
 
     def flush(self):
         pass
@@ -246,7 +251,7 @@ class HttpResponse(object):
     def tell(self):
         if not self._is_string:
             raise Exception, &quot;This %s instance cannot tell its position&quot; % self.__class__
-        return sum([len(chunk) for chunk in self._iterator])
+        return sum([len(chunk) for chunk in self._container])
 
 class HttpResponseRedirect(HttpResponse):
     def __init__(self, redirect_to):</diff>
      <filename>django/http/__init__.py</filename>
    </modified>
    <modified>
      <diff>@@ -64,8 +64,9 @@ class CommonMiddleware(object):
                 is_internal = referer and (domain in referer)
                 path = request.get_full_path()
                 if referer and not _is_ignorable_404(path) and (is_internal or '?' not in referer):
+                    ua = request.META.get('HTTP_USER_AGENT','&lt;none&gt;')
                     mail_managers(&quot;Broken %slink on %s&quot; % ((is_internal and 'INTERNAL ' or ''), domain),
-                        &quot;Referrer: %s\nRequested URL: %s\n&quot; % (referer, request.get_full_path()))
+                        &quot;Referrer: %s\nRequested URL: %s\nUser Agent: %s\n&quot; % (referer, request.get_full_path(), ua))
                 return response
 
         # Use ETags, if requested.</diff>
      <filename>django/middleware/common.py</filename>
    </modified>
    <modified>
      <diff>@@ -7,11 +7,12 @@ class XViewMiddleware(object):
     &quot;&quot;&quot;
     def process_view(self, request, view_func, view_args, view_kwargs):
         &quot;&quot;&quot;
-        If the request method is HEAD and the IP is internal, quickly return
-        with an x-header indicating the view function.  This is used by the
-        documentation module to lookup the view function for an arbitrary page.
+        If the request method is HEAD and either the IP is internal or the
+        user is a logged-in staff member, quickly return with an x-header
+        indicating the view function.  This is used by the documentation module
+        to lookup the view function for an arbitrary page.
         &quot;&quot;&quot;
-        if request.method == 'HEAD' and request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS:
+        if request.method == 'HEAD' and (request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS or (request.user.is_authenticated() and request.user.is_staff)):
             response = http.HttpResponse()
             response['X-View'] = &quot;%s.%s&quot; % (view_func.__module__, view_func.__name__)
             return response</diff>
      <filename>django/middleware/doc.py</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,7 @@ register = Library()
 
 def addslashes(value):
     &quot;Adds slashes - useful for passing strings to JavaScript, for example.&quot;
-    return value.replace('&quot;', '\\&quot;').replace(&quot;'&quot;, &quot;\\'&quot;)
+    return value.replace('\\', '\\\\').replace('&quot;', '\\&quot;').replace(&quot;'&quot;, &quot;\\'&quot;)
 
 def capfirst(value):
     &quot;Capitalizes the first character of the value&quot;</diff>
      <filename>django/template/defaultfilters.py</filename>
    </modified>
    <modified>
      <diff>@@ -13,14 +13,18 @@ class CommentNode(Node):
         return ''
 
 class CycleNode(Node):
-    def __init__(self, cyclevars):
+    def __init__(self, cyclevars, variable_name=None):
         self.cyclevars = cyclevars
         self.cyclevars_len = len(cyclevars)
         self.counter = -1
+        self.variable_name = variable_name
 
     def render(self, context):
         self.counter += 1
-        return self.cyclevars[self.counter % self.cyclevars_len]
+        value = self.cyclevars[self.counter % self.cyclevars_len]
+        if self.variable_name:
+            context[self.variable_name] = value
+        return value
 
 class DebugNode(Node):
     def render(self, context):
@@ -125,6 +129,8 @@ class IfChangedNode(Node):
         self._last_seen = None
 
     def render(self, context):
+        if context.has_key('forloop') and context['forloop']['first']:
+            self._last_seen = None
         content = self.nodelist.render(context)
         if content != self._last_seen:
             firstloop = (self._last_seen == None)
@@ -385,7 +391,7 @@ def cycle(parser, token):
             raise TemplateSyntaxError(&quot;Second 'cycle' argument must be 'as'&quot;)
         cyclevars = [v for v in args[1].split(&quot;,&quot;) if v]    # split and kill blanks
         name = args[3]
-        node = CycleNode(cyclevars)
+        node = CycleNode(cyclevars, name)
 
         if not hasattr(parser, '_namedCycleNodes'):
             parser._namedCycleNodes = {}</diff>
      <filename>django/template/defaulttags.py</filename>
    </modified>
    <modified>
      <diff>@@ -38,10 +38,23 @@ def build_suite(app_module):
         except ValueError:
             # No doc tests in tests.py
             pass
-    except ImportError:
-        # No tests.py file for application
-        pass            
-
+    except ImportError, e:
+        # Couldn't import tests.py. Was it due to a missing file, or
+        # due to an import error in a tests.py that actually exists?
+        import os.path
+        from imp import find_module
+        try:
+            mod = find_module(TEST_MODULE, [os.path.dirname(app_module.__file__)])
+        except ImportError:
+            # 'tests' module doesn't exist. Move on.
+            pass
+        else:
+            # The module exists, so there must be an import error in the 
+            # test module itself. We don't need the module; close the file
+            # handle returned by find_module.
+            mod[0].close()
+            raise
+            
     return suite
 
 def run_tests(module_list, verbosity=1, extra_tests=[]):</diff>
      <filename>django/test/simple.py</filename>
    </modified>
    <modified>
      <diff>@@ -14,6 +14,9 @@ class MergeDict(object):
                 pass
         raise KeyError
 
+    def __contains__(self, key):
+        return self.has_key(key)
+
     def get(self, key, default):
         try:
             return self[key]</diff>
      <filename>django/utils/datastructures.py</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,6 @@
-def curry(*args, **kwargs):
+def curry(_curried_func, *args, **kwargs):
     def _curried(*moreargs, **morekwargs):
-        return args[0](*(args[1:]+moreargs), **dict(kwargs.items() + morekwargs.items()))
+        return _curried_func(*(args+moreargs), **dict(kwargs, **morekwargs))
     return _curried
 
 class Promise:</diff>
      <filename>django/utils/functional.py</filename>
    </modified>
    <modified>
      <diff>@@ -94,7 +94,8 @@ def compress_string(s):
     return zbuf.getvalue()
 
 ustring_re = re.compile(u&quot;([\u0080-\uffff])&quot;)
-def javascript_quote(s):
+
+def javascript_quote(s, quote_double_quotes=False):
 
     def fix(match):
         return r&quot;\u%04x&quot; % ord(match.group(1))
@@ -104,9 +105,12 @@ def javascript_quote(s):
     elif type(s) != unicode:
         raise TypeError, s
     s = s.replace('\\', '\\\\')
+    s = s.replace('\r', '\\r')
     s = s.replace('\n', '\\n')
     s = s.replace('\t', '\\t')
     s = s.replace(&quot;'&quot;, &quot;\\'&quot;)
+    if quote_double_quotes:
+        s = s.replace('&quot;', '&amp;quot;')
     return str(ustring_re.sub(fix, s))
 
 smart_split_re = re.compile('(&quot;(?:[^&quot;\\\\]*(?:\\\\.[^&quot;\\\\]*)*)&quot;|\'(?:[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*)\'|[^\\s]+)')</diff>
      <filename>django/utils/text.py</filename>
    </modified>
    <modified>
      <diff>@@ -82,14 +82,14 @@ Methods
 ``user_permissions``. ``User`` objects can access their related
 objects in the same way as any other `Django model`_::
 
-    myuser.objects.groups = [group_list]
-    myuser.objects.groups.add(group, group,...)
-    myuser.objects.groups.remove(group, group,...)
-    myuser.objects.groups.clear()
-    myuser.objects.permissions = [permission_list]
-    myuser.objects.permissions.add(permission, permission, ...)
-    myuser.objects.permissions.remove(permission, permission, ...]
-    myuser.objects.permissions.clear()
+    myuser.groups = [group_list]
+    myuser.groups.add(group, group,...)
+    myuser.groups.remove(group, group,...)
+    myuser.groups.clear()
+    myuser.permissions = [permission_list]
+    myuser.permissions.add(permission, permission, ...)
+    myuser.permissions.remove(permission, permission, ...]
+    myuser.permissions.clear()
 
 In addition to those automatic API methods, ``User`` objects have the following
 custom methods:
@@ -456,6 +456,10 @@ As a shortcut, you can use the convenient ``user_passes_test`` decorator::
         # ...
     my_view = user_passes_test(lambda u: u.has_perm('polls.can_vote'))(my_view)
 
+We are using this particular test as a relatively simple example, however be
+aware that if you just want to test if a permission is available to a user,
+you can use the ``permission_required()`` decorator described below.
+
 Here's the same thing, using Python 2.4's decorator syntax::
 
     from django.contrib.auth.decorators import user_passes_test
@@ -488,6 +492,24 @@ Example in Python 2.4 syntax::
     def my_view(request):
         # ...
 
+The permission_required decorator
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Since checking whether a user has a particular permission available to them is a
+relatively common operation, Django provides a shortcut for that particular
+case: the ``permission_required()`` decorator. Using this decorator, the
+earlier example can be written as::
+
+    from django.contrib.auth.decorators import permission_required
+     
+    def my_view(request):
+        # ...
+     
+    my_view = permission_required('polls.can_vote')(my_view)
+
+Note that ``permission_required()`` also takes an optional ``login_url``
+parameter.
+
 Limiting access to generic views
 --------------------------------
 
@@ -677,7 +699,7 @@ timestamps.
 Messages are used by the Django admin after successful actions. For example,
 ``&quot;The poll Foo was created successfully.&quot;`` is a message.
 
-The API is simple::
+The API is simple:
 
     * To create a new message, use
       ``user_obj.message_set.create(message='message_text')``.</diff>
      <filename>docs/authentication.txt</filename>
    </modified>
    <modified>
      <diff>@@ -247,18 +247,23 @@ Django tarball. It's our policy to make sure all tests pass at all times.
 
 The tests cover:
 
-    * Models and the database API (``tests/testapp/models``).
-    * The cache system (``tests/otherthests/cache.py``).
-    * The ``django.utils.dateformat`` module (``tests/othertests/dateformat.py``).
-    * Database typecasts (``tests/othertests/db_typecasts.py``).
-    * The template system (``tests/othertests/templates.py`` and
-      ``tests/othertests/defaultfilters.py``).
-    * ``QueryDict`` objects (``tests/othertests/httpwrappers.py``).
-    * Markup template tags (``tests/othertests/markup.py``).
-    * The ``django.utils.timesince`` module (``tests/othertests/timesince.py``).
+    * Models and the database API (``tests/modeltests/``).
+    * The cache system (``tests/regressiontests/cache.py``).
+    * The ``django.utils.dateformat`` module (``tests/regressiontests/dateformat/``).
+    * Database typecasts (``tests/regressiontests/db_typecasts/``).
+    * The template system (``tests/regressiontests/templates/`` and
+      ``tests/regressiontests/defaultfilters/``).
+    * ``QueryDict`` objects (``tests/regressiontests/httpwrappers/``).
+    * Markup template tags (``tests/regressiontests/markup/``).
 
 We appreciate any and all contributions to the test suite!
 
+The Django tests all use the testing infrastructure that ships with Django for
+testing applications. See `Testing Django Applications`_ for an explanation of
+how to write new tests.
+
+.. _Testing Django Applications: http://www.djangoproject.com/documentation/testing/
+
 Running the unit tests
 ----------------------
 
@@ -268,10 +273,14 @@ To run the tests, ``cd`` to the ``tests/`` directory and type::
 
 Yes, the unit tests need a settings module, but only for database connection
 info -- the ``DATABASE_ENGINE``, ``DATABASE_USER`` and ``DATABASE_PASSWORD``.
-
-The unit tests will not touch your database; they create a new database, called
-``django_test_db``, which is deleted when the tests are finished. This means
-your user account needs permission to execute ``CREATE DATABASE``.
+You will also need a ``ROOT_URLCONF`` setting (it's value is ignored; it just
+needs to be present) and a ``SITE_ID`` setting (any integer value will do) in
+order for all the tests to pass.
+
+The unit tests will not touch your existing databases; they create a new
+database, called ``django_test_db``, which is deleted when the tests are
+finished. This means your user account needs permission to execute ``CREATE
+DATABASE``.
 
 Requesting features
 ===================</diff>
      <filename>docs/contributing.txt</filename>
    </modified>
    <modified>
      <diff>@@ -1511,7 +1511,7 @@ Many-to-many relationships
 --------------------------
 
 Both ends of a many-to-many relationship get automatic API access to the other
-end. The API works just as a &quot;backward&quot; one-to-many relationship. See _Backward
+end. The API works just as a &quot;backward&quot; one-to-many relationship. See Backward_
 above.
 
 The only difference is in the attribute naming: The model that defines the</diff>
      <filename>docs/db-api.txt</filename>
    </modified>
    <modified>
      <diff>@@ -295,6 +295,8 @@ give you the option of creating a superuser immediately.
 test
 ----
 
+**New in Django development version**
+
 Discover and run tests for all installed models.  See `Testing Django applications`_ for more information.
 
 .. _testing django applications: ../testing/
@@ -348,6 +350,8 @@ options.
 --noinput
 ---------
 
+**New in Django development version**
+
 Inform django-admin that the user should NOT be prompted for any input. Useful if
 the django-admin script will be executed as an unattended, automated script.
 
@@ -369,6 +373,8 @@ Example output::
 --verbosity
 -----------
 
+**New in Django development version**
+
 Example usage::
 
     django-admin.py syncdb --verbosity=2</diff>
      <filename>docs/django-admin.txt</filename>
    </modified>
    <modified>
      <diff>@@ -270,7 +270,7 @@ In your Web root directory, add this to a file named ``.htaccess`` ::
     AddHandler fastcgi-script .fcgi
     RewriteEngine On
     RewriteCond %{REQUEST_FILENAME} !-f
-    RewriteRule ^/(.*)$ /mysite.fcgi/$1 [QSA,L]
+    RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]
 
 Then, create a small script that tells Apache how to spawn your FastCGI
 program. Create a file ``mysite.fcgi`` and place it in your Web directory, and
@@ -289,7 +289,7 @@ be sure to make it executable ::
     os.environ['DJANGO_SETTINGS_MODULE'] = &quot;myproject.settings&quot;
 
     from django.core.servers.fastcgi import runfastcgi
-    runfastcgi([&quot;method=threaded&quot;, &quot;daemonize=false&quot;])
+    runfastcgi(method=&quot;threaded&quot;, daemonize=&quot;false&quot;)
 
 Restarting the spawned server
 -----------------------------</diff>
      <filename>docs/fastcgi.txt</filename>
    </modified>
    <modified>
      <diff>@@ -136,7 +136,7 @@ template::
     {% endblock %}
 
 Before we get back to the problems with these naive set of views, let's go over
-some salient points of the above template::
+some salient points of the above template:
 
     * Field &quot;widgets&quot; are handled for you: ``{{ form.field }}`` automatically
       creates the &quot;right&quot; type of widget for the form, as you can see with the
@@ -148,8 +148,8 @@ some salient points of the above template::
       If you must use tables, use tables. If you're a semantic purist, you can
       probably find better HTML than in the above template.
 
-    * To avoid name conflicts, the ``id``s of form elements take the form
-      &quot;id_*fieldname*&quot;.
+    * To avoid name conflicts, the ``id`` values of form elements take the
+      form &quot;id_*fieldname*&quot;.
 
 By creating a creation form we've solved problem number 3 above, but we still
 don't have any validation. Let's revise the validation issue by writing a new
@@ -321,7 +321,7 @@ about editing an existing one? It's shockingly similar to creating a new one::
         else:
             errors = {}
             # This makes sure the form accurate represents the fields of the place.
-            new_data = place.__dict__
+            new_data = manipulator.flatten_data()
 
         form = forms.FormWrapper(manipulator, new_data, errors)
         return render_to_response('places/edit_form.html', {'form': form, 'place': place})
@@ -336,10 +336,10 @@ The only real differences are:
     * ``ChangeManipulator.original_object`` stores the instance of the
       object being edited.
 
-    * We set ``new_data`` to the original object's ``__dict__``. This makes
-      sure the form fields contain the current values of the object.
-      ``FormWrapper`` does not modify ``new_data`` in any way, and templates
-      cannot, so this is perfectly safe.
+    * We set ``new_data`` based upon ``flatten_data()`` from the manipulator.
+      ``flatten_data()`` takes the data from the original object under 
+      manipulation, and converts it into a data dictionary that can be used 
+      to populate form elements with the existing values for the object.
 
     * The above example uses a different template, so create and edit can be
       &quot;skinned&quot; differently if needed, but the form chunk itself is completely
@@ -481,6 +481,33 @@ the data being validated.
 Also, because consistency in user interfaces is important, we strongly urge you
 to put punctuation at the end of your validation messages.
 
+When Are Validators Called?
+---------------------------
+
+After a form has been submitted, Django first checks to see that all the
+required fields are present and non-empty. For each field that passes that
+test *and if the form submission contained data* for that field, all the
+validators for that field are called in turn. The emphasised portion in the
+last sentence is important: if a form field is not submitted (because it
+contains no data -- which is normal HTML behaviour), the validators are not
+run against the field.
+
+This feature is particularly important for models using
+``models.BooleanField`` or custom manipulators using things like
+``forms.CheckBoxField``. If the checkbox is not selected, it will not
+contribute to the form submission.
+
+If you would like your validator to *always* run, regardless of whether the
+field it is attached to contains any data, set the ``always_test`` attribute
+on the validator function. For example::
+
+    def my_custom_validator(field_data, all_data):
+        # ...
+
+    my_custom_validator.always_test = True
+
+This validator will always be executed for any field it is attached to.
+
 Ready-made Validators
 ---------------------
 </diff>
      <filename>docs/forms.txt</filename>
    </modified>
    <modified>
      <diff>@@ -543,7 +543,9 @@ The default value for the field.
 ``editable``
 ~~~~~~~~~~~~
 
-If ``False``, the field will not be editable in the admin. Default is  ``True``.
+If ``False``, the field will not be editable in the admin or via form
+processing using the object's ``AddManipulator`` or ``ChangeManipulator``
+classes. Default is  ``True``.
 
 ``help_text``
 ~~~~~~~~~~~~~</diff>
      <filename>docs/model-api.txt</filename>
    </modified>
    <modified>
      <diff>@@ -96,6 +96,21 @@ Django &quot;ships&quot; with a few included serializers:
 .. _json: http://json.org/
 .. _simplejson: http://undefined.org/python/#simplejson
 
+Notes For Specific Serialization Formats
+----------------------------------------
+
+json
+~~~~
+
+If you are using UTF-8 (or any other non-ASCII encoding) data with the JSON
+serializer, you must pass ``ensure_ascii=False`` as a parameter to the
+``serialize()`` call. Otherwise the output will not be encoded correctly.
+
+For example::
+
+    json_serializer = serializers.get_serializer(&quot;json&quot;)
+    json_serializer.serialize(queryset, ensure_ascii=False, stream=response)
+
 Writing custom serializers
 ``````````````````````````
 </diff>
      <filename>docs/serialization.txt</filename>
    </modified>
    <modified>
      <diff>@@ -596,6 +596,12 @@ Whether to prepend the &quot;www.&quot; subdomain to URLs that don't have it. This is
 only used if ``CommonMiddleware`` is installed (see the `middleware docs`_).
 See also ``APPEND_SLASH``.
 
+PROFANITIES_LIST
+----------------
+
+A list of profanities that will trigger a validation error when the
+``hasNoProfanities`` validator is called.
+
 ROOT_URLCONF
 ------------
 </diff>
      <filename>docs/settings.txt</filename>
    </modified>
    <modified>
      <diff>@@ -763,17 +763,17 @@ will use the function's name as the tag name.
 Shortcut for simple tags
 ~~~~~~~~~~~~~~~~~~~~~~~~
 
-Many template tags take a single argument -- a string or a template variable
-reference -- and return a string after doing some processing based solely on
+Many template tags take a number of arguments -- strings or a template variables
+-- and return a string after doing some processing based solely on
 the input argument and some external information. For example, the
 ``current_time`` tag we wrote above is of this variety: we give it a format
 string, it returns the time as a string.
 
 To ease the creation of the types of tags, Django provides a helper function,
 ``simple_tag``. This function, which is a method of
-``django.template.Library``, takes a function that accepts one argument, wraps
-it in a ``render`` function and the other necessary bits mentioned above and
-registers it with the template system.
+``django.template.Library``, takes a function that accepts any number of
+arguments, wraps it in a ``render`` function and the other necessary bits
+mentioned above and registers it with the template system.
 
 Our earlier ``current_time`` function could thus be written like this::
 
@@ -789,11 +789,16 @@ In Python 2.4, the decorator syntax also works::
         ...
 
 A couple of things to note about the ``simple_tag`` helper function:
-    * Only the (single) argument is passed into our function.
     * Checking for the required number of arguments, etc, has already been
       done by the time our function is called, so we don't need to do that.
     * The quotes around the argument (if any) have already been stripped away,
       so we just receive a plain string.
+    * If the argument was a template variable, our function is passed the
+      current value of the variable, not the variable itself.
+
+When your template tag does not need access to the current context, writing a
+function to work with the input values and using the ``simple_tag`` helper is
+the easiest way to create a new tag.
 
 Inclusion tags
 ~~~~~~~~~~~~~~</diff>
      <filename>docs/templates_python.txt</filename>
    </modified>
    <modified>
      <diff>@@ -92,7 +92,8 @@ Writing unittests
 
 Like doctests, Django's unit tests use a standard library module: unittest_.
 As with doctests, Django's test runner looks for any unit test cases defined
-in ``models.py``, or in a ``tests.py`` file in your application directory.
+in ``models.py``, or in a ``tests.py`` file stored in the application 
+directory.
 
 An equivalent unittest test case for the above example would look like::
 
@@ -110,8 +111,9 @@ An equivalent unittest test case for the above example would look like::
             self.assertEquals(self.cat.speak(), 'The cat says &quot;meow&quot;')
 
 When you `run your tests`_, the test utility will find all the test cases
-(that is, subclasses of ``unittest.TestCase``) in ``tests.py``, automatically
-build a test suite out of those test cases, and run that suite.
+(that is, subclasses of ``unittest.TestCase``) in ``models.py`` and 
+``tests.py``, automatically build a test suite out of those test cases, 
+and run that suite.
 
 For more details about ``unittest``, see the `standard library unittest
 documentation`_.
@@ -197,10 +199,10 @@ used as test conditions.
 .. _Selenium: http://www.openqa.org/selenium/
 
 The Test Client is stateful; if a cookie is returned as part of a response,
-that cookie is provided as part of the next request. Expiry policies for these
-cookies are not followed; if you want a cookie to expire, either delete it 
-manually from ``client.cookies``, or create a new Client instance (which will
-effectively delete all cookies).
+that cookie is provided as part of the next request issued to that Client
+instance. Expiry policies for these cookies are not followed; if you want 
+a cookie to expire, either delete it manually from ``client.cookies``, or 
+create a new Client instance (which will effectively delete all cookies).
 
 Making requests
 ~~~~~~~~~~~~~~~
@@ -210,7 +212,6 @@ no arguments at time of construction. Once constructed, the following methods
 can be invoked on the ``Client`` instance.
 
 ``get(path, data={})``
-
     Make a GET request on the provided ``path``. The key-value pairs in the
     data dictionary will be used to create a GET data payload. For example::
 
@@ -222,7 +223,6 @@ can be invoked on the ``Client`` instance.
         http://yoursite.com/customers/details/?name='fred'&amp;age=7
 
 ``post(path, data={})``
-
     Make a POST request on the provided ``path``. The key-value pairs in the
     data dictionary will be used to create the POST data payload. This payload
     will be transmitted with the mimetype ``multipart/form-data``. 
@@ -243,7 +243,6 @@ can be invoked on the ``Client`` instance.
     need to manually close the file after it has been provided to the POST.
 
 ``login(path, username, password)``
-
     In a production site, it is likely that some views will be protected with
     the @login_required URL provided by ``django.contrib.auth``. Interacting
     with a URL that has been login protected is a slightly complex operation,
@@ -307,9 +306,12 @@ The following is a simple unit test using the Test Client::
             # Every test needs a client
             self.client = Client()
         def test_details(self):        
+            # Issue a GET request
             response = self.client.get('/customer/details/')
     
+            # Check that the respose is 200 OK
             self.failUnlessEqual(response.status_code, 200)
+            # Check that the rendered context contains 5 customers
             self.failUnlessEqual(len(response.context['customers']), 5)
 
 Fixtures</diff>
      <filename>docs/testing.txt</filename>
    </modified>
    <modified>
      <diff>@@ -68,15 +68,34 @@ class SelfClashForeign(models.Model):
     foreign_1 = models.ForeignKey(&quot;SelfClashForeign&quot;, related_name='id')
     foreign_2 = models.ForeignKey(&quot;SelfClashForeign&quot;, related_name='src_safe')
 
+class ValidM2M(models.Model):
+    src_safe = models.CharField(maxlength=10)
+    validm2m = models.CharField(maxlength=10)
+
+    # M2M fields are symmetrical by default. Symmetrical M2M fields
+    # on self don't require a related accessor, so many potential
+    # clashes are avoided.
+    validm2m_set = models.ManyToManyField(&quot;ValidM2M&quot;)
+    
+    m2m_1 = models.ManyToManyField(&quot;ValidM2M&quot;, related_name='id')
+    m2m_2 = models.ManyToManyField(&quot;ValidM2M&quot;, related_name='src_safe')
+
+    m2m_3 = models.ManyToManyField('self')
+    m2m_4 = models.ManyToManyField('self')
+
 class SelfClashM2M(models.Model):
     src_safe = models.CharField(maxlength=10)
     selfclashm2m = models.CharField(maxlength=10)
 
-    selfclashm2m_set = models.ManyToManyField(&quot;SelfClashM2M&quot;)
-    m2m_1 = models.ManyToManyField(&quot;SelfClashM2M&quot;, related_name='id')
-    m2m_2 = models.ManyToManyField(&quot;SelfClashM2M&quot;, related_name='src_safe')
-
+    # Non-symmetrical M2M fields _do_ have related accessors, so 
+    # there is potential for clashes.
+    selfclashm2m_set = models.ManyToManyField(&quot;SelfClashM2M&quot;, symmetrical=False)
+    
+    m2m_1 = models.ManyToManyField(&quot;SelfClashM2M&quot;, related_name='id', symmetrical=False)
+    m2m_2 = models.ManyToManyField(&quot;SelfClashM2M&quot;, related_name='src_safe', symmetrical=False)
 
+    m2m_3 = models.ManyToManyField('self', symmetrical=False)
+    m2m_4 = models.ManyToManyField('self', symmetrical=False)
 
 model_errors = &quot;&quot;&quot;invalid_models.fielderrors: &quot;charfield&quot;: CharFields require a &quot;maxlength&quot; attribute.
 invalid_models.fielderrors: &quot;floatfield&quot;: FloatFields require a &quot;decimal_places&quot; attribute.
@@ -147,9 +166,17 @@ invalid_models.selfclashforeign: Accessor for field 'foreign_2' clashes with fie
 invalid_models.selfclashforeign: Reverse query name for field 'foreign_2' clashes with field 'SelfClashForeign.src_safe'. Add a related_name argument to the definition for 'foreign_2'.
 invalid_models.selfclashm2m: Accessor for m2m field 'selfclashm2m_set' clashes with m2m field 'SelfClashM2M.selfclashm2m_set'. Add a related_name argument to the definition for 'selfclashm2m_set'.
 invalid_models.selfclashm2m: Reverse query name for m2m field 'selfclashm2m_set' clashes with field 'SelfClashM2M.selfclashm2m'. Add a related_name argument to the definition for 'selfclashm2m_set'.
+invalid_models.selfclashm2m: Accessor for m2m field 'selfclashm2m_set' clashes with related m2m field 'SelfClashM2M.selfclashm2m_set'. Add a related_name argument to the definition for 'selfclashm2m_set'.
 invalid_models.selfclashm2m: Accessor for m2m field 'm2m_1' clashes with field 'SelfClashM2M.id'. Add a related_name argument to the definition for 'm2m_1'.
 invalid_models.selfclashm2m: Accessor for m2m field 'm2m_2' clashes with field 'SelfClashM2M.src_safe'. Add a related_name argument to the definition for 'm2m_2'.
 invalid_models.selfclashm2m: Reverse query name for m2m field 'm2m_1' clashes with field 'SelfClashM2M.id'. Add a related_name argument to the definition for 'm2m_1'.
 invalid_models.selfclashm2m: Reverse query name for m2m field 'm2m_2' clashes with field 'SelfClashM2M.src_safe'. Add a related_name argument to the definition for 'm2m_2'.
+invalid_models.selfclashm2m: Accessor for m2m field 'm2m_3' clashes with m2m field 'SelfClashM2M.selfclashm2m_set'. Add a related_name argument to the definition for 'm2m_3'.
+invalid_models.selfclashm2m: Accessor for m2m field 'm2m_3' clashes with related m2m field 'SelfClashM2M.selfclashm2m_set'. Add a related_name argument to the definition for 'm2m_3'.
+invalid_models.selfclashm2m: Accessor for m2m field 'm2m_3' clashes with related m2m field 'SelfClashM2M.selfclashm2m_set'. Add a related_name argument to the definition for 'm2m_3'.
+invalid_models.selfclashm2m: Accessor for m2m field 'm2m_4' clashes with m2m field 'SelfClashM2M.selfclashm2m_set'. Add a related_name argument to the definition for 'm2m_4'.
+invalid_models.selfclashm2m: Accessor for m2m field 'm2m_4' clashes with related m2m field 'SelfClashM2M.selfclashm2m_set'. Add a related_name argument to the definition for 'm2m_4'.
+invalid_models.selfclashm2m: Accessor for m2m field 'm2m_4' clashes with related m2m field 'SelfClashM2M.selfclashm2m_set'. Add a related_name argument to the definition for 'm2m_4'.
+invalid_models.selfclashm2m: Reverse query name for m2m field 'm2m_3' clashes with field 'SelfClashM2M.selfclashm2m'. Add a related_name argument to the definition for 'm2m_3'.
+invalid_models.selfclashm2m: Reverse query name for m2m field 'm2m_4' clashes with field 'SelfClashM2M.selfclashm2m'. Add a related_name argument to the definition for 'm2m_4'.
 &quot;&quot;&quot;
-</diff>
      <filename>tests/modeltests/invalid_models/models.py</filename>
    </modified>
    <modified>
      <diff>@@ -15,6 +15,9 @@ r&quot;&quot;&quot;
 &gt;&gt;&gt; addslashes('&quot;double quotes&quot; and \'single quotes\'')
 '\\&quot;double quotes\\&quot; and \\\'single quotes\\\''
 
+&gt;&gt;&gt; addslashes(r'\ : backslashes, too')
+'\\\\ : backslashes, too'
+
 &gt;&gt;&gt; capfirst('hello world')
 'Hello world'
 </diff>
      <filename>tests/regressiontests/defaultfilters/tests.py</filename>
    </modified>
    <modified>
      <diff>@@ -187,6 +187,7 @@ class Templates(unittest.TestCase):
             'cycle05': ('{% cycle %}', {}, template.TemplateSyntaxError),
             'cycle06': ('{% cycle a %}', {}, template.TemplateSyntaxError),
             'cycle07': ('{% cycle a,b,c as foo %}{% cycle bar %}', {}, template.TemplateSyntaxError),
+            'cycle08': ('{% cycle a,b,c as foo %}{% cycle foo %}{{ foo }}{{ foo }}{% cycle foo %}{{ foo }}', {}, 'abbbcc'),
 
             ### EXCEPTIONS ############################################################
 
@@ -304,6 +305,10 @@ class Templates(unittest.TestCase):
             'ifchanged01': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% endfor %}', { 'num': (1,2,3) }, '123'),
             'ifchanged02': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% endfor %}', { 'num': (1,1,3) }, '13'),
             'ifchanged03': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% endfor %}', { 'num': (1,1,1) }, '1'),
+            'ifchanged04': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% for x in numx %}{% ifchanged %}{{ x }}{% endifchanged %}{% endfor %}{% endfor %}', { 'num': (1, 2, 3), 'numx': (2, 2, 2)}, '122232'),
+            'ifchanged05': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% for x in numx %}{% ifchanged %}{{ x }}{% endifchanged %}{% endfor %}{% endfor %}', { 'num': (1, 1, 1), 'numx': (1, 2, 3)}, '1123123123'),
+            'ifchanged06': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% for x in numx %}{% ifchanged %}{{ x }}{% endifchanged %}{% endfor %}{% endfor %}', { 'num': (1, 1, 1), 'numx': (2, 2, 2)}, '1222'),
+            'ifchanged07': ('{% for n in num %}{% ifchanged %}{{ n }}{% endifchanged %}{% for x in numx %}{% ifchanged %}{{ x }}{% endifchanged %}{% for y in numy %}{% ifchanged %}{{ y }}{% endifchanged %}{% endfor %}{% endfor %}{% endfor %}', { 'num': (1, 1, 1), 'numx': (2, 2, 2), 'numy': (3, 3, 3)}, '1233323332333'),
 
             ### IFEQUAL TAG ###########################################################
             'ifequal01': (&quot;{% ifequal a b %}yes{% endifequal %}&quot;, {&quot;a&quot;: 1, &quot;b&quot;: 2}, &quot;&quot;),</diff>
      <filename>tests/regressiontests/templates/tests.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>e6da0dfcc6d677e0e1c1b8fc62a0697665f0c718</id>
    </parent>
  </parents>
  <author>
    <name>clong</name>
    <email>clong@bcc190cf-cafb-0310-a4f2-bffc1f526a37</email>
  </author>
  <url>http://github.com/dcramer/django-compositepks/commit/b0f73b1203739b466f3e6549ce16e10432f10d34</url>
  <id>b0f73b1203739b466f3e6549ce16e10432f10d34</id>
  <committed-date>2006-09-23T11:18:58-07:00</committed-date>
  <authored-date>2006-09-23T11:18:58-07:00</authored-date>
  <message>[per-object-permissions] Merged to trunk [3809]

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