diff --git a/AUTHORS b/AUTHORS
index bb77b68ad5..94dc8891a4 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -65,6 +65,7 @@ answer newbie questions, and generally made Django that much better:
Mikaël Barbero
Jiri Barton
Ned Batchelder
+ batiste@dosimple.ch
Shannon -jj Behrens
Esdras Beleza
Chris Bennett
@@ -228,6 +229,7 @@ answer newbie questions, and generally made Django that much better:
Nicola Larosa
Rune Rønde Laursen
Eugene Lazutkin
+ lcordier@point45.com
Jeong-Min Lee
Jannis Leidel
Christopher Lenz
@@ -374,6 +376,7 @@ answer newbie questions, and generally made Django that much better:
Wang Chun
Filip Wasilewski
Dan Watson
+ Joel Watts
Chris Wesseling
James Wheare
charly.wilhelm@gmail.com
diff --git a/LICENSE b/LICENSE
index ba3e68a060..b0716a3908 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2005, the Lawrence Journal-World
+Copyright (c) Django Software Foundation.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
diff --git a/django/bin/profiling/gather_profile_stats.py b/django/bin/profiling/gather_profile_stats.py
index c0844930e9..0fd2b7fca9 100644
--- a/django/bin/profiling/gather_profile_stats.py
+++ b/django/bin/profiling/gather_profile_stats.py
@@ -1,3 +1,5 @@
+#!/usr/bin/env python
+
"""
gather_profile_stats.py /path/to/dir/of/profiles
diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py
index 9f24f0c2df..006ab421dd 100644
--- a/django/conf/global_settings.py
+++ b/django/conf/global_settings.py
@@ -52,6 +52,7 @@ LANGUAGES = (
('el', gettext_noop('Greek')),
('en', gettext_noop('English')),
('es', gettext_noop('Spanish')),
+ ('et', gettext_noop('Estonian')),
('es-ar', gettext_noop('Argentinean Spanish')),
('eu', gettext_noop('Basque')),
('fa', gettext_noop('Persian')),
@@ -70,6 +71,7 @@ LANGUAGES = (
('km', gettext_noop('Khmer')),
('kn', gettext_noop('Kannada')),
('lv', gettext_noop('Latvian')),
+ ('lt', gettext_noop('Lithuanian')),
('mk', gettext_noop('Macedonian')),
('nl', gettext_noop('Dutch')),
('no', gettext_noop('Norwegian')),
diff --git a/django/conf/locale/ca/LC_MESSAGES/django.mo b/django/conf/locale/ca/LC_MESSAGES/django.mo
index 4f61dfbbcd..1775e0a849 100644
Binary files a/django/conf/locale/ca/LC_MESSAGES/django.mo and b/django/conf/locale/ca/LC_MESSAGES/django.mo differ
diff --git a/django/conf/locale/ca/LC_MESSAGES/django.po b/django/conf/locale/ca/LC_MESSAGES/django.po
index 36511eb58c..783fd99760 100644
--- a/django/conf/locale/ca/LC_MESSAGES/django.po
+++ b/django/conf/locale/ca/LC_MESSAGES/django.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-05-26 10:35+0200\n"
-"PO-Revision-Date: 2008-05-14 11:15+0200\n"
+"POT-Creation-Date: 2008-06-20 12:36+0200\n"
+"PO-Revision-Date: 2008-06-20 12:48+0200\n"
"Last-Translator: Django Catalan Group \n"
"Language-Team: Catalan \n"
"MIME-Version: 1.0\n"
@@ -14,193 +14,201 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: conf/global_settings.py:43
-msgid "Arabic"
-msgstr "Arabic"
-
#: conf/global_settings.py:44
-msgid "Bengali"
-msgstr "Bengalí"
+msgid "Arabic"
+msgstr "aràbic"
#: conf/global_settings.py:45
-msgid "Bulgarian"
-msgstr "Búlgar"
+msgid "Bengali"
+msgstr "bengalí"
#: conf/global_settings.py:46
-msgid "Catalan"
-msgstr "Català"
+msgid "Bulgarian"
+msgstr "búlgar"
#: conf/global_settings.py:47
-msgid "Czech"
-msgstr "Txec"
+msgid "Catalan"
+msgstr "català"
#: conf/global_settings.py:48
-msgid "Welsh"
-msgstr "Galès"
+msgid "Czech"
+msgstr "txec"
#: conf/global_settings.py:49
-msgid "Danish"
-msgstr "Danès"
+msgid "Welsh"
+msgstr "galès"
#: conf/global_settings.py:50
-msgid "German"
-msgstr "Alemany"
+msgid "Danish"
+msgstr "danès"
#: conf/global_settings.py:51
-msgid "Greek"
-msgstr "Grec"
+msgid "German"
+msgstr "alemany"
#: conf/global_settings.py:52
-msgid "English"
-msgstr "Anglès"
+msgid "Greek"
+msgstr "grec"
#: conf/global_settings.py:53
-msgid "Spanish"
-msgstr "Espanyol"
+msgid "English"
+msgstr "anglès"
#: conf/global_settings.py:54
-msgid "Argentinean Spanish"
-msgstr "Castellà Argentí"
+msgid "Spanish"
+msgstr "espanyol"
#: conf/global_settings.py:55
-msgid "Basque"
-msgstr "Euskera"
+msgid "Estonian"
+msgstr "estonià"
#: conf/global_settings.py:56
-msgid "Persian"
-msgstr "Persa"
+msgid "Argentinean Spanish"
+msgstr "castellà argentí"
#: conf/global_settings.py:57
-msgid "Finnish"
-msgstr "Finlandès"
+msgid "Basque"
+msgstr "euskera"
#: conf/global_settings.py:58
-msgid "French"
-msgstr "Francès"
+msgid "Persian"
+msgstr "persa"
#: conf/global_settings.py:59
-msgid "Irish"
-msgstr "Irlandès"
+msgid "Finnish"
+msgstr "finlandès"
#: conf/global_settings.py:60
-msgid "Galician"
-msgstr "Gallec"
+msgid "French"
+msgstr "francès"
#: conf/global_settings.py:61
-msgid "Hungarian"
-msgstr "Húngar"
+msgid "Irish"
+msgstr "irlandès"
#: conf/global_settings.py:62
-msgid "Hebrew"
-msgstr "Hebreu"
+msgid "Galician"
+msgstr "gallec"
#: conf/global_settings.py:63
-msgid "Croatian"
-msgstr "Croat"
+msgid "Hungarian"
+msgstr "húngar"
#: conf/global_settings.py:64
-msgid "Icelandic"
-msgstr "Islandès"
+msgid "Hebrew"
+msgstr "hebreu"
#: conf/global_settings.py:65
-msgid "Italian"
-msgstr "Italià"
+msgid "Croatian"
+msgstr "croat"
#: conf/global_settings.py:66
-msgid "Japanese"
-msgstr "Japonès"
+msgid "Icelandic"
+msgstr "islandès"
#: conf/global_settings.py:67
-msgid "Georgian"
-msgstr "Georgià"
+msgid "Italian"
+msgstr "italià"
#: conf/global_settings.py:68
-msgid "Korean"
-msgstr "Coreà"
+msgid "Japanese"
+msgstr "japonès"
#: conf/global_settings.py:69
-msgid "Khmer"
-msgstr "Khmer"
+msgid "Georgian"
+msgstr "georgià"
#: conf/global_settings.py:70
-msgid "Kannada"
-msgstr "Canès"
+msgid "Korean"
+msgstr "coreà"
#: conf/global_settings.py:71
-msgid "Latvian"
-msgstr "Letó"
+msgid "khmer"
+msgstr "khmer"
#: conf/global_settings.py:72
-msgid "Macedonian"
-msgstr "Macedoni"
+msgid "Kannada"
+msgstr "canès"
#: conf/global_settings.py:73
-msgid "Dutch"
-msgstr "Holandès"
+msgid "Latvian"
+msgstr "letó"
#: conf/global_settings.py:74
-msgid "Norwegian"
-msgstr "Norueg"
+msgid "Lithuanian"
+msgstr "lituà"
#: conf/global_settings.py:75
-msgid "Polish"
-msgstr "Polac"
+msgid "Macedonian"
+msgstr "macedoni"
#: conf/global_settings.py:76
-msgid "Portugese"
-msgstr "Portuguès"
+msgid "Dutch"
+msgstr "holandès"
#: conf/global_settings.py:77
-msgid "Brazilian Portuguese"
-msgstr "Portuguès de Brasil"
+msgid "Norwegian"
+msgstr "norueg"
#: conf/global_settings.py:78
-msgid "Romanian"
-msgstr "Rumanès"
+msgid "Polish"
+msgstr "polac"
#: conf/global_settings.py:79
-msgid "Russian"
-msgstr "Rús"
+msgid "Portugese"
+msgstr "portuguès"
#: conf/global_settings.py:80
-msgid "Slovak"
-msgstr "Eslovac"
+msgid "Brazilian Portuguese"
+msgstr "portuguès de brasil"
#: conf/global_settings.py:81
-msgid "Slovenian"
-msgstr "Esloveni"
+msgid "Romanian"
+msgstr "rumanès"
#: conf/global_settings.py:82
-msgid "Serbian"
-msgstr "Serbi"
+msgid "Russian"
+msgstr "rús"
#: conf/global_settings.py:83
-msgid "Swedish"
-msgstr "Suec"
+msgid "Slovak"
+msgstr "eslovac"
#: conf/global_settings.py:84
-msgid "Tamil"
-msgstr "Tàmil"
+msgid "Slovenian"
+msgstr "esloveni"
#: conf/global_settings.py:85
-msgid "Telugu"
-msgstr "Telugu"
+msgid "Serbian"
+msgstr "serbi"
#: conf/global_settings.py:86
-msgid "Turkish"
-msgstr "Turc"
+msgid "Swedish"
+msgstr "suec"
#: conf/global_settings.py:87
-msgid "Ukrainian"
-msgstr "Ucranià"
+msgid "Tamil"
+msgstr "tàmil"
#: conf/global_settings.py:88
-msgid "Simplified Chinese"
-msgstr "Xinès simplificat"
+msgid "Telugu"
+msgstr "telugu"
#: conf/global_settings.py:89
+msgid "Turkish"
+msgstr "turc"
+
+#: conf/global_settings.py:90
+msgid "Ukrainian"
+msgstr "ucranià"
+
+#: conf/global_settings.py:91
+msgid "Simplified Chinese"
+msgstr "xinès simplificat"
+
+#: conf/global_settings.py:92
msgid "Traditional Chinese"
-msgstr "Xinès tradicional"
+msgstr "xinès tradicional"
#: contrib/admin/filterspecs.py:44
#, python-format
@@ -1137,15 +1145,15 @@ msgstr "permisos"
msgid "group"
msgstr "grup"
-#: contrib/auth/models.py:98 contrib/auth/models.py:141
+#: contrib/auth/models.py:98 contrib/auth/models.py:148
msgid "groups"
msgstr "grups"
-#: contrib/auth/models.py:131
+#: contrib/auth/models.py:138
msgid "username"
msgstr "nom d'usuari"
-#: contrib/auth/models.py:131
+#: contrib/auth/models.py:138
msgid ""
"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
"digits and underscores)."
@@ -1153,23 +1161,23 @@ msgstr ""
"Obligatori. 30 o menys caràcters. Només caràcters alfanumèrics (lletres, "
"dígits i el guió baix)."
-#: contrib/auth/models.py:132
+#: contrib/auth/models.py:139
msgid "first name"
msgstr "nom propi"
-#: contrib/auth/models.py:133
+#: contrib/auth/models.py:140
msgid "last name"
msgstr "cognoms"
-#: contrib/auth/models.py:134
+#: contrib/auth/models.py:141
msgid "e-mail address"
msgstr "adreça de correu electrònic"
-#: contrib/auth/models.py:135
+#: contrib/auth/models.py:142
msgid "password"
msgstr "contrasenya"
-#: contrib/auth/models.py:135
+#: contrib/auth/models.py:142
msgid ""
"Use '[algo]$[salt]$[hexdigest]' or use the change "
"password form."
@@ -1177,19 +1185,19 @@ msgstr ""
"Utilitzeu '[algo]$[salt]$[hexdigest]' o el formulari "
"de canvi de contrasenya."
-#: contrib/auth/models.py:136
+#: contrib/auth/models.py:143
msgid "staff status"
msgstr "membre del personal"
-#: contrib/auth/models.py:136
+#: contrib/auth/models.py:143
msgid "Designates whether the user can log into this admin site."
msgstr "Indica si l'usuari pot entrar en el lloc administratiu."
-#: contrib/auth/models.py:137
+#: contrib/auth/models.py:144
msgid "active"
msgstr "actiu"
-#: contrib/auth/models.py:137
+#: contrib/auth/models.py:144
msgid ""
"Designates whether this user should be treated as active. Unselect this "
"instead of deleting accounts."
@@ -1197,11 +1205,11 @@ msgstr ""
"Designa si aquest usuari ha de ser tractat com a actiu. Deseleccioneu-ho "
"enlloc d'esborrar comptes d'usuari."
-#: contrib/auth/models.py:138
+#: contrib/auth/models.py:145
msgid "superuser status"
msgstr "estat de superusuari"
-#: contrib/auth/models.py:138
+#: contrib/auth/models.py:145
msgid ""
"Designates that this user has all permissions without explicitly assigning "
"them."
@@ -1209,15 +1217,15 @@ msgstr ""
"Designa que aquest usuari té tots els permissos sense assignar-los "
"explícitament."
-#: contrib/auth/models.py:139
+#: contrib/auth/models.py:146
msgid "last login"
msgstr "últim inici de sessió"
-#: contrib/auth/models.py:140
+#: contrib/auth/models.py:147
msgid "date joined"
msgstr "data de creació"
-#: contrib/auth/models.py:142
+#: contrib/auth/models.py:149
msgid ""
"In addition to the permissions manually assigned, this user will also get "
"all permissions granted to each group he/she is in."
@@ -1225,39 +1233,39 @@ msgstr ""
"Junt amb els permissos asignats manualment, aquest usuari tindrà, també, els "
"permissos dels grups dels que sigui membre."
-#: contrib/auth/models.py:143
+#: contrib/auth/models.py:150
msgid "user permissions"
msgstr "permissos de l'usuari"
-#: contrib/auth/models.py:147
+#: contrib/auth/models.py:154
msgid "user"
msgstr "usuari"
-#: contrib/auth/models.py:148
+#: contrib/auth/models.py:155
msgid "users"
msgstr "usuaris"
-#: contrib/auth/models.py:154
+#: contrib/auth/models.py:161
msgid "Personal info"
msgstr "Informació personal"
-#: contrib/auth/models.py:155
+#: contrib/auth/models.py:162
msgid "Permissions"
msgstr "permisos"
-#: contrib/auth/models.py:156
+#: contrib/auth/models.py:163
msgid "Important dates"
msgstr "Dates importants"
-#: contrib/auth/models.py:157
+#: contrib/auth/models.py:164
msgid "Groups"
msgstr "Grups"
-#: contrib/auth/models.py:316
+#: contrib/auth/models.py:323
msgid "message"
msgstr "missatge"
-#: contrib/auth/views.py:47
+#: contrib/auth/views.py:48
msgid "Logged out"
msgstr "Sessió finalitzada"
@@ -3897,12 +3905,12 @@ msgstr ""
msgid "%(object)s with this %(type)s already exists for the given %(field)s."
msgstr "Ja existeix un %(object)s del tipus %(type)s amb aquest %(field)s."
-#: db/models/fields/__init__.py:54
+#: db/models/fields/__init__.py:51
#, python-format
msgid "%(optname)s with this %(fieldname)s already exists."
msgstr "Ja existeix %(optname)s amb aquest %(fieldname)s."
-#: db/models/fields/__init__.py:179 db/models/fields/__init__.py:348
+#: db/models/fields/__init__.py:176 db/models/fields/__init__.py:348
#: db/models/fields/__init__.py:780 db/models/fields/__init__.py:791
#: newforms/fields.py:46 oldforms/__init__.py:374
msgid "This field is required."
@@ -3937,18 +3945,18 @@ msgstr "Aquest valor ha de ser None (Cap), True (Veritat) o False (Fals)"
msgid "Please enter a valid %s."
msgstr "Si us plau, introduïu un %s vàlid."
-#: db/models/fields/related.py:721
+#: db/models/fields/related.py:746
msgid "Separate multiple IDs with commas."
msgstr "Separi múltiples IDs amb comes."
-#: db/models/fields/related.py:723
+#: db/models/fields/related.py:748
msgid ""
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
msgstr ""
"Premeu la tecla \"Control\" -o \"Command\" en un Mac- per seleccionar més "
"d'un valor."
-#: db/models/fields/related.py:770
+#: db/models/fields/related.py:795
#, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
msgid_plural ""
@@ -4007,11 +4015,11 @@ msgstr "Assegureu-vos de que no hi ha més de %s decimals."
msgid "Ensure that there are no more than %s digits before the decimal point."
msgstr "Assegureu-vos de que no hi ha més de %s dígits decimals."
-#: newforms/fields.py:263 newforms/fields.py:751
+#: newforms/fields.py:263 newforms/fields.py:750
msgid "Enter a valid date."
msgstr "Introduïu una data vàlida."
-#: newforms/fields.py:296 newforms/fields.py:752
+#: newforms/fields.py:296 newforms/fields.py:751
msgid "Enter a valid time."
msgstr "Introduïu una hora vàlida."
@@ -4035,25 +4043,25 @@ msgstr "Introduïu una URL vàlida."
msgid "This URL appears to be a broken link."
msgstr "Aquesta URL sembla ser un enllaç trencat."
-#: newforms/fields.py:560 newforms/models.py:299
+#: newforms/fields.py:559 newforms/models.py:305
msgid "Select a valid choice. That choice is not one of the available choices."
msgstr ""
"Escolli una opció vàlida; Aquesta opció no és una de les opcions disponibles."
-#: newforms/fields.py:599
+#: newforms/fields.py:598
#, python-format
msgid "Select a valid choice. %(value)s is not one of the available choices."
msgstr "Esculliu una opció vàlida. %(value)s no és una de les opcions vàlides."
-#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:371
+#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:372
msgid "Enter a list of values."
msgstr "Introduïu una llista de valors."
-#: newforms/fields.py:780
+#: newforms/fields.py:779
msgid "Enter a valid IPv4 address."
msgstr "Introduïu una adreça IPv4 vàlida."
-#: newforms/models.py:372
+#: newforms/models.py:373
#, python-format
msgid "Select a valid choice. %s is not one of the available choices."
msgstr "Escolliu una opció vàlida; %s' no és una de les opcions vàlides."
@@ -4194,51 +4202,51 @@ msgstr "Dg"
#: utils/dates.py:18
msgid "January"
-msgstr "Gener"
+msgstr "gener"
#: utils/dates.py:18
msgid "February"
-msgstr "Febrer"
+msgstr "febrer"
#: utils/dates.py:18 utils/dates.py:31
msgid "March"
-msgstr "Març"
+msgstr "març"
#: utils/dates.py:18 utils/dates.py:31
msgid "April"
-msgstr "Abril"
+msgstr "abril"
#: utils/dates.py:18 utils/dates.py:31
msgid "May"
-msgstr "Maig"
+msgstr "maig"
#: utils/dates.py:18 utils/dates.py:31
msgid "June"
-msgstr "Juny"
+msgstr "juny"
#: utils/dates.py:19 utils/dates.py:31
msgid "July"
-msgstr "Juliol"
+msgstr "juliol"
#: utils/dates.py:19
msgid "August"
-msgstr "Agost"
+msgstr "agost"
#: utils/dates.py:19
msgid "September"
-msgstr "Setembre"
+msgstr "setembre"
#: utils/dates.py:19
msgid "October"
-msgstr "Octubre"
+msgstr "octubre"
#: utils/dates.py:19
msgid "November"
-msgstr "Novembre"
+msgstr "novembre"
#: utils/dates.py:20
msgid "December"
-msgstr "Desembre"
+msgstr "desembre"
#: utils/dates.py:23
msgid "jan"
@@ -4290,31 +4298,31 @@ msgstr "des"
#: utils/dates.py:31
msgid "Jan."
-msgstr "Gen."
+msgstr "gen."
#: utils/dates.py:31
msgid "Feb."
-msgstr "Feb."
+msgstr "feb."
#: utils/dates.py:32
msgid "Aug."
-msgstr "Ago."
+msgstr "ago."
#: utils/dates.py:32
msgid "Sept."
-msgstr "Set."
+msgstr "set."
#: utils/dates.py:32
msgid "Oct."
-msgstr "Oct."
+msgstr "oct."
#: utils/dates.py:32
msgid "Nov."
-msgstr "Nov."
+msgstr "nov."
#: utils/dates.py:32
msgid "Dec."
-msgstr "Des."
+msgstr "des."
#: utils/text.py:127
msgid "or"
diff --git a/django/conf/locale/de/LC_MESSAGES/django.mo b/django/conf/locale/de/LC_MESSAGES/django.mo
index 226c64c560..234819f879 100644
Binary files a/django/conf/locale/de/LC_MESSAGES/django.mo and b/django/conf/locale/de/LC_MESSAGES/django.mo differ
diff --git a/django/conf/locale/de/LC_MESSAGES/django.po b/django/conf/locale/de/LC_MESSAGES/django.po
index 754c840de0..f529167baa 100644
--- a/django/conf/locale/de/LC_MESSAGES/django.po
+++ b/django/conf/locale/de/LC_MESSAGES/django.po
@@ -1,14 +1,14 @@
# Translation of django.po to German
#
-# Copyright (C) 2005-2007,
+# Copyright (C) 2005-2008,
# This file is distributed under the same license as the django package.
#
msgid ""
msgstr ""
"Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-18 15:10-0500\n"
-"PO-Revision-Date: 2008-03-03 16:10+0100\n"
+"POT-Creation-Date: 2008-06-23 20:23+0200\n"
+"PO-Revision-Date: 2008-06-23 20:51+0100\n"
"Last-Translator: Jannis Leidel \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -19,191 +19,199 @@ msgstr ""
"X-Poedit-SourceCharset: utf-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-#: conf/global_settings.py:39
+#: conf/global_settings.py:44
msgid "Arabic"
msgstr "Arabisch"
-#: conf/global_settings.py:40
+#: conf/global_settings.py:45
msgid "Bengali"
msgstr "Bengali"
-#: conf/global_settings.py:41
+#: conf/global_settings.py:46
msgid "Bulgarian"
msgstr "Bulgarisch"
-#: conf/global_settings.py:42
+#: conf/global_settings.py:47
msgid "Catalan"
msgstr "Katalanisch"
-#: conf/global_settings.py:43
+#: conf/global_settings.py:48
msgid "Czech"
msgstr "Tschechisch"
-#: conf/global_settings.py:44
+#: conf/global_settings.py:49
msgid "Welsh"
msgstr "Walisisch"
-#: conf/global_settings.py:45
+#: conf/global_settings.py:50
msgid "Danish"
msgstr "Dänisch"
-#: conf/global_settings.py:46
+#: conf/global_settings.py:51
msgid "German"
msgstr "Deutsch"
-#: conf/global_settings.py:47
+#: conf/global_settings.py:52
msgid "Greek"
msgstr "Griechisch"
-#: conf/global_settings.py:48
+#: conf/global_settings.py:53
msgid "English"
msgstr "Englisch"
-#: conf/global_settings.py:49
+#: conf/global_settings.py:54
msgid "Spanish"
msgstr "Spanisch"
-#: conf/global_settings.py:50
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "Estnisch"
+
+#: conf/global_settings.py:56
msgid "Argentinean Spanish"
msgstr "Argentinisches Spanisch"
-#: conf/global_settings.py:51
+#: conf/global_settings.py:57
msgid "Basque"
msgstr "Baskisch"
-#: conf/global_settings.py:52
+#: conf/global_settings.py:58
msgid "Persian"
msgstr "Persisch"
-#: conf/global_settings.py:53
+#: conf/global_settings.py:59
msgid "Finnish"
msgstr "Finnisch"
-#: conf/global_settings.py:54
+#: conf/global_settings.py:60
msgid "French"
msgstr "Französisch"
-#: conf/global_settings.py:55
+#: conf/global_settings.py:61
msgid "Irish"
msgstr "Irisch"
-#: conf/global_settings.py:56
+#: conf/global_settings.py:62
msgid "Galician"
msgstr "Galicisch"
-#: conf/global_settings.py:57
+#: conf/global_settings.py:63
msgid "Hungarian"
msgstr "Ungarisch"
-#: conf/global_settings.py:58
+#: conf/global_settings.py:64
msgid "Hebrew"
msgstr "Hebräisch"
-#: conf/global_settings.py:59
+#: conf/global_settings.py:65
msgid "Croatian"
msgstr "Kroatisch"
-#: conf/global_settings.py:60
+#: conf/global_settings.py:66
msgid "Icelandic"
msgstr "Isländisch"
-#: conf/global_settings.py:61
+#: conf/global_settings.py:67
msgid "Italian"
msgstr "Italienisch"
-#: conf/global_settings.py:62
+#: conf/global_settings.py:68
msgid "Japanese"
msgstr "Japanisch"
-#: conf/global_settings.py:63
+#: conf/global_settings.py:69
msgid "Georgian"
msgstr "Georgisch"
-#: conf/global_settings.py:64
+#: conf/global_settings.py:70
msgid "Korean"
msgstr "Koreanisch"
-#: conf/global_settings.py:65
+#: conf/global_settings.py:71
msgid "Khmer"
msgstr "Khmer"
-#: conf/global_settings.py:66
+#: conf/global_settings.py:72
msgid "Kannada"
msgstr "Kannada"
-#: conf/global_settings.py:67
+#: conf/global_settings.py:73
msgid "Latvian"
msgstr "Lettisch"
-#: conf/global_settings.py:68
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "Litauisch"
+
+#: conf/global_settings.py:75
msgid "Macedonian"
msgstr "Mazedonisch"
-#: conf/global_settings.py:69
+#: conf/global_settings.py:76
msgid "Dutch"
msgstr "Holländisch"
-#: conf/global_settings.py:70
+#: conf/global_settings.py:77
msgid "Norwegian"
msgstr "Norwegisch"
-#: conf/global_settings.py:71
+#: conf/global_settings.py:78
msgid "Polish"
msgstr "Polnisch"
-#: conf/global_settings.py:72
+#: conf/global_settings.py:79
msgid "Portugese"
msgstr "Portugiesisch"
-#: conf/global_settings.py:73
-msgid "Brazilian"
+#: conf/global_settings.py:80
+msgid "Brazilian Portuguese"
msgstr "Brasilianisches Portugiesisch"
-#: conf/global_settings.py:74
+#: conf/global_settings.py:81
msgid "Romanian"
msgstr "Rumänisch"
-#: conf/global_settings.py:75
+#: conf/global_settings.py:82
msgid "Russian"
msgstr "Russisch"
-#: conf/global_settings.py:76
+#: conf/global_settings.py:83
msgid "Slovak"
msgstr "Slowakisch"
-#: conf/global_settings.py:77
+#: conf/global_settings.py:84
msgid "Slovenian"
msgstr "Slowenisch"
-#: conf/global_settings.py:78
+#: conf/global_settings.py:85
msgid "Serbian"
msgstr "Serbisch"
-#: conf/global_settings.py:79
+#: conf/global_settings.py:86
msgid "Swedish"
msgstr "Schwedisch"
-#: conf/global_settings.py:80
+#: conf/global_settings.py:87
msgid "Tamil"
msgstr "Tamilisch"
-#: conf/global_settings.py:81
+#: conf/global_settings.py:88
msgid "Telugu"
msgstr "Telugisch"
-#: conf/global_settings.py:82
+#: conf/global_settings.py:89
msgid "Turkish"
msgstr "Türkisch"
-#: conf/global_settings.py:83
+#: conf/global_settings.py:90
msgid "Ukrainian"
msgstr "Ukrainisch"
-#: conf/global_settings.py:84
+#: conf/global_settings.py:91
msgid "Simplified Chinese"
msgstr "Vereinfachtes Chinesisch"
-#: conf/global_settings.py:85
+#: conf/global_settings.py:92
msgid "Traditional Chinese"
msgstr "Traditionelles Chinesisch"
@@ -216,8 +224,10 @@ msgstr ""
"
Nach %s:
\n"
"
\n"
-#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
-#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+#: contrib/admin/filterspecs.py:74
+#: contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147
+#: contrib/admin/filterspecs.py:173
msgid "All"
msgstr "Alle"
@@ -241,17 +251,20 @@ msgstr "Diesen Monat"
msgid "This year"
msgstr "Dieses Jahr"
-#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: contrib/admin/filterspecs.py:147
+#: newforms/widgets.py:231
#: oldforms/__init__.py:592
msgid "Yes"
msgstr "Ja"
-#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: contrib/admin/filterspecs.py:147
+#: newforms/widgets.py:231
#: oldforms/__init__.py:592
msgid "No"
msgstr "Nein"
-#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231
+#: contrib/admin/filterspecs.py:154
+#: newforms/widgets.py:231
#: oldforms/__init__.py:592
msgid "Unknown"
msgstr "Unbekannt"
@@ -291,8 +304,7 @@ msgstr "Seite nicht gefunden"
#: contrib/admin/templates/admin/404.html:10
msgid "We're sorry, but the requested page could not be found."
-msgstr ""
-"Es tut uns leid, aber die angeforderte Seite konnte nicht gefunden werden."
+msgstr "Es tut uns leid, aber die angeforderte Seite konnte nicht gefunden werden."
#: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/base.html:37
@@ -324,13 +336,8 @@ msgid "Server Error (500)"
msgstr "Serverfehler (500)"
#: contrib/admin/templates/admin/500.html:10
-msgid ""
-"There's been an error. It's been reported to the site administrators via e-"
-"mail and should be fixed shortly. Thanks for your patience."
-msgstr ""
-"Ein Fehler ist aufgetreten. Dieser Fehler wurde an die Serververwalter per E-"
-"Mail weitergegeben und sollte bald behoben sein. Vielen Dank für Ihr "
-"Verständnis."
+msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
+msgstr "Ein Fehler ist aufgetreten. Dieser Fehler wurde an die Serververwalter per E-Mail weitergegeben und sollte bald behoben sein. Vielen Dank für Ihr Verständnis."
#: contrib/admin/templates/admin/base.html:26
msgid "Welcome,"
@@ -401,23 +408,13 @@ msgstr "Löschen"
#: contrib/admin/templates/admin/delete_confirmation.html:13
#, python-format
-msgid ""
-"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
-"related objects, but your account doesn't have permission to delete the "
-"following types of objects:"
-msgstr ""
-"Die Löschung des %(object_name)s '%(escaped_object)s' hätte die Löschung von "
-"abhängigen Daten zur Folge, aber Sie haben nicht die nötigen Rechte um die "
-"folgenden abhängigen Daten zu löschen:"
+msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:"
+msgstr "Die Löschung des %(object_name)s '%(escaped_object)s' hätte die Löschung von abhängigen Daten zur Folge, aber Sie haben nicht die nötigen Rechte um die folgenden abhängigen Daten zu löschen:"
#: contrib/admin/templates/admin/delete_confirmation.html:20
#, python-format
-msgid ""
-"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
-"All of the following related items will be deleted:"
-msgstr ""
-"Sind Sie sicher, dass Sie %(object_name)s \"%(escaped_object)s\" löschen "
-"wollen? Es werden zusätzlich die folgenden abhängigen Daten mit gelöscht:"
+msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:"
+msgstr "Sind Sie sicher, dass Sie %(object_name)s \"%(escaped_object)s\" löschen wollen? Es werden zusätzlich die folgenden abhängigen Daten mit gelöscht:"
#: contrib/admin/templates/admin/delete_confirmation.html:25
msgid "Yes, I'm sure"
@@ -463,14 +460,8 @@ msgid "None available"
msgstr "Keine vorhanden"
#: contrib/admin/templates/admin/invalid_setup.html:8
-msgid ""
-"Something's wrong with your database installation. Make sure the appropriate "
-"database tables have been created, and make sure the database is readable by "
-"the appropriate user."
-msgstr ""
-"Etwas stimmt nicht mit der Datenbankkonfiguration. Bitte sicherstellen, dass "
-"die richtigen Datenbanktabellen angelegt wurden und die Datenbank vom "
-"verwendeten Datenbankbenutzer auch lesbar ist."
+msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user."
+msgstr "Etwas stimmt nicht mit der Datenbankkonfiguration. Bitte sicherstellen, dass die richtigen Datenbanktabellen angelegt wurden und die Datenbank vom verwendeten Datenbankbenutzer auch lesbar ist."
#: contrib/admin/templates/admin/login.html:17
#: contrib/comments/templates/comments/form.html:6
@@ -505,12 +496,8 @@ msgid "DATE_WITH_TIME_FULL"
msgstr "j. N Y, H:i"
#: contrib/admin/templates/admin/object_history.html:35
-msgid ""
-"This object doesn't have a change history. It probably wasn't added via this "
-"admin site."
-msgstr ""
-"Dieses Objekt hat keine Änderungsgeschichte. Es wurde möglicherweise nicht "
-"über diese Verwaltungsseiten angelegt."
+msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
+msgstr "Dieses Objekt hat keine Änderungsgeschichte. Es wurde möglicherweise nicht über diese Verwaltungsseiten angelegt."
#: contrib/admin/templates/admin/pagination.html:10
msgid "Show all"
@@ -549,12 +536,8 @@ msgid "Save"
msgstr "Sichern"
#: contrib/admin/templates/admin/auth/user/add_form.html:6
-msgid ""
-"First, enter a username and password. Then, you'll be able to edit more user "
-"options."
-msgstr ""
-"Zuerst einen Benutzer und ein Passwort eingeben. Danach können weitere "
-"Optionen für den Benutzer geändert werden."
+msgid "First, enter a username and password. Then, you'll be able to edit more user options."
+msgstr "Zuerst einen Benutzer und ein Passwort eingeben. Danach können weitere Optionen für den Benutzer geändert werden."
#: contrib/admin/templates/admin/auth/user/add_form.html:12
msgid "Username"
@@ -578,9 +561,7 @@ msgstr "Bitte das gleiche Passwort zur Überprüfung nochmal eingeben."
#: contrib/admin/templates/admin/auth/user/change_password.html:27
#, python-format
msgid "Enter a new password for the user %(username)s."
-msgstr ""
-"Bitte geben Sie ein neues Passwort für den Benutzer %(username)s"
-"strong> ein."
+msgstr "Bitte geben Sie ein neues Passwort für den Benutzer %(username)s ein."
#: contrib/admin/templates/admin_doc/bookmarklets.html:3
msgid "Bookmarklets"
@@ -601,12 +582,9 @@ msgid ""
"your computer is \"internal\").
\n"
msgstr ""
"\n"
-"
Um Bookmarklets zu installieren, müssen diese Links in "
-"die\n"
-"Browser-Werkzeugleiste gezogen werden, oder mittels rechter Maustaste in "
-"die\n"
-"Bookmarks gespeichert werden. Danach können die Bookmarklets von jeder "
-"Seite\n"
+"
Um Bookmarklets zu installieren, müssen diese Links in die\n"
+"Browser-Werkzeugleiste gezogen werden, oder mittels rechter Maustaste in die\n"
+"Bookmarks gespeichert werden. Danach können die Bookmarklets von jeder Seite\n"
"aufgerufen werden. Einige Bookmarklets sind für den Zugriff von 'internen'\n"
"Rechnern eingeschränkt. Falls nicht klar ist, ob ein Rechner als 'intern'\n"
"bewertet wird, bitte den Administrator fragen.
\n"
@@ -616,24 +594,16 @@ msgid "Documentation for this page"
msgstr "Dokumentation für diese Seite"
#: contrib/admin/templates/admin_doc/bookmarklets.html:19
-msgid ""
-"Jumps you from any page to the documentation for the view that generates "
-"that page."
-msgstr ""
-"Springt von jeder Seite zu der Dokumentation für den View der diese Seite "
-"erzeugt."
+msgid "Jumps you from any page to the documentation for the view that generates that page."
+msgstr "Springt von jeder Seite zu der Dokumentation für den View der diese Seite erzeugt."
#: contrib/admin/templates/admin_doc/bookmarklets.html:21
msgid "Show object ID"
msgstr "Objekt-ID anzeigen"
#: contrib/admin/templates/admin_doc/bookmarklets.html:22
-msgid ""
-"Shows the content-type and unique ID for pages that represent a single "
-"object."
-msgstr ""
-"Zeigt den Content-Type und die eindeutige ID für Seiten die ein einzelnes "
-"Objekt repräsentieren."
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "Zeigt den Content-Type und die eindeutige ID für Seiten die ein einzelnes Objekt repräsentieren."
#: contrib/admin/templates/admin_doc/bookmarklets.html:24
msgid "Edit this object (current window)"
@@ -641,9 +611,7 @@ msgstr "Dieses Objekt im aktuellen Fenster ändern."
#: contrib/admin/templates/admin_doc/bookmarklets.html:25
msgid "Jumps to the admin page for pages that represent a single object."
-msgstr ""
-"Springt zu der Administrationsseite für dieses Objekt, wenn diese Seite ein "
-"Objekt repräsentiert."
+msgstr "Springt zu der Administrationsseite für dieses Objekt, wenn diese Seite ein Objekt repräsentiert."
#: contrib/admin/templates/admin_doc/bookmarklets.html:27
msgid "Edit this object (new window)"
@@ -651,8 +619,7 @@ msgstr "Dieses Objekt in einem neuen Fenster ändern."
#: contrib/admin/templates/admin_doc/bookmarklets.html:28
msgid "As above, but opens the admin page in a new window."
-msgstr ""
-"Wie zuvor, aber öffnet die Administrationsseite in einem neuen Fenster."
+msgstr "Wie zuvor, aber öffnet die Administrationsseite in einem neuen Fenster."
#: contrib/admin/templates/registration/logged_out.html:8
msgid "Thanks for spending some quality time with the Web site today."
@@ -679,13 +646,8 @@ msgid "Your password was changed."
msgstr "Ihr Passwort wurde geändert."
#: contrib/admin/templates/registration/password_change_form.html:11
-msgid ""
-"Please enter your old password, for security's sake, and then enter your new "
-"password twice so we can verify you typed it in correctly."
-msgstr ""
-"Bitte geben Sie aus Sicherheitsgründen erst Ihr altes Passwort und darunter "
-"dann zweimal (um sicherzustellen, dass Sie es korrekt eingegeben haben) das "
-"neue Kennwort ein."
+msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
+msgstr "Bitte geben Sie aus Sicherheitsgründen erst Ihr altes Passwort und darunter dann zweimal (um sicherzustellen, dass Sie es korrekt eingegeben haben) das neue Kennwort ein."
#: contrib/admin/templates/registration/password_change_form.html:16
msgid "Old password:"
@@ -716,12 +678,8 @@ msgid "Password reset successful"
msgstr "Passwort wurde erfolgreich zurückgesetzt"
#: contrib/admin/templates/registration/password_reset_done.html:12
-msgid ""
-"We've e-mailed a new password to the e-mail address you submitted. You "
-"should be receiving it shortly."
-msgstr ""
-"Wir haben ein neues Passwort an die von Ihnen angegebene E-Mail-Adresse "
-"geschickt. Sie sollten es in Kürze erhalten."
+msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
+msgstr "Wir haben ein neues Passwort an die von Ihnen angegebene E-Mail-Adresse geschickt. Sie sollten es in Kürze erhalten."
#: contrib/admin/templates/registration/password_reset_email.html:2
msgid "You're receiving this e-mail because you requested a password reset"
@@ -755,12 +713,8 @@ msgid "The %(site_name)s team"
msgstr "Das Team von %(site_name)s"
#: contrib/admin/templates/registration/password_reset_form.html:12
-msgid ""
-"Forgotten your password? Enter your e-mail address below, and we'll reset "
-"your password and e-mail the new one to you."
-msgstr ""
-"Passwort vergessen? Einfach die E-Mail-Adresse eingeben und wir setzen das "
-"Passwort zurück und lassen es Ihnen per E-Mail zukommen."
+msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
+msgstr "Passwort vergessen? Einfach die E-Mail-Adresse eingeben und wir setzen das Passwort zurück und lassen es Ihnen per E-Mail zukommen."
#: contrib/admin/templates/registration/password_reset_form.html:16
msgid "E-mail address:"
@@ -790,12 +744,14 @@ msgstr "Ändern:"
msgid "All dates"
msgstr "Alle Tage"
-#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267
+#: contrib/admin/views/auth.py:20
+#: contrib/admin/views/main.py:267
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "%(name)s \"%(obj)s\" wurde erfolgreich hinzugefügt."
-#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271
+#: contrib/admin/views/auth.py:25
+#: contrib/admin/views/main.py:271
#: contrib/admin/views/main.py:356
msgid "You may edit it again below."
msgstr "Das Element kann jetzt weiter bearbeitet werden."
@@ -813,52 +769,42 @@ msgstr "Passwort erfolgreich geändert."
msgid "Change password: %s"
msgstr "Passwort ändern: %s"
-#: contrib/admin/views/decorators.py:17 contrib/auth/forms.py:60
-msgid ""
-"Please enter a correct username and password. Note that both fields are case-"
-"sensitive."
-msgstr ""
-"Bitte einen gültigen Benutzernamen und ein Passwort eingeben. Beide Felder "
-"berücksichtigen die Groß-/Kleinschreibung."
+#: contrib/admin/views/decorators.py:17
+#: contrib/auth/forms.py:60
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "Bitte einen gültigen Benutzernamen und ein Passwort eingeben. Beide Felder berücksichtigen die Groß-/Kleinschreibung."
#: contrib/admin/views/decorators.py:69
-msgid ""
-"Please log in again, because your session has expired. Don't worry: Your "
-"submission has been saved."
-msgstr ""
-"Bitte neu anmelden, da die Session ausgelaufen ist. Keine Angst, die "
-"Beiträge wurden gesichert."
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "Bitte neu anmelden, da die Session ausgelaufen ist. Keine Angst, die Beiträge wurden gesichert."
#: contrib/admin/views/decorators.py:76
-msgid ""
-"Looks like your browser isn't configured to accept cookies. Please enable "
-"cookies, reload this page, and try again."
-msgstr ""
-"Es sieht danach aus, dass der Browser keine Cookies akzeptiert. Bitte im "
-"Browser Cookies aktivieren und diese Seite neu laden."
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "Es sieht danach aus, dass der Browser keine Cookies akzeptiert. Bitte im Browser Cookies aktivieren und diese Seite neu laden."
-#: contrib/admin/views/decorators.py:90
+#: contrib/admin/views/decorators.py:89
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Die E-Mail-Adresse entspricht nicht Ihrem Benutzernamen. Bitte stattdessen '%s' versuchen."
+
+#: contrib/admin/views/decorators.py:93
msgid "Usernames cannot contain the '@' character."
msgstr "Benutzernamen dürfen das Zeichen '@' nicht enthalten."
-#: contrib/admin/views/decorators.py:92
-#, python-format
-msgid "Your e-mail address is not your username. Try '%s' instead."
-msgstr ""
-"Die E-Mail-Adresse entspricht nicht Ihrem Benutzernamen. Bitte stattdessen "
-"'%s' versuchen."
-
-#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
#: contrib/admin/views/doc.py:52
msgid "tag:"
msgstr "Schlagwort:"
-#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
#: contrib/admin/views/doc.py:83
msgid "filter:"
msgstr "Filter:"
-#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
#: contrib/admin/views/doc.py:141
msgid "view:"
msgstr "Ansicht:"
@@ -878,8 +824,10 @@ msgstr "Modell %(name)r wurde nicht in Anwendung %(label)r gefunden"
msgid "the related `%(label)s.%(type)s` object"
msgstr "Das verknüpfte `%(label)s.%(type)s` Objekt"
-#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207
-#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226
+#: contrib/admin/views/doc.py:185
+#: contrib/admin/views/doc.py:207
+#: contrib/admin/views/doc.py:221
+#: contrib/admin/views/doc.py:226
msgid "model:"
msgstr "Modell:"
@@ -903,9 +851,12 @@ msgstr "Anzahl von %s"
msgid "Fields on %s objects"
msgstr "Felder am %s Objekt"
-#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304
-#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312
-#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315
+#: contrib/admin/views/doc.py:293
+#: contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:306
+#: contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:313
+#: contrib/admin/views/doc.py:315
msgid "Integer"
msgstr "Ganzzahl"
@@ -913,7 +864,8 @@ msgstr "Ganzzahl"
msgid "Boolean (Either True or False)"
msgstr "Boolscher Wert (True oder False)"
-#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314
+#: contrib/admin/views/doc.py:295
+#: contrib/admin/views/doc.py:314
#, python-format
msgid "String (up to %(max_length)s)"
msgstr "Zeichenkette (bis zu %(max_length)s Zeichen)"
@@ -938,7 +890,8 @@ msgstr "Dezimalzahl"
msgid "E-mail address"
msgstr "E-Mail-Adresse"
-#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:302
#: contrib/admin/views/doc.py:305
msgid "File path"
msgstr "Dateipfad"
@@ -947,7 +900,8 @@ msgstr "Dateipfad"
msgid "Floating point number"
msgstr "Fließkommazahl"
-#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89
+#: contrib/admin/views/doc.py:307
+#: contrib/comments/models.py:89
msgid "IP address"
msgstr "IP-Adresse"
@@ -971,7 +925,8 @@ msgstr "Text"
msgid "Time"
msgstr "Zeit"
-#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:7
+#: contrib/admin/views/doc.py:318
+#: contrib/flatpages/models.py:8
msgid "URL"
msgstr "Adresse (URL)"
@@ -992,7 +947,8 @@ msgstr "%s ist scheinbar kein urlpattern Objekt"
msgid "Site administration"
msgstr "Website-Verwaltung"
-#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365
+#: contrib/admin/views/main.py:280
+#: contrib/admin/views/main.py:365
#, python-format
msgid "You may add another %s below."
msgstr "Jetzt kann ein weiteres Element vom Typ %s angelegt werden."
@@ -1007,8 +963,10 @@ msgstr "%s hinzufügen"
msgid "Added %s."
msgstr "%s hinzugefügt."
-#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346
-#: contrib/admin/views/main.py:348 core/validators.py:283
+#: contrib/admin/views/main.py:344
+#: contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:348
+#: core/validators.py:283
#: db/models/manipulators.py:309
msgid "and"
msgstr "und"
@@ -1034,11 +992,8 @@ msgstr "%(name)s \"%(obj)s\" wurde erfolgreich geändert."
#: contrib/admin/views/main.py:362
#, python-format
-msgid ""
-"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
-msgstr ""
-"%(name)s \"%(obj)s\" wurde erfolgreich hinzugefügt. Das Element kann jetzt "
-"geändert werden."
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" wurde erfolgreich hinzugefügt. Das Element kann jetzt geändert werden."
#: contrib/admin/views/main.py:400
#, python-format
@@ -1079,11 +1034,12 @@ msgstr "%s auswählen"
msgid "Select %s to change"
msgstr "%s zur Änderung auswählen"
-#: contrib/admin/views/main.py:784
+#: contrib/admin/views/main.py:765
msgid "Database error"
msgstr "Datenbankfehler"
-#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+#: contrib/auth/forms.py:17
+#: contrib/auth/forms.py:138
msgid "The two password fields didn't match."
msgstr "Die beiden Passwörter sind nicht identisch."
@@ -1092,24 +1048,16 @@ msgid "A user with that username already exists."
msgstr "Ein Benutzer mit diesem Namen existiert bereits."
#: contrib/auth/forms.py:53
-msgid ""
-"Your Web browser doesn't appear to have cookies enabled. Cookies are "
-"required for logging in."
-msgstr ""
-"Der Webbrowser scheint keine Cookies aktiviert zu haben. Cookies sind für "
-"die Anmeldung zwingend erforderlich."
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "Der Webbrowser scheint keine Cookies aktiviert zu haben. Cookies sind für die Anmeldung zwingend erforderlich."
#: contrib/auth/forms.py:62
msgid "This account is inactive."
msgstr "Dieser Benutzer ist inaktiv."
#: contrib/auth/forms.py:84
-msgid ""
-"That e-mail address doesn't have an associated user account. Are you sure "
-"you've registered?"
-msgstr ""
-"Zu dieser E-Mail-Adresse existiert kein Benutzer. Sicher, dass Sie sich mit "
-"dieser Adresse angemeldet haben?"
+msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
+msgstr "Zu dieser E-Mail-Adresse existiert kein Benutzer. Sicher, dass Sie sich mit dieser Adresse angemeldet haben?"
#: contrib/auth/forms.py:107
#, python-format
@@ -1124,7 +1072,8 @@ msgstr "Die beiden neuen Passwörter sind nicht identisch."
msgid "Your old password was entered incorrectly. Please enter it again."
msgstr "Das alte Passwort war falsch. Bitte neu eingeben."
-#: contrib/auth/models.py:73 contrib/auth/models.py:93
+#: contrib/auth/models.py:73
+#: contrib/auth/models.py:93
msgid "name"
msgstr "Name"
@@ -1136,7 +1085,8 @@ msgstr "Codename"
msgid "permission"
msgstr "Berechtigung"
-#: contrib/auth/models.py:79 contrib/auth/models.py:94
+#: contrib/auth/models.py:79
+#: contrib/auth/models.py:94
msgid "permissions"
msgstr "Berechtigungen"
@@ -1144,133 +1094,113 @@ msgstr "Berechtigungen"
msgid "group"
msgstr "Gruppe"
-#: contrib/auth/models.py:98 contrib/auth/models.py:141
+#: contrib/auth/models.py:98
+#: contrib/auth/models.py:148
msgid "groups"
msgstr "Gruppen"
-#: contrib/auth/models.py:131
+#: contrib/auth/models.py:138
msgid "username"
msgstr "Benutzername"
-#: contrib/auth/models.py:131
-msgid ""
-"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
-"digits and underscores)."
-msgstr ""
-"Erforderlich. 30 Zeichen oder weniger. Alphanumerische Zeichen (Buchstaben, "
-"Ziffern und Unterstriche sind erlaubt)."
+#: contrib/auth/models.py:138
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr "Erforderlich. 30 Zeichen oder weniger. Alphanumerische Zeichen (Buchstaben, Ziffern und Unterstriche sind erlaubt)."
-#: contrib/auth/models.py:132
+#: contrib/auth/models.py:139
msgid "first name"
msgstr "Vorname"
-#: contrib/auth/models.py:133
+#: contrib/auth/models.py:140
msgid "last name"
msgstr "Nachname"
-#: contrib/auth/models.py:134
+#: contrib/auth/models.py:141
msgid "e-mail address"
msgstr "E-Mail-Adresse"
-#: contrib/auth/models.py:135
+#: contrib/auth/models.py:142
msgid "password"
msgstr "Passwort"
-#: contrib/auth/models.py:135
-msgid ""
-"Use '[algo]$[salt]$[hexdigest]' or use the change "
-"password form."
-msgstr ""
-"Die Form '[algo]$[salt]$[hexdigest]' verwenden, oder das Passwort ändern Formular benutzen."
+#: contrib/auth/models.py:142
+msgid "Use '[algo]$[salt]$[hexdigest]' or use the change password form."
+msgstr "Die Form '[algo]$[salt]$[hexdigest]' verwenden, oder das Passwort ändern Formular benutzen."
-#: contrib/auth/models.py:136
+#: contrib/auth/models.py:143
msgid "staff status"
msgstr "Administrator"
-#: contrib/auth/models.py:136
+#: contrib/auth/models.py:143
msgid "Designates whether the user can log into this admin site."
-msgstr ""
-"Legt fest, ob sich der Benutzer an der Administrationsseite anmelden kann."
+msgstr "Legt fest, ob sich der Benutzer an der Administrationsseite anmelden kann."
-#: contrib/auth/models.py:137
+#: contrib/auth/models.py:144
msgid "active"
msgstr "Aktiv"
-#: contrib/auth/models.py:137
-msgid ""
-"Designates whether this user can log into the Django admin. Unselect this "
-"instead of deleting accounts."
-msgstr ""
-"Legt fest, ob sich der Benutzer an der Administrationsseite anmelden kann. "
-"Anstatt einen Benutzer zu löschen, kann er hier auch einfach deaktiviert "
-"werden."
+#: contrib/auth/models.py:144
+msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts."
+msgstr "Legt fest, ob dieser Benutzer aktiv ist. Kann deaktiviert werden, anstatt Benutzer zu löschen."
-#: contrib/auth/models.py:138
+#: contrib/auth/models.py:145
msgid "superuser status"
msgstr "Hauptadmin."
-#: contrib/auth/models.py:138
-msgid ""
-"Designates that this user has all permissions without explicitly assigning "
-"them."
-msgstr ""
-"Legt fest, dass der Benutzer alle Berechtigungen hat, ohne diese einzeln "
-"zuweisen zu müssen."
+#: contrib/auth/models.py:145
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr "Legt fest, dass der Benutzer alle Berechtigungen hat, ohne diese einzeln zuweisen zu müssen."
-#: contrib/auth/models.py:139
+#: contrib/auth/models.py:146
msgid "last login"
msgstr "Letzte Anmeldung"
-#: contrib/auth/models.py:140
+#: contrib/auth/models.py:147
msgid "date joined"
msgstr "Mitglied seit"
-#: contrib/auth/models.py:142
-msgid ""
-"In addition to the permissions manually assigned, this user will also get "
-"all permissions granted to each group he/she is in."
-msgstr ""
-"Zusätzlich zu den manuell angelegten Rechten erhält dieser Benutzer auch "
-"alle Rechte, die seine zugewiesenen Gruppen haben."
+#: contrib/auth/models.py:149
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "Zusätzlich zu den manuell angelegten Rechten erhält dieser Benutzer auch alle Rechte, die seine zugewiesenen Gruppen haben."
-#: contrib/auth/models.py:143
+#: contrib/auth/models.py:150
msgid "user permissions"
msgstr "Berechtigungen"
-#: contrib/auth/models.py:147
+#: contrib/auth/models.py:154
msgid "user"
msgstr "Benutzer"
-#: contrib/auth/models.py:148
+#: contrib/auth/models.py:155
msgid "users"
msgstr "Benutzer"
-#: contrib/auth/models.py:154
+#: contrib/auth/models.py:161
msgid "Personal info"
msgstr "Persönliche Infos"
-#: contrib/auth/models.py:155
+#: contrib/auth/models.py:162
msgid "Permissions"
msgstr "Berechtigungen"
-#: contrib/auth/models.py:156
+#: contrib/auth/models.py:163
msgid "Important dates"
msgstr "Wichtige Daten"
-#: contrib/auth/models.py:157
+#: contrib/auth/models.py:164
msgid "Groups"
msgstr "Gruppen"
-#: contrib/auth/models.py:316
+#: contrib/auth/models.py:323
msgid "message"
msgstr "Mitteilung"
-#: contrib/auth/views.py:47
+#: contrib/auth/views.py:48
msgid "Logged out"
msgstr "Abgemeldet"
-#: contrib/comments/models.py:71 contrib/comments/models.py:176
+#: contrib/comments/models.py:71
+#: contrib/comments/models.py:176
msgid "object ID"
msgstr "Objekt-ID"
@@ -1278,7 +1208,8 @@ msgstr "Objekt-ID"
msgid "headline"
msgstr "Überschrift"
-#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:73
+#: contrib/comments/models.py:95
#: contrib/comments/models.py:177
msgid "comment"
msgstr "Kommentar"
@@ -1319,11 +1250,13 @@ msgstr "Bewertung #8"
msgid "is valid rating"
msgstr "ist eine Bewertung"
-#: contrib/comments/models.py:87 contrib/comments/models.py:179
+#: contrib/comments/models.py:87
+#: contrib/comments/models.py:179
msgid "date/time submitted"
msgstr "Datum/Zeit Erstellung"
-#: contrib/comments/models.py:88 contrib/comments/models.py:180
+#: contrib/comments/models.py:88
+#: contrib/comments/models.py:180
msgid "is public"
msgstr "ist öffentlich"
@@ -1332,18 +1265,15 @@ msgid "is removed"
msgstr "ist gelöscht"
#: contrib/comments/models.py:90
-msgid ""
-"Check this box if the comment is inappropriate. A \"This comment has been "
-"removed\" message will be displayed instead."
-msgstr ""
-"Hier einen Haken setzen, wenn der Kommentar unpassend ist. Stattdessen wird "
-"dann \"Dieser Kommentar wurde entfernt\" Meldung angezeigt."
+msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
+msgstr "Hier einen Haken setzen, wenn der Kommentar unpassend ist. Stattdessen wird dann \"Dieser Kommentar wurde entfernt\" Meldung angezeigt."
#: contrib/comments/models.py:96
msgid "comments"
msgstr "Kommentare"
-#: contrib/comments/models.py:140 contrib/comments/models.py:222
+#: contrib/comments/models.py:140
+#: contrib/comments/models.py:222
msgid "Content object"
msgstr "Inhaltsobjekt"
@@ -1485,32 +1415,25 @@ msgid "Your name:"
msgstr "Ihr Name:"
#: contrib/comments/views/comments.py:28
-msgid ""
-"This rating is required because you've entered at least one other rating."
-msgstr ""
-"Diese Abstimmung ist zwingend erforderlich, da Sie an mindestens einer "
-"weiteren Abstimmung teilnehmen."
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "Diese Abstimmung ist zwingend erforderlich, da Sie an mindestens einer weiteren Abstimmung teilnehmen."
#: contrib/comments/views/comments.py:112
#, python-format
msgid ""
-"This comment was posted by a user who has posted fewer than %(count)s "
-"comment:\n"
+"This comment was posted by a user who has posted fewer than %(count)s comment:\n"
"\n"
"%(text)s"
msgid_plural ""
-"This comment was posted by a user who has posted fewer than %(count)s "
-"comments:\n"
+"This comment was posted by a user who has posted fewer than %(count)s comments:\n"
"\n"
"%(text)s"
msgstr[0] ""
-"Dieser Kommentar ist von einem Benutzer mit weniger als %(count)s "
-"Kommentar:\n"
+"Dieser Kommentar ist von einem Benutzer mit weniger als %(count)s Kommentar:\n"
"\n"
"%(text)s"
msgstr[1] ""
-"Dieser Kommentar ist von einem Benutzer mit weniger als %(count)s "
-"Kommentaren:\n"
+"Dieser Kommentar ist von einem Benutzer mit weniger als %(count)s Kommentaren:\n"
"\n"
"%(text)s"
@@ -1538,23 +1461,17 @@ msgstr "Eines oder mehrere der erforderlichen Felder fehlen"
#: contrib/comments/views/comments.py:198
#: contrib/comments/views/comments.py:289
msgid "Somebody tampered with the comment form (security violation)"
-msgstr ""
-"Jemand hat mit dem Kommentarformular herumgespielt (Sicherheitsverletzung)"
+msgstr "Jemand hat mit dem Kommentarformular herumgespielt (Sicherheitsverletzung)"
#: contrib/comments/views/comments.py:208
#: contrib/comments/views/comments.py:295
-msgid ""
-"The comment form had an invalid 'target' parameter -- the object ID was "
-"invalid"
-msgstr ""
-"Das Kommentarformular hatte einen falschen 'target' Parameter -- die Objekt-"
-"ID ist ungültig."
+msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid"
+msgstr "Das Kommentarformular hatte einen falschen 'target' Parameter -- die Objekt-ID ist ungültig."
#: contrib/comments/views/comments.py:259
#: contrib/comments/views/comments.py:324
msgid "The comment form didn't provide either 'preview' or 'post'"
-msgstr ""
-"Das Kommentarformular wurde nicht mit 'preview' oder 'post' abgeschickt"
+msgstr "Das Kommentarformular wurde nicht mit 'preview' oder 'post' abgeschickt"
#: contrib/comments/views/karma.py:21
msgid "Anonymous users cannot vote"
@@ -1580,54 +1497,50 @@ msgstr "Inhaltstyp"
msgid "content types"
msgstr "Inhaltstypen"
-#: contrib/flatpages/models.py:8
-msgid ""
-"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
-msgstr ""
-"Beispiel: '/about/contact/'. Wichtig: Am Anfang und Ende muss ein / stehen."
-
#: contrib/flatpages/models.py:9
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Beispiel: '/about/contact/'. Wichtig: Am Anfang und Ende muss ein / stehen."
+
+#: contrib/flatpages/models.py:10
msgid "title"
msgstr "Titel"
-#: contrib/flatpages/models.py:10
+#: contrib/flatpages/models.py:11
msgid "content"
msgstr "Inhalt"
-#: contrib/flatpages/models.py:11
+#: contrib/flatpages/models.py:12
msgid "enable comments"
msgstr "Kommentare aktivieren"
-#: contrib/flatpages/models.py:12
+#: contrib/flatpages/models.py:13
msgid "template name"
msgstr "Name der Vorlage"
-#: contrib/flatpages/models.py:13
-msgid ""
-"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
-"will use 'flatpages/default.html'."
-msgstr ""
-"Beispiel: 'flatpages/contact_page.html'. Wenn dieses Feld nicht gefüllt ist, "
-"wird 'flatpages/default.html' als Standard gewählt."
-
#: contrib/flatpages/models.py:14
+msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
+msgstr "Beispiel: 'flatpages/contact_page.html'. Wenn dieses Feld nicht gefüllt ist, wird 'flatpages/default.html' als Standard gewählt."
+
+#: contrib/flatpages/models.py:15
msgid "registration required"
msgstr "Registrierung erforderlich"
-#: contrib/flatpages/models.py:14
+#: contrib/flatpages/models.py:15
msgid "If this is checked, only logged-in users will be able to view the page."
-msgstr ""
-"Wenn hier ein Haken gesetzt ist, können nur angemeldete Benutzer diese Seite "
-"sehen."
+msgstr "Wenn hier ein Haken gesetzt ist, können nur angemeldete Benutzer diese Seite sehen."
-#: contrib/flatpages/models.py:18
+#: contrib/flatpages/models.py:20
msgid "flat page"
msgstr "Webseite"
-#: contrib/flatpages/models.py:19
+#: contrib/flatpages/models.py:21
msgid "flat pages"
msgstr "Webseiten"
+#: contrib/flatpages/models.py:27
+msgid "Advanced options"
+msgstr "Erweiterte Optionen"
+
#: contrib/humanize/templatetags/humanize.py:19
msgid "th"
msgstr "."
@@ -1714,31 +1627,26 @@ msgid "yesterday"
msgstr "gestern"
#: contrib/localflavor/ar/forms.py:27
-#, fuzzy
msgid "Enter a postal code in the format NNNN or ANNNNAAA."
-msgstr ""
-"Bitte eine gültige Postleitzahl im Format NNNN oder ANNNNAAA eingeben."
+msgstr "Bitte eine gültige Postleitzahl im Format NNNN oder ANNNNAAA eingeben."
-#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
-#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/ar/forms.py:49
+#: contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135
+#: contrib/localflavor/pe/forms.py:23
#: contrib/localflavor/pe/forms.py:51
-#, fuzzy
msgid "This field requires only numbers."
msgstr "Dieses Feld darf nur Ziffern enthalten."
#: contrib/localflavor/ar/forms.py:50
-#, fuzzy
msgid "This field requires 7 or 8 digits."
msgstr "Dieses Feld benötigt 7 oder 8 Ziffern."
#: contrib/localflavor/ar/forms.py:79
-#, fuzzy
msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
-msgstr ""
-"Bitte eine gültige CUIT im Format XX-XXXXXXXX-X oder XXXXXXXXXXXX eingeben."
+msgstr "Bitte eine gültige CUIT im Format XX-XXXXXXXX-X oder XXXXXXXXXXXX eingeben."
#: contrib/localflavor/ar/forms.py:80
-#, fuzzy
msgid "Invalid CUIT."
msgstr "Ungültige CUIT."
@@ -1755,10 +1663,7 @@ msgid "Phone numbers must be in XX-XXXX-XXXX format."
msgstr "Telefonnummern müssen das Format XX-XXXX-XXXX haben."
#: contrib/localflavor/br/forms.py:58
-#, fuzzy
-msgid ""
-"Select a valid brazilian state. That state is not one of the available "
-"states."
+msgid "Select a valid brazilian state. That state is not one of the available states."
msgstr "Bitte einen gültigen brasilianischen Bundesstaat auswählen."
#: contrib/localflavor/br/forms.py:94
@@ -1766,7 +1671,6 @@ msgid "Invalid CPF number."
msgstr "Ungültige CPF-Nummer."
#: contrib/localflavor/br/forms.py:95
-#, fuzzy
msgid "This field requires at most 11 digits or 14 characters."
msgstr "Dieses Feld benötigt mindestens 11 Ziffern oder 14 Zeichen."
@@ -1775,21 +1679,16 @@ msgid "Invalid CNPJ number."
msgstr "Ungültige CNPJ-Nummer."
#: contrib/localflavor/br/forms.py:136
-#, fuzzy
msgid "This field requires at least 14 digits"
msgstr "Dieses Feld benötigt mindestens 14 Ziffern."
#: contrib/localflavor/ca/forms.py:17
-#, fuzzy
msgid "Enter a postal code in the format XXX XXX."
-msgstr "Bitte eine gültige Postleitzahl im Format XXXXX eingeben."
+msgstr "Bitte eine gültige Postleitzahl im Format XXX XXX eingeben."
#: contrib/localflavor/ca/forms.py:88
-#, fuzzy
msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
-msgstr ""
-"Bitte eine gültige kanadische Sozialversicherungsnummer im Format XXX-"
-"XXX-XXX eingeben."
+msgstr "Bitte eine gültige kanadische Sozialversicherungsnummer im Format XXX-XXX-XXX eingeben."
#: contrib/localflavor/ch/ch_states.py:5
msgid "Aargau"
@@ -1812,7 +1711,6 @@ msgid "Basel-Land"
msgstr ""
#: contrib/localflavor/ch/ch_states.py:10
-#, fuzzy
msgid "Berne"
msgstr "Bern"
@@ -1825,22 +1723,20 @@ msgid "Geneva"
msgstr "Genf"
#: contrib/localflavor/ch/ch_states.py:13
-#, fuzzy
msgid "Glarus"
-msgstr "Gruppen"
+msgstr ""
#: contrib/localflavor/ch/ch_states.py:14
msgid "Graubuenden"
-msgstr ""
+msgstr "Graubünden"
#: contrib/localflavor/ch/ch_states.py:15
msgid "Jura"
msgstr ""
#: contrib/localflavor/ch/ch_states.py:16
-#, fuzzy
msgid "Lucerne"
-msgstr "Benutzername"
+msgstr "Luzern"
#: contrib/localflavor/ch/ch_states.py:17
msgid "Neuchatel"
@@ -1871,7 +1767,6 @@ msgid "St. Gallen"
msgstr ""
#: contrib/localflavor/ch/ch_states.py:24
-#, fuzzy
msgid "Thurgau"
msgstr ""
@@ -1880,7 +1775,6 @@ msgid "Ticino"
msgstr ""
#: contrib/localflavor/ch/ch_states.py:26
-#, fuzzy
msgid "Uri"
msgstr ""
@@ -1893,41 +1787,33 @@ msgid "Vaud"
msgstr ""
#: contrib/localflavor/ch/ch_states.py:29
-#, fuzzy
msgid "Zug"
msgstr ""
#: contrib/localflavor/ch/ch_states.py:30
-#, fuzzy
msgid "Zurich"
msgstr "Zürich"
-#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12
+#: contrib/localflavor/ch/forms.py:16
+#: contrib/localflavor/no/forms.py:12
msgid "Enter a zip code in the format XXXX."
msgstr "Bitte eine gültige Postleitzahl im Format XXXX eingeben."
#: contrib/localflavor/ch/forms.py:64
-msgid ""
-"Enter a valid Swiss identity or passport card number in X1234567<0 or "
-"1234567890 format."
-msgstr ""
-"Bitte eine gültige Schweizer Identifikations- oder Reisepassnummer im Format"
-"X1234567<0 oder 1234567890 eingeben."
+msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format."
+msgstr "Bitte eine gültige Schweizer Identifikations- oder Reisepassnummer im FormatX1234567<0 oder 1234567890 eingeben."
#: contrib/localflavor/cl/forms.py:29
-#, fuzzy
msgid "Enter a valid Chilean RUT."
-msgstr "Bitte einen gültige chilenische RUT eingeben."
+msgstr "Bitte eine gültige chilenische RUT eingeben."
#: contrib/localflavor/cl/forms.py:30
-#, fuzzy
msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
msgstr "Bitte eine chilenische RUT im Format XX.XXX.XXX-X eingeben."
#: contrib/localflavor/cl/forms.py:31
-#, fuzzy
msgid "The Chilean RUT is not valid."
-msgstr "Dieses Feld ist ungültig."
+msgstr "Diese chilenische RUT ist ungültig."
#: contrib/localflavor/de/de_states.py:5
msgid "Baden-Wuerttemberg"
@@ -1993,18 +1879,15 @@ msgstr "Schleswig-Holstein"
msgid "Thuringia"
msgstr "Thüringen"
-#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/de/forms.py:14
+#: contrib/localflavor/fi/forms.py:12
#: contrib/localflavor/fr/forms.py:15
msgid "Enter a zip code in the format XXXXX."
msgstr "Bitte eine gültige Postleitzahl im Format XXXXX eingeben."
#: contrib/localflavor/de/forms.py:41
-msgid ""
-"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
-"format."
-msgstr ""
-"Bitte eine gültige deutsche Personalausweisnummer im Format XXXXXXXXXXX-"
-"XXXXXXX-XXXXXXX-X eingeben."
+msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format."
+msgstr "Bitte eine gültige deutsche Personalausweisnummer im Format XXXXXXXXXXX-XXXXXXX-XXXXXXX-X eingeben."
#: contrib/localflavor/es/es_provinces.py:5
msgid "Arava"
@@ -2023,7 +1906,6 @@ msgid "Almeria"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:9
-#, fuzzy
msgid "Avila"
msgstr ""
@@ -2036,7 +1918,6 @@ msgid "Illes Balears"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:12
-#, fuzzy
msgid "Barcelona"
msgstr ""
@@ -2077,7 +1958,6 @@ msgid "Girona"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:22
-#, fuzzy
msgid "Granada"
msgstr ""
@@ -2094,17 +1974,14 @@ msgid "Huelva"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:26
-#, fuzzy
msgid "Huesca"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:27
-#, fuzzy
msgid "Jaen"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:28
-#, fuzzy
msgid "Leon"
msgstr ""
@@ -2147,7 +2024,6 @@ msgid "Asturias"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:38
-#, fuzzy
msgid "Palencia"
msgstr ""
@@ -2169,12 +2045,10 @@ msgstr ""
#: contrib/localflavor/es/es_provinces.py:43
#: contrib/localflavor/es/es_regions.py:11
-#, fuzzy
msgid "Cantabria"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:44
-#, fuzzy
msgid "Segovia"
msgstr ""
@@ -2183,7 +2057,6 @@ msgid "Seville"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:46
-#, fuzzy
msgid "Soria"
msgstr ""
@@ -2192,7 +2065,6 @@ msgid "Tarragona"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:48
-#, fuzzy
msgid "Teruel"
msgstr ""
@@ -2201,7 +2073,6 @@ msgid "Toledo"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:50
-#, fuzzy
msgid "Valencia"
msgstr ""
@@ -2250,7 +2121,6 @@ msgid "Basque Country"
msgstr ""
#: contrib/localflavor/es/es_regions.py:10
-#, fuzzy
msgid "Canary Islands"
msgstr ""
@@ -2263,7 +2133,6 @@ msgid "Castile and Leon"
msgstr ""
#: contrib/localflavor/es/es_regions.py:14
-#, fuzzy
msgid "Catalonia"
msgstr ""
@@ -2272,7 +2141,6 @@ msgid "Extremadura"
msgstr ""
#: contrib/localflavor/es/es_regions.py:16
-#, fuzzy
msgid "Galicia"
msgstr "Galicien"
@@ -2289,27 +2157,18 @@ msgid "Valencian Community"
msgstr ""
#: contrib/localflavor/es/forms.py:19
-#, fuzzy
msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
-msgstr ""
-"Bitte eine gültige Postleitzahl im Format 01XXX bis 52XXX eingeben."
+msgstr "Bitte eine gültige Postleitzahl im Format 01XXX bis 52XXX eingeben."
#: contrib/localflavor/es/forms.py:39
-#, fuzzy
-msgid ""
-"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
-"9XXXXXXXX."
-msgstr ""
-"Bitte eine gültige Telefonnummer in einem der folgenden Formate eingeben "
-"6XXXXXXXX, 8XXXXXXXX oder 9XXXXXXXX."
+msgid "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX."
+msgstr "Bitte eine gültige Telefonnummer in einem der folgenden Formate eingeben 6XXXXXXXX, 8XXXXXXXX oder 9XXXXXXXX."
#: contrib/localflavor/es/forms.py:66
-#, fuzzy
msgid "Please enter a valid NIF, NIE, or CIF."
msgstr "Bitte eine gültige NIF, NIE oder CIF eingeben."
#: contrib/localflavor/es/forms.py:67
-#, fuzzy
msgid "Please enter a valid NIF or NIE."
msgstr "Bitte eine gültige NIF oder NIE eingeben."
@@ -2326,11 +2185,8 @@ msgid "Invalid checksum for CIF."
msgstr "Ungültige Prüfsumme für CIF."
#: contrib/localflavor/es/forms.py:142
-#, fuzzy
-msgid ""
-"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
-msgstr ""
-"Bitte eine gültige Kontonummer im Format XXXX-XXXX-XX-XXXXXXXXXX eingeben."
+msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr "Bitte eine gültige Kontonummer im Format XXXX-XXXX-XX-XXXXXXXXXX eingeben."
#: contrib/localflavor/es/forms.py:143
msgid "Invalid checksum for bank account number."
@@ -2341,41 +2197,32 @@ msgid "Enter a valid Finnish social security number."
msgstr "Bitte eine gültige finnische Sozialversicherungsnummer eingeben."
#: contrib/localflavor/in_/forms.py:14
-#, fuzzy
msgid "Enter a zip code in the format XXXXXXX."
msgstr "Bitte eine gültige Postleitzahl im Format XXXXXXX eingeben."
#: contrib/localflavor/is_/forms.py:17
-#, fuzzy
-msgid ""
-"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
-msgstr ""
-"Bitte eine gültige isländische Identifikationsnummer im Format XXXXXX-XXXX "
-"eingeben."
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Bitte eine gültige isländische Identifikationsnummer im Format XXXXXX-XXXX eingeben."
#: contrib/localflavor/is_/forms.py:18
msgid "The Icelandic identification number is not valid."
msgstr "Die isländische Identifikationsnummer ist nicht gültig."
#: contrib/localflavor/it/forms.py:14
-#, fuzzy
msgid "Enter a valid zip code."
-msgstr "Bitte eine Postleitzahl eingeben."
+msgstr "Bitte eine gültige Postleitzahl eingeben."
#: contrib/localflavor/it/forms.py:43
-#, fuzzy
msgid "Enter a valid Social Security number."
msgstr "Bitte eine gültige Sozialversicherungsnummer eingeben."
#: contrib/localflavor/it/forms.py:68
-#, fuzzy
msgid "Enter a valid VAT number."
msgstr "Bitte eine gültige Umsatzsteuernummer eingeben."
#: contrib/localflavor/jp/forms.py:17
msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
-msgstr ""
-"Bitte eine gültige Postleitzahl im Format XXXXXXX oder XXX-XXXX eingeben."
+msgstr "Bitte eine gültige Postleitzahl im Format XXXXXXX oder XXX-XXXX eingeben."
#: contrib/localflavor/jp/jp_prefectures.py:4
msgid "Hokkaido"
@@ -2578,7 +2425,6 @@ msgid "Baja California Sur"
msgstr ""
#: contrib/localflavor/mx/mx_states.py:15
-#, fuzzy
msgid "Campeche"
msgstr ""
@@ -2607,7 +2453,6 @@ msgid "Durango"
msgstr ""
#: contrib/localflavor/mx/mx_states.py:22
-#, fuzzy
msgid "Guerrero"
msgstr ""
@@ -2660,7 +2505,6 @@ msgid "Quintana Roo"
msgstr ""
#: contrib/localflavor/mx/mx_states.py:35
-#, fuzzy
msgid "Sinaloa"
msgstr ""
@@ -2697,22 +2541,18 @@ msgid "Zacatecas"
msgstr ""
#: contrib/localflavor/nl/forms.py:21
-#, fuzzy
msgid "Enter a valid postal code"
msgstr "Bitte eine gültige Postleitzahl eingeben."
#: contrib/localflavor/nl/forms.py:52
-#, fuzzy
msgid "Enter a valid phone number"
msgstr "Bitte eine gültige Telefonnummer eingeben."
#: contrib/localflavor/nl/forms.py:78
-#, fuzzy
msgid "Enter a valid SoFi number"
msgstr "Bitte eine gültige SoFi-Nummer eingeben."
#: contrib/localflavor/nl/nl_provinces.py:4
-#, fuzzy
msgid "Drente"
msgstr ""
@@ -2725,17 +2565,14 @@ msgid "Friesland"
msgstr ""
#: contrib/localflavor/nl/nl_provinces.py:7
-#, fuzzy
msgid "Gelderland"
msgstr ""
#: contrib/localflavor/nl/nl_provinces.py:8
-#, fuzzy
msgid "Groningen"
msgstr ""
#: contrib/localflavor/nl/nl_provinces.py:9
-#, fuzzy
msgid "Limburg"
msgstr ""
@@ -2752,12 +2589,10 @@ msgid "Overijssel"
msgstr ""
#: contrib/localflavor/nl/nl_provinces.py:13
-#, fuzzy
msgid "Utrecht"
msgstr ""
#: contrib/localflavor/nl/nl_provinces.py:14
-#, fuzzy
msgid "Zeeland"
msgstr ""
@@ -2770,12 +2605,10 @@ msgid "Enter a valid Norwegian social security number."
msgstr "Bitte eine gültige norwegische Sozialversicherungsnummer eingeben."
#: contrib/localflavor/pe/forms.py:24
-#, fuzzy
msgid "This field requires 8 digits."
msgstr "Dieses Feld benötigt 8 Zeichen."
#: contrib/localflavor/pe/forms.py:52
-#, fuzzy
msgid "This field requires 11 digits."
msgstr "Dieses Feld benötigt 11 Zeichen."
@@ -2788,12 +2621,8 @@ msgid "Wrong checksum for the National Identification Number."
msgstr "Falsche Prüfsumme für die nationale Identifikationsnummer."
#: contrib/localflavor/pl/forms.py:72
-#, fuzzy
-msgid ""
-"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
-msgstr ""
-"Bitte eine Steuernummer (NIP) im Format XXX-XXX-XX-XX oder XX-XX-XXX-XXX "
-"eingeben."
+msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr "Bitte eine Steuernummer (NIP) im Format XXX-XXX-XX-XX oder XX-XX-XXX-XXX eingeben."
#: contrib/localflavor/pl/forms.py:73
msgid "Wrong checksum for the Tax Number (NIP)."
@@ -2801,21 +2630,17 @@ msgstr "Falsche Prüfsumme für die Steuernummer (NIP)."
#: contrib/localflavor/pl/forms.py:112
msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
-msgstr "Nationale Geschäftsregistrierungsnummer (REGON) besteht aus 7 oder "
-"9 Zeichen."
+msgstr "Nationale Geschäftsregistrierungsnummer (REGON) besteht aus 7 oder 9 Zeichen."
#: contrib/localflavor/pl/forms.py:113
msgid "Wrong checksum for the National Business Register Number (REGON)."
-msgstr "Falsche Prüfsumme für die nationale Geschäftsregistrierungsnummer "
-"(REGON)."
+msgstr "Falsche Prüfsumme für die nationale Geschäftsregistrierungsnummer (REGON)."
#: contrib/localflavor/pl/forms.py:156
-#, fuzzy
msgid "Enter a postal code in the format XX-XXX."
msgstr "Bitte eine gültige Postleitzahl im Format XX-XXX eingeben."
#: contrib/localflavor/pl/pl_voivodeships.py:8
-#, fuzzy
msgid "Lower Silesia"
msgstr ""
@@ -2844,7 +2669,6 @@ msgid "Masovia"
msgstr ""
#: contrib/localflavor/pl/pl_voivodeships.py:15
-#, fuzzy
msgid "Opole"
msgstr ""
@@ -2857,12 +2681,10 @@ msgid "Podlasie"
msgstr ""
#: contrib/localflavor/pl/pl_voivodeships.py:18
-#, fuzzy
msgid "Pomerania"
msgstr ""
#: contrib/localflavor/pl/pl_voivodeships.py:19
-#, fuzzy
msgid "Silesia"
msgstr ""
@@ -2879,15 +2701,12 @@ msgid "Greater Poland"
msgstr ""
#: contrib/localflavor/pl/pl_voivodeships.py:23
-#, fuzzy
msgid "West Pomerania"
msgstr ""
#: contrib/localflavor/sk/forms.py:30
-#, fuzzy
msgid "Enter a postal code in the format XXXXX or XXX XX."
-msgstr ""
-"Bitte eine gültige Postleitzahl im Format XXXXX oder XXX XX eingeben."
+msgstr "Bitte eine gültige Postleitzahl im Format XXXXX oder XXX XX eingeben."
#: contrib/localflavor/sk/sk_districts.py:8
msgid "Banska Bystrica"
@@ -2906,7 +2725,6 @@ msgid "Banovce nad Bebravou"
msgstr ""
#: contrib/localflavor/sk/sk_districts.py:12
-#, fuzzy
msgid "Brezno"
msgstr ""
@@ -2951,12 +2769,10 @@ msgid "Dunajska Streda"
msgstr ""
#: contrib/localflavor/sk/sk_districts.py:23
-#, fuzzy
msgid "Galanta"
msgstr ""
#: contrib/localflavor/sk/sk_districts.py:24
-#, fuzzy
msgid "Gelnica"
msgstr ""
@@ -2977,7 +2793,6 @@ msgid "Kezmarok"
msgstr ""
#: contrib/localflavor/sk/sk_districts.py:29
-#, fuzzy
msgid "Komarno"
msgstr ""
@@ -3026,12 +2841,10 @@ msgid "Lucenec"
msgstr ""
#: contrib/localflavor/sk/sk_districts.py:41
-#, fuzzy
msgid "Malacky"
msgstr ""
#: contrib/localflavor/sk/sk_districts.py:42
-#, fuzzy
msgid "Martin"
msgstr ""
@@ -3072,7 +2885,6 @@ msgid "Pezinok"
msgstr ""
#: contrib/localflavor/sk/sk_districts.py:52
-#, fuzzy
msgid "Piestany"
msgstr ""
@@ -3117,7 +2929,6 @@ msgid "Ruzomberok"
msgstr ""
#: contrib/localflavor/sk/sk_districts.py:63
-#, fuzzy
msgid "Sabinov"
msgstr ""
@@ -3126,17 +2937,14 @@ msgid "Senec"
msgstr ""
#: contrib/localflavor/sk/sk_districts.py:65
-#, fuzzy
msgid "Senica"
msgstr ""
#: contrib/localflavor/sk/sk_districts.py:66
-#, fuzzy
msgid "Skalica"
msgstr ""
#: contrib/localflavor/sk/sk_districts.py:67
-#, fuzzy
msgid "Snina"
msgstr ""
@@ -3161,7 +2969,6 @@ msgid "Svidnik"
msgstr ""
#: contrib/localflavor/sk/sk_districts.py:73
-#, fuzzy
msgid "Sala"
msgstr ""
@@ -3174,7 +2981,6 @@ msgid "Trebisov"
msgstr ""
#: contrib/localflavor/sk/sk_districts.py:76
-#, fuzzy
msgid "Trencin"
msgstr ""
@@ -3251,7 +3057,6 @@ msgid "Zilina region"
msgstr ""
#: contrib/localflavor/uk/forms.py:21
-#, fuzzy
msgid "Enter a valid postcode."
msgstr "Bitte eine gültige Postleitzahl eingeben."
@@ -3280,7 +3085,6 @@ msgid "Derbyshire"
msgstr ""
#: contrib/localflavor/uk/uk_regions.py:18
-#, fuzzy
msgid "Devon"
msgstr ""
@@ -3321,7 +3125,6 @@ msgid "Hertfordshire"
msgstr ""
#: contrib/localflavor/uk/uk_regions.py:28
-#, fuzzy
msgid "Kent"
msgstr ""
@@ -3386,9 +3189,8 @@ msgid "Suffolk"
msgstr ""
#: contrib/localflavor/uk/uk_regions.py:44
-#, fuzzy
msgid "Surrey"
-msgstr "Derzeit:"
+msgstr ""
#: contrib/localflavor/uk/uk_regions.py:45
msgid "Tyne and Wear"
@@ -3475,7 +3277,6 @@ msgid "West Glamorgan"
msgstr ""
#: contrib/localflavor/uk/uk_regions.py:75
-#, fuzzy
msgid "Borders"
msgstr ""
@@ -3488,12 +3289,10 @@ msgid "Dumfries and Galloway"
msgstr ""
#: contrib/localflavor/uk/uk_regions.py:78
-#, fuzzy
msgid "Fife"
msgstr ""
#: contrib/localflavor/uk/uk_regions.py:79
-#, fuzzy
msgid "Grampian"
msgstr ""
@@ -3502,7 +3301,6 @@ msgid "Highland"
msgstr ""
#: contrib/localflavor/uk/uk_regions.py:81
-#, fuzzy
msgid "Lothian"
msgstr ""
@@ -3527,7 +3325,6 @@ msgid "Western Isles"
msgstr ""
#: contrib/localflavor/uk/uk_regions.py:90
-#, fuzzy
msgid "England"
msgstr "England"
@@ -3536,48 +3333,38 @@ msgid "Northern Ireland"
msgstr "Nordirland"
#: contrib/localflavor/uk/uk_regions.py:92
-#, fuzzy
msgid "Scotland"
msgstr "Schottland"
#: contrib/localflavor/uk/uk_regions.py:93
-#, fuzzy
msgid "Wales"
-msgstr "Wales"
+msgstr ""
#: contrib/localflavor/us/forms.py:16
msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
-msgstr ""
-"Bitte eine gültige Postleitzahl im Format XXXXX oder XXXXX-XXXX eingeben."
+msgstr "Bitte eine gültige Postleitzahl im Format XXXXX oder XXXXX-XXXX eingeben."
#: contrib/localflavor/us/forms.py:54
msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
-msgstr ""
-"Bitte eine gültige US-amerikanische Sozialversicherungsnummer im Format XXX-"
-"XX-XXXX eingeben."
+msgstr "Bitte eine gültige US-amerikanische Sozialversicherungsnummer im Format XXX-XX-XXXX eingeben."
#: contrib/localflavor/za/forms.py:20
-#, fuzzy
msgid "Enter a valid South African ID number"
-msgstr "Bitte eine gültige südafrikanische Sozialversicherungsnummer eingeben."
+msgstr "Bitte eine gültige südafrikanische Identifikationsnummer eingeben."
#: contrib/localflavor/za/forms.py:54
-#, fuzzy
msgid "Enter a valid South African postal code"
msgstr "Bitte eine gültige südafrikanische Postleitzahl eingeben."
#: contrib/localflavor/za/za_provinces.py:4
-#, fuzzy
msgid "Eastern Cape"
msgstr ""
#: contrib/localflavor/za/za_provinces.py:5
-#, fuzzy
msgid "Free State"
msgstr ""
#: contrib/localflavor/za/za_provinces.py:6
-#, fuzzy
msgid "Gauteng"
msgstr ""
@@ -3598,12 +3385,10 @@ msgid "Northern Cape"
msgstr ""
#: contrib/localflavor/za/za_provinces.py:11
-#, fuzzy
msgid "North West"
msgstr ""
#: contrib/localflavor/za/za_provinces.py:12
-#, fuzzy
msgid "Western Cape"
msgstr ""
@@ -3612,24 +3397,16 @@ msgid "redirect from"
msgstr "Umleitung von"
#: contrib/redirects/models.py:8
-msgid ""
-"This should be an absolute path, excluding the domain name. Example: '/"
-"events/search/'."
-msgstr ""
-"Hier sollte ein absoluter Pfad stehen, ohne den Domainnamen. Beispiel: '/"
-"events/search/'."
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
+msgstr "Hier sollte ein absoluter Pfad stehen, ohne den Domainnamen. Beispiel: '/events/search/'."
#: contrib/redirects/models.py:9
msgid "redirect to"
msgstr "Umleitung zu"
#: contrib/redirects/models.py:10
-msgid ""
-"This can be either an absolute path (as above) or a full URL starting with "
-"'http://'."
-msgstr ""
-"Hier muss entweder ein absoluter Pfad oder eine komplette URL mit http:// am "
-"Anfang stehen."
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
+msgstr "Hier muss entweder ein absoluter Pfad oder eine komplette URL mit http:// am Anfang stehen."
#: contrib/redirects/models.py:13
msgid "redirect"
@@ -3639,23 +3416,23 @@ msgstr "Umleitung"
msgid "redirects"
msgstr "Umleitungen"
-#: contrib/sessions/models.py:41
+#: contrib/sessions/models.py:45
msgid "session key"
msgstr "Sitzungs-ID"
-#: contrib/sessions/models.py:42
+#: contrib/sessions/models.py:47
msgid "session data"
msgstr "Sitzungsdaten"
-#: contrib/sessions/models.py:43
+#: contrib/sessions/models.py:48
msgid "expire date"
msgstr "Verfallsdatum"
-#: contrib/sessions/models.py:48
+#: contrib/sessions/models.py:53
msgid "session"
msgstr "Sitzung"
-#: contrib/sessions/models.py:49
+#: contrib/sessions/models.py:54
msgid "sessions"
msgstr "Sitzungen"
@@ -3680,18 +3457,12 @@ msgid "This value must contain only letters, numbers and underscores."
msgstr "Dieser Wert darf nur Buchstaben, Ziffern und Unterstriche enthalten."
#: core/validators.py:76
-msgid ""
-"This value must contain only letters, numbers, underscores, dashes or "
-"slashes."
-msgstr ""
-"Dieser Wert darf nur Buchstaben, Ziffern, Unterstriche und Schrägstriche "
-"enthalten."
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "Dieser Wert darf nur Buchstaben, Ziffern, Unterstriche und Schrägstriche enthalten."
#: core/validators.py:80
msgid "This value must contain only letters, numbers, underscores or hyphens."
-msgstr ""
-"Dieser Wert darf nur Buchstaben, Ziffern, Unterstriche und Bindestriche "
-"enthalten."
+msgstr "Dieser Wert darf nur Buchstaben, Ziffern, Unterstriche und Bindestriche enthalten."
#: core/validators.py:84
msgid "Uppercase letters are not allowed here."
@@ -3725,7 +3496,8 @@ msgstr "Nichtnumerische Zeichen sind hier nicht erlaubt."
msgid "This value can't be comprised solely of digits."
msgstr "Dieser Wert darf nicht nur aus Ziffern bestehen."
-#: core/validators.py:128 newforms/fields.py:151
+#: core/validators.py:128
+#: newforms/fields.py:152
msgid "Enter a whole number."
msgstr "Bitte eine ganze Zahl eingeben."
@@ -3742,7 +3514,8 @@ msgstr "Das Jahr muss 1900 oder später sein."
msgid "Invalid date: %s"
msgstr "Ungültiges Datum: %s"
-#: core/validators.py:156 db/models/fields/__init__.py:527
+#: core/validators.py:156
+#: db/models/fields/__init__.py:548
msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "Bitte ein gültiges Datum im Format JJJJ-MM-TT eingeben."
@@ -3750,29 +3523,27 @@ msgstr "Bitte ein gültiges Datum im Format JJJJ-MM-TT eingeben."
msgid "Enter a valid time in HH:MM format."
msgstr "Bitte eine gültige Zeit im Format SS:MM eingeben."
-#: core/validators.py:165 db/models/fields/__init__.py:604
+#: core/validators.py:165
+#: db/models/fields/__init__.py:625
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
-msgstr ""
-"Bitte eine gültige Datums- und Zeitangabe im Format JJJJ-MM-TT SS:MM "
-"eingeben."
+msgstr "Bitte eine gültige Datums- und Zeitangabe im Format JJJJ-MM-TT SS:MM eingeben."
-#: core/validators.py:170 newforms/fields.py:402
+#: core/validators.py:170
+#: newforms/fields.py:403
msgid "Enter a valid e-mail address."
msgstr "Bitte eine gültige E-Mail-Adresse eingeben."
-#: core/validators.py:182 core/validators.py:474 newforms/fields.py:432
+#: core/validators.py:182
+#: core/validators.py:474
+#: newforms/fields.py:433
#: oldforms/__init__.py:687
msgid "No file was submitted. Check the encoding type on the form."
-msgstr ""
-"Es wurde keine Datei übermittelt. Eventuell ist das Formular-Encoding falsch."
+msgstr "Es wurde keine Datei übermittelt. Eventuell ist das Formular-Encoding falsch."
-#: core/validators.py:193 newforms/fields.py:458
-msgid ""
-"Upload a valid image. The file you uploaded was either not an image or a "
-"corrupted image."
-msgstr ""
-"Bitte ein Bild hochladen. Die hochgeladene Datei ist kein Bild, oder ist "
-"defekt."
+#: core/validators.py:193
+#: newforms/fields.py:459
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "Bitte ein Bild hochladen. Die hochgeladene Datei ist kein Bild, oder ist defekt."
#: core/validators.py:200
#, python-format
@@ -3782,8 +3553,7 @@ msgstr "Die URL %s zeigt nicht auf ein gültiges Bild."
#: core/validators.py:204
#, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
-msgstr ""
-"Telefonnummern müssen das Format XXX-XXX-XXXX haben. \"%s\" ist ungültig."
+msgstr "Telefonnummern müssen das Format XXX-XXX-XXXX haben. \"%s\" ist ungültig."
#: core/validators.py:212
#, python-format
@@ -3813,7 +3583,8 @@ msgstr "Ungültiges XML: %s"
msgid "Invalid URL: %s"
msgstr "Ungültige URL: %s"
-#: core/validators.py:259 core/validators.py:261
+#: core/validators.py:259
+#: core/validators.py:261
#, python-format
msgid "The URL %s is a broken link."
msgstr "Die URL %s funktioniert nicht."
@@ -3838,21 +3609,20 @@ msgstr "Dieses Feld muss zum Feld '%s' passen."
msgid "Please enter something for at least one field."
msgstr "Bitte mindestens eines der Felder ausfüllen."
-#: core/validators.py:316 core/validators.py:327
+#: core/validators.py:316
+#: core/validators.py:327
msgid "Please enter both fields or leave them both empty."
msgstr "Bitte entweder beide Felder ausfüllen, oder beide leer lassen."
#: core/validators.py:335
#, python-format
msgid "This field must be given if %(field)s is %(value)s"
-msgstr ""
-"Dieses Feld muss gefüllt sein, wenn Feld %(field)s den Wert %(value)s hat."
+msgstr "Dieses Feld muss gefüllt sein, wenn Feld %(field)s den Wert %(value)s hat."
#: core/validators.py:348
#, python-format
msgid "This field must be given if %(field)s is not %(value)s"
-msgstr ""
-"Dieses Feld muss gefüllt sein, wenn Feld %(field)s nicht %(value)s ist."
+msgstr "Dieses Feld muss gefüllt sein, wenn Feld %(field)s nicht %(value)s ist."
#: core/validators.py:367
msgid "Duplicate values are not allowed."
@@ -3885,33 +3655,23 @@ msgstr "Bitte eine gültige Dezimalzahl eingeben."
#: core/validators.py:444
#, python-format
msgid "Please enter a valid decimal number with at most %s total digit."
-msgid_plural ""
-"Please enter a valid decimal number with at most %s total digits."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
msgstr[0] "Bitte eine gültige Dezimalzahl mit maximal %s Ziffer eingeben."
msgstr[1] "Bitte eine gültige Dezimalzahl mit maximal %s Ziffern eingeben."
#: core/validators.py:447
#, python-format
-msgid ""
-"Please enter a valid decimal number with a whole part of at most %s digit."
-msgid_plural ""
-"Please enter a valid decimal number with a whole part of at most %s digits."
-msgstr[0] ""
-"Bitte eine gültige Dezimalzahl mit einer Gesamtzahl von maximal %s Ziffer "
-"eingeben."
-msgstr[1] ""
-"Bitte eine gültige Dezimalzahl mit einer Gesamtzahl von maximal %s Ziffern "
-"eingeben."
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Bitte eine gültige Dezimalzahl mit einer Gesamtzahl von maximal %s Ziffer eingeben."
+msgstr[1] "Bitte eine gültige Dezimalzahl mit einer Gesamtzahl von maximal %s Ziffern eingeben."
#: core/validators.py:450
#, python-format
msgid "Please enter a valid decimal number with at most %s decimal place."
-msgid_plural ""
-"Please enter a valid decimal number with at most %s decimal places."
-msgstr[0] ""
-"Bitte eine gültige Dezimalzahl mit maximal %s Dezimalstelle eingeben."
-msgstr[1] ""
-"Bitte eine gültige Dezimalzahl mit maximal %s Dezimalstellen eingeben."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Bitte eine gültige Dezimalzahl mit maximal %s Dezimalstelle eingeben."
+msgstr[1] "Bitte eine gültige Dezimalzahl mit maximal %s Dezimalstellen eingeben."
#: core/validators.py:458
msgid "Please enter a valid floating point number."
@@ -3920,15 +3680,12 @@ msgstr "Bitte eine gültige Dezimalzahl eingeben."
#: core/validators.py:467
#, python-format
msgid "Make sure your uploaded file is at least %s bytes big."
-msgstr ""
-"Bitte sicherstellen, dass die hochgeladene Datei mindestens %s Bytes groß "
-"ist."
+msgstr "Bitte sicherstellen, dass die hochgeladene Datei mindestens %s Bytes groß ist."
#: core/validators.py:468
#, python-format
msgid "Make sure your uploaded file is at most %s bytes big."
-msgstr ""
-"Bitte sicherstellen, dass die hochgeladene Datei maximal %s Bytes groß ist."
+msgstr "Bitte sicherstellen, dass die hochgeladene Datei maximal %s Bytes groß ist."
#: core/validators.py:485
msgid "The format for this field is wrong."
@@ -3945,226 +3702,202 @@ msgstr "Konnte nichts von %s empfangen."
#: core/validators.py:539
#, python-format
-msgid ""
-"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
msgstr "Die URL %(url)s lieferte den falschen Content-Type '%(contenttype)s'."
#: core/validators.py:572
#, python-format
-msgid ""
-"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
-"\"%(start)s\".)"
-msgstr ""
-"Bitte das ungeschlossene %(tag)s Tag in Zeile %(line)s schließen. Die Zeile "
-"beginnt mit \"%(start)s\"."
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "Bitte das ungeschlossene %(tag)s Tag in Zeile %(line)s schließen. Die Zeile beginnt mit \"%(start)s\"."
#: core/validators.py:576
#, python-format
-msgid ""
-"Some text starting on line %(line)s is not allowed in that context. (Line "
-"starts with \"%(start)s\".)"
-msgstr ""
-"In Zeile %(line)s ist Text, der nicht in dem Kontext erlaubt ist. Die Zeile "
-"beginnt mit \"%(start)s\"."
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr "In Zeile %(line)s ist Text, der nicht in dem Kontext erlaubt ist. Die Zeile beginnt mit \"%(start)s\"."
#: core/validators.py:581
#, python-format
-msgid ""
-"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
-"(start)s\".)"
-msgstr ""
-"Das Attribute %(attr)s in Zeile %(line)s ist ungültig. Die Zeile beginnt mit "
-"\"%(start)s\"."
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr "Das Attribute %(attr)s in Zeile %(line)s ist ungültig. Die Zeile beginnt mit \"%(start)s\"."
#: core/validators.py:586
#, python-format
-msgid ""
-"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
-"(start)s\".)"
-msgstr ""
-"<%(tag)s> in Zeile %(line)s ist ungültig. Die Zeile beginnt mit \"%(start)s"
-"\"."
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr "<%(tag)s> in Zeile %(line)s ist ungültig. Die Zeile beginnt mit \"%(start)s\"."
#: core/validators.py:590
#, python-format
-msgid ""
-"A tag on line %(line)s is missing one or more required attributes. (Line "
-"starts with \"%(start)s\".)"
-msgstr ""
-"Ein Tag in Zeile %(line)s hat eines oder mehrere Pflichtattribute nicht. Die "
-"Zeile beginnt mit \"%(start)s\"."
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr "Ein Tag in Zeile %(line)s hat eines oder mehrere Pflichtattribute nicht. Die Zeile beginnt mit \"%(start)s\"."
#: core/validators.py:595
#, python-format
-msgid ""
-"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
-"starts with \"%(start)s\".)"
-msgstr ""
-"Das Attribut %(attr)s in Zeile %(line)s hat einen ungültigen Wert. Die Zeile "
-"beginnt mit \"%(start)s\"."
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr "Das Attribut %(attr)s in Zeile %(line)s hat einen ungültigen Wert. Die Zeile beginnt mit \"%(start)s\"."
#: db/models/manipulators.py:308
#, python-format
msgid "%(object)s with this %(type)s already exists for the given %(field)s."
-msgstr ""
-"Ein '%(object)s' in dieser '%(type)s' existiert bereits für dieses '%(field)"
-"s'."
+msgstr "Ein '%(object)s' in dieser '%(type)s' existiert bereits für dieses '%(field)s'."
-#: db/models/fields/__init__.py:52
+#: db/models/fields/__init__.py:51
#, python-format
msgid "%(optname)s with this %(fieldname)s already exists."
msgstr "Ein '%(optname)s' mit diesem '%(fieldname)s' existiert bereits."
-#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:327
-#: db/models/fields/__init__.py:759 db/models/fields/__init__.py:770
-#: newforms/fields.py:45 oldforms/__init__.py:374
+#: db/models/fields/__init__.py:176
+#: db/models/fields/__init__.py:348
+#: db/models/fields/__init__.py:780
+#: db/models/fields/__init__.py:791
+#: newforms/fields.py:46
+#: oldforms/__init__.py:374
msgid "This field is required."
msgstr "Dieses Feld ist zwingend erforderlich."
-#: db/models/fields/__init__.py:427
+#: db/models/fields/__init__.py:448
msgid "This value must be an integer."
msgstr "Dieser Wert muss eine Ganzzahl sein."
-#: db/models/fields/__init__.py:466
+#: db/models/fields/__init__.py:487
msgid "This value must be either True or False."
msgstr "Dieser Wert muss wahr oder falsch sein."
-#: db/models/fields/__init__.py:490
+#: db/models/fields/__init__.py:511
msgid "This field cannot be null."
msgstr "Dieses Feld darf nicht leer sein."
-#: db/models/fields/__init__.py:668
+#: db/models/fields/__init__.py:689
msgid "This value must be a decimal number."
msgstr "Dieser Wert muss eine Ganzzahl sein."
-#: db/models/fields/__init__.py:779
+#: db/models/fields/__init__.py:800
msgid "Enter a valid filename."
msgstr "Bitte einen gültigen Dateinamen eingeben."
-#: db/models/fields/__init__.py:950
+#: db/models/fields/__init__.py:981
msgid "This value must be either None, True or False."
msgstr "Dieser Wert muss None, True oder False sein."
-#: db/models/fields/related.py:93
+#: db/models/fields/related.py:94
#, python-format
msgid "Please enter a valid %s."
msgstr "Bitte ein gültiges '%s' eingeben."
-#: db/models/fields/related.py:694
+#: db/models/fields/related.py:746
msgid "Separate multiple IDs with commas."
msgstr "Mehrere IDs können mit Komma getrennt werden."
-#: db/models/fields/related.py:696
-msgid ""
-"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
-msgstr ""
-"Um mehr als eine Selektion zu treffen, \"Strg\", oder auf dem Mac \"Command"
-"\", beim Klicken gedrückt halten."
+#: db/models/fields/related.py:748
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Um mehr als eine Selektion zu treffen, \"Strg\", oder auf dem Mac \"Command\", beim Klicken gedrückt halten."
-#: db/models/fields/related.py:743
+#: db/models/fields/related.py:795
#, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
-msgid_plural ""
-"Please enter valid %(self)s IDs. The values %(value)r are invalid."
-msgstr[0] ""
-"Bitte gültige IDs für %(self)s eingeben. Der Wert %(value)r ist ungültig."
-msgstr[1] ""
-"Bitte gültige IDs für %(self)s eingeben. Die Werte %(value)r sind ungültig."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Bitte gültige IDs für %(self)s eingeben. Der Wert %(value)r ist ungültig."
+msgstr[1] "Bitte gültige IDs für %(self)s eingeben. Die Werte %(value)r sind ungültig."
-#: newforms/fields.py:46
+#: newforms/fields.py:47
msgid "Enter a valid value."
msgstr "Bitte einen gültigen Wert eingeben."
-#: newforms/fields.py:123
-#, python-format
-msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
-msgstr ""
-"Bitte sicherstellen, dass der Text maximal %(max)d Zeichen hat. (Er hat %"
-"(length)d)."
-
#: newforms/fields.py:124
#, python-format
-msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
-msgstr ""
-"Bitte sicherstellen, dass der Text wenigstens %(min)d Zeichen hat. (Er hat %"
-"(length)d.)"
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Bitte sicherstellen, dass der Text maximal %(max)d Zeichen hat. (Er hat %(length)d)."
-#: newforms/fields.py:152 newforms/fields.py:181 newforms/fields.py:210
+#: newforms/fields.py:125
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Bitte sicherstellen, dass der Text wenigstens %(min)d Zeichen hat. (Er hat %(length)d.)"
+
+#: newforms/fields.py:153
+#: newforms/fields.py:182
+#: newforms/fields.py:211
#, python-format
msgid "Ensure this value is less than or equal to %s."
msgstr "Dieser Wert darf maximal %s sein."
-#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211
+#: newforms/fields.py:154
+#: newforms/fields.py:183
+#: newforms/fields.py:212
#, python-format
msgid "Ensure this value is greater than or equal to %s."
msgstr "Dieser Wert muss größer oder gleich %s sein."
-#: newforms/fields.py:180 newforms/fields.py:209
+#: newforms/fields.py:181
+#: newforms/fields.py:210
msgid "Enter a number."
msgstr "Bitte eine Zahl eingeben."
-#: newforms/fields.py:212
+#: newforms/fields.py:213
#, python-format
msgid "Ensure that there are no more than %s digits in total."
msgstr "Bitte geben Sie nicht mehr als insgesamt %s Ziffern ein."
-#: newforms/fields.py:213
+#: newforms/fields.py:214
#, python-format
msgid "Ensure that there are no more than %s decimal places."
msgstr "Bitte geben Sie nicht mehr als %s Dezimalstellen ein."
-#: newforms/fields.py:214
+#: newforms/fields.py:215
#, python-format
msgid "Ensure that there are no more than %s digits before the decimal point."
msgstr "Bitte geben Sie nicht mehr als %s Ziffern vor dem Komma ein."
-#: newforms/fields.py:262 newforms/fields.py:723
+#: newforms/fields.py:263
+#: newforms/fields.py:750
msgid "Enter a valid date."
msgstr "Bitte ein gültiges Datum eingeben."
-#: newforms/fields.py:295 newforms/fields.py:724
+#: newforms/fields.py:296
+#: newforms/fields.py:751
msgid "Enter a valid time."
msgstr "Bitte eine gültige Uhrzeit eingeben."
-#: newforms/fields.py:334
+#: newforms/fields.py:335
msgid "Enter a valid date/time."
msgstr "Bitte gültiges Datum und Uhrzeit eingeben."
-#: newforms/fields.py:433
+#: newforms/fields.py:434
msgid "No file was submitted."
msgstr "Es wurde keine Datei übertragen."
-#: newforms/fields.py:434 oldforms/__init__.py:689
+#: newforms/fields.py:435
+#: oldforms/__init__.py:689
msgid "The submitted file is empty."
msgstr "Die ausgewählte Datei ist leer."
-#: newforms/fields.py:496
+#: newforms/fields.py:497
msgid "Enter a valid URL."
msgstr "Bitte eine gültige Adresse eingeben."
-#: newforms/fields.py:497
+#: newforms/fields.py:498
msgid "This URL appears to be a broken link."
msgstr "Diese Adresse scheint nicht gültig zu sein."
-#: newforms/fields.py:559 newforms/models.py:300
+#: newforms/fields.py:559
+#: newforms/models.py:305
msgid "Select a valid choice. That choice is not one of the available choices."
msgstr "Bitte eine gültige Auswahl treffen."
#: newforms/fields.py:598
#, python-format
msgid "Select a valid choice. %(value)s is not one of the available choices."
-msgstr ""
-"Bitte eine gültige Auswahl treffen. %(value)s ist keine gültige Auswahl."
+msgstr "Bitte eine gültige Auswahl treffen. %(value)s ist keine gültige Auswahl."
-#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:360
+#: newforms/fields.py:599
+#: newforms/fields.py:661
+#: newforms/models.py:372
msgid "Enter a list of values."
msgstr "Eine Liste mit Werten eingeben."
-#: newforms/fields.py:752
+#: newforms/fields.py:779
msgid "Enter a valid IPv4 address."
msgstr "Bitte eine gültige IPv4-Adresse eingeben."
-#: newforms/models.py:361
+#: newforms/models.py:373
#, python-format
msgid "Select a valid choice. %s is not one of the available choices."
msgstr "Bitte eine gültige Auswahl treffen. %s ist keine gültige Auswahl."
@@ -4180,11 +3913,12 @@ msgstr[1] "Bitte sicherstellen, dass der Text weniger als %s Zeichen hat."
msgid "Line breaks are not allowed here."
msgstr "Zeilenumbrüche sind hier nicht erlaubt."
-#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625
+#: oldforms/__init__.py:512
+#: oldforms/__init__.py:586
+#: oldforms/__init__.py:625
#, python-format
msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
-msgstr ""
-"Bitte eine gültige Auswahl treffen; '%(data)s' ist nicht in %(choices)s."
+msgstr "Bitte eine gültige Auswahl treffen; '%(data)s' ist nicht in %(choices)s."
#: oldforms/__init__.py:745
msgid "Enter a whole number between -32,768 and 32,767."
@@ -4198,28 +3932,28 @@ msgstr "Bitte eine ganze, positive Zahl eingeben."
msgid "Enter a whole number between 0 and 32,767."
msgstr "Bitte eine ganze Zahl zwischen 0 und 32.767 eingeben."
-#: template/defaultfilters.py:695
+#: template/defaultfilters.py:698
msgid "yes,no,maybe"
msgstr "Ja,Nein,Vielleicht"
-#: template/defaultfilters.py:726
+#: template/defaultfilters.py:729
#, python-format
msgid "%(size)d byte"
msgid_plural "%(size)d bytes"
msgstr[0] "%(size)d Byte"
msgstr[1] "%(size)d Bytes"
-#: template/defaultfilters.py:728
+#: template/defaultfilters.py:731
#, python-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: template/defaultfilters.py:730
+#: template/defaultfilters.py:733
#, python-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: template/defaultfilters.py:731
+#: template/defaultfilters.py:734
#, python-format
msgid "%.1f GB"
msgstr "%.1f GB"
@@ -4312,23 +4046,28 @@ msgstr "Januar"
msgid "February"
msgstr "Februar"
-#: utils/dates.py:18 utils/dates.py:31
+#: utils/dates.py:18
+#: utils/dates.py:31
msgid "March"
msgstr "März"
-#: utils/dates.py:18 utils/dates.py:31
+#: utils/dates.py:18
+#: utils/dates.py:31
msgid "April"
msgstr "April"
-#: utils/dates.py:18 utils/dates.py:31
+#: utils/dates.py:18
+#: utils/dates.py:31
msgid "May"
msgstr "Mai"
-#: utils/dates.py:18 utils/dates.py:31
+#: utils/dates.py:18
+#: utils/dates.py:31
msgid "June"
msgstr "Juni"
-#: utils/dates.py:19 utils/dates.py:31
+#: utils/dates.py:19
+#: utils/dates.py:31
msgid "July"
msgstr "Juli"
@@ -4516,3 +4255,4 @@ msgstr "%(verbose_name)s wurde erfolgreich aktualisiert."
#, python-format
msgid "The %(verbose_name)s was deleted."
msgstr "%(verbose_name)s wurde gelöscht"
+
diff --git a/django/conf/locale/de/LC_MESSAGES/djangojs.mo b/django/conf/locale/de/LC_MESSAGES/djangojs.mo
index 55f527318a..fcf656818d 100644
Binary files a/django/conf/locale/de/LC_MESSAGES/djangojs.mo and b/django/conf/locale/de/LC_MESSAGES/djangojs.mo differ
diff --git a/django/conf/locale/de/LC_MESSAGES/djangojs.po b/django/conf/locale/de/LC_MESSAGES/djangojs.po
index 6e0daaca91..965759f91c 100644
--- a/django/conf/locale/de/LC_MESSAGES/djangojs.po
+++ b/django/conf/locale/de/LC_MESSAGES/djangojs.po
@@ -7,12 +7,13 @@ msgid ""
msgstr ""
"Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-12-09 11:51+0100\n"
-"PO-Revision-Date: 2005-12-04 13:21+0100\n"
-"Last-Translator: Dirk Eschler \n"
+"POT-Creation-Date: 2008-06-23 20:52+0200\n"
+"PO-Revision-Date: 2008-06-23 21:02+0100\n"
+"Last-Translator: Jannis Leidel \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language-Team: \n"
#: contrib/admin/media/js/SelectFilter2.js:33
#, perl-format
@@ -38,82 +39,78 @@ msgstr "Ausgewählte %s"
#: contrib/admin/media/js/SelectFilter2.js:54
msgid "Select your choice(s) and click "
-msgstr "Gewünschte Auswahl treffen und "
+msgstr "Auswahl treffen und Klick auf"
#: contrib/admin/media/js/SelectFilter2.js:59
msgid "Clear all"
msgstr "Alles abwählen"
-#: contrib/admin/media/js/dateparse.js:26
#: contrib/admin/media/js/calendar.js:24
-msgid ""
-"January February March April May June July August September October November "
-"December"
-msgstr ""
-"Januar Februar März April Mai Juni Juli August September Oktober November "
-"Dezember"
-
-#: contrib/admin/media/js/dateparse.js:27
-msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
-msgstr "Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag"
+#: contrib/admin/media/js/dateparse.js:32
+msgid "January February March April May June July August September October November December"
+msgstr "Januar Februar März April Mai Juni Juli August September Oktober November Dezember"
#: contrib/admin/media/js/calendar.js:25
msgid "S M T W T F S"
msgstr "S M D M D F S"
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
-msgid "Now"
-msgstr "Jetzt"
-
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
-msgid "Clock"
-msgstr "Uhr"
-
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
-msgid "Choose a time"
-msgstr "Uhrzeit"
-
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
-msgid "Midnight"
-msgstr "Mitternacht"
-
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
-msgid "6 a.m."
-msgstr "6 Uhr"
-
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
-msgid "Noon"
-msgstr "Mittag"
-
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
-msgid "Today"
-msgstr "Heute"
-
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
-msgid "Calendar"
-msgstr "Kalender"
-
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
-msgid "Yesterday"
-msgstr "Gestern"
-
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
-msgid "Tomorrow"
-msgstr "Morgen"
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag"
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
msgid "Show"
-msgstr "Anzeigen"
+msgstr "Einblenden"
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
msgid "Hide"
-msgstr "Verbergen"
+msgstr "Ausblenden"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Jetzt"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Uhr"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Uhrzeit"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Mitternacht"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 Uhr"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Mittag"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Heute"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalender"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Gestern"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Morgen"
diff --git a/django/conf/locale/es/LC_MESSAGES/django.mo b/django/conf/locale/es/LC_MESSAGES/django.mo
index f07a280c14..a2fd2f77db 100644
Binary files a/django/conf/locale/es/LC_MESSAGES/django.mo and b/django/conf/locale/es/LC_MESSAGES/django.mo differ
diff --git a/django/conf/locale/es/LC_MESSAGES/django.po b/django/conf/locale/es/LC_MESSAGES/django.po
index db86ac3b53..b665fcf9a6 100644
--- a/django/conf/locale/es/LC_MESSAGES/django.po
+++ b/django/conf/locale/es/LC_MESSAGES/django.po
@@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-06-13 16:14+0200\n"
-"PO-Revision-Date: 2008-03-30 01:04+0100\n"
+"PO-Revision-Date: 2008-06-18 22:45+0200\n"
"Last-Translator: Django Spanish Translation Team \n"
"Language-Team: Django Spanish Translation Team \n"
"MIME-Version: 1.0\n"
@@ -16,191 +16,191 @@ msgstr ""
#: conf/global_settings.py:44
msgid "Arabic"
-msgstr "Árabe"
+msgstr "árabe"
#: conf/global_settings.py:45
msgid "Bengali"
-msgstr "Bengalí"
+msgstr "bengalí"
#: conf/global_settings.py:46
msgid "Bulgarian"
-msgstr "Búlgaro"
+msgstr "búlgaro"
#: conf/global_settings.py:47
msgid "Catalan"
-msgstr "Catalán"
+msgstr "catalán"
#: conf/global_settings.py:48
msgid "Czech"
-msgstr "Checo"
+msgstr "checo"
#: conf/global_settings.py:49
msgid "Welsh"
-msgstr "Galés"
+msgstr "galés"
#: conf/global_settings.py:50
msgid "Danish"
-msgstr "Danés"
+msgstr "danés"
#: conf/global_settings.py:51
msgid "German"
-msgstr "Alemán"
+msgstr "alemán"
#: conf/global_settings.py:52
msgid "Greek"
-msgstr "Griego"
+msgstr "griego"
#: conf/global_settings.py:53
msgid "English"
-msgstr "Inglés"
+msgstr "inglés"
#: conf/global_settings.py:54
msgid "Spanish"
-msgstr "Español"
+msgstr "español"
#: conf/global_settings.py:55
msgid "Argentinean Spanish"
-msgstr "Español Argentino"
+msgstr "español de Argentina"
#: conf/global_settings.py:56
msgid "Basque"
-msgstr "Vasco"
+msgstr "vasco"
#: conf/global_settings.py:57
msgid "Persian"
-msgstr "Persa"
+msgstr "persa"
#: conf/global_settings.py:58
msgid "Finnish"
-msgstr "Finés"
+msgstr "finés"
#: conf/global_settings.py:59
msgid "French"
-msgstr "Francés"
+msgstr "francés"
#: conf/global_settings.py:60
msgid "Irish"
-msgstr "Irlandés"
+msgstr "irlandés"
#: conf/global_settings.py:61
msgid "Galician"
-msgstr "Gallego"
+msgstr "gallego"
#: conf/global_settings.py:62
msgid "Hungarian"
-msgstr "Húngaro"
+msgstr "húngaro"
#: conf/global_settings.py:63
msgid "Hebrew"
-msgstr "Hebreo"
+msgstr "hebreo"
#: conf/global_settings.py:64
msgid "Croatian"
-msgstr "Croata"
+msgstr "croata"
#: conf/global_settings.py:65
msgid "Icelandic"
-msgstr "Islandés"
+msgstr "islandés"
#: conf/global_settings.py:66
msgid "Italian"
-msgstr "Italiano"
+msgstr "italiano"
#: conf/global_settings.py:67
msgid "Japanese"
-msgstr "Japonés"
+msgstr "japonés"
#: conf/global_settings.py:68
msgid "Georgian"
-msgstr "Georgiano"
+msgstr "georgiano"
#: conf/global_settings.py:69
msgid "Korean"
-msgstr "Koreano"
+msgstr "koreano"
#: conf/global_settings.py:70
msgid "Khmer"
-msgstr "Khmer"
+msgstr "khmer"
#: conf/global_settings.py:71
msgid "Kannada"
-msgstr "Kannada"
+msgstr "kannada"
#: conf/global_settings.py:72
msgid "Latvian"
-msgstr "Latvio"
+msgstr "letón"
#: conf/global_settings.py:73
msgid "Macedonian"
-msgstr "Macedonio"
+msgstr "macedonio"
#: conf/global_settings.py:74
msgid "Dutch"
-msgstr "Holandés"
+msgstr "holandés"
#: conf/global_settings.py:75
msgid "Norwegian"
-msgstr "Noruego"
+msgstr "noruego"
#: conf/global_settings.py:76
msgid "Polish"
-msgstr "Polaco"
+msgstr "polaco"
#: conf/global_settings.py:77
msgid "Portugese"
-msgstr "Portugés"
+msgstr "portugués"
#: conf/global_settings.py:78
msgid "Brazilian Portuguese"
-msgstr "Portugés Brasileño"
+msgstr "portugués de Brasil"
#: conf/global_settings.py:79
msgid "Romanian"
-msgstr "Rumano"
+msgstr "rumano"
#: conf/global_settings.py:80
msgid "Russian"
-msgstr "Ruso"
+msgstr "ruso"
#: conf/global_settings.py:81
msgid "Slovak"
-msgstr "Eslovaco"
+msgstr "eslovaco"
#: conf/global_settings.py:82
msgid "Slovenian"
-msgstr "Esloveno"
+msgstr "esloveno"
#: conf/global_settings.py:83
msgid "Serbian"
-msgstr "Serbio"
+msgstr "serbio"
#: conf/global_settings.py:84
msgid "Swedish"
-msgstr "Sueco"
+msgstr "sueco"
#: conf/global_settings.py:85
msgid "Tamil"
-msgstr "Tamil"
+msgstr "tamil"
#: conf/global_settings.py:86
msgid "Telugu"
-msgstr "Telugu"
+msgstr "telugu"
#: conf/global_settings.py:87
msgid "Turkish"
-msgstr "Turco"
+msgstr "turco"
#: conf/global_settings.py:88
msgid "Ukrainian"
-msgstr "Ucraniano"
+msgstr "ucraniano"
#: conf/global_settings.py:89
msgid "Simplified Chinese"
-msgstr "Chino simplificado"
+msgstr "chino simplificado"
#: conf/global_settings.py:90
msgid "Traditional Chinese"
-msgstr "Chino tradicional"
+msgstr "chino tradicional"
#: contrib/admin/filterspecs.py:44
#, python-format
@@ -339,7 +339,7 @@ msgstr "Documentación"
#: contrib/admin/templates/admin/auth/user/change_password.html:14
#: contrib/admin/templates/admin/auth/user/change_password.html:45
msgid "Change password"
-msgstr "Cambiar clave"
+msgstr "Cambiar contraseña"
#: contrib/admin/templates/admin/base.html:30
#: contrib/comments/templates/comments/form.html:6
@@ -356,8 +356,8 @@ msgstr "Administración de Django"
#: contrib/admin/templates/admin/change_form.html:14
#: contrib/admin/templates/admin/index.html:28
-msgid "Añadir"
-msgstr "Agregar"
+msgid "Add"
+msgstr "Añadir"
#: contrib/admin/templates/admin/change_form.html:20
#: contrib/admin/templates/admin/object_history.html:4
@@ -802,14 +802,14 @@ msgstr "La contraseña se ha cambiado con éxito."
#: contrib/admin/views/auth.py:65
#, python-format
msgid "Change password: %s"
-msgstr "Cambiar clave: %s"
+msgstr "Cambiar contraseña: %s"
#: contrib/admin/views/decorators.py:17 contrib/auth/forms.py:60
msgid ""
"Please enter a correct username and password. Note that both fields are case-"
"sensitive."
msgstr ""
-"Por favor, introduzca un nombre de usuario correcto y una contraseña. Note que "
+"Por favor, introduzca un nombre de usuario y contraseña correctos. Note que "
"ambos campos son sensibles a mayúsculas/minúsculas."
#: contrib/admin/views/decorators.py:69
@@ -867,7 +867,7 @@ msgstr "El modelo %(name)s no se ha encontrado en la aplicación %(label)r"
#: contrib/admin/views/doc.py:185
#, python-format
msgid "the related `%(label)s.%(type)s` object"
-msgstr "el objeto relacionado`%(label)s.%(type)s` "
+msgstr "el objeto relacionado `%(label)s.%(type)s`"
#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207
#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226
@@ -1057,7 +1057,7 @@ msgstr "¿Está seguro?"
#: contrib/admin/views/main.py:549
#, python-format
msgid "Change history: %s"
-msgstr "Modificar histórico: %s"
+msgstr "Histórico de modificaciones: %s"
#: contrib/admin/views/main.py:583
#, python-format
@@ -1067,7 +1067,7 @@ msgstr "Escoja %s"
#: contrib/admin/views/main.py:583
#, python-format
msgid "Select %s to change"
-msgstr "Escoja %s para modificar"
+msgstr "Escoja %s a modificar"
#: contrib/admin/views/main.py:765
msgid "Database error"
@@ -1079,7 +1079,7 @@ msgstr "Las dos contraseñas no coinciden."
#: contrib/auth/forms.py:25
msgid "A user with that username already exists."
-msgstr "Ya existe un usuario con este nombre."
+msgstr "Ya existe un usuario con este nombre."
#: contrib/auth/forms.py:53
msgid ""
@@ -1114,7 +1114,7 @@ msgstr ""
#: contrib/auth/forms.py:124
msgid "Your old password was entered incorrectly. Please enter it again."
msgstr ""
-"Tu contraseña antigua es incorrecta. Por favor, vuelva a introducirla "
+"Su contraseña antigua es incorrecta. Por favor, vuelva a introducirla "
"correctamente."
#: contrib/auth/models.py:73 contrib/auth/models.py:93
@@ -1211,7 +1211,7 @@ msgstr ""
#: contrib/auth/models.py:146
msgid "last login"
-msgstr "Último inicio de sesión"
+msgstr "último inicio de sesión"
#: contrib/auth/models.py:147
msgid "date joined"
@@ -1424,11 +1424,11 @@ msgstr "Marca de %r"
#: contrib/comments/models.py:300
msgid "deletion date"
-msgstr "fecha de borrado"
+msgstr "fecha de eliminación"
#: contrib/comments/models.py:303
msgid "moderator deletion"
-msgstr "borrado del moderador"
+msgstr "eliminación del moderador"
#: contrib/comments/models.py:304
msgid "moderator deletions"
@@ -1441,7 +1441,7 @@ msgstr "Eliminación del moderador %r"
#: contrib/comments/templates/comments/form.html:8
msgid "Forgotten your password?"
-msgstr "¿Has olvidado tu contraseña?"
+msgstr "¿Ha olvidado su contraseña?"
#: contrib/comments/templates/comments/form.html:12
msgid "Ratings"
@@ -1473,7 +1473,7 @@ msgstr "Previsualizar comentario"
#: contrib/comments/templates/comments/freeform.html:4
msgid "Your name:"
-msgstr "Tu nombre:"
+msgstr "Su nombre:"
#: contrib/comments/views/comments.py:28
msgid ""
@@ -1528,8 +1528,7 @@ msgstr "No se proporcionó uno o más de los siguientes campos requeridos"
#: contrib/comments/views/comments.py:289
msgid "Somebody tampered with the comment form (security violation)"
msgstr ""
-"Alguien realizó manipulaciones con el formulario de comentarios (violación de "
-"seguridad)"
+"Alguien manipuló el formulario de comentarios (violación de seguridad)"
#: contrib/comments/views/comments.py:208
#: contrib/comments/views/comments.py:295
@@ -1555,7 +1554,7 @@ msgstr "ID de comentario no válido"
#: contrib/comments/views/karma.py:27
msgid "No voting for yourself"
-msgstr "No puedes votarte a ti mismo"
+msgstr "No puede votarse a sí mismo"
#: contrib/contenttypes/models.py:67
msgid "python model class name"
@@ -1641,21 +1640,21 @@ msgstr "º"
msgid "%(value).1f million"
msgid_plural "%(value).1f million"
msgstr[0] "%(value).1f millón"
-msgstr[1] "%(value).1f millión"
+msgstr[1] "%(value).1f millón"
#: contrib/humanize/templatetags/humanize.py:54
#, python-format
msgid "%(value).1f billion"
msgid_plural "%(value).1f billion"
-msgstr[0] "%(value).1f billón"
-msgstr[1] "%(value).1f billón"
+msgstr[0] "%(value).1f mil millones"
+msgstr[1] "%(value).1f mil millones"
#: contrib/humanize/templatetags/humanize.py:57
#, python-format
msgid "%(value).1f trillion"
msgid_plural "%(value).1f trillion"
-msgstr[0] "%(value).1f trillón"
-msgstr[1] "%(value).1f trillón"
+msgstr[0] "%(value).1f billón"
+msgstr[1] "%(value).1f billón"
#: contrib/humanize/templatetags/humanize.py:73
msgid "one"
@@ -1717,11 +1716,11 @@ msgstr "Este campo sólo acepta números."
#: contrib/localflavor/ar/forms.py:50
msgid "This field requires 7 or 8 digits."
-msgstr "Este campo necesita 7 o 8 dígitos."
+msgstr "Este campo necesita 7 u 8 dígitos."
#: contrib/localflavor/ar/forms.py:79
msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
-msgstr "Introduzca un CUIT válido en el formato XX-XXXXXXXX-X or XXXXXXXXXXXX."
+msgstr "Introduzca un CUIT válido en el formato XX-XXXXXXXX-X o XXXXXXXXXXXX."
#: contrib/localflavor/ar/forms.py:80
msgid "Invalid CUIT."
@@ -1753,15 +1752,15 @@ msgstr "Número CPF inválido."
#: contrib/localflavor/br/forms.py:95
msgid "This field requires at most 11 digits or 14 characters."
-msgstr "Este campo necesita al menos 11 o 14 caracteres"
+msgstr "Este campo necesita un máximo de 11 dígitos o 14 caracteres."
#: contrib/localflavor/br/forms.py:134
msgid "Invalid CNPJ number."
-msgstr "Número CNPJ inválido"
+msgstr "Número CNPJ inválido."
#: contrib/localflavor/br/forms.py:136
msgid "This field requires at least 14 digits"
-msgstr "Este campo necesita 14 dígitos como máximo"
+msgstr "Este campo necesita 14 dígitos como mínimo"
#: contrib/localflavor/ca/forms.py:17
msgid "Enter a postal code in the format XXX XXX."
@@ -1770,7 +1769,7 @@ msgstr "Introduzca un código postal en el formato XXX XXX."
#: contrib/localflavor/ca/forms.py:88
msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
msgstr ""
-"Introduzca un Número del Seguro Social de Canada válido en el formato XXX-"
+"Introduzca un Número del Seguro Social de Canadá válido en el formato XXX-"
"XXX-XXX."
#: contrib/localflavor/ch/ch_states.py:5
@@ -1886,12 +1885,12 @@ msgid ""
"Enter a valid Swiss identity or passport card number in X1234567<0 or "
"1234567890 format."
msgstr ""
-"Introduzca una identificación suiza válida o un número de pasaporte en el "
-"formato X1234567<0 or 1234567890."
+"Introduzca un número de identificación o pasaporte suizos válidos en el "
+"formato X1234567<0 o 1234567890."
#: contrib/localflavor/cl/forms.py:29
msgid "Enter a valid Chilean RUT."
-msgstr "Introduzca un RUT chileno válido"
+msgstr "Introduzca un RUT chileno válido."
#: contrib/localflavor/cl/forms.py:30
msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
@@ -2255,7 +2254,7 @@ msgid ""
"9XXXXXXXX."
msgstr ""
"Introduzca un número de teléfono válido en el formato 6XXXXXXXX, 8XXXXXXXX "
-"or 9XXXXXXXX."
+"o 9XXXXXXXX."
#: contrib/localflavor/es/forms.py:66
msgid "Please enter a valid NIF, NIE, or CIF."
@@ -2723,7 +2722,7 @@ msgstr "El Número de Identificación Nacional es incorrecto."
msgid ""
"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
msgstr ""
-"Introduzca un número de impuesto (NIP) en el formato XXX-XXX-XX-XX or XX-XX-"
+"Introduzca un número de impuesto (NIP) en el formato XXX-XXX-XX-XX o XX-XX-"
"XXX-XXX."
#: contrib/localflavor/pl/forms.py:73
@@ -2733,7 +2732,7 @@ msgstr "El Número de Identificación Tributaria (NIP) es incorrecto."
#: contrib/localflavor/pl/forms.py:112
msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
msgstr ""
-"El Número Nacional de Registro de Negocios (REGON) consiste en 11 dígitos"
+"El Número Nacional de Registro de Negocios (REGON) consiste en 7 o 9 dígitos."
#: contrib/localflavor/pl/forms.py:113
msgid "Wrong checksum for the National Business Register Number (REGON)."
@@ -3161,7 +3160,7 @@ msgstr "Región de Zilina"
#: contrib/localflavor/uk/forms.py:21
msgid "Enter a valid postcode."
-msgstr "Introduzca un código postal válido"
+msgstr "Introduzca un código postal válido."
#: contrib/localflavor/uk/uk_regions.py:11
msgid "Bedfordshire"
@@ -3454,11 +3453,11 @@ msgstr ""
#: contrib/localflavor/za/forms.py:20
msgid "Enter a valid South African ID number"
-msgstr "Introduzca un ID Sur Africano válido"
+msgstr "Introduzca un ID surafricano válido"
#: contrib/localflavor/za/forms.py:54
msgid "Enter a valid South African postal code"
-msgstr "Introduzca un código postal Sur Africano válido"
+msgstr "Introduzca un código postal surafricano válido"
#: contrib/localflavor/za/za_provinces.py:4
msgid "Eastern Cape"
@@ -3642,7 +3641,7 @@ msgstr "Introduzca una fecha/hora válida en formato AAAA-MM-DD HH:MM."
#: core/validators.py:170 newforms/fields.py:403
msgid "Enter a valid e-mail address."
-msgstr "Introduzca una dirección de correo electrónico válida"
+msgstr "Introduzca una dirección de correo electrónico válida."
#: core/validators.py:182 core/validators.py:474 newforms/fields.py:433
#: oldforms/__init__.py:687
@@ -3712,8 +3711,8 @@ msgstr "Introduzca una abreviatura válida de estado de los EEUU."
#, python-format
msgid "Watch your mouth! The word %s is not allowed here."
msgid_plural "Watch your mouth! The words %s are not allowed here."
-msgstr[0] "¡Cuida tu vocabulario! Aquí no admitimos la palabra %s."
-msgstr[1] "¡Cuida tu vocabulario! Aquí no admitimos las palabras %s."
+msgstr[0] "¡Cuide su vocabulario! Aquí no admitimos la palabra %s."
+msgstr[1] "¡Cuide su vocabulario! Aquí no admitimos las palabras %s."
#: core/validators.py:288
#, python-format
@@ -3805,7 +3804,7 @@ msgstr[1] ""
#: core/validators.py:458
msgid "Please enter a valid floating point number."
-msgstr "Por favor, introduzca un número decimal válido."
+msgstr "Por favor, introduzca un número de coma flotante válido."
#: core/validators.py:467
#, python-format
@@ -4005,7 +4004,7 @@ msgstr "Asegúrese de que no hay más de %s decimales."
#: newforms/fields.py:215
#, python-format
msgid "Ensure that there are no more than %s digits before the decimal point."
-msgstr "Asegúrese de que no hay más de %s dígitos antes del punto decimal."
+msgstr "Asegúrese de que no hay más de %s dígitos antes de la coma decimal."
#: newforms/fields.py:263 newforms/fields.py:751
msgid "Enter a valid date."
@@ -4037,7 +4036,7 @@ msgstr "La URL parece ser un enlace roto."
#: newforms/fields.py:560 newforms/models.py:299
msgid "Select a valid choice. That choice is not one of the available choices."
-msgstr "Escoja una opción válida. Esa opción no está entre las aceptadas."
+msgstr "Escoja una opción válida. Esa opción no está entre las disponibles."
#: newforms/fields.py:599
#, python-format
@@ -4076,7 +4075,7 @@ msgstr "Escoja una opción válida; '%(data)s' no está en %(choices)s."
#: oldforms/__init__.py:745
msgid "Enter a whole number between -32,768 and 32,767."
-msgstr "Introduzca un número entero entre -32,768 y 32,767."
+msgstr "Introduzca un número entero entre -32.768 y 32.767."
#: oldforms/__init__.py:755
msgid "Enter a positive number."
@@ -4084,7 +4083,7 @@ msgstr "Introduzca un número positivo."
#: oldforms/__init__.py:765
msgid "Enter a whole number between 0 and 32,767."
-msgstr "Introduzca un número entero entre 0 y 32,767."
+msgstr "Introduzca un número entero entre 0 y 32.767."
#: template/defaultfilters.py:698
msgid "yes,no,maybe"
@@ -4114,11 +4113,11 @@ msgstr "%.1f GB"
#: utils/dateformat.py:41
msgid "p.m."
-msgstr "p.m"
+msgstr "p.m."
#: utils/dateformat.py:42
msgid "a.m."
-msgstr "a.m"
+msgstr "a.m."
#: utils/dateformat.py:47
msgid "PM"
@@ -4138,107 +4137,107 @@ msgstr "medio día"
#: utils/dates.py:6
msgid "Monday"
-msgstr "Lunes"
+msgstr "lunes"
#: utils/dates.py:6
msgid "Tuesday"
-msgstr "Martes"
+msgstr "martes"
#: utils/dates.py:6
msgid "Wednesday"
-msgstr "Miércoles"
+msgstr "miércoles"
#: utils/dates.py:6
msgid "Thursday"
-msgstr "Jueves"
+msgstr "jueves"
#: utils/dates.py:6
msgid "Friday"
-msgstr "Viernes"
+msgstr "viernes"
#: utils/dates.py:7
msgid "Saturday"
-msgstr "Sábado"
+msgstr "sábado"
#: utils/dates.py:7
msgid "Sunday"
-msgstr "Domingo"
+msgstr "domingo"
#: utils/dates.py:10
msgid "Mon"
-msgstr "Lun"
+msgstr "lun"
#: utils/dates.py:10
msgid "Tue"
-msgstr "Mar"
+msgstr "mar"
#: utils/dates.py:10
msgid "Wed"
-msgstr "Mie"
+msgstr "mié"
#: utils/dates.py:10
msgid "Thu"
-msgstr "Jue"
+msgstr "jue"
#: utils/dates.py:10
msgid "Fri"
-msgstr "Vie"
+msgstr "vie"
#: utils/dates.py:11
msgid "Sat"
-msgstr "Sab"
+msgstr "sáb"
#: utils/dates.py:11
msgid "Sun"
-msgstr "Dom"
+msgstr "dom"
#: utils/dates.py:18
msgid "January"
-msgstr "Enero"
+msgstr "enero"
#: utils/dates.py:18
msgid "February"
-msgstr "Febrero"
+msgstr "febrero"
#: utils/dates.py:18 utils/dates.py:31
msgid "March"
-msgstr "Marzo"
+msgstr "marzo"
#: utils/dates.py:18 utils/dates.py:31
msgid "April"
-msgstr "Abril"
+msgstr "abril"
#: utils/dates.py:18 utils/dates.py:31
msgid "May"
-msgstr "Mayo"
+msgstr "mayo"
#: utils/dates.py:18 utils/dates.py:31
msgid "June"
-msgstr "Junio"
+msgstr "junio"
#: utils/dates.py:19 utils/dates.py:31
msgid "July"
-msgstr "Julio"
+msgstr "julio"
#: utils/dates.py:19
msgid "August"
-msgstr "Agosto"
+msgstr "agosto"
#: utils/dates.py:19
msgid "September"
-msgstr "Septiembre"
+msgstr "septiembre"
#: utils/dates.py:19
msgid "October"
-msgstr "Octubre"
+msgstr "octubre"
#: utils/dates.py:19
msgid "November"
-msgstr "Noviembre"
+msgstr "noviembre"
#: utils/dates.py:20
msgid "December"
-msgstr "Diciembre"
+msgstr "diciembre"
#: utils/dates.py:23
msgid "jan"
@@ -4290,31 +4289,31 @@ msgstr "dic"
#: utils/dates.py:31
msgid "Jan."
-msgstr "Ene."
+msgstr "ene."
#: utils/dates.py:31
msgid "Feb."
-msgstr "Feb."
+msgstr "feb."
#: utils/dates.py:32
msgid "Aug."
-msgstr "Ago."
+msgstr "ago."
#: utils/dates.py:32
msgid "Sept."
-msgstr "Sept."
+msgstr "sept."
#: utils/dates.py:32
msgid "Oct."
-msgstr "Oct."
+msgstr "oct."
#: utils/dates.py:32
msgid "Nov."
-msgstr "Nov."
+msgstr "nov."
#: utils/dates.py:32
msgid "Dec."
-msgstr "Dic."
+msgstr "dic."
#: utils/text.py:127
msgid "or"
@@ -4393,7 +4392,7 @@ msgstr "j \\de F"
#: views/generic/create_update.py:43
#, python-format
msgid "The %(verbose_name)s was created successfully."
-msgstr "El %(verbose_name)s se ha creado correctamente."
+msgstr "El %(verbose_name)s se ha creado exitosamente."
#: views/generic/create_update.py:117
#, python-format
diff --git a/django/conf/locale/et/LC_MESSAGES/django.mo b/django/conf/locale/et/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..f29aa1a77f
Binary files /dev/null and b/django/conf/locale/et/LC_MESSAGES/django.mo differ
diff --git a/django/conf/locale/et/LC_MESSAGES/django.po b/django/conf/locale/et/LC_MESSAGES/django.po
new file mode 100644
index 0000000000..3c96818210
--- /dev/null
+++ b/django/conf/locale/et/LC_MESSAGES/django.po
@@ -0,0 +1,4340 @@
+# Estonian translation for the Django Project.
+# Copyright (C) 2008, Django Project
+# This file is distributed under the same license as the django package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: removethis-eallik_at_gmail-com\n"
+"POT-Creation-Date: 2008-06-02 19:15+0300\n"
+"PO-Revision-Date: 2008-06-17 12:29+0300\n"
+"Last-Translator: Erik Allik \n"
+"Language-Team: Django-i18n \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: conf/global_settings.py:43
+msgid "Arabic"
+msgstr "araabia"
+
+#: conf/global_settings.py:44
+msgid "Bengali"
+msgstr "bengali"
+
+#: conf/global_settings.py:45
+msgid "Bulgarian"
+msgstr "bulgaaria"
+
+#: conf/global_settings.py:46
+msgid "Catalan"
+msgstr "katalaani"
+
+#: conf/global_settings.py:47
+msgid "Czech"
+msgstr "tšehhi"
+
+#: conf/global_settings.py:48
+msgid "Welsh"
+msgstr "uelsi"
+
+#: conf/global_settings.py:49
+msgid "Danish"
+msgstr "taani"
+
+#: conf/global_settings.py:50
+msgid "German"
+msgstr "saksa"
+
+#: conf/global_settings.py:51
+msgid "Greek"
+msgstr "kreeka"
+
+#: conf/global_settings.py:52
+msgid "English"
+msgstr "inglise"
+
+#: conf/global_settings.py:53
+msgid "Spanish"
+msgstr "hispaania"
+
+#: conf/global_settings.py:54
+msgid "Argentinean Spanish"
+msgstr "argentiina hispaania"
+
+#: conf/global_settings.py:55
+msgid "Basque"
+msgstr "baski"
+
+#: conf/global_settings.py:56
+msgid "Persian"
+msgstr "pärsia"
+
+#: conf/global_settings.py:57
+msgid "Finnish"
+msgstr "soome"
+
+#: conf/global_settings.py:58
+msgid "French"
+msgstr "prantsuse"
+
+#: conf/global_settings.py:59
+msgid "Irish"
+msgstr "iiri"
+
+#: conf/global_settings.py:60
+msgid "Galician"
+msgstr "galiitsia"
+
+#: conf/global_settings.py:61
+msgid "Hungarian"
+msgstr "ungari"
+
+#: conf/global_settings.py:62
+msgid "Hebrew"
+msgstr "heebrea"
+
+#: conf/global_settings.py:63
+msgid "Croatian"
+msgstr "horvaatia"
+
+#: conf/global_settings.py:64
+msgid "Icelandic"
+msgstr "islandi"
+
+#: conf/global_settings.py:65
+msgid "Italian"
+msgstr "itaalia"
+
+#: conf/global_settings.py:66
+msgid "Japanese"
+msgstr "jaapani"
+
+#: conf/global_settings.py:67
+msgid "Georgian"
+msgstr "gruusia"
+
+#: conf/global_settings.py:68
+msgid "Korean"
+msgstr "korea"
+
+#: conf/global_settings.py:69
+msgid "Khmer"
+msgstr "khmeri"
+
+#: conf/global_settings.py:70
+msgid "Kannada"
+msgstr "kannada"
+
+#: conf/global_settings.py:71
+msgid "Latvian"
+msgstr "läti"
+
+#: conf/global_settings.py:72
+msgid "Macedonian"
+msgstr "makedoonia"
+
+#: conf/global_settings.py:73
+msgid "Dutch"
+msgstr "hollandi"
+
+#: conf/global_settings.py:74
+msgid "Norwegian"
+msgstr "norra"
+
+#: conf/global_settings.py:75
+msgid "Polish"
+msgstr "poola"
+
+#: conf/global_settings.py:76
+msgid "Portugese"
+msgstr "portugali"
+
+#: conf/global_settings.py:77
+msgid "Brazilian Portuguese"
+msgstr "brasiilia portugali"
+
+#: conf/global_settings.py:78
+msgid "Romanian"
+msgstr "rumeenia"
+
+#: conf/global_settings.py:79
+msgid "Russian"
+msgstr "vene"
+
+#: conf/global_settings.py:80
+msgid "Slovak"
+msgstr "slovaki"
+
+#: conf/global_settings.py:81
+msgid "Slovenian"
+msgstr "sloveeni"
+
+#: conf/global_settings.py:82
+msgid "Serbian"
+msgstr "serbia"
+
+#: conf/global_settings.py:83
+msgid "Swedish"
+msgstr "rootsi"
+
+#: conf/global_settings.py:84
+msgid "Tamil"
+msgstr "tamiili"
+
+#: conf/global_settings.py:85
+msgid "Telugu"
+msgstr "telugu"
+
+#: conf/global_settings.py:86
+msgid "Turkish"
+msgstr "türgi"
+
+#: conf/global_settings.py:87
+msgid "Ukrainian"
+msgstr "ukrania"
+
+#: conf/global_settings.py:88
+msgid "Simplified Chinese"
+msgstr "lihtsustatud hiina"
+
+#: conf/global_settings.py:89
+msgid "Traditional Chinese"
+msgstr "traditsiooniline hiina"
+
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"
By %s:
\n"
+"
\n"
+msgstr ""
+"
%s:
\n"
+"
\n"
+
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
+msgstr "Kõik"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
+msgstr "Suvaline kuupäev"
+
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
+msgstr "Täna"
+
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
+msgstr "Viimased 7 päeva"
+
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
+msgstr "Käesolev kuu"
+
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
+msgstr "Käesolev aasta"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Yes"
+msgstr "Jah"
+
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "No"
+msgstr "Ei"
+
+#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Unknown"
+msgstr "Tundmatu"
+
+#: contrib/admin/models.py:18
+msgid "action time"
+msgstr "toimingu aeg"
+
+#: contrib/admin/models.py:21
+msgid "object id"
+msgstr "objekti id"
+
+#: contrib/admin/models.py:22
+msgid "object repr"
+msgstr "objekti esitus"
+
+#: contrib/admin/models.py:23
+msgid "action flag"
+msgstr "toimingu lipp"
+
+#: contrib/admin/models.py:24
+msgid "change message"
+msgstr "muudatuse tekst"
+
+#: contrib/admin/models.py:27
+msgid "log entry"
+msgstr "logisissekanne"
+
+#: contrib/admin/models.py:28
+msgid "log entries"
+msgstr "logisissekanded"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Lehte ei leitud"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Vabandame, kuid soovitud lehte ei leitud."
+
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/base.html:37
+#: contrib/admin/templates/admin/change_form.html:12
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/delete_confirmation.html:5
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/object_history.html:4
+#: contrib/admin/templates/admin/auth/user/change_password.html:11
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+msgid "Home"
+msgstr "Kodu"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Serveri viga"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Serveri viga (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error (500)"
+msgstr "Serveri Viga (500)"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr ""
+"On tekkinud viga. Vastavasisuline teavitus on saadetud süsteemi haldajale "
+"ning vea parandamisega tegeletakse esimesel võimalusel. Täname mõistva "
+"suhtumise eest!"
+
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr "Tere tulemast,"
+
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokumentatsioon"
+
+#: contrib/admin/templates/admin/base.html:29
+#: contrib/admin/templates/admin/auth/user/change_password.html:14
+#: contrib/admin/templates/admin/auth/user/change_password.html:45
+msgid "Change password"
+msgstr "Muuda salasõna"
+
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Logi välja"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django administreerimisliides"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django administreerimisliides"
+
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Lisa"
+
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr "Ajalugu"
+
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "Näida lehel"
+
+#: contrib/admin/templates/admin/change_form.html:31
+#: contrib/admin/templates/admin/auth/user/change_password.html:23
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Palun parandage allolev viga"
+msgstr[1] "Palun parandage allolevad vead"
+
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr "Järjestus"
+
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr "Järjestus:"
+
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "Lisa %(name)s"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Kustuta"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:13
+#, python-format
+msgid ""
+"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
+"related objects, but your account doesn't have permission to delete the "
+"following types of objects:"
+msgstr ""
+"Selleks, et kustutada %(object_name)s '%(escaped_object)s', on vaja "
+"kustutada lisaks ka kõik seotud objecktid, aga teil puudub õigus järgnevat "
+"tüüpi objektide kustutamiseks:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:20
+#, python-format
+msgid ""
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
+msgstr ""
+"Kas olete kindel, et soovite kustutada objekti %(object_name)s \"%"
+"(escaped_object)s\"? Kõik järgnevad seotud objektid kustutatakse koos "
+"sellega:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr "Jah, olen kindel"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " %(filter_title)s "
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filtreeri"
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Rakenduses %(name)s leitud mudelid"
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Muuda"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Teil ei ole õigust midagi muuta."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Hiljutised Toimingud"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Minu Toimingud"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Ei leitud ühtegi"
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid ""
+"Something's wrong with your database installation. Make sure the appropriate "
+"database tables have been created, and make sure the database is readable by "
+"the appropriate user."
+msgstr ""
+"On tekkinud viga seoses andmebaasiga. Veenduge, et kõik vajalikud "
+"andmebaasitabelid on loodud ning et andmebaas on vastava kasutaja poolt "
+"loetav."
+
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Kasutajatunnus:"
+
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Salasõna:"
+
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:31
+msgid "Log in"
+msgstr "Sisene"
+
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr "Kuupäev/kellaaeg"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr "Kasutaja"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr "Toiming"
+
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
+
+#: contrib/admin/templates/admin/object_history.html:35
+msgid ""
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr ""
+"Sellel objektil puudub muudatuste ajalugu. Tõenäoliselt ei kasutatud selle "
+"objekti lisamisel käesolevat administreerimislidest."
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Näita kõiki"
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Mine"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 tulemus"
+msgstr[1] "%(counter)s tulemust"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "Kokku %(full_result_count)s"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Salvesta uuena"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Salvesta ja lisa uus"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Salvesta ja jätka muutmist"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Salvesta"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid ""
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
+msgstr ""
+"Kõige pealt sisestage kasutajatunnus ja salasõna, seejärel on võimalik muuta "
+"täiendavaid kasutajaandmeid."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Kasutajatunnus"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr "Salasõna"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
+msgstr "Salasõna (uuesti)"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Enter the same password as above, for verification."
+msgstr ""
+"Sisestage sama salasõna uuesti veendumaks, et sisestamisel ei tekkinud vigu"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:27
+#, python-format
+msgid "Enter a new password for the user %(username)s."
+msgstr "Sisestage uus salasõna kasutajale %(username)s"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Järjehoidjad"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Dokumentatsiooni järjehoidjad"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"
To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site. Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").
\n"
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Selle lehekülje dokumentatsioon"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid ""
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Näita objekti ID-d"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid ""
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Muuda seda objekti (samas aknas)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Muuda seda objekti (uues aknas)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Sama, mis üleval, kuid avab admin. lehe uues aknas."
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Tänan, et veetsite aega meie lehel."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Logi uuesti sisse"
+
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_form.html:5
+#: contrib/admin/templates/registration/password_change_form.html:9
+msgid "Password change"
+msgstr "Salasõna muutmine"
+
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr "Salasõna muutmine õnnestus"
+
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr "Teie salasõna on vahetatud."
+
+#: contrib/admin/templates/registration/password_change_form.html:11
+msgid ""
+"Please enter your old password, for security's sake, and then enter your new "
+"password twice so we can verify you typed it in correctly."
+msgstr ""
+"Turvalisuse tagamiseks palun sisestage oma praegune salasõna ning seejärel "
+"uus salasõna.Veendumaks, et uue salasõna sisestamisel ei tekkinud vigu, "
+"palun sisestage see kaks korda."
+
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr "Senine salasõna:"
+
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr "Uus salasõna:"
+
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr "Kinnita salasõna:"
+
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr "Muuda salasõna"
+
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+msgid "Password reset"
+msgstr "Uue parooli loomine"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Uue parooli loomine õnnestus"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr ""
+"Teie poolt sisestatud e-posti aadressile on saadetud kiri uue salasõnaga. "
+"Kiri saabub üsna pea."
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "See kiri saadeti teile, sest soovisite uut salasõna"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "teie kasutajakontole lehel %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Teie uus parool onÖ %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Parooli vahetamiseks minge:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Teie kasutajatunnus juhul, kui olete unustanud:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Täname meie lehte külastamast!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s meeskond"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid ""
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr ""
+"Unustasid parool? Sisesta oma e-posti aadress ning me saadame sulle uue "
+"parooli e-kirjaga."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-posti aadress:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Reseti parool"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Kuupäev:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Aeg:"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Hetkel:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Muuda:"
+
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
+msgstr "Kõik kuupäevad"
+
+#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" lisamine õnnestus."
+
+#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+msgid "You may edit it again below."
+msgstr "Te võite selle muutmist jätkata."
+
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "Lisa kasutaja"
+
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "Salasõna edukalt muudetud."
+
+#: contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr "Muuda salasõna: %s"
+
+#: contrib/admin/views/decorators.py:17 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
+msgstr ""
+"Palun sisestage korrektne kasutajatunnus ja salasõna. Mõlemad väljad on "
+"tõstutundlikud."
+
+#: contrib/admin/views/decorators.py:69
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
+msgstr ""
+"Teie sessioon on aegunud. Palun logige uuesti sisse. Olge mureta: sisestatud "
+"andmed on salvestatud."
+
+#: contrib/admin/views/decorators.py:76
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
+msgstr ""
+"Paistab, et Teie brauser ei aktsepteeri küpsiseid. Palun võimaldage küpsised "
+"ning seejärel laadige see leht uuesti."
+
+#: contrib/admin/views/decorators.py:89
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr ""
+"Teie e-posti aadress ei ole sama asi, mis Teie kasutajatunnus. Proovige '%s'."
+
+#: contrib/admin/views/decorators.py:93
+msgid "Usernames cannot contain the '@' character."
+msgstr "Kasutajatunnused ei tohi sisaldada '@' märki."
+
+#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:52
+msgid "tag:"
+msgstr "lipik:"
+
+#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:83
+msgid "filter:"
+msgstr "filtreeri:"
+
+#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:141
+msgid "view:"
+msgstr "vaade:"
+
+#: contrib/admin/views/doc.py:166
+#, python-format
+msgid "App %r not found"
+msgstr "Rakendust %r ei leitud"
+
+#: contrib/admin/views/doc.py:173
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "Mudelit %(name)r ei leitud rakenduses %(label)r"
+
+#: contrib/admin/views/doc.py:185
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "seotud `%(label)s.%(type)s` objekt"
+
+#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207
+#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226
+msgid "model:"
+msgstr "mudel:"
+
+#: contrib/admin/views/doc.py:216
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "seotud `%(label)s.%(name)s` objektid"
+
+#: contrib/admin/views/doc.py:221
+#, python-format
+msgid "all %s"
+msgstr "kõik %s"
+
+#: contrib/admin/views/doc.py:226
+#, python-format
+msgid "number of %s"
+msgstr "%s arv"
+
+#: contrib/admin/views/doc.py:231
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Objekti %s väljad"
+
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315
+msgid "Integer"
+msgstr "Täisarv"
+
+#: contrib/admin/views/doc.py:294
+msgid "Boolean (Either True or False)"
+msgstr "Tõeväärtus (Kas tõene või väär)"
+
+#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "String (kuni %(max_length)s märki)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Comma-separated integers"
+msgstr "Komaga eraldatud täisarvud"
+
+#: contrib/admin/views/doc.py:297
+msgid "Date (without time)"
+msgstr "Kuupäev (kellaajata)"
+
+#: contrib/admin/views/doc.py:298
+msgid "Date (with time)"
+msgstr "Kuupäev (kellaajaga)"
+
+#: contrib/admin/views/doc.py:299
+msgid "Decimal number"
+msgstr "Kümnendmurd"
+
+#: contrib/admin/views/doc.py:300
+msgid "E-mail address"
+msgstr "E-posti aadress"
+
+#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:305
+msgid "File path"
+msgstr "Faili asukoht"
+
+#: contrib/admin/views/doc.py:303
+msgid "Floating point number"
+msgstr "Ujukomaarv"
+
+#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89
+msgid "IP address"
+msgstr "IP aadress"
+
+#: contrib/admin/views/doc.py:309
+msgid "Boolean (Either True, False or None)"
+msgstr "Tõeväärtus (Kas tõene, väär või tühi)"
+
+#: contrib/admin/views/doc.py:310
+msgid "Relation to parent model"
+msgstr "Seos ülem-mudeliga"
+
+#: contrib/admin/views/doc.py:311
+msgid "Phone number"
+msgstr "Telefoninumber"
+
+#: contrib/admin/views/doc.py:316
+msgid "Text"
+msgstr "Tekst"
+
+#: contrib/admin/views/doc.py:317
+msgid "Time"
+msgstr "Aeg"
+
+#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:8
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:319
+msgid "U.S. state (two uppercase letters)"
+msgstr "U.S.A. osariik (kaks suurt tähte)"
+
+#: contrib/admin/views/doc.py:320
+msgid "XML text"
+msgstr "XML tekst"
+
+#: contrib/admin/views/doc.py:346
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s ei tundu olevat urlpattern objekt"
+
+#: contrib/admin/views/main.py:233
+msgid "Site administration"
+msgstr "Saidi administreerimine"
+
+#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365
+#, python-format
+msgid "You may add another %s below."
+msgstr "Te võite lisada uue objekti %s"
+
+#: contrib/admin/views/main.py:298
+#, python-format
+msgid "Add %s"
+msgstr "Lisa %s"
+
+#: contrib/admin/views/main.py:344
+#, python-format
+msgid "Added %s."
+msgstr "Lisasin %s."
+
+#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:348 core/validators.py:283
+#: db/models/manipulators.py:309
+msgid "and"
+msgstr "ja"
+
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Changed %s."
+msgstr "Muutsin %s."
+
+#: contrib/admin/views/main.py:348
+#, python-format
+msgid "Deleted %s."
+msgstr "Kustutasin %s."
+
+#: contrib/admin/views/main.py:351
+msgid "No fields changed."
+msgstr "Ühtegi välja ei muudetud."
+
+#: contrib/admin/views/main.py:354
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "Objekti %(name)s \"%(obj)s\" muutmine õnnestus."
+
+#: contrib/admin/views/main.py:362
+#, python-format
+msgid ""
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "Objekti %(name)s \"%(obj)s\" lisamine õnnestus. Te võite seda muuta."
+
+#: contrib/admin/views/main.py:400
+#, python-format
+msgid "Change %s"
+msgstr "Muuda %s"
+
+#: contrib/admin/views/main.py:487
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr ""
+
+#: contrib/admin/views/main.py:492
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr ""
+
+#: contrib/admin/views/main.py:524
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "Objekti %(name)s \"%(obj)s\" kustutamine õnnestus."
+
+#: contrib/admin/views/main.py:527
+msgid "Are you sure?"
+msgstr "Kas olete kindel?"
+
+#: contrib/admin/views/main.py:549
+#, python-format
+msgid "Change history: %s"
+msgstr "Muudatuste ajalugu: %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s"
+msgstr "Vali %s"
+
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s to change"
+msgstr "Vali %s mida muuta"
+
+#: contrib/admin/views/main.py:765
+msgid "Database error"
+msgstr "Andmebaasi viga"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Kaks sisestatud parooli ei olnud identsed."
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Sama kasutajatunnusega kasutaja on juba olemas."
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Teie veebibrauser ei aktsepteeri küpsiseid, aga küpsised on sisselogimiseks "
+"vajalikud."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "See konto ei ole aktiivne."
+
+#: contrib/auth/forms.py:84
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Selle e-posti aadressiga ei ole seotud ühtegi kasutajakontot. Veenduge, et "
+"olete registreerunud."
+
+#: contrib/auth/forms.py:107
+#, python-format
+msgid "Password reset on %s"
+msgstr ""
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Sisestatud uue parooli väljad ei olnud identsed."
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Te sisestasite oma vana parooli vigaselt. Palun sisestage see uuesti."
+
+#: contrib/auth/models.py:73 contrib/auth/models.py:93
+msgid "name"
+msgstr "nimi"
+
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "koodnimi"
+
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "õigus"
+
+#: contrib/auth/models.py:79 contrib/auth/models.py:94
+msgid "permissions"
+msgstr "õigused"
+
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "grupp"
+
+#: contrib/auth/models.py:98 contrib/auth/models.py:141
+msgid "groups"
+msgstr "grupid"
+
+#: contrib/auth/models.py:131
+msgid "username"
+msgstr "kasutajatunnus"
+
+#: contrib/auth/models.py:131
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr "Nõutav. 30 tähemärki või vähem. Ainult tähed, numbrid ja alakriipsud."
+
+#: contrib/auth/models.py:132
+msgid "first name"
+msgstr "eesnimi"
+
+#: contrib/auth/models.py:133
+msgid "last name"
+msgstr "perenimi"
+
+#: contrib/auth/models.py:134
+msgid "e-mail address"
+msgstr "e-posti aadress"
+
+#: contrib/auth/models.py:135
+msgid "password"
+msgstr "salasõna"
+
+#: contrib/auth/models.py:135
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the change "
+"password form."
+msgstr ""
+
+#: contrib/auth/models.py:136
+msgid "staff status"
+msgstr "personalistaatus"
+
+#: contrib/auth/models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr ""
+"Määrab, kas kasutaja saab sisse logida sellesse admininistreerimisliidesesse."
+
+#: contrib/auth/models.py:137
+msgid "active"
+msgstr "aktiivne"
+
+#: contrib/auth/models.py:137
+msgid ""
+"Designates whether this user should be treated as active. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Määrab, kas see konto on aktiivne. Kustutamise asemel lihtsalt deaktiveerige "
+"konto."
+
+#: contrib/auth/models.py:138
+msgid "superuser status"
+msgstr "superkasutaja staatus"
+
+#: contrib/auth/models.py:138
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "Määrab, kas see kasutaja omab automaatselt ja alati kõiki õigus."
+
+#: contrib/auth/models.py:139
+msgid "last login"
+msgstr "viimane sisenemine"
+
+#: contrib/auth/models.py:140
+msgid "date joined"
+msgstr "liitumise kuupäev"
+
+#: contrib/auth/models.py:142
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Lisaks neile õigustele, mis kasutajale on määratud, omab kasutaja ka neid "
+"õigusi, mis on nendel gruppidel, millesse ta kuulub."
+
+#: contrib/auth/models.py:143
+msgid "user permissions"
+msgstr "kasutajaõigused"
+
+#: contrib/auth/models.py:147
+msgid "user"
+msgstr "kasutaja"
+
+#: contrib/auth/models.py:148
+msgid "users"
+msgstr "kasutajad"
+
+#: contrib/auth/models.py:154
+msgid "Personal info"
+msgstr "Isiklikud andmd"
+
+#: contrib/auth/models.py:155
+msgid "Permissions"
+msgstr "Õigused"
+
+#: contrib/auth/models.py:156
+msgid "Important dates"
+msgstr "Tähtsad kuupäevad"
+
+#: contrib/auth/models.py:157
+msgid "Groups"
+msgstr "Grupid"
+
+#: contrib/auth/models.py:316
+msgid "message"
+msgstr "sõnum"
+
+#: contrib/auth/views.py:47
+msgid "Logged out"
+msgstr "Välja logitud"
+
+#: contrib/comments/models.py:71 contrib/comments/models.py:176
+msgid "object ID"
+msgstr "objekti ID"
+
+#: contrib/comments/models.py:72
+msgid "headline"
+msgstr "pealkiri"
+
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:177
+msgid "comment"
+msgstr "kommentaar"
+
+#: contrib/comments/models.py:74
+msgid "rating #1"
+msgstr "reiting #1"
+
+#: contrib/comments/models.py:75
+msgid "rating #2"
+msgstr "reiting #2"
+
+#: contrib/comments/models.py:76
+msgid "rating #3"
+msgstr "reiting #3"
+
+#: contrib/comments/models.py:77
+msgid "rating #4"
+msgstr "reiting #4"
+
+#: contrib/comments/models.py:78
+msgid "rating #5"
+msgstr "reiting #5"
+
+#: contrib/comments/models.py:79
+msgid "rating #6"
+msgstr "reiting #6"
+
+#: contrib/comments/models.py:80
+msgid "rating #7"
+msgstr "reiting #7"
+
+#: contrib/comments/models.py:81
+msgid "rating #8"
+msgstr "reiting #8"
+
+#: contrib/comments/models.py:86
+msgid "is valid rating"
+msgstr "on korrektne reiting"
+
+#: contrib/comments/models.py:87 contrib/comments/models.py:179
+msgid "date/time submitted"
+msgstr "loomise kuupäev/kellaaeg"
+
+#: contrib/comments/models.py:88 contrib/comments/models.py:180
+msgid "is public"
+msgstr "on avalik"
+
+#: contrib/comments/models.py:90
+msgid "is removed"
+msgstr "on eemaldatud"
+
+#: contrib/comments/models.py:90
+msgid ""
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr ""
+"Märkige siia linnuke, kui see kommentaar on ebasobiv. Kommentaari asemel "
+"kuvatakse kirja \"Kommentaar on kustutatud\"."
+
+#: contrib/comments/models.py:96
+msgid "comments"
+msgstr "kommentaarid"
+
+#: contrib/comments/models.py:140 contrib/comments/models.py:222
+msgid "Content object"
+msgstr "Sisuobjekt"
+
+#: contrib/comments/models.py:168
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Postitatud kasutaja %(user)s poolt %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:178
+msgid "person's name"
+msgstr "isiku nimi"
+
+#: contrib/comments/models.py:181
+msgid "ip address"
+msgstr "ip aadress"
+
+#: contrib/comments/models.py:183
+msgid "approved by staff"
+msgstr "personali poolt heaks kiidetud"
+
+#: contrib/comments/models.py:187
+msgid "free comment"
+msgstr "vaba kommentaar"
+
+#: contrib/comments/models.py:188
+msgid "free comments"
+msgstr "vabad kommentaarid"
+
+#: contrib/comments/models.py:250
+msgid "score"
+msgstr "tulemus"
+
+#: contrib/comments/models.py:251
+msgid "score date"
+msgstr "tulemuse kuupäev"
+
+#: contrib/comments/models.py:255
+msgid "karma score"
+msgstr "karma tulemus"
+
+#: contrib/comments/models.py:256
+msgid "karma scores"
+msgstr "karma tulemused"
+
+#: contrib/comments/models.py:260
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d reiting kasutaja %(user)s poolt"
+
+#: contrib/comments/models.py:277
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"See kommentaar märgiti kasutaja %(user)s poolt:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:285
+msgid "flag date"
+msgstr "märkimise kuupäev"
+
+#: contrib/comments/models.py:289
+msgid "user flag"
+msgstr "kasutajamärge"
+
+#: contrib/comments/models.py:290
+msgid "user flags"
+msgstr "kasutajamärked"
+
+#: contrib/comments/models.py:294
+#, python-format
+msgid "Flag by %r"
+msgstr "Lipu pani %r"
+
+#: contrib/comments/models.py:300
+msgid "deletion date"
+msgstr "kustutamise kuupäev"
+
+#: contrib/comments/models.py:303
+msgid "moderator deletion"
+msgstr "moderaatori kustutus"
+
+#: contrib/comments/models.py:304
+msgid "moderator deletions"
+msgstr "moderaatori kustutused"
+
+#: contrib/comments/models.py:308
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "moderaatori kustutus kasutaja %r poolt"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Unustasid salasõna?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Reitingud"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Nõutav"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Valikuline"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Postita foto"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Kommentaar:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Kommentaari eelvaade"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Teie nimi:"
+
+#: contrib/comments/views/comments.py:28
+msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr ""
+"See reiting on nõutav, sest olete sisestanud vähemalt ühe teise reitingu."
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Selle kommentaari postitas pealiskaudne kasutaja:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
+msgid "Only POSTs are allowed"
+msgstr "Ainult POST päringud on lubatud"
+
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Üks või enam nõutavatest väljadest on puudu"
+
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr ""
+"Keegi on kommentaari ankeeti sisestanud vigaseid andmed (turvarikkumine)"
+
+#: contrib/comments/views/comments.py:208
+#: contrib/comments/views/comments.py:295
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Kommentaariankeet sisaldas ebakorrektset 'target' parameetrit -- objekti ID "
+"ei olnud korrektne"
+
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Kommentaari ankeedis oli puudu kas 'preview' või 'post'"
+
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Anonüümsed kasutajad ei saa hääletada"
+
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "Ebakorrektne kommentaari ID"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Iseendale ei saa häält anda"
+
+#: contrib/contenttypes/models.py:67
+msgid "python model class name"
+msgstr "pythoni mudeli klassinimi"
+
+#: contrib/contenttypes/models.py:71
+msgid "content type"
+msgstr "sisutüüp"
+
+#: contrib/contenttypes/models.py:72
+msgid "content types"
+msgstr "sisutüübid"
+
+#: contrib/flatpages/models.py:9
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr ""
+"Näide: '/about/contact/'. Veenduge, et URL algaks ja lõppeks kaldkriipsuga."
+
+#: contrib/flatpages/models.py:10
+msgid "title"
+msgstr "pealkiri"
+
+#: contrib/flatpages/models.py:11
+msgid "content"
+msgstr "sisu"
+
+#: contrib/flatpages/models.py:12
+msgid "enable comments"
+msgstr "võimalda kommentaarid"
+
+#: contrib/flatpages/models.py:13
+msgid "template name"
+msgstr "mall"
+
+#: contrib/flatpages/models.py:14
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr ""
+"Näide: 'flatpages/contact_page.html'. Kui mall on määramata, kasutatakse "
+"vaikimisi malli 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:15
+msgid "registration required"
+msgstr "registreerumine nõutav"
+
+#: contrib/flatpages/models.py:15
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Kui see on valitud, näevad lehte ainult sisselogitud kasutajad"
+
+#: contrib/flatpages/models.py:20
+msgid "flat page"
+msgstr "sisuleht"
+
+#: contrib/flatpages/models.py:21
+msgid "flat pages"
+msgstr "sisulehed"
+
+#: contrib/flatpages/models.py:27
+msgid "Advanced options"
+msgstr "Lisavalikud"
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "th"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "st"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "nd"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:19
+msgid "rd"
+msgstr "."
+
+#: contrib/humanize/templatetags/humanize.py:51
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f miljon"
+msgstr[1] "%(value).11f miljonit"
+
+#: contrib/humanize/templatetags/humanize.py:54
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f miljard"
+msgstr[1] "%(value).1f miljardit"
+
+#: contrib/humanize/templatetags/humanize.py:57
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f triljon"
+msgstr[1] "%(value).1f triljonit"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "one"
+msgstr "üks"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "two"
+msgstr "kaks"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "three"
+msgstr "kolm"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "four"
+msgstr "neli"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "five"
+msgstr "viis"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "six"
+msgstr "kuus"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "seven"
+msgstr "seitse"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "eight"
+msgstr "kaheksa"
+
+#: contrib/humanize/templatetags/humanize.py:73
+msgid "nine"
+msgstr "üheksa"
+
+#: contrib/humanize/templatetags/humanize.py:93
+msgid "today"
+msgstr "täna"
+
+#: contrib/humanize/templatetags/humanize.py:95
+msgid "tomorrow"
+msgstr "homme"
+
+#: contrib/humanize/templatetags/humanize.py:97
+msgid "yesterday"
+msgstr "eile"
+
+#: contrib/localflavor/ar/forms.py:27
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Sisesta postiindeks kujul NNNN või ANNNNAAA."
+
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
+msgid "This field requires only numbers."
+msgstr "See väli peab koosnema ainult numbritest."
+
+#: contrib/localflavor/ar/forms.py:50
+msgid "This field requires 7 or 8 digits."
+msgstr "Siin väljal peab olema kas 7 või 8 numbrit."
+
+#: contrib/localflavor/ar/forms.py:79
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Sisesta korrektne CUIT kujul XX-XXXXXXXX-X or XXXXXXXXXXXX."
+
+#: contrib/localflavor/ar/forms.py:80
+msgid "Invalid CUIT."
+msgstr "Vale CUIT."
+
+#: contrib/localflavor/au/forms.py:16
+msgid "Enter a 4 digit post code."
+msgstr "Sisesta neljakohaline postiindeks."
+
+#: contrib/localflavor/br/forms.py:21
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Sisesta postiindeks kujul XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Telefoninumbrid peavad olema kujul XX-XXXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:58
+msgid ""
+"Select a valid brazilian state. That state is not one of the available "
+"states."
+msgstr "Vali korrektne Brasiilia osariik. Valitud osariik ei ole korrektne."
+
+#: contrib/localflavor/br/forms.py:94
+msgid "Invalid CPF number."
+msgstr "Mittekorrektne CPF number."
+
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "See väli võib olla maksimaalselt 11 või 14 sümbolit."
+
+#: contrib/localflavor/br/forms.py:134
+msgid "Invalid CNPJ number."
+msgstr "Mittekorrektne CNPJ number."
+
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "See väli peab olema vähemalt 14-kohaline arv."
+
+#: contrib/localflavor/ca/forms.py:17
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Sisesta postiindeks kujul XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
+msgstr "Sisesta korrektne Kanada sotsiaalturvatunnus formaadis XXX-XXX-XXXX."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr "Aargau"
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr "Appenzell Innerrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr "Appenzell Ausserrhoden"
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr "Basel-Stadt"
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr "Basel-Land"
+
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
+msgstr "Berne"
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr "Fribourg"
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr "Geneva"
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr "Glarus"
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr "Graubuenden"
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr "Jura"
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr "Lucerne"
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr "Neuchatel"
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr "Nidwalden"
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr "Obwalden"
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr "Schaffhausen"
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr "Schwyz"
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr "Solothurn"
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr "St. Gallen"
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr "Thurgau"
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr "Ticino"
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr "Uri"
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr "Valais"
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr "Vaud"
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr "Zug"
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr "Zurich"
+
+#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12
+msgid "Enter a zip code in the format XXXX."
+msgstr "Sisesta postiindeks kujul XXXX."
+
+#: contrib/localflavor/ch/forms.py:64
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"Sisesta kehtiv Šveitsi isiku- või passinumber kujul X1234567<0 või "
+"1234567890."
+
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "Sisesta korrektne Tšiili RUT."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Sisesta korrektne Tšiili RUT formaadis XX.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "Tšiili RUT on ebakorrektne."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Württemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Baieri"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berliin"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburg"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremen"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburg"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hessen"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklenburg-Vorpommern"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Alam-Saksi"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "Nordrhein-Westfalen"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Rheinland-Pfalz"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Saarimaa"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Saksimaa"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Saksi-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Schleswig-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Tüüringi"
+
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Sisesta postiindeks kujul XXXXX."
+
+#: contrib/localflavor/de/forms.py:41
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"Sisesta kehtiv Saksamaa ID-kaardi number kujul XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Álava"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alicante"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "Almería"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Ávila"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Baleaarid"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcelona"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Cáceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cádiz"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castellón"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Ciudad Real"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Córdoba"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "A Coruna"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Cuenca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Girona"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipúzcoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Huesca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaén"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "León"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lleida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Madrid"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Málaga"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Murcia"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarra"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Orense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Astuuria"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palencia"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Tenerife"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Cantabria"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Segovia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Sevilla"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Soria"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Teruel"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "Valencia"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Vizcaya"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Zaragoza"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Andaluusia"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Aragón"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Astuuria"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Baleaarid"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "Baskimaa"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Kanaari saared"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Castilla-La Mancha"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Castilla-León"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Kataloonia"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Extremadura"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Galicia"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Murcia"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Navarra"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Valencia"
+
+#: contrib/localflavor/es/forms.py:19
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Sisesta korrektne postiindeks vahemikus 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+msgid ""
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
+msgstr ""
+"Sisesta korrektne telefoninumber, mis on formaadis 6XXXXXXXX, 8XXXXXXXX või "
+"9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr "Palun sisesta korrektne NIF, NIE või CIF."
+
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr "Palun sisesta korrektne NIF või NIE."
+
+#: contrib/localflavor/es/forms.py:68
+msgid "Invalid checksum for NIF."
+msgstr "Vale NIF-i kontrollsumma."
+
+#: contrib/localflavor/es/forms.py:69
+msgid "Invalid checksum for NIE."
+msgstr "Vale NIE kontrollsumma."
+
+#: contrib/localflavor/es/forms.py:70
+msgid "Invalid checksum for CIF."
+msgstr "Vale CIF-i kontrollsumma."
+
+#: contrib/localflavor/es/forms.py:142
+msgid ""
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr "Palun sisesta korrektne kontonumber formaadis XXXX-XXXX-XX-XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:143
+msgid "Invalid checksum for bank account number."
+msgstr "Pangakonto numbri kontrollsumma on vale."
+
+#: contrib/localflavor/fi/forms.py:28
+msgid "Enter a valid Finnish social security number."
+msgstr "Sisesta korrektne Soome sotsiaalturvatunnus."
+
+#: contrib/localflavor/in_/forms.py:14
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Sisesta postiindeks kujul XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Sisesta kehtiv Islandi isikukood formaadis XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:18
+msgid "The Icelandic identification number is not valid."
+msgstr "Islandi isikukood ei ole korrektne."
+
+#: contrib/localflavor/it/forms.py:14
+msgid "Enter a valid zip code."
+msgstr "Sisesta korrektne postiindeks."
+
+#: contrib/localflavor/it/forms.py:43
+msgid "Enter a valid Social Security number."
+msgstr "Sisesta korrektne sotsiaalturvatunnus."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Sisesta korrektne käibemaksukohuslase kood."
+
+#: contrib/localflavor/jp/forms.py:17
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Sisesta postiindeks kujul XXXXXXX või XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokkaido"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr "Aomori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr "Iwate"
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr "Miyagi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr "Akita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr "Yamagata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr "Fukushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr "Ibaraki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr "Tochigi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr "Gunma"
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr "Saitama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr "Chiba"
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokyo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr "Kanagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr "Yamanashi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr "Nagano"
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr "Niigata"
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr "Toyama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr "Ishikawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr "Fukui"
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr "Gifu"
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr "Shizuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr "Aichi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr "Mie"
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr "Shiga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr "Kyoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Osaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr "Hyogo"
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr "Nara"
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr "Wakayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr "Tottori"
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr "Shimane"
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr "Okayama"
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hiroshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr "Yamaguchi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr "Tokushima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr "Kagawa"
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr "Ehime"
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr "Kochi"
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr "Fukuoka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr "Saga"
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr "Nagasaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr "Kumamoto"
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr "Oita"
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr "Miyazaki"
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr "Kagoshima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinawa"
+
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr "Aguascalientes"
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr "Baja California"
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr "Baja California Sur"
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr "Campeche"
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr "Chihuahua"
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr "Chiapas"
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr "Coahuila"
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr "Colima"
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr "Distrito Federal"
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr "Durango"
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr "Guerrero"
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr "Guanajuato"
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr "Hidalgo"
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr "Jalisco"
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr "Estado de México"
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr "Michoacán"
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr "Morelos"
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr "Nayarit"
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr "Nuevo León"
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr "Oaxaca"
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr "Puebla"
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr "Querétaro"
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr "Quintana Roo"
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr "Sinaloa"
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr "San Luis Potosí"
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr "Sonora"
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr "Tabasco"
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr "Tamaulipas"
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr "Tlaxcala"
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr "Veracruz"
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr "Yucatán"
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr "Zacatecas"
+
+#: contrib/localflavor/nl/forms.py:21
+msgid "Enter a valid postal code"
+msgstr "Sisesta kehtiv postiindeks"
+
+#: contrib/localflavor/nl/forms.py:52
+msgid "Enter a valid phone number"
+msgstr "Sisesta kehtiv telefoninumber"
+
+#: contrib/localflavor/nl/forms.py:78
+msgid "Enter a valid SoFi number"
+msgstr "Sisesta kehtiv SoFi number"
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr "Drenthe"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "Flevoland"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "Friisimaa"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "Gelderland"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "Groningeni provints"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "Limburgi provints"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "Põhja-Brabant"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "Põhja-Holland"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "Overijssel"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "Utrechti provints"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "Zeeland"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "Lõuna-Holland"
+
+#: contrib/localflavor/no/forms.py:33
+msgid "Enter a valid Norwegian social security number."
+msgstr "Sisesta kehtiv Norra sotsiaalturvatunnus."
+
+#: contrib/localflavor/pe/forms.py:24
+msgid "This field requires 8 digits."
+msgstr "Sellel väljal peab olema 8 numbrit."
+
+#: contrib/localflavor/pe/forms.py:52
+msgid "This field requires 11 digits."
+msgstr "Sellel väljal peab olema 11 numbrit."
+
+#: contrib/localflavor/pl/forms.py:39
+msgid "National Identification Number consists of 11 digits."
+msgstr "Riiklik isikukood koosneb 11 numbrist."
+
+#: contrib/localflavor/pl/forms.py:40
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Isikukoodil on vale kontrollsumma."
+
+#: contrib/localflavor/pl/forms.py:72
+msgid ""
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr ""
+"Sisesta maksumaksja number (NIP) formaadis XXX-XXX-XX-XX või XX-XX-XXX-XXX."
+
+#: contrib/localflavor/pl/forms.py:73
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "Maksukohustusnumbril (NIP) on vale kontrollsumma."
+
+#: contrib/localflavor/pl/forms.py:112
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr "Riikliku Äriregistri number (REGON) koosneb 7 või 9 numbrist."
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "Riiklikul Äriregistri numbril (REGON) on vale kontrollsumma."
+
+#: contrib/localflavor/pl/forms.py:156
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Sisesta postiindeks kujul XX-XXX."
+
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Alam-Sileesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Kujawy-Pomorze"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Lublin"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Lubusz"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Łódź"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Väike-Poola"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Masoovia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Opole"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Podkarpacie"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Podlaasia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Pomorze"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Sileesia"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Święty Krzyżi"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Warmia-Masuuria"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Suur-Poola"
+
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "Lääne-Pomorze"
+
+#: contrib/localflavor/sk/forms.py:30
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Sisesta postiindeks kujul XXXXX või XXX XX."
+
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Banska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Banska Stiavnica"
+
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Bardejov"
+
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Banovce nad Bebravou"
+
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Brezno"
+
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Bratislava I"
+
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Bratislava II"
+
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Bratislava III"
+
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Bratislava IV"
+
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Bratislava V"
+
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Bytca"
+
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Cadca"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Detva"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolny Kubin"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunajska Streda"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenne"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Kezmarok"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Komarno"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Kosice I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Kosice II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Kosice III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Kosice IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Kosice - okolie"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucke Nove Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Levoca"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovsky Mikulas"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Lucenec"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Namestovo"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nove Mesto nad Vahom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nove Zamky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizanske"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Piestany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltar"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprad"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Povazska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Presov"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Puchov"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Revuca"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavska Sobota"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Roznava"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Ruzomberok"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Spisska Nova Ves"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stara Lubovna"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidnik"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Sala"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topolcany"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebisov"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Trencin"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turcianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Tvrdosin"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Velky Krtis"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Toplou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlate Moravce"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zvolen"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Zarnovica"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Ziar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Zilina"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "Banská Bystrica regioon"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "Bratislava regioon"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "Košice regioon"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "Nitra regioon"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "Prešovi regioon"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "Trenšíni regioon"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "Trnava regioon"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "Žilina regioon"
+
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "Sisesta kehtiv postiindeks."
+
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr "Bedfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr "Buckinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr "Cheshire"
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr "Cornwall and Isles of Scilly"
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr "Cumbria"
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr "Derbyshire"
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr "Devon"
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr "Dorset"
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr "Durham"
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr "East Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr "Essex"
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr "Gloucestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr "Suur-London"
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr "Suur-Manchester"
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr "Hampshire"
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr "Hertfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr "Kent"
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr "Lancashire"
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr "Leicestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr "Lincolnshire"
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr "Merseyside"
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr "Norfolk"
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr "North Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr "Northamptonshire"
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr "Northumberland"
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr "Nottinghamshire"
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr "Oxfordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr "Shropshire"
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr "Somerset"
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr "Lõuna-Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr "Staffordshire"
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr "Suffolk"
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr "Surrey"
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr "Tyne ja Wear"
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr "Warwickshire"
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr "West Midlands"
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr "Lääne-Sussex"
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr "Lääne-Yorkshire"
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr "Wiltshire"
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr "Worcestershire"
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr "County Antrim"
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr "County Armagh"
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr "County Down"
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr "County Fermanagh"
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr "County Londonderry"
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr "County Tyrone"
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr "Clwyd"
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr "Dyfed"
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr "Gwent"
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr "Gwynedd"
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr "Mid Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr "Powys"
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr "South Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr "Lääne-Glamorgan"
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr "Piirid"
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr "Kesk-Šotimaa"
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr "Dumfries and Galloway"
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr "Fife"
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr "Grampian"
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr "Highland"
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr "Lothian"
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr "Orkney saared"
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr "Shetlandi saared"
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr "Strathclyde"
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr "Tayside"
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr "Western Isles"
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr "Inglismaa"
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr "Põhja-Iirimaa"
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr "Šotimaa"
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr "Wales"
+
+#: contrib/localflavor/us/forms.py:16
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Sisesta postiindeks kujul XXXXX või XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:54
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Sisesta kehtiv U.S. Social Security number formaadis XXX-XX-XXXX."
+
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr "Sisesta kehtiv Lõuna-Aafrika ID-number"
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr "Sisesta kehtiv Lõuna-Aafrika postiindeks"
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr "Eastern Cape"
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr "Free State"
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr "Gauteng"
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr "KwaZulu-Natal"
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr "Limpopo"
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr "Mpumalanga"
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr "Northern Cape"
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr "North West"
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr "Western Cape"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "ümbersuunatav asukoht"
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+"See peaks olema absoluutne asukoht, v.a. domeeninimi. Näide: '/events/"
+"search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "suuna aadressile"
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr ""
+"See võib olla kas absoluutne asukoht (nagu ülemine) või täielik URL algusega "
+"'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "suunamine"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "suunamised"
+
+#: contrib/sessions/models.py:41
+msgid "session key"
+msgstr "sessioonivõti"
+
+#: contrib/sessions/models.py:42
+msgid "session data"
+msgstr "sessiooni andmed"
+
+#: contrib/sessions/models.py:43
+msgid "expire date"
+msgstr "kehtivusaja lõpp"
+
+#: contrib/sessions/models.py:48
+msgid "session"
+msgstr "sessioon"
+
+#: contrib/sessions/models.py:49
+msgid "sessions"
+msgstr "sessioonid"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "domeeninimi"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "hüüdnimi"
+
+#: contrib/sites/models.py:37
+msgid "site"
+msgstr "sait"
+
+#: contrib/sites/models.py:38
+msgid "sites"
+msgstr "saidid"
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "See väärtus võib sisaldada ainult tähti, numbreid ja alakriipse."
+
+#: core/validators.py:76
+msgid ""
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
+msgstr ""
+"See väärtus võib sisaldada ainult tähti, numbreid, alakriipse, mõttekriipse "
+"või kaldkriipse."
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr ""
+"See väärtus võib sisaldada ainult tähti, nubmreid, alakriipse ja sidekriipse."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "Suured tähed ei ole siin lubatud."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "Väiksed tähed ei ole siin lubatud."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Sisestage ainult komaga eraldatud numbreid."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Sisestage korrektseid komaga eraldatud e-posti aadresseid."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Palun sisestage korrektne IP aadress."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "Tühjad väärtused ei ole siin lubatud."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Mittenumbrilised märgid ei ole siin lubatud."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "See väärtus ei tohi sisaldada ainult numbreid."
+
+#: core/validators.py:128 newforms/fields.py:152
+msgid "Enter a whole number."
+msgstr "Sisestage täisarv."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Siin on lubatud ainult tähestiku tähed."
+
+#: core/validators.py:147
+msgid "Year must be 1900 or later."
+msgstr "Aasta peab olema 1900 või hiljem."
+
+#: core/validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Ebakorrektne kuupäev: %s"
+
+#: core/validators.py:156 db/models/fields/__init__.py:548
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Sisestage korrektne kuupäev formaadis AAAA-KK-PP."
+
+#: core/validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr "Sisestage korrektne kellaaeg formaadis TT:MM"
+
+#: core/validators.py:165 db/models/fields/__init__.py:625
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Sisestage korrektne kuupäev ja kellaaeg formaadis AAAA-KK-PP TT:MM."
+
+#: core/validators.py:170 newforms/fields.py:403
+msgid "Enter a valid e-mail address."
+msgstr "Sisestage korrektne e-posti aadress:"
+
+#: core/validators.py:182 core/validators.py:474 newforms/fields.py:433
+#: oldforms/__init__.py:687
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Ühtegi faili ei saadetud. Kontrollige vormi kodeeringutüüpi."
+
+#: core/validators.py:193 newforms/fields.py:459
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Laadige korrektne pilt. Fail, mille laadisite, ei olnud kas pilt või oli "
+"fail vigane."
+
+#: core/validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s ei viita korrektsele pildile."
+
+#: core/validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr ""
+"Telefoninumbrid peavad olema formaadis XXX-XXX-XXXX. \"%s\" on ebakorrektne."
+
+#: core/validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s ei viita korrektsele QuickTime videole."
+
+#: core/validators.py:216
+msgid "A valid URL is required."
+msgstr "Korrektne URL on nõutav."
+
+#: core/validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Korrektne HTML on nõutav. Vead on järgnevad:\n"
+"%s"
+
+#: core/validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Vigane XML: %s"
+
+#: core/validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Vigane URL: %s"
+
+#: core/validators.py:259 core/validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL %s on katkine."
+
+#: core/validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Sisestage korrektne USA osariigilühend."
+
+#: core/validators.py:281
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Jälgige oma keelekasutust. Sõna %s ei ole lubatud."
+msgstr[1] "Jälgige oma keelekasutust. Sõnad %s ei ole lubatud."
+
+#: core/validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "See väli peab sobima väljaga '%s'."
+
+#: core/validators.py:307
+msgid "Please enter something for at least one field."
+msgstr "Palun täitke vähemalt üks väli."
+
+#: core/validators.py:316 core/validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr "Palun täitke mõlemad lahtrid või jätke mõlemad tühjaks."
+
+#: core/validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "See lahter on kohustuslik, kui %(field)s on %(value)s"
+
+#: core/validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "See lahter on nõutav, kui %(field)s ei ole %(value)s"
+
+#: core/validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr "Mitte-unikaalsed väärtused ei ole lubatud."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "See väärtus peab olema vahemikus %(lower)s kuni %(upper)s."
+
+#: core/validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr "See väärtus peab olema vähemalt %s."
+
+#: core/validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "See väärtus ei tohi olla rohkem kui %s."
+
+#: core/validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "See väärtus peab jaguma arvuga %s."
+
+#: core/validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr "Palun sisestage korrektne kümnendarv."
+
+#: core/validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Palun sisestage %s-kohaline kümnendarv."
+msgstr[1] "Palun sisestage %s-kohaline kümnendarv."
+
+#: core/validators.py:447
+#, python-format
+msgid ""
+"Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural ""
+"Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Palun sisestage korrektne kümnendarv, mille täisosa on %s-kohaline"
+msgstr[1] "Palun sisestage korrektne kümnendarv, mille täisosa on %s-kohaline"
+
+#: core/validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural ""
+"Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] ""
+"Palun sisestage korrektne kümnendarv, millel on maksimaalselt %s komakoht."
+msgstr[1] ""
+"Palun sisestage korrektne kümnendarv, millel on maksimaalselt %s komakohta."
+
+#: core/validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr "Palun sisestage korrektne murdarv."
+
+#: core/validators.py:467
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Veenduge, et üleslaetud fail on vähemalt %s baiti suur."
+
+#: core/validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Veenduge, et üleslaetud fail ei ole suurem kui %s baiti."
+
+#: core/validators.py:485
+msgid "The format for this field is wrong."
+msgstr "Selle lahtri formaat on ebakorrektne."
+
+#: core/validators.py:500
+msgid "This field is invalid."
+msgstr "See lahter on ebakorrektne."
+
+#: core/validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Ei õnnestunud leida midagi aadressilt %s."
+
+#: core/validators.py:539
+#, python-format
+msgid ""
+"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "URL %(url)s tagastas sobimatu Content-Type päise '%(contenttype)s'."
+
+#: core/validators.py:572
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr ""
+"Palun sulgege sulgemata jäänud %(tag)s lipik real %(line)s. (Rea algus: \"%"
+"(start)s\".)"
+
+#: core/validators.py:576
+#, python-format
+msgid ""
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Rida %(line)s sisaldab teksti, mis ei ole selles kontekstis lubatud. (Rea "
+"algus: \"%(start)s\".)"
+
+#: core/validators.py:581
+#, python-format
+msgid ""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"Real %(line)s on vigane attribute \"%(attr)s\". (Rea algus: \"%(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid ""
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
+msgstr ""
+"Real %(line)s on vigane lipik \"<%(tag)s>\". (Rea algus: \"%(start)s\".)"
+
+#: core/validators.py:590
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Real %(line)s on lipik, millel on puudu üks või enam nõutavatest "
+"atribuutidest. (Rea algus: \"%(start)s\".)"
+
+#: core/validators.py:595
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Real %(line)s on atribuut \"%(attr)s\", mille väärtus on vigane. (Rea algus: "
+"\"%(start)s\".)"
+
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+"%(type)s tüüpi %(object)s on juba olemas etteantud väärtustele %(field)s."
+
+#: db/models/fields/__init__.py:54
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr ""
+
+#: db/models/fields/__init__.py:179 db/models/fields/__init__.py:348
+#: db/models/fields/__init__.py:780 db/models/fields/__init__.py:791
+#: newforms/fields.py:46 oldforms/__init__.py:374
+msgid "This field is required."
+msgstr "See lahter on nõutav."
+
+#: db/models/fields/__init__.py:448
+msgid "This value must be an integer."
+msgstr "See väärtus peab olema täisarv."
+
+#: db/models/fields/__init__.py:487
+msgid "This value must be either True or False."
+msgstr "See väärtus peab olema kas tõene või väär"
+
+#: db/models/fields/__init__.py:511
+msgid "This field cannot be null."
+msgstr "See lahter ei tohi olla tühi."
+
+#: db/models/fields/__init__.py:689
+msgid "This value must be a decimal number."
+msgstr "See väärtus peab olema kümnendarv."
+
+#: db/models/fields/__init__.py:800
+msgid "Enter a valid filename."
+msgstr "Sisestage korrektne failinimi."
+
+#: db/models/fields/__init__.py:981
+msgid "This value must be either None, True or False."
+msgstr "See väärtus peab olema kas tühi, tõene või väär."
+
+#: db/models/fields/related.py:94
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Palun sisestage korrektne %s."
+
+#: db/models/fields/related.py:721
+msgid "Separate multiple IDs with commas."
+msgstr "Eraldage mitu ID-d komaga."
+
+#: db/models/fields/related.py:723
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Et valida mitu, hoidke all \"Control\"-nuppu (Maci puhul \"Command\")."
+
+#: db/models/fields/related.py:770
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural ""
+"Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Palun sisestage korrektne %(self)s ID. Väärtus %(value)r on vigane."
+msgstr[1] ""
+"Palun sisestage korrektne %(self)s ID. Väärtused %(value)r on vigased."
+
+#: newforms/fields.py:47
+msgid "Enter a valid value."
+msgstr "Sisestage korrektne väärtus."
+
+#: newforms/fields.py:124
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr ""
+"Veenduge, et see väärtus sisaldab kõige rohkem %(max)d tähemärki (hetkel on %"
+"(length)d)."
+
+#: newforms/fields.py:125
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr ""
+"Veenduge, et see väärtus sisaldab vähemalt %(min)d märki (hetkel on %(length)"
+"d)."
+
+#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Veenduge, et see väärtus on väiksem või võrdne kui %s."
+
+#: newforms/fields.py:154 newforms/fields.py:183 newforms/fields.py:212
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Veenduge, et see väärtus on suurem või võrdne kui %s."
+
+#: newforms/fields.py:181 newforms/fields.py:210
+msgid "Enter a number."
+msgstr "Sisestage arv."
+
+#: newforms/fields.py:213
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Veenduge, et kogu numbrikohtade arv ei ületaks %s."
+
+#: newforms/fields.py:214
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Veenduge, et komakohtade arv ei ületaks %s."
+
+#: newforms/fields.py:215
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Veenduge, et komast vasakul olevaid numbreid ei oleks rohkem kui %s."
+
+#: newforms/fields.py:263 newforms/fields.py:751
+msgid "Enter a valid date."
+msgstr "Sisestage korrektne kuupäev."
+
+#: newforms/fields.py:296 newforms/fields.py:752
+msgid "Enter a valid time."
+msgstr "Sisestage korrektne kellaaeg."
+
+#: newforms/fields.py:335
+msgid "Enter a valid date/time."
+msgstr "Sisestage korrektne kuupäev ja kellaaeg."
+
+#: newforms/fields.py:434
+msgid "No file was submitted."
+msgstr "Ühtegi faili ei saadetud."
+
+#: newforms/fields.py:435 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr "Saadetud fail on tühi."
+
+#: newforms/fields.py:497
+msgid "Enter a valid URL."
+msgstr "Sisestage korrektne URL."
+
+#: newforms/fields.py:498
+msgid "This URL appears to be a broken link."
+msgstr "See URL näib olevat katkine."
+
+#: newforms/fields.py:560 newforms/models.py:299
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Valige korrektne väärtus. Valitud väärtus ei ole valitav."
+
+#: newforms/fields.py:599
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Valige korrektne väärtus. %(value)s ei ole valitav."
+
+#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:371
+msgid "Enter a list of values."
+msgstr "Sisestage väärtuste nimekiri."
+
+#: newforms/fields.py:780
+msgid "Enter a valid IPv4 address."
+msgstr "Sisestage korrektne IPv4 aadress."
+
+#: newforms/models.py:372
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Valige korrektne väärtus. %s ei ole valitav."
+
+#: oldforms/__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Veenduge, et tekst on alla %s tähemärgi."
+msgstr[1] "Veenduge, et tekst on alla %s tähemärgi."
+
+#: oldforms/__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr "Reavahetused ei ole lubatud."
+
+#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Valige korrektne väärtus; '%(data)s' ei kuulu valikutesse %(choices)s."
+
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Sisestage täisarv vahemikus -32 768 kuni 32 767."
+
+#: oldforms/__init__.py:755
+msgid "Enter a positive number."
+msgstr "Sisestage postiivne arv."
+
+#: oldforms/__init__.py:765
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Sisestage täisarv vahemikus 0 kuni 32 767."
+
+#: template/defaultfilters.py:698
+msgid "yes,no,maybe"
+msgstr "jah,ei,võib-olla"
+
+#: template/defaultfilters.py:729
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d bait"
+msgstr[1] "%(size)d baiti"
+
+#: template/defaultfilters.py:731
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:733
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:734
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.l."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "e.l."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PL"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "EL"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "südaöö"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "keskpäev"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "esmaspäev"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "teisipäev"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "kolmapäev"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "neljapäev"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "reede"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "laupäev"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "pühapäev"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "esmasp."
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "teisip."
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "kolmap."
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "neljap."
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "reede"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "laup."
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "pühap."
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "jaanuar"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "veebruar"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "märts"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "aprill"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "mai"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "juuni"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "juuli"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "august"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "september"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "oktoober"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "november"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "detsember"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "jaan"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "veeb"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "märts"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "apr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "mai"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "jun"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "jul"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "aug"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "sept"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "okt"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "dets"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "Jaan."
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "Veeb."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "Aug."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "Sept."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "Okt."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "Nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "Dets."
+
+#: utils/text.py:127
+msgid "or"
+msgstr "või"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "aasta"
+msgstr[1] "aastat"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "kuu"
+msgstr[1] "kuud"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "nädal"
+msgstr[1] "nädalat"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "päev"
+msgstr[1] "päeva"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "tund"
+msgstr[1] "tundi"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minut"
+msgstr[1] "minutit"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minutit"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:403
+msgid "DATE_FORMAT"
+msgstr "N j, Y"
+
+#: utils/translation/trans_real.py:404
+msgid "DATETIME_FORMAT"
+msgstr "j. N Y, H:i"
+
+#: utils/translation/trans_real.py:405
+msgid "TIME_FORMAT"
+msgstr "H:i"
+
+#: utils/translation/trans_real.py:421
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:422
+msgid "MONTH_DAY_FORMAT"
+msgstr "j. F"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s edukalt loodud."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s edukalt muudetud."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s kustutatud."
diff --git a/django/conf/locale/et/LC_MESSAGES/djangojs.mo b/django/conf/locale/et/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000000..2dc026ef4f
Binary files /dev/null and b/django/conf/locale/et/LC_MESSAGES/djangojs.mo differ
diff --git a/django/conf/locale/et/LC_MESSAGES/djangojs.po b/django/conf/locale/et/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000..05fe4bd875
--- /dev/null
+++ b/django/conf/locale/et/LC_MESSAGES/djangojs.po
@@ -0,0 +1,115 @@
+# Estonian translation for the Django Project.
+# Copyright (C) 2008, Django Project
+# This file is distributed under the same license as the django package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-06-02 19:42+0300\n"
+"PO-Revision-Date: 2008-06-17 12:29+0300\n"
+"Last-Translator: Erik Allik \n"
+"Language-Team: Django-i18n \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Saadaval %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Vali kõik"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Lisa"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Eemalda"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Valitud %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Tee valik(ud) ja klõpsa"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Puhasta kõik"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr "Jaanuar Veebruar Märts Aprill Mai Juuni Juuli August September Oktoober November Detsember"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "P E T K N R L"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Pühapäev Esmaspäev Teisipäev Kolmapäev Neljapäev Reede Laupäev"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Näita"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Varja"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Praegu"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Kell"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Vali aeg"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Kesköö"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 hommikul"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Keskpäev"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Tühista"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Täna"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalender"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Eile"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Homme"
diff --git a/django/conf/locale/he/LC_MESSAGES/django.mo b/django/conf/locale/he/LC_MESSAGES/django.mo
index 9aca2b263b..bd4095655e 100644
Binary files a/django/conf/locale/he/LC_MESSAGES/django.mo and b/django/conf/locale/he/LC_MESSAGES/django.mo differ
diff --git a/django/conf/locale/he/LC_MESSAGES/django.po b/django/conf/locale/he/LC_MESSAGES/django.po
index 996d940338..8179773960 100644
--- a/django/conf/locale/he/LC_MESSAGES/django.po
+++ b/django/conf/locale/he/LC_MESSAGES/django.po
@@ -1,202 +1,207 @@
# translation of Django.
-# Copyright (C) 2006 THE Django'S COPYRIGHT HOLDER
+# Copyright (C) 2008 The Django Project
# This file is distributed under the same license as the Django package.
-# Meir Kriheli , 2007.
-#
-#
msgid ""
msgstr ""
"Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-11-10 02:19+0200\n"
-"PO-Revision-Date: 2007-10-07 01:31+0200\n"
+"POT-Creation-Date: 2008-06-15 23:03+0300\n"
+"PO-Revision-Date: 2008-06-17 12:53+0200\n"
"Last-Translator: Meir Kriheli \n"
-"Language-Team: Hebrew \n"
+"Language-Team: Django-i18n \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: conf/global_settings.py:39
-msgid "Arabic"
-msgstr "ערבית - Arabic"
-
-#: conf/global_settings.py:40
-msgid "Bengali"
-msgstr "בנגאלית - Bengali"
-
-#: conf/global_settings.py:41
-msgid "Bulgarian"
-msgstr "בולגרית - Bulgarian"
-
-#: conf/global_settings.py:42
-msgid "Catalan"
-msgstr "קאטלונית - Catalan"
-
-#: conf/global_settings.py:43
-msgid "Czech"
-msgstr "צ'כית - Czech"
-
#: conf/global_settings.py:44
-msgid "Welsh"
-msgstr "וולשית - Welsh"
+msgid "Arabic"
+msgstr "ערבית"
#: conf/global_settings.py:45
-msgid "Danish"
-msgstr "דנית - Danish"
+msgid "Bengali"
+msgstr "בנגאלית"
#: conf/global_settings.py:46
-msgid "German"
-msgstr "גרמנית - German"
+msgid "Bulgarian"
+msgstr "בולגרית"
#: conf/global_settings.py:47
-msgid "Greek"
-msgstr "יוונית - Greek"
+msgid "Catalan"
+msgstr "קאטלונית"
#: conf/global_settings.py:48
-msgid "English"
-msgstr "אנגלית - English"
+msgid "Czech"
+msgstr "צ'כית"
#: conf/global_settings.py:49
-msgid "Spanish"
-msgstr "ספרדית - Spanish"
+msgid "Welsh"
+msgstr "וולשית"
#: conf/global_settings.py:50
-msgid "Argentinean Spanish"
-msgstr "ספרדית ארגנטינאית - Argentinean Spanish"
+msgid "Danish"
+msgstr "דנית"
#: conf/global_settings.py:51
-msgid "Persian"
-msgstr "פרסית - Persian"
+msgid "German"
+msgstr "גרמנית"
#: conf/global_settings.py:52
-msgid "Finnish"
-msgstr "פינית - Finnish"
+msgid "Greek"
+msgstr "יוונית"
#: conf/global_settings.py:53
-msgid "French"
-msgstr "צרפתית - French"
+msgid "English"
+msgstr "אנגלית"
#: conf/global_settings.py:54
-msgid "Gaeilge"
-msgstr "גיילית אירית - Gaeilge"
+msgid "Spanish"
+msgstr "ספרדית"
#: conf/global_settings.py:55
-msgid "Galician"
-msgstr "גאליצית - Galician"
+msgid "Argentinean Spanish"
+msgstr "ספרדית ארגנטינאית"
#: conf/global_settings.py:56
-msgid "Hungarian"
-msgstr "הונגרית - Hungarian"
+msgid "Basque"
+msgstr "בסקית"
#: conf/global_settings.py:57
-msgid "Hebrew"
-msgstr "עברית - Hebrew"
+msgid "Persian"
+msgstr "פרסית"
#: conf/global_settings.py:58
-msgid "Croatian"
-msgstr "קרואטית - Croatian"
+msgid "Finnish"
+msgstr "פינית"
#: conf/global_settings.py:59
-msgid "Icelandic"
-msgstr "איסלנדית - Icelandic"
+msgid "French"
+msgstr "צרפתית"
#: conf/global_settings.py:60
-msgid "Italian"
-msgstr "איטלקית - Italian"
+msgid "Irish"
+msgstr "אירית"
#: conf/global_settings.py:61
-msgid "Japanese"
-msgstr "יפנית - Japanese"
+msgid "Galician"
+msgstr "גאליצית"
#: conf/global_settings.py:62
-msgid "Korean"
-msgstr "קוריאנית - Korean"
+msgid "Hungarian"
+msgstr "הונגרית"
#: conf/global_settings.py:63
-msgid "Khmer"
-msgstr "חמר - Khmer"
+msgid "Hebrew"
+msgstr "עברית"
#: conf/global_settings.py:64
-msgid "Kannada"
-msgstr "קנדה - Kannada"
+msgid "Croatian"
+msgstr "קרואטית"
#: conf/global_settings.py:65
-msgid "Latvian"
-msgstr "לטבית - Latvian"
+msgid "Icelandic"
+msgstr "איסלנדית"
#: conf/global_settings.py:66
-msgid "Macedonian"
-msgstr "מקדונית - Macedonian"
+msgid "Italian"
+msgstr "איטלקית"
#: conf/global_settings.py:67
-msgid "Dutch"
-msgstr "הולנדית - Dutch"
+msgid "Japanese"
+msgstr "יפנית"
#: conf/global_settings.py:68
-msgid "Norwegian"
-msgstr "נורווגית - Norwegian"
+msgid "Georgian"
+msgstr "גיאורגית"
#: conf/global_settings.py:69
-msgid "Polish"
-msgstr "פולנית - Polish"
+msgid "Korean"
+msgstr "קוריאנית"
#: conf/global_settings.py:70
-msgid "Portugese"
-msgstr "פורטוגזית - Portugese"
+msgid "Khmer"
+msgstr "חמר"
#: conf/global_settings.py:71
-msgid "Brazilian"
-msgstr "ברזילאית - Brazilian"
+msgid "Kannada"
+msgstr "קנדית"
#: conf/global_settings.py:72
-msgid "Romanian"
-msgstr "רומנית - Romanian"
+msgid "Latvian"
+msgstr "לטבית"
#: conf/global_settings.py:73
-msgid "Russian"
-msgstr "רוסית - Russian"
+msgid "Macedonian"
+msgstr "מקדונית"
#: conf/global_settings.py:74
-msgid "Slovak"
-msgstr "סלובקית - Slovak"
+msgid "Dutch"
+msgstr "הולנדית"
#: conf/global_settings.py:75
-msgid "Slovenian"
-msgstr "סלובנית - Slovenian"
+msgid "Norwegian"
+msgstr "נורווגית"
#: conf/global_settings.py:76
-msgid "Serbian"
-msgstr "סרבית - Serbian"
+msgid "Polish"
+msgstr "פולנית"
#: conf/global_settings.py:77
-msgid "Swedish"
-msgstr "שוודית - Swedish"
+msgid "Portugese"
+msgstr "פורטוגזית"
#: conf/global_settings.py:78
+msgid "Brazilian Portuguese"
+msgstr "פורטוגזית ברזילאית"
+
+#: conf/global_settings.py:79
+msgid "Romanian"
+msgstr "רומנית"
+
+#: conf/global_settings.py:80
+msgid "Russian"
+msgstr "רוסית"
+
+#: conf/global_settings.py:81
+msgid "Slovak"
+msgstr "סלובקית"
+
+#: conf/global_settings.py:82
+msgid "Slovenian"
+msgstr "סלובנית"
+
+#: conf/global_settings.py:83
+msgid "Serbian"
+msgstr "סרבית"
+
+#: conf/global_settings.py:84
+msgid "Swedish"
+msgstr "שוודית"
+
+#: conf/global_settings.py:85
msgid "Tamil"
msgstr "טמילית"
-#: conf/global_settings.py:79
+#: conf/global_settings.py:86
msgid "Telugu"
-msgstr "טלגו - Telugu"
+msgstr "טלגו"
-#: conf/global_settings.py:80
+#: conf/global_settings.py:87
msgid "Turkish"
-msgstr "טורקית - Turkish"
+msgstr "טורקית"
-#: conf/global_settings.py:81
+#: conf/global_settings.py:88
msgid "Ukrainian"
-msgstr "אוקראינית - Ukrainian"
+msgstr "אוקראינית"
-#: conf/global_settings.py:82
+#: conf/global_settings.py:89
msgid "Simplified Chinese"
-msgstr "סינית פשוטה - Simplified·Chinese"
+msgstr "סינית פשוטה"
-#: conf/global_settings.py:83
+#: conf/global_settings.py:90
msgid "Traditional Chinese"
-msgstr "סינית מסורתית - Traditional·Chinese"
+msgstr "סינית מסורתית"
-#: contrib/admin/filterspecs.py:42
+#: contrib/admin/filterspecs.py:44
#, python-format
msgid ""
"
By %s:
\n"
@@ -205,71 +210,71 @@ msgstr ""
"
ע\"י %s:
\n"
"
\n"
-#: contrib/admin/filterspecs.py:72 contrib/admin/filterspecs.py:90
-#: contrib/admin/filterspecs.py:145 contrib/admin/filterspecs.py:171
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
msgid "All"
msgstr "הכל"
-#: contrib/admin/filterspecs.py:111
+#: contrib/admin/filterspecs.py:113
msgid "Any date"
msgstr "כל תאריך"
-#: contrib/admin/filterspecs.py:112
+#: contrib/admin/filterspecs.py:114
msgid "Today"
msgstr "היום"
-#: contrib/admin/filterspecs.py:115
+#: contrib/admin/filterspecs.py:117
msgid "Past 7 days"
msgstr "בשבוע האחרון"
-#: contrib/admin/filterspecs.py:117
+#: contrib/admin/filterspecs.py:119
msgid "This month"
msgstr "החודש"
-#: contrib/admin/filterspecs.py:119
+#: contrib/admin/filterspecs.py:121
msgid "This year"
msgstr "השנה"
-#: contrib/admin/filterspecs.py:145 newforms/widgets.py:221
-#: oldforms/__init__.py:591
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
msgid "Yes"
msgstr "כן"
-#: contrib/admin/filterspecs.py:145 newforms/widgets.py:221
-#: oldforms/__init__.py:591
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
msgid "No"
msgstr "לא"
-#: contrib/admin/filterspecs.py:152 newforms/widgets.py:221
-#: oldforms/__init__.py:591
+#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231
+#: oldforms/__init__.py:592
msgid "Unknown"
msgstr "לא ידוע"
-#: contrib/admin/models.py:17
+#: contrib/admin/models.py:18
msgid "action time"
msgstr "זמן פעולה"
-#: contrib/admin/models.py:20
+#: contrib/admin/models.py:21
msgid "object id"
msgstr "מזהה אובייקט"
-#: contrib/admin/models.py:21
+#: contrib/admin/models.py:22
msgid "object repr"
msgstr "ייצוג אובייקט"
-#: contrib/admin/models.py:22
+#: contrib/admin/models.py:23
msgid "action flag"
msgstr "דגל פעולה"
-#: contrib/admin/models.py:23
+#: contrib/admin/models.py:24
msgid "change message"
msgstr "הערה לשינוי"
-#: contrib/admin/models.py:26
+#: contrib/admin/models.py:27
msgid "log entry"
msgstr "רישום יומן"
-#: contrib/admin/models.py:27
+#: contrib/admin/models.py:28
msgid "log entries"
msgstr "רישומי יומן"
@@ -468,7 +473,7 @@ msgid "Password:"
msgstr "סיסמה:"
#: contrib/admin/templates/admin/login.html:25
-#: contrib/admin/views/decorators.py:24
+#: contrib/admin/views/decorators.py:31
msgid "Log in"
msgstr "כניסה"
@@ -536,7 +541,7 @@ msgid ""
"First, enter a username and password. Then, you'll be able to edit more user "
"options."
msgstr ""
-"ראשית יש להזין שם משתמש וסיסמה. לאחר מכן יהיה ביכולתך לערוך אפשרויותנוספות "
+"ראשית יש להזין שם משתמש וסיסמה. לאחר מכן יהיה ביכולתך לערוך אפשרויות נוספות "
"עבור המשתמש"
#: contrib/admin/templates/admin/auth/user/add_form.html:12
@@ -556,7 +561,7 @@ msgstr "סיסמה (שוב)"
#: contrib/admin/templates/admin/auth/user/add_form.html:24
#: contrib/admin/templates/admin/auth/user/change_password.html:39
msgid "Enter the same password as above, for verification."
-msgstr "יש להזין את אותה סיסנה שוב,לאימות."
+msgstr "יש להזין את אותה סיסמה שוב,לאימות."
#: contrib/admin/templates/admin/auth/user/change_password.html:27
#, python-format
@@ -654,7 +659,7 @@ msgid ""
"Please enter your old password, for security's sake, and then enter your new "
"password twice so we can verify you typed it in correctly."
msgstr ""
-"נא להזין את סיסמתך הישנה, למען האבטחה, ולאחר מכן את סיסמתךהחדשה פעמיים כדי "
+"נא להזין את סיסמתך הישנה, למען האבטחה, ולאחר מכן את סיסמתך החדשה פעמיים כדי "
"שנוכל לוודא שהקלדת אותה כראוי."
#: contrib/admin/templates/registration/password_change_form.html:16
@@ -728,7 +733,7 @@ msgid ""
"Forgotten your password? Enter your e-mail address below, and we'll reset "
"your password and e-mail the new one to you."
msgstr ""
-"שכחת את סיסמתך ? נא להזין את כתובת הדוא\"ל מתחת, אנו נאפסאת הסיסמה ונשלח את "
+"שכחת את סיסמתך ? נא להזין את כתובת הדוא\"ל מתחת, אנו נאפס את הסיסמה ונשלח את "
"החדשה אליך."
#: contrib/admin/templates/registration/password_reset_form.html:16
@@ -755,17 +760,17 @@ msgstr "הנוכחי."
msgid "Change:"
msgstr "שינוי:"
-#: contrib/admin/templatetags/admin_list.py:254
+#: contrib/admin/templatetags/admin_list.py:257
msgid "All dates"
msgstr "כל התאריכים"
-#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:264
+#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "הוספת %(name)s \"%(obj)s\" בוצעה בהצלחה."
-#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:268
-#: contrib/admin/views/main.py:354
+#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
msgid "You may edit it again below."
msgstr "ניתן לערוך שוב מתחת"
@@ -782,21 +787,21 @@ msgstr "הסיסמה שונתה בהצלחה."
msgid "Change password: %s"
msgstr "שינוי סיסמה: %s"
-#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:60
+#: contrib/admin/views/decorators.py:17 contrib/auth/forms.py:60
msgid ""
"Please enter a correct username and password. Note that both fields are case-"
"sensitive."
msgstr ""
"נא להזין שם משתמש וסיסמה נכונים. בשני השדות גודל האותיות האנגליות משנה."
-#: contrib/admin/views/decorators.py:62
+#: contrib/admin/views/decorators.py:69
msgid ""
"Please log in again, because your session has expired. Don't worry: Your "
"submission has been saved."
msgstr ""
"נא להתחבר שוב, מאחר ופג תוקף ההתחברות הנוכחית. אל דאגה: המידע ששלחת נשמר."
-#: contrib/admin/views/decorators.py:69
+#: contrib/admin/views/decorators.py:76
msgid ""
"Looks like your browser isn't configured to accept cookies. Please enable "
"cookies, reload this page, and try again."
@@ -804,245 +809,245 @@ msgstr ""
"נראה שהדפדפן שלך אינו מוגדר לקבל עוגיות. נא לאפשר עוגיות, לטעון מחדש את הדף "
"ולנסות שוב."
-#: contrib/admin/views/decorators.py:83
-msgid "Usernames cannot contain the '@' character."
-msgstr "שם משתמש אינו יכול להכיל את התו '@'."
-
-#: contrib/admin/views/decorators.py:85
+#: contrib/admin/views/decorators.py:89
#, python-format
msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr "כתובת הדוא\"ל שלך אינה שם המשתמש שלך. נסה/י '%s' במקום."
-#: contrib/admin/views/doc.py:47 contrib/admin/views/doc.py:49
-#: contrib/admin/views/doc.py:51
+#: contrib/admin/views/decorators.py:93
+msgid "Usernames cannot contain the '@' character."
+msgstr "שם משתמש אינו יכול להכיל את התו '@'."
+
+#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:52
msgid "tag:"
msgstr "תג:"
-#: contrib/admin/views/doc.py:78 contrib/admin/views/doc.py:80
-#: contrib/admin/views/doc.py:82
+#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:83
msgid "filter:"
msgstr "סינון:"
-#: contrib/admin/views/doc.py:136 contrib/admin/views/doc.py:138
-#: contrib/admin/views/doc.py:140
+#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:141
msgid "view:"
msgstr "צפיה (view):"
-#: contrib/admin/views/doc.py:165
+#: contrib/admin/views/doc.py:166
#, python-format
msgid "App %r not found"
msgstr "יישום %r לא נמצא"
-#: contrib/admin/views/doc.py:172
+#: contrib/admin/views/doc.py:173
#, python-format
msgid "Model %(name)r not found in app %(label)r"
msgstr "מודל %(name)r לא נמצא ביישום %(label)r"
-#: contrib/admin/views/doc.py:184
+#: contrib/admin/views/doc.py:185
#, python-format
msgid "the related `%(label)s.%(type)s` object"
msgstr "האובייקט `%(label)s.%(type)s` הקשור"
-#: contrib/admin/views/doc.py:184 contrib/admin/views/doc.py:206
-#: contrib/admin/views/doc.py:220 contrib/admin/views/doc.py:225
+#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207
+#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226
msgid "model:"
msgstr "מודל:"
-#: contrib/admin/views/doc.py:215
+#: contrib/admin/views/doc.py:216
#, python-format
msgid "related `%(label)s.%(name)s` objects"
msgstr "אובייקטי `%(label)s.%(name)s` מקושרים"
-#: contrib/admin/views/doc.py:220
+#: contrib/admin/views/doc.py:221
#, python-format
msgid "all %s"
msgstr "כל %s"
-#: contrib/admin/views/doc.py:225
+#: contrib/admin/views/doc.py:226
#, python-format
msgid "number of %s"
msgstr "מספר %s"
-#: contrib/admin/views/doc.py:230
+#: contrib/admin/views/doc.py:231
#, python-format
msgid "Fields on %s objects"
msgstr "Fields on %s objects"
-#: contrib/admin/views/doc.py:292 contrib/admin/views/doc.py:303
-#: contrib/admin/views/doc.py:305 contrib/admin/views/doc.py:311
-#: contrib/admin/views/doc.py:312 contrib/admin/views/doc.py:314
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315
msgid "Integer"
msgstr "מספר שלם"
-#: contrib/admin/views/doc.py:293
+#: contrib/admin/views/doc.py:294
msgid "Boolean (Either True or False)"
msgstr "בוליאני (אמת או שקר)"
-#: contrib/admin/views/doc.py:294 contrib/admin/views/doc.py:313
+#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314
#, python-format
msgid "String (up to %(max_length)s)"
msgstr "מחרוזת (עד %(max_length)s תווים)"
-#: contrib/admin/views/doc.py:295
+#: contrib/admin/views/doc.py:296
msgid "Comma-separated integers"
msgstr "מספרים שלמים מופרדים בפסיקים"
-#: contrib/admin/views/doc.py:296
+#: contrib/admin/views/doc.py:297
msgid "Date (without time)"
msgstr "תאריך (ללא שעה)"
-#: contrib/admin/views/doc.py:297
+#: contrib/admin/views/doc.py:298
msgid "Date (with time)"
msgstr "תאריך (כולל שעה)"
-#: contrib/admin/views/doc.py:298
+#: contrib/admin/views/doc.py:299
msgid "Decimal number"
msgstr "מספר עשרוני"
-#: contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:300
msgid "E-mail address"
msgstr "כתובת דוא\"ל"
-#: contrib/admin/views/doc.py:300 contrib/admin/views/doc.py:301
-#: contrib/admin/views/doc.py:304
+#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:305
msgid "File path"
msgstr "נתיב קובץ"
-#: contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:303
msgid "Floating point number"
msgstr "מספר עשרוני"
-#: contrib/admin/views/doc.py:306 contrib/comments/models.py:85
+#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89
msgid "IP address"
msgstr "כתובת IP"
-#: contrib/admin/views/doc.py:308
+#: contrib/admin/views/doc.py:309
msgid "Boolean (Either True, False or None)"
msgstr "בוליאני (אמת, שקר או כלום)"
-#: contrib/admin/views/doc.py:309
+#: contrib/admin/views/doc.py:310
msgid "Relation to parent model"
msgstr "יחס למודל אב"
-#: contrib/admin/views/doc.py:310
+#: contrib/admin/views/doc.py:311
msgid "Phone number"
msgstr "מספר טלפון"
-#: contrib/admin/views/doc.py:315
+#: contrib/admin/views/doc.py:316
msgid "Text"
msgstr "טקסט"
-#: contrib/admin/views/doc.py:316
+#: contrib/admin/views/doc.py:317
msgid "Time"
msgstr "זמן"
-#: contrib/admin/views/doc.py:317 contrib/flatpages/models.py:7
+#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:8
msgid "URL"
msgstr "URL"
-#: contrib/admin/views/doc.py:318
+#: contrib/admin/views/doc.py:319
msgid "U.S. state (two uppercase letters)"
msgstr "מדינה בארה\"ב (שתי אותיות גדולות)"
-#: contrib/admin/views/doc.py:319
+#: contrib/admin/views/doc.py:320
msgid "XML text"
msgstr "טקסט XML"
-#: contrib/admin/views/doc.py:345
+#: contrib/admin/views/doc.py:346
#, python-format
msgid "%s does not appear to be a urlpattern object"
msgstr "לא נראה ש-%s הוא אובייקט urlpattern"
-#: contrib/admin/views/main.py:230
+#: contrib/admin/views/main.py:233
msgid "Site administration"
msgstr "ניהול אתר"
-#: contrib/admin/views/main.py:278 contrib/admin/views/main.py:363
+#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365
#, python-format
msgid "You may add another %s below."
msgstr "ניתן להוסיף %s נוסף מתחת."
-#: contrib/admin/views/main.py:296
+#: contrib/admin/views/main.py:298
#, python-format
msgid "Add %s"
msgstr "הוספת %s"
-#: contrib/admin/views/main.py:342
+#: contrib/admin/views/main.py:344
#, python-format
msgid "Added %s."
msgstr "%s התווסף."
-#: contrib/admin/views/main.py:342 contrib/admin/views/main.py:344
-#: contrib/admin/views/main.py:346 core/validators.py:283
+#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:348 core/validators.py:283
#: db/models/manipulators.py:309
msgid "and"
msgstr "ו"
-#: contrib/admin/views/main.py:344
+#: contrib/admin/views/main.py:346
#, python-format
msgid "Changed %s."
msgstr "%s שונה."
-#: contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:348
#, python-format
msgid "Deleted %s."
msgstr "%s נמחק."
-#: contrib/admin/views/main.py:349
+#: contrib/admin/views/main.py:351
msgid "No fields changed."
msgstr "אף שדה לא השתנה."
-#: contrib/admin/views/main.py:352
+#: contrib/admin/views/main.py:354
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr "שינוי %(name)s \"%(obj)s\" בוצע בהצלחה."
-#: contrib/admin/views/main.py:360
+#: contrib/admin/views/main.py:362
#, python-format
msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr "הוספת %(name)s \"%(obj)s\" בוצעה בהצלחה. ניתן לערוך אותו שוב מתחת."
-#: contrib/admin/views/main.py:398
+#: contrib/admin/views/main.py:400
#, python-format
msgid "Change %s"
msgstr "שינוי %s"
-#: contrib/admin/views/main.py:483
+#: contrib/admin/views/main.py:487
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr "אחד או יותר %(fieldname)s ב%(name)s: %(obj)s"
-#: contrib/admin/views/main.py:488
+#: contrib/admin/views/main.py:492
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr "אחד או יותר %(fieldname)s ב%(name)s:"
-#: contrib/admin/views/main.py:520
+#: contrib/admin/views/main.py:524
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "מחיקת %(name)s \"%(obj)s\" בוצעה בהצלחה."
-#: contrib/admin/views/main.py:523
+#: contrib/admin/views/main.py:527
msgid "Are you sure?"
msgstr "האם את/ה בטוח/ה ?"
-#: contrib/admin/views/main.py:545
+#: contrib/admin/views/main.py:549
#, python-format
msgid "Change history: %s"
msgstr "היסטוריית שינוי: %s"
-#: contrib/admin/views/main.py:579
+#: contrib/admin/views/main.py:583
#, python-format
msgid "Select %s"
msgstr "בחירת %s"
-#: contrib/admin/views/main.py:579
+#: contrib/admin/views/main.py:583
#, python-format
msgid "Select %s to change"
msgstr "בחירת %s לשינוי"
-#: contrib/admin/views/main.py:780
+#: contrib/admin/views/main.py:765
msgid "Database error"
msgstr "שגיאת בסיס נתונים"
@@ -1103,38 +1108,38 @@ msgstr "הרשאות"
msgid "group"
msgstr "קבוצה"
-#: contrib/auth/models.py:98 contrib/auth/models.py:141
+#: contrib/auth/models.py:98 contrib/auth/models.py:148
msgid "groups"
msgstr "קבוצות"
-#: contrib/auth/models.py:131
+#: contrib/auth/models.py:138
msgid "username"
msgstr "שם משתמש"
-#: contrib/auth/models.py:131
+#: contrib/auth/models.py:138
msgid ""
"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
"digits and underscores)."
msgstr ""
"דורש 30 תווים או פחות. תווים אלפאנומריים בלבד (אותיות, ספרות וקווים תחתונים)."
-#: contrib/auth/models.py:132
+#: contrib/auth/models.py:139
msgid "first name"
msgstr "שם פרטי"
-#: contrib/auth/models.py:133
+#: contrib/auth/models.py:140
msgid "last name"
msgstr "שם משפחה"
-#: contrib/auth/models.py:134
+#: contrib/auth/models.py:141
msgid "e-mail address"
msgstr "כתובת דוא\"ל"
-#: contrib/auth/models.py:135
+#: contrib/auth/models.py:142
msgid "password"
msgstr "סיסמה"
-#: contrib/auth/models.py:135
+#: contrib/auth/models.py:142
msgid ""
"Use '[algo]$[salt]$[hexdigest]' or use the change "
"password form."
@@ -1142,45 +1147,45 @@ msgstr ""
"יש להזין '[algo]$[salt]$[hexdigest]' או להשתמש בטופס "
"שינוי הסיסמה."
-#: contrib/auth/models.py:136
+#: contrib/auth/models.py:143
msgid "staff status"
msgstr "סטטוס איש צוות"
-#: contrib/auth/models.py:136
+#: contrib/auth/models.py:143
msgid "Designates whether the user can log into this admin site."
msgstr "מציין האם המשתמש יכול להתחבר לאתר הניהול."
-#: contrib/auth/models.py:137
+#: contrib/auth/models.py:144
msgid "active"
msgstr "פעיל"
-#: contrib/auth/models.py:137
+#: contrib/auth/models.py:144
msgid ""
-"Designates whether this user can log into the Django admin. Unselect this "
+"Designates whether this user should be treated as active. Unselect this "
"instead of deleting accounts."
msgstr ""
-"מציין האם המשתמש יכול להתחבר לאתר הניהול. יש לבטל בחירה זובמקום למחוק "
-"חשבונות משתמשים."
+"מציין האם יש להתייחס למשתמש כפעיל. יש לבטל בחירה זו במקום למחוק חשבונות "
+"משתמשים."
-#: contrib/auth/models.py:138
+#: contrib/auth/models.py:145
msgid "superuser status"
msgstr "סטטוס משתמש על"
-#: contrib/auth/models.py:138
+#: contrib/auth/models.py:145
msgid ""
"Designates that this user has all permissions without explicitly assigning "
"them."
msgstr "מציין שלמשתמש זה יש את כל ההרשאות ללא הצורך המפורש בהענקתן."
-#: contrib/auth/models.py:139
+#: contrib/auth/models.py:146
msgid "last login"
msgstr "כניסה אחרונה"
-#: contrib/auth/models.py:140
+#: contrib/auth/models.py:147
msgid "date joined"
msgstr "תאריך הצטרפות"
-#: contrib/auth/models.py:142
+#: contrib/auth/models.py:149
msgid ""
"In addition to the permissions manually assigned, this user will also get "
"all permissions granted to each group he/she is in."
@@ -1188,35 +1193,35 @@ msgstr ""
"בנוסף לכל ההרשאות שהוקצו ידנית, יוענקו למשתמש גם כל ההרשאות של כל קבוצה "
"המשוייכת אליו."
-#: contrib/auth/models.py:143
+#: contrib/auth/models.py:150
msgid "user permissions"
msgstr "הרשאות משתמש"
-#: contrib/auth/models.py:147
+#: contrib/auth/models.py:154
msgid "user"
msgstr "משתמש"
-#: contrib/auth/models.py:148
+#: contrib/auth/models.py:155
msgid "users"
msgstr "משתמשים"
-#: contrib/auth/models.py:154
+#: contrib/auth/models.py:161
msgid "Personal info"
msgstr "מידע אישי"
-#: contrib/auth/models.py:155
+#: contrib/auth/models.py:162
msgid "Permissions"
msgstr "הרשאות"
-#: contrib/auth/models.py:156
+#: contrib/auth/models.py:163
msgid "Important dates"
msgstr "תאריכים חשובים"
-#: contrib/auth/models.py:157
+#: contrib/auth/models.py:164
msgid "Groups"
msgstr "קבוצות"
-#: contrib/auth/models.py:316
+#: contrib/auth/models.py:323
msgid "message"
msgstr "הודעה"
@@ -1224,83 +1229,83 @@ msgstr "הודעה"
msgid "Logged out"
msgstr "יצאת מהמערכת"
-#: contrib/comments/models.py:67 contrib/comments/models.py:169
+#: contrib/comments/models.py:71 contrib/comments/models.py:176
msgid "object ID"
msgstr "מזהה אובייקט"
-#: contrib/comments/models.py:68
+#: contrib/comments/models.py:72
msgid "headline"
msgstr "כותרת"
-#: contrib/comments/models.py:69 contrib/comments/models.py:90
-#: contrib/comments/models.py:170
+#: contrib/comments/models.py:73 contrib/comments/models.py:95
+#: contrib/comments/models.py:177
msgid "comment"
msgstr "תגובה"
-#: contrib/comments/models.py:70
+#: contrib/comments/models.py:74
msgid "rating #1"
msgstr "דירוג #1"
-#: contrib/comments/models.py:71
+#: contrib/comments/models.py:75
msgid "rating #2"
msgstr "דירוג #2"
-#: contrib/comments/models.py:72
+#: contrib/comments/models.py:76
msgid "rating #3"
msgstr "דירוג #3"
-#: contrib/comments/models.py:73
+#: contrib/comments/models.py:77
msgid "rating #4"
msgstr "דירוג #4"
-#: contrib/comments/models.py:74
+#: contrib/comments/models.py:78
msgid "rating #5"
msgstr "דירוג #5"
-#: contrib/comments/models.py:75
+#: contrib/comments/models.py:79
msgid "rating #6"
msgstr "דירוג #6"
-#: contrib/comments/models.py:76
+#: contrib/comments/models.py:80
msgid "rating #7"
msgstr "דירוג #7"
-#: contrib/comments/models.py:77
+#: contrib/comments/models.py:81
msgid "rating #8"
msgstr "דירוג #8"
-#: contrib/comments/models.py:82
+#: contrib/comments/models.py:86
msgid "is valid rating"
msgstr "האם דירוג חוקי"
-#: contrib/comments/models.py:83 contrib/comments/models.py:172
+#: contrib/comments/models.py:87 contrib/comments/models.py:179
msgid "date/time submitted"
msgstr "תאריך/שעת הגשה"
-#: contrib/comments/models.py:84 contrib/comments/models.py:173
+#: contrib/comments/models.py:88 contrib/comments/models.py:180
msgid "is public"
msgstr "ציבורי"
-#: contrib/comments/models.py:86
+#: contrib/comments/models.py:90
msgid "is removed"
msgstr "האם הוסר"
-#: contrib/comments/models.py:86
+#: contrib/comments/models.py:90
msgid ""
"Check this box if the comment is inappropriate. A \"This comment has been "
"removed\" message will be displayed instead."
msgstr ""
"יש לסמן תיבה זו עבור תגובה לא נאותה. הודעת \"תגובה זו נמחקה\" תוצג במקום."
-#: contrib/comments/models.py:91
+#: contrib/comments/models.py:96
msgid "comments"
msgstr "תגובות"
-#: contrib/comments/models.py:134 contrib/comments/models.py:213
+#: contrib/comments/models.py:140 contrib/comments/models.py:222
msgid "Content object"
msgstr "אובייקט תוכן"
-#: contrib/comments/models.py:162
+#: contrib/comments/models.py:168
#, python-format
msgid ""
"Posted by %(user)s at %(date)s\n"
@@ -1315,48 +1320,48 @@ msgstr ""
"\n"
"http://%(domain)s%(url)s"
-#: contrib/comments/models.py:171
+#: contrib/comments/models.py:178
msgid "person's name"
msgstr "שם"
-#: contrib/comments/models.py:174
+#: contrib/comments/models.py:181
msgid "ip address"
msgstr "כתובת IP"
-#: contrib/comments/models.py:176
+#: contrib/comments/models.py:183
msgid "approved by staff"
msgstr "אושר ע\"י הצוות"
-#: contrib/comments/models.py:179
+#: contrib/comments/models.py:187
msgid "free comment"
msgstr "הערה אנונימית"
-#: contrib/comments/models.py:180
+#: contrib/comments/models.py:188
msgid "free comments"
msgstr "הערות אנונימיות"
-#: contrib/comments/models.py:239
+#: contrib/comments/models.py:250
msgid "score"
msgstr "ציון"
-#: contrib/comments/models.py:240
+#: contrib/comments/models.py:251
msgid "score date"
msgstr "תאריך ציון"
-#: contrib/comments/models.py:243
+#: contrib/comments/models.py:255
msgid "karma score"
msgstr "ניקוד קארמה"
-#: contrib/comments/models.py:244
+#: contrib/comments/models.py:256
msgid "karma scores"
msgstr "ניקודי קארמה"
-#: contrib/comments/models.py:248
+#: contrib/comments/models.py:260
#, python-format
msgid "%(score)d rating by %(user)s"
msgstr "%(score)d·דירוג ע\"י·%(user)s"
-#: contrib/comments/models.py:264
+#: contrib/comments/models.py:277
#, python-format
msgid ""
"This comment was flagged by %(user)s:\n"
@@ -1367,36 +1372,36 @@ msgstr ""
"\n"
"%(text)s"
-#: contrib/comments/models.py:271
+#: contrib/comments/models.py:285
msgid "flag date"
msgstr "תאריך סימון"
-#: contrib/comments/models.py:274
+#: contrib/comments/models.py:289
msgid "user flag"
msgstr "סימון ע\"י משתמש"
-#: contrib/comments/models.py:275
+#: contrib/comments/models.py:290
msgid "user flags"
msgstr "סימונים ע\"י משתמש"
-#: contrib/comments/models.py:279
+#: contrib/comments/models.py:294
#, python-format
msgid "Flag by %r"
msgstr "סימון ע\"י %r"
-#: contrib/comments/models.py:284
+#: contrib/comments/models.py:300
msgid "deletion date"
msgstr "תאריך מחיקה"
-#: contrib/comments/models.py:286
+#: contrib/comments/models.py:303
msgid "moderator deletion"
msgstr "מחיקת מודרטור"
-#: contrib/comments/models.py:287
+#: contrib/comments/models.py:304
msgid "moderator deletions"
msgstr "מחיקות מודרטור"
-#: contrib/comments/models.py:291
+#: contrib/comments/models.py:308
#, python-format
msgid "Moderator deletion by %r"
msgstr "מחיקת מודרציה ע\"י %r"
@@ -1455,13 +1460,11 @@ msgid_plural ""
"\n"
"%(text)s"
msgstr[0] ""
-"ההודעה נשלחה ע\"י משתמש ששלח פחות מ-%(count)s "
-"תגובה:\n"
+"ההודעה נשלחה ע\"י משתמש ששלח פחות מ-%(count)s תגובה:\n"
"\n"
"%(text)s"
msgstr[1] ""
-"ההודעה נשלחה ע\"י משתמש ששלח פחות מ-%(count)s "
-"תגובות:\n"
+"ההודעה נשלחה ע\"י משתמש ששלח פחות מ-%(count)s תגובות:\n"
"\n"
"%(text)s"
@@ -1515,41 +1518,41 @@ msgstr "מזהה תגובה שגוי"
msgid "No voting for yourself"
msgstr "לא ניתן להצביע לעצמך"
-#: contrib/contenttypes/models.py:37
+#: contrib/contenttypes/models.py:67
msgid "python model class name"
msgstr "שם ה-class של מודל פייתון"
-#: contrib/contenttypes/models.py:40
+#: contrib/contenttypes/models.py:71
msgid "content type"
msgstr "סוג תוכן"
-#: contrib/contenttypes/models.py:41
+#: contrib/contenttypes/models.py:72
msgid "content types"
msgstr "סוגי תוכן"
-#: contrib/flatpages/models.py:8
+#: contrib/flatpages/models.py:9
msgid ""
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr ""
"לדוגמא: '/about/contact/'. יש לוודא הימצאות הקווים הנטויים בהתחלה ובסוף."
-#: contrib/flatpages/models.py:9
+#: contrib/flatpages/models.py:10
msgid "title"
msgstr "כותרת"
-#: contrib/flatpages/models.py:10
+#: contrib/flatpages/models.py:11
msgid "content"
msgstr "תוכן"
-#: contrib/flatpages/models.py:11
+#: contrib/flatpages/models.py:12
msgid "enable comments"
msgstr "אפשר תגובות"
-#: contrib/flatpages/models.py:12
+#: contrib/flatpages/models.py:13
msgid "template name"
msgstr "שם תבנית"
-#: contrib/flatpages/models.py:13
+#: contrib/flatpages/models.py:14
msgid ""
"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
"will use 'flatpages/default.html'."
@@ -1557,168 +1560,173 @@ msgstr ""
"דוגמא: 'flatpages/contact_page.html'. אם זה לא צויין, המערכת תשתמש "
"ב-'flatpages/default.html'."
-#: contrib/flatpages/models.py:14
+#: contrib/flatpages/models.py:15
msgid "registration required"
msgstr "הרשמה נדרשת"
-#: contrib/flatpages/models.py:14
+#: contrib/flatpages/models.py:15
msgid "If this is checked, only logged-in users will be able to view the page."
msgstr "אם זה מסומך, רק משתמשים מחוברים יוכלו לצפות בדף."
-#: contrib/flatpages/models.py:18
+#: contrib/flatpages/models.py:20
msgid "flat page"
msgstr "דף פשוט"
-#: contrib/flatpages/models.py:19
+#: contrib/flatpages/models.py:21
msgid "flat pages"
msgstr "דפים פשוטים"
-#: contrib/humanize/templatetags/humanize.py:20
+#: contrib/flatpages/models.py:27
+msgid "Advanced options"
+msgstr "אפשרויות מתקדמות"
+
+#: contrib/humanize/templatetags/humanize.py:19
msgid "th"
msgstr "רביעי"
-#: contrib/humanize/templatetags/humanize.py:20
+#: contrib/humanize/templatetags/humanize.py:19
msgid "st"
msgstr "ראשון"
-#: contrib/humanize/templatetags/humanize.py:20
+#: contrib/humanize/templatetags/humanize.py:19
msgid "nd"
msgstr "שני"
-#: contrib/humanize/templatetags/humanize.py:20
+#: contrib/humanize/templatetags/humanize.py:19
msgid "rd"
msgstr "שלישי"
-#: contrib/humanize/templatetags/humanize.py:50
+#: contrib/humanize/templatetags/humanize.py:51
#, python-format
msgid "%(value).1f million"
msgid_plural "%(value).1f million"
msgstr[0] "%(value).1f מיליון"
msgstr[1] "%(value).1f מיליונים"
-#: contrib/humanize/templatetags/humanize.py:53
+#: contrib/humanize/templatetags/humanize.py:54
#, python-format
msgid "%(value).1f billion"
msgid_plural "%(value).1f billion"
msgstr[0] "%(value).1f ביליון"
msgstr[1] "%(value).1f ביליונים"
-#: contrib/humanize/templatetags/humanize.py:56
+#: contrib/humanize/templatetags/humanize.py:57
#, python-format
msgid "%(value).1f trillion"
msgid_plural "%(value).1f trillion"
msgstr[0] "%(value).1f טריליון"
msgstr[1] "%(value).1f טריליונים"
-#: contrib/humanize/templatetags/humanize.py:71
+#: contrib/humanize/templatetags/humanize.py:73
msgid "one"
msgstr "אחד"
-#: contrib/humanize/templatetags/humanize.py:71
+#: contrib/humanize/templatetags/humanize.py:73
msgid "two"
msgstr "שניים"
-#: contrib/humanize/templatetags/humanize.py:71
+#: contrib/humanize/templatetags/humanize.py:73
msgid "three"
msgstr "שלושה"
-#: contrib/humanize/templatetags/humanize.py:71
+#: contrib/humanize/templatetags/humanize.py:73
msgid "four"
msgstr "ארבעה"
-#: contrib/humanize/templatetags/humanize.py:71
+#: contrib/humanize/templatetags/humanize.py:73
msgid "five"
msgstr "חמישה"
-#: contrib/humanize/templatetags/humanize.py:71
+#: contrib/humanize/templatetags/humanize.py:73
msgid "six"
msgstr "שישה"
-#: contrib/humanize/templatetags/humanize.py:71
+#: contrib/humanize/templatetags/humanize.py:73
msgid "seven"
msgstr "שבעה"
-#: contrib/humanize/templatetags/humanize.py:71
+#: contrib/humanize/templatetags/humanize.py:73
msgid "eight"
msgstr "שמונה"
-#: contrib/humanize/templatetags/humanize.py:71
+#: contrib/humanize/templatetags/humanize.py:73
msgid "nine"
msgstr "תשעה"
-#: contrib/humanize/templatetags/humanize.py:90
+#: contrib/humanize/templatetags/humanize.py:93
msgid "today"
msgstr "היום"
-#: contrib/humanize/templatetags/humanize.py:92
+#: contrib/humanize/templatetags/humanize.py:95
msgid "tomorrow"
msgstr "מחר"
-#: contrib/humanize/templatetags/humanize.py:94
+#: contrib/humanize/templatetags/humanize.py:97
msgid "yesterday"
msgstr "אתמול"
-#: contrib/localflavor/ar/forms.py:30 contrib/localflavor/ar/forms.py:38
+#: contrib/localflavor/ar/forms.py:27
msgid "Enter a postal code in the format NNNN or ANNNNAAA."
msgstr "יש להזין קוד דואר בתחביר NNNN או ANNNNAAA."
-#: contrib/localflavor/ar/forms.py:61 contrib/localflavor/br/forms.py:103
-#: contrib/localflavor/pe/forms.py:34 contrib/localflavor/pe/forms.py:57
+#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96
+#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
+#: contrib/localflavor/pe/forms.py:51
msgid "This field requires only numbers."
msgstr "יש להזין רק ספרות בשדה זה."
-#: contrib/localflavor/ar/forms.py:64
+#: contrib/localflavor/ar/forms.py:50
msgid "This field requires 7 or 8 digits."
msgstr "שדה זה דורש 7 או 8 ספרות."
-#: contrib/localflavor/ar/forms.py:75
+#: contrib/localflavor/ar/forms.py:79
msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
msgstr "יש להזין מספר CUIT חוקי בתחביר XX-XXXXXXXX-X או XXXXXXXXXXXX."
-#: contrib/localflavor/ar/forms.py:88
+#: contrib/localflavor/ar/forms.py:80
msgid "Invalid CUIT."
msgstr "CUIT שגוי"
-#: contrib/localflavor/au/forms.py:18
+#: contrib/localflavor/au/forms.py:16
msgid "Enter a 4 digit post code."
msgstr "יש להזין קוד דואר בן 4 ספרות."
-#: contrib/localflavor/br/forms.py:23
+#: contrib/localflavor/br/forms.py:21
msgid "Enter a zip code in the format XXXXX-XXX."
msgstr "יש להזין מיקוד בתחביר XXXXX-XXX."
-#: contrib/localflavor/br/forms.py:35
+#: contrib/localflavor/br/forms.py:30
msgid "Phone numbers must be in XX-XXXX-XXXX format."
msgstr "מספרי טלפון חייבים להיות בתחביר XX-XXXX-XXXX."
-#: contrib/localflavor/br/forms.py:68
+#: contrib/localflavor/br/forms.py:58
msgid ""
"Select a valid brazilian state. That state is not one of the available "
"states."
msgstr "נא לבחור מדינה ברזילאית חוקית. מדינה זו אינה אחת מהמדינות האפשריות."
-#: contrib/localflavor/br/forms.py:105
-msgid "This field requires at most 11 digits or 14 characters."
-msgstr "שדה זה דורש 11 או 14 ספרות לכל היותר."
-
-#: contrib/localflavor/br/forms.py:115
+#: contrib/localflavor/br/forms.py:94
msgid "Invalid CPF number."
msgstr "מספר CPF לא חוקי"
-#: contrib/localflavor/br/forms.py:137
-msgid "This field requires at least 14 digits"
-msgstr "שדה זה דורש לפחות 14 ספרות."
+#: contrib/localflavor/br/forms.py:95
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "שדה זה דורש 11 או 14 ספרות לכל היותר."
-#: contrib/localflavor/br/forms.py:147
+#: contrib/localflavor/br/forms.py:134
msgid "Invalid CNPJ number."
msgstr "מספר CNPJ לא חוקי"
-#: contrib/localflavor/ca/forms.py:19
+#: contrib/localflavor/br/forms.py:136
+msgid "This field requires at least 14 digits"
+msgstr "שדה זה דורש לפחות 14 ספרות."
+
+#: contrib/localflavor/ca/forms.py:17
msgid "Enter a postal code in the format XXX XXX."
msgstr "יש להזין מיקוד בתחביר XXX XXX."
-#: contrib/localflavor/ca/forms.py:81
-msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format."
+#: contrib/localflavor/ca/forms.py:88
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
msgstr "יש להזין מספר ביטוח לאומי קנדי חוקי בתחביר XXX-XXX-XXXX."
#: contrib/localflavor/ch/ch_states.py:5
@@ -1825,23 +1833,27 @@ msgstr "צוג"
msgid "Zurich"
msgstr "ציריך"
-#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:14
+#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12
msgid "Enter a zip code in the format XXXX."
msgstr "יש להזין מיקוד בתחביר XXXX."
-#: contrib/localflavor/ch/forms.py:90
+#: contrib/localflavor/ch/forms.py:64
msgid ""
"Enter a valid Swiss identity or passport card number in X1234567<0 or "
"1234567890 format."
msgstr "יש להזין מספר זיהוי או דרכון שוויצרי בתחביר X1234567<0 או 1234567890."
-#: contrib/localflavor/cl/forms.py:32
-msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
+#: contrib/localflavor/cl/forms.py:29
+msgid "Enter a valid Chilean RUT."
+msgstr "יש להזין RUT צ'יליאני חוקי."
+
+#: contrib/localflavor/cl/forms.py:30
+msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X."
msgstr "יש להזין RUT צ'יליאני חוקי. התחביר הוא XX.XXX.XXX-X."
-#: contrib/localflavor/cl/forms.py:37
-msgid "Enter valid a Chilean RUT"
-msgstr "יש להזין RUT צ'יליאני חוקי."
+#: contrib/localflavor/cl/forms.py:31
+msgid "The Chilean RUT is not valid."
+msgstr "שדה RUT צ'יליאני אינו חוקי."
#: contrib/localflavor/de/de_states.py:5
msgid "Baden-Wuerttemberg"
@@ -1907,21 +1919,20 @@ msgstr "שלזוויג-הולשטיין"
msgid "Thuringia"
msgstr "תורינגיה"
-#: contrib/localflavor/de/forms.py:16 contrib/localflavor/fi/forms.py:14
-#: contrib/localflavor/fr/forms.py:17
+#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
+#: contrib/localflavor/fr/forms.py:15
msgid "Enter a zip code in the format XXXXX."
msgstr "יש להזין מיקוד בתחביר XXXXX."
-#: contrib/localflavor/de/forms.py:60
+#: contrib/localflavor/de/forms.py:41
msgid ""
"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
"format."
msgstr "יש להזין מספר זיהוי גרמני חוקי בתחביר XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
#: contrib/localflavor/es/es_provinces.py:5
-#, fuzzy
msgid "Arava"
-msgstr "טרנאוה"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:6
msgid "Albacete"
@@ -1932,28 +1943,24 @@ msgid "Alacant"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:8
-#, fuzzy
msgid "Almeria"
-msgstr "פומרניה"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:9
-#, fuzzy
msgid "Avila"
-msgstr "אקיטה"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:10
-#, fuzzy
msgid "Badajoz"
-msgstr "ברדיוב"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:11
msgid "Illes Balears"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:12
-#, fuzzy
msgid "Barcelona"
-msgstr "מקדונית - Macedonian"
+msgstr "ברצלונה"
#: contrib/localflavor/es/es_provinces.py:13
msgid "Burgos"
@@ -1964,9 +1971,8 @@ msgid "Caceres"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:15
-#, fuzzy
msgid "Cadiz"
-msgstr "צ'דקה"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:16
msgid "Castello"
@@ -1985,18 +1991,16 @@ msgid "A Coruna"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:20
-#, fuzzy
msgid "Cuenca"
-msgstr "סניצ'ה"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:21
msgid "Girona"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:22
-#, fuzzy
msgid "Granada"
-msgstr "קנדה - Kannada"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:23
msgid "Guadalajara"
@@ -2011,24 +2015,20 @@ msgid "Huelva"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:26
-#, fuzzy
msgid "Huesca"
-msgstr "שלישי"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:27
-#, fuzzy
msgid "Jaen"
-msgstr "ינו'"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:28
-#, fuzzy
msgid "Leon"
-msgstr "כניסה"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:29
-#, fuzzy
msgid "Lleida"
-msgstr "סילסיה"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:30
#: contrib/localflavor/es/es_regions.py:17
@@ -2041,37 +2041,32 @@ msgstr ""
#: contrib/localflavor/es/es_provinces.py:32
#: contrib/localflavor/es/es_regions.py:18
-#, fuzzy
msgid "Madrid"
-msgstr "מרטין"
+msgstr "מדריד"
#: contrib/localflavor/es/es_provinces.py:33
-#, fuzzy
msgid "Malaga"
-msgstr "גלנטה"
+msgstr "מאלאגה"
#: contrib/localflavor/es/es_provinces.py:34
-#, fuzzy
msgid "Murcia"
-msgstr "ז'ורה"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:35
msgid "Navarre"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:36
-#, fuzzy
msgid "Ourense"
-msgstr "דרנתה"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:37
msgid "Asturias"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:38
-#, fuzzy
msgid "Palencia"
-msgstr "גאליצית - Galician"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:39
msgid "Las Palmas"
@@ -2082,9 +2077,8 @@ msgid "Pontevedra"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:41
-#, fuzzy
msgid "Salamanca"
-msgstr "סאיטאמה"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:42
msgid "Santa Cruz de Tenerife"
@@ -2092,65 +2086,56 @@ msgstr ""
#: contrib/localflavor/es/es_provinces.py:43
#: contrib/localflavor/es/es_regions.py:11
-#, fuzzy
msgid "Cantabria"
-msgstr "קאטלונית - Catalan"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:44
-#, fuzzy
msgid "Segovia"
-msgstr "סלובנית - Slovenian"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:45
-#, fuzzy
msgid "Seville"
-msgstr "לביצה"
+msgstr "סביליה"
#: contrib/localflavor/es/es_provinces.py:46
-#, fuzzy
msgid "Soria"
-msgstr "סרבית - Serbian"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:47
msgid "Tarragona"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:48
-#, fuzzy
msgid "Teruel"
-msgstr "שלישי"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:49
msgid "Toledo"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:50
-#, fuzzy
msgid "Valencia"
-msgstr "גאליצית - Galician"
+msgstr "ולנסיה"
#: contrib/localflavor/es/es_provinces.py:51
-#, fuzzy
msgid "Valladolid"
-msgstr "ואלה"
+msgstr "ויאדוליד"
#: contrib/localflavor/es/es_provinces.py:52
msgid "Bizkaia"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:53
-#, fuzzy
msgid "Zamora"
-msgstr "נארה"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:54
msgid "Zaragoza"
msgstr ""
#: contrib/localflavor/es/es_provinces.py:55
-#, fuzzy
msgid "Ceuta"
-msgstr "דטבה"
+msgstr ""
#: contrib/localflavor/es/es_provinces.py:56
msgid "Melilla"
@@ -2177,9 +2162,8 @@ msgid "Basque Country"
msgstr ""
#: contrib/localflavor/es/es_regions.py:10
-#, fuzzy
msgid "Canary Islands"
-msgstr "חבל הסאר"
+msgstr ""
#: contrib/localflavor/es/es_regions.py:12
msgid "Castile-La Mancha"
@@ -2190,18 +2174,16 @@ msgid "Castile and Leon"
msgstr ""
#: contrib/localflavor/es/es_regions.py:14
-#, fuzzy
msgid "Catalonia"
-msgstr "קאטלונית - Catalan"
+msgstr "קאטלוניה"
#: contrib/localflavor/es/es_regions.py:15
msgid "Extremadura"
msgstr ""
#: contrib/localflavor/es/es_regions.py:16
-#, fuzzy
msgid "Galicia"
-msgstr "גאליצית - Galician"
+msgstr "גאליציה"
#: contrib/localflavor/es/es_regions.py:19
msgid "Region of Murcia"
@@ -2215,51 +2197,50 @@ msgstr ""
msgid "Valencian Community"
msgstr ""
-#: contrib/localflavor/es/forms.py:22
-#, fuzzy
+#: contrib/localflavor/es/forms.py:19
msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
-msgstr "יש להזין מיקוד בתחביר XXX XXX."
+msgstr ""
#: contrib/localflavor/es/forms.py:39
-#, fuzzy
msgid ""
"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
"9XXXXXXXX."
-msgstr "נא להזין שדה מספר מס (NIP) בתחביר XXX-XXX-XX-XX או XX-XX-XXX-XXX."
+msgstr ""
-#: contrib/localflavor/es/forms.py:73 contrib/localflavor/es/forms.py:108
-#: db/models/fields/related.py:55
-#, python-format
-msgid "Please enter a valid %s."
-msgstr "יש להזין %s חוקי."
+#: contrib/localflavor/es/forms.py:66
+msgid "Please enter a valid NIF, NIE, or CIF."
+msgstr ""
-#: contrib/localflavor/es/forms.py:91
+#: contrib/localflavor/es/forms.py:67
+msgid "Please enter a valid NIF or NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:68
msgid "Invalid checksum for NIF."
msgstr ""
-#: contrib/localflavor/es/forms.py:97
+#: contrib/localflavor/es/forms.py:69
msgid "Invalid checksum for NIE."
msgstr ""
-#: contrib/localflavor/es/forms.py:106
+#: contrib/localflavor/es/forms.py:70
msgid "Invalid checksum for CIF."
msgstr ""
-#: contrib/localflavor/es/forms.py:136
-#, fuzzy
+#: contrib/localflavor/es/forms.py:142
msgid ""
"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
-msgstr "יש להזין מספר זיהוי גרמני חוקי בתחביר XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+msgstr ""
-#: contrib/localflavor/es/forms.py:150
+#: contrib/localflavor/es/forms.py:143
msgid "Invalid checksum for bank account number."
msgstr ""
-#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45
+#: contrib/localflavor/fi/forms.py:28
msgid "Enter a valid Finnish social security number."
msgstr "יש להזין מספר ביטוח לאומי פיני חוקי."
-#: contrib/localflavor/in_/forms.py:16
+#: contrib/localflavor/in_/forms.py:14
msgid "Enter a zip code in the format XXXXXXX."
msgstr "יש להזין מיקוד בתחביר XXXXXXX."
@@ -2268,15 +2249,15 @@ msgid ""
"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
msgstr "יש להזין מספר זיהוי איסלנדי חוקי. התחביר הוא XXXXXX-XXXX."
-#: contrib/localflavor/is_/forms.py:31
+#: contrib/localflavor/is_/forms.py:18
msgid "The Icelandic identification number is not valid."
msgstr "מספר הזיהוי האיסלנדי אינו חוקי"
-#: contrib/localflavor/it/forms.py:16
+#: contrib/localflavor/it/forms.py:14
msgid "Enter a valid zip code."
msgstr "יש להזין מיקוד חוקי."
-#: contrib/localflavor/it/forms.py:41
+#: contrib/localflavor/it/forms.py:43
msgid "Enter a valid Social Security number."
msgstr "יש להזין מספר ביטוח לאומי חוקי."
@@ -2284,7 +2265,7 @@ msgstr "יש להזין מספר ביטוח לאומי חוקי."
msgid "Enter a valid VAT number."
msgstr "יש להזין מספר מעמ חוקי"
-#: contrib/localflavor/jp/forms.py:21
+#: contrib/localflavor/jp/forms.py:17
msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
msgstr "יש להזין קוד דואר בתחביר XXXXXXX או XXX-XXXX."
@@ -2476,15 +2457,143 @@ msgstr "קגושימה"
msgid "Okinawa"
msgstr "אוקינאווה"
-#: contrib/localflavor/nl/forms.py:25
+#: contrib/localflavor/mx/mx_states.py:12
+msgid "Aguascalientes"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:13
+msgid "Baja California"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:14
+msgid "Baja California Sur"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:15
+msgid "Campeche"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:16
+msgid "Chihuahua"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:17
+msgid "Chiapas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:18
+msgid "Coahuila"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:19
+msgid "Colima"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:20
+msgid "Distrito Federal"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:21
+msgid "Durango"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:22
+msgid "Guerrero"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:23
+msgid "Guanajuato"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:24
+msgid "Hidalgo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:25
+msgid "Jalisco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:26
+msgid "Estado de México"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:27
+msgid "Michoacán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:28
+msgid "Morelos"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:29
+msgid "Nayarit"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:30
+msgid "Nuevo León"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:31
+msgid "Oaxaca"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:32
+msgid "Puebla"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:33
+msgid "Querétaro"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:34
+msgid "Quintana Roo"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:35
+msgid "Sinaloa"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:36
+msgid "San Luis Potosí"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:37
+msgid "Sonora"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:38
+msgid "Tabasco"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:39
+msgid "Tamaulipas"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:40
+msgid "Tlaxcala"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:41
+msgid "Veracruz"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:42
+msgid "Yucatán"
+msgstr ""
+
+#: contrib/localflavor/mx/mx_states.py:43
+msgid "Zacatecas"
+msgstr ""
+
+#: contrib/localflavor/nl/forms.py:21
msgid "Enter a valid postal code"
msgstr "יש להזין מיקוד חוקי."
-#: contrib/localflavor/nl/forms.py:53
+#: contrib/localflavor/nl/forms.py:52
msgid "Enter a valid phone number"
msgstr "יש להזין מספר טלפון חוקי"
-#: contrib/localflavor/nl/forms.py:76
+#: contrib/localflavor/nl/forms.py:78
msgid "Enter a valid SoFi number"
msgstr "יש להזין מספר SoFi חוקי"
@@ -2536,23 +2645,23 @@ msgstr "זילנד"
msgid "Zuid-Holland"
msgstr "דרום הולנד"
-#: contrib/localflavor/no/forms.py:35
+#: contrib/localflavor/no/forms.py:33
msgid "Enter a valid Norwegian social security number."
msgstr "יש להזין מספר ביטוח לאומי נורבגי חוקי."
-#: contrib/localflavor/pe/forms.py:36
+#: contrib/localflavor/pe/forms.py:24
msgid "This field requires 8 digits."
msgstr "שדה זה דורש 8 ספרות."
-#: contrib/localflavor/pe/forms.py:59
+#: contrib/localflavor/pe/forms.py:52
msgid "This field requires 11 digits."
msgstr "שדה זה דורש 11 ספרות."
-#: contrib/localflavor/pl/forms.py:41
+#: contrib/localflavor/pl/forms.py:39
msgid "National Identification Number consists of 11 digits."
msgstr "מספר זיהוי לאומי מורכב מ-11 ספרות"
-#: contrib/localflavor/pl/forms.py:47
+#: contrib/localflavor/pl/forms.py:40
msgid "Wrong checksum for the National Identification Number."
msgstr "סכום ביקורת שגוי עבודי מספר הזיהוי הלאומי"
@@ -2561,24 +2670,21 @@ msgid ""
"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
msgstr "נא להזין שדה מספר מס (NIP) בתחביר XXX-XXX-XX-XX או XX-XX-XXX-XXX."
-#: contrib/localflavor/pl/forms.py:78
-#, fuzzy
+#: contrib/localflavor/pl/forms.py:73
msgid "Wrong checksum for the Tax Number (NIP)."
-msgstr "סכום ביקורת שגוי עבודי מספר הזיהוי הלאומי"
+msgstr ""
-#: contrib/localflavor/pl/forms.py:107
-#, fuzzy
+#: contrib/localflavor/pl/forms.py:112
msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
-msgstr "מספר זיהוי לאומי מורכב מ-11 ספרות"
+msgstr ""
#: contrib/localflavor/pl/forms.py:113
-#, fuzzy
msgid "Wrong checksum for the National Business Register Number (REGON)."
-msgstr "סכום ביקורת שגוי עבודי מספר הזיהוי הלאומי"
+msgstr ""
-#: contrib/localflavor/pl/forms.py:148
+#: contrib/localflavor/pl/forms.py:156
msgid "Enter a postal code in the format XX-XXX."
-msgstr "נא להזין מיקוד בתחביר XX-XXX."
+msgstr ""
#: contrib/localflavor/pl/pl_voivodeships.py:8
msgid "Lower Silesia"
@@ -2644,7 +2750,7 @@ msgstr "פולין רבתי"
msgid "West Pomerania"
msgstr "מערב פומרניה"
-#: contrib/localflavor/sk/forms.py:32
+#: contrib/localflavor/sk/forms.py:30
msgid "Enter a postal code in the format XXXXX or XXX XX."
msgstr "יש להזין קוד דואר בתחביר XXXXX או XXX XX."
@@ -2996,18 +3102,342 @@ msgstr "מחוז טרנאוה"
msgid "Zilina region"
msgstr "מחוז ז'ילינה"
-#: contrib/localflavor/uk/forms.py:18
-msgid "Enter a postcode. A space is required between the two postcode parts."
-msgstr "יש להזין קוד דואר. נדרש רווח בין שני חלקי הקוד."
+#: contrib/localflavor/uk/forms.py:21
+msgid "Enter a valid postcode."
+msgstr "יש להזין מיקוד חוקי."
-#: contrib/localflavor/us/forms.py:18
+#: contrib/localflavor/uk/uk_regions.py:11
+msgid "Bedfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:12
+msgid "Buckinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:14
+msgid "Cheshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:15
+msgid "Cornwall and Isles of Scilly"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:16
+msgid "Cumbria"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:17
+msgid "Derbyshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:18
+msgid "Devon"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:19
+msgid "Dorset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:20
+msgid "Durham"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:21
+msgid "East Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:22
+msgid "Essex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:23
+msgid "Gloucestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:24
+msgid "Greater London"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:25
+msgid "Greater Manchester"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:26
+msgid "Hampshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:27
+msgid "Hertfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:28
+msgid "Kent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:29
+msgid "Lancashire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:30
+msgid "Leicestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:31
+msgid "Lincolnshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:32
+msgid "Merseyside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:33
+msgid "Norfolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:34
+msgid "North Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:35
+msgid "Northamptonshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:36
+msgid "Northumberland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:37
+msgid "Nottinghamshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:38
+msgid "Oxfordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:39
+msgid "Shropshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:40
+msgid "Somerset"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:41
+msgid "South Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:42
+msgid "Staffordshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:43
+msgid "Suffolk"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:44
+msgid "Surrey"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:45
+msgid "Tyne and Wear"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:46
+msgid "Warwickshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:47
+msgid "West Midlands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:48
+msgid "West Sussex"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:49
+msgid "West Yorkshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:50
+msgid "Wiltshire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:51
+msgid "Worcestershire"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:55
+msgid "County Antrim"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:56
+msgid "County Armagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:57
+msgid "County Down"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:58
+msgid "County Fermanagh"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:59
+msgid "County Londonderry"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:60
+msgid "County Tyrone"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:64
+msgid "Clwyd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:65
+msgid "Dyfed"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:66
+msgid "Gwent"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:67
+msgid "Gwynedd"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:68
+msgid "Mid Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:69
+msgid "Powys"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:70
+msgid "South Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:71
+msgid "West Glamorgan"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:75
+msgid "Borders"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:76
+msgid "Central Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:77
+msgid "Dumfries and Galloway"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:78
+msgid "Fife"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:79
+msgid "Grampian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:80
+msgid "Highland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:81
+msgid "Lothian"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:82
+msgid "Orkney Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:83
+msgid "Shetland Islands"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:84
+msgid "Strathclyde"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:85
+msgid "Tayside"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:86
+msgid "Western Isles"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:90
+msgid "England"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:91
+msgid "Northern Ireland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:92
+msgid "Scotland"
+msgstr ""
+
+#: contrib/localflavor/uk/uk_regions.py:93
+msgid "Wales"
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:16
msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
msgstr "יש להזין מיקוד חוקי בתחביר XXXXX או XXXXX-XXXX."
-#: contrib/localflavor/us/forms.py:51
+#: contrib/localflavor/us/forms.py:54
msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
msgstr "יש להזין מספר ביטוח לאומי אמריקאי בתחביר XXX-XX-XXXX."
+#: contrib/localflavor/za/forms.py:20
+msgid "Enter a valid South African ID number"
+msgstr ""
+
+#: contrib/localflavor/za/forms.py:54
+msgid "Enter a valid South African postal code"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:4
+msgid "Eastern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:5
+msgid "Free State"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:6
+msgid "Gauteng"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:7
+msgid "KwaZulu-Natal"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:8
+msgid "Limpopo"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:9
+msgid "Mpumalanga"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:10
+msgid "Northern Cape"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:11
+msgid "North West"
+msgstr ""
+
+#: contrib/localflavor/za/za_provinces.py:12
+msgid "Western Cape"
+msgstr ""
+
#: contrib/redirects/models.py:7
msgid "redirect from"
msgstr "הפניה מ"
@@ -3036,23 +3466,23 @@ msgstr "הפניה"
msgid "redirects"
msgstr "הפניות"
-#: contrib/sessions/models.py:80
+#: contrib/sessions/models.py:41
msgid "session key"
msgstr "מפתח התחברות (session key)"
-#: contrib/sessions/models.py:81
+#: contrib/sessions/models.py:42
msgid "session data"
msgstr "מידע התחברות (session data)"
-#: contrib/sessions/models.py:82
+#: contrib/sessions/models.py:43
msgid "expire date"
msgstr "תאריך פג תוקף"
-#: contrib/sessions/models.py:87
+#: contrib/sessions/models.py:48
msgid "session"
msgstr "התחברות"
-#: contrib/sessions/models.py:88
+#: contrib/sessions/models.py:49
msgid "sessions"
msgstr "התחברויות"
@@ -3118,7 +3548,7 @@ msgstr "מותר להזין ספרות בלבד."
msgid "This value can't be comprised solely of digits."
msgstr "ערך זה אינו יכול להכיל ספרות בלבד."
-#: core/validators.py:128 newforms/fields.py:157
+#: core/validators.py:128 newforms/fields.py:152
msgid "Enter a whole number."
msgstr "נא להזין מספר שלם."
@@ -3135,7 +3565,7 @@ msgstr "שנה צריכה להיות 1900 ומעלה."
msgid "Invalid date: %s"
msgstr "תאריך שגוי: %s"
-#: core/validators.py:156 db/models/fields/__init__.py:509
+#: core/validators.py:156 db/models/fields/__init__.py:548
msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "יש להזין תאריך במבנה YYYY-MM-DD."
@@ -3143,20 +3573,20 @@ msgstr "יש להזין תאריך במבנה YYYY-MM-DD."
msgid "Enter a valid time in HH:MM format."
msgstr "יש להזין שעה במבנה HH:MM."
-#: core/validators.py:165 db/models/fields/__init__.py:583
+#: core/validators.py:165 db/models/fields/__init__.py:625
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr "יש להזין תאריך ושעה במבנה YYYY-MM-DD HH:MM."
-#: core/validators.py:170 newforms/fields.py:408
+#: core/validators.py:170 newforms/fields.py:403
msgid "Enter a valid e-mail address."
msgstr "יש להזין כתובת דוא\"ל חוקית."
-#: core/validators.py:182 core/validators.py:474 newforms/fields.py:438
-#: oldforms/__init__.py:686
+#: core/validators.py:182 core/validators.py:474 newforms/fields.py:433
+#: oldforms/__init__.py:687
msgid "No file was submitted. Check the encoding type on the form."
msgstr "לא נשלח שום קובץ. נא לבדוק את סוג הקידוד של הטופס."
-#: core/validators.py:193 newforms/fields.py:462
+#: core/validators.py:193 newforms/fields.py:459
msgid ""
"Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image."
@@ -3379,131 +3809,135 @@ msgstr ""
msgid "%(object)s with this %(type)s already exists for the given %(field)s."
msgstr "%(object)s עם %(type)s קיים כבר עבור %(field)s נתון."
-#: db/models/fields/__init__.py:52
+#: db/models/fields/__init__.py:54
#, python-format
msgid "%(optname)s with this %(fieldname)s already exists."
msgstr "%(optname)s·עם·%(fieldname)s·זה קיימת כבר."
-#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:318
-#: db/models/fields/__init__.py:735 db/models/fields/__init__.py:746
-#: newforms/fields.py:45 newforms/models.py:211 oldforms/__init__.py:373
+#: db/models/fields/__init__.py:179 db/models/fields/__init__.py:348
+#: db/models/fields/__init__.py:780 db/models/fields/__init__.py:791
+#: newforms/fields.py:46 oldforms/__init__.py:374
msgid "This field is required."
msgstr "יש להזין תוכן בשדה זה."
-#: db/models/fields/__init__.py:418
+#: db/models/fields/__init__.py:448
msgid "This value must be an integer."
msgstr "ערך זה חייב להיות מספר שלם."
-#: db/models/fields/__init__.py:454
+#: db/models/fields/__init__.py:487
msgid "This value must be either True or False."
msgstr "ערך זה חייב להיות אמת או שקר."
-#: db/models/fields/__init__.py:475
+#: db/models/fields/__init__.py:511
msgid "This field cannot be null."
msgstr "שדה זה אינו יכול להכיל null."
-#: db/models/fields/__init__.py:644
+#: db/models/fields/__init__.py:689
msgid "This value must be a decimal number."
msgstr "ערך זה חייב להיות מספר עשרוני."
-#: db/models/fields/__init__.py:755
+#: db/models/fields/__init__.py:800
msgid "Enter a valid filename."
msgstr "יש להזין שם קובץ חוקי."
-#: db/models/fields/__init__.py:904
+#: db/models/fields/__init__.py:981
msgid "This value must be either None, True or False."
msgstr "ערך זה חייב להיות כלום, אמת או שקר."
-#: db/models/fields/related.py:658
+#: db/models/fields/related.py:94
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "יש להזין %s חוקי."
+
+#: db/models/fields/related.py:746
msgid "Separate multiple IDs with commas."
msgstr "יש להפריד מזהים מרובים בפסיקים."
-#: db/models/fields/related.py:660
+#: db/models/fields/related.py:748
msgid ""
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
msgstr "החזק את \"Control\", או \"Command\" על מק, לחוץ כדי לבחור יותר מאחד."
-#: db/models/fields/related.py:707
+#: db/models/fields/related.py:795
#, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
msgid_plural ""
"Please enter valid %(self)s IDs. The values %(value)r are invalid."
msgstr[0] "נא להזין מזהה %(self)s חוקי. הערך %(value)r אינו חוקי."
-msgstr[1] ""
-"נא להזין מזהי %(self)s חוקיים. הערכים %(value)r אינם חוקיים."
+msgstr[1] "נא להזין מזהי %(self)s חוקיים. הערכים %(value)r אינם חוקיים."
-#: newforms/fields.py:46
+#: newforms/fields.py:47
msgid "Enter a valid value."
msgstr "יש להזין ערך חוקי."
-#: newforms/fields.py:129
+#: newforms/fields.py:124
#, python-format
msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
msgstr "נא לוודא שערך זה מכיל %(max)d תווים לכל היותר (מכיל %(length)d)."
-#: newforms/fields.py:130
+#: newforms/fields.py:125
#, python-format
msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
msgstr "נא לוודא שערך זה מכיל לפחות %(min)d תווים (מכיל %(length)d)."
-#: newforms/fields.py:158 newforms/fields.py:187 newforms/fields.py:216
+#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211
#, python-format
msgid "Ensure this value is less than or equal to %s."
msgstr "יש לוודא שערך זה פחות מ או שווה ל %s."
-#: newforms/fields.py:159 newforms/fields.py:188 newforms/fields.py:217
+#: newforms/fields.py:154 newforms/fields.py:183 newforms/fields.py:212
#, python-format
msgid "Ensure this value is greater than or equal to %s."
msgstr "יש לוודא שהערך גדול מ או שווה ל %s."
-#: newforms/fields.py:186 newforms/fields.py:215
+#: newforms/fields.py:181 newforms/fields.py:210
msgid "Enter a number."
msgstr "נא להזין מספר."
-#: newforms/fields.py:218
+#: newforms/fields.py:213
#, python-format
msgid "Ensure that there are no more than %s digits in total."
msgstr "נא לוודא שאין יותר מ-%s ספרות סה\"כ"
-#: newforms/fields.py:219
+#: newforms/fields.py:214
#, python-format
msgid "Ensure that there are no more than %s decimal places."
msgstr "נא לוודא שאין יותר מ-%s ספרות אחרי הנקודה"
-#: newforms/fields.py:220
+#: newforms/fields.py:215
#, python-format
msgid "Ensure that there are no more than %s digits before the decimal point."
msgstr "נא לוודא שאין יותר מ-%s ספרות לפני הנקודה העשרונית"
-#: newforms/fields.py:268 newforms/fields.py:724
+#: newforms/fields.py:263 newforms/fields.py:751
msgid "Enter a valid date."
msgstr "יש להזין תאריך חוקי."
-#: newforms/fields.py:301 newforms/fields.py:725
+#: newforms/fields.py:296 newforms/fields.py:752
msgid "Enter a valid time."
msgstr "יש להזין שעה חוקית."
-#: newforms/fields.py:340
+#: newforms/fields.py:335
msgid "Enter a valid date/time."
msgstr "יש להזין תאריך ושעה חוקיים."
-#: newforms/fields.py:439
+#: newforms/fields.py:434
msgid "No file was submitted."
msgstr "לא נשלח שום קובץ"
-#: newforms/fields.py:440 oldforms/__init__.py:688
+#: newforms/fields.py:435 oldforms/__init__.py:689
msgid "The submitted file is empty."
msgstr "הקובץ שנשלח ריק."
-#: newforms/fields.py:498
+#: newforms/fields.py:497
msgid "Enter a valid URL."
msgstr "יש להזין URL חוקי."
-#: newforms/fields.py:499
+#: newforms/fields.py:498
msgid "This URL appears to be a broken link."
msgstr "ה-URL הזה נראה כקישור שבור."
-#: newforms/fields.py:560 newforms/models.py:194
+#: newforms/fields.py:560 newforms/models.py:299
msgid "Select a valid choice. That choice is not one of the available choices."
msgstr "יש לבחור אפשרות חוקית; '%(data)s' אינו בין %(choices)s."
@@ -3512,69 +3946,69 @@ msgstr "יש לבחור אפשרות חוקית; '%(data)s' אינו בין %(ch
msgid "Select a valid choice. %(value)s is not one of the available choices."
msgstr "יש לבחור אפשרות חוקית. %(value)s אינו בין האפשרויות הזמינות."
-#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:215
+#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:371
msgid "Enter a list of values."
msgstr "יש להזין רשימת ערכים"
-#: newforms/fields.py:753
+#: newforms/fields.py:780
msgid "Enter a valid IPv4 address."
msgstr "יש להזין כתובת IPv4 חוקית."
-#: newforms/models.py:221
+#: newforms/models.py:372
#, python-format
msgid "Select a valid choice. %s is not one of the available choices."
msgstr "יש לבחור אפשרות חוקית. %s אינו בין האפשרויות הזמינות."
-#: oldforms/__init__.py:408
+#: oldforms/__init__.py:409
#, python-format
msgid "Ensure your text is less than %s character."
msgid_plural "Ensure your text is less than %s characters."
msgstr[0] "נא לוודא שהטקסט שלך מכיל פחות מ %s תו."
msgstr[1] "נא לוודא שהטקסט שלך מכיל פחות מ %s תווים."
-#: oldforms/__init__.py:413
+#: oldforms/__init__.py:414
msgid "Line breaks are not allowed here."
msgstr "מעברי שורה אסורים כאן."
-#: oldforms/__init__.py:511 oldforms/__init__.py:585 oldforms/__init__.py:624
+#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625
#, python-format
msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
msgstr "יש לבחור אפשרות חוקית; '%(data)s' אינו בין %(choices)s."
-#: oldforms/__init__.py:744
+#: oldforms/__init__.py:745
msgid "Enter a whole number between -32,768 and 32,767."
msgstr "חש להזין מספר שלם בין -32,768 ל- 32,767."
-#: oldforms/__init__.py:754
+#: oldforms/__init__.py:755
msgid "Enter a positive number."
msgstr "יש להזין מספר חיובי."
-#: oldforms/__init__.py:764
+#: oldforms/__init__.py:765
msgid "Enter a whole number between 0 and 32,767."
msgstr "יש להזין מספר שלם בין 0 ל- 32,767."
-#: template/defaultfilters.py:555
+#: template/defaultfilters.py:698
msgid "yes,no,maybe"
msgstr "כן,לא,אולי"
-#: template/defaultfilters.py:585
+#: template/defaultfilters.py:729
#, python-format
msgid "%(size)d byte"
msgid_plural "%(size)d bytes"
msgstr[0] "%(size)d בית"
msgstr[1] "%(size)d בתים"
-#: template/defaultfilters.py:587
+#: template/defaultfilters.py:731
#, python-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: template/defaultfilters.py:589
+#: template/defaultfilters.py:733
#, python-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: template/defaultfilters.py:590
+#: template/defaultfilters.py:734
#, python-format
msgid "%.1f GB"
msgstr "%.1f GB"
@@ -3837,23 +4271,23 @@ msgstr "%(number)d %(type)s"
msgid ", %(number)d %(type)s"
msgstr ", %(number)d %(type)s"
-#: utils/translation/trans_real.py:395
+#: utils/translation/trans_real.py:403
msgid "DATE_FORMAT"
msgstr "d.m.Y"
-#: utils/translation/trans_real.py:396
+#: utils/translation/trans_real.py:404
msgid "DATETIME_FORMAT"
msgstr "d.m.y H:i:s"
-#: utils/translation/trans_real.py:397
+#: utils/translation/trans_real.py:405
msgid "TIME_FORMAT"
msgstr "H:i:s"
-#: utils/translation/trans_real.py:413
+#: utils/translation/trans_real.py:421
msgid "YEAR_MONTH_FORMAT"
msgstr "d.m.Y"
-#: utils/translation/trans_real.py:414
+#: utils/translation/trans_real.py:422
msgid "MONTH_DAY_FORMAT"
msgstr "d.m.Y"
@@ -3871,4 +4305,3 @@ msgstr "ה-%(verbose_name)s עודכן בהצלחה."
#, python-format
msgid "The %(verbose_name)s was deleted."
msgstr "ה-%(verbose_name)s נמחק."
-
diff --git a/django/conf/locale/hr/LC_MESSAGES/django.mo b/django/conf/locale/hr/LC_MESSAGES/django.mo
index adbbfa1d7d..0326a71909 100644
Binary files a/django/conf/locale/hr/LC_MESSAGES/django.mo and b/django/conf/locale/hr/LC_MESSAGES/django.mo differ
diff --git a/django/conf/locale/hr/LC_MESSAGES/django.po b/django/conf/locale/hr/LC_MESSAGES/django.po
index ca2d1d05bf..cfdcf6f916 100644
--- a/django/conf/locale/hr/LC_MESSAGES/django.po
+++ b/django/conf/locale/hr/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-01-06 16:24+0100\n"
-"PO-Revision-Date: 2008-04-17 17:30+0200\n"
+"PO-Revision-Date: 2008-06-17 23:25+0100\n"
"Last-Translator: Aljosa Mohorovic \n"
"Language-Team: Hrvatski jezik\n"
"MIME-Version: 1.0\n"
@@ -18,11 +18,11 @@ msgstr ""
#: conf/global_settings.py:39
msgid "Arabic"
-msgstr ""
+msgstr "Arapski"
#: conf/global_settings.py:40
msgid "Bengali"
-msgstr ""
+msgstr "Bengalski"
#: conf/global_settings.py:41
msgid "Bulgarian"
@@ -30,7 +30,7 @@ msgstr "Bugarski"
#: conf/global_settings.py:42
msgid "Catalan"
-msgstr ""
+msgstr "Katalanski"
#: conf/global_settings.py:43
msgid "Czech"
@@ -38,7 +38,7 @@ msgstr "Češki"
#: conf/global_settings.py:44
msgid "Welsh"
-msgstr ""
+msgstr "Velški"
#: conf/global_settings.py:45
msgid "Danish"
@@ -62,7 +62,7 @@ msgstr "Španjolski"
#: conf/global_settings.py:50
msgid "Argentinean Spanish"
-msgstr ""
+msgstr "Argentinski španjolski"
#: conf/global_settings.py:51
msgid "Persian"
@@ -78,11 +78,11 @@ msgstr "Francuski"
#: conf/global_settings.py:54
msgid "Gaeilge"
-msgstr ""
+msgstr "Gaeilge"
#: conf/global_settings.py:55
msgid "Galician"
-msgstr ""
+msgstr "Galski"
#: conf/global_settings.py:56
msgid "Hungarian"
@@ -90,7 +90,7 @@ msgstr "Mađarski"
#: conf/global_settings.py:57
msgid "Hebrew"
-msgstr ""
+msgstr "Hebrejski"
#: conf/global_settings.py:58
msgid "Croatian"
@@ -98,7 +98,7 @@ msgstr "Hrvatski"
#: conf/global_settings.py:59
msgid "Icelandic"
-msgstr ""
+msgstr "Islandski"
#: conf/global_settings.py:60
msgid "Italian"
@@ -114,15 +114,15 @@ msgstr "Koreanski"
#: conf/global_settings.py:63
msgid "Khmer"
-msgstr ""
+msgstr "Kambođanski"
#: conf/global_settings.py:64
msgid "Kannada"
-msgstr ""
+msgstr "Kannada"
#: conf/global_settings.py:65
msgid "Latvian"
-msgstr ""
+msgstr "Letonski"
#: conf/global_settings.py:66
msgid "Macedonian"
@@ -174,11 +174,11 @@ msgstr "Švedski"
#: conf/global_settings.py:78
msgid "Tamil"
-msgstr ""
+msgstr "Tamilski"
#: conf/global_settings.py:79
msgid "Telugu"
-msgstr ""
+msgstr "Telugu"
#: conf/global_settings.py:80
msgid "Turkish"
@@ -186,11 +186,11 @@ msgstr "Turski"
#: conf/global_settings.py:81
msgid "Ukrainian"
-msgstr ""
+msgstr "Ukrajinski"
#: conf/global_settings.py:82
msgid "Simplified Chinese"
-msgstr ""
+msgstr "Pojednostavljeni kineski"
#: conf/global_settings.py:83
msgid "Traditional Chinese"
@@ -202,6 +202,8 @@ msgid ""
"
By %s:
\n"
"
\n"
msgstr ""
+"
Po %s:
\n"
+"
\n"
#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
@@ -241,7 +243,7 @@ msgstr "Ne"
#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231
#: oldforms/__init__.py:592
msgid "Unknown"
-msgstr "Nepoznat pojam."
+msgstr "Nepoznat pojam"
#: contrib/admin/models.py:18
msgid "action time"
@@ -253,11 +255,11 @@ msgstr "id objekta"
#: contrib/admin/models.py:22
msgid "object repr"
-msgstr ""
+msgstr "object repr"
#: contrib/admin/models.py:23
msgid "action flag"
-msgstr ""
+msgstr "action flag"
#: contrib/admin/models.py:24
msgid "change message"
@@ -265,11 +267,11 @@ msgstr "promijeni poruku"
#: contrib/admin/models.py:27
msgid "log entry"
-msgstr ""
+msgstr "log entry"
#: contrib/admin/models.py:28
msgid "log entries"
-msgstr ""
+msgstr "log entries"
#: contrib/admin/templates/admin/404.html:4
#: contrib/admin/templates/admin/404.html:8
@@ -310,11 +312,10 @@ msgid "Server Error (500)"
msgstr "Serverska pogreška (500)"
#: contrib/admin/templates/admin/500.html:10
-#, fuzzy
msgid ""
"There's been an error. It's been reported to the site administrators via e-"
"mail and should be fixed shortly. Thanks for your patience."
-msgstr "i."
+msgstr "Dogodila se pogreška. Administratori su obaviješteni putem e-maila te bi pogreška uskoro trebala biti ispravljena. Hvala na strpljenju."
#: contrib/admin/templates/admin/base.html:26
msgid "Welcome,"
@@ -371,12 +372,12 @@ msgstr "Redoslijed"
#: contrib/admin/templates/admin/change_form.html:52
msgid "Order:"
-msgstr "Redoslijed"
+msgstr "Redoslijed:"
#: contrib/admin/templates/admin/change_list.html:11
#, python-format
msgid "Add %(name)s"
-msgstr "Add %(name)s"
+msgstr "Dodaj %(name)s"
#: contrib/admin/templates/admin/delete_confirmation.html:8
#: contrib/admin/templates/admin/submit_line.html:3
@@ -399,6 +400,8 @@ msgid ""
"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
"All of the following related items will be deleted:"
msgstr ""
+"Jeste li sigurni da želite izbrisati %(object_name)s \"%(escaped_object)s\"? "
+"Svi navedeni objekti biti će izbrisani:"
#: contrib/admin/templates/admin/delete_confirmation.html:25
msgid "Yes, I'm sure"
@@ -482,7 +485,7 @@ msgstr "Akcija"
#: contrib/admin/templates/admin/object_history.html:25
msgid "DATE_WITH_TIME_FULL"
-msgstr ""
+msgstr "DATE_WITH_TIME_FULL"
#: contrib/admin/templates/admin/object_history.html:35
msgid ""
@@ -562,11 +565,11 @@ msgstr "Unesi novu lozinku za korisnika %(username)s."
#: contrib/admin/templates/admin_doc/bookmarklets.html:3
msgid "Bookmarklets"
-msgstr ""
+msgstr "Bookmarklets"
#: contrib/admin/templates/admin_doc/bookmarklets.html:4
msgid "Documentation bookmarklets"
-msgstr ""
+msgstr "Dokumentacija bookmarklets-a"
#: contrib/admin/templates/admin_doc/bookmarklets.html:8
msgid ""
@@ -579,12 +582,12 @@ msgid ""
"your computer is \"internal\").\n"
msgstr ""
"\n"
-"
To install bookmarklets, drag the link to your bookmarks\n"
-"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
-"select the bookmarklet from any page in the site. Note that some of these\n"
-"bookmarklets require you to be viewing the site from a computer designated\n"
-"as \"internal\" (talk to your system administrator if you aren't sure if\n"
-"your computer is \"internal\").
\n"
+"
Da bi instalirali bookmarklet, povucite link na svoj bookmarks\n"
+"toolbar, ili desnim klikom na link dodajte u svoje bookmarke. Sada možete\n"
+"selektirati bookmarklet sa bilo koje stranice. Zapamtite da neki bookmarkleti\n"
+"zahtjevaju da gledate stranice sa računala označenog\n"
+"kao \"internal\" (razgovarajte sa svojim sistem administratorom ako niste sigurni\n"
+"je li vaše računalo \"internal\").
\n"
#: contrib/admin/templates/admin_doc/bookmarklets.html:18
msgid "Documentation for this page"
@@ -607,22 +610,20 @@ msgid ""
"Shows the content-type and unique ID for pages that represent a single "
"object."
msgstr ""
-"Prikazuje tip sadržaja i jedinstveni ID za stranice koje predstavljaju "
+"Prikazuje tip sadržaja (content-type) i jedinstveni ID za stranice koje predstavljaju "
"pojedinačan objekt."
#: contrib/admin/templates/admin_doc/bookmarklets.html:24
msgid "Edit this object (current window)"
-msgstr "Uredi objekt (u trenutno prozoru)"
+msgstr "Uredi objekt (u trenutnom prozoru)"
#: contrib/admin/templates/admin_doc/bookmarklets.html:25
msgid "Jumps to the admin page for pages that represent a single object."
-msgstr ""
-"Preusmjeri na admin stranicu za stranice koje predstavljaju pojedinačan "
-"objekt."
+msgstr "Preusmjeri na admin stranicu za stranice koje predstavljaju pojedinačan objekt."
#: contrib/admin/templates/admin_doc/bookmarklets.html:27
msgid "Edit this object (new window)"
-msgstr "Uredi objekt (novi prozor)"
+msgstr "Uredi objekt (u novom prozoru)"
#: contrib/admin/templates/admin_doc/bookmarklets.html:28
msgid "As above, but opens the admin page in a new window."
@@ -674,7 +675,7 @@ msgstr "Potvrdi lozinku:"
#: contrib/admin/templates/registration/password_change_form.html:22
msgid "Change my password"
-msgstr "Promijeni lozinku"
+msgstr "Promijeni moju lozinku"
#: contrib/admin/templates/registration/password_reset_done.html:4
#: contrib/admin/templates/registration/password_reset_form.html:4
@@ -741,7 +742,7 @@ msgstr "E-mail adresa:"
#: contrib/admin/templates/registration/password_reset_form.html:16
msgid "Reset my password"
-msgstr "Resetiraj lozinku"
+msgstr "Resetiraj moju lozinku"
#: contrib/admin/templates/widget/date_time.html:3
msgid "Date:"
@@ -882,7 +883,7 @@ msgstr "Cijeli broj"
#: contrib/admin/views/doc.py:294
msgid "Boolean (Either True or False)"
-msgstr "Boolean (True or False)"
+msgstr "Boolean (True ili False)"
#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314
#, python-format
@@ -916,7 +917,7 @@ msgstr "Put do datoteke"
#: contrib/admin/views/doc.py:303
msgid "Floating point number"
-msgstr "Floating point number"
+msgstr "Broj s pomičnim zarezom (floating point number)"
#: contrib/admin/views/doc.py:307 contrib/comments/models.py:85
msgid "IP address"
@@ -924,11 +925,11 @@ msgstr "IP adresa"
#: contrib/admin/views/doc.py:309
msgid "Boolean (Either True, False or None)"
-msgstr "Boolean (Either True, False or None)"
+msgstr "Boolean (True, False ili None)"
#: contrib/admin/views/doc.py:310
msgid "Relation to parent model"
-msgstr "Relation to parent model"
+msgstr "Relacija na roditeljski model (parent model)"
#: contrib/admin/views/doc.py:311
msgid "Phone number"
@@ -948,7 +949,7 @@ msgstr "URL"
#: contrib/admin/views/doc.py:319
msgid "U.S. state (two uppercase letters)"
-msgstr "U.S. state (two uppercase letters)"
+msgstr "Država S.A.D.-a (dva velika slova)"
#: contrib/admin/views/doc.py:320
msgid "XML text"
@@ -992,7 +993,7 @@ msgstr "Promijenjeno %s."
#: contrib/admin/views/main.py:348
#, python-format
msgid "Deleted %s."
-msgstr ""
+msgstr "Izbrisano %s."
#: contrib/admin/views/main.py:351
msgid "No fields changed."
@@ -1016,12 +1017,12 @@ msgstr "Promijeni %s"
#: contrib/admin/views/main.py:487
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
-msgstr "Jedan ili više %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Jedan ili više %(fieldname)s u %(name)s: %(obj)s"
#: contrib/admin/views/main.py:492
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
-msgstr "Jedan ili više %(fieldname)s in %(name)s"
+msgstr "Jedan ili više %(fieldname)s u %(name)s"
#: contrib/admin/views/main.py:524
#, python-format
@@ -1240,7 +1241,7 @@ msgstr "ID objekta"
#: contrib/comments/models.py:68
msgid "headline"
-msgstr "headline / naslov?"
+msgstr "naslov"
#: contrib/comments/models.py:69 contrib/comments/models.py:90
#: contrib/comments/models.py:170
@@ -1249,43 +1250,43 @@ msgstr "komentar"
#: contrib/comments/models.py:70
msgid "rating #1"
-msgstr "rating #1"
+msgstr "ocjena #1"
#: contrib/comments/models.py:71
msgid "rating #2"
-msgstr "rating #2"
+msgstr "ocjena #2"
#: contrib/comments/models.py:72
msgid "rating #3"
-msgstr "rating #3"
+msgstr "ocjena #3"
#: contrib/comments/models.py:73
msgid "rating #4"
-msgstr "rating #4"
+msgstr "ocjena #4"
#: contrib/comments/models.py:74
msgid "rating #5"
-msgstr "rating #5"
+msgstr "ocjena #5"
#: contrib/comments/models.py:75
msgid "rating #6"
-msgstr "rating #6"
+msgstr "ocjena #6"
#: contrib/comments/models.py:76
msgid "rating #7"
-msgstr "rating #7"
+msgstr "ocjena #7"
#: contrib/comments/models.py:77
msgid "rating #8"
-msgstr "rating #8"
+msgstr "ocjena #8"
#: contrib/comments/models.py:82
msgid "is valid rating"
-msgstr "rating je ispravan"
+msgstr "ocjena je ispravana"
#: contrib/comments/models.py:83 contrib/comments/models.py:172
msgid "date/time submitted"
-msgstr "datum/vrijeme submitted"
+msgstr "datum/vrijeme unosa"
#: contrib/comments/models.py:84 contrib/comments/models.py:173
msgid "is public"
@@ -1320,6 +1321,11 @@ msgid ""
"\n"
"http://%(domain)s%(url)s"
msgstr ""
+"Napisao %(user)s dana %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
#: contrib/comments/models.py:171
msgid "person's name"
@@ -1360,7 +1366,7 @@ msgstr "karma rezultati"
#: contrib/comments/models.py:248
#, python-format
msgid "%(score)d rating by %(user)s"
-msgstr "%(score)d rating po %(user)s"
+msgstr "%(score)d ocjena po %(user)s"
#: contrib/comments/models.py:264
#, python-format
@@ -1369,23 +1375,26 @@ msgid ""
"\n"
"%(text)s"
msgstr ""
+"Ovaj komentar je označio %(user)s:\n"
+"\n"
+"%(text)s"
#: contrib/comments/models.py:271
msgid "flag date"
-msgstr "datum flag-a"
+msgstr "označeno datuma"
#: contrib/comments/models.py:274
msgid "user flag"
-msgstr "korisnički flag"
+msgstr "korisnička oznaka"
#: contrib/comments/models.py:275
msgid "user flags"
-msgstr "korisnički flag-ovi"
+msgstr "korisničke oznake"
#: contrib/comments/models.py:279
#, python-format
msgid "Flag by %r"
-msgstr "Flag po %r"
+msgstr "Oznaka po %r"
#: contrib/comments/models.py:284
msgid "deletion date"
@@ -1410,7 +1419,7 @@ msgstr "Zaboravili ste lozinku?"
#: contrib/comments/templates/comments/form.html:12
msgid "Ratings"
-msgstr "Ratings"
+msgstr "Ocjene"
#: contrib/comments/templates/comments/form.html:12
#: contrib/comments/templates/comments/form.html:23
@@ -1434,7 +1443,7 @@ msgstr "Komentar:"
#: contrib/comments/templates/comments/form.html:35
#: contrib/comments/templates/comments/freeform.html:10
msgid "Preview comment"
-msgstr "Preview komentara"
+msgstr "Pregled komentara"
#: contrib/comments/templates/comments/freeform.html:4
msgid "Your name:"
@@ -1442,7 +1451,7 @@ msgstr "Vaše ime:"
#: contrib/comments/views/comments.py:28
msgid "This rating is required because you've entered at least one other rating."
-msgstr ""
+msgstr "Ova ocjena je obavezna jer ste bar jednom već ocjenjivali"
#: contrib/comments/views/comments.py:112
#, python-format
@@ -1457,7 +1466,15 @@ msgid_plural ""
"\n"
"%(text)s"
msgstr[0] ""
+"Ovaj komentar je napisao korisnik koji je napisao manje od %(count)s "
+"komentara:\n"
+"\n"
+"%(text)s"
msgstr[1] ""
+"Ovaj komentar je napisao korisnik koji je napisao manje od %(count)s "
+"komentara:\n"
+"\n"
+"%(text)s"
#: contrib/comments/views/comments.py:117
#, python-format
@@ -1466,6 +1483,9 @@ msgid ""
"\n"
"%(text)s"
msgstr ""
+"Ovaj komentar je napisao nedorečen korisnik:\n"
+"\n"
+"%(text)s"
#: contrib/comments/views/comments.py:190
#: contrib/comments/views/comments.py:283
@@ -1480,7 +1500,7 @@ msgstr "Jedno ili više obaveznih polja nisu poslana"
#: contrib/comments/views/comments.py:198
#: contrib/comments/views/comments.py:289
msgid "Somebody tampered with the comment form (security violation)"
-msgstr ""
+msgstr "Netko je mijenjao formu komentara (sigurnosni propust)"
#: contrib/comments/views/comments.py:208
#: contrib/comments/views/comments.py:295
@@ -1488,24 +1508,25 @@ msgid ""
"The comment form had an invalid 'target' parameter -- the object ID was "
"invalid"
msgstr ""
+"Forma komentara ima nepravilni 'target' parametar -- ID objekta je bio "
+"nepravilan"
#: contrib/comments/views/comments.py:259
#: contrib/comments/views/comments.py:324
msgid "The comment form didn't provide either 'preview' or 'post'"
-msgstr ""
+msgstr "Forma komentara nije imala ni 'preview' ni 'post'"
#: contrib/comments/views/karma.py:21
msgid "Anonymous users cannot vote"
-msgstr ""
+msgstr "Anonimni korisnici ne mogu glasati"
#: contrib/comments/views/karma.py:25
msgid "Invalid comment ID"
-msgstr ""
+msgstr "Neispravan ID komentara"
#: contrib/comments/views/karma.py:27
-#, fuzzy
msgid "No voting for yourself"
-msgstr "Ne"
+msgstr "Ne možete glasati za sebe"
#: contrib/contenttypes/models.py:37
msgid "python model class name"
@@ -1567,40 +1588,40 @@ msgstr "statične stranice"
#: contrib/humanize/templatetags/humanize.py:20
msgid "th"
-msgstr ""
+msgstr "th"
#: contrib/humanize/templatetags/humanize.py:20
msgid "st"
-msgstr ""
+msgstr "st"
#: contrib/humanize/templatetags/humanize.py:20
msgid "nd"
-msgstr ""
+msgstr "nd"
#: contrib/humanize/templatetags/humanize.py:20
msgid "rd"
-msgstr ""
+msgstr "rd"
#: contrib/humanize/templatetags/humanize.py:52
#, python-format
msgid "%(value).1f million"
msgid_plural "%(value).1f million"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(value).1f milijun"
+msgstr[1] "%(value).1f milijuna"
#: contrib/humanize/templatetags/humanize.py:55
#, python-format
msgid "%(value).1f billion"
msgid_plural "%(value).1f billion"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(value).1f milijarda"
+msgstr[1] "%(value).1f milijarde"
#: contrib/humanize/templatetags/humanize.py:58
#, python-format
msgid "%(value).1f trillion"
msgid_plural "%(value).1f trillion"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(value).1f bilijun"
+msgstr[1] "%(value).1f bilijuna"
#: contrib/humanize/templatetags/humanize.py:74
msgid "one"
@@ -1688,7 +1709,8 @@ msgstr "Telefonski brojevi moraju biti formata XX-XXXX-XXXX."
msgid ""
"Select a valid brazilian state. That state is not one of the available "
"states."
-msgstr ""
+msgstr "Izaberite ispravnu brazilsku državu. Država nije jedna od dostupnih "
+"država."
#: contrib/localflavor/br/forms.py:94
msgid "Invalid CPF number."
@@ -1696,7 +1718,7 @@ msgstr "Neispravan CPF broj."
#: contrib/localflavor/br/forms.py:95
msgid "This field requires at most 11 digits or 14 characters."
-msgstr "Ovo polje zahtjeva najviše 11 ili 14 numeričkih znakova."
+msgstr "Ovo polje zahtjeva najviše 11 numeričkih znakova ili 14 slova."
#: contrib/localflavor/br/forms.py:134
msgid "Invalid CNPJ number."
@@ -1704,7 +1726,7 @@ msgstr "Neispravan CNPJ broj."
#: contrib/localflavor/br/forms.py:136
msgid "This field requires at least 14 digits"
-msgstr "Ovo polje zahtjeva najviše 14 numeričkih znakova"
+msgstr "Ovo polje zahtjeva bar 14 numeričkih znakova"
#: contrib/localflavor/ca/forms.py:17
msgid "Enter a postal code in the format XXX XXX."
@@ -1712,121 +1734,122 @@ msgstr "Unesi poštanski broj formata XXX XXX."
#: contrib/localflavor/ca/forms.py:88
msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format."
-msgstr ""
+msgstr "Unesite valjani kanadski broj socijalnog osiguranja formata XXX-XXX-XXX."
#: contrib/localflavor/ch/ch_states.py:5
msgid "Aargau"
-msgstr ""
+msgstr "Aargau"
#: contrib/localflavor/ch/ch_states.py:6
msgid "Appenzell Innerrhoden"
-msgstr ""
+msgstr "Appenzell Innerrhoden"
#: contrib/localflavor/ch/ch_states.py:7
msgid "Appenzell Ausserrhoden"
-msgstr ""
+msgstr "Appenzell Ausserrhoden"
#: contrib/localflavor/ch/ch_states.py:8
msgid "Basel-Stadt"
-msgstr ""
+msgstr "Basel-Stadt"
#: contrib/localflavor/ch/ch_states.py:9
msgid "Basel-Land"
-msgstr ""
+msgstr "Basel-Land"
#: contrib/localflavor/ch/ch_states.py:10
msgid "Berne"
-msgstr ""
+msgstr "Berne"
#: contrib/localflavor/ch/ch_states.py:11
msgid "Fribourg"
-msgstr ""
+msgstr "Fribourg"
#: contrib/localflavor/ch/ch_states.py:12
msgid "Geneva"
-msgstr ""
+msgstr "Geneva"
#: contrib/localflavor/ch/ch_states.py:13
msgid "Glarus"
-msgstr ""
+msgstr "Glarus"
#: contrib/localflavor/ch/ch_states.py:14
msgid "Graubuenden"
-msgstr ""
+msgstr "Graubuenden"
#: contrib/localflavor/ch/ch_states.py:15
msgid "Jura"
-msgstr ""
+msgstr "Jura"
#: contrib/localflavor/ch/ch_states.py:16
msgid "Lucerne"
-msgstr ""
+msgstr "Lucerne"
#: contrib/localflavor/ch/ch_states.py:17
msgid "Neuchatel"
-msgstr ""
+msgstr "Neuchatel"
#: contrib/localflavor/ch/ch_states.py:18
msgid "Nidwalden"
-msgstr ""
+msgstr "Nidwalden"
#: contrib/localflavor/ch/ch_states.py:19
msgid "Obwalden"
-msgstr ""
+msgstr "Obwalden"
#: contrib/localflavor/ch/ch_states.py:20
msgid "Schaffhausen"
-msgstr ""
+msgstr "Schaffhausen"
#: contrib/localflavor/ch/ch_states.py:21
msgid "Schwyz"
-msgstr ""
+msgstr "Schwyz"
#: contrib/localflavor/ch/ch_states.py:22
msgid "Solothurn"
-msgstr ""
+msgstr "Solothurn"
#: contrib/localflavor/ch/ch_states.py:23
msgid "St. Gallen"
-msgstr ""
+msgstr "St. Gallen"
#: contrib/localflavor/ch/ch_states.py:24
msgid "Thurgau"
-msgstr ""
+msgstr "Thurgau"
#: contrib/localflavor/ch/ch_states.py:25
msgid "Ticino"
-msgstr ""
+msgstr "Ticino"
#: contrib/localflavor/ch/ch_states.py:26
msgid "Uri"
-msgstr ""
+msgstr "Uri"
#: contrib/localflavor/ch/ch_states.py:27
msgid "Valais"
-msgstr ""
+msgstr "Valais"
#: contrib/localflavor/ch/ch_states.py:28
msgid "Vaud"
-msgstr ""
+msgstr "Vaud"
#: contrib/localflavor/ch/ch_states.py:29
msgid "Zug"
-msgstr ""
+msgstr "Zug"
#: contrib/localflavor/ch/ch_states.py:30
msgid "Zurich"
-msgstr ""
+msgstr "Zurich"
#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12
msgid "Enter a zip code in the format XXXX."
-msgstr ""
+msgstr "Unesite zip kod formata XXXX."
#: contrib/localflavor/ch/forms.py:64
msgid ""
"Enter a valid Swiss identity or passport card number in X1234567<0 or "
"1234567890 format."
-msgstr ""
+msgstr "Unesite ispravan švicarski identifikacijski broj ili broj putovnice formata X1234567<0 ili "
+"1234567890"
#: contrib/localflavor/cl/forms.py:29
msgid "Enter a valid Chilean RUT."
@@ -1838,55 +1861,55 @@ msgstr "Unesi ispravan čileanski RUT formata XX.XXX.XXX-X."
#: contrib/localflavor/cl/forms.py:31
msgid "The Chilean RUT is not valid."
-msgstr ""
+msgstr "Čileanski RUT nije ispravan."
#: contrib/localflavor/de/de_states.py:5
msgid "Baden-Wuerttemberg"
-msgstr ""
+msgstr "Baden-Wuerttemberg"
#: contrib/localflavor/de/de_states.py:6
msgid "Bavaria"
-msgstr ""
+msgstr "Bavaria"
#: contrib/localflavor/de/de_states.py:7
msgid "Berlin"
-msgstr ""
+msgstr "Berlin"
#: contrib/localflavor/de/de_states.py:8
msgid "Brandenburg"
-msgstr ""
+msgstr "Brandenburg"
#: contrib/localflavor/de/de_states.py:9
msgid "Bremen"
-msgstr ""
+msgstr "Bremen"
#: contrib/localflavor/de/de_states.py:10
msgid "Hamburg"
-msgstr ""
+msgstr "Hamburg"
#: contrib/localflavor/de/de_states.py:11
msgid "Hessen"
-msgstr ""
+msgstr "Hessen"
#: contrib/localflavor/de/de_states.py:12
msgid "Mecklenburg-Western Pomerania"
-msgstr ""
+msgstr "Mecklenburg-Western Pomerania"
#: contrib/localflavor/de/de_states.py:13
msgid "Lower Saxony"
-msgstr ""
+msgstr "Lower Saxony"
#: contrib/localflavor/de/de_states.py:14
msgid "North Rhine-Westphalia"
-msgstr ""
+msgstr "North Rhine-Westphalia"
#: contrib/localflavor/de/de_states.py:15
msgid "Rhineland-Palatinate"
-msgstr ""
+msgstr "Rhineland-Palatinate"
#: contrib/localflavor/de/de_states.py:16
msgid "Saarland"
-msgstr ""
+msgstr "Saarland"
#: contrib/localflavor/de/de_states.py:17
msgid "Saxony"
@@ -1894,861 +1917,846 @@ msgstr "Saxony"
#: contrib/localflavor/de/de_states.py:18
msgid "Saxony-Anhalt"
-msgstr ""
+msgstr "Saxony-Anhalt"
#: contrib/localflavor/de/de_states.py:19
msgid "Schleswig-Holstein"
-msgstr ""
+msgstr "Schleswig-Holstein"
#: contrib/localflavor/de/de_states.py:20
msgid "Thuringia"
-msgstr ""
+msgstr "Thuringia"
#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
#: contrib/localflavor/fr/forms.py:15
msgid "Enter a zip code in the format XXXXX."
-msgstr ""
+msgstr "Unesite zip kod formata XXXXX."
#: contrib/localflavor/de/forms.py:41
msgid ""
"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
"format."
-msgstr ""
+msgstr "Unesite broj njemačke identifikacijske kartice formata XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+""
#: contrib/localflavor/es/es_provinces.py:5
msgid "Arava"
-msgstr ""
+msgstr "Arava"
#: contrib/localflavor/es/es_provinces.py:6
msgid "Albacete"
-msgstr ""
+msgstr "Albacete"
#: contrib/localflavor/es/es_provinces.py:7
msgid "Alacant"
-msgstr ""
+msgstr "Alacant"
#: contrib/localflavor/es/es_provinces.py:8
msgid "Almeria"
-msgstr ""
+msgstr "Almeria"
#: contrib/localflavor/es/es_provinces.py:9
msgid "Avila"
-msgstr "Travanj"
+msgstr "Avila"
#: contrib/localflavor/es/es_provinces.py:10
msgid "Badajoz"
-msgstr ""
+msgstr "Badajoz"
#: contrib/localflavor/es/es_provinces.py:11
msgid "Illes Balears"
-msgstr ""
+msgstr "Illes Balears"
#: contrib/localflavor/es/es_provinces.py:12
msgid "Barcelona"
-msgstr ""
+msgstr "Barcelona"
#: contrib/localflavor/es/es_provinces.py:13
msgid "Burgos"
-msgstr ""
+msgstr "Burgos"
#: contrib/localflavor/es/es_provinces.py:14
msgid "Caceres"
-msgstr ""
+msgstr "Caceres"
#: contrib/localflavor/es/es_provinces.py:15
msgid "Cadiz"
-msgstr ""
+msgstr "Cadiz"
#: contrib/localflavor/es/es_provinces.py:16
msgid "Castello"
-msgstr ""
+msgstr "Castello"
#: contrib/localflavor/es/es_provinces.py:17
msgid "Ciudad Real"
-msgstr ""
+msgstr "Ciudad Real"
#: contrib/localflavor/es/es_provinces.py:18
msgid "Cordoba"
-msgstr ""
+msgstr "Cordoba"
#: contrib/localflavor/es/es_provinces.py:19
msgid "A Coruna"
-msgstr ""
+msgstr "A Coruna"
#: contrib/localflavor/es/es_provinces.py:20
msgid "Cuenca"
-msgstr ""
+msgstr "Cuenca"
#: contrib/localflavor/es/es_provinces.py:21
msgid "Girona"
-msgstr ""
+msgstr "Girona"
#: contrib/localflavor/es/es_provinces.py:22
-#, fuzzy
msgid "Granada"
-msgstr "i"
+msgstr "Granada"
#: contrib/localflavor/es/es_provinces.py:23
msgid "Guadalajara"
-msgstr ""
+msgstr "Guadalajara"
#: contrib/localflavor/es/es_provinces.py:24
msgid "Guipuzkoa"
-msgstr ""
+msgstr "Guipuzkoa"
#: contrib/localflavor/es/es_provinces.py:25
msgid "Huelva"
-msgstr ""
+msgstr "Huelva"
#: contrib/localflavor/es/es_provinces.py:26
-#, fuzzy
msgid "Huesca"
-msgstr "Utorak"
+msgstr "Huesca"
#: contrib/localflavor/es/es_provinces.py:27
-#, fuzzy
msgid "Jaen"
-msgstr "Sij."
+msgstr "Jaen"
#: contrib/localflavor/es/es_provinces.py:28
msgid "Leon"
-msgstr ""
+msgstr "Leon"
#: contrib/localflavor/es/es_provinces.py:29
msgid "Lleida"
-msgstr ""
+msgstr "Lleida"
#: contrib/localflavor/es/es_provinces.py:30
#: contrib/localflavor/es/es_regions.py:17
msgid "La Rioja"
-msgstr ""
+msgstr "La Rioja"
#: contrib/localflavor/es/es_provinces.py:31
msgid "Lugo"
-msgstr ""
+msgstr "Lugo"
#: contrib/localflavor/es/es_provinces.py:32
#: contrib/localflavor/es/es_regions.py:18
msgid "Madrid"
-msgstr ""
+msgstr "Madrid"
#: contrib/localflavor/es/es_provinces.py:33
msgid "Malaga"
-msgstr ""
+msgstr "Malaga"
#: contrib/localflavor/es/es_provinces.py:34
msgid "Murcia"
-msgstr ""
+msgstr "Murcia"
#: contrib/localflavor/es/es_provinces.py:35
msgid "Navarre"
-msgstr ""
+msgstr "Navarre"
#: contrib/localflavor/es/es_provinces.py:36
msgid "Ourense"
-msgstr ""
+msgstr "Ourense"
#: contrib/localflavor/es/es_provinces.py:37
msgid "Asturias"
-msgstr ""
+msgstr "Asturias"
#: contrib/localflavor/es/es_provinces.py:38
msgid "Palencia"
-msgstr ""
+msgstr "Palencia"
#: contrib/localflavor/es/es_provinces.py:39
msgid "Las Palmas"
-msgstr ""
+msgstr "Las Palmas"
#: contrib/localflavor/es/es_provinces.py:40
msgid "Pontevedra"
-msgstr ""
+msgstr "Pontevedra"
#: contrib/localflavor/es/es_provinces.py:41
msgid "Salamanca"
-msgstr ""
+msgstr "Salamanca"
#: contrib/localflavor/es/es_provinces.py:42
msgid "Santa Cruz de Tenerife"
-msgstr ""
+msgstr "Santa Cruz de Tenerife"
#: contrib/localflavor/es/es_provinces.py:43
#: contrib/localflavor/es/es_regions.py:11
msgid "Cantabria"
-msgstr ""
+msgstr "Cantabria"
#: contrib/localflavor/es/es_provinces.py:44
msgid "Segovia"
-msgstr ""
+msgstr "Segovia"
#: contrib/localflavor/es/es_provinces.py:45
msgid "Seville"
-msgstr ""
+msgstr "Seville"
#: contrib/localflavor/es/es_provinces.py:46
msgid "Soria"
-msgstr ""
+msgstr "Soria"
#: contrib/localflavor/es/es_provinces.py:47
msgid "Tarragona"
-msgstr ""
+msgstr "Tarragona"
#: contrib/localflavor/es/es_provinces.py:48
-#, fuzzy
msgid "Teruel"
-msgstr "Uto"
+msgstr "Teruel"
#: contrib/localflavor/es/es_provinces.py:49
msgid "Toledo"
-msgstr ""
+msgstr "Toledo"
#: contrib/localflavor/es/es_provinces.py:50
msgid "Valencia"
-msgstr ""
+msgstr "Valencia"
#: contrib/localflavor/es/es_provinces.py:51
msgid "Valladolid"
-msgstr ""
+msgstr "Valladolid"
#: contrib/localflavor/es/es_provinces.py:52
msgid "Bizkaia"
-msgstr ""
+msgstr "Bizkaia"
#: contrib/localflavor/es/es_provinces.py:53
msgid "Zamora"
-msgstr ""
+msgstr "Zamora"
#: contrib/localflavor/es/es_provinces.py:54
msgid "Zaragoza"
-msgstr ""
+msgstr "Zaragoza"
#: contrib/localflavor/es/es_provinces.py:55
msgid "Ceuta"
-msgstr ""
+msgstr "Ceuta"
#: contrib/localflavor/es/es_provinces.py:56
msgid "Melilla"
-msgstr ""
+msgstr "Melilla"
#: contrib/localflavor/es/es_regions.py:5
msgid "Andalusia"
-msgstr ""
+msgstr "Andalusia"
#: contrib/localflavor/es/es_regions.py:6
msgid "Aragon"
-msgstr ""
+msgstr "Aragon"
#: contrib/localflavor/es/es_regions.py:7
msgid "Principality of Asturias"
-msgstr ""
+msgstr "Principality of Asturias"
#: contrib/localflavor/es/es_regions.py:8
msgid "Balearic Islands"
-msgstr ""
+msgstr "Balearic Islands"
#: contrib/localflavor/es/es_regions.py:9
msgid "Basque Country"
-msgstr ""
+msgstr "Basque Country"
#: contrib/localflavor/es/es_regions.py:10
msgid "Canary Islands"
-msgstr ""
+msgstr "Canary Islands"
#: contrib/localflavor/es/es_regions.py:12
msgid "Castile-La Mancha"
-msgstr ""
+msgstr "Castile-La Mancha"
#: contrib/localflavor/es/es_regions.py:13
msgid "Castile and Leon"
-msgstr ""
+msgstr "Castile and Leon"
#: contrib/localflavor/es/es_regions.py:14
msgid "Catalonia"
-msgstr ""
+msgstr "Catalonia"
#: contrib/localflavor/es/es_regions.py:15
msgid "Extremadura"
-msgstr ""
+msgstr "Extremadura"
#: contrib/localflavor/es/es_regions.py:16
msgid "Galicia"
-msgstr ""
+msgstr "Galicia"
#: contrib/localflavor/es/es_regions.py:19
msgid "Region of Murcia"
-msgstr ""
+msgstr "Region of Murcia"
#: contrib/localflavor/es/es_regions.py:20
msgid "Foral Community of Navarre"
-msgstr ""
+msgstr "Foral Community of Navarre"
#: contrib/localflavor/es/es_regions.py:21
msgid "Valencian Community"
-msgstr ""
+msgstr "Valencian Community"
#: contrib/localflavor/es/forms.py:19
-#, fuzzy
msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
-msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX."
+msgstr "Unesi ispravan poštanski broj u rasponu i formatu od 01XXX - 52XXX."
#: contrib/localflavor/es/forms.py:39
-#, fuzzy
msgid ""
"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
"9XXXXXXXX."
-msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX."
+msgstr ""
+"Unesite ispravan broj telefona u jednom od formata 6XXXXXXXX, 8XXXXXXXX ili "
+"9XXXXXXXX."
#: contrib/localflavor/es/forms.py:66
-#, fuzzy
msgid "Please enter a valid NIF, NIE, or CIF."
-msgstr "Unesite ispravnu IP adresu."
+msgstr "Unesite ispravan NIF, NIE ili CIF."
#: contrib/localflavor/es/forms.py:67
-#, fuzzy
msgid "Please enter a valid NIF or NIE."
-msgstr "Molim unesite validan %s."
+msgstr "Molim unesite ispravan NIF ili NIE."
#: contrib/localflavor/es/forms.py:68
msgid "Invalid checksum for NIF."
-msgstr ""
+msgstr "Neispravan checksum za NIF"
#: contrib/localflavor/es/forms.py:69
msgid "Invalid checksum for NIE."
-msgstr ""
+msgstr "Neispravan checksum za NIF"
#: contrib/localflavor/es/forms.py:70
msgid "Invalid checksum for CIF."
-msgstr ""
+msgstr "Neispravan checksum za CIF."
#: contrib/localflavor/es/forms.py:142
msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
-msgstr ""
+msgstr "Molim unesite ispravan broj bankovnog računa formata XXXX-XXXX-XX-XXXXXXXXXX."
#: contrib/localflavor/es/forms.py:143
msgid "Invalid checksum for bank account number."
-msgstr ""
+msgstr "Neispravan checksum za broj bankovnog računa."
#: contrib/localflavor/fi/forms.py:28
msgid "Enter a valid Finnish social security number."
-msgstr "Unesi ispravan finski broj socijalnog osiguranja."
+msgstr "Unesi ispravan broj finskog socijalnog osiguranja."
#: contrib/localflavor/in_/forms.py:14
-#, fuzzy
msgid "Enter a zip code in the format XXXXXXX."
-msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX."
+msgstr "Unesi ispravan zip kod formata XXXXXXX."
#: contrib/localflavor/is_/forms.py:17
msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
-msgstr ""
+msgstr "Unesite ispravan islandski identifikacijski broj formata XXXXXX-XXXX."
#: contrib/localflavor/is_/forms.py:18
msgid "The Icelandic identification number is not valid."
-msgstr ""
+msgstr "Islandski identifikacijski broj nije ispravan."
#: contrib/localflavor/it/forms.py:14
msgid "Enter a valid zip code."
-msgstr ""
+msgstr "Unesite ispravan zip kod."
#: contrib/localflavor/it/forms.py:43
msgid "Enter a valid Social Security number."
-msgstr ""
+msgstr "Unesite ispravan broj socijalnog osiguranja."
#: contrib/localflavor/it/forms.py:68
msgid "Enter a valid VAT number."
-msgstr ""
+msgstr "Unesite ispravan VAT broj."
#: contrib/localflavor/jp/forms.py:19
msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
-msgstr ""
+msgstr "Unesite poštanski broj formata XXXXXXX or XXX-XXXX."
#: contrib/localflavor/jp/jp_prefectures.py:4
msgid "Hokkaido"
-msgstr ""
+msgstr "Hokkaido"
#: contrib/localflavor/jp/jp_prefectures.py:5
msgid "Aomori"
-msgstr ""
+msgstr "Aomori"
#: contrib/localflavor/jp/jp_prefectures.py:6
msgid "Iwate"
-msgstr ""
+msgstr "Iwate"
#: contrib/localflavor/jp/jp_prefectures.py:7
msgid "Miyagi"
-msgstr ""
+msgstr "Miyagi"
#: contrib/localflavor/jp/jp_prefectures.py:8
msgid "Akita"
-msgstr ""
+msgstr "Akita"
#: contrib/localflavor/jp/jp_prefectures.py:9
msgid "Yamagata"
-msgstr ""
+msgstr "Yamagata"
#: contrib/localflavor/jp/jp_prefectures.py:10
msgid "Fukushima"
-msgstr ""
+msgstr "Fukushima"
#: contrib/localflavor/jp/jp_prefectures.py:11
msgid "Ibaraki"
-msgstr ""
+msgstr "Ibaraki"
#: contrib/localflavor/jp/jp_prefectures.py:12
msgid "Tochigi"
-msgstr ""
+msgstr "Tochigi"
#: contrib/localflavor/jp/jp_prefectures.py:13
msgid "Gunma"
-msgstr ""
+msgstr "Gunma"
#: contrib/localflavor/jp/jp_prefectures.py:14
msgid "Saitama"
-msgstr ""
+msgstr "Saitama"
#: contrib/localflavor/jp/jp_prefectures.py:15
msgid "Chiba"
-msgstr ""
+msgstr "Chiba"
#: contrib/localflavor/jp/jp_prefectures.py:16
msgid "Tokyo"
-msgstr ""
+msgstr "Tokyo"
#: contrib/localflavor/jp/jp_prefectures.py:17
msgid "Kanagawa"
-msgstr ""
+msgstr "Kanagawa"
#: contrib/localflavor/jp/jp_prefectures.py:18
msgid "Yamanashi"
-msgstr ""
+msgstr "Yamanashi"
#: contrib/localflavor/jp/jp_prefectures.py:19
msgid "Nagano"
-msgstr ""
+msgstr "Nagano"
#: contrib/localflavor/jp/jp_prefectures.py:20
msgid "Niigata"
-msgstr ""
+msgstr "Niigata"
#: contrib/localflavor/jp/jp_prefectures.py:21
msgid "Toyama"
-msgstr ""
+msgstr "Toyama"
#: contrib/localflavor/jp/jp_prefectures.py:22
msgid "Ishikawa"
-msgstr ""
+msgstr "Ishikawa"
#: contrib/localflavor/jp/jp_prefectures.py:23
msgid "Fukui"
-msgstr ""
+msgstr "Fukui"
#: contrib/localflavor/jp/jp_prefectures.py:24
msgid "Gifu"
-msgstr ""
+msgstr "Gifu"
#: contrib/localflavor/jp/jp_prefectures.py:25
msgid "Shizuoka"
-msgstr ""
+msgstr "Shizuoka"
#: contrib/localflavor/jp/jp_prefectures.py:26
msgid "Aichi"
-msgstr ""
+msgstr "Aichi"
#: contrib/localflavor/jp/jp_prefectures.py:27
msgid "Mie"
-msgstr ""
+msgstr "Mie"
#: contrib/localflavor/jp/jp_prefectures.py:28
msgid "Shiga"
-msgstr ""
+msgstr "Shiga"
#: contrib/localflavor/jp/jp_prefectures.py:29
msgid "Kyoto"
-msgstr ""
+msgstr "Kyoto"
#: contrib/localflavor/jp/jp_prefectures.py:30
msgid "Osaka"
-msgstr ""
+msgstr "Osaka"
#: contrib/localflavor/jp/jp_prefectures.py:31
msgid "Hyogo"
-msgstr ""
+msgstr "Hyogo"
#: contrib/localflavor/jp/jp_prefectures.py:32
msgid "Nara"
-msgstr ""
+msgstr "Nara"
#: contrib/localflavor/jp/jp_prefectures.py:33
msgid "Wakayama"
-msgstr ""
+msgstr "Wakayama"
#: contrib/localflavor/jp/jp_prefectures.py:34
msgid "Tottori"
-msgstr ""
+msgstr "Tottori"
#: contrib/localflavor/jp/jp_prefectures.py:35
msgid "Shimane"
-msgstr ""
+msgstr "Shimane"
#: contrib/localflavor/jp/jp_prefectures.py:36
msgid "Okayama"
-msgstr ""
+msgstr "Okayama"
#: contrib/localflavor/jp/jp_prefectures.py:37
msgid "Hiroshima"
-msgstr ""
+msgstr "Hiroshima"
#: contrib/localflavor/jp/jp_prefectures.py:38
msgid "Yamaguchi"
-msgstr ""
+msgstr "Yamaguchi"
#: contrib/localflavor/jp/jp_prefectures.py:39
msgid "Tokushima"
-msgstr ""
+msgstr "Tokushima"
#: contrib/localflavor/jp/jp_prefectures.py:40
msgid "Kagawa"
-msgstr ""
+msgstr "Kagawa"
#: contrib/localflavor/jp/jp_prefectures.py:41
msgid "Ehime"
-msgstr ""
+msgstr "Ehime"
#: contrib/localflavor/jp/jp_prefectures.py:42
msgid "Kochi"
-msgstr ""
+msgstr "Kochi"
#: contrib/localflavor/jp/jp_prefectures.py:43
msgid "Fukuoka"
-msgstr ""
+msgstr "Fukuoka"
#: contrib/localflavor/jp/jp_prefectures.py:44
msgid "Saga"
-msgstr ""
+msgstr "Saga"
#: contrib/localflavor/jp/jp_prefectures.py:45
msgid "Nagasaki"
-msgstr ""
+msgstr "Nagasaki"
#: contrib/localflavor/jp/jp_prefectures.py:46
msgid "Kumamoto"
-msgstr ""
+msgstr "Kumamoto"
#: contrib/localflavor/jp/jp_prefectures.py:47
msgid "Oita"
-msgstr ""
+msgstr "Oita"
#: contrib/localflavor/jp/jp_prefectures.py:48
msgid "Miyazaki"
-msgstr ""
+msgstr "Miyazaki"
#: contrib/localflavor/jp/jp_prefectures.py:49
msgid "Kagoshima"
-msgstr ""
+msgstr "Kagoshima"
#: contrib/localflavor/jp/jp_prefectures.py:50
msgid "Okinawa"
-msgstr ""
+msgstr "Okinawa"
#: contrib/localflavor/mx/mx_states.py:12
msgid "Aguascalientes"
-msgstr ""
+msgstr "Aguascalientes"
#: contrib/localflavor/mx/mx_states.py:13
msgid "Baja California"
-msgstr ""
+msgstr "Baja California"
#: contrib/localflavor/mx/mx_states.py:14
msgid "Baja California Sur"
-msgstr ""
+msgstr "Baja California Sur"
#: contrib/localflavor/mx/mx_states.py:15
msgid "Campeche"
-msgstr ""
+msgstr "Campeche"
#: contrib/localflavor/mx/mx_states.py:16
msgid "Chihuahua"
-msgstr ""
+msgstr "Chihuahua"
#: contrib/localflavor/mx/mx_states.py:17
msgid "Chiapas"
-msgstr ""
+msgstr "Chiapas"
#: contrib/localflavor/mx/mx_states.py:18
msgid "Coahuila"
-msgstr ""
+msgstr "Coahuila"
#: contrib/localflavor/mx/mx_states.py:19
msgid "Colima"
-msgstr ""
+msgstr "Colima"
#: contrib/localflavor/mx/mx_states.py:20
msgid "Distrito Federal"
-msgstr ""
+msgstr "Distrito Federal"
#: contrib/localflavor/mx/mx_states.py:21
msgid "Durango"
-msgstr ""
+msgstr "Durango"
#: contrib/localflavor/mx/mx_states.py:22
msgid "Guerrero"
-msgstr ""
+msgstr "Guerrero"
#: contrib/localflavor/mx/mx_states.py:23
msgid "Guanajuato"
-msgstr ""
+msgstr "Guanajuato"
#: contrib/localflavor/mx/mx_states.py:24
msgid "Hidalgo"
-msgstr ""
+msgstr "Hidalgo"
#: contrib/localflavor/mx/mx_states.py:25
msgid "Jalisco"
-msgstr ""
+msgstr "Jalisco"
#: contrib/localflavor/mx/mx_states.py:26
msgid "Estado de México"
-msgstr ""
+msgstr "Estado de México"
#: contrib/localflavor/mx/mx_states.py:27
msgid "Michoacán"
-msgstr ""
+msgstr "Michoacán"
#: contrib/localflavor/mx/mx_states.py:28
msgid "Morelos"
-msgstr ""
+msgstr "Morelos"
#: contrib/localflavor/mx/mx_states.py:29
msgid "Nayarit"
-msgstr ""
+msgstr "Nayarit"
#: contrib/localflavor/mx/mx_states.py:30
msgid "Nuevo León"
-msgstr ""
+msgstr "Nuevo León"
#: contrib/localflavor/mx/mx_states.py:31
msgid "Oaxaca"
-msgstr ""
+msgstr "Oaxaca"
#: contrib/localflavor/mx/mx_states.py:32
msgid "Puebla"
-msgstr ""
+msgstr "Puebla"
#: contrib/localflavor/mx/mx_states.py:33
msgid "Querétaro"
-msgstr ""
+msgstr "Querétaro"
#: contrib/localflavor/mx/mx_states.py:34
msgid "Quintana Roo"
-msgstr ""
+msgstr "Quintana Roo"
#: contrib/localflavor/mx/mx_states.py:35
msgid "Sinaloa"
-msgstr ""
+msgstr "Sinaloa"
#: contrib/localflavor/mx/mx_states.py:36
msgid "San Luis Potosí"
-msgstr ""
+msgstr "San Luis Potosí"
#: contrib/localflavor/mx/mx_states.py:37
msgid "Sonora"
-msgstr ""
+msgstr "Sonora"
#: contrib/localflavor/mx/mx_states.py:38
msgid "Tabasco"
-msgstr ""
+msgstr "Tabasco"
#: contrib/localflavor/mx/mx_states.py:39
msgid "Tamaulipas"
-msgstr ""
+msgstr "Tamaulipas"
#: contrib/localflavor/mx/mx_states.py:40
msgid "Tlaxcala"
-msgstr ""
+msgstr "Tlaxcala"
#: contrib/localflavor/mx/mx_states.py:41
msgid "Veracruz"
-msgstr ""
+msgstr "Veracruz"
#: contrib/localflavor/mx/mx_states.py:42
msgid "Yucatán"
-msgstr ""
+msgstr "Yucatán"
#: contrib/localflavor/mx/mx_states.py:43
msgid "Zacatecas"
-msgstr ""
+msgstr "Zacatecas"
#: contrib/localflavor/nl/forms.py:21
-#, fuzzy
msgid "Enter a valid postal code"
-msgstr "Unesite ispravan datum."
+msgstr "Unesite ispravan poštanski broj"
#: contrib/localflavor/nl/forms.py:52
-#, fuzzy
msgid "Enter a valid phone number"
-msgstr "Unesite cijeli broj."
+msgstr "Unesite ispravan telefonski broj"
#: contrib/localflavor/nl/forms.py:78
-#, fuzzy
msgid "Enter a valid SoFi number"
-msgstr "Unesite ime datoteke koja postoji."
+msgstr "Unesite ispravan SoFi broj"
#: contrib/localflavor/nl/nl_provinces.py:4
msgid "Drente"
-msgstr ""
+msgstr "Drente"
#: contrib/localflavor/nl/nl_provinces.py:5
msgid "Flevoland"
-msgstr ""
+msgstr "Flevoland"
#: contrib/localflavor/nl/nl_provinces.py:6
msgid "Friesland"
-msgstr ""
+msgstr "Friesland"
#: contrib/localflavor/nl/nl_provinces.py:7
msgid "Gelderland"
-msgstr ""
+msgstr "Gelderland"
#: contrib/localflavor/nl/nl_provinces.py:8
msgid "Groningen"
-msgstr ""
+msgstr "Groningen"
#: contrib/localflavor/nl/nl_provinces.py:9
msgid "Limburg"
-msgstr ""
+msgstr "Limburg"
#: contrib/localflavor/nl/nl_provinces.py:10
msgid "Noord-Brabant"
-msgstr ""
+msgstr "Noord-Brabant"
#: contrib/localflavor/nl/nl_provinces.py:11
msgid "Noord-Holland"
-msgstr ""
+msgstr "Noord-Holland"
#: contrib/localflavor/nl/nl_provinces.py:12
msgid "Overijssel"
-msgstr ""
+msgstr "Overijssel"
#: contrib/localflavor/nl/nl_provinces.py:13
msgid "Utrecht"
-msgstr ""
+msgstr "Utrecht"
#: contrib/localflavor/nl/nl_provinces.py:14
-#, fuzzy
msgid "Zeeland"
-msgstr "i"
+msgstr "Zeeland"
#: contrib/localflavor/nl/nl_provinces.py:15
msgid "Zuid-Holland"
-msgstr ""
+msgstr "Zuid-Holland"
#: contrib/localflavor/no/forms.py:33
msgid "Enter a valid Norwegian social security number."
-msgstr ""
+msgstr "Unesite ispravan broj norveškog socijalnog osiguranja."
#: contrib/localflavor/pe/forms.py:24
-#, fuzzy
msgid "This field requires 8 digits."
-msgstr "Unos za ovo polje je obavezno."
+msgstr "Ovo polje zahtjeva 8 numeričkih znakova."
#: contrib/localflavor/pe/forms.py:52
-#, fuzzy
msgid "This field requires 11 digits."
-msgstr "Unos za ovo polje je obavezno."
+msgstr "Ovo polje zahtjeva 11 numeričkih znakova."
#: contrib/localflavor/pl/forms.py:39
msgid "National Identification Number consists of 11 digits."
-msgstr ""
+msgstr "Nacionalni identifikacijski broj sadrži 11 numeričkih znakova."
#: contrib/localflavor/pl/forms.py:40
msgid "Wrong checksum for the National Identification Number."
-msgstr ""
+msgstr "Neispravan checksum za Nacionalni identifikacijski broj."
#: contrib/localflavor/pl/forms.py:72
-#, fuzzy
msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
-msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX."
+msgstr "Unesite ispravan porezni broj (NIP) formata XXX-XXX-XX-XX or XX-XX-XXX-XXX."
#: contrib/localflavor/pl/forms.py:73
msgid "Wrong checksum for the Tax Number (NIP)."
-msgstr ""
+msgstr "Neispravan checksum za porezni broj (NIP)."
#: contrib/localflavor/pl/forms.py:112
msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
-msgstr ""
+msgstr "National Business Register Number (REGON) sastoji se od 7 ili 9 numeričkih znakova."
#: contrib/localflavor/pl/forms.py:113
msgid "Wrong checksum for the National Business Register Number (REGON)."
-msgstr ""
+msgstr "Neispravan checked za National Business Register Number (REGON)."
#: contrib/localflavor/pl/forms.py:156
-#, fuzzy
msgid "Enter a postal code in the format XX-XXX."
-msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX."
+msgstr "Unesi poštanski broj formata XX-XXX."
#: contrib/localflavor/pl/pl_voivodeships.py:8
msgid "Lower Silesia"
-msgstr ""
+msgstr "Lower Silesia"
#: contrib/localflavor/pl/pl_voivodeships.py:9
msgid "Kuyavia-Pomerania"
-msgstr ""
+msgstr "Kuyavia-Pomerania"
#: contrib/localflavor/pl/pl_voivodeships.py:10
msgid "Lublin"
-msgstr ""
+msgstr "Lublin"
#: contrib/localflavor/pl/pl_voivodeships.py:11
msgid "Lubusz"
-msgstr ""
+msgstr "Lubusz"
#: contrib/localflavor/pl/pl_voivodeships.py:12
msgid "Lodz"
-msgstr ""
+msgstr "Lodz"
#: contrib/localflavor/pl/pl_voivodeships.py:13
msgid "Lesser Poland"
-msgstr ""
+msgstr "Lesser Poland"
#: contrib/localflavor/pl/pl_voivodeships.py:14
msgid "Masovia"
-msgstr ""
+msgstr "Masovia"
#: contrib/localflavor/pl/pl_voivodeships.py:15
msgid "Opole"
-msgstr ""
+msgstr "Opole"
#: contrib/localflavor/pl/pl_voivodeships.py:16
msgid "Subcarpatia"
-msgstr ""
+msgstr "Subcarpatia"
#: contrib/localflavor/pl/pl_voivodeships.py:17
msgid "Podlasie"
-msgstr ""
+msgstr "Podlasie"
#: contrib/localflavor/pl/pl_voivodeships.py:18
msgid "Pomerania"
-msgstr ""
+msgstr "Pomerania"
#: contrib/localflavor/pl/pl_voivodeships.py:19
-#, fuzzy
msgid "Silesia"
-msgstr "Zilina"
+msgstr "Silesia"
#: contrib/localflavor/pl/pl_voivodeships.py:20
msgid "Swietokrzyskie"
-msgstr ""
+msgstr "Swietokrzyskie"
#: contrib/localflavor/pl/pl_voivodeships.py:21
msgid "Warmia-Masuria"
-msgstr ""
+msgstr "Warmia-Masuria"
#: contrib/localflavor/pl/pl_voivodeships.py:22
msgid "Greater Poland"
-msgstr ""
+msgstr "Greater Poland"
#: contrib/localflavor/pl/pl_voivodeships.py:23
msgid "West Pomerania"
-msgstr ""
+msgstr "West Pomerania"
#: contrib/localflavor/sk/forms.py:30
msgid "Enter a postal code in the format XXXXX or XXX XX."
@@ -2756,311 +2764,311 @@ msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX."
#: contrib/localflavor/sk/sk_districts.py:8
msgid "Banska Bystrica"
-msgstr ""
+msgstr "Banska Bystrica"
#: contrib/localflavor/sk/sk_districts.py:9
msgid "Banska Stiavnica"
-msgstr ""
+msgstr "Banska Stiavnica"
#: contrib/localflavor/sk/sk_districts.py:10
msgid "Bardejov"
-msgstr ""
+msgstr "Bardejov"
#: contrib/localflavor/sk/sk_districts.py:11
msgid "Banovce nad Bebravou"
-msgstr ""
+msgstr "Banovce nad Bebravou"
#: contrib/localflavor/sk/sk_districts.py:12
msgid "Brezno"
-msgstr ""
+msgstr "Brezno"
#: contrib/localflavor/sk/sk_districts.py:13
msgid "Bratislava I"
-msgstr ""
+msgstr "Bratislava I"
#: contrib/localflavor/sk/sk_districts.py:14
msgid "Bratislava II"
-msgstr ""
+msgstr "Bratislava II"
#: contrib/localflavor/sk/sk_districts.py:15
msgid "Bratislava III"
-msgstr ""
+msgstr "Bratislava III"
#: contrib/localflavor/sk/sk_districts.py:16
msgid "Bratislava IV"
-msgstr ""
+msgstr "Bratislava IV"
#: contrib/localflavor/sk/sk_districts.py:17
msgid "Bratislava V"
-msgstr ""
+msgstr "Bratislava V"
#: contrib/localflavor/sk/sk_districts.py:18
msgid "Bytca"
-msgstr ""
+msgstr "Bytca"
#: contrib/localflavor/sk/sk_districts.py:19
msgid "Cadca"
-msgstr ""
+msgstr "Cadca"
#: contrib/localflavor/sk/sk_districts.py:20
msgid "Detva"
-msgstr ""
+msgstr "Detva"
#: contrib/localflavor/sk/sk_districts.py:21
msgid "Dolny Kubin"
-msgstr ""
+msgstr "Dolny Kubin"
#: contrib/localflavor/sk/sk_districts.py:22
msgid "Dunajska Streda"
-msgstr ""
+msgstr "Dunajska Streda"
#: contrib/localflavor/sk/sk_districts.py:23
msgid "Galanta"
-msgstr ""
+msgstr "Galanta"
#: contrib/localflavor/sk/sk_districts.py:24
msgid "Gelnica"
-msgstr ""
+msgstr "Gelnica"
#: contrib/localflavor/sk/sk_districts.py:25
msgid "Hlohovec"
-msgstr ""
+msgstr "Hlohovec"
#: contrib/localflavor/sk/sk_districts.py:26
msgid "Humenne"
-msgstr ""
+msgstr "Humenne"
#: contrib/localflavor/sk/sk_districts.py:27
msgid "Ilava"
-msgstr ""
+msgstr "Ilava"
#: contrib/localflavor/sk/sk_districts.py:28
msgid "Kezmarok"
-msgstr ""
+msgstr "Kezmarok"
#: contrib/localflavor/sk/sk_districts.py:29
msgid "Komarno"
-msgstr ""
+msgstr "Komarno"
#: contrib/localflavor/sk/sk_districts.py:30
msgid "Kosice I"
-msgstr ""
+msgstr "Kosice I"
#: contrib/localflavor/sk/sk_districts.py:31
msgid "Kosice II"
-msgstr ""
+msgstr "Kosice II"
#: contrib/localflavor/sk/sk_districts.py:32
msgid "Kosice III"
-msgstr ""
+msgstr "Kosice III"
#: contrib/localflavor/sk/sk_districts.py:33
msgid "Kosice IV"
-msgstr ""
+msgstr "Kosice IV"
#: contrib/localflavor/sk/sk_districts.py:34
msgid "Kosice - okolie"
-msgstr ""
+msgstr "Kosice - okolie"
#: contrib/localflavor/sk/sk_districts.py:35
msgid "Krupina"
-msgstr ""
+msgstr "Krupina"
#: contrib/localflavor/sk/sk_districts.py:36
msgid "Kysucke Nove Mesto"
-msgstr ""
+msgstr "Kysucke Nove Mesto"
#: contrib/localflavor/sk/sk_districts.py:37
msgid "Levice"
-msgstr ""
+msgstr "Levice"
#: contrib/localflavor/sk/sk_districts.py:38
msgid "Levoca"
-msgstr ""
+msgstr "Levoca"
#: contrib/localflavor/sk/sk_districts.py:39
msgid "Liptovsky Mikulas"
-msgstr ""
+msgstr "Liptovsky Mikulas"
#: contrib/localflavor/sk/sk_districts.py:40
msgid "Lucenec"
-msgstr ""
+msgstr "Lucenec"
#: contrib/localflavor/sk/sk_districts.py:41
msgid "Malacky"
-msgstr ""
+msgstr "Malacky"
#: contrib/localflavor/sk/sk_districts.py:42
msgid "Martin"
-msgstr ""
+msgstr "Martin"
#: contrib/localflavor/sk/sk_districts.py:43
msgid "Medzilaborce"
-msgstr ""
+msgstr "Medzilaborce"
#: contrib/localflavor/sk/sk_districts.py:44
msgid "Michalovce"
-msgstr ""
+msgstr "Michalovce"
#: contrib/localflavor/sk/sk_districts.py:45
msgid "Myjava"
-msgstr ""
+msgstr "Myjava"
#: contrib/localflavor/sk/sk_districts.py:46
msgid "Namestovo"
-msgstr ""
+msgstr "Namestovo"
#: contrib/localflavor/sk/sk_districts.py:47
msgid "Nitra"
-msgstr ""
+msgstr "Nitra"
#: contrib/localflavor/sk/sk_districts.py:48
msgid "Nove Mesto nad Vahom"
-msgstr ""
+msgstr "Nove Mesto nad Vahom"
#: contrib/localflavor/sk/sk_districts.py:49
msgid "Nove Zamky"
-msgstr ""
+msgstr "Nove Zamky"
#: contrib/localflavor/sk/sk_districts.py:50
msgid "Partizanske"
-msgstr ""
+msgstr "Partizanske"
#: contrib/localflavor/sk/sk_districts.py:51
msgid "Pezinok"
-msgstr ""
+msgstr "Pezinok"
#: contrib/localflavor/sk/sk_districts.py:52
msgid "Piestany"
-msgstr ""
+msgstr "Piestany"
#: contrib/localflavor/sk/sk_districts.py:53
msgid "Poltar"
-msgstr ""
+msgstr "Poltar"
#: contrib/localflavor/sk/sk_districts.py:54
msgid "Poprad"
-msgstr ""
+msgstr "Poprad"
#: contrib/localflavor/sk/sk_districts.py:55
msgid "Povazska Bystrica"
-msgstr ""
+msgstr "Povazska Bystrica"
#: contrib/localflavor/sk/sk_districts.py:56
msgid "Presov"
-msgstr ""
+msgstr "Presov"
#: contrib/localflavor/sk/sk_districts.py:57
msgid "Prievidza"
-msgstr ""
+msgstr "Prievidza"
#: contrib/localflavor/sk/sk_districts.py:58
msgid "Puchov"
-msgstr ""
+msgstr "Puchov"
#: contrib/localflavor/sk/sk_districts.py:59
msgid "Revuca"
-msgstr ""
+msgstr "Revuca"
#: contrib/localflavor/sk/sk_districts.py:60
msgid "Rimavska Sobota"
-msgstr ""
+msgstr "Rimavska Sobota"
#: contrib/localflavor/sk/sk_districts.py:61
msgid "Roznava"
-msgstr ""
+msgstr "Roznava"
#: contrib/localflavor/sk/sk_districts.py:62
msgid "Ruzomberok"
-msgstr ""
+msgstr "Ruzomberok"
#: contrib/localflavor/sk/sk_districts.py:63
msgid "Sabinov"
-msgstr ""
+msgstr "Sabinov"
#: contrib/localflavor/sk/sk_districts.py:64
msgid "Senec"
-msgstr ""
+msgstr "Senec"
#: contrib/localflavor/sk/sk_districts.py:65
msgid "Senica"
-msgstr ""
+msgstr "Senica"
#: contrib/localflavor/sk/sk_districts.py:66
msgid "Skalica"
-msgstr ""
+msgstr "Skalica"
#: contrib/localflavor/sk/sk_districts.py:67
msgid "Snina"
-msgstr ""
+msgstr "Snina"
#: contrib/localflavor/sk/sk_districts.py:68
msgid "Sobrance"
-msgstr ""
+msgstr "Sobrance"
#: contrib/localflavor/sk/sk_districts.py:69
msgid "Spisska Nova Ves"
-msgstr ""
+msgstr "Spisska Nova Ves"
#: contrib/localflavor/sk/sk_districts.py:70
msgid "Stara Lubovna"
-msgstr ""
+msgstr "Stara Lubovna"
#: contrib/localflavor/sk/sk_districts.py:71
msgid "Stropkov"
-msgstr ""
+msgstr "Stropkov"
#: contrib/localflavor/sk/sk_districts.py:72
msgid "Svidnik"
-msgstr ""
+msgstr "Svidnik"
#: contrib/localflavor/sk/sk_districts.py:73
msgid "Sala"
-msgstr ""
+msgstr "Sala"
#: contrib/localflavor/sk/sk_districts.py:74
msgid "Topolcany"
-msgstr ""
+msgstr "Topolcany"
#: contrib/localflavor/sk/sk_districts.py:75
msgid "Trebisov"
-msgstr ""
+msgstr "Trebisov"
#: contrib/localflavor/sk/sk_districts.py:76
msgid "Trencin"
-msgstr ""
+msgstr "Trencin"
#: contrib/localflavor/sk/sk_districts.py:77
msgid "Trnava"
-msgstr ""
+msgstr "Trnava"
#: contrib/localflavor/sk/sk_districts.py:78
msgid "Turcianske Teplice"
-msgstr ""
+msgstr "Turcianske Teplice"
#: contrib/localflavor/sk/sk_districts.py:79
msgid "Tvrdosin"
-msgstr ""
+msgstr "Tvrdosin"
#: contrib/localflavor/sk/sk_districts.py:80
msgid "Velky Krtis"
-msgstr ""
+msgstr "Velky Krtis"
#: contrib/localflavor/sk/sk_districts.py:81
msgid "Vranov nad Toplou"
-msgstr ""
+msgstr "Vranov nad Toplou"
#: contrib/localflavor/sk/sk_districts.py:82
msgid "Zlate Moravce"
-msgstr ""
+msgstr "Zlate Moravce"
#: contrib/localflavor/sk/sk_districts.py:83
msgid "Zvolen"
-msgstr ""
+msgstr "Zvolen"
#: contrib/localflavor/sk/sk_districts.py:84
msgid "Zarnovica"
-msgstr ""
+msgstr "Zarnovica"
#: contrib/localflavor/sk/sk_districts.py:85
msgid "Ziar nad Hronom"
@@ -3072,378 +3080,372 @@ msgstr "Zilina"
#: contrib/localflavor/sk/sk_regions.py:8
msgid "Banska Bystrica region"
-msgstr ""
+msgstr "Banska Bystrica regija"
#: contrib/localflavor/sk/sk_regions.py:9
msgid "Bratislava region"
-msgstr ""
+msgstr "Bratislava regija"
#: contrib/localflavor/sk/sk_regions.py:10
msgid "Kosice region"
-msgstr ""
+msgstr "Kosice regija"
#: contrib/localflavor/sk/sk_regions.py:11
msgid "Nitra region"
-msgstr ""
+msgstr "Nitra regija"
#: contrib/localflavor/sk/sk_regions.py:12
msgid "Presov region"
-msgstr ""
+msgstr "Presov regija"
#: contrib/localflavor/sk/sk_regions.py:13
msgid "Trencin region"
-msgstr ""
+msgstr "Trencin regija"
#: contrib/localflavor/sk/sk_regions.py:14
msgid "Trnava region"
-msgstr ""
+msgstr "Trnava regija"
#: contrib/localflavor/sk/sk_regions.py:15
msgid "Zilina region"
-msgstr ""
+msgstr "Zilina regija"
#: contrib/localflavor/uk/forms.py:21
-#, fuzzy
msgid "Enter a valid postcode."
-msgstr "Unesite ispravan datum."
+msgstr "Unesite ispravan poštanski broj."
#: contrib/localflavor/uk/uk_regions.py:11
msgid "Bedfordshire"
-msgstr ""
+msgstr "Bedfordshire"
#: contrib/localflavor/uk/uk_regions.py:12
msgid "Buckinghamshire"
-msgstr ""
+msgstr "Buckinghamshire"
#: contrib/localflavor/uk/uk_regions.py:14
msgid "Cheshire"
-msgstr ""
+msgstr "Cheshire"
#: contrib/localflavor/uk/uk_regions.py:15
msgid "Cornwall and Isles of Scilly"
-msgstr ""
+msgstr "Cornwall and Isles of Scilly"
#: contrib/localflavor/uk/uk_regions.py:16
msgid "Cumbria"
-msgstr ""
+msgstr "Cumbria"
#: contrib/localflavor/uk/uk_regions.py:17
msgid "Derbyshire"
-msgstr ""
+msgstr "Derbyshire"
#: contrib/localflavor/uk/uk_regions.py:18
msgid "Devon"
-msgstr ""
+msgstr "Devon"
#: contrib/localflavor/uk/uk_regions.py:19
msgid "Dorset"
-msgstr ""
+msgstr "Dorset"
#: contrib/localflavor/uk/uk_regions.py:20
msgid "Durham"
-msgstr ""
+msgstr "Durham"
#: contrib/localflavor/uk/uk_regions.py:21
msgid "East Sussex"
-msgstr ""
+msgstr "East Sussex"
#: contrib/localflavor/uk/uk_regions.py:22
msgid "Essex"
-msgstr ""
+msgstr "Essex"
#: contrib/localflavor/uk/uk_regions.py:23
msgid "Gloucestershire"
-msgstr ""
+msgstr "Gloucestershire"
#: contrib/localflavor/uk/uk_regions.py:24
msgid "Greater London"
-msgstr ""
+msgstr "Greater London"
#: contrib/localflavor/uk/uk_regions.py:25
msgid "Greater Manchester"
-msgstr ""
+msgstr "Greater Manchester"
#: contrib/localflavor/uk/uk_regions.py:26
msgid "Hampshire"
-msgstr ""
+msgstr "Hampshire"
#: contrib/localflavor/uk/uk_regions.py:27
msgid "Hertfordshire"
-msgstr ""
+msgstr "Hertfordshire"
#: contrib/localflavor/uk/uk_regions.py:28
msgid "Kent"
-msgstr ""
+msgstr "Kent"
#: contrib/localflavor/uk/uk_regions.py:29
msgid "Lancashire"
-msgstr ""
+msgstr "Lancashire"
#: contrib/localflavor/uk/uk_regions.py:30
msgid "Leicestershire"
-msgstr ""
+msgstr "Leicestershire"
#: contrib/localflavor/uk/uk_regions.py:31
msgid "Lincolnshire"
-msgstr ""
+msgstr "Lincolnshire"
#: contrib/localflavor/uk/uk_regions.py:32
msgid "Merseyside"
-msgstr ""
+msgstr "Merseyside"
#: contrib/localflavor/uk/uk_regions.py:33
msgid "Norfolk"
-msgstr ""
+msgstr "Norfolk"
#: contrib/localflavor/uk/uk_regions.py:34
msgid "North Yorkshire"
-msgstr ""
+msgstr "North Yorkshire"
#: contrib/localflavor/uk/uk_regions.py:35
msgid "Northamptonshire"
-msgstr ""
+msgstr "Northamptonshire"
#: contrib/localflavor/uk/uk_regions.py:36
msgid "Northumberland"
-msgstr ""
+msgstr "Northumberland"
#: contrib/localflavor/uk/uk_regions.py:37
msgid "Nottinghamshire"
-msgstr ""
+msgstr "Nottinghamshire"
#: contrib/localflavor/uk/uk_regions.py:38
msgid "Oxfordshire"
-msgstr ""
+msgstr "Oxfordshire"
#: contrib/localflavor/uk/uk_regions.py:39
msgid "Shropshire"
-msgstr ""
+msgstr "Shropshire"
#: contrib/localflavor/uk/uk_regions.py:40
msgid "Somerset"
-msgstr ""
+msgstr "Somerset"
#: contrib/localflavor/uk/uk_regions.py:41
msgid "South Yorkshire"
-msgstr ""
+msgstr "South Yorkshire"
#: contrib/localflavor/uk/uk_regions.py:42
msgid "Staffordshire"
-msgstr ""
+msgstr "Staffordshire"
#: contrib/localflavor/uk/uk_regions.py:43
msgid "Suffolk"
-msgstr ""
+msgstr "Suffolk"
#: contrib/localflavor/uk/uk_regions.py:44
msgid "Surrey"
-msgstr ""
+msgstr "Surrey"
#: contrib/localflavor/uk/uk_regions.py:45
msgid "Tyne and Wear"
-msgstr ""
+msgstr "Tyne and Wear"
#: contrib/localflavor/uk/uk_regions.py:46
msgid "Warwickshire"
-msgstr ""
+msgstr "Warwickshire"
#: contrib/localflavor/uk/uk_regions.py:47
msgid "West Midlands"
-msgstr ""
+msgstr "West Midlands"
#: contrib/localflavor/uk/uk_regions.py:48
msgid "West Sussex"
-msgstr ""
+msgstr "West Sussex"
#: contrib/localflavor/uk/uk_regions.py:49
msgid "West Yorkshire"
-msgstr ""
+msgstr "West Yorkshire"
#: contrib/localflavor/uk/uk_regions.py:50
msgid "Wiltshire"
-msgstr ""
+msgstr "Wiltshire"
#: contrib/localflavor/uk/uk_regions.py:51
msgid "Worcestershire"
-msgstr ""
+msgstr "Worcestershire"
#: contrib/localflavor/uk/uk_regions.py:55
msgid "County Antrim"
-msgstr ""
+msgstr "County Antrim"
#: contrib/localflavor/uk/uk_regions.py:56
msgid "County Armagh"
-msgstr ""
+msgstr "County Armagh"
#: contrib/localflavor/uk/uk_regions.py:57
#: contrib/localflavor/uk/uk_regions.py:58
msgid "County Down"
-msgstr ""
+msgstr "County Down"
#: contrib/localflavor/uk/uk_regions.py:59
msgid "County Londonderry"
-msgstr ""
+msgstr "County Londonderry"
#: contrib/localflavor/uk/uk_regions.py:60
msgid "County Tyrone"
-msgstr ""
+msgstr "Country Tyrone"
#: contrib/localflavor/uk/uk_regions.py:64
msgid "Clwyd"
-msgstr ""
+msgstr "Clwyd"
#: contrib/localflavor/uk/uk_regions.py:65
msgid "Dyfed"
-msgstr ""
+msgstr "Dyfed"
#: contrib/localflavor/uk/uk_regions.py:66
msgid "Gwent"
-msgstr ""
+msgstr "Gwent"
#: contrib/localflavor/uk/uk_regions.py:67
msgid "Gwynedd"
-msgstr ""
+msgstr "Gwynedd"
#: contrib/localflavor/uk/uk_regions.py:68
msgid "Mid Glamorgan"
-msgstr ""
+msgstr "Mid Glamorgan"
#: contrib/localflavor/uk/uk_regions.py:69
msgid "Powys"
-msgstr ""
+msgstr "Powys"
#: contrib/localflavor/uk/uk_regions.py:70
msgid "South Glamorgan"
-msgstr ""
+msgstr "South Glamorgan"
#: contrib/localflavor/uk/uk_regions.py:71
msgid "West Glamorgan"
-msgstr ""
+msgstr "West Glamorgan"
#: contrib/localflavor/uk/uk_regions.py:75
msgid "Borders"
-msgstr ""
+msgstr "Borders"
#: contrib/localflavor/uk/uk_regions.py:76
msgid "Central Scotland"
-msgstr ""
+msgstr "Central Scotland"
#: contrib/localflavor/uk/uk_regions.py:77
msgid "Dumfries and Galloway"
-msgstr ""
+msgstr "Dumfries and Galloway"
#: contrib/localflavor/uk/uk_regions.py:78
msgid "Fife"
-msgstr ""
+msgstr "Fife"
#: contrib/localflavor/uk/uk_regions.py:79
msgid "Grampian"
-msgstr ""
+msgstr "Grampian"
#: contrib/localflavor/uk/uk_regions.py:80
msgid "Highland"
-msgstr ""
+msgstr "Highland"
#: contrib/localflavor/uk/uk_regions.py:81
msgid "Lothian"
-msgstr ""
+msgstr "Lothian"
#: contrib/localflavor/uk/uk_regions.py:82
msgid "Orkney Islands"
-msgstr ""
+msgstr "Orkney Islands"
#: contrib/localflavor/uk/uk_regions.py:83
msgid "Shetland Islands"
-msgstr ""
+msgstr "Shetland Islands"
#: contrib/localflavor/uk/uk_regions.py:84
msgid "Strathclyde"
-msgstr ""
+msgstr "Strathclyde"
#: contrib/localflavor/uk/uk_regions.py:85
msgid "Tayside"
-msgstr ""
+msgstr "Tayside"
#: contrib/localflavor/uk/uk_regions.py:86
msgid "Western Isles"
-msgstr ""
+msgstr "Western Isles"
#: contrib/localflavor/uk/uk_regions.py:90
-#, fuzzy
msgid "England"
-msgstr "i"
+msgstr "Engleska"
#: contrib/localflavor/uk/uk_regions.py:91
msgid "Northern Ireland"
-msgstr ""
+msgstr "Sjeverna irska"
#: contrib/localflavor/uk/uk_regions.py:92
msgid "Scotland"
-msgstr ""
+msgstr "Škotska"
#: contrib/localflavor/uk/uk_regions.py:93
msgid "Wales"
-msgstr ""
+msgstr "Wales"
#: contrib/localflavor/us/forms.py:16
msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
-msgstr ""
+msgstr "Unesite zip kod formata XXXXX or XXXXX-XXXX."
#: contrib/localflavor/us/forms.py:54
msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
-msgstr ""
+msgstr "Unesi ispravan broj socijalnog osiguranja S.A.D.-a formata XXX-XX-XXXX."
#: contrib/localflavor/za/forms.py:20
-#, fuzzy
msgid "Enter a valid South African ID number"
-msgstr "Unesi ispravan finski broj socijalnog osiguranja."
+msgstr "Unesi ispravan južnoafrički ID broj."
#: contrib/localflavor/za/forms.py:54
-#, fuzzy
msgid "Enter a valid South African postal code"
-msgstr "Unesite ime datoteke koja postoji."
+msgstr "Unesite ispravan južnoafrički poštanski broj."
#: contrib/localflavor/za/za_provinces.py:4
-#, fuzzy
msgid "Eastern Cape"
-msgstr "korisničko ime"
+msgstr "Eastern Cape"
#: contrib/localflavor/za/za_provinces.py:5
msgid "Free State"
-msgstr ""
+msgstr "Free State"
#: contrib/localflavor/za/za_provinces.py:6
-#, fuzzy
msgid "Gauteng"
-msgstr "kol."
+msgstr "Gauteng"
#: contrib/localflavor/za/za_provinces.py:7
msgid "KwaZulu-Natal"
-msgstr ""
+msgstr "KwaZulu-Natal"
#: contrib/localflavor/za/za_provinces.py:8
msgid "Limpopo"
-msgstr ""
+msgstr "Limpopo"
#: contrib/localflavor/za/za_provinces.py:9
msgid "Mpumalanga"
-msgstr ""
+msgstr "Mpumalanga"
#: contrib/localflavor/za/za_provinces.py:10
msgid "Northern Cape"
-msgstr ""
+msgstr "Northern Cape"
#: contrib/localflavor/za/za_provinces.py:11
msgid "North West"
-msgstr ""
+msgstr "North West"
#: contrib/localflavor/za/za_provinces.py:12
msgid "Western Cape"
-msgstr ""
+msgstr "Western Cape"
#: contrib/redirects/models.py:7
msgid "redirect from"
-msgstr "forma za preusmjeravanje"
+msgstr "preusmjeri od"
#: contrib/redirects/models.py:8
msgid ""
@@ -3471,7 +3473,7 @@ msgstr "preusmjeri"
#: contrib/redirects/models.py:14
msgid "redirects"
-msgstr "redirects"
+msgstr "preusmjeravanja"
#: contrib/sessions/models.py:46
msgid "session key"
@@ -3547,7 +3549,7 @@ msgstr "Unesite ispravnu IP adresu."
#: core/validators.py:115
msgid "Empty values are not allowed here."
-msgstr "Prazne vrijednosti nisu ispravne ovdje."
+msgstr "Prazne vrijednosti nisu dopuštene ovdje."
#: core/validators.py:119
msgid "Non-numeric characters aren't allowed here."
@@ -3567,7 +3569,7 @@ msgstr "Dozvoljena su samo slova abecede."
#: core/validators.py:147
msgid "Year must be 1900 or later."
-msgstr "Godina mora biti poslije 1900."
+msgstr "Godina mora biti 1900 ili poslije."
#: core/validators.py:151
#, python-format
@@ -3576,7 +3578,7 @@ msgstr "Neispravan datum: %s"
#: core/validators.py:156 db/models/fields/__init__.py:509
msgid "Enter a valid date in YYYY-MM-DD format."
-msgstr "Unesite validan datum u formatu YYYY-MM-DD."
+msgstr "Unesite ispravan datum u formatu YYYY-MM-DD."
#: core/validators.py:161
msgid "Enter a valid time in HH:MM format."
@@ -3584,7 +3586,7 @@ msgstr "Unesite ispravno vrijeme u HH:MM formatu."
#: core/validators.py:165 db/models/fields/__init__.py:583
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
-msgstr "Unesite validan datum/vrijeme u formatu YYYY-MM-DD HH:MM."
+msgstr "Unesite ispravan datum/vrijeme u formatu YYYY-MM-DD HH:MM."
#: core/validators.py:170 newforms/fields.py:402
msgid "Enter a valid e-mail address."
@@ -3606,7 +3608,7 @@ msgstr ""
#: core/validators.py:200
#, python-format
msgid "The URL %s does not point to a valid image."
-msgstr "URL %s ne prikazuje ispravnu sliku."
+msgstr "URL %s ne vodi na ispravnu sliku."
#: core/validators.py:204
#, python-format
@@ -3648,7 +3650,7 @@ msgstr "URL %s je neispravan (broken) link."
#: core/validators.py:267
msgid "Enter a valid U.S. state abbreviation."
-msgstr "Enter a valid U.S. state abbreviation."
+msgstr "Unesite ispravanu kraticu za državu S.A.D.-a."
#: core/validators.py:281
#, python-format
@@ -3673,7 +3675,7 @@ msgstr "Molim unesite vrijednosti za oba polja ili ostavite oba polja prazna."
#: core/validators.py:335
#, python-format
msgid "This field must be given if %(field)s is %(value)s"
-msgstr "Ovo polja mora biti ispunjeno ako je %(field)s %(value)s"
+msgstr "Ovo polje mora biti ispunjeno ako je %(field)s %(value)s"
#: core/validators.py:348
#, python-format
@@ -3702,7 +3704,7 @@ msgstr "Vrijednost ne može biti veća od %s."
#: core/validators.py:427
#, python-format
msgid "This value must be a power of %s."
-msgstr "Ova vrijednost na kvadrat mora biti %s."
+msgstr "Ova vrijednost mora biti %s na kvadrat."
#: core/validators.py:437
msgid "Please enter a valid decimal number."
@@ -3712,54 +3714,54 @@ msgstr "Molim unesite ispravan decimalni broj."
#, python-format
msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural "Please enter a valid decimal number with at most %s total digits."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Molim unesite ispravan decimalni broj sa najviše %s numerička znaka."
+msgstr[1] "Molim unesite ispravan decimalni broj sa najviše %s numeričkih znakova."
#: core/validators.py:447
#, python-format
msgid "Please enter a valid decimal number with a whole part of at most %s digit."
msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Molim unesite ispravan decimalni broj sa najviše %s numerička znaka u cijelom dijelu."
+msgstr[1] "Molim unesite ispravan decimalni broj sa najviše %s numeričkih znakova u cijelom dijelu."
#: core/validators.py:450
#, python-format
msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural "Please enter a valid decimal number with at most %s decimal places."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Molim unesite ispravan decimalni broj sa najviše %s decimalna mjesta."
+msgstr[1] "Molim unesite ispravan decimalni broj sa najviše %s decimalnih mjesta."
#: core/validators.py:458
msgid "Please enter a valid floating point number."
-msgstr ""
+msgstr "Molim unesite ispravan broj sa pomičnim zarezom (floating point number)."
#: core/validators.py:467
#, python-format
msgid "Make sure your uploaded file is at least %s bytes big."
-msgstr ""
+msgstr "Provjerite je li Vaša upload-ana datoteka bar %s byte-ova velika."
#: core/validators.py:468
#, python-format
msgid "Make sure your uploaded file is at most %s bytes big."
-msgstr ""
+msgstr "Provjerite je li Vaša upload-ana datoteka najviše %s byte-ova velika."
#: core/validators.py:485
msgid "The format for this field is wrong."
-msgstr ""
+msgstr "Format za ovo polje je pogrešno."
#: core/validators.py:500
msgid "This field is invalid."
-msgstr ""
+msgstr "Ovo polje je neispravno."
#: core/validators.py:536
#, python-format
msgid "Could not retrieve anything from %s."
-msgstr ""
+msgstr "Ništa nije izvučeno iz %s."
#: core/validators.py:539
#, python-format
msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
-msgstr ""
+msgstr "URL %(url)s je vratio neispravan Content-Type header '%(contenttype)s'."
#: core/validators.py:572
#, python-format
@@ -3767,6 +3769,8 @@ msgid ""
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
"\"%(start)s\".)"
msgstr ""
+"Molim zatvorite %(tag)s na liniji %(line)s. (Linija počinje sa "
+"\"%(start)s\".)"
#: core/validators.py:576
#, python-format
@@ -3774,6 +3778,8 @@ msgid ""
"Some text starting on line %(line)s is not allowed in that context. (Line "
"starts with \"%(start)s\".)"
msgstr ""
+"Neki tekst koji počinje na liniji %(line)s nije dopušten u tom kontekstu. (Linija "
+"počinje sa \"%(start)s\".)"
#: core/validators.py:581
#, python-format
@@ -3781,6 +3787,8 @@ msgid ""
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
"(start)s\".)"
msgstr ""
+"\"%(attr)s\" na liniji %(line)s je neispravan atribut. (Linija počinje sa \"%"
+"(start)s\".)"
#: core/validators.py:586
#, python-format
@@ -3788,6 +3796,8 @@ msgid ""
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
"(start)s\".)"
msgstr ""
+"\"<%(tag)s>\" na liniji %(line)s je neispravan tag. (Linija počinje sa \"%"
+"(start)s\".)"
#: core/validators.py:590
#, python-format
@@ -3795,6 +3805,8 @@ msgid ""
"A tag on line %(line)s is missing one or more required attributes. (Line "
"starts with \"%(start)s\".)"
msgstr ""
+"Tagu na liniji %(line)s nedostaje jedan ili više obaveznih atributa. (Linija "
+"počinje sa \"%(start)s\".)"
#: core/validators.py:595
#, python-format
@@ -3802,6 +3814,8 @@ msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
"starts with \"%(start)s\".)"
msgstr ""
+"\"%(attr)s\" atribut na liniji %(line)s ima neispravnu vrijednost. (Linija "
+"počinje sa \"%(start)s\".)"
#: db/models/manipulators.py:308
#, python-format
@@ -3821,7 +3835,7 @@ msgstr "Unos za ovo polje je obavezno."
#: db/models/fields/__init__.py:418
msgid "This value must be an integer."
-msgstr "Vrijednost mora biti interger."
+msgstr "Vrijednost mora biti cijeli broj."
#: db/models/fields/__init__.py:454
msgid "This value must be either True or False."
@@ -3846,7 +3860,7 @@ msgstr "Vrijednost mora biti None, True ili False."
#: db/models/fields/related.py:55
#, python-format
msgid "Please enter a valid %s."
-msgstr "Molim unesite validan %s."
+msgstr "Molim unesite ispravan %s."
#: db/models/fields/related.py:658
msgid "Separate multiple IDs with commas."
@@ -3855,58 +3869,58 @@ msgstr "Odvojite više ID-a zarezom."
#: db/models/fields/related.py:660
msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
msgstr ""
-"Držite \"Control\", ili \"Command\" na Mac-u, da bi odabravili više od "
+"Držite \"Control\", ili \"Command\" na Mac-u, da bi odabrali više od "
"jednog objekta."
#: db/models/fields/related.py:707
#, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
-msgstr[0] "Molim unesite ispravan %(self)s ID. Vrijednost %(value)r je neispravna."
-msgstr[1] ""
+msgstr[0] "Molim unesite ispravan %(self)s ID-eve. Vrijednost %(value)r je neispravna."
+msgstr[1] "Molim unesite ispravan %(self)s ID-eve. Vrijednosti %(value)r su neispravne."
#: newforms/fields.py:46
msgid "Enter a valid value."
-msgstr ""
+msgstr "Unesite ispravnu vrijednost."
#: newforms/fields.py:123
#, python-format
msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
-msgstr ""
+msgstr "Osigurajte da ova vrijednost ima najviše %(max)d znakova (ima %(length)d)."
#: newforms/fields.py:124
#, python-format
msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
-msgstr ""
+msgstr "Osigurajte da ova vrijednost ima najmanje %(min)d znakova (ima %(length)d)."
#: newforms/fields.py:152 newforms/fields.py:181 newforms/fields.py:210
#, python-format
msgid "Ensure this value is less than or equal to %s."
-msgstr ""
+msgstr "Osigurajte da je ova vrijednost manja ili jednaka %s."
#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211
#, python-format
msgid "Ensure this value is greater than or equal to %s."
-msgstr ""
+msgstr "Osigurajte da je ova vrijednost veća ili jednaka %s."
#: newforms/fields.py:180 newforms/fields.py:209
msgid "Enter a number."
-msgstr ""
+msgstr "Unesite broj."
#: newforms/fields.py:212
#, python-format
msgid "Ensure that there are no more than %s digits in total."
-msgstr ""
+msgstr "Osigurajte da ukupno nema više od %s numeričkih znakova."
#: newforms/fields.py:213
#, python-format
msgid "Ensure that there are no more than %s decimal places."
-msgstr ""
+msgstr "Osigurajte da ukupno nema više od %s decimalnih mjesta."
#: newforms/fields.py:214
#, python-format
msgid "Ensure that there are no more than %s digits before the decimal point."
-msgstr ""
+msgstr "Osigurajte da ukupno nema više od %s numeričkih znakova prije decimalne točke."
#: newforms/fields.py:262 newforms/fields.py:719
msgid "Enter a valid date."
@@ -3914,16 +3928,15 @@ msgstr "Unesite ispravan datum."
#: newforms/fields.py:295 newforms/fields.py:720
msgid "Enter a valid time."
-msgstr ""
+msgstr "Unesite ispravno vrijeme."
#: newforms/fields.py:334
msgid "Enter a valid date/time."
-msgstr ""
+msgstr "Unesite ispravan datum/vrijeme."
#: newforms/fields.py:433
-#, fuzzy
msgid "No file was submitted."
-msgstr "Ne."
+msgstr "Datoteka nije poslana."
#: newforms/fields.py:434 oldforms/__init__.py:689
msgid "The submitted file is empty."
@@ -3931,45 +3944,43 @@ msgstr "Poslana datoteka je prazna."
#: newforms/fields.py:492
msgid "Enter a valid URL."
-msgstr ""
+msgstr "Unesite ispravan URL."
#: newforms/fields.py:493
msgid "This URL appears to be a broken link."
-msgstr ""
+msgstr "Izgleda da je URL neispravan."
#: newforms/fields.py:555 newforms/models.py:317
msgid "Select a valid choice. That choice is not one of the available choices."
-msgstr ""
+msgstr "Izaberite ispravnu opciju. Ta opcija nije jedna od dostupnih opcija."
#: newforms/fields.py:594
-#, fuzzy, python-format
msgid "Select a valid choice. %(value)s is not one of the available choices."
-msgstr "Odaberite iz ponuđenog; '%(data)s' nije u %(choices)s."
+msgstr "Odaberite iz ponuđenog. %(value)s nije ponuđen kao opcija."
#: newforms/fields.py:595 newforms/fields.py:657 newforms/models.py:377
msgid "Enter a list of values."
msgstr ""
#: newforms/fields.py:748
-#, fuzzy
msgid "Enter a valid IPv4 address."
-msgstr "Unesite ispravnu e-mail adresu."
+msgstr "Unesite ispravnu IPv4 adresu."
#: newforms/models.py:378
#, python-format
msgid "Select a valid choice. %s is not one of the available choices."
-msgstr ""
+msgstr "Odaberite iz ponuđenog. %s nije ponuđen kao opcija."
#: oldforms/__init__.py:409
#, python-format
msgid "Ensure your text is less than %s character."
msgid_plural "Ensure your text is less than %s characters."
-msgstr[0] ""
-msgstr[1] "Uneseni tekst mora sadržavati manje od %s znakova."
+msgstr[0] "Osigurajte da tekst sadrži manje od %s znaka."
+msgstr[1] "Osigurajte da tekst sadrži manje od %s znakova."
#: oldforms/__init__.py:414
msgid "Line breaks are not allowed here."
-msgstr "Unos u novi red ovdje nije dozvoljen."
+msgstr "Novi redovi ovdje nisu dozvoljeni."
#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625
#, python-format
@@ -3996,39 +4007,39 @@ msgstr "da,ne,možda"
#, python-format
msgid "%(size)d byte"
msgid_plural "%(size)d bytes"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(size)d bajt"
+msgstr[1] "%(size)d bajta"
#: template/defaultfilters.py:716
#, python-format
msgid "%.1f KB"
-msgstr ""
+msgstr "%.1f KB"
#: template/defaultfilters.py:718
#, python-format
msgid "%.1f MB"
-msgstr ""
+msgstr "%.1f MB"
#: template/defaultfilters.py:719
#, python-format
msgid "%.1f GB"
-msgstr ""
+msgstr "%.1f GB"
#: utils/dateformat.py:41
msgid "p.m."
-msgstr ""
+msgstr "popodne"
#: utils/dateformat.py:42
msgid "a.m."
-msgstr ""
+msgstr "ujutro"
#: utils/dateformat.py:47
msgid "PM"
-msgstr ""
+msgstr "popodne"
#: utils/dateformat.py:48
msgid "AM"
-msgstr ""
+msgstr "ujutro"
#: utils/dateformat.py:97
msgid "midnight"
@@ -4036,7 +4047,7 @@ msgstr "ponoć"
#: utils/dateformat.py:99
msgid "noon"
-msgstr ""
+msgstr "podne"
#: utils/dates.py:6
msgid "Monday"
@@ -4219,85 +4230,83 @@ msgid "Dec."
msgstr "Pro."
#: utils/text.py:127
-#, fuzzy
msgid "or"
-msgstr "sati"
+msgstr "ili"
#: utils/timesince.py:21
msgid "year"
msgid_plural "years"
msgstr[0] "godina"
-msgstr[1] "godina"
+msgstr[1] "godine"
#: utils/timesince.py:22
msgid "month"
msgid_plural "months"
msgstr[0] "mjesec"
-msgstr[1] "mjesec"
+msgstr[1] "mjeseci"
#: utils/timesince.py:23
msgid "week"
msgid_plural "weeks"
msgstr[0] "tjedan"
-msgstr[1] "tjedan"
+msgstr[1] "tjedani"
#: utils/timesince.py:24
msgid "day"
msgid_plural "days"
msgstr[0] "dan"
-msgstr[1] "dan"
+msgstr[1] "dani"
#: utils/timesince.py:25
msgid "hour"
msgid_plural "hours"
-msgstr[0] "sati"
+msgstr[0] "sat"
msgstr[1] "sati"
#: utils/timesince.py:26
msgid "minute"
msgid_plural "minutes"
-msgstr[0] "minute"
-msgstr[1] "minuta"
+msgstr[0] "minuta"
+msgstr[1] "minute"
#: utils/timesince.py:46
-#, fuzzy
msgid "minutes"
-msgstr "minute"
+msgstr "minuta"
#: utils/timesince.py:51
#, python-format
msgid "%(number)d %(type)s"
-msgstr ""
+msgstr "%(number)d %(type)s"
#: utils/timesince.py:57
#, python-format
msgid ", %(number)d %(type)s"
-msgstr ""
+msgstr ", %(number)d %(type)s"
#: utils/translation/trans_real.py:399
msgid "DATE_FORMAT"
-msgstr ""
+msgstr "DATE_FORMAT"
#: utils/translation/trans_real.py:400
msgid "DATETIME_FORMAT"
-msgstr ""
+msgstr "DATETIME_FORMAT"
#: utils/translation/trans_real.py:401
msgid "TIME_FORMAT"
-msgstr ""
+msgstr "TIME_FORMAT"
#: utils/translation/trans_real.py:417
msgid "YEAR_MONTH_FORMAT"
-msgstr ""
+msgstr "YEAR_MONTH_FORMAT"
#: utils/translation/trans_real.py:418
msgid "MONTH_DAY_FORMAT"
-msgstr ""
+msgstr "MONTH_DAY_FORMAT"
#: views/generic/create_update.py:43
#, python-format
msgid "The %(verbose_name)s was created successfully."
-msgstr ""
+msgstr "%(verbose_name)s je uspješno kreirano."
#: views/generic/create_update.py:117
#, python-format
@@ -4307,5 +4316,5 @@ msgstr "%(verbose_name)s je uspješno promijenjeno."
#: views/generic/create_update.py:184
#, python-format
msgid "The %(verbose_name)s was deleted."
-msgstr "%(verbose_name)s je izbrisano"
+msgstr "%(verbose_name)s je izbrisano."
diff --git a/django/conf/locale/hr/LC_MESSAGES/djangojs.mo b/django/conf/locale/hr/LC_MESSAGES/djangojs.mo
index c4b71f0fa2..30f7c1960c 100644
Binary files a/django/conf/locale/hr/LC_MESSAGES/djangojs.mo and b/django/conf/locale/hr/LC_MESSAGES/djangojs.mo differ
diff --git a/django/conf/locale/hr/LC_MESSAGES/djangojs.po b/django/conf/locale/hr/LC_MESSAGES/djangojs.po
index 7aa988c43d..5ad8993af3 100644
--- a/django/conf/locale/hr/LC_MESSAGES/djangojs.po
+++ b/django/conf/locale/hr/LC_MESSAGES/djangojs.po
@@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-08-13 11:13+1000\n"
-"PO-Revision-Date: 2008-01-05 01:45+0100\n"
+"PO-Revision-Date: 2008-06-17 23:45+0100\n"
"Last-Translator: Aljosa Mohorovic \n"
"Language-Team: Hrvatski jezik\n"
"MIME-Version: 1.0\n"
diff --git a/django/conf/locale/lt/LC_MESSAGES/django.mo b/django/conf/locale/lt/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..3d428274b1
Binary files /dev/null and b/django/conf/locale/lt/LC_MESSAGES/django.mo differ
diff --git a/django/conf/locale/lt/LC_MESSAGES/django.po b/django/conf/locale/lt/LC_MESSAGES/django.po
new file mode 100644
index 0000000000..d855d87ddb
--- /dev/null
+++ b/django/conf/locale/lt/LC_MESSAGES/django.po
@@ -0,0 +1,2868 @@
+# Lithuanian translation of Django.
+# Copyright (C) 2008 The Django Software Foundation
+# This file is distributed under the same license as the Django package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-06-15 23:03+0300\n"
+"PO-Revision-Date: 2008-06-18 22:37+0200\n"
+"Last-Translator: Rapolas Kaselis \n"
+"Language-Team: Django-i18n \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: oldforms/__init__.py:357
+#: db/models/fields/__init__.py:117
+#: db/models/fields/__init__.py:274
+#: db/models/fields/__init__.py:612
+#: db/models/fields/__init__.py:623
+#: newforms/models.py:178
+#: newforms/fields.py:80
+#: newforms/fields.py:376
+#: newforms/fields.py:452
+#: newforms/fields.py:463
+msgid "This field is required."
+msgstr "Šis laukas yra privalomas."
+
+#: oldforms/__init__.py:392
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Įsitikink, kad tavo tekstas turi mažiau nei %s simbolį."
+msgstr[1] "Įsitikink, kad tavo tekstas turi mažiau nei %s simbolių."
+
+#: oldforms/__init__.py:397
+msgid "Line breaks are not allowed here."
+msgstr "Nauja eilutė nėra leidžiama."
+
+#: oldforms/__init__.py:498
+#: oldforms/__init__.py:571
+#: oldforms/__init__.py:610
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Pasirink gerą variantą; '%(data)s' nėra tarp %(choices)s."
+
+#: oldforms/__init__.py:577
+#: newforms/widgets.py:180
+#: contrib/admin/filterspecs.py:150
+msgid "Unknown"
+msgstr "Nežinomas"
+
+#: oldforms/__init__.py:577
+#: newforms/widgets.py:180
+#: contrib/admin/filterspecs.py:143
+msgid "Yes"
+msgstr "Taip"
+
+#: oldforms/__init__.py:577
+#: newforms/widgets.py:180
+#: contrib/admin/filterspecs.py:143
+msgid "No"
+msgstr "Ne"
+
+#: oldforms/__init__.py:672
+#: core/validators.py:174
+#: core/validators.py:445
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Failas nebuvo nurodytas. Patikrink formos koduotę."
+
+#: oldforms/__init__.py:674
+msgid "The submitted file is empty."
+msgstr "Nurodytas failas yra tuščias"
+
+#: oldforms/__init__.py:730
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Įvesk sveiką skaičių nuo -32,768 iki 32,767."
+
+#: oldforms/__init__.py:740
+msgid "Enter a positive number."
+msgstr "Įvesk teigiamą skaičių."
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Įvesk sveiką skaičių nuo 0 iki 32,767."
+
+#: db/models/manipulators.py:307
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s su šiuo %(type)s jau egzistuoja duotuose %(field)s."
+
+#: db/models/manipulators.py:308
+#: contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:337
+#: contrib/admin/views/main.py:339
+msgid "and"
+msgstr "ir"
+
+#: db/models/fields/__init__.py:42
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s su šiuo %(fieldname)s jau egzistuoja."
+
+#: db/models/fields/__init__.py:369
+msgid "This value must be an integer."
+msgstr "Ši reikšme turi būti sveikas skaičius."
+
+#: db/models/fields/__init__.py:404
+msgid "This value must be either True or False."
+msgstr "Ši reikšmė turi būti True arba False."
+
+#: db/models/fields/__init__.py:425
+msgid "This field cannot be null."
+msgstr "Šis laukas negali būti null"
+
+#: db/models/fields/__init__.py:459
+#: core/validators.py:148
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Įvesk tinkamą datą YYYY-MM-DD formatu."
+
+#: db/models/fields/__init__.py:528
+#: core/validators.py:157
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Įvesk tinkamą datą/laiką YYYY-MM-DD HH:MM formatu."
+
+#: db/models/fields/__init__.py:632
+msgid "Enter a valid filename."
+msgstr "Įvesk tinkamą failo vardą."
+
+#: db/models/fields/__init__.py:753
+msgid "This value must be either None, True or False."
+msgstr "Ši reikšmė turi būti viena iš None, True arba False."
+
+#: db/models/fields/related.py:53
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Įveskite tinkamą %s"
+
+#: db/models/fields/related.py:642
+msgid "Separate multiple IDs with commas."
+msgstr "Atskirkite skirtingus ID su kableliu."
+
+#: db/models/fields/related.py:644
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Paspausk ir laikyk \"Control\", arba \"Command\" Mac'uose, kad pasirinkti daugiau nei vieną."
+
+#: db/models/fields/related.py:691
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Įveskite tinkamą %(self)s ID. Reikšmė %(value)r yra netinkama."
+msgstr[1] "Įveskite tinkamą %(self)s ID. Reikšmės %(value)r yra netinkamos."
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Arabų"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "Bengalų"
+
+#: conf/global_settings.py:41
+msgid "Catalan"
+msgstr "Katalonų"
+
+#: conf/global_settings.py:42
+msgid "Czech"
+msgstr "Čekų"
+
+#: conf/global_settings.py:43
+msgid "Welsh"
+msgstr "Velso"
+
+#: conf/global_settings.py:44
+msgid "Danish"
+msgstr "Danų"
+
+#: conf/global_settings.py:45
+msgid "German"
+msgstr "Vokiečių"
+
+#: conf/global_settings.py:46
+msgid "Greek"
+msgstr "Graikų"
+
+#: conf/global_settings.py:47
+msgid "English"
+msgstr "Anglų"
+
+#: conf/global_settings.py:48
+msgid "Spanish"
+msgstr "Ispanų"
+
+#: conf/global_settings.py:49
+msgid "Argentinean Spanish"
+msgstr "Argentinos Ispanų"
+
+#: conf/global_settings.py:50
+msgid "Finnish"
+msgstr "Suomių"
+
+#: conf/global_settings.py:51
+msgid "French"
+msgstr "Prancūzų"
+
+#: conf/global_settings.py:52
+msgid "Galician"
+msgstr "Galų"
+
+#: conf/global_settings.py:53
+msgid "Hungarian"
+msgstr "Vengrų"
+
+#: conf/global_settings.py:54
+msgid "Hebrew"
+msgstr "Hebrajų"
+
+#: conf/global_settings.py:55
+msgid "Icelandic"
+msgstr "Islandų"
+
+#: conf/global_settings.py:56
+msgid "Italian"
+msgstr "Italų"
+
+#: conf/global_settings.py:57
+msgid "Japanese"
+msgstr "Japonų"
+
+#: conf/global_settings.py:58
+msgid "Korean"
+msgstr "Korėjiečių"
+
+#: conf/global_settings.py:59
+msgid "Kannada"
+msgstr "Dravidų"
+
+#: conf/global_settings.py:60
+msgid "Latvian"
+msgstr "Latvių"
+
+#: conf/global_settings.py:61
+msgid "Macedonian"
+msgstr "Makedonų"
+
+#: conf/global_settings.py:62
+msgid "Dutch"
+msgstr "Olandų"
+
+#: conf/global_settings.py:63
+msgid "Norwegian"
+msgstr "Norvegų"
+
+#: conf/global_settings.py:64
+msgid "Polish"
+msgstr "Lenkų"
+
+#: conf/global_settings.py:65
+msgid "Portugese"
+msgstr "Portugalų"
+
+#: conf/global_settings.py:66
+msgid "Brazilian"
+msgstr "Brazilų"
+
+#: conf/global_settings.py:67
+msgid "Romanian"
+msgstr "Rumunų"
+
+#: conf/global_settings.py:68
+msgid "Russian"
+msgstr "Rusų"
+
+#: conf/global_settings.py:69
+msgid "Slovak"
+msgstr "Slovakų"
+
+#: conf/global_settings.py:70
+msgid "Slovenian"
+msgstr "Slovėnų"
+
+#: conf/global_settings.py:71
+msgid "Serbian"
+msgstr "Serbų"
+
+#: conf/global_settings.py:72
+msgid "Swedish"
+msgstr "Švedų"
+
+#: conf/global_settings.py:73
+msgid "Tamil"
+msgstr "Tamilų"
+
+#: conf/global_settings.py:74
+msgid "Telugu"
+msgstr "Telugų"
+
+#: conf/global_settings.py:75
+msgid "Turkish"
+msgstr "Turkų"
+
+#: conf/global_settings.py:76
+msgid "Ukrainian"
+msgstr "Ukrainiečių"
+
+#: conf/global_settings.py:77
+msgid "Simplified Chinese"
+msgstr "Supaprastinta kinų"
+
+#: conf/global_settings.py:78
+msgid "Traditional Chinese"
+msgstr "Tradicinė kinų"
+
+#: core/validators.py:64
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Ši reikšmė gali būti sudaryta tik iš raidžių, skaičių ir pabraukimų."
+
+#: core/validators.py:68
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "Ši reikšmė gali būti sudaryta tik iš raidžių, skaičių, pabraukimų, brūkšnių ir/arba pasvirų brūkšnių."
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Ši reikšmė gali būti sudaryta tik iš raidžių, skaičių, pabraukimų arba brūkšnelių."
+
+#: core/validators.py:76
+msgid "Uppercase letters are not allowed here."
+msgstr "Didžiosios raidės nėra leidžiamos."
+
+#: core/validators.py:80
+msgid "Lowercase letters are not allowed here."
+msgstr "Mažosios raidės nėra leidžiamos."
+
+#: core/validators.py:87
+msgid "Enter only digits separated by commas."
+msgstr "Įvesk skaitmenis atskirtus kableliais."
+
+#: core/validators.py:99
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Įvesk tinkamus e-mailus atskirtus kableliais."
+
+#: core/validators.py:103
+msgid "Please enter a valid IP address."
+msgstr "Įveskt tinkamą IP adresą."
+
+#: core/validators.py:107
+msgid "Empty values are not allowed here."
+msgstr "Tuščios reikšmės neleidžiamos."
+
+#: core/validators.py:111
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Ne skaičius neleidžiamas čia."
+
+#: core/validators.py:115
+msgid "This value can't be comprised solely of digits."
+msgstr "Ši reikšmė negali būti sudaryta vientik iš skaičių."
+
+#: core/validators.py:120
+#: newforms/fields.py:128
+msgid "Enter a whole number."
+msgstr "Įvesk sveiką skaičių."
+
+#: core/validators.py:124
+msgid "Only alphabetical characters are allowed here."
+msgstr "Tik alfabetiniai simboliai leidžiami."
+
+#: core/validators.py:139
+msgid "Year must be 1900 or later."
+msgstr "Metai turi būti 1900 arba vėlesni."
+
+#: core/validators.py:143
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Netinkama data: %s"
+
+#: core/validators.py:153
+msgid "Enter a valid time in HH:MM format."
+msgstr "Įvesk tinkamą laiką HH:MM formatu"
+
+#: core/validators.py:162
+#: newforms/fields.py:271
+msgid "Enter a valid e-mail address."
+msgstr "Įvesk tinkamą e-mailą."
+
+#: core/validators.py:178
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "Atsiųsk tinkamą paveiksliuką. Failas, kurį siuntei buvo arba ne paveiksliukas, arba sugadintas paveiksliukas"
+
+#: core/validators.py:185
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "URL %s nenurodo tinkamo paveiksliuko."
+
+#: core/validators.py:189
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Telefono numeris turi būti XXX-XXX-XXXX formatu. \"%s\" yra netinkamas."
+
+#: core/validators.py:197
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "URL %s nenurodo tinkamo QuickTime video."
+
+#: core/validators.py:201
+msgid "A valid URL is required."
+msgstr "Tinkamas URL privalomas."
+
+#: core/validators.py:215
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Tinkamas HTML privalomas. Klaidos:\n"
+"%s"
+
+#: core/validators.py:222
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "Blogai suformuotas XML: %s"
+
+#: core/validators.py:239
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "Netinkamas URL: %s"
+
+#: core/validators.py:244
+#: core/validators.py:246
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "URL %s yra neveikiantis."
+
+#: core/validators.py:252
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Įvesk tinkamą JAV valstijos sutrumpinimą."
+
+#: core/validators.py:266
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgid_plural "Watch your mouth! The words %s are not allowed here."
+msgstr[0] "Kontroliuok liežuvį! %s neleidžiamas."
+msgstr[1] "Kontroliuok liežuvį! %s neleidžiami."
+
+#: core/validators.py:273
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Šis laukas turi atitikti %s lauką."
+
+#: core/validators.py:292
+msgid "Please enter something for at least one field."
+msgstr "Nors vienam lauke kažką reikia įvesti."
+
+#: core/validators.py:301
+#: core/validators.py:312
+msgid "Please enter both fields or leave them both empty."
+msgstr "Įveskite abu laukus arba abu palikite tuščius."
+
+#: core/validators.py:320
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Šis laukas turi būti užpildytas, jei %(field)s yra %(value)s"
+
+#: core/validators.py:333
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Šis laukas turi būti užpildytas, jei %(field)s nėra %(value)s"
+
+#: core/validators.py:352
+msgid "Duplicate values are not allowed."
+msgstr "Vienodos reikšmės neleidžiamos."
+
+#: core/validators.py:367
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Ši reikšmė turi būti tarp %(lower)s ir %(upper)s."
+
+#: core/validators.py:369
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Ši reikšme mažiausiai turi būti %s."
+
+#: core/validators.py:371
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Ši reikšmė negali būti daugiau nei %s."
+
+#: core/validators.py:407
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Ši reikšmė turi būti %s laipsnis."
+
+#: core/validators.py:418
+msgid "Please enter a valid decimal number."
+msgstr "Įveskite tinkamą dešimtainį skaičių."
+
+#: core/validators.py:422
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Įveskite tinkamą dešimtainį skaičių su daugiausiai %s skaitmeniu."
+msgstr[1] "Įveskite tinkamą dešimtainį skaičių su daugiausiai %s skaitmenimis."
+
+#: core/validators.py:425
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Įveskite tinkamą dešimtainį skaičių, kurio sveikoji dalis ne didenė nei %s skaitmens."
+msgstr[1] "Įveskite tinkamą dešimtainį skaičių, kurio sveikoji dalis ne didenė nei %s skaitmenų."
+
+#: core/validators.py:428
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Įveskite tinkamą dešimtainį skaičių, kur po kablelio max %s skaitmuo."
+msgstr[1] "Įveskite tinkamą dešimtainį skaičių, kur po kablelio max %s skaitmenų."
+
+#: core/validators.py:438
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Įsitikink, kad įkeltas failas yra mažiausiai %s baitų dydžio."
+
+#: core/validators.py:439
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Įsitikink, kad įkeltas failas yra daugiausiai %s baitų dydžio."
+
+#: core/validators.py:456
+msgid "The format for this field is wrong."
+msgstr "Šis formatas yra netinkamas šiam laukui."
+
+#: core/validators.py:471
+msgid "This field is invalid."
+msgstr "Šis laukas yra netinkamas."
+
+#: core/validators.py:507
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Nieko negaliu gauti iš %s"
+
+#: core/validators.py:510
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "URL %(url)s gražino blogą Content-Type headerį '%(contenttype)s'."
+
+#: core/validators.py:543
+#, python-format
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "Uždaryk neuždarytus %(tag)s tagus nuo %(line)s eilutės. (Pradedant \"%(start)s\" eilute.)"
+
+#: core/validators.py:547
+#, python-format
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr "Kažkiek teksto pradedant %(line)s eilute nėra leidžiamas šiame kontekste. (Pradedant \"%(start)s\" eilute."
+
+#: core/validators.py:552
+#, python-format
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr "\"%(attr)s\" eilutėje %(line)s yra netinkamas atributas. (Pradedant \"%(start)s\" eilute.)"
+
+#: core/validators.py:557
+#, python-format
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr "\"<%(tag)s>\" eilutėje %(line)s yra netinkami tagai. (Pradedant \"%(start)s\" eilute.)"
+
+#: core/validators.py:561
+#, python-format
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr "Eilutėje %(line)s tagui trūksta vieno ar daugiau privalomų atributų. (Pradedant \"%(start)s\" eilute.)"
+
+#: core/validators.py:566
+#, python-format
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr "\"%(attr)s\" atributas eilutėje %(line)s turi netinkamą reikšmę. (Pradedant \"%(start)s\" eilute.)"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s sėkmingai sukurtas."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s sėkmingai atnaujintas."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s buvo ištrintas."
+
+#: newforms/models.py:165
+#: newforms/fields.py:364
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Pasirink tinkamą. Tas pasirinkimas nėra iš galimų."
+
+#: newforms/models.py:182
+#: newforms/fields.py:380
+#: newforms/fields.py:456
+msgid "Enter a list of values."
+msgstr "Įvesk reikšmių sarašą."
+
+#: newforms/models.py:188
+#: newforms/fields.py:389
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Pasirink tinkamą. %s nėra vienas iš galimų."
+
+#: newforms/fields.py:103
+#: newforms/fields.py:256
+#, python-format
+msgid "Ensure this value has at most %d characters."
+msgstr "Įsitikink, kad reikšmė daugiausiai turi %d simbolių."
+
+#: newforms/fields.py:105
+#: newforms/fields.py:258
+#, python-format
+msgid "Ensure this value has at least %d characters."
+msgstr "Įsitikink, kad reikšmė mažiausiai turi %d simbolių."
+
+#: newforms/fields.py:130
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Įsitikink, kad ši reikšmė yra mažiau arba lygu %s."
+
+#: newforms/fields.py:132
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Įsitikink, kad ši reikšmė yra daugiau arba lygu %s."
+
+#: newforms/fields.py:165
+msgid "Enter a valid date."
+msgstr "Įvesk tinkamą datą."
+
+#: newforms/fields.py:192
+msgid "Enter a valid time."
+msgstr "Įvesk tinkamą laiką."
+
+#: newforms/fields.py:228
+msgid "Enter a valid date/time."
+msgstr "Įvesk tinkamą datą/laiką."
+
+#: newforms/fields.py:242
+msgid "Enter a valid value."
+msgstr "Įvesk tinkamą reikšmę."
+
+#: newforms/fields.py:289
+#: newforms/fields.py:311
+msgid "Enter a valid URL."
+msgstr "Įvesk tinkamą URL."
+
+#: newforms/fields.py:313
+msgid "This URL appears to be a broken link."
+msgstr "Atrodo URL blogas."
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "th"
+msgstr "th"
+
+#: contrib/humanize/templatetags/humanize.py:17
+#, fuzzy
+msgid "st"
+msgstr "st"
+
+#: contrib/humanize/templatetags/humanize.py:17
+#, fuzzy
+msgid "nd"
+msgstr "nd"
+
+#: contrib/humanize/templatetags/humanize.py:17
+msgid "rd"
+msgstr "rd"
+
+#: contrib/humanize/templatetags/humanize.py:47
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f milijonas"
+msgstr[1] "%(value).1f milijonas"
+
+#: contrib/humanize/templatetags/humanize.py:50
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f milijardas"
+msgstr[1] "%(value).1f milijardas"
+
+#: contrib/humanize/templatetags/humanize.py:53
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f trilijonas"
+msgstr[1] "%(value).1f trilijonas"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "one"
+msgstr "vienas"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "two"
+msgstr "du"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "three"
+msgstr "trys"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "four"
+msgstr "keturi"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "five"
+msgstr "penki"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "six"
+msgstr "šeši"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "seven"
+msgstr "septyni"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "eight"
+msgstr "aštuoni"
+
+#: contrib/humanize/templatetags/humanize.py:68
+msgid "nine"
+msgstr "devyni"
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "nukreiptas (redirect) iš"
+
+#: contrib/redirects/models.py:8
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
+msgstr "Turi būti absoliutus adresas neįtraukiant domaino. Pavyzdžiui: '/events/search/'."
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "nukreipti(redirect) į"
+
+#: contrib/redirects/models.py:10
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
+msgstr "Gali būti absoliutus adresas (kaip viršuj) arba pilnas URL pradedant 'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "nukreipti"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "nukreipia"
+
+#: contrib/comments/models.py:67
+#: contrib/comments/models.py:166
+msgid "object ID"
+msgstr "objekto ID"
+
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "antraštė"
+
+#: contrib/comments/models.py:69
+#: contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "komentaras"
+
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "reitingas #1"
+
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "reitingas #2"
+
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "reitingas #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "reitingas #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "reitingas #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "reitingas #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "reitingas #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "reitingas #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "tinkamas reitingas"
+
+#: contrib/comments/models.py:83
+#: contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "įvesta data/laikas"
+
+#: contrib/comments/models.py:84
+#: contrib/comments/models.py:170
+msgid "is public"
+msgstr "viešas"
+
+#: contrib/comments/models.py:85
+#: contrib/admin/views/doc.py:304
+msgid "IP address"
+msgstr "IP adresas"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "pašalintas"
+
+#: contrib/comments/models.py:86
+msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
+msgstr "Pažymėk šį laukelį, jei komentaras netinkamas. \"Šis komentaras ištrintas\" bus rodoma."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "komentarai"
+
+#: contrib/comments/models.py:131
+#: contrib/comments/models.py:207
+msgid "Content object"
+msgstr "Turinio objektas"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Paskelbta %(user)s, %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "asmens vardas"
+
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "ip adresas"
+
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "patvirtinta personalo"
+
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "laisvas komentaras"
+
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "laisvi komentarai"
+
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "rezultatas"
+
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "rezultato data"
+
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "karma rezultatas"
+
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "karma rezultatai"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d reitingas nuo %(user)s"
+
+#: contrib/comments/models.py:258
+#, python-format
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Šis komentaras pažymėtas %(user)s:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "pažymėjimo data"
+
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "vartotojo žymė"
+
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "vartotojo žymės"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "Pažymėtas %r"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "ištrinimo data"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "moderatoriaus ištrynimas"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "moderatoriaus ištrynimai"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Moderatoriaus ištrynimas, pagal %r"
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "Neprisijungę vartotojai negali balsuoti"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "Blogas komentaro ID"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "Negali balsuoti už save"
+
+#: contrib/comments/views/comments.py:27
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "Šis reitingas privalomas nes įvedei mažiausiai vieną kitą reitingą."
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Šis komentaras buvo paskelbtas vartotojo, kuris paskelbė mažiau nei %(count)s komentarą:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Šis komentaras buvo paskelbtas vartotojo, kuris paskelbė mažiau nei %(count)s komentarų:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Šis komentaras buvo paskelbtas nerimto vartotojo:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "Tik POSTai yra leidžiami"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Vienas ar daugiau privalomų laukų nebuvo įrašytas"
+
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Kažkas padirbo komentaro formą (saugumo pažeidimai)"
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid"
+msgstr "Komentaro forma turi blogą 'target' parametrą -- objekto ID blogas"
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Komentaro forma nepateikė 'preview' arba 'post'"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:17
+msgid "Username:"
+msgstr "Vartotojo vardas:"
+
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+msgid "Log out"
+msgstr "Atsijungti"
+
+#: contrib/comments/templates/comments/form.html:8
+#: contrib/admin/templates/admin/login.html:20
+msgid "Password:"
+msgstr "Slaptažodis:"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Pamiršai slaptažodį?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Reitingas"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Privalomas"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Neprivalomas"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Įkelk nuotrauką"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Komentaras:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Peržiūrėti komentarą"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Jūsų vardas:"
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "domeno vardas"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "rodomas vardas"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "saitas"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "saitai"
+
+#: contrib/admin/filterspecs.py:40
+#, python-format
+msgid ""
+"
By %s:
\n"
+"
\n"
+msgstr ""
+
+#: contrib/admin/filterspecs.py:70
+#: contrib/admin/filterspecs.py:88
+#: contrib/admin/filterspecs.py:143
+#: contrib/admin/filterspecs.py:169
+msgid "All"
+msgstr "Visi"
+
+#: contrib/admin/filterspecs.py:109
+msgid "Any date"
+msgstr "Betkokia data"
+
+#: contrib/admin/filterspecs.py:110
+msgid "Today"
+msgstr "Šiandien"
+
+#: contrib/admin/filterspecs.py:113
+msgid "Past 7 days"
+msgstr "Paskutinės 7 dienos"
+
+#: contrib/admin/filterspecs.py:115
+msgid "This month"
+msgstr "Šį mėnesį"
+
+#: contrib/admin/filterspecs.py:117
+msgid "This year"
+msgstr "Šiais metais"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "veiksmo laikas"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "objekto id"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "objekto repr"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "veiksmo žymė"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "pakeisti žinutę"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "log įrašas"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "log įrašai"
+
+#: contrib/admin/templatetags/admin_list.py:247
+msgid "All dates"
+msgstr "Visos datos"
+
+#: contrib/admin/views/auth.py:19
+#: contrib/admin/views/main.py:257
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "%(name)s \"%(obj)s\" pridėtas sėkmingai."
+
+#: contrib/admin/views/auth.py:24
+#: contrib/admin/views/main.py:261
+#: contrib/admin/views/main.py:347
+msgid "You may edit it again below."
+msgstr "Gali taisyti dar kartą žemiau."
+
+#: contrib/admin/views/auth.py:30
+msgid "Add user"
+msgstr "Pridėti vartotoją"
+
+#: contrib/admin/views/auth.py:57
+msgid "Password changed successfully."
+msgstr "Slaptažodis pakeistas sėkmingai."
+
+#: contrib/admin/views/auth.py:64
+#, python-format
+msgid "Change password: %s"
+msgstr "Pakeisti slaptažodį: %s"
+
+#: contrib/admin/views/main.py:223
+msgid "Site administration"
+msgstr "Saito administracija"
+
+#: contrib/admin/views/main.py:271
+#: contrib/admin/views/main.py:356
+#, python-format
+msgid "You may add another %s below."
+msgstr "Gali pridėti dar vieną %s žemiau."
+
+#: contrib/admin/views/main.py:289
+#, python-format
+msgid "Add %s"
+msgstr "Pridėti %s"
+
+#: contrib/admin/views/main.py:335
+#, python-format
+msgid "Added %s."
+msgstr "Pridėtas %s."
+
+#: contrib/admin/views/main.py:337
+#, python-format
+msgid "Changed %s."
+msgstr "Pakeistas %s."
+
+#: contrib/admin/views/main.py:339
+#, python-format
+msgid "Deleted %s."
+msgstr "Ištrintas %s"
+
+#: contrib/admin/views/main.py:342
+msgid "No fields changed."
+msgstr "Nei vienas laukas nepakeistas"
+
+#: contrib/admin/views/main.py:345
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "%(name)s \"%(obj)s\" buvo sėkmingai pakeistas."
+
+#: contrib/admin/views/main.py:353
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" pridėtas sėkmingai. Gali taisytį jį dar kartą žemiau."
+
+#: contrib/admin/views/main.py:391
+#, python-format
+msgid "Change %s"
+msgstr "Pakeisti %s"
+
+#: contrib/admin/views/main.py:476
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Vienas arba daugiau %(fieldname)s %(name)s: %(obj)s"
+
+#: contrib/admin/views/main.py:481
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Vienas arba daugiau %(fieldname)s %(name)s:"
+
+#: contrib/admin/views/main.py:514
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "%(name)s \"%(obj)s\" sėkmingai ištrintas."
+
+#: contrib/admin/views/main.py:517
+msgid "Are you sure?"
+msgstr "Ar tu tikras?"
+
+#: contrib/admin/views/main.py:539
+#, python-format
+msgid "Change history: %s"
+msgstr "Pakeisti istoriją: %s"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s"
+msgstr "Pasirinkti %s"
+
+#: contrib/admin/views/main.py:573
+#, python-format
+msgid "Select %s to change"
+msgstr "Pasirinkti %s pakeitimui"
+
+#: contrib/admin/views/main.py:768
+msgid "Database error"
+msgstr "Duomenų bazės klaida"
+
+#: contrib/admin/views/decorators.py:10
+#: contrib/auth/forms.py:60
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "Įveskite teisingą vartotojo vardą ir slaptažodį. Abiejuose laukuose didžiosios mažosios raidės skiriasi"
+
+#: contrib/admin/views/decorators.py:24
+#: contrib/admin/templates/admin/login.html:25
+msgid "Log in"
+msgstr "Prisijungti"
+
+#: contrib/admin/views/decorators.py:62
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "Prisijunkite dar kartą, nes sesijos laikas baigėsi. Nesirūpinkite, įrašai buvo išsaugoti."
+
+#: contrib/admin/views/decorators.py:69
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "Atrodo, kad Jūsų naršyklė nepriima sausainėlių (cookies). Įjunkite sausainėlių palaikymą, perkraukite puslapį ir bandykite dar kartą."
+
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "Vartotojo vardas negali turėti '@'."
+
+#: contrib/admin/views/decorators.py:85
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "E-mailas nėra vartotojo vardas. Pabandyk '%s' vietoj to."
+
+#: contrib/admin/views/doc.py:46
+#: contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "tagas"
+
+#: contrib/admin/views/doc.py:77
+#: contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "filtras:"
+
+#: contrib/admin/views/doc.py:135
+#: contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "vaizdas:"
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "Programa %r nerasta"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
+msgstr "Modelis %(name)r programoje %(label)r nerastas"
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
+msgstr "susijęs `%(label)s.%(type)s` objektas"
+
+#: 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 "model:"
+msgstr "modelis:"
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
+msgstr "susiję `%(label)s.%(name)s` objektai"
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "visi %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr "%s skaičius"
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Objekto %s laukai"
+
+#: 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 "Integer"
+msgstr "Sveikas skaičius"
+
+#: contrib/admin/views/doc.py:292
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (True arba False)"
+
+#: contrib/admin/views/doc.py:293
+#: contrib/admin/views/doc.py:311
+#, python-format
+msgid "String (up to %(maxlength)s)"
+msgstr "Eilutė (iki %(maxlength)s)"
+
+#: contrib/admin/views/doc.py:294
+msgid "Comma-separated integers"
+msgstr "Kableliais atskirti sveikieji skaičiai"
+
+#: contrib/admin/views/doc.py:295
+msgid "Date (without time)"
+msgstr "Data (be laiko)"
+
+#: contrib/admin/views/doc.py:296
+msgid "Date (with time)"
+msgstr "Data (su laiku)"
+
+#: contrib/admin/views/doc.py:297
+msgid "E-mail address"
+msgstr "E-mailo adresas"
+
+#: contrib/admin/views/doc.py:298
+#: contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
+msgid "File path"
+msgstr "Kelias iki failo"
+
+#: contrib/admin/views/doc.py:300
+msgid "Decimal number"
+msgstr "Dešimtainis skaičius"
+
+#: contrib/admin/views/doc.py:306
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolean (True arba False arba None)"
+
+#: contrib/admin/views/doc.py:307
+msgid "Relation to parent model"
+msgstr "Sąsaja su tėviniu modeliu"
+
+#: contrib/admin/views/doc.py:308
+msgid "Phone number"
+msgstr "Telefono numeris"
+
+#: contrib/admin/views/doc.py:313
+msgid "Text"
+msgstr "Tekstas"
+
+#: contrib/admin/views/doc.py:314
+msgid "Time"
+msgstr "Laikas"
+
+#: contrib/admin/views/doc.py:315
+#: contrib/flatpages/models.py:7
+msgid "URL"
+msgstr "URL"
+
+#: contrib/admin/views/doc.py:316
+msgid "U.S. state (two uppercase letters)"
+msgstr "JAV valstija (dvi didžiosios raidės)"
+
+#: contrib/admin/views/doc.py:317
+msgid "XML text"
+msgstr "XML tekstas"
+
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s neatrodo kaip urlpattern objektas"
+
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Dabartinis:"
+
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Pakeisti:"
+
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Data:"
+
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Laikas:"
+
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Dokumentacija"
+
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin/auth/user/change_password.html:15
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+msgid "Change password"
+msgstr "Pakeisti slaptažodį"
+
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/change_form.html:13
+#: contrib/admin/templates/admin/delete_confirmation.html:6
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/auth/user/change_password.html:12
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/logged_out.html:4
+#: contrib/admin/templates/registration/password_reset_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Home"
+msgstr "Pradinis"
+
+#: contrib/admin/templates/admin/change_list.html:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "Pridėti %(name)s"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Pagal %(filter_title)s "
+
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "History"
+msgstr "Istorija"
+
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Data/laikas"
+
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "Vartotojas"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "Veiksmas"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j. N Y, H:i"
+
+#: contrib/admin/templates/admin/object_history.html:36
+msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
+msgstr "Šis objektas neturi pakeitimų istorijos. Tikriausiai jis buvo pridėtas ne per admin puslapį."
+
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Eiti!"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 rezultatas"
+msgstr[1] "%(counter)s rezultatai"
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s iš viso"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Rodyti visus"
+
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Django saito administravimas"
+
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Django administravimas"
+
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Serverio klaida"
+
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Serverio klaida (500)"
+
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error (500)"
+msgstr "Serverio klaida (500)"
+
+#: contrib/admin/templates/admin/500.html:10
+msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
+msgstr "Įvyko klaida. Apie ją buvo pranešta administratoriams ir turėtų būti greitai ištaisyta. Dėkojame už kantrybę."
+
+#: contrib/admin/templates/admin/invalid_setup.html:8
+msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user."
+msgstr "Kažkas yra negerai su jūsų duomenų bazės instaliacija. Įsitikink, kad visos reikalingos lentelės sukurtos ir vartotojas turi teises skaityti duomenų bazę."
+
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modelis prieinamas %(name)s programoje."
+
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
+
+#: contrib/admin/templates/admin/index.html:28
+#: contrib/admin/templates/admin/change_form.html:15
+msgid "Add"
+msgstr "Pridėti"
+
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Pakeisti"
+
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Neturi teisių ką nors keistis."
+
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Neseni veiksmai"
+
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Mano Veiksmai"
+
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Nėra prieinamų"
+
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Puslapis nerastas"
+
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Atsiprašome, bet prašytas puslapis nerastas."
+
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filtras"
+
+#: contrib/admin/templates/admin/change_form.html:22
+msgid "View on site"
+msgstr "Matyti saite"
+
+#: contrib/admin/templates/admin/change_form.html:32
+#: contrib/admin/templates/admin/auth/user/change_password.html:24
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] "Ištaisykite klaidą žemiau"
+msgstr[1] "Ištaisykite klaidas žemiau"
+
+#: contrib/admin/templates/admin/change_form.html:50
+msgid "Ordering"
+msgstr "Rūšiavimas"
+
+#: contrib/admin/templates/admin/change_form.html:53
+msgid "Order:"
+msgstr "Rūšiuoti:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:9
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Ištrinti"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:14
+#, python-format
+msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:"
+msgstr "Trinant %(object_name)s '%(escaped_object)s' turi būti ištrinti ir susiję objektai, bet tavo vartotojas neturi teisių ištrinti šių objektų:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:21
+#, python-format
+msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:"
+msgstr "Ar tu esi tikras, kad nori ištrinti %(object_name)s \"%(escaped_object)s\"? Visi susiję objektai bus ištrinti:"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:26
+msgid "Yes, I'm sure"
+msgstr "Taip, aš esu tikras"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Sveiki,"
+
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Išsaugoti kaip naują"
+
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Išsaugoti ir pridėti naują"
+
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Išsaugoti ir tęsti redagavimą"
+
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Išsaugoti"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#, python-format
+msgid "Enter a new password for the user %(username)s."
+msgstr "Įvesk naują slaptažodį vartotojui %(username)s."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:34
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+msgid "Password"
+msgstr "Slaptažodis"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+msgid "Password (again)"
+msgstr "Slaptažodis (dar kartą)"
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:40
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+msgid "Enter the same password as above, for verification."
+msgstr "Patikrinimui įvesk tokį patį slaptažodį, kaip viršuje."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
+msgid "First, enter a username and password. Then, you'll be able to edit more user options."
+msgstr "Pirmiausi įvesk vartotojo vardą ir slaptažodį. Tada turėsi galimybę redaguoti daugiau nustatymų."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Vartotojo vardas"
+
+#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+msgid "Password change"
+msgstr "Slaptažodžio keitimas"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Slaptažodis sėkmingai pakeistas"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "Jūsų slaptažodis buvo pakeistas."
+
+#: contrib/admin/templates/registration/password_reset_form.html:4
+#: contrib/admin/templates/registration/password_reset_form.html:6
+#: contrib/admin/templates/registration/password_reset_form.html:10
+#: contrib/admin/templates/registration/password_reset_done.html:4
+msgid "Password reset"
+msgstr "Slaptažodžiu atstatymas(reset)"
+
+#: contrib/admin/templates/registration/password_reset_form.html:12
+msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
+msgstr "Pamiršai slaptažodį? Įvesk savo emailą žemiau ir mes atsiųsime naują slaptažodį emailu."
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "E-mailo adresas:"
+
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Atstatyti slaptažodį"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Dėkui už praleistą laiką šiandien."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Prisijungti dar kartą"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Slaptažodis sėkmingai atsatytas"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
+msgstr "Išsiuntėm naują slaptažodį e-mailu. Turėtumėte greitai gauti."
+
+#: contrib/admin/templates/registration/password_change_form.html:12
+msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
+msgstr "Saugumo sumetimais įvesk seną slaptažodį ir tada du kartus naują, kad įsitikinti, jog nesuklydai rašydamas"
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Senas slaptažodis:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Naujas slaptažodis:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Slaptažodžio patvirtinimas:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Pakeisti slaptažodį"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Gavote šį laišką, nes paprašėte atstatyti slaptažodį"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "Jūsų vartotojui %(site_name)s saite"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Jūsų naujas slaptažodis yra: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Nebijokite pasikeisti šį slaptažodį puslapyje:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Jūsų vartotojo vardas, jei netyčia užmiršote:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Dėkui, kad naudojatės mūsų saitu!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "%(site_name)s komanda"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Greitosios žymės"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:5
+msgid "Documentation bookmarklets"
+msgstr "Doumentacijos greitosios žymės"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+msgid ""
+"\n"
+"
To install bookmarklets, drag the link to your bookmarks\n"
+"toolbar, or right-click the link and add it to your bookmarks. Now you can\n"
+"select the bookmarklet from any page in the site. Note that some of these\n"
+"bookmarklets require you to be viewing the site from a computer designated\n"
+"as \"internal\" (talk to your system administrator if you aren't sure if\n"
+"your computer is \"internal\").
\n"
+msgstr ""
+"\n"
+"
Greitųjų žymių įdiegimui, nutempkite nuorodą į greitųjų žymių\n"
+"juostą, arba spauskite dešinį pelės klavišą ir pridėkite prie greitųjų žymių. Dabar galite\n"
+"pasirinkti greitąją žymę iš bet kurio saito puslapio. Pastebėjimas, kad keletas iš šių\n"
+"greitųjų žymių reikalauja, kad saitas būtų žiūrimas iš vidinio kompiuterio \n"
+"(pasitarkite su administratorium, jei nežinai ar tavo kompiuteris yra vidinis).
\n"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
+msgid "Documentation for this page"
+msgstr "Šio puslapio dokumentacija"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+msgid "Jumps you from any page to the documentation for the view that generates that page."
+msgstr "Pereina iš bet kurio puslapio į jo view funkcijos dokumentaciją, kuri sukūria tą puslapį"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Show object ID"
+msgstr "Parodyti objekto ID"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "Parodyti content-type ir unikalų puslapių ID, kuris parodo vieną objektą."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Edit this object (current window)"
+msgstr "Redaguoti šį objektą (einamajame lange)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:26
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Pereina į administravimo puslapį, kuris parodo vieną objektą."
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "Edit this object (new window)"
+msgstr "Redaguoti šį objektą (naujame lange)"
+
+#: contrib/admin/templates/admin_doc/bookmarklets.html:29
+msgid "As above, but opens the admin page in a new window."
+msgstr "Kaip ir viršuje, bet administravimo puslapį atidaro naujame lange."
+
+#: contrib/contenttypes/models.py:36
+msgid "python model class name"
+msgstr "python modelio klasės vardas"
+
+#: contrib/contenttypes/models.py:39
+msgid "content type"
+msgstr "turinio tipas"
+
+#: contrib/contenttypes/models.py:40
+msgid "content types"
+msgstr "turinio tipai"
+
+#: contrib/auth/views.py:40
+msgid "Logged out"
+msgstr "Atsijungęs"
+
+#: contrib/auth/models.py:44
+#: contrib/auth/models.py:64
+msgid "name"
+msgstr "vardas"
+
+#: contrib/auth/models.py:46
+msgid "codename"
+msgstr "kodinis vardas"
+
+#: contrib/auth/models.py:49
+msgid "permission"
+msgstr "leidimas"
+
+#: contrib/auth/models.py:50
+#: contrib/auth/models.py:65
+msgid "permissions"
+msgstr "leidimai"
+
+#: contrib/auth/models.py:68
+msgid "group"
+msgstr "grupė"
+
+#: contrib/auth/models.py:69
+#: contrib/auth/models.py:109
+msgid "groups"
+msgstr "grupės"
+
+#: contrib/auth/models.py:99
+msgid "username"
+msgstr "vartotojo vardas"
+
+#: contrib/auth/models.py:99
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr "Privalomas. 30 simbolių arba mažiau. Alfanumeriniai simboliai tik (raidės, skaitmenys ir pabraukimai)"
+
+#: contrib/auth/models.py:100
+msgid "first name"
+msgstr "vardas"
+
+#: contrib/auth/models.py:101
+msgid "last name"
+msgstr "pavardė"
+
+#: contrib/auth/models.py:102
+msgid "e-mail address"
+msgstr "e-mailo adresas"
+
+#: contrib/auth/models.py:103
+msgid "password"
+msgstr "slaptažodis"
+
+#: contrib/auth/models.py:103
+msgid "Use '[algo]$[salt]$[hexdigest]' or use the change password form."
+msgstr "Naudok '[algo]$[salt]$[hexdigest]' arba naudok slaptažodžio keitimo formą."
+
+#: contrib/auth/models.py:104
+msgid "staff status"
+msgstr "personalo statusas"
+
+#: contrib/auth/models.py:104
+msgid "Designates whether the user can log into this admin site."
+msgstr "Pažymi ar vartotojas gali prisijungti prie administravimo puslapio."
+
+#: contrib/auth/models.py:105
+msgid "active"
+msgstr "aktyvus"
+
+#: contrib/auth/models.py:105
+msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."
+msgstr "Pažymi ar šis vartotojas gali prisijungti prie Django administravimo. Nepažymėk šios lauko, vietoj vartotojo trynimo."
+
+#: contrib/auth/models.py:106
+msgid "superuser status"
+msgstr "supervartotojo statusas"
+
+#: contrib/auth/models.py:106
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr "Pažymi, kad šis vartotojas turi visas teises be specialių nustatymų."
+
+#: contrib/auth/models.py:107
+msgid "last login"
+msgstr "paskutinį kartą prisijungęs"
+
+#: contrib/auth/models.py:108
+msgid "date joined"
+msgstr "data, kada prisijungė"
+
+#: contrib/auth/models.py:110
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "Prie rankiniu būdų priskirtų teisių, šis vartotojas taip pat gaus visas teises, kurias turi grupės, kurioms jis priklauso."
+
+#: contrib/auth/models.py:111
+msgid "user permissions"
+msgstr "vartotojo leidimai"
+
+#: contrib/auth/models.py:115
+msgid "user"
+msgstr "vartotojas"
+
+#: contrib/auth/models.py:116
+msgid "users"
+msgstr "vartotojai"
+
+#: contrib/auth/models.py:122
+msgid "Personal info"
+msgstr "Asmeninė informacija"
+
+#: contrib/auth/models.py:123
+msgid "Permissions"
+msgstr "Leidimai"
+
+#: contrib/auth/models.py:124
+msgid "Important dates"
+msgstr "Svarbios datos"
+
+#: contrib/auth/models.py:125
+msgid "Groups"
+msgstr "Grupės"
+
+#: contrib/auth/models.py:269
+msgid "message"
+msgstr "žinutė"
+
+#: contrib/auth/models.py:282
+msgid "AnonymousUser"
+msgstr "Anoniminis vartotojas"
+
+#: contrib/auth/forms.py:17
+#: contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Slaptažodžio laukai nesutapo"
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Jau egzistuoja vartotojas su tokiu vardu."
+
+#: contrib/auth/forms.py:53
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "Atrodo, jūsų naršyklė nepriima sausainėlių(cookies). Sausainėliai yra reikalingi norint prisijungti."
+
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Ši paskyra yra neaktyvi."
+
+#: contrib/auth/forms.py:85
+msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
+msgstr "Šis emailas nėra registruotas sistemoje. Ar esi tikras, kad tu užsiregistravęs?"
+
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Naujo slaptažodžio laukai nesutapo"
+
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Blogai įvestas senas slaptažodis. Bandykite dar kartą."
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr "Įveskite pašto kodą. Tarpas reikalingas tarp dviejų pašto kodo dalių."
+
+#: contrib/localflavor/br/forms.py:18
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Įveskite pašto kodą XXXXX-XXX formatu."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Telefonas turi būti XXX-XXXX-XXXX formatu."
+
+#: contrib/localflavor/br/forms.py:72
+msgid "This field requires only numbers."
+msgstr "Šis laukas priima tik skaičius."
+
+#: contrib/localflavor/br/forms.py:74
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Šis laukas talpina daugiausiai 11 skaitmenų arba 14 simbolių."
+
+#: contrib/localflavor/br/forms.py:84
+msgid "Invalid CPF number."
+msgstr "Netinkamas CPF numeris"
+
+#: contrib/localflavor/br/forms.py:106
+msgid "This field requires at least 14 digits"
+msgstr "Šis laukas reikalauja mažiausiai 14 skaitmenų."
+
+#: contrib/localflavor/br/forms.py:116
+msgid "Invalid CNPJ number."
+msgstr "Netinkamas CNPJ numeris"
+
+#: contrib/localflavor/au/forms.py:18
+msgid "Enter a 4 digit post code."
+msgstr "Įveskite 4 skaitmenų pašto kodą."
+
+#: contrib/localflavor/fr/forms.py:17
+#: contrib/localflavor/de/forms.py:16
+#: contrib/localflavor/fi/forms.py:14
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Įveskite pašto kodą XXXXX formatu."
+
+#: contrib/localflavor/us/forms.py:18
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Įveskite pašto kodą XXXXX arba XXXXX-XXXX formatu."
+
+#: contrib/localflavor/us/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Įveskite tinkamą JAV socialinio draudimo numerį."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Bavarija"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlynas"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburgas"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremenas"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburgas"
+
+#: contrib/localflavor/de/de_states.py:11
+#, fuzzy
+msgid "Hessen"
+msgstr "Hesenas"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Saksonija"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:60
+msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format."
+msgstr "Įveskite tinkamą Vokiško asmens id numerį XXXXXXXXXXX-XXXXXXX-XXXXXXX-X formatu."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr "Hokaidas"
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+#, fuzzy
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr "Tokijas"
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr "Osaka"
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+#, fuzzy
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr "Hirošima"
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+#, fuzzy
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr "Okinava"
+
+#: contrib/localflavor/jp/forms.py:21
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Įveskite pašto kodą XXXXXXX arba XXX-XXXX formatu."
+
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:10
+#, fuzzy
+msgid "Berne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:13
+#, fuzzy
+msgid "Glarus"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+#, fuzzy
+msgid "Lucerne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+#, fuzzy
+msgid "Thurgau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+#, fuzzy
+msgid "Zug"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:18
+#: contrib/localflavor/no/forms.py:15
+msgid "Enter a zip code in the format XXXX."
+msgstr "Įveskite pašto kodą XXXX formatu."
+
+#: contrib/localflavor/ch/forms.py:90
+msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format."
+msgstr "Įveskite tinkamą šveicarų asmens id ar paso numerį X1234567<0 arba 1234567890 formatu."
+
+#: contrib/localflavor/is_/forms.py:16
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Įveskite tinkamą islandų asmens id numerį XXXXXX-XXXX formatu."
+
+#: contrib/localflavor/is_/forms.py:30
+msgid "The Icelandic identification number is not valid."
+msgstr "Islandiškas asmend id yra netinkamas."
+
+#: contrib/localflavor/it/forms.py:16
+msgid "Enter a valid zip code."
+msgstr "Įveskite tinkamą pašto kodą."
+
+#: contrib/localflavor/it/forms.py:41
+msgid "Enter a valid Social Security number."
+msgstr "Įveskite tinkamą socialinio draudimo numerį."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Įveskite tinkamą PVM numerį"
+
+#: contrib/localflavor/no/forms.py:36
+msgid "Enter a valid Norwegian social security number."
+msgstr "Įveskite tinkamą norvegiška socialinio draudimo numerį."
+
+#: contrib/localflavor/cl/forms.py:21
+msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Įveskite tinkamą Čilės RUT XX.XXX.XXX-X formatu."
+
+#: contrib/localflavor/cl/forms.py:26
+msgid "Enter valid a Chilean RUT"
+msgstr "Įveskite tinkamą Čilės RUT"
+
+#: contrib/localflavor/fi/forms.py:40
+#: contrib/localflavor/fi/forms.py:45
+msgid "Enter a valid Finnish social security number."
+msgstr "Įveskite tinkamą suomišką socialinio draudimo numerį."
+
+#: contrib/sessions/models.py:68
+msgid "session key"
+msgstr "sesijos raktas"
+
+#: contrib/sessions/models.py:69
+msgid "session data"
+msgstr "sesijos data"
+
+#: contrib/sessions/models.py:70
+msgid "expire date"
+msgstr "galiojima data"
+
+#: contrib/sessions/models.py:74
+msgid "session"
+msgstr "sesija"
+
+#: contrib/sessions/models.py:75
+msgid "sessions"
+msgstr "sesijos"
+
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Pavyzdžiui: '/about/contact/'. Įsitikink, kad yra pasvirieji brūkšniai pradžioj ir gale."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "pavadinimas"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "turinys"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "įjungti komentavimą"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "šablono vardas"
+
+#: contrib/flatpages/models.py:13
+msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
+msgstr "Pavyzdžiui: 'flatpages/contact_page.html'. Jeigu bus nenurodytas, sistema naudos 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "registracija privaloma"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Jeigu pažymėta, tik prisijungę vartotojai galės matyti šį puslapį."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "paprastas puslapis"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "paprasti puslapiai"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Pirmadienis"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Antradienis"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Trečiadienis"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Ketvirtadienis"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Penktadienis"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Šeštadienis"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Sekmadienis"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "Sausis"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "Vasaris"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "March"
+msgstr "Kovas"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "April"
+msgstr "Balandis"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "May"
+msgstr "Gegužė"
+
+#: utils/dates.py:14
+#: utils/dates.py:27
+msgid "June"
+msgstr "Birželis"
+
+#: utils/dates.py:15
+#: utils/dates.py:27
+msgid "July"
+msgstr "Liepa"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "Rugpjūtis"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "Rugsėjis"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "Spalis"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "Lapkritis"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "Gruodis"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "sau"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "vas"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "kov"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "bal"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "geg"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "bir"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "lie"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "rugp"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "rugs"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "spa"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "lap"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "grd"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "Sau."
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "Vas."
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "Rugp."
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "Rugs."
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "Spa."
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "Lap."
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "Grd."
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "metai"
+msgstr[1] "metai"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mėnesis"
+msgstr[1] "mėnesiai"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "savaitė"
+msgstr[1] "savaitės"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "diena"
+msgstr[1] "dienos"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "valanda"
+msgstr[1] "valandos"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minutė"
+msgstr[1] "minutės"
+
+#: utils/timesince.py:40
+#, python-format
+msgid "%d milliseconds"
+msgstr "%d milisekundės"
+
+#: utils/timesince.py:41
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:47
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/dateformat.py:40
+#, fuzzy
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:41
+#, fuzzy
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:46
+#, fuzzy
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:47
+#, fuzzy
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:95
+msgid "midnight"
+msgstr "vidurnaktis"
+
+#: utils/dateformat.py:97
+msgid "noon"
+msgstr "vidurdienis"
+
+#: utils/translation/trans_real.py:358
+msgid "DATE_FORMAT"
+msgstr "DATE_FORMAT"
+
+#: utils/translation/trans_real.py:359
+msgid "DATETIME_FORMAT"
+msgstr "DATETIME_FORMAT"
+
+#: utils/translation/trans_real.py:360
+msgid "TIME_FORMAT"
+msgstr "TIME_FORMAT"
+
+#: utils/translation/trans_real.py:376
+msgid "YEAR_MONTH_FORMAT"
+msgstr "YEAR_MONTH_FORMAT"
+
+#: utils/translation/trans_real.py:377
+msgid "MONTH_DAY_FORMAT"
+msgstr "MONTH_DAY_FORMAT"
+
+#: template/defaultfilters.py:491
+msgid "yes,no,maybe"
+msgstr "taip,ne,galbūt"
+
+#: template/defaultfilters.py:520
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d baitas"
+msgstr[1] "%(size)d baitai"
+
+#: template/defaultfilters.py:522
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:524
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:525
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
diff --git a/django/conf/locale/lt/LC_MESSAGES/djangojs.mo b/django/conf/locale/lt/LC_MESSAGES/djangojs.mo
new file mode 100644
index 0000000000..d703bfbe60
Binary files /dev/null and b/django/conf/locale/lt/LC_MESSAGES/djangojs.mo differ
diff --git a/django/conf/locale/lt/LC_MESSAGES/djangojs.po b/django/conf/locale/lt/LC_MESSAGES/djangojs.po
new file mode 100644
index 0000000000..81d69882c4
--- /dev/null
+++ b/django/conf/locale/lt/LC_MESSAGES/djangojs.po
@@ -0,0 +1,116 @@
+# Lithuanian translation of Django.
+# Copyright (C) 2008 The Django Software Foundation
+# This file is distributed under the same license as the Django package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-06-15 23:03+0300\n"
+"PO-Revision-Date: 2008-06-18 22:37+0200\n"
+"Last-Translator: Rapolas Kaselis \n"
+"Language-Team: Django-i18n \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: contrib/admin/media/js/SelectFilter2.js:33
+#, perl-format
+msgid "Available %s"
+msgstr "Galimas %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:41
+msgid "Choose all"
+msgstr "Pasirinkti visus"
+
+#: contrib/admin/media/js/SelectFilter2.js:46
+msgid "Add"
+msgstr "Pridėti"
+
+#: contrib/admin/media/js/SelectFilter2.js:48
+msgid "Remove"
+msgstr "Pašalinti"
+
+#: contrib/admin/media/js/SelectFilter2.js:53
+#, perl-format
+msgid "Chosen %s"
+msgstr "Pasirinktas %s"
+
+#: contrib/admin/media/js/SelectFilter2.js:54
+msgid "Select your choice(s) and click "
+msgstr "Pasirink ir paspausk"
+
+#: contrib/admin/media/js/SelectFilter2.js:59
+msgid "Clear all"
+msgstr "Išvalyti visus"
+
+#: contrib/admin/media/js/dateparse.js:32
+#: contrib/admin/media/js/calendar.js:24
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr "Sausis Vasaris Kovas Balandis Gegužė Birželis Liepa Rugpjūtis Rugsėjis "
+"Spalis Lapkritis Gruodis"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Sekmadienis Pirmadienis Antradienis Trečiadienis Ketvirtadienis Penktadienis Šeštadienis"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "S P A T K P Š"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+msgid "Now"
+msgstr "Dabar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
+msgid "Clock"
+msgstr "Laikrodis"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
+msgid "Choose a time"
+msgstr "Pasirink laiką"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+msgid "Midnight"
+msgstr "Vidurnaktis"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+msgid "6 a.m."
+msgstr "6 a.m."
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
+msgid "Noon"
+msgstr "Vidurdienis"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
+msgid "Cancel"
+msgstr "Atšaukti"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
+msgid "Today"
+msgstr "Šiandien"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
+msgid "Calendar"
+msgstr "Kalendorius"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
+msgid "Yesterday"
+msgstr "Vakar"
+
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
+msgid "Tomorrow"
+msgstr "Rytoj"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Parodyti"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Slėpti"
diff --git a/django/conf/locale/pl/LC_MESSAGES/django.mo b/django/conf/locale/pl/LC_MESSAGES/django.mo
index b82290dd04..5cdabb1d11 100644
Binary files a/django/conf/locale/pl/LC_MESSAGES/django.mo and b/django/conf/locale/pl/LC_MESSAGES/django.mo differ
diff --git a/django/conf/locale/pl/LC_MESSAGES/django.po b/django/conf/locale/pl/LC_MESSAGES/django.po
index d084d90688..6f73bb45d0 100644
--- a/django/conf/locale/pl/LC_MESSAGES/django.po
+++ b/django/conf/locale/pl/LC_MESSAGES/django.po
@@ -5,9 +5,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-04-14 18:02+0200\n"
+"POT-Creation-Date: 2008-06-24 07:36+0200\n"
"PO-Revision-Date: 2008-02-25 15:53+0100\n"
-"Last-Translator: Piotr Lewandowski \n"
+"Last-Translator: Jarek Zgoda \n"
"Language-Team: Polish \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -16,191 +16,199 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%"
"100<10 || n%100>=20) ? 1 : 2);\n"
-#: conf/global_settings.py:39
+#: conf/global_settings.py:44
msgid "Arabic"
msgstr "Arabski"
-#: conf/global_settings.py:40
+#: conf/global_settings.py:45
msgid "Bengali"
msgstr "Bengalski"
-#: conf/global_settings.py:41
+#: conf/global_settings.py:46
msgid "Bulgarian"
msgstr "Bułgarski"
-#: conf/global_settings.py:42
+#: conf/global_settings.py:47
msgid "Catalan"
msgstr "Kataloński"
-#: conf/global_settings.py:43
+#: conf/global_settings.py:48
msgid "Czech"
msgstr "Czeski"
-#: conf/global_settings.py:44
+#: conf/global_settings.py:49
msgid "Welsh"
msgstr "Walijski"
-#: conf/global_settings.py:45
+#: conf/global_settings.py:50
msgid "Danish"
msgstr "Duński"
-#: conf/global_settings.py:46
+#: conf/global_settings.py:51
msgid "German"
msgstr "Niemiecki"
-#: conf/global_settings.py:47
+#: conf/global_settings.py:52
msgid "Greek"
msgstr "Grecki"
-#: conf/global_settings.py:48
+#: conf/global_settings.py:53
msgid "English"
msgstr "Angielski"
-#: conf/global_settings.py:49
+#: conf/global_settings.py:54
msgid "Spanish"
msgstr "Hiszpański"
-#: conf/global_settings.py:50
+#: conf/global_settings.py:55
+msgid "Estonian"
+msgstr "Estoński"
+
+#: conf/global_settings.py:56
msgid "Argentinean Spanish"
msgstr "Hiszpański argentyński"
-#: conf/global_settings.py:51
+#: conf/global_settings.py:57
msgid "Basque"
msgstr "Baskijski"
-#: conf/global_settings.py:52
+#: conf/global_settings.py:58
msgid "Persian"
msgstr "Perski"
-#: conf/global_settings.py:53
+#: conf/global_settings.py:59
msgid "Finnish"
msgstr "Fiński"
-#: conf/global_settings.py:54
+#: conf/global_settings.py:60
msgid "French"
msgstr "Francuski"
-#: conf/global_settings.py:55
+#: conf/global_settings.py:61
msgid "Irish"
msgstr "Irlandzki"
-#: conf/global_settings.py:56
+#: conf/global_settings.py:62
msgid "Galician"
msgstr "Galicyjski"
-#: conf/global_settings.py:57
+#: conf/global_settings.py:63
msgid "Hungarian"
msgstr "Węgierski"
-#: conf/global_settings.py:58
+#: conf/global_settings.py:64
msgid "Hebrew"
msgstr "Hebrajski"
-#: conf/global_settings.py:59
+#: conf/global_settings.py:65
msgid "Croatian"
msgstr "Chorwacki"
-#: conf/global_settings.py:60
+#: conf/global_settings.py:66
msgid "Icelandic"
msgstr "Islandzki"
-#: conf/global_settings.py:61
+#: conf/global_settings.py:67
msgid "Italian"
msgstr "Włoski"
-#: conf/global_settings.py:62
+#: conf/global_settings.py:68
msgid "Japanese"
msgstr "Japoński"
-#: conf/global_settings.py:63
+#: conf/global_settings.py:69
msgid "Georgian"
msgstr "Gruziński"
-#: conf/global_settings.py:64
+#: conf/global_settings.py:70
msgid "Korean"
msgstr "Koreański"
-#: conf/global_settings.py:65
+#: conf/global_settings.py:71
msgid "Khmer"
msgstr "Khmerski"
-#: conf/global_settings.py:66
+#: conf/global_settings.py:72
msgid "Kannada"
msgstr "Kannada"
-#: conf/global_settings.py:67
+#: conf/global_settings.py:73
msgid "Latvian"
msgstr "Łotewski"
-#: conf/global_settings.py:68
+#: conf/global_settings.py:74
+msgid "Lithuanian"
+msgstr "Litewski"
+
+#: conf/global_settings.py:75
msgid "Macedonian"
msgstr "Macedoński"
-#: conf/global_settings.py:69
+#: conf/global_settings.py:76
msgid "Dutch"
msgstr "Holenderski"
-#: conf/global_settings.py:70
+#: conf/global_settings.py:77
msgid "Norwegian"
msgstr "Norweski"
-#: conf/global_settings.py:71
+#: conf/global_settings.py:78
msgid "Polish"
msgstr "Polski"
-#: conf/global_settings.py:72
+#: conf/global_settings.py:79
msgid "Portugese"
msgstr "Portugalski"
-#: conf/global_settings.py:73
+#: conf/global_settings.py:80
msgid "Brazilian Portuguese"
msgstr "Brazylijski portugalski"
-#: conf/global_settings.py:74
+#: conf/global_settings.py:81
msgid "Romanian"
msgstr "Rumuński"
-#: conf/global_settings.py:75
+#: conf/global_settings.py:82
msgid "Russian"
msgstr "Rosyjski"
-#: conf/global_settings.py:76
+#: conf/global_settings.py:83
msgid "Slovak"
msgstr "Słowacki"
-#: conf/global_settings.py:77
+#: conf/global_settings.py:84
msgid "Slovenian"
msgstr "Słoweński"
-#: conf/global_settings.py:78
+#: conf/global_settings.py:85
msgid "Serbian"
msgstr "Serbski"
-#: conf/global_settings.py:79
+#: conf/global_settings.py:86
msgid "Swedish"
msgstr "Szwedzki"
-#: conf/global_settings.py:80
+#: conf/global_settings.py:87
msgid "Tamil"
msgstr "Tamilski"
-#: conf/global_settings.py:81
+#: conf/global_settings.py:88
msgid "Telugu"
msgstr "Telugu"
-#: conf/global_settings.py:82
+#: conf/global_settings.py:89
msgid "Turkish"
msgstr "Turecki"
-#: conf/global_settings.py:83
+#: conf/global_settings.py:90
msgid "Ukrainian"
msgstr "Ukraiński"
-#: conf/global_settings.py:84
+#: conf/global_settings.py:91
msgid "Simplified Chinese"
msgstr "Uproszczony chiński"
-#: conf/global_settings.py:85
+#: conf/global_settings.py:92
msgid "Traditional Chinese"
msgstr "Chiński tradycyjny"
@@ -417,7 +425,7 @@ msgstr ""
#: contrib/admin/templates/admin/delete_confirmation.html:25
msgid "Yes, I'm sure"
-msgstr "Tak, usuń"
+msgstr "Tak, na pewno"
#: contrib/admin/templates/admin/filter.html:2
#, python-format
@@ -824,15 +832,15 @@ msgstr ""
"Twoja przeglądarka nie chce akceptować ciasteczek. Zmień jej ustawienia i "
"spróbuj ponownie."
-#: contrib/admin/views/decorators.py:90
-msgid "Usernames cannot contain the '@' character."
-msgstr "Nazwy użytkowników nie mogą zawierać znaków '@'."
-
-#: contrib/admin/views/decorators.py:92
+#: contrib/admin/views/decorators.py:89
#, python-format
msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr "Twój adres e-mail to nie jest twój login. Spróbuj '%s'."
+#: contrib/admin/views/decorators.py:93
+msgid "Usernames cannot contain the '@' character."
+msgstr "Nazwy użytkowników nie mogą zawierać znaków '@'."
+
#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50
#: contrib/admin/views/doc.py:52
msgid "tag:"
@@ -1063,7 +1071,7 @@ msgstr "Zaznacz %s"
msgid "Select %s to change"
msgstr "Zaznacz %s aby zmienić"
-#: contrib/admin/views/main.py:784
+#: contrib/admin/views/main.py:765
msgid "Database error"
msgstr "Błąd bazy danych"
@@ -1128,15 +1136,15 @@ msgstr "uprawnienia"
msgid "group"
msgstr "grupa"
-#: contrib/auth/models.py:98 contrib/auth/models.py:141
+#: contrib/auth/models.py:98 contrib/auth/models.py:148
msgid "groups"
msgstr "grupy"
-#: contrib/auth/models.py:131
+#: contrib/auth/models.py:138
msgid "username"
msgstr "użytkownik"
-#: contrib/auth/models.py:131
+#: contrib/auth/models.py:138
msgid ""
"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
"digits and underscores)."
@@ -1144,23 +1152,23 @@ msgstr ""
"Wymagane. 30 znaków lub mniej. Tylko znaki alfanumeryczne (litery, cyfry i "
"podkreślenia)."
-#: contrib/auth/models.py:132
+#: contrib/auth/models.py:139
msgid "first name"
msgstr "Imię"
-#: contrib/auth/models.py:133
+#: contrib/auth/models.py:140
msgid "last name"
msgstr "Nazwisko"
-#: contrib/auth/models.py:134
+#: contrib/auth/models.py:141
msgid "e-mail address"
msgstr "adres e-mail"
-#: contrib/auth/models.py:135
+#: contrib/auth/models.py:142
msgid "password"
msgstr "hasło"
-#: contrib/auth/models.py:135
+#: contrib/auth/models.py:142
msgid ""
"Use '[algo]$[salt]$[hexdigest]' or use the change "
"password form."
@@ -1168,19 +1176,19 @@ msgstr ""
"Użyj '[algo]$[salt]$[hexdigest]' lub formularza zmiany "
"hasła."
-#: contrib/auth/models.py:136
+#: contrib/auth/models.py:143
msgid "staff status"
msgstr "w zespole"
-#: contrib/auth/models.py:136
+#: contrib/auth/models.py:143
msgid "Designates whether the user can log into this admin site."
msgstr "Oznacza czy użytkownik może zalogować się do panelu admina."
-#: contrib/auth/models.py:137
+#: contrib/auth/models.py:144
msgid "active"
msgstr "aktywny"
-#: contrib/auth/models.py:137
+#: contrib/auth/models.py:144
msgid ""
"Designates whether this user should be treated as active. Unselect this "
"instead of deleting accounts."
@@ -1188,11 +1196,11 @@ msgstr ""
"Oznacza czy użytkownika należy uważać za aktywnego. Odznacz tozamiast usuwać "
"konta."
-#: contrib/auth/models.py:138
+#: contrib/auth/models.py:145
msgid "superuser status"
msgstr "Główny Administrator"
-#: contrib/auth/models.py:138
+#: contrib/auth/models.py:145
msgid ""
"Designates that this user has all permissions without explicitly assigning "
"them."
@@ -1200,15 +1208,15 @@ msgstr ""
"Oznacza, że ten użytkownik ma wszystkie uprawnienia bez jawnego "
"przypisywania ich."
-#: contrib/auth/models.py:139
+#: contrib/auth/models.py:146
msgid "last login"
msgstr "ostatnio zalogowany"
-#: contrib/auth/models.py:140
+#: contrib/auth/models.py:147
msgid "date joined"
msgstr "data przyłączenia"
-#: contrib/auth/models.py:142
+#: contrib/auth/models.py:149
msgid ""
"In addition to the permissions manually assigned, this user will also get "
"all permissions granted to each group he/she is in."
@@ -1216,39 +1224,39 @@ msgstr ""
"Oprócz uprawnień przypisanych bezpośrednio użytkownikowi otrzyma on "
"uprawnienia grup, do których należy."
-#: contrib/auth/models.py:143
+#: contrib/auth/models.py:150
msgid "user permissions"
msgstr "uprawnienia użytkownika"
-#: contrib/auth/models.py:147
+#: contrib/auth/models.py:154
msgid "user"
msgstr "użytkownik"
-#: contrib/auth/models.py:148
+#: contrib/auth/models.py:155
msgid "users"
msgstr "użytkownicy"
-#: contrib/auth/models.py:154
+#: contrib/auth/models.py:161
msgid "Personal info"
msgstr "Dane osobowe"
-#: contrib/auth/models.py:155
+#: contrib/auth/models.py:162
msgid "Permissions"
msgstr "Uprawnienia"
-#: contrib/auth/models.py:156
+#: contrib/auth/models.py:163
msgid "Important dates"
msgstr "Ważne daty"
-#: contrib/auth/models.py:157
+#: contrib/auth/models.py:164
msgid "Groups"
msgstr "Grupy"
-#: contrib/auth/models.py:316
+#: contrib/auth/models.py:323
msgid "message"
msgstr "wiadomość"
-#: contrib/auth/views.py:47
+#: contrib/auth/views.py:48
msgid "Logged out"
msgstr "Wylogowany"
@@ -3516,23 +3524,23 @@ msgstr "przekieruj"
msgid "redirects"
msgstr "przekierowania"
-#: contrib/sessions/models.py:41
+#: contrib/sessions/models.py:45
msgid "session key"
msgstr "klucz sesji"
-#: contrib/sessions/models.py:42
+#: contrib/sessions/models.py:47
msgid "session data"
msgstr "data sesji"
-#: contrib/sessions/models.py:43
+#: contrib/sessions/models.py:48
msgid "expire date"
msgstr "data wygaśnięcia sesji"
-#: contrib/sessions/models.py:48
+#: contrib/sessions/models.py:53
msgid "session"
msgstr "sesja"
-#: contrib/sessions/models.py:49
+#: contrib/sessions/models.py:54
msgid "sessions"
msgstr "sesje"
@@ -3617,7 +3625,7 @@ msgstr "Rok nie może być wcześniejszy niż 1900."
msgid "Invalid date: %s"
msgstr "Niepoprawna data: %s"
-#: core/validators.py:156 db/models/fields/__init__.py:527
+#: core/validators.py:156 db/models/fields/__init__.py:548
msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "Proszę wpisać poprawną datę w formacie RRRR-MM-DD."
@@ -3625,7 +3633,7 @@ msgstr "Proszę wpisać poprawną datę w formacie RRRR-MM-DD."
msgid "Enter a valid time in HH:MM format."
msgstr "Proszę wpisać poprawną godzinę w formacie HH:MM."
-#: core/validators.py:165 db/models/fields/__init__.py:604
+#: core/validators.py:165 db/models/fields/__init__.py:625
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr "Wprowadź poprawną datę i godzinę w formacie RRRR-MM-DD GG:MM."
@@ -3888,60 +3896,60 @@ msgstr ""
msgid "%(object)s with this %(type)s already exists for the given %(field)s."
msgstr "%(object)s z %(type)s już istnieje dla %(field)s."
-#: db/models/fields/__init__.py:52
+#: db/models/fields/__init__.py:51
#, python-format
msgid "%(optname)s with this %(fieldname)s already exists."
msgstr "Już istnieje %(optname)s z %(fieldname)s."
-#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:327
-#: db/models/fields/__init__.py:759 db/models/fields/__init__.py:770
+#: db/models/fields/__init__.py:176 db/models/fields/__init__.py:348
+#: db/models/fields/__init__.py:780 db/models/fields/__init__.py:791
#: newforms/fields.py:46 oldforms/__init__.py:374
msgid "This field is required."
msgstr "To pole jest wymagane."
-#: db/models/fields/__init__.py:427
+#: db/models/fields/__init__.py:448
msgid "This value must be an integer."
msgstr "Ta wartość musi być liczbą całkowitą."
-#: db/models/fields/__init__.py:466
+#: db/models/fields/__init__.py:487
msgid "This value must be either True or False."
msgstr ""
"Ta wartość musi być wartością logiczną (True, False - prawda lub fałsz)."
-#: db/models/fields/__init__.py:490
+#: db/models/fields/__init__.py:511
msgid "This field cannot be null."
msgstr "To pole nie może być puste."
-#: db/models/fields/__init__.py:668
+#: db/models/fields/__init__.py:689
msgid "This value must be a decimal number."
msgstr "Ta wartość musi być liczbą dziesiętną."
-#: db/models/fields/__init__.py:779
+#: db/models/fields/__init__.py:800
msgid "Enter a valid filename."
msgstr "Wpisz poprawną nazwę pliku."
-#: db/models/fields/__init__.py:960
+#: db/models/fields/__init__.py:981
msgid "This value must be either None, True or False."
msgstr ""
"Ta wartość musi być jedną z None (nic), True (prawda) lub False (fałsz)."
-#: db/models/fields/related.py:93
+#: db/models/fields/related.py:94
#, python-format
msgid "Please enter a valid %s."
msgstr "Proszę wpisać poprawne %s."
-#: db/models/fields/related.py:701
+#: db/models/fields/related.py:746
msgid "Separate multiple IDs with commas."
msgstr "Oddziel identyfikatory przecinkami."
-#: db/models/fields/related.py:703
+#: db/models/fields/related.py:748
msgid ""
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
msgstr ""
"Przytrzymaj wciśnięty klawisz \"Ctrl\" lub \"Command\" na Mac'u aby "
"zaznaczyć więcej niż jeden wybór."
-#: db/models/fields/related.py:750
+#: db/models/fields/related.py:795
#, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
msgid_plural ""
@@ -4003,11 +4011,11 @@ msgstr "Upewnij się, że jest nie więcej niż %s miejsc po przecinku."
msgid "Ensure that there are no more than %s digits before the decimal point."
msgstr "Upewnij się, że jest nie więcej niż %s miejsc przed przecinkiem."
-#: newforms/fields.py:263 newforms/fields.py:751
+#: newforms/fields.py:263 newforms/fields.py:750
msgid "Enter a valid date."
msgstr "Wpisz poprawną datę."
-#: newforms/fields.py:296 newforms/fields.py:752
+#: newforms/fields.py:296 newforms/fields.py:751
msgid "Enter a valid time."
msgstr "Wpisz poprawną godzinę."
@@ -4031,25 +4039,25 @@ msgstr "Wpisz poprawny URL."
msgid "This URL appears to be a broken link."
msgstr "Ten odnośnik jest nieprawidłowy."
-#: newforms/fields.py:560 newforms/models.py:299
+#: newforms/fields.py:559 newforms/models.py:305
msgid "Select a valid choice. That choice is not one of the available choices."
msgstr "Wybierz poprawną wartość. Podana nie jest jednym z dostępnych wyborów."
-#: newforms/fields.py:599
+#: newforms/fields.py:598
#, python-format
msgid "Select a valid choice. %(value)s is not one of the available choices."
msgstr ""
"Wybierz poprawną wartość. %(value)s nie jest jednym z dostępnych wyborów."
-#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:371
+#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:372
msgid "Enter a list of values."
msgstr "Podaj listę wartości."
-#: newforms/fields.py:780
+#: newforms/fields.py:779
msgid "Enter a valid IPv4 address."
msgstr "Wprowadź poprawny adres IPv4."
-#: newforms/models.py:372
+#: newforms/models.py:373
#, python-format
msgid "Select a valid choice. %s is not one of the available choices."
msgstr "Wybierz poprawną wartość. %s nie jest jednym z dostępnych wyborów."
diff --git a/django/contrib/auth/views.py b/django/contrib/auth/views.py
index d3d8b4ccb7..524710327a 100644
--- a/django/contrib/auth/views.py
+++ b/django/contrib/auth/views.py
@@ -1,17 +1,18 @@
+from django import oldforms
+from django.contrib.auth import REDIRECT_FIELD_NAME
+from django.contrib.auth.decorators import login_required
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth.forms import PasswordResetForm, PasswordChangeForm
-from django import oldforms
-from django.shortcuts import render_to_response
-from django.template import RequestContext
from django.contrib.sites.models import Site, RequestSite
from django.http import HttpResponseRedirect
-from django.contrib.auth.decorators import login_required
-from django.contrib.auth import REDIRECT_FIELD_NAME
+from django.shortcuts import render_to_response
+from django.template import RequestContext
+from django.utils.http import urlquote
from django.utils.translation import ugettext as _
def login(request, template_name='registration/login.html', redirect_field_name=REDIRECT_FIELD_NAME):
"Displays the login form and handles the login action."
- manipulator = AuthenticationForm(request)
+ manipulator = AuthenticationForm()
redirect_to = request.REQUEST.get(redirect_field_name, '')
if request.POST:
errors = manipulator.get_validation_errors(request.POST)
@@ -22,7 +23,8 @@ def login(request, template_name='registration/login.html', redirect_field_name=
redirect_to = settings.LOGIN_REDIRECT_URL
from django.contrib.auth import login
login(request, manipulator.get_user())
- request.session.delete_test_cookie()
+ if request.session.test_cookie_worked():
+ request.session.delete_test_cookie()
return HttpResponseRedirect(redirect_to)
else:
errors = {}
@@ -61,7 +63,7 @@ def redirect_to_login(next, login_url=None, redirect_field_name=REDIRECT_FIELD_N
if not login_url:
from django.conf import settings
login_url = settings.LOGIN_URL
- return HttpResponseRedirect('%s?%s=%s' % (login_url, redirect_field_name, next))
+ return HttpResponseRedirect('%s?%s=%s' % (login_url, urlquote(redirect_field_name), urlquote(next)))
def password_reset(request, is_admin_site=False, template_name='registration/password_reset_form.html',
email_template_name='registration/password_reset_email.html'):
@@ -74,7 +76,10 @@ def password_reset(request, is_admin_site=False, template_name='registration/pas
if is_admin_site:
form.save(domain_override=request.META['HTTP_HOST'])
else:
- form.save(email_template_name=email_template_name)
+ if Site._meta.installed:
+ form.save(email_template_name=email_template_name)
+ else:
+ form.save(domain_override=RequestSite(request).domain, email_template_name=email_template_name)
return HttpResponseRedirect('%sdone/' % request.path)
return render_to_response(template_name, {'form': oldforms.FormWrapper(form, new_data, errors)},
context_instance=RequestContext(request))
diff --git a/django/contrib/flatpages/models.py b/django/contrib/flatpages/models.py
index 190ffbd8b3..ddd5678379 100644
--- a/django/contrib/flatpages/models.py
+++ b/django/contrib/flatpages/models.py
@@ -26,7 +26,8 @@ class FlatPage(models.Model):
(None, {'fields': ('url', 'title', 'content', 'sites')}),
(_('Advanced options'), {'classes': 'collapse', 'fields': ('enable_comments', 'registration_required', 'template_name')}),
)
- list_filter = ('sites',)
+ list_display = ('url', 'title')
+ list_filter = ('sites', 'enable_comments', 'registration_required')
search_fields = ('url', 'title')
def __unicode__(self):
diff --git a/django/contrib/formtools/tests.py b/django/contrib/formtools/tests.py
index feda6e041e..143857ad58 100644
--- a/django/contrib/formtools/tests.py
+++ b/django/contrib/formtools/tests.py
@@ -23,12 +23,16 @@ class TestForm(forms.Form):
class PreviewTests(TestCase):
def setUp(self):
+ self._old_root_urlconf = settings.ROOT_URLCONF
settings.ROOT_URLCONF = 'django.contrib.formtools.test_urls'
# Create a FormPreview instance to share between tests
self.preview = preview.FormPreview(TestForm)
input_template = ''
self.input = input_template % (self.preview.unused_name('stage'), "%d")
+ def tearDown(self):
+ settings.ROOT_URLCONF = self._old_root_urlconf
+
def test_unused_name(self):
"""
Verifies name mangling to get uniue field name.
diff --git a/django/contrib/formtools/wizard.py b/django/contrib/formtools/wizard.py
index a197c3e659..398de742ec 100644
--- a/django/contrib/formtools/wizard.py
+++ b/django/contrib/formtools/wizard.py
@@ -149,7 +149,7 @@ class FormWizard(object):
data = [(bf.name, bf.data or '') for bf in form] + [settings.SECRET_KEY]
# Use HIGHEST_PROTOCOL because it's the most efficient. It requires
# Python 2.3, but Django requires 2.3 anyway, so that's OK.
- pickled = pickle.dumps(data, protocol=pickle.HIGHEST_PROTOCOL)
+ pickled = pickle.dumps(data, pickle.HIGHEST_PROTOCOL)
return md5.new(pickled).hexdigest()
def determine_step(self, request, *args, **kwargs):
diff --git a/django/contrib/localflavor/ar/forms.py b/django/contrib/localflavor/ar/forms.py
index b23923b47a..464399188f 100644
--- a/django/contrib/localflavor/ar/forms.py
+++ b/django/contrib/localflavor/ar/forms.py
@@ -6,7 +6,7 @@ AR-specific Form helpers.
from django.newforms import ValidationError
from django.newforms.fields import RegexField, CharField, Select, EMPTY_VALUES
from django.utils.encoding import smart_unicode
-from django.utils.translation import ugettext
+from django.utils.translation import ugettext_lazy as _
class ARProvinceSelect(Select):
"""
@@ -24,7 +24,7 @@ class ARPostalCodeField(RegexField):
See http://www.correoargentino.com.ar/consulta_cpa/home.php
"""
default_error_messages = {
- 'invalid': ugettext("Enter a postal code in the format NNNN or ANNNNAAA."),
+ 'invalid': _("Enter a postal code in the format NNNN or ANNNNAAA."),
}
def __init__(self, *args, **kwargs):
@@ -46,8 +46,8 @@ class ARDNIField(CharField):
A field that validates 'Documento Nacional de Identidad' (DNI) numbers.
"""
default_error_messages = {
- 'invalid': ugettext("This field requires only numbers."),
- 'max_digits': ugettext("This field requires 7 or 8 digits."),
+ 'invalid': _("This field requires only numbers."),
+ 'max_digits': _("This field requires 7 or 8 digits."),
}
def __init__(self, *args, **kwargs):
@@ -76,8 +76,8 @@ class ARCUITField(RegexField):
CUIT is of the form XX-XXXXXXXX-V. The last digit is a check digit.
"""
default_error_messages = {
- 'invalid': ugettext('Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format.'),
- 'checksum': ugettext("Invalid CUIT."),
+ 'invalid': _('Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format.'),
+ 'checksum': _("Invalid CUIT."),
}
def __init__(self, *args, **kwargs):
diff --git a/django/contrib/localflavor/au/forms.py b/django/contrib/localflavor/au/forms.py
index ada27b69b9..41d4e04fec 100644
--- a/django/contrib/localflavor/au/forms.py
+++ b/django/contrib/localflavor/au/forms.py
@@ -5,7 +5,7 @@ Australian-specific Form helpers
from django.newforms import ValidationError
from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES
from django.newforms.util import smart_unicode
-from django.utils.translation import ugettext
+from django.utils.translation import ugettext_lazy as _
import re
PHONE_DIGITS_RE = re.compile(r'^(\d{10})$')
@@ -13,7 +13,7 @@ PHONE_DIGITS_RE = re.compile(r'^(\d{10})$')
class AUPostCodeField(RegexField):
"""Australian post code field."""
default_error_messages = {
- 'invalid': ugettext('Enter a 4 digit post code.'),
+ 'invalid': _('Enter a 4 digit post code.'),
}
def __init__(self, *args, **kwargs):
diff --git a/django/contrib/localflavor/br/forms.py b/django/contrib/localflavor/br/forms.py
index aa7e3b23fd..81dcb8228b 100644
--- a/django/contrib/localflavor/br/forms.py
+++ b/django/contrib/localflavor/br/forms.py
@@ -6,7 +6,7 @@ BR-specific Form helpers
from django.newforms import ValidationError
from django.newforms.fields import Field, RegexField, CharField, Select, EMPTY_VALUES
from django.utils.encoding import smart_unicode
-from django.utils.translation import ugettext as _
+from django.utils.translation import ugettext_lazy as _
import re
try:
diff --git a/django/contrib/localflavor/ca/forms.py b/django/contrib/localflavor/ca/forms.py
index b40dba8335..548f85b7f6 100644
--- a/django/contrib/localflavor/ca/forms.py
+++ b/django/contrib/localflavor/ca/forms.py
@@ -5,7 +5,7 @@ Canada-specific Form helpers
from django.newforms import ValidationError
from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES
from django.newforms.util import smart_unicode
-from django.utils.translation import gettext, ugettext
+from django.utils.translation import ugettext_lazy as _
import re
phone_digits_re = re.compile(r'^(?:1-?)?(\d{3})[-\.]?(\d{3})[-\.]?(\d{4})$')
@@ -14,7 +14,7 @@ sin_re = re.compile(r"^(\d{3})-(\d{3})-(\d{3})$")
class CAPostalCodeField(RegexField):
"""Canadian postal code field."""
default_error_messages = {
- 'invalid': gettext(u'Enter a postal code in the format XXX XXX.'),
+ 'invalid': _(u'Enter a postal code in the format XXX XXX.'),
}
def __init__(self, *args, **kwargs):
@@ -85,7 +85,7 @@ class CASocialInsuranceNumberField(Field):
See: http://en.wikipedia.org/wiki/Social_Insurance_Number
"""
default_error_messages = {
- 'invalid': ugettext('Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format.'),
+ 'invalid': _('Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format.'),
}
def clean(self, value):
diff --git a/django/contrib/localflavor/ch/forms.py b/django/contrib/localflavor/ch/forms.py
index 2158fba697..e2d3aea944 100644
--- a/django/contrib/localflavor/ch/forms.py
+++ b/django/contrib/localflavor/ch/forms.py
@@ -5,7 +5,7 @@ Swiss-specific Form helpers
from django.newforms import ValidationError
from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES
from django.utils.encoding import smart_unicode
-from django.utils.translation import ugettext
+from django.utils.translation import ugettext_lazy as _
import re
id_re = re.compile(r"^(?P\w{8})(?P(\d{1}|<))(?P\d{1})$")
@@ -13,7 +13,7 @@ phone_digits_re = re.compile(r'^0([1-9]{1})\d{8}$')
class CHZipCodeField(RegexField):
default_error_messages = {
- 'invalid': ugettext('Enter a zip code in the format XXXX.'),
+ 'invalid': _('Enter a zip code in the format XXXX.'),
}
def __init__(self, *args, **kwargs):
@@ -61,7 +61,7 @@ class CHIdentityCardNumberField(Field):
Algorithm is documented at http://adi.kousz.ch/artikel/IDCHE.htm
"""
default_error_messages = {
- 'invalid': ugettext('Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format.'),
+ 'invalid': _('Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format.'),
}
def has_valid_checksum(self, number):
diff --git a/django/contrib/localflavor/cl/forms.py b/django/contrib/localflavor/cl/forms.py
index 2f5ac29b39..69473607a6 100644
--- a/django/contrib/localflavor/cl/forms.py
+++ b/django/contrib/localflavor/cl/forms.py
@@ -4,7 +4,7 @@ Chile specific form helpers.
from django.newforms import ValidationError
from django.newforms.fields import RegexField, Select, EMPTY_VALUES
-from django.utils.translation import ugettext
+from django.utils.translation import ugettext_lazy as _
from django.utils.encoding import smart_unicode
@@ -26,9 +26,9 @@ class CLRutField(RegexField):
https://palena.sii.cl/cvc/dte/ee_empresas_emisoras.html
"""
default_error_messages = {
- 'invalid': ugettext('Enter a valid Chilean RUT.'),
- 'strict': ugettext('Enter a valid Chilean RUT. The format is XX.XXX.XXX-X.'),
- 'checksum': ugettext('The Chilean RUT is not valid.'),
+ 'invalid': _('Enter a valid Chilean RUT.'),
+ 'strict': _('Enter a valid Chilean RUT. The format is XX.XXX.XXX-X.'),
+ 'checksum': _('The Chilean RUT is not valid.'),
}
def __init__(self, *args, **kwargs):
diff --git a/django/contrib/localflavor/de/forms.py b/django/contrib/localflavor/de/forms.py
index 76ce215dca..c5402fa260 100644
--- a/django/contrib/localflavor/de/forms.py
+++ b/django/contrib/localflavor/de/forms.py
@@ -4,14 +4,14 @@ DE-specific Form helpers
from django.newforms import ValidationError
from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES
-from django.utils.translation import ugettext
+from django.utils.translation import ugettext_lazy as _
import re
id_re = re.compile(r"^(?P\d{10})(?P\w{1,3})[-\ ]?(?P\d{7})[-\ ]?(?P\d{7})[-\ ]?(?P\d{1})$")
class DEZipCodeField(RegexField):
default_error_messages = {
- 'invalid': ugettext('Enter a zip code in the format XXXXX.'),
+ 'invalid': _('Enter a zip code in the format XXXXX.'),
}
def __init__(self, *args, **kwargs):
super(DEZipCodeField, self).__init__(r'^\d{5}$',
@@ -38,7 +38,7 @@ class DEIdentityCardNumberField(Field):
Algorithm is documented at http://de.wikipedia.org/wiki/Personalausweis
"""
default_error_messages = {
- 'invalid': ugettext('Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format.'),
+ 'invalid': _('Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format.'),
}
def has_valid_checksum(self, number):
diff --git a/django/contrib/localflavor/es/forms.py b/django/contrib/localflavor/es/forms.py
index 81186f8b3d..57e730b2cf 100644
--- a/django/contrib/localflavor/es/forms.py
+++ b/django/contrib/localflavor/es/forms.py
@@ -5,7 +5,7 @@ Spanish-specific Form helpers
from django.newforms import ValidationError
from django.newforms.fields import RegexField, Select, EMPTY_VALUES
-from django.utils.translation import ugettext as _
+from django.utils.translation import ugettext_lazy as _
import re
class ESPostalCodeField(RegexField):
diff --git a/django/contrib/localflavor/fi/forms.py b/django/contrib/localflavor/fi/forms.py
index a0274da44c..e9e0fc1e93 100644
--- a/django/contrib/localflavor/fi/forms.py
+++ b/django/contrib/localflavor/fi/forms.py
@@ -5,11 +5,11 @@ FI-specific Form helpers
import re
from django.newforms import ValidationError
from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES
-from django.utils.translation import ugettext
+from django.utils.translation import ugettext_lazy as _
class FIZipCodeField(RegexField):
default_error_messages = {
- 'invalid': ugettext('Enter a zip code in the format XXXXX.'),
+ 'invalid': _('Enter a zip code in the format XXXXX.'),
}
def __init__(self, *args, **kwargs):
super(FIZipCodeField, self).__init__(r'^\d{5}$',
@@ -25,7 +25,7 @@ class FIMunicipalitySelect(Select):
class FISocialSecurityNumber(Field):
default_error_messages = {
- 'invalid': ugettext('Enter a valid Finnish social security number.'),
+ 'invalid': _('Enter a valid Finnish social security number.'),
}
def clean(self, value):
diff --git a/django/contrib/localflavor/fr/forms.py b/django/contrib/localflavor/fr/forms.py
index 635b62edd5..960e8b221c 100644
--- a/django/contrib/localflavor/fr/forms.py
+++ b/django/contrib/localflavor/fr/forms.py
@@ -5,14 +5,14 @@ FR-specific Form helpers
from django.newforms import ValidationError
from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES
from django.utils.encoding import smart_unicode
-from django.utils.translation import ugettext
+from django.utils.translation import ugettext_lazy as _
import re
phone_digits_re = re.compile(r'^0\d(\s|\.)?(\d{2}(\s|\.)?){3}\d{2}$')
class FRZipCodeField(RegexField):
default_error_messages = {
- 'invalid': ugettext('Enter a zip code in the format XXXXX.'),
+ 'invalid': _('Enter a zip code in the format XXXXX.'),
}
def __init__(self, *args, **kwargs):
diff --git a/django/contrib/localflavor/is_/forms.py b/django/contrib/localflavor/is_/forms.py
index ea7a1e00c3..9f7b6f0211 100644
--- a/django/contrib/localflavor/is_/forms.py
+++ b/django/contrib/localflavor/is_/forms.py
@@ -5,7 +5,7 @@ Iceland specific form helpers.
from django.newforms import ValidationError
from django.newforms.fields import RegexField, EMPTY_VALUES
from django.newforms.widgets import Select
-from django.utils.translation import ugettext
+from django.utils.translation import ugettext_lazy as _
from django.utils.encoding import smart_unicode
class ISIdNumberField(RegexField):
@@ -14,8 +14,8 @@ class ISIdNumberField(RegexField):
of Iceland has.
"""
default_error_messages = {
- 'invalid': ugettext('Enter a valid Icelandic identification number. The format is XXXXXX-XXXX.'),
- 'checksum': ugettext(u'The Icelandic identification number is not valid.'),
+ 'invalid': _('Enter a valid Icelandic identification number. The format is XXXXXX-XXXX.'),
+ 'checksum': _(u'The Icelandic identification number is not valid.'),
}
def __init__(self, *args, **kwargs):
diff --git a/django/contrib/localflavor/it/forms.py b/django/contrib/localflavor/it/forms.py
index 88e65734e4..7d4a82dd63 100644
--- a/django/contrib/localflavor/it/forms.py
+++ b/django/contrib/localflavor/it/forms.py
@@ -4,14 +4,14 @@ IT-specific Form helpers
from django.newforms import ValidationError
from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES
-from django.utils.translation import ugettext
+from django.utils.translation import ugettext_lazy as _
from django.utils.encoding import smart_unicode
from django.contrib.localflavor.it.util import ssn_check_digit, vat_number_check_digit
import re
class ITZipCodeField(RegexField):
default_error_messages = {
- 'invalid': ugettext('Enter a valid zip code.'),
+ 'invalid': _('Enter a valid zip code.'),
}
def __init__(self, *args, **kwargs):
super(ITZipCodeField, self).__init__(r'^\d{5}$',
@@ -27,7 +27,7 @@ class ITRegionSelect(Select):
class ITProvinceSelect(Select):
"""
- A Select widget that uses a list of IT regions as its choices.
+ A Select widget that uses a list of IT provinces as its choices.
"""
def __init__(self, attrs=None):
from it_province import PROVINCE_CHOICES
@@ -40,7 +40,7 @@ class ITSocialSecurityNumberField(RegexField):
'Informazioni sulla codificazione delle persone fisiche'.
"""
default_error_messages = {
- 'invalid': ugettext(u'Enter a valid Social Security number.'),
+ 'invalid': _(u'Enter a valid Social Security number.'),
}
def __init__(self, *args, **kwargs):
@@ -65,7 +65,7 @@ class ITVatNumberField(Field):
A form field that validates Italian VAT numbers (partita IVA).
"""
default_error_messages = {
- 'invalid': ugettext(u'Enter a valid VAT number.'),
+ 'invalid': _(u'Enter a valid VAT number.'),
}
def clean(self, value):
diff --git a/django/contrib/localflavor/jp/forms.py b/django/contrib/localflavor/jp/forms.py
index d726f822d7..70def85351 100644
--- a/django/contrib/localflavor/jp/forms.py
+++ b/django/contrib/localflavor/jp/forms.py
@@ -4,7 +4,7 @@ JP-specific Form helpers
from django.core import validators
from django.newforms import ValidationError
-from django.utils.translation import ugettext
+from django.utils.translation import ugettext_lazy as _
from django.newforms.fields import RegexField, Select
class JPPostalCodeField(RegexField):
@@ -14,7 +14,7 @@ class JPPostalCodeField(RegexField):
Accepts 7 digits, with or without a hyphen.
"""
default_error_messages = {
- 'invalid': ugettext('Enter a postal code in the format XXXXXXX or XXX-XXXX.'),
+ 'invalid': _('Enter a postal code in the format XXXXXXX or XXX-XXXX.'),
}
def __init__(self, *args, **kwargs):
diff --git a/django/contrib/localflavor/nl/forms.py b/django/contrib/localflavor/nl/forms.py
index 748484926e..6f9e887339 100644
--- a/django/contrib/localflavor/nl/forms.py
+++ b/django/contrib/localflavor/nl/forms.py
@@ -6,7 +6,7 @@ import re
from django.newforms import ValidationError
from django.newforms.fields import Field, Select, EMPTY_VALUES
-from django.utils.translation import ugettext as _
+from django.utils.translation import ugettext_lazy as _
from django.utils.encoding import smart_unicode
pc_re = re.compile('^\d{4}[A-Z]{2}$')
diff --git a/django/contrib/localflavor/no/forms.py b/django/contrib/localflavor/no/forms.py
index 8dc001955d..39c80ec0b2 100644
--- a/django/contrib/localflavor/no/forms.py
+++ b/django/contrib/localflavor/no/forms.py
@@ -5,11 +5,11 @@ Norwegian-specific Form helpers
import re, datetime
from django.newforms import ValidationError
from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES
-from django.utils.translation import ugettext
+from django.utils.translation import ugettext_lazy as _
class NOZipCodeField(RegexField):
default_error_messages = {
- 'invalid': ugettext('Enter a zip code in the format XXXX.'),
+ 'invalid': _('Enter a zip code in the format XXXX.'),
}
def __init__(self, *args, **kwargs):
@@ -30,7 +30,7 @@ class NOSocialSecurityNumber(Field):
Algorithm is documented at http://no.wikipedia.org/wiki/Personnummer
"""
default_error_messages = {
- 'invalid': ugettext(u'Enter a valid Norwegian social security number.'),
+ 'invalid': _(u'Enter a valid Norwegian social security number.'),
}
def clean(self, value):
diff --git a/django/contrib/localflavor/pe/forms.py b/django/contrib/localflavor/pe/forms.py
index 57c9d441f7..328b2e36e1 100644
--- a/django/contrib/localflavor/pe/forms.py
+++ b/django/contrib/localflavor/pe/forms.py
@@ -5,7 +5,7 @@ PE-specific Form helpers.
from django.newforms import ValidationError
from django.newforms.fields import RegexField, CharField, Select, EMPTY_VALUES
-from django.utils.translation import ugettext
+from django.utils.translation import ugettext_lazy as _
class PEDepartmentSelect(Select):
"""
@@ -20,8 +20,8 @@ class PEDNIField(CharField):
A field that validates `Documento Nacional de IdentidadŽ (DNI) numbers.
"""
default_error_messages = {
- 'invalid': ugettext("This field requires only numbers."),
- 'max_digits': ugettext("This field requires 8 digits."),
+ 'invalid': _("This field requires only numbers."),
+ 'max_digits': _("This field requires 8 digits."),
}
def __init__(self, *args, **kwargs):
@@ -48,8 +48,8 @@ class PERUCField(RegexField):
the form XXXXXXXXXXX.
"""
default_error_messages = {
- 'invalid': ugettext("This field requires only numbers."),
- 'max_digits': ugettext("This field requires 11 digits."),
+ 'invalid': _("This field requires only numbers."),
+ 'max_digits': _("This field requires 11 digits."),
}
def __init__(self, *args, **kwargs):
diff --git a/django/contrib/localflavor/pl/forms.py b/django/contrib/localflavor/pl/forms.py
index b02dad7025..32d00cc3a8 100644
--- a/django/contrib/localflavor/pl/forms.py
+++ b/django/contrib/localflavor/pl/forms.py
@@ -6,7 +6,7 @@ import re
from django.newforms import ValidationError
from django.newforms.fields import Select, RegexField
-from django.utils.translation import ugettext as _
+from django.utils.translation import ugettext_lazy as _
class PLVoivodeshipSelect(Select):
"""
diff --git a/django/contrib/localflavor/sk/forms.py b/django/contrib/localflavor/sk/forms.py
index 711d70fc2b..d12927ecab 100644
--- a/django/contrib/localflavor/sk/forms.py
+++ b/django/contrib/localflavor/sk/forms.py
@@ -3,7 +3,7 @@ Slovak-specific form helpers
"""
from django.newforms.fields import Select, RegexField
-from django.utils.translation import ugettext
+from django.utils.translation import ugettext_lazy as _
class SKRegionSelect(Select):
"""
@@ -27,7 +27,7 @@ class SKPostalCodeField(RegexField):
Valid form is XXXXX or XXX XX, where X represents integer.
"""
default_error_messages = {
- 'invalid': ugettext(u'Enter a postal code in the format XXXXX or XXX XX.'),
+ 'invalid': _(u'Enter a postal code in the format XXXXX or XXX XX.'),
}
def __init__(self, *args, **kwargs):
diff --git a/django/contrib/localflavor/uk/forms.py b/django/contrib/localflavor/uk/forms.py
index 52cd7ad232..b3883f6477 100644
--- a/django/contrib/localflavor/uk/forms.py
+++ b/django/contrib/localflavor/uk/forms.py
@@ -6,7 +6,7 @@ import re
from django.newforms.fields import CharField, Select
from django.newforms import ValidationError
-from django.utils.translation import ugettext
+from django.utils.translation import ugettext_lazy as _
class UKPostcodeField(CharField):
"""
@@ -18,7 +18,7 @@ class UKPostcodeField(CharField):
The value is uppercased and a space added in the correct place, if required.
"""
default_error_messages = {
- 'invalid': ugettext(u'Enter a valid postcode.'),
+ 'invalid': _(u'Enter a valid postcode.'),
}
outcode_pattern = '[A-PR-UWYZ]([0-9]{1,2}|([A-HIK-Y][0-9](|[0-9]|[ABEHMNPRVWXY]))|[0-9][A-HJKSTUW])'
incode_pattern = '[0-9][ABD-HJLNP-UW-Z]{2}'
diff --git a/django/contrib/localflavor/uk/uk_regions.py b/django/contrib/localflavor/uk/uk_regions.py
index 61d0812488..dd92f5e758 100644
--- a/django/contrib/localflavor/uk/uk_regions.py
+++ b/django/contrib/localflavor/uk/uk_regions.py
@@ -5,7 +5,7 @@ Sources:
Welsh regions: http://en.wikipedia.org/wiki/Preserved_counties_of_Wales
Scottish regions: http://en.wikipedia.org/wiki/Regions_and_districts_of_Scotland
"""
-from django.utils.translation import ugettext as _
+from django.utils.translation import ugettext_lazy as _
ENGLAND_REGION_CHOICES = (
("Bedfordshire", _("Bedfordshire")),
diff --git a/django/contrib/localflavor/us/forms.py b/django/contrib/localflavor/us/forms.py
index d6aa684cba..a17062d61f 100644
--- a/django/contrib/localflavor/us/forms.py
+++ b/django/contrib/localflavor/us/forms.py
@@ -5,7 +5,7 @@ USA-specific Form helpers
from django.newforms import ValidationError
from django.newforms.fields import Field, RegexField, Select, EMPTY_VALUES
from django.utils.encoding import smart_unicode
-from django.utils.translation import ugettext
+from django.utils.translation import ugettext_lazy as _
import re
phone_digits_re = re.compile(r'^(?:1-?)?(\d{3})[-\.]?(\d{3})[-\.]?(\d{4})$')
@@ -13,7 +13,7 @@ ssn_re = re.compile(r"^(?P\d{3})[-\ ]?(?P\d{2})[-\ ]?(?P\d{
class USZipCodeField(RegexField):
default_error_messages = {
- 'invalid': ugettext('Enter a zip code in the format XXXXX or XXXXX-XXXX.'),
+ 'invalid': _('Enter a zip code in the format XXXXX or XXXXX-XXXX.'),
}
def __init__(self, *args, **kwargs):
@@ -51,7 +51,7 @@ class USSocialSecurityNumberField(Field):
1962 promotional number).
"""
default_error_messages = {
- 'invalid': ugettext('Enter a valid U.S. Social Security number in XXX-XX-XXXX format.'),
+ 'invalid': _('Enter a valid U.S. Social Security number in XXX-XX-XXXX format.'),
}
def clean(self, value):
diff --git a/django/contrib/redirects/models.py b/django/contrib/redirects/models.py
index ac2e8d5bac..1720f33466 100644
--- a/django/contrib/redirects/models.py
+++ b/django/contrib/redirects/models.py
@@ -17,6 +17,7 @@ class Redirect(models.Model):
ordering = ('old_path',)
class Admin:
+ list_display = ('old_path', 'new_path')
list_filter = ('site',)
search_fields = ('old_path', 'new_path')
diff --git a/django/contrib/sessions/backends/base.py b/django/contrib/sessions/backends/base.py
index 1063760915..b40fba6e6e 100644
--- a/django/contrib/sessions/backends/base.py
+++ b/django/contrib/sessions/backends/base.py
@@ -5,14 +5,15 @@ import random
import sys
import time
from datetime import datetime, timedelta
-from django.conf import settings
-from django.core.exceptions import SuspiciousOperation
-
try:
import cPickle as pickle
except ImportError:
import pickle
+from django.conf import settings
+from django.core.exceptions import SuspiciousOperation
+
+
class SessionBase(object):
"""
Base class for all Session classes.
@@ -87,6 +88,25 @@ class SessionBase(object):
except:
return {}
+ def update(self, dict_):
+ self._session.update(dict_)
+ self.modified = True
+
+ def has_key(self, key):
+ return self._session.has_key(key)
+
+ def values(self):
+ return self._session.values()
+
+ def iterkeys(self):
+ return self._session.iterkeys()
+
+ def itervalues(self):
+ return self._session.itervalues()
+
+ def iteritems(self):
+ return self._session.iteritems()
+
def _get_new_session_key(self):
"Returns session key that isn't being used."
# The random module is seeded when this Apache child is created.
@@ -150,8 +170,8 @@ class SessionBase(object):
def set_expiry(self, value):
"""
- Sets a custom expiration for the session. ``value`` can be an integer, a
- Python ``datetime`` or ``timedelta`` object or ``None``.
+ Sets a custom expiration for the session. ``value`` can be an integer,
+ a Python ``datetime`` or ``timedelta`` object or ``None``.
If ``value`` is an integer, the session will expire after that many
seconds of inactivity. If set to ``0`` then the session will expire on
diff --git a/django/contrib/sessions/backends/cache.py b/django/contrib/sessions/backends/cache.py
index 7626163a13..7e171e8309 100644
--- a/django/contrib/sessions/backends/cache.py
+++ b/django/contrib/sessions/backends/cache.py
@@ -2,6 +2,7 @@ from django.conf import settings
from django.contrib.sessions.backends.base import SessionBase
from django.core.cache import cache
+
class SessionStore(SessionBase):
"""
A cache-based session store.
@@ -23,4 +24,4 @@ class SessionStore(SessionBase):
return False
def delete(self, session_key):
- self._cache.delete(session_key)
\ No newline at end of file
+ self._cache.delete(session_key)
diff --git a/django/contrib/sessions/backends/db.py b/django/contrib/sessions/backends/db.py
index b1c1097865..67132c7560 100644
--- a/django/contrib/sessions/backends/db.py
+++ b/django/contrib/sessions/backends/db.py
@@ -1,12 +1,14 @@
+import datetime
+
from django.conf import settings
from django.contrib.sessions.models import Session
from django.contrib.sessions.backends.base import SessionBase
from django.core.exceptions import SuspiciousOperation
-import datetime
+
class SessionStore(SessionBase):
"""
- Implements database session store
+ Implements database session store.
"""
def __init__(self, session_key=None):
super(SessionStore, self).__init__(session_key)
diff --git a/django/contrib/sessions/backends/file.py b/django/contrib/sessions/backends/file.py
index d65c81c101..49a7045244 100644
--- a/django/contrib/sessions/backends/file.py
+++ b/django/contrib/sessions/backends/file.py
@@ -1,9 +1,11 @@
import os
import tempfile
+
from django.conf import settings
from django.contrib.sessions.backends.base import SessionBase
from django.core.exceptions import SuspiciousOperation, ImproperlyConfigured
+
class SessionStore(SessionBase):
"""
Implements a file based session store.
@@ -15,10 +17,10 @@ class SessionStore(SessionBase):
# Make sure the storage path is valid.
if not os.path.isdir(self.storage_path):
- raise ImproperlyConfigured("The session storage path %r doesn't exist. "\
- "Please set your SESSION_FILE_PATH setting "\
- "to an existing directory in which Django "\
- "can store session data." % self.storage_path)
+ raise ImproperlyConfigured(
+ "The session storage path %r doesn't exist. Please set your"
+ " SESSION_FILE_PATH setting to an existing directory in which"
+ " Django can store session data." % self.storage_path)
self.file_prefix = settings.SESSION_COOKIE_NAME
super(SessionStore, self).__init__(session_key)
@@ -31,9 +33,11 @@ class SessionStore(SessionBase):
session_key = self.session_key
# Make sure we're not vulnerable to directory traversal. Session keys
- # should always be md5s, so they should never contain directory components.
+ # should always be md5s, so they should never contain directory
+ # components.
if os.path.sep in session_key:
- raise SuspiciousOperation("Invalid characters (directory components) in session key")
+ raise SuspiciousOperation(
+ "Invalid characters (directory components) in session key")
return os.path.join(self.storage_path, self.file_prefix + session_key)
diff --git a/django/contrib/sessions/middleware.py b/django/contrib/sessions/middleware.py
index a7b376dde0..238d6095e5 100644
--- a/django/contrib/sessions/middleware.py
+++ b/django/contrib/sessions/middleware.py
@@ -7,6 +7,7 @@ from django.utils.http import cookie_date
TEST_COOKIE_NAME = 'testcookie'
TEST_COOKIE_VALUE = 'worked'
+
class SessionMiddleware(object):
def process_request(self, request):
@@ -40,5 +41,4 @@ class SessionMiddleware(object):
expires=expires, domain=settings.SESSION_COOKIE_DOMAIN,
path=settings.SESSION_COOKIE_PATH,
secure=settings.SESSION_COOKIE_SECURE or None)
-
return response
diff --git a/django/contrib/sessions/models.py b/django/contrib/sessions/models.py
index 4769e63b1b..70fce3b226 100644
--- a/django/contrib/sessions/models.py
+++ b/django/contrib/sessions/models.py
@@ -6,9 +6,12 @@ from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.conf import settings
+
class SessionManager(models.Manager):
def encode(self, session_dict):
- "Returns the given session dictionary pickled and encoded as a string."
+ """
+ Returns the given session dictionary pickled and encoded as a string.
+ """
pickled = pickle.dumps(session_dict)
pickled_md5 = md5.new(pickled + settings.SECRET_KEY).hexdigest()
return base64.encodestring(pickled + pickled_md5)
@@ -21,6 +24,7 @@ class SessionManager(models.Manager):
s.delete() # Clear sessions with no data.
return s
+
class Session(models.Model):
"""
Django provides full support for anonymous sessions. The session
@@ -38,7 +42,8 @@ class Session(models.Model):
the sessions documentation that is shipped with Django (also available
on the Django website).
"""
- session_key = models.CharField(_('session key'), max_length=40, primary_key=True)
+ session_key = models.CharField(_('session key'), max_length=40,
+ primary_key=True)
session_data = models.TextField(_('session data'))
expire_date = models.DateTimeField(_('expire date'))
objects = SessionManager()
diff --git a/django/contrib/sessions/tests.py b/django/contrib/sessions/tests.py
index 0f162b211f..a1bc6799fa 100644
--- a/django/contrib/sessions/tests.py
+++ b/django/contrib/sessions/tests.py
@@ -89,6 +89,66 @@ False
>>> s.pop('some key', 'does not exist')
'does not exist'
+
+>>> s.get('update key', None)
+
+# test .update()
+>>> s.modified = s.accessed = False # Reset to pretend this wasn't accessed previously
+>>> s.update({'update key':1})
+>>> s.accessed, s.modified
+(True, True)
+>>> s.get('update key', None)
+1
+
+# test .has_key()
+>>> s.modified = s.accessed = False # Reset to pretend this wasn't accessed previously
+>>> s.has_key('update key')
+True
+>>> s.accessed, s.modified
+(True, False)
+
+# test .values()
+>>> s = SessionBase()
+>>> s.values()
+[]
+>>> s.accessed
+True
+>>> s['x'] = 1
+>>> s.values()
+[1]
+
+# test .iterkeys()
+>>> s.accessed = False
+>>> i = s.iterkeys()
+>>> hasattr(i,'__iter__')
+True
+>>> s.accessed
+True
+>>> list(i)
+['x']
+
+# test .itervalues()
+>>> s.accessed = False
+>>> i = s.itervalues()
+>>> hasattr(i,'__iter__')
+True
+>>> s.accessed
+True
+>>> list(i)
+[1]
+
+# test .iteritems()
+>>> s.accessed = False
+>>> i = s.iteritems()
+>>> hasattr(i,'__iter__')
+True
+>>> s.accessed
+True
+>>> list(i)
+[('x', 1)]
+
+
+
#########################
# Custom session expiry #
#########################
diff --git a/django/contrib/sites/management.py b/django/contrib/sites/management.py
index 6831cab96d..5cecfb4ec0 100644
--- a/django/contrib/sites/management.py
+++ b/django/contrib/sites/management.py
@@ -13,5 +13,6 @@ def create_default_site(app, created_models, verbosity):
print "Creating example.com Site object"
s = Site(domain="example.com", name="example.com")
s.save()
+ Site.objects.clear_cache()
dispatcher.connect(create_default_site, sender=site_app, signal=signals.post_syncdb)
diff --git a/django/contrib/sites/models.py b/django/contrib/sites/models.py
index fb6d0a2b1e..c928a4e852 100644
--- a/django/contrib/sites/models.py
+++ b/django/contrib/sites/models.py
@@ -44,6 +44,15 @@ class Site(models.Model):
def __unicode__(self):
return self.domain
+ def delete(self):
+ pk = self.pk
+ super(Site, self).delete()
+ try:
+ del(SITE_CACHE[pk])
+ except KeyError:
+ pass
+
+
class RequestSite(object):
"""
A class that shares the primary interface of Site (i.e., it has
diff --git a/django/contrib/sites/tests.py b/django/contrib/sites/tests.py
new file mode 100644
index 0000000000..5c38ee1b6d
--- /dev/null
+++ b/django/contrib/sites/tests.py
@@ -0,0 +1,13 @@
+"""
+>>> # Make sure that get_current() does not return a deleted Site object.
+>>> from django.contrib.sites.models import Site
+>>> s = Site.objects.get_current()
+>>> isinstance(s, Site)
+True
+
+>>> s.delete()
+>>> Site.objects.get_current()
+Traceback (most recent call last):
+...
+DoesNotExist: Site matching query does not exist.
+"""
diff --git a/django/core/management/commands/loaddata.py b/django/core/management/commands/loaddata.py
index 193bb26ccf..688cd58e2c 100644
--- a/django/core/management/commands/loaddata.py
+++ b/django/core/management/commands/loaddata.py
@@ -111,7 +111,10 @@ class Command(BaseCommand):
models.add(obj.object.__class__)
obj.save()
label_found = True
- except Exception, e:
+ except (SystemExit, KeyboardInterrupt):
+ raise
+ except Exception:
+ import traceback
fixture.close()
transaction.rollback()
transaction.leave_transaction_management()
@@ -121,7 +124,7 @@ class Command(BaseCommand):
else:
sys.stderr.write(
self.style.ERROR("Problem installing fixture '%s': %s\n" %
- (full_path, str(e))))
+ (full_path, traceback.format_exc())))
return
fixture.close()
except:
diff --git a/django/core/management/commands/sql.py b/django/core/management/commands/sql.py
index 4a0107ac02..bc68a1e43a 100644
--- a/django/core/management/commands/sql.py
+++ b/django/core/management/commands/sql.py
@@ -7,4 +7,4 @@ class Command(AppCommand):
def handle_app(self, app, **options):
from django.core.management.sql import sql_create
- return '\n'.join(sql_create(app, self.style))
+ return u'\n'.join(sql_create(app, self.style)).encode('utf-8')
diff --git a/django/core/management/commands/sqlall.py b/django/core/management/commands/sqlall.py
index bf3c734bb6..5d510f179a 100644
--- a/django/core/management/commands/sqlall.py
+++ b/django/core/management/commands/sqlall.py
@@ -7,4 +7,4 @@ class Command(AppCommand):
def handle_app(self, app, **options):
from django.core.management.sql import sql_all
- return '\n'.join(sql_all(app, self.style))
+ return u'\n'.join(sql_all(app, self.style)).encode('utf-8')
diff --git a/django/core/management/commands/sqlclear.py b/django/core/management/commands/sqlclear.py
index d76d6f4de2..8550e88e28 100644
--- a/django/core/management/commands/sqlclear.py
+++ b/django/core/management/commands/sqlclear.py
@@ -7,4 +7,4 @@ class Command(AppCommand):
def handle_app(self, app, **options):
from django.core.management.sql import sql_delete
- return '\n'.join(sql_delete(app, self.style))
+ return u'\n'.join(sql_delete(app, self.style)).encode('utf-8')
diff --git a/django/core/management/commands/sqlcustom.py b/django/core/management/commands/sqlcustom.py
index 68d4fe3c9f..465330db7e 100644
--- a/django/core/management/commands/sqlcustom.py
+++ b/django/core/management/commands/sqlcustom.py
@@ -7,4 +7,4 @@ class Command(AppCommand):
def handle_app(self, app, **options):
from django.core.management.sql import sql_custom
- return '\n'.join(sql_custom(app, self.style))
+ return u'\n'.join(sql_custom(app, self.style)).encode('utf-8')
diff --git a/django/core/management/commands/sqlflush.py b/django/core/management/commands/sqlflush.py
index 261aa0d423..d0f71d3875 100644
--- a/django/core/management/commands/sqlflush.py
+++ b/django/core/management/commands/sqlflush.py
@@ -7,4 +7,4 @@ class Command(NoArgsCommand):
def handle_noargs(self, **options):
from django.core.management.sql import sql_flush
- return '\n'.join(sql_flush(self.style, only_django=True))
+ return u'\n'.join(sql_flush(self.style, only_django=True)).encode('utf-8')
diff --git a/django/core/management/commands/sqlindexes.py b/django/core/management/commands/sqlindexes.py
index b5e86f26d6..9693588a89 100644
--- a/django/core/management/commands/sqlindexes.py
+++ b/django/core/management/commands/sqlindexes.py
@@ -7,4 +7,4 @@ class Command(AppCommand):
def handle_app(self, app, **options):
from django.core.management.sql import sql_indexes
- return '\n'.join(sql_indexes(app, self.style))
+ return u'\n'.join(sql_indexes(app, self.style)).encode('utf-8')
diff --git a/django/core/management/commands/sqlreset.py b/django/core/management/commands/sqlreset.py
index a2abb855cf..ec40848c42 100644
--- a/django/core/management/commands/sqlreset.py
+++ b/django/core/management/commands/sqlreset.py
@@ -7,4 +7,4 @@ class Command(AppCommand):
def handle_app(self, app, **options):
from django.core.management.sql import sql_reset
- return '\n'.join(sql_reset(app, self.style))
+ return u'\n'.join(sql_reset(app, self.style)).encode('utf-8')
diff --git a/django/core/management/commands/sqlsequencereset.py b/django/core/management/commands/sqlsequencereset.py
index 6b12d83843..e8dad0bef6 100644
--- a/django/core/management/commands/sqlsequencereset.py
+++ b/django/core/management/commands/sqlsequencereset.py
@@ -6,4 +6,4 @@ class Command(AppCommand):
def handle_app(self, app, **options):
from django.db import connection, models
- return '\n'.join(connection.ops.sequence_reset_sql(self.style, models.get_models(app)))
+ return u'\n'.join(connection.ops.sequence_reset_sql(self.style, models.get_models(app))).encode('utf-8')
diff --git a/django/core/management/commands/startapp.py b/django/core/management/commands/startapp.py
index a3d517dd7a..a81c427142 100644
--- a/django/core/management/commands/startapp.py
+++ b/django/core/management/commands/startapp.py
@@ -3,8 +3,7 @@ import os
from django.core.management.base import copy_helper, CommandError, LabelCommand
class Command(LabelCommand):
- help = ("Creates a Django app directory structure for the given app name"
- " in the current directory.")
+ help = "Creates a Django app directory structure for the given app name in the current directory."
args = "[appname]"
label = 'application name'
@@ -16,6 +15,7 @@ class Command(LabelCommand):
def handle_label(self, app_name, directory=None, **options):
if directory is None:
directory = os.getcwd()
+
# Determine the project_name by using the basename of directory,
# which should be the full path of the project directory (or the
# current directory if no directory was passed).
@@ -23,6 +23,15 @@ class Command(LabelCommand):
if app_name == project_name:
raise CommandError("You cannot create an app with the same name"
" (%r) as your project." % app_name)
+
+ # Check that the app_name cannot be imported.
+ try:
+ __import__(app_name)
+ except ImportError:
+ pass
+ else:
+ raise CommandError("%r conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name." % app_name)
+
copy_helper(self.style, 'app', app_name, directory, project_name)
class ProjectCommand(Command):
diff --git a/django/core/management/commands/startproject.py b/django/core/management/commands/startproject.py
index 867d4fd3da..540a64d2ea 100644
--- a/django/core/management/commands/startproject.py
+++ b/django/core/management/commands/startproject.py
@@ -3,8 +3,6 @@ import os
import re
from random import choice
-INVALID_PROJECT_NAMES = ('django', 'site', 'test')
-
class Command(LabelCommand):
help = "Creates a Django project directory structure for the given project name in the current directory."
args = "[projectname]"
@@ -20,13 +18,13 @@ class Command(LabelCommand):
# the parent directory.
directory = os.getcwd()
+ # Check that the project_name cannot be imported.
try:
- proj_name = __import__(project_name)
- if proj_name:
- raise CommandError("%r conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name." % project_name)
+ __import__(project_name)
except ImportError:
- if project_name in INVALID_PROJECT_NAMES:
- raise CommandError("%r contains an invalid project name. Please try another name." % project_name)
+ pass
+ else:
+ raise CommandError("%r conflicts with the name of an existing Python module and cannot be used as a project name. Please try another name." % project_name)
copy_helper(self.style, 'project', project_name, directory)
diff --git a/django/core/management/commands/syncdb.py b/django/core/management/commands/syncdb.py
index dc0a72a2a6..e1a623ad10 100644
--- a/django/core/management/commands/syncdb.py
+++ b/django/core/management/commands/syncdb.py
@@ -25,6 +25,7 @@ class Command(NoArgsCommand):
verbosity = int(options.get('verbosity', 1))
interactive = options.get('interactive')
+ show_traceback = options.get('traceback', False)
self.style = no_style()
@@ -119,12 +120,17 @@ class Command(NoArgsCommand):
for sql in custom_sql:
cursor.execute(sql)
except Exception, e:
- sys.stderr.write("Failed to install custom SQL for %s.%s model: %s" % \
+ sys.stderr.write("Failed to install custom SQL for %s.%s model: %s\n" % \
(app_name, model._meta.object_name, e))
+ if show_traceback:
+ import traceback
+ traceback.print_exc()
transaction.rollback_unless_managed()
else:
transaction.commit_unless_managed()
-
+ else:
+ if verbosity >= 2:
+ print "No custom SQL for %s.%s model" % (app_name, model._meta.object_name)
# Install SQL indicies for all newly created models
for app in models.get_apps():
app_name = app.__name__.split('.')[-2]
diff --git a/django/core/servers/basehttp.py b/django/core/servers/basehttp.py
index 05f8756655..5bdf08b8ca 100644
--- a/django/core/servers/basehttp.py
+++ b/django/core/servers/basehttp.py
@@ -17,7 +17,7 @@ import urllib
from django.utils.http import http_date
__version__ = "0.1"
-__all__ = ['WSGIServer','WSGIRequestHandler','demo_app']
+__all__ = ['WSGIServer','WSGIRequestHandler']
server_version = "WSGIServer/" + __version__
sys_version = "Python/" + sys.version.split()[0]
diff --git a/django/core/urlresolvers.py b/django/core/urlresolvers.py
index 2ef3d6f169..2ad63bfc7d 100644
--- a/django/core/urlresolvers.py
+++ b/django/core/urlresolvers.py
@@ -86,7 +86,7 @@ def reverse_helper(regex, *args, **kwargs):
"""
# TODO: Handle nested parenthesis in the following regex.
result = re.sub(r'\(([^)]+)\)', MatchChecker(args, kwargs), regex.pattern)
- return result.replace('^', '').replace('$', '')
+ return result.replace('^', '').replace('$', '').replace('\\', '')
class MatchChecker(object):
"Class used in reverse RegexURLPattern lookup."
diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py
index b076e290dd..7a4e46a7d7 100644
--- a/django/db/backends/__init__.py
+++ b/django/db/backends/__init__.py
@@ -45,13 +45,16 @@ class BaseDatabaseFeatures(object):
autoindexes_primary_keys = True
inline_fk_references = True
needs_datetime_string_cast = True
- needs_upper_for_iops = False
supports_constraints = True
supports_tablespaces = False
uses_case_insensitive_names = False
uses_custom_query_class = False
empty_fetchmany_value = []
update_can_self_select = True
+ supports_usecs = True
+ time_field_needs_date = False
+ interprets_empty_strings_as_nulls = False
+ date_field_supports_time_value = True
class BaseDatabaseOperations(object):
"""
@@ -266,3 +269,8 @@ class BaseDatabaseOperations(object):
tablespaces.
"""
return None
+
+ def prep_for_like_query(self, x):
+ """Prepares a value for use in a LIKE query."""
+ from django.utils.encoding import smart_unicode
+ return smart_unicode(x).replace("\\", "\\\\").replace("%", "\%").replace("_", "\_")
diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py
index da57ecbe47..23735a023b 100644
--- a/django/db/backends/mysql/base.py
+++ b/django/db/backends/mysql/base.py
@@ -64,6 +64,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
inline_fk_references = False
empty_fetchmany_value = ()
update_can_self_select = False
+ supports_usecs = False
class DatabaseOperations(BaseDatabaseOperations):
def date_extract_sql(self, lookup_type, field_name):
diff --git a/django/db/backends/mysql_old/base.py b/django/db/backends/mysql_old/base.py
index 0ae114d176..e57aee6a04 100644
--- a/django/db/backends/mysql_old/base.py
+++ b/django/db/backends/mysql_old/base.py
@@ -68,6 +68,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
inline_fk_references = False
empty_fetchmany_value = ()
update_can_self_select = False
+ supports_usecs = False
class DatabaseOperations(BaseDatabaseOperations):
def date_extract_sql(self, lookup_type, field_name):
diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py
index 1bcc36dcb4..56ae051de8 100644
--- a/django/db/backends/oracle/base.py
+++ b/django/db/backends/oracle/base.py
@@ -27,10 +27,12 @@ class DatabaseFeatures(BaseDatabaseFeatures):
allows_unique_and_pk = False # Suppress UNIQUE/PK for Oracle (ORA-02259)
empty_fetchmany_value = ()
needs_datetime_string_cast = False
- needs_upper_for_iops = True
supports_tablespaces = True
uses_case_insensitive_names = True
uses_custom_query_class = True
+ time_field_needs_date = True
+ interprets_empty_strings_as_nulls = True
+ date_field_supports_time_value = False
class DatabaseOperations(BaseDatabaseOperations):
def autoinc_sql(self, table, column):
diff --git a/django/db/backends/oracle/creation.py b/django/db/backends/oracle/creation.py
index 93dc3c2bf1..14bc8faf86 100644
--- a/django/db/backends/oracle/creation.py
+++ b/django/db/backends/oracle/creation.py
@@ -5,9 +5,13 @@ from django.core import management
# types, as strings. Column-type strings can contain format strings; they'll
# be interpolated against the values of Field.__dict__ before being output.
# If a column type is set to None, it won't be included in the output.
+#
+# Any format strings starting with "qn_" are quoted before being used in the
+# output (the "qn_" prefix is stripped before the lookup is performed.
+
DATA_TYPES = {
'AutoField': 'NUMBER(11)',
- 'BooleanField': 'NUMBER(1) CHECK (%(column)s IN (0,1))',
+ 'BooleanField': 'NUMBER(1) CHECK (%(qn_column)s IN (0,1))',
'CharField': 'NVARCHAR2(%(max_length)s)',
'CommaSeparatedIntegerField': 'VARCHAR2(%(max_length)s)',
'DateField': 'DATE',
@@ -19,11 +23,11 @@ DATA_TYPES = {
'ImageField': 'NVARCHAR2(%(max_length)s)',
'IntegerField': 'NUMBER(11)',
'IPAddressField': 'VARCHAR2(15)',
- 'NullBooleanField': 'NUMBER(1) CHECK ((%(column)s IN (0,1)) OR (%(column)s IS NULL))',
+ 'NullBooleanField': 'NUMBER(1) CHECK ((%(qn_column)s IN (0,1)) OR (%(column)s IS NULL))',
'OneToOneField': 'NUMBER(11)',
'PhoneNumberField': 'VARCHAR2(20)',
- 'PositiveIntegerField': 'NUMBER(11) CHECK (%(column)s >= 0)',
- 'PositiveSmallIntegerField': 'NUMBER(11) CHECK (%(column)s >= 0)',
+ 'PositiveIntegerField': 'NUMBER(11) CHECK (%(qn_column)s >= 0)',
+ 'PositiveSmallIntegerField': 'NUMBER(11) CHECK (%(qn_column)s >= 0)',
'SlugField': 'NVARCHAR2(50)',
'SmallIntegerField': 'NUMBER(11)',
'TextField': 'NCLOB',
diff --git a/django/db/models/base.py b/django/db/models/base.py
index 5dd11a9d83..14a48044df 100644
--- a/django/db/models/base.py
+++ b/django/db/models/base.py
@@ -10,7 +10,7 @@ from django.core import validators
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned, FieldError
from django.db.models.fields import AutoField, ImageField, FieldDoesNotExist
from django.db.models.fields.related import OneToOneRel, ManyToOneRel, OneToOneField
-from django.db.models.query import delete_objects, Q
+from django.db.models.query import delete_objects, Q, CollectedObjects
from django.db.models.options import Options, AdminOptions
from django.db import connection, transaction
from django.db.models import signals
@@ -368,17 +368,16 @@ class Model(object):
error_dict[f.name] = errors
return error_dict
- def _collect_sub_objects(self, seen_objs):
+ def _collect_sub_objects(self, seen_objs, parent=None, nullable=False):
"""
Recursively populates seen_objs with all objects related to this object.
- When done, seen_objs will be in the format:
- {model_class: {pk_val: obj, pk_val: obj, ...},
- model_class: {pk_val: obj, pk_val: obj, ...}, ...}
+ When done, seen_objs.items() will be in the format:
+ [(model_class, {pk_val: obj, pk_val: obj, ...}),
+ (model_class, {pk_val: obj, pk_val: obj, ...}),...]
"""
pk_val = self._get_pk_val()
- if pk_val in seen_objs.setdefault(self.__class__, {}):
+ if seen_objs.add(self.__class__, pk_val, self, parent, nullable):
return
- seen_objs.setdefault(self.__class__, {})[pk_val] = self
for related in self._meta.get_all_related_objects():
rel_opts_name = related.get_accessor_name()
@@ -388,16 +387,16 @@ class Model(object):
except ObjectDoesNotExist:
pass
else:
- sub_obj._collect_sub_objects(seen_objs)
+ sub_obj._collect_sub_objects(seen_objs, self.__class__, related.field.null)
else:
for sub_obj in getattr(self, rel_opts_name).all():
- sub_obj._collect_sub_objects(seen_objs)
+ sub_obj._collect_sub_objects(seen_objs, self.__class__, related.field.null)
def delete(self):
assert self._get_pk_val() is not None, "%s object can't be deleted because its %s attribute is set to None." % (self._meta.object_name, self._meta.pk.attname)
# Find all the objects than need to be deleted
- seen_objs = SortedDict()
+ seen_objs = CollectedObjects()
self._collect_sub_objects(seen_objs)
# Actually delete the objects
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index bb2191e3a4..33a941ff01 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -7,7 +7,7 @@ try:
except ImportError:
from django.utils import _decimal as decimal # for Python 2.3
-from django.db import get_creation_module
+from django.db import connection, get_creation_module
from django.db.models import signals
from django.db.models.query_utils import QueryWrapper
from django.dispatch import dispatcher
@@ -16,6 +16,7 @@ from django.core import validators
from django import oldforms
from django import newforms as forms
from django.core.exceptions import ObjectDoesNotExist
+from django.utils.datastructures import DictWrapper
from django.utils.functional import curry
from django.utils.itercompat import tee
from django.utils.text import capfirst
@@ -33,9 +34,6 @@ HORIZONTAL, VERTICAL = 1, 2
BLANK_CHOICE_DASH = [("", "---------")]
BLANK_CHOICE_NONE = [("", "None")]
-# prepares a value for use in a LIKE query
-prep_for_like_query = lambda x: smart_unicode(x).replace("\\", "\\\\").replace("%", "\%").replace("_", "\_")
-
# returns the
class for a given radio_admin value
get_ul_class = lambda x: 'radiolist%s' % ((x == HORIZONTAL) and ' inline' or '')
@@ -97,7 +95,7 @@ class Field(object):
self.blank, self.null = blank, null
# Oracle treats the empty string ('') as null, so coerce the null
# option whenever '' is a possible value.
- if self.empty_strings_allowed and settings.DATABASE_ENGINE == 'oracle':
+ if self.empty_strings_allowed and connection.features.interprets_empty_strings_as_nulls:
self.null = True
self.core, self.rel, self.default = core, rel, default
self.editable = editable
@@ -164,8 +162,9 @@ class Field(object):
# mapped to one of the built-in Django field types. In this case, you
# can implement db_type() instead of get_internal_type() to specify
# exactly which wacky database column type you want to use.
+ data = DictWrapper(self.__dict__, connection.ops.quote_name, "qn_")
try:
- return get_creation_module().DATA_TYPES[self.get_internal_type()] % self.__dict__
+ return get_creation_module().DATA_TYPES[self.get_internal_type()] % data
except KeyError:
return None
@@ -235,13 +234,13 @@ class Field(object):
elif lookup_type in ('range', 'in'):
return value
elif lookup_type in ('contains', 'icontains'):
- return ["%%%s%%" % prep_for_like_query(value)]
+ return ["%%%s%%" % connection.ops.prep_for_like_query(value)]
elif lookup_type == 'iexact':
- return [prep_for_like_query(value)]
+ return [connection.ops.prep_for_like_query(value)]
elif lookup_type in ('startswith', 'istartswith'):
- return ["%s%%" % prep_for_like_query(value)]
+ return ["%s%%" % connection.ops.prep_for_like_query(value)]
elif lookup_type in ('endswith', 'iendswith'):
- return ["%%%s" % prep_for_like_query(value)]
+ return ["%%%s" % connection.ops.prep_for_like_query(value)]
elif lookup_type == 'isnull':
return []
elif lookup_type == 'year':
@@ -252,9 +251,12 @@ class Field(object):
if settings.DATABASE_ENGINE == 'sqlite3':
first = '%s-01-01'
second = '%s-12-31 23:59:59.999999'
- elif settings.DATABASE_ENGINE == 'oracle' and self.get_internal_type() == 'DateField':
+ elif not connection.features.date_field_supports_time_value and self.get_internal_type() == 'DateField':
first = '%s-01-01'
second = '%s-12-31'
+ elif not connection.features.supports_usecs:
+ first = '%s-01-01 00:00:00'
+ second = '%s-12-31 23:59:59.99'
else:
first = '%s-01-01 00:00:00'
second = '%s-12-31 23:59:59.999999'
@@ -271,7 +273,7 @@ class Field(object):
if callable(self.default):
return self.default()
return force_unicode(self.default, strings_only=True)
- if not self.empty_strings_allowed or (self.null and settings.DATABASE_ENGINE != 'oracle'):
+ if not self.empty_strings_allowed or (self.null and not connection.features.interprets_empty_strings_as_nulls):
return None
return ""
@@ -633,7 +635,7 @@ class DateTimeField(DateField):
if value is not None:
# MySQL will throw a warning if microseconds are given, because it
# doesn't support microseconds.
- if settings.DATABASE_ENGINE == 'mysql' and hasattr(value, 'microsecond'):
+ if not connection.features.supports_usecs and hasattr(value, 'microsecond'):
value = value.replace(microsecond=0)
value = smart_unicode(value)
return Field.get_db_prep_save(self, value)
@@ -867,7 +869,7 @@ class FilePathField(Field):
self.path, self.match, self.recursive = path, match, recursive
kwargs['max_length'] = kwargs.get('max_length', 100)
Field.__init__(self, verbose_name, name, **kwargs)
-
+
def formfield(self, **kwargs):
defaults = {
'path': self.path,
@@ -1075,7 +1077,7 @@ class TimeField(Field):
return "TimeField"
def get_db_prep_lookup(self, lookup_type, value):
- if settings.DATABASE_ENGINE == 'oracle':
+ if connection.features.time_field_needs_date:
# Oracle requires a date in order to parse.
def prep(value):
if isinstance(value, datetime.time):
@@ -1102,9 +1104,9 @@ class TimeField(Field):
if value is not None:
# MySQL will throw a warning if microseconds are given, because it
# doesn't support microseconds.
- if settings.DATABASE_ENGINE == 'mysql' and hasattr(value, 'microsecond'):
+ if not connection.features.supports_usecs and hasattr(value, 'microsecond'):
value = value.replace(microsecond=0)
- if settings.DATABASE_ENGINE == 'oracle':
+ if connection.features.time_field_needs_date:
# cx_Oracle expects a datetime.datetime to persist into TIMESTAMP field.
if isinstance(value, datetime.time):
value = datetime.datetime(1900, 1, 1, value.hour, value.minute,
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py
index c9deac428f..9d5886d426 100644
--- a/django/db/models/fields/related.py
+++ b/django/db/models/fields/related.py
@@ -103,13 +103,15 @@ class RelatedField(object):
if hasattr(sup, 'contribute_to_class'):
sup.contribute_to_class(cls, name)
+
+ if not cls._meta.abstract and self.rel.related_name:
+ self.rel.related_name = self.rel.related_name % {'class': cls.__name__.lower()}
+
other = self.rel.to
if isinstance(other, basestring):
add_lazy_relation(cls, self, other)
else:
self.do_related_class(other, cls)
- if not cls._meta.abstract and self.rel.related_name:
- self.rel.related_name = self.rel.related_name % {'class': cls.__name__.lower()}
def set_attributes_from_rel(self):
self.name = self.name or (self.rel.to._meta.object_name.lower() + '_' + self.rel.to._meta.pk.name)
@@ -119,7 +121,8 @@ class RelatedField(object):
def do_related_class(self, other, cls):
self.set_attributes_from_rel()
related = RelatedObject(other, cls, self)
- self.contribute_to_related_class(other, related)
+ if not cls._meta.abstract:
+ self.contribute_to_related_class(other, related)
def get_db_prep_lookup(self, lookup_type, value):
# If we are doing a lookup on a Related Field, we must be
diff --git a/django/db/models/loading.py b/django/db/models/loading.py
index e7d134e6da..6837e070ac 100644
--- a/django/db/models/loading.py
+++ b/django/db/models/loading.py
@@ -2,6 +2,8 @@
from django.conf import settings
from django.core.exceptions import ImproperlyConfigured
+from django.utils.datastructures import SortedDict
+
import sys
import os
import threading
@@ -18,10 +20,10 @@ class AppCache(object):
# http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/66531.
__shared_state = dict(
# Keys of app_store are the model modules for each application.
- app_store = {},
+ app_store = SortedDict(),
# Mapping of app_labels to a dictionary of model names to model code.
- app_models = {},
+ app_models = SortedDict(),
# Mapping of app_labels to errors raised when trying to import the app.
app_errors = {},
@@ -133,7 +135,7 @@ class AppCache(object):
"""
self._populate()
if app_mod:
- return self.app_models.get(app_mod.__name__.split('.')[-2], {}).values()
+ return self.app_models.get(app_mod.__name__.split('.')[-2], SortedDict()).values()
else:
model_list = []
for app_entry in self.app_models.itervalues():
@@ -149,7 +151,7 @@ class AppCache(object):
"""
if seed_cache:
self._populate()
- return self.app_models.get(app_label, {}).get(model_name.lower())
+ return self.app_models.get(app_label, SortedDict()).get(model_name.lower())
def register_models(self, app_label, *models):
"""
@@ -157,9 +159,9 @@ class AppCache(object):
"""
for model in models:
# Store as 'name: model' pair in a dictionary
- # in the _app_models dictionary
+ # in the app_models dictionary
model_name = model._meta.object_name.lower()
- model_dict = self.app_models.setdefault(app_label, {})
+ model_dict = self.app_models.setdefault(app_label, SortedDict())
if model_name in model_dict:
# The same model may be imported via different paths (e.g.
# appname.models and project.appname.models). We use the source
diff --git a/django/db/models/options.py b/django/db/models/options.py
index bc1aec62c1..c2313f221f 100644
--- a/django/db/models/options.py
+++ b/django/db/models/options.py
@@ -274,14 +274,17 @@ class Options(object):
"""
Initialises the field name -> field object mapping.
"""
- cache = dict([(f.name, (f, m, True, False)) for f, m in
- self.get_fields_with_model()])
- for f, model in self.get_m2m_with_model():
- cache[f.name] = (f, model, True, True)
+ cache = {}
+ # We intentionally handle related m2m objects first so that symmetrical
+ # m2m accessor names can be overridden, if necessary.
for f, model in self.get_all_related_m2m_objects_with_model():
cache[f.field.related_query_name()] = (f, model, False, True)
for f, model in self.get_all_related_objects_with_model():
cache[f.field.related_query_name()] = (f, model, False, False)
+ for f, model in self.get_m2m_with_model():
+ cache[f.name] = (f, model, True, True)
+ for f, model in self.get_fields_with_model():
+ cache[f.name] = (f, model, True, False)
if self.order_with_respect_to:
cache['_order'] = OrderWrt(), None, True, False
if app_cache_ready():
diff --git a/django/db/models/query.py b/django/db/models/query.py
index fb6d116a6e..98caaf004c 100644
--- a/django/db/models/query.py
+++ b/django/db/models/query.py
@@ -16,6 +16,92 @@ ITER_CHUNK_SIZE = CHUNK_SIZE
# Pull into this namespace for backwards compatibility
EmptyResultSet = sql.EmptyResultSet
+class CyclicDependency(Exception):
+ pass
+
+class CollectedObjects(object):
+ """
+ A container that stores keys and lists of values along with
+ remembering the parent objects for all the keys.
+
+ This is used for the database object deletion routines so that we
+ can calculate the 'leaf' objects which should be deleted first.
+ """
+
+ def __init__(self):
+ self.data = {}
+ self.children = {}
+
+ def add(self, model, pk, obj, parent_model, nullable=False):
+ """
+ Adds an item.
+ model is the class of the object being added,
+ pk is the primary key, obj is the object itself,
+ parent_model is the model of the parent object
+ that this object was reached through, nullable should
+ be True if this relation is nullable.
+
+ If the item already existed in the structure,
+ returns true, otherwise false.
+ """
+ d = self.data.setdefault(model, SortedDict())
+ retval = pk in d
+ d[pk] = obj
+ # Nullable relationships can be ignored -- they
+ # are nulled out before deleting, and therefore
+ # do not affect the order in which objects have
+ # to be deleted.
+ if parent_model is not None and not nullable:
+ self.children.setdefault(parent_model, []).append(model)
+
+ return retval
+
+ def __contains__(self, key):
+ return self.data.__contains__(key)
+
+ def __getitem__(self, key):
+ return self.data[key]
+
+ def __nonzero__(self):
+ return bool(self.data)
+
+ def iteritems(self):
+ for k in self.ordered_keys():
+ yield k, self[k]
+
+ def items(self):
+ return list(self.iteritems())
+
+ def keys(self):
+ return self.ordered_keys()
+
+ def ordered_keys(self):
+ """
+ Returns the models in the order that they should be
+ dealth with i.e. models with no dependencies first.
+ """
+ dealt_with = SortedDict()
+ # Start with items that have no children
+ models = self.data.keys()
+ while len(dealt_with) < len(models):
+ found = False
+ for model in models:
+ children = self.children.setdefault(model, [])
+ if len([c for c in children if c not in dealt_with]) == 0:
+ dealt_with[model] = None
+ found = True
+ if not found:
+ raise CyclicDependency("There is a cyclic dependency of items to be processed.")
+
+ return dealt_with.keys()
+
+ def unordered_keys(self):
+ """
+ Fallback for the case where is a cyclic dependency but we
+ don't care.
+ """
+ return self.data.keys()
+
class QuerySet(object):
"Represents a lazy database lookup for a set of objects"
def __init__(self, model=None, query=None):
@@ -132,6 +218,8 @@ class QuerySet(object):
def __and__(self, other):
self._merge_sanity_check(other)
+ if isinstance(other, EmptyQuerySet):
+ return other._clone()
combined = self._clone()
combined.query.combine(other.query, sql.AND)
return combined
@@ -139,6 +227,8 @@ class QuerySet(object):
def __or__(self, other):
self._merge_sanity_check(other)
combined = self._clone()
+ if isinstance(other, EmptyQuerySet):
+ return combined
combined.query.combine(other.query, sql.OR)
return combined
@@ -275,7 +365,7 @@ class QuerySet(object):
while 1:
# Collect all the objects to be deleted in this chunk, and all the
# objects that are related to the objects that are to be deleted.
- seen_objs = SortedDict()
+ seen_objs = CollectedObjects()
for object in del_query[:CHUNK_SIZE]:
object._collect_sub_objects(seen_objs)
@@ -402,7 +492,9 @@ class QuerySet(object):
and usually it will be more natural to use other methods.
"""
if isinstance(filter_obj, Q) or hasattr(filter_obj, 'add_to_query'):
- return self._filter_or_exclude(None, filter_obj)
+ clone = self._clone()
+ clone.query.add_q(filter_obj)
+ return clone
else:
return self._filter_or_exclude(None, **filter_obj)
@@ -497,11 +589,11 @@ class QuerySet(object):
def _merge_sanity_check(self, other):
"""
- Checks that we are merging two comparable queryset classes.
+ Checks that we are merging two comparable queryset classes. By default
+ this does nothing, but see the ValuesQuerySet for an example of where
+ it's useful.
"""
- if self.__class__ is not other.__class__:
- raise TypeError("Cannot merge querysets of different types ('%s' and '%s'."
- % (self.__class__.__name__, other.__class__.__name__))
+ pass
class ValuesQuerySet(QuerySet):
def __init__(self, *args, **kwargs):
@@ -513,7 +605,7 @@ class ValuesQuerySet(QuerySet):
# names of the model fields to select.
def iterator(self):
- if (not self.extra_names and
+ if (not self.extra_names and
len(self.field_names) != len(self.model._meta.fields)):
self.query.trim_extra_select(self.extra_names)
names = self.query.extra_select.keys() + self.field_names
@@ -602,9 +694,9 @@ class DateQuerySet(QuerySet):
"""
self.query = self.query.clone(klass=sql.DateQuery, setup=True)
self.query.select = []
- self.query.add_date_select(self._field.column, self._kind, self._order)
+ self.query.add_date_select(self._field, self._kind, self._order)
if self._field.null:
- self.query.add_filter(('%s__isnull' % self._field.name, True))
+ self.query.add_filter(('%s__isnull' % self._field.name, False))
def _clone(self, klass=None, setup=False, **kwargs):
c = super(DateQuerySet, self)._clone(klass, False, **kwargs)
@@ -619,6 +711,12 @@ class EmptyQuerySet(QuerySet):
super(EmptyQuerySet, self).__init__(model, query)
self._result_cache = []
+ def __and__(self, other):
+ return self._clone()
+
+ def __or__(self, other):
+ return other._clone()
+
def count(self):
return 0
@@ -682,19 +780,27 @@ def delete_objects(seen_objs):
Iterate through a list of seen classes, and remove any instances that are
referred to.
"""
- ordered_classes = seen_objs.keys()
- ordered_classes.reverse()
+ try:
+ ordered_classes = seen_objs.keys()
+ except CyclicDependency:
+ # if there is a cyclic dependency, we cannot in general delete
+ # the objects. However, if an appropriate transaction is set
+ # up, or if the database is lax enough, it will succeed.
+ # So for now, we go ahead and try anway.
+ ordered_classes = seen_objs.unordered_keys()
+ obj_pairs = {}
for cls in ordered_classes:
- seen_objs[cls] = seen_objs[cls].items()
- seen_objs[cls].sort()
+ items = seen_objs[cls].items()
+ items.sort()
+ obj_pairs[cls] = items
# Pre notify all instances to be deleted
- for pk_val, instance in seen_objs[cls]:
+ for pk_val, instance in items:
dispatcher.send(signal=signals.pre_delete, sender=cls,
instance=instance)
- pk_list = [pk for pk,instance in seen_objs[cls]]
+ pk_list = [pk for pk,instance in items]
del_query = sql.DeleteQuery(cls, connection)
del_query.delete_batch_related(pk_list)
@@ -705,15 +811,17 @@ def delete_objects(seen_objs):
# Now delete the actual data
for cls in ordered_classes:
- seen_objs[cls].reverse()
- pk_list = [pk for pk,instance in seen_objs[cls]]
+ items = obj_pairs[cls]
+ items.reverse()
+
+ pk_list = [pk for pk,instance in items]
del_query = sql.DeleteQuery(cls, connection)
del_query.delete_batch(pk_list)
# Last cleanup; set NULLs where there once was a reference to the
# object, NULL the primary key of the found objects, and perform
# post-notification.
- for pk_val, instance in seen_objs[cls]:
+ for pk_val, instance in items:
for field in cls._meta.fields:
if field.rel and field.null and field.rel.to in seen_objs:
setattr(instance, field.attname, None)
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index 3044882a86..e8d10bc55b 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -610,6 +610,10 @@ class Query(object):
alias = joins[-1]
col = target.column
+ # Must use left outer joins for nullable fields.
+ for join in joins:
+ self.promote_alias(join)
+
# If we get to this point and the field is a relation to another model,
# append the default ordering for that model.
if field.rel and len(joins) > 1 and opts.ordering:
@@ -631,8 +635,10 @@ class Query(object):
# We have to do the same "final join" optimisation as in
# add_filter, since the final column might not otherwise be part of
# the select set (so we can't order on it).
- join = self.alias_map[alias]
- if col == join[RHS_JOIN_COL]:
+ while 1:
+ join = self.alias_map[alias]
+ if col != join[RHS_JOIN_COL]:
+ break
self.unref_alias(alias)
alias = join[LHS_ALIAS]
col = join[LHS_JOIN_COL]
@@ -679,12 +685,16 @@ class Query(object):
for the join to contain NULL values on the left. If 'unconditional' is
False, the join is only promoted if it is nullable, otherwise it is
always promoted.
+
+ Returns True if the join was promoted.
"""
if ((unconditional or self.alias_map[alias][NULLABLE]) and
self.alias_map[alias] != self.LOUTER):
data = list(self.alias_map[alias])
data[JOIN_TYPE] = self.LOUTER
self.alias_map[alias] = tuple(data)
+ return True
+ return False
def change_aliases(self, change_map):
"""
@@ -826,6 +836,10 @@ class Query(object):
if not always_create:
for alias in self.join_map.get(t_ident, ()):
if alias not in exclusions:
+ if lhs_table and not self.alias_refcount[self.alias_map[alias][LHS_ALIAS]]:
+ # The LHS of this join tuple is no longer part of the
+ # query, so skip this possibility.
+ continue
self.ref_alias(alias)
if promote:
self.promote_alias(alias)
@@ -985,20 +999,22 @@ class Query(object):
col = target.column
alias = join_list[-1]
- if final > 1:
+ while final > 1:
# An optimization: if the final join is against the same column as
# we are comparing against, we can go back one step in the join
- # chain and compare against the lhs of the join instead. The result
- # (potentially) involves one less table join.
+ # chain and compare against the lhs of the join instead (and then
+ # repeat the optimization). The result, potentially, involves less
+ # table joins.
join = self.alias_map[alias]
- if col == join[RHS_JOIN_COL]:
- self.unref_alias(alias)
- alias = join[LHS_ALIAS]
- col = join[LHS_JOIN_COL]
- join_list = join_list[:-1]
- final -= 1
- if final == penultimate:
- penultimate = last.pop()
+ if col != join[RHS_JOIN_COL]:
+ break
+ self.unref_alias(alias)
+ alias = join[LHS_ALIAS]
+ col = join[LHS_JOIN_COL]
+ join_list = join_list[:-1]
+ final -= 1
+ if final == penultimate:
+ penultimate = last.pop()
if (lookup_type == 'isnull' and value is True and not negate and
final > 1):
@@ -1033,17 +1049,27 @@ class Query(object):
self.promote_alias(table)
self.where.add((alias, col, field, lookup_type, value), connector)
+
if negate:
for alias in join_list:
self.promote_alias(alias)
- if final > 1 and lookup_type != 'isnull':
- for alias in join_list:
- if self.alias_map[alias] == self.LOUTER:
- j_col = self.alias_map[alias][RHS_JOIN_COL]
- entry = Node([(alias, j_col, None, 'isnull', True)])
- entry.negate()
- self.where.add(entry, AND)
- break
+ if lookup_type != 'isnull':
+ if final > 1:
+ for alias in join_list:
+ if self.alias_map[alias][JOIN_TYPE] == self.LOUTER:
+ j_col = self.alias_map[alias][RHS_JOIN_COL]
+ entry = Node([(alias, j_col, None, 'isnull', True)])
+ entry.negate()
+ self.where.add(entry, AND)
+ break
+ elif not (lookup_type == 'in' and not value):
+ # Leaky abstraction artifact: We have to specifically
+ # exclude the "foo__in=[]" case from this handling, because
+ # it's short-circuited in the Where class.
+ entry = Node([(alias, col, field, 'isnull', True)])
+ entry.negate()
+ self.where.add(entry, AND)
+
if can_reuse is not None:
can_reuse.update(join_list)
@@ -1294,10 +1320,12 @@ class Query(object):
final_alias = join[LHS_ALIAS]
col = join[LHS_JOIN_COL]
joins = joins[:-1]
+ promote = False
for join in joins[1:]:
# Only nullable aliases are promoted, so we don't end up
# doing unnecessary left outer joins here.
- self.promote_alias(join)
+ if self.promote_alias(join, promote):
+ promote = True
self.select.append((final_alias, col))
self.select_fields.append(field)
except MultiJoin:
diff --git a/django/db/models/sql/subqueries.py b/django/db/models/sql/subqueries.py
index 28436abede..0bb741d706 100644
--- a/django/db/models/sql/subqueries.py
+++ b/django/db/models/sql/subqueries.py
@@ -357,12 +357,14 @@ class DateQuery(Query):
date = typecast_timestamp(str(date))
yield date
- def add_date_select(self, column, lookup_type, order='ASC'):
+ def add_date_select(self, field, lookup_type, order='ASC'):
"""
Converts the query into a date extraction query.
"""
- alias = self.join((None, self.model._meta.db_table, None, None))
- select = Date((alias, column), lookup_type,
+ result = self.setup_joins([field.name], self.get_meta(),
+ self.get_initial_alias(), False)
+ alias = result[3][-1]
+ select = Date((alias, field.column), lookup_type,
self.connection.ops.date_trunc_sql)
self.select = [select]
self.select_fields = [None]
diff --git a/django/middleware/common.py b/django/middleware/common.py
index 3d57fa4367..5cb7ca1bd3 100644
--- a/django/middleware/common.py
+++ b/django/middleware/common.py
@@ -108,7 +108,7 @@ class CommonMiddleware(object):
if response.has_header('ETag'):
etag = response['ETag']
else:
- etag = md5.new(response.content).hexdigest()
+ etag = '"%s"' % md5.new(response.content).hexdigest()
if response.status_code >= 200 and response.status_code < 300 and request.META.get('HTTP_IF_NONE_MATCH') == etag:
cookies = response.cookies
response = http.HttpResponseNotModified()
diff --git a/django/newforms/fields.py b/django/newforms/fields.py
index 08e8b842ec..dfe46a2e3e 100644
--- a/django/newforms/fields.py
+++ b/django/newforms/fields.py
@@ -514,7 +514,6 @@ class URLField(RegexField):
return value
if self.verify_exists:
import urllib2
- from django.conf import settings
headers = {
"Accept": "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
"Accept-Language": "en-us,en;q=0.5",
diff --git a/django/newforms/models.py b/django/newforms/models.py
index 0590839b25..eb6d01e787 100644
--- a/django/newforms/models.py
+++ b/django/newforms/models.py
@@ -285,11 +285,17 @@ class ModelChoiceIterator(object):
def __iter__(self):
if self.field.empty_label is not None:
yield (u"", self.field.empty_label)
- for obj in self.queryset:
- yield (obj.pk, self.field.label_from_instance(obj))
- # Clear the QuerySet cache if required.
- if not self.field.cache_choices:
- self.queryset._result_cache = None
+ if self.field.cache_choices:
+ if self.field.choice_cache is None:
+ self.field.choice_cache = [
+ (obj.pk, self.field.label_from_instance(obj))
+ for obj in self.queryset.all()
+ ]
+ for choice in self.field.choice_cache:
+ yield choice
+ else:
+ for obj in self.queryset.all():
+ yield (obj.pk, self.field.label_from_instance(obj))
class ModelChoiceField(ChoiceField):
"""A ChoiceField whose choices are a model QuerySet."""
@@ -311,6 +317,7 @@ class ModelChoiceField(ChoiceField):
Field.__init__(self, required, widget, label, initial, help_text,
*args, **kwargs)
self.queryset = queryset
+ self.choice_cache = None
def _get_queryset(self):
return self._queryset
@@ -346,13 +353,7 @@ class ModelChoiceField(ChoiceField):
# the queryset.
return ModelChoiceIterator(self)
- def _set_choices(self, value):
- # This method is copied from ChoiceField._set_choices(). It's necessary
- # because property() doesn't allow a subclass to overwrite only
- # _get_choices without implementing _set_choices.
- self._choices = self.widget.choices = list(value)
-
- choices = property(_get_choices, _set_choices)
+ choices = property(_get_choices, ChoiceField._set_choices)
def clean(self, value):
Field.clean(self, value)
diff --git a/django/newforms/widgets.py b/django/newforms/widgets.py
index 20a7cab469..ebbf2ab727 100644
--- a/django/newforms/widgets.py
+++ b/django/newforms/widgets.py
@@ -281,8 +281,12 @@ class RadioInput(StrAndUnicode):
self.index = index
def __unicode__(self):
- return mark_safe(u'' % (self.tag(),
- conditional_escape(force_unicode(self.choice_label))))
+ if 'id' in self.attrs:
+ label_for = ' for="%s_%s"' % (self.attrs['id'], self.index)
+ else:
+ label_for = ''
+ choice_label = conditional_escape(force_unicode(self.choice_label))
+ return mark_safe(u'' % (label_for, self.tag(), choice_label))
def is_checked(self):
return self.value == self.choice_value
@@ -364,11 +368,15 @@ class CheckboxSelectMultiple(SelectMultiple):
# so that the checkboxes don't all have the same ID attribute.
if has_id:
final_attrs = dict(final_attrs, id='%s_%s' % (attrs['id'], i))
+ label_for = u' for="%s"' % final_attrs['id']
+ else:
+ label_for = ''
+
cb = CheckboxInput(final_attrs, check_test=lambda value: value in str_values)
option_value = force_unicode(option_value)
rendered_cb = cb.render(name, option_value)
- output.append(u'' % (rendered_cb,
- conditional_escape(force_unicode(option_label))))
+ option_label = conditional_escape(force_unicode(option_label))
+ output.append(u'' % (label_for, rendered_cb, option_label))
output.append(u'
')
return mark_safe(u'\n'.join(output))
diff --git a/django/template/defaulttags.py b/django/template/defaulttags.py
index cf3b35b4cc..01c43ee86f 100644
--- a/django/template/defaulttags.py
+++ b/django/template/defaulttags.py
@@ -39,12 +39,11 @@ class CommentNode(Node):
class CycleNode(Node):
def __init__(self, cyclevars, variable_name=None):
- self.cycle_iter = itertools_cycle(cyclevars)
+ self.cycle_iter = itertools_cycle([Variable(v) for v in cyclevars])
self.variable_name = variable_name
def render(self, context):
- value = self.cycle_iter.next()
- value = Variable(value).resolve(context)
+ value = self.cycle_iter.next().resolve(context)
if self.variable_name:
context[self.variable_name] = value
return value
@@ -162,10 +161,12 @@ class IfChangedNode(Node):
self.nodelist = nodelist
self._last_seen = None
self._varlist = map(Variable, varlist)
+ self._id = str(id(self))
def render(self, context):
- if 'forloop' in context and context['forloop']['first']:
+ if 'forloop' in context and self._id not in context['forloop']:
self._last_seen = None
+ context['forloop'][self._id] = 1
try:
if self._varlist:
# Consider multiple parameters. This automatically behaves
@@ -452,17 +453,17 @@ def cycle(parser, token):
...
...
- You can use any number of values, seperated by spaces. Commas can also
+ You can use any number of values, separated by spaces. Commas can also
be used to separate values; if a comma is used, the cycle values are
interpreted as literal strings.
"""
# Note: This returns the exact same node on each {% cycle name %} call;
# that is, the node object returned from {% cycle a b c as name %} and the
- # one returned from {% cycle name %} are the exact same object. This
+ # one returned from {% cycle name %} are the exact same object. This
# shouldn't cause problems (heh), but if it does, now you know.
#
- # Ugly hack warning: this stuffs the named template dict into parser so
+ # Ugly hack warning: This stuffs the named template dict into parser so
# that names are only unique within each template (as opposed to using
# a global variable, which would make cycle names have to be unique across
# *all* templates.
@@ -481,8 +482,7 @@ def cycle(parser, token):
# {% cycle foo %} case.
name = args[1]
if not hasattr(parser, '_namedCycleNodes'):
- raise TemplateSyntaxError("No named cycles in template."
- " '%s' is not defined" % name)
+ raise TemplateSyntaxError("No named cycles in template. '%s' is not defined" % name)
if not name in parser._namedCycleNodes:
raise TemplateSyntaxError("Named cycle '%s' does not exist" % name)
return parser._namedCycleNodes[name]
@@ -682,8 +682,10 @@ ifnotequal = register.tag(ifnotequal)
def do_if(parser, token):
"""
The ``{% if %}`` tag evaluates a variable, and if that variable is "true"
- (i.e. exists, is not empty, and is not a false boolean value) the contents
- of the block are output::
+ (i.e., exists, is not empty, and is not a false boolean value), the
+ contents of the block are output:
+
+ ::
{% if athlete_list %}
Number of athletes: {{ athlete_list|count }}
diff --git a/django/template/loader_tags.py b/django/template/loader_tags.py
index 00ae99bbf9..38b2fff9fd 100644
--- a/django/template/loader_tags.py
+++ b/django/template/loader_tags.py
@@ -69,10 +69,6 @@ class ExtendsNode(Node):
def render(self, context):
compiled_parent = self.get_parent(context)
- pos = 0
- while isinstance(compiled_parent.nodelist[pos], TextNode):
- pos += 1
- parent_is_child = isinstance(compiled_parent.nodelist[pos], ExtendsNode)
parent_blocks = dict([(n.name, n) for n in compiled_parent.nodelist.get_nodes_by_type(BlockNode)])
for block_node in self.nodelist.get_nodes_by_type(BlockNode):
# Check for a BlockNode with this node's name, and replace it if found.
@@ -83,8 +79,16 @@ class ExtendsNode(Node):
# parent block might be defined in the parent's *parent*, so we
# add this BlockNode to the parent's ExtendsNode nodelist, so
# it'll be checked when the parent node's render() is called.
- if parent_is_child:
- compiled_parent.nodelist[pos].nodelist.append(block_node)
+
+ # Find out if the parent template has a parent itself
+ for node in compiled_parent.nodelist:
+ if not isinstance(node, TextNode):
+ # If the first non-text node is an extends, handle it.
+ if isinstance(node, ExtendsNode):
+ node.nodelist.append(block_node)
+ # Extends must be the first non-text node, so once you find
+ # the first non-text node you can stop looking.
+ break
else:
# Keep any existing parents and add a new one. Used by BlockNode.
parent_block.parent = block_node.parent
diff --git a/django/templatetags/cache.py b/django/templatetags/cache.py
index 4436b15d6e..07bd590fba 100644
--- a/django/templatetags/cache.py
+++ b/django/templatetags/cache.py
@@ -1,4 +1,4 @@
-from django.template import Library, Node, TemplateSyntaxError
+from django.template import Library, Node, TemplateSyntaxError, Variable, VariableDoesNotExist
from django.template import resolve_variable
from django.core.cache import cache
from django.utils.encoding import force_unicode
@@ -6,20 +6,27 @@ from django.utils.encoding import force_unicode
register = Library()
class CacheNode(Node):
- def __init__(self, nodelist, expire_time, fragment_name, vary_on):
+ def __init__(self, nodelist, expire_time_var, fragment_name, vary_on):
self.nodelist = nodelist
- self.expire_time = expire_time
+ self.expire_time_var = Variable(expire_time_var)
self.fragment_name = fragment_name
self.vary_on = vary_on
def render(self, context):
+ try:
+ expire_time = self.expire_time_var.resolve(context)
+ except VariableDoesNotExist:
+ raise TemplateSyntaxError('"cache" tag got an unknkown variable: %r' % self.expire_time_var.var)
+ try:
+ expire_time = int(expire_time)
+ except (ValueError, TypeError):
+ raise TemplateSyntaxError('"cache" tag got a non-integer timeout value: %r' % expire_time)
# Build a unicode key for this fragment and all vary-on's.
- cache_key = u':'.join([self.fragment_name] + \
- [force_unicode(resolve_variable(var, context)) for var in self.vary_on])
+ cache_key = u':'.join([self.fragment_name] + [force_unicode(resolve_variable(var, context)) for var in self.vary_on])
value = cache.get(cache_key)
if value is None:
value = self.nodelist.render(context)
- cache.set(cache_key, value, self.expire_time)
+ cache.set(cache_key, value, expire_time)
return value
def do_cache(parser, token):
@@ -48,10 +55,6 @@ def do_cache(parser, token):
tokens = token.contents.split()
if len(tokens) < 3:
raise TemplateSyntaxError(u"'%r' tag requires at least 2 arguments." % tokens[0])
- try:
- expire_time = int(tokens[1])
- except ValueError:
- raise TemplateSyntaxError(u"First argument to '%r' must be an integer (got '%s')." % (tokens[0], tokens[1]))
- return CacheNode(nodelist, expire_time, tokens[2], tokens[3:])
+ return CacheNode(nodelist, tokens[1], tokens[2], tokens[3:])
register.tag('cache', do_cache)
diff --git a/django/utils/cache.py b/django/utils/cache.py
index 4fcf493944..603199cc7e 100644
--- a/django/utils/cache.py
+++ b/django/utils/cache.py
@@ -104,7 +104,7 @@ def patch_response_headers(response, cache_timeout=None):
if cache_timeout < 0:
cache_timeout = 0 # Can't have max-age negative
if not response.has_header('ETag'):
- response['ETag'] = md5.new(response.content).hexdigest()
+ response['ETag'] = '"%s"' % md5.new(response.content).hexdigest()
if not response.has_header('Last-Modified'):
response['Last-Modified'] = http_date()
if not response.has_header('Expires'):
diff --git a/django/utils/datastructures.py b/django/utils/datastructures.py
index 4c278c0d8e..21a72f2d1e 100644
--- a/django/utils/datastructures.py
+++ b/django/utils/datastructures.py
@@ -343,3 +343,34 @@ class FileDict(dict):
d = dict(self, content='')
return dict.__repr__(d)
return dict.__repr__(self)
+
+class DictWrapper(dict):
+ """
+ Wraps accesses to a dictionary so that certain values (those starting with
+ the specified prefix) are passed through a function before being returned.
+ The prefix is removed before looking up the real value.
+
+ Used by the SQL construction code to ensure that values are correctly
+ quoted before being used.
+ """
+ def __init__(self, data, func, prefix):
+ super(DictWrapper, self).__init__(data)
+ self.func = func
+ self.prefix = prefix
+
+ def __getitem__(self, key):
+ """
+ Retrieves the real value after stripping the prefix string (if
+ present). If the prefix is present, pass the value through self.func
+ before returning, otherwise return the raw value.
+ """
+ if key.startswith(self.prefix):
+ use_func = True
+ key = key[len(self.prefix):]
+ else:
+ use_func = False
+ value = super(DictWrapper, self).__getitem__(key)
+ if use_func:
+ return self.func(value)
+ return value
+
diff --git a/django/utils/html.py b/django/utils/html.py
index 17ff78a2b5..747af52879 100644
--- a/django/utils/html.py
+++ b/django/utils/html.py
@@ -76,20 +76,20 @@ def urlize(text, trim_url_limit=None, nofollow=False, autoescape=False):
"""
Converts any URLs in text into clickable links.
- Works on http://, https://, and www. links. Links can have trailing
- punctuation (periods, commas, close-parens) and leading punctuation
- (opening parens) and it'll still do the right thing.
+ Works on http://, https://, www. links and links ending in .org, .net or
+ .com. Links can have trailing punctuation (periods, commas, close-parens)
+ and leading punctuation (opening parens) and it'll still do the right
+ thing.
If trim_url_limit is not None, the URLs in link text longer than this limit
will truncated to trim_url_limit-3 characters and appended with an elipsis.
If nofollow is True, the URLs in link text will get a rel="nofollow"
attribute.
+
+ If autoescape is True, the link text and URLs will get autoescaped.
"""
- if autoescape:
- trim_url = lambda x, limit=trim_url_limit: conditional_escape(limit is not None and (len(x) > limit and ('%s...' % x[:max(0, limit - 3)])) or x)
- else:
- trim_url = lambda x, limit=trim_url_limit: limit is not None and (len(x) > limit and ('%s...' % x[:max(0, limit - 3)])) or x
+ trim_url = lambda x, limit=trim_url_limit: limit is not None and (len(x) > limit and ('%s...' % x[:max(0, limit - 3)])) or x
safe_input = isinstance(text, SafeData)
words = word_split_re.split(force_unicode(text))
nofollow_attr = nofollow and ' rel="nofollow"' or ''
@@ -97,30 +97,30 @@ def urlize(text, trim_url_limit=None, nofollow=False, autoescape=False):
match = punctuation_re.match(word)
if match:
lead, middle, trail = match.groups()
- if safe_input:
- middle = mark_safe(middle)
- if middle.startswith('www.') or ('@' not in middle and not middle.startswith('http://') and \
- len(middle) > 0 and middle[0] in string.ascii_letters + string.digits and \
- (middle.endswith('.org') or middle.endswith('.net') or middle.endswith('.com'))):
- middle = 'http://%s' % middle
+ # Make URL we want to point to.
+ url = None
if middle.startswith('http://') or middle.startswith('https://'):
url = urlquote(middle, safe='/&=:;#?+*')
- if autoescape and not safe_input:
- url = escape(url)
- trimmed_url = trim_url(middle)
- middle = '%s' % (url, nofollow_attr,
- trimmed_url)
- elif '@' in middle and not middle.startswith('www.') and \
- not ':' in middle and simple_email_re.match(middle):
- if autoescape:
- middle = conditional_escape(middle)
- middle = '%s' % (middle, middle)
- if lead + middle + trail != word:
+ elif middle.startswith('www.') or ('@' not in middle and \
+ len(middle) > 0 and middle[0] in string.ascii_letters + string.digits and \
+ (middle.endswith('.org') or middle.endswith('.net') or middle.endswith('.com'))):
+ url = urlquote('http://%s' % middle, safe='/&=:;#?+*')
+ elif '@' in middle and not ':' in middle and simple_email_re.match(middle):
+ url = 'mailto:%s' % middle
+ nofollow_attr = ''
+ # Make link.
+ if url:
+ trimmed = trim_url(middle)
if autoescape and not safe_input:
lead, trail = escape(lead), escape(trail)
+ url, trimmed = escape(url), escape(trimmed)
+ middle = '%s' % (url, nofollow_attr, trimmed)
words[i] = mark_safe('%s%s%s' % (lead, middle, trail))
- elif autoescape and not safe_input:
- words[i] = escape(word)
+ else:
+ if safe_input:
+ words[i] = mark_safe(word)
+ elif autoescape:
+ words[i] = escape(word)
elif safe_input:
words[i] = mark_safe(word)
elif autoescape:
diff --git a/django/views/defaults.py b/django/views/defaults.py
index b4dfc1e1eb..8a8fa474b9 100644
--- a/django/views/defaults.py
+++ b/django/views/defaults.py
@@ -68,8 +68,7 @@ def shortcut(request, content_type_id, object_id):
def page_not_found(request, template_name='404.html'):
"""
- Default 404 handler, which looks for the requested URL in the redirects
- table, redirects if found, and displays 404 page if not redirected.
+ Default 404 handler.
Templates: `404.html`
Context:
diff --git a/docs/cache.txt b/docs/cache.txt
index e7e1cdd791..3318b2ad4a 100644
--- a/docs/cache.txt
+++ b/docs/cache.txt
@@ -336,6 +336,17 @@ template tag to uniquely identify the cache fragment::
It's perfectly fine to specify more than one argument to identify the fragment.
Simply pass as many arguments to ``{% cache %}`` as you need.
+The cache timeout can be a template variable, as long as the template variable
+resolves to an integer value. For example, if the template variable
+``my_timeout`` is set to the value ``600``, then the following two examples are
+equivalent::
+
+ {% cache 600 sidebar %} ... {% endcache %}
+ {% cache my_timeout sidebar %} ... {% endcache %}
+
+This feature is useful in avoiding repetition in templates. You can set the
+timeout in a variable, in one place, and just reuse that value.
+
The low-level cache API
=======================
diff --git a/docs/contributing.txt b/docs/contributing.txt
index c5f98bec11..686c440c96 100644
--- a/docs/contributing.txt
+++ b/docs/contributing.txt
@@ -238,14 +238,14 @@ Since a picture is worth a thousand words, let's start there:
We've got two official roles here:
- * Core developers: people with commit access who make the big decisions
+ * Core developers: people with commit access who make the big decisions
and write the bulk of the code.
* Ticket triagers: trusted community members with a proven history of
working with the Django community. As a result of this history, they
have been entrusted by the core developers to make some of the smaller
decisions about tickets.
-
+
Second, note the five triage stages:
1. A ticket starts as "Unreviewed", meaning that nobody has examined
@@ -254,7 +254,7 @@ Second, note the five triage stages:
2. "Design decision needed" means "this concept requires a design
decision," which should be discussed either in the ticket comments or on
`django-developers`_. The "Design decision needed" step will generally
- only be used for feature requests. It can also be used for issues
+ only be used for feature requests. It can also be used for issues
that *might* be bugs, depending on opinion or interpretation. Obvious
bugs (such as crashes, incorrect query results, or non-compliance with a
standard) skip this step and move straight to "Accepted".
@@ -317,7 +317,7 @@ A ticket can be resolved in a number of ways:
tickets, we keep all the discussion in one place, which helps everyone.
"worksforme"
- Used when the the ticket doesn't contain enough detail to replicate
+ Used when the the ticket doesn't contain enough detail to replicate
the original bug.
If you believe that the ticket was closed in error -- because you're
@@ -332,50 +332,49 @@ reopen tickets that have been marked as "wontfix" by core developers.
Triage by the general community
-------------------------------
-Although the Core Developers and Ticket Triagers make the big decisions in
-the ticket triage process, there is also a lot that general community
+Although the core developers and ticket triagers make the big decisions in
+the ticket triage process, there's also a lot that general community
members can do to help the triage process. In particular, you can help out by:
- * Closing "Unreviewed" tickets as "invalid", "worksforme", or "duplicate".
+ * Closing "Unreviewed" tickets as "invalid", "worksforme" or "duplicate."
- * Promoting "Unreviewed" tickets to "Design Decision Required" if there
- is a design decision that needs to be made, or "Accepted" if they are
- an obvious bug.
+ * Promoting "Unreviewed" tickets to "Design decision needed" if a design
+ decision needs to be made, or "Accepted" in case of obvious bugs.
- * Correcting the "Needs Tests", "Needs documentation", or "Has Patch" flags
+ * Correcting the "Needs tests", "Needs documentation", or "Has patch" flags
for tickets where they are incorrectly set.
-
+
* Checking that old tickets are still valid. If a ticket hasn't seen
any activity in a long time, it's possible that the problem has been
- fixed, but the ticket hasn't been closed.
+ fixed but the ticket hasn't yet been closed.
- * Contact the owners of tickets that have been claimed, but have not seen
- any recent activity. If the owner doesn't respond after a week or so,
+ * Contacting the owners of tickets that have been claimed but have not seen
+ any recent activity. If the owner doesn't respond after a week or so,
remove the owner's claim on the ticket.
* Identifying trends and themes in the tickets. If there a lot of bug reports
- about a particular part of Django, it possibly indicates that we need
- to consider refactoring that part of the code. If a trend is emerging,
- you should raise it for discussion (referencing the relevant tickets)
- on `django-developers`_.
+ about a particular part of Django, it may indicate we should consider
+ refactoring that part of the code. If a trend is emerging, you should
+ raise it for discussion (referencing the relevant tickets) on
+ `django-developers`_.
-However, we do ask that as a general community member working in the
-ticket database:
+However, we do ask the following of all general community members working in
+the ticket database:
- * Please **don't** close tickets as "wontfix". The core developers will
- make the final determination of the fate of a ticket, usually after
+ * Please **don't** close tickets as "wontfix." The core developers will
+ make the final determination of the fate of a ticket, usually after
consultation with the community.
-
- * Please **don't** promote tickets to "Ready for checkin" unless they are
- *trivial* changes - for example, spelling mistakes or
- broken links in documentation.
- * Please **don't** reverse a decision that has been made by a core
- developer. If you disagree with a discussion that has been made,
+ * Please **don't** promote tickets to "Ready for checkin" unless they are
+ *trivial* changes -- for example, spelling mistakes or broken links in
+ documentation.
+
+ * Please **don't** reverse a decision that has been made by a core
+ developer. If you disagree with a discussion that has been made,
please post a message to `django-developers`_.
* Please be conservative in your actions. If you're unsure if you should
- be making a change, don't make the change - leave a comment with your
+ be making a change, don't make the change -- leave a comment with your
concerns on the ticket, or post a message to `django-developers`_.
Submitting and maintaining translations
@@ -702,13 +701,8 @@ Django tarball. It's our policy to make sure all tests pass at all times.
The tests cover:
* 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/``).
+ * Everything else in core Django code (``tests/regressiontests``)
+ * Contrib apps (``django/contrib//tests``, see below)
We appreciate any and all contributions to the test suite!
@@ -744,6 +738,24 @@ If you're using another backend:
deleted when the tests are finished. This means your user account needs
permission to execute ``CREATE DATABASE``.
+If you want to run the full suite of tests, you'll need to install a number of
+dependencies:
+
+ * PyYAML_
+ * Markdown_
+ * Textile_
+ * Docutils_
+ * setuptools_
+
+Each of these dependencies is optional. If you're missing any of them, the
+associated tests will be skipped.
+
+.. _PyYAML: http://pyyaml.org/wiki/PyYAML
+.. _Markdown: http://pypi.python.org/pypi/Markdown/1.7
+.. _Textile: http://pypi.python.org/pypi/textile
+.. _docutils: http://pypi.python.org/pypi/docutils/0.4
+.. _setuptools: http://pypi.python.org/pypi/setuptools/
+
To run a subset of the unit tests, append the names of the test modules to the
``runtests.py`` command line. See the list of directories in
``tests/modeltests`` and ``tests/regressiontests`` for module names.
@@ -755,6 +767,22 @@ for generic relations and internationalization, type::
PYTHONPATH=..
./runtests.py --settings=settings generic_relations i18n
+Contrib apps
+------------
+
+Tests for apps in ``django/contrib/`` go in their respective directories under
+``django/contrib/``, in a ``tests.py`` file. (You can split the tests over
+multiple modules by using a ``tests`` directory in the normal Python way.)
+
+For the tests to be found, a ``models.py`` file must exist (it doesn't
+have to have anything in it). If you have URLs that need to be
+mapped, put them in ``tests/urls.py``.
+
+To run tests for just one contrib app (e.g. ``markup``), use the same
+method as above::
+
+ ./runtests.py --settings=settings markup
+
Requesting features
===================
diff --git a/docs/db-api.txt b/docs/db-api.txt
index 4e1c2c5791..f80d63797a 100644
--- a/docs/db-api.txt
+++ b/docs/db-api.txt
@@ -382,7 +382,7 @@ Pickling QuerySets
If you pickle_ a ``QuerySet``, this will also force all the results to be
loaded into memory prior to pickling. This is because pickling is usually used
-as a precursor to caching and when the cached queryset is reloaded, you want
+as a precursor to caching and when the cached ``QuerySet`` is reloaded, you want
the results to already be present. This means that when you unpickle a
``QuerySet``, it contains the results at the moment it was pickled, rather
than the results that are currently in the database.
@@ -1382,7 +1382,7 @@ and then converted into a query using the ``query`` attribute::
This queryset will be evaluated as subselect statement::
- SELET ... WHERE blog.id IN (SELECT id FROM ... WHERE NAME LIKE '%Cheddar%')
+ SELECT ... WHERE blog.id IN (SELECT id FROM ... WHERE NAME LIKE '%Cheddar%')
startswith
~~~~~~~~~~
@@ -2040,7 +2040,7 @@ automatically saved to the database.
One-to-one relationships
------------------------
-One-to-one relationships are very similar to Many-to-one relationships.
+One-to-one relationships are very similar to many-to-one relationships.
If you define a OneToOneField on your model, instances of that model will have
access to the related object via a simple attribute of the model.
@@ -2053,8 +2053,8 @@ For example::
ed = EntryDetail.objects.get(id=2)
ed.entry # Returns the related Entry object.
-The difference comes in reverse queries. The related model in a One-to-one
-relationship also has access to a ``Manager`` object; however, that ``Manager``
+The difference comes in "reverse" queries. The related model in a one-to-one
+relationship also has access to a ``Manager`` object, but that ``Manager``
represents a single object, rather than a collection of objects::
e = Entry.objects.get(id=2)
diff --git a/docs/django-admin.txt b/docs/django-admin.txt
index 1d4dbf10be..309166fe94 100644
--- a/docs/django-admin.txt
+++ b/docs/django-admin.txt
@@ -438,6 +438,10 @@ means any Python code changes you make while the server is running will *not*
take effect if the particular Python modules have already been loaded into
memory.
+Example usage::
+
+ django-admin.py runserver --noreload
+
Examples of using different ports and addresses
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -467,14 +471,6 @@ documentation.
.. _serving static files: ../static_files/
-Turning off auto-reload
-~~~~~~~~~~~~~~~~~~~~~~~
-
-To disable auto-reloading of code while the development server is running, use the
-``--noreload`` option, like so::
-
- django-admin.py runserver --noreload
-
shell
-----
@@ -760,6 +756,17 @@ variable.
Note that this option is unnecessary in ``manage.py``, because it uses
``settings.py`` from the current project by default.
+--traceback
+-----------
+
+Example usage::
+
+ django-admin.py syncdb --traceback
+
+By default, ``django-admin.py`` will show a simple error message whenever an
+error occurs. If you specify ``--traceback``, ``django-admin.py`` will
+output a full stack trace whenever an exception is raised.
+
Extra niceties
==============
diff --git a/docs/form_preview.txt b/docs/form_preview.txt
index e6f9b05f25..e03de36187 100644
--- a/docs/form_preview.txt
+++ b/docs/form_preview.txt
@@ -69,12 +69,10 @@ How to use ``FormPreview``
...and add the following line to the appropriate model in your URLconf::
- (r'^post/$', SomeModelFormPreview(forms.models.form_for_model(SomeModel))),
-
- Or, if you already have a Form class defined for the model::
-
(r'^post/$', SomeModelFormPreview(SomeModelForm)),
+ where ``SomeModelForm`` is a Form or ModelForm class for the model.
+
4. Run the Django server and visit ``/post/`` in your browser.
.. _template loader docs: ../templates_python/#loader-types
diff --git a/docs/model-api.txt b/docs/model-api.txt
index 4ed4ede97a..1bed4ee818 100644
--- a/docs/model-api.txt
+++ b/docs/model-api.txt
@@ -662,8 +662,8 @@ Django will automatically add this field::
Thus, you don't need to set ``primary_key=True`` on any of your fields
unless you want to override the default primary-key behavior.
-``primary_key=True`` implies ``blank=False``, ``null=False`` and
-``unique=True``. Only one primary key is allowed on an object.
+``primary_key=True`` implies ``null=False`` and ``unique=True``. Only
+one primary key is allowed on an object.
``radio_admin``
~~~~~~~~~~~~~~~
@@ -681,7 +681,7 @@ set.
If ``True``, this field must be unique throughout the table.
This is enforced at the database level and at the Django admin-form level. If
-you try to add save a model with a duplicate value in a ``unique`` field, a
+you try to save a model with a duplicate value in a ``unique`` field, a
``django.db.IntegrityError`` will be raised by the model's ``save()`` method.
``unique_for_date``
@@ -822,7 +822,7 @@ relationship should work. All are optional:
======================= ============================================================
Argument Description
======================= ============================================================
- ``edit_inline`` If not ``False``, this related object is edited
+ ``edit_inline`` If ``True``, this related object is edited
"inline" on the related object's page. This means
that the object will not have its own admin
interface. Use either ``models.TABULAR`` or ``models.STACKED``,
@@ -2005,6 +2005,36 @@ In this way, you're tying the model's absolute URL to the view that is used
to display it, without repeating the URL information anywhere. You can still
use the ``get_absolute_url`` method in templates, as before.
+In some cases, such as the use of generic views or the re-use of
+custom views for multiple models, specifying the view function may
+confuse the reverse URL matcher (because multiple patterns point to
+the same view).
+
+For that problem, Django has **named URL patterns**. Using a named
+URL pattern, it's possible to give a name to a pattern, and then
+reference the name rather than the view function. A named URL
+pattern is defined by replacing the pattern tuple by a call to
+the ``url`` function)::
+
+ from django.conf.urls.defaults import *
+
+ url(r'^people/(\d+)/$',
+ 'django.views.generic.list_detail.object_detail',
+ name='people_view'),
+
+...and then using that name to perform the reverse URL resolution instead
+of the view name::
+
+ from django.db.models import permalink
+
+ def get_absolute_url(self):
+ return ('people_view', [str(self.id)])
+ get_absolute_url = permalink(get_absolute_url)
+
+More details on named URL patterns are in the `URL dispatch documentation`_.
+
+.. _URL dispatch documentation: ../url_dispatch/#naming-url-patterns
+
Executing custom SQL
--------------------
diff --git a/docs/modelforms.txt b/docs/modelforms.txt
index a76d797527..73335a03a2 100644
--- a/docs/modelforms.txt
+++ b/docs/modelforms.txt
@@ -182,6 +182,13 @@ supplied, ``save()`` will update that instance. If it's not supplied,
# Create a form to edit an existing Article.
>>> a = Article.objects.get(pk=1)
>>> f = ArticleForm(instance=a)
+ >>> f.save()
+
+ # Create a form to edit an existing Article, but use
+ # POST data to populate the form.
+ >>> a = Article.objects.get(pk=1)
+ >>> f = ArticleForm(request.POST, instance=a)
+ >>> f.save()
Note that ``save()`` will raise a ``ValueError`` if the data in the form
doesn't validate -- i.e., ``if form.errors``.
diff --git a/docs/newforms.txt b/docs/newforms.txt
index 25d80fda54..04e4c1aaa0 100644
--- a/docs/newforms.txt
+++ b/docs/newforms.txt
@@ -1382,6 +1382,20 @@ extra arguments:
as choices.
============== ========== ===============================================
+``FloatField``
+~~~~~~~~~~~~~~
+
+ * Default widget: ``TextInput``
+ * Empty value: ``None``
+ * Normalizes to: A Python float.
+ * Validates that the given value is an float. Leading and trailing
+ whitespace is allowed, as in Python's ``float()`` function.
+ * Error message keys: ``required``, ``invalid``, ``max_value``,
+ ``min_value``
+
+Takes two optional arguments for validation, ``max_value`` and ``min_value``.
+These control the range of values permitted in the field.
+
``ImageField``
~~~~~~~~~~~~~~
diff --git a/docs/sessions.txt b/docs/sessions.txt
index da083b7713..0c47f0deed 100644
--- a/docs/sessions.txt
+++ b/docs/sessions.txt
@@ -112,7 +112,7 @@ It also has these methods:
Sets a test cookie to determine whether the user's browser supports
cookies. Due to the way cookies work, you won't be able to test this
- until the user's next page request. See "Setting test cookies" below for
+ until the user's next page request. See `Setting test cookies`_ below for
more information.
* ``test_cookie_worked()``
@@ -120,7 +120,7 @@ It also has these methods:
Returns either ``True`` or ``False``, depending on whether the user's
browser accepted the test cookie. Due to the way cookies work, you'll
have to call ``set_test_cookie()`` on a previous, separate page request.
- See "Setting test cookies" below for more information.
+ See `Setting test cookies`_ below for more information.
* ``delete_test_cookie()``
diff --git a/docs/settings.txt b/docs/settings.txt
index 02e458fcda..3fe999d0d2 100644
--- a/docs/settings.txt
+++ b/docs/settings.txt
@@ -388,8 +388,13 @@ be able to give backtraces without seeing sensitive (or offensive) settings.
Still, note that there are always going to be sections of your debug output that
are inappropriate for public consumption. File paths, configuration options, and
-the like all give attackers extra information about your server. Never deploy a
-site with ``DEBUG`` turned on.
+the like all give attackers extra information about your server.
+
+It is also important to remember that when running with ``DEBUG`` turned on, Django
+will remember every SQL query it executes. This is useful when you are debugging,
+but on a production server, it will rapidly consume memory.
+
+Never deploy a site into production with ``DEBUG`` turned on.
DEBUG_PROPAGATE_EXCEPTIONS
--------------------------
@@ -958,7 +963,10 @@ See the `template documentation`_.
TEMPLATE_LOADERS
----------------
-Default: ``('django.template.loaders.filesystem.load_template_source',)``
+Default::
+
+ ('django.template.loaders.filesystem.load_template_source',
+ 'django.template.loaders.app_directories.load_template_source')
A tuple of callables (as strings) that know how to import templates from
various sources. See the `template documentation`_.
diff --git a/docs/templates.txt b/docs/templates.txt
index ea9f3fb6b2..3a557c1476 100644
--- a/docs/templates.txt
+++ b/docs/templates.txt
@@ -346,7 +346,7 @@ To avoid this problem, you have two options:
* One, you can make sure to run each untrusted variable through the
``escape`` filter (documented below), which converts potentially harmful
- HTML characters to unharmful ones. This was default the default solution
+ HTML characters to unharmful ones. This was the default solution
in Django for its first few years, but the problem is that it puts the
onus on *you*, the developer / template author, to ensure you're escaping
everything. It's easy to forget to escape data.
@@ -819,7 +819,7 @@ The 'ifchanged' block tag is used within a loop. It has two possible uses.
2. If given a variable, check whether that variable has changed. For
example, the following shows the date every time it changes, but
- only shows the hour if both the hour and the date has changed::
+ only shows the hour if both the hour and the date have changed::
{% for date in days %}
{% ifchanged date.date %} {{ date.date }} {% endifchanged %}
diff --git a/docs/templates_python.txt b/docs/templates_python.txt
index 43ef016ed4..a03ea215d2 100644
--- a/docs/templates_python.txt
+++ b/docs/templates_python.txt
@@ -1059,8 +1059,8 @@ Passing template variables to the tag
Although you can pass any number of arguments to a template tag using
``token.split_contents()``, the arguments are all unpacked as
-string literals. A little more work is required in order to dynamic content (a
-template variable) to a template tag as an argument.
+string literals. A little more work is required in order to pass dynamic
+content (a template variable) to a template tag as an argument.
While the previous examples have formatted the current time into a string and
returned the string, suppose you wanted to pass in a ``DateTimeField`` from an
@@ -1169,10 +1169,11 @@ Our earlier ``current_time`` function could thus be written like this::
In Python 2.4, the decorator syntax also works::
@register.simple_tag
- def current_time(token):
+ def current_time(format_string):
...
A couple of things to note about the ``simple_tag`` helper 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,
diff --git a/docs/tutorial01.txt b/docs/tutorial01.txt
index b84ecd5f7e..04863cc7fd 100644
--- a/docs/tutorial01.txt
+++ b/docs/tutorial01.txt
@@ -22,8 +22,8 @@ installed.
.. admonition:: Where to get help:
If you're having trouble going through this tutorial, please post a message
- to `django-users`_ or drop by `#django`_ on ``irc.freenode.net`` and we'll
- try to help.
+ to `django-users`_ or drop by `#django`_ on ``irc.freenode.net`` to chat
+ with other Django users who might be able to help.
.. _django-users: http://groups.google.com/group/django-users
.. _#django: irc://irc.freenode.net/django
diff --git a/extras/django_bash_completion b/extras/django_bash_completion
old mode 100644
new mode 100755
index 7b2b1947d8..c0f7c3516d
--- a/extras/django_bash_completion
+++ b/extras/django_bash_completion
@@ -44,7 +44,7 @@ _django_completion()
# Standalone options
opts="--help --settings --pythonpath --noinput --noreload --format --indent --verbosity --adminmedia --version"
# Actions
- actions="adminindex createcachetable dbshell diffsettings \
+ actions="adminindex createcachetable createsuperuser dbshell diffsettings \
dumpdata flush inspectdb loaddata reset runfcgi runserver \
shell sql sqlall sqlclear sqlcustom sqlflush sqlindexes \
sqlreset sqlsequencereset startapp startproject \
@@ -53,9 +53,10 @@ _django_completion()
action_shell_opts="--plain"
action_runfcgi_opts="host port socket method maxspare minspare maxchildren daemonize pidfile workdir"
- if [[ # django-admin.py, ./manage, manage.py
+ if [[ # django-admin.py, django-admin, ./manage, manage.py
( ${COMP_CWORD} -eq 1 &&
( ${COMP_WORDS[0]} == django-admin.py ||
+ ${COMP_WORDS[0]} == django-admin ||
${COMP_WORDS[0]} == ./manage.py ||
${COMP_WORDS[0]} == manage.py ) )
||
@@ -68,6 +69,11 @@ _django_completion()
( ${COMP_CWORD} -eq 2 &&
( $( basename -- ${COMP_WORDS[0]} ) == python?([1-9]\.[0-9]) ) &&
( $( basename -- ${COMP_WORDS[1]} ) == django-admin.py) &&
+ ( -r ${COMP_WORDS[1]} ) )
+ ||
+ ( ${COMP_CWORD} -eq 2 &&
+ ( $( basename -- ${COMP_WORDS[0]} ) == python?([1-9]\.[0-9]) ) &&
+ ( $( basename -- ${COMP_WORDS[1]} ) == django-admin) &&
( -r ${COMP_WORDS[1]} ) ) ]] ; then
case ${cur} in
@@ -142,7 +148,7 @@ _django_completion()
fi
}
-complete -F _django_completion django-admin.py manage.py
+complete -F _django_completion django-admin.py manage.py django-admin
# Support for multiple interpreters.
unset pythons
diff --git a/setup.py b/setup.py
index 3cbfc55460..081cdb4c4b 100644
--- a/setup.py
+++ b/setup.py
@@ -51,8 +51,8 @@ setup(
name = "Django",
version = version,
url = 'http://www.djangoproject.com/',
- author = 'Lawrence Journal-World',
- author_email = 'holovaty@gmail.com',
+ author = 'Django Software Foundation',
+ author_email = 'foundation@djangoproject.com',
description = 'A high-level Python Web framework that encourages rapid development and clean, pragmatic design.',
packages = packages,
data_files = data_files,
diff --git a/tests/modeltests/delete/__init__.py b/tests/modeltests/delete/__init__.py
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/tests/modeltests/delete/__init__.py
@@ -0,0 +1 @@
+
diff --git a/tests/modeltests/delete/models.py b/tests/modeltests/delete/models.py
new file mode 100644
index 0000000000..f5b423e9ff
--- /dev/null
+++ b/tests/modeltests/delete/models.py
@@ -0,0 +1,179 @@
+# coding: utf-8
+"""
+Tests for some corner cases with deleting.
+"""
+
+from django.db import models
+
+class DefaultRepr(object):
+ def __repr__(self):
+ return u"<%s: %s>" % (self.__class__.__name__, self.__dict__)
+
+class A(DefaultRepr, models.Model):
+ pass
+
+class B(DefaultRepr, models.Model):
+ a = models.ForeignKey(A)
+
+class C(DefaultRepr, models.Model):
+ b = models.ForeignKey(B)
+
+class D(DefaultRepr, models.Model):
+ c = models.ForeignKey(C)
+ a = models.ForeignKey(A)
+
+# Simplified, we have:
+# A
+# B -> A
+# C -> B
+# D -> C
+# D -> A
+
+# So, we must delete Ds first of all, then Cs then Bs then As.
+# However, if we start at As, we might find Bs first (in which
+# case things will be nice), or find Ds first.
+
+# Some mutually dependent models, but nullable
+class E(DefaultRepr, models.Model):
+ f = models.ForeignKey('F', null=True, related_name='e_rel')
+
+class F(DefaultRepr, models.Model):
+ e = models.ForeignKey(E, related_name='f_rel')
+
+
+__test__ = {'API_TESTS': """
+# First, some tests for the datastructure we use
+
+>>> from django.db.models.query import CollectedObjects
+
+>>> g = CollectedObjects()
+>>> g.add("key1", 1, "item1", None)
+False
+>>> g["key1"]
+{1: 'item1'}
+>>> g.add("key2", 1, "item1", "key1")
+False
+>>> g.add("key2", 2, "item2", "key1")
+False
+>>> g["key2"]
+{1: 'item1', 2: 'item2'}
+>>> g.add("key3", 1, "item1", "key1")
+False
+>>> g.add("key3", 1, "item1", "key2")
+True
+>>> g.ordered_keys()
+['key3', 'key2', 'key1']
+
+>>> g.add("key2", 1, "item1", "key3")
+True
+>>> g.ordered_keys()
+Traceback (most recent call last):
+ ...
+CyclicDependency: There is a cyclic dependency of items to be processed.
+
+
+
+# Due to the way that transactions work in the test harness,
+# doing m.delete() here can work but fail in a real situation,
+# since it may delete all objects, but not in the right order.
+# So we manually check that the order of deletion is correct.
+
+# Also, it is possible that the order is correct 'accidentally', due
+# solely to order of imports etc. To check this, we set the order
+# that 'get_models()' will retrieve to a known 'nice' order, and
+# then try again with a known 'tricky' order. Slightly naughty
+# access to internals here :-)
+
+>>> from django.db.models.loading import cache
+
+# Nice order
+>>> cache.app_models['delete'].keyOrder = ['a', 'b', 'c', 'd']
+>>> del A._meta._related_objects_cache
+>>> del B._meta._related_objects_cache
+>>> del C._meta._related_objects_cache
+>>> del D._meta._related_objects_cache
+
+>>> a1 = A()
+>>> a1.save()
+>>> b1 = B(a=a1)
+>>> b1.save()
+>>> c1 = C(b=b1)
+>>> c1.save()
+>>> d1 = D(c=c1, a=a1)
+>>> d1.save()
+
+>>> o = CollectedObjects()
+>>> a1._collect_sub_objects(o)
+>>> o.keys()
+[, , , ]
+>>> a1.delete()
+
+# Same again with a known bad order
+>>> cache.app_models['delete'].keyOrder = ['d', 'c', 'b', 'a']
+>>> del A._meta._related_objects_cache
+>>> del B._meta._related_objects_cache
+>>> del C._meta._related_objects_cache
+>>> del D._meta._related_objects_cache
+
+>>> a2 = A()
+>>> a2.save()
+>>> b2 = B(a=a2)
+>>> b2.save()
+>>> c2 = C(b=b2)
+>>> c2.save()
+>>> d2 = D(c=c2, a=a2)
+>>> d2.save()
+
+>>> o = CollectedObjects()
+>>> a2._collect_sub_objects(o)
+>>> o.keys()
+[, , , ]
+>>> a2.delete()
+
+# Tests for nullable related fields
+
+>>> g = CollectedObjects()
+>>> g.add("key1", 1, "item1", None)
+False
+>>> g.add("key2", 1, "item1", "key1", nullable=True)
+False
+>>> g.add("key1", 1, "item1", "key2")
+True
+>>> g.ordered_keys()
+['key1', 'key2']
+
+>>> e1 = E()
+>>> e1.save()
+>>> f1 = F(e=e1)
+>>> f1.save()
+>>> e1.f = f1
+>>> e1.save()
+
+# Since E.f is nullable, we should delete F first (after nulling out
+# the E.f field), then E.
+
+>>> o = CollectedObjects()
+>>> e1._collect_sub_objects(o)
+>>> o.keys()
+[, ]
+
+>>> e1.delete()
+
+>>> e2 = E()
+>>> e2.save()
+>>> f2 = F(e=e2)
+>>> f2.save()
+>>> e2.f = f2
+>>> e2.save()
+
+# Same deal as before, though we are starting from the other object.
+
+>>> o = CollectedObjects()
+>>> f2._collect_sub_objects(o)
+>>> o.keys()
+[, ]
+
+>>> f2.delete()
+
+"""
+}
diff --git a/tests/modeltests/model_inheritance/models.py b/tests/modeltests/model_inheritance/models.py
index 7c737b6bd1..9842cb166b 100644
--- a/tests/modeltests/model_inheritance/models.py
+++ b/tests/modeltests/model_inheritance/models.py
@@ -38,6 +38,29 @@ class Student(CommonInfo):
class Meta:
pass
+#
+# Abstract base classes with related models
+#
+
+class Post(models.Model):
+ title = models.CharField(max_length=50)
+
+class Attachment(models.Model):
+ post = models.ForeignKey(Post, related_name='attached_%(class)s_set')
+ content = models.TextField()
+
+ class Meta:
+ abstract = True
+
+ def __unicode__(self):
+ return self.content
+
+class Comment(Attachment):
+ is_spam = models.BooleanField()
+
+class Link(Attachment):
+ url = models.URLField()
+
#
# Multi-table inheritance
#
@@ -128,9 +151,25 @@ Traceback (most recent call last):
...
AttributeError: type object 'CommonInfo' has no attribute 'objects'
-# The Place/Restaurant/ItalianRestaurant models, on the other hand, all exist
-# as independent models. However, the subclasses also have transparent access
-# to the fields of their ancestors.
+# Create a Post
+>>> post = Post(title='Lorem Ipsum')
+>>> post.save()
+
+# The Post model has distinct accessors for the Comment and Link models.
+>>> post.attached_comment_set.create(content='Save $ on V1agr@', is_spam=True)
+
+>>> post.attached_link_set.create(content='The Web framework for perfectionists with deadlines.', url='http://www.djangoproject.com/')
+
+
+# The Post model doesn't have an attribute called 'attached_%(class)s_set'.
+>>> getattr(post, 'attached_%(class)s_set')
+Traceback (most recent call last):
+ ...
+AttributeError: 'Post' object has no attribute 'attached_%(class)s_set'
+
+# The Place/Restaurant/ItalianRestaurant models all exist as independent
+# models. However, the subclasses also have transparent access to the fields of
+# their ancestors.
# Create a couple of Places.
>>> p1 = Place(name='Master Shakes', address='666 W. Jersey')
diff --git a/tests/regressiontests/datastructures/tests.py b/tests/regressiontests/datastructures/tests.py
index b51b4b1233..d6141b09ce 100644
--- a/tests/regressiontests/datastructures/tests.py
+++ b/tests/regressiontests/datastructures/tests.py
@@ -125,4 +125,12 @@ Init from sequence of tuples
>>> d = FileDict({'other-key': 'once upon a time...'})
>>> repr(d)
"{'other-key': 'once upon a time...'}"
+
+### DictWrapper #############################################################
+
+>>> f = lambda x: "*%s" % x
+>>> d = DictWrapper({'a': 'a'}, f, 'xx_')
+>>> "Normal: %(a)s. Modified: %(xx_a)s" % d
+'Normal: a. Modified: *a'
+
"""
diff --git a/tests/regressiontests/defaultfilters/tests.py b/tests/regressiontests/defaultfilters/tests.py
index 4a8b68a897..b56c33a652 100644
--- a/tests/regressiontests/defaultfilters/tests.py
+++ b/tests/regressiontests/defaultfilters/tests.py
@@ -150,7 +150,7 @@ u'fran%C3%A7ois%20%26%20jill'
u'http://short.com/'
>>> urlizetrunc(u'http://www.google.co.uk/search?hl=en&q=some+long+url&btnG=Search&meta=', 20)
-u'http://www.google....'
+u'http://www.google...'
>>> urlizetrunc('http://www.google.co.uk/search?hl=en&q=some+long+url&btnG=Search&meta=', 20)
u'http://www.google...'
@@ -166,6 +166,27 @@ u'http://31characteruri
>>> urlizetrunc(uri, 2)
u'...'
+# Check normal urlize
+>>> urlize('http://google.com')
+u'http://google.com'
+
+>>> urlize('http://google.com/')
+u'http://google.com/'
+
+>>> urlize('www.google.com')
+u'www.google.com'
+
+>>> urlize('djangoproject.org')
+u'djangoproject.org'
+
+>>> urlize('info@djangoproject.org')
+u'info@djangoproject.org'
+
+# Check urlize with https addresses
+>>> urlize('https://google.com')
+u'https://google.com'
+
+
>>> wordcount('')
0
diff --git a/tests/regressiontests/forms/forms.py b/tests/regressiontests/forms/forms.py
index d7fa1780f5..7fc206de4c 100644
--- a/tests/regressiontests/forms/forms.py
+++ b/tests/regressiontests/forms/forms.py
@@ -443,8 +443,8 @@ zero-based index.
>>> f = FrameworkForm(auto_id='id_%s')
>>> print f['language']
-
-
+
+
When RadioSelect is used with auto_id, and the whole form is printed using
@@ -453,20 +453,20 @@ ID of the *first* radio button.
>>> print f
-
-
+
+
>>> print f.as_ul()
-
-
+
+
>>> print f.as_p()
-
-
+
+
MultipleChoiceField is a special case, as its data is required to be a list:
@@ -535,8 +535,8 @@ zero-based index.
>>> f = SongForm(auto_id='%s_id')
>>> print f['composers']
-
-
+
+
Data for a MultipleChoiceField should be a list. QueryDict and MultiValueDict
diff --git a/tests/regressiontests/forms/regressions.py b/tests/regressiontests/forms/regressions.py
index 1bb6f6e7e5..cbc8095e60 100644
--- a/tests/regressiontests/forms/regressions.py
+++ b/tests/regressiontests/forms/regressions.py
@@ -40,7 +40,7 @@ Unicode decoding problems...
... somechoice = ChoiceField(choices=GENDERS, widget=RadioSelect(), label=u'\xc5\xf8\xdf')
>>> f = SomeForm()
>>> f.as_p()
-u'
\n\n\n\n
'
+u'
\n\n\n\n
'
Testing choice validation with UTF-8 bytestrings as input (these are the
Russian abbreviations "мес." and "шт.".
@@ -56,7 +56,7 @@ Translated error messages used to be buggy.
>>> activate('ru')
>>> f = SomeForm({})
>>> f.as_p()
-u'