summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2007-11-29 20:38:41 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2007-11-29 20:38:41 +0000
commitdfe05d94b853073e2762250e1b4cd64ce9ef1df0 (patch)
tree4e6aea30920e85556903dd67ca329fe69e9f2a7d /django
parentb43a0180322b42925c4c27b5ccdf2e876309c53b (diff)
queryset-refactor: Merged from trunk up to [6752].
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6753 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
-rw-r--r--django/conf/locale/en/LC_MESSAGES/django.po3681
-rw-r--r--django/conf/locale/en/LC_MESSAGES/djangojs.po49
-rw-r--r--django/contrib/admin/templates/admin_doc/template_filter_index.html2
-rw-r--r--django/contrib/admin/templates/admin_doc/template_tag_index.html2
-rw-r--r--django/contrib/admin/templates/admin_doc/view_index.html4
-rw-r--r--django/contrib/comments/models.py10
-rw-r--r--django/contrib/comments/tests.py13
-rw-r--r--django/contrib/formtools/models.py1
-rw-r--r--django/contrib/formtools/test_urls.py12
-rw-r--r--django/contrib/formtools/tests.py93
-rw-r--r--django/contrib/localflavor/ca/ca_provinces.py2
-rw-r--r--django/db/models/base.py4
-rw-r--r--django/db/models/fields/__init__.py2
-rw-r--r--django/db/models/fields/subclassing.py4
-rw-r--r--django/middleware/cache.py23
-rw-r--r--django/newforms/fields.py13
-rw-r--r--django/template/defaultfilters.py6
-rw-r--r--django/utils/cache.py22
-rw-r--r--django/utils/datastructures.py5
-rw-r--r--django/utils/tzinfo.py8
-rw-r--r--django/views/i18n.py8
-rw-r--r--django/views/static.py1
22 files changed, 2634 insertions, 1331 deletions
diff --git a/django/conf/locale/en/LC_MESSAGES/django.po b/django/conf/locale/en/LC_MESSAGES/django.po
index 7e36c6358c..a2dd52978b 100644
--- a/django/conf/locale/en/LC_MESSAGES/django.po
+++ b/django/conf/locale/en/LC_MESSAGES/django.po
@@ -7,86 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-04-05 01:32+1000\n"
+"POT-Creation-Date: 2007-11-29 10:57-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: db/models/manipulators.py:307
-#, python-format
-msgid "%(object)s with this %(type)s already exists for the given %(field)s."
-msgstr ""
-
-#: 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 ""
-
-#: db/models/fields/related.py:53
-#, python-format
-msgid "Please enter a valid %s."
-msgstr ""
-
-#: db/models/fields/related.py:642
-msgid "Separate multiple IDs with commas."
-msgstr ""
-
-#: db/models/fields/related.py:644
-msgid ""
-"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
-msgstr ""
-
-#: 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] ""
-msgstr[1] ""
-
-#: db/models/fields/__init__.py:42
-#, python-format
-msgid "%(optname)s with this %(fieldname)s already exists."
-msgstr ""
-
-#: db/models/fields/__init__.py:117 db/models/fields/__init__.py:274
-#: db/models/fields/__init__.py:610 db/models/fields/__init__.py:621
-#: oldforms/__init__.py:357 newforms/fields.py:80 newforms/fields.py:376
-#: newforms/fields.py:452 newforms/fields.py:463 newforms/models.py:178
-msgid "This field is required."
-msgstr ""
-
-#: db/models/fields/__init__.py:367
-msgid "This value must be an integer."
-msgstr ""
-
-#: db/models/fields/__init__.py:402
-msgid "This value must be either True or False."
-msgstr ""
-
-#: db/models/fields/__init__.py:423
-msgid "This field cannot be null."
-msgstr ""
-
-#: db/models/fields/__init__.py:457 core/validators.py:148
-msgid "Enter a valid date in YYYY-MM-DD format."
-msgstr ""
-
-#: db/models/fields/__init__.py:526 core/validators.py:157
-msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
-msgstr ""
-
-#: db/models/fields/__init__.py:630
-msgid "Enter a valid filename."
-msgstr ""
-
-#: db/models/fields/__init__.py:751
-msgid "This value must be either None, True or False."
-msgstr ""
-
#: conf/global_settings.py:39
msgid "Arabic"
msgstr ""
@@ -96,1088 +24,1171 @@ msgid "Bengali"
msgstr ""
#: conf/global_settings.py:41
-msgid "Catalan"
+msgid "Bulgarian"
msgstr ""
#: conf/global_settings.py:42
-msgid "Czech"
+msgid "Catalan"
msgstr ""
#: conf/global_settings.py:43
-msgid "Welsh"
+msgid "Czech"
msgstr ""
#: conf/global_settings.py:44
-msgid "Danish"
+msgid "Welsh"
msgstr ""
#: conf/global_settings.py:45
-msgid "German"
+msgid "Danish"
msgstr ""
#: conf/global_settings.py:46
-msgid "Greek"
+msgid "German"
msgstr ""
#: conf/global_settings.py:47
-msgid "English"
+msgid "Greek"
msgstr ""
#: conf/global_settings.py:48
-msgid "Spanish"
+msgid "English"
msgstr ""
#: conf/global_settings.py:49
-msgid "Argentinean Spanish"
+msgid "Spanish"
msgstr ""
#: conf/global_settings.py:50
-msgid "Finnish"
+msgid "Argentinean Spanish"
msgstr ""
#: conf/global_settings.py:51
-msgid "French"
+msgid "Persian"
msgstr ""
#: conf/global_settings.py:52
-msgid "Galician"
+msgid "Finnish"
msgstr ""
#: conf/global_settings.py:53
-msgid "Hungarian"
+msgid "French"
msgstr ""
#: conf/global_settings.py:54
-msgid "Hebrew"
+msgid "Gaeilge"
msgstr ""
#: conf/global_settings.py:55
-msgid "Icelandic"
+msgid "Galician"
msgstr ""
#: conf/global_settings.py:56
-msgid "Italian"
+msgid "Hungarian"
msgstr ""
#: conf/global_settings.py:57
-msgid "Japanese"
+msgid "Hebrew"
msgstr ""
#: conf/global_settings.py:58
-msgid "Kannada"
+msgid "Croatian"
msgstr ""
#: conf/global_settings.py:59
-msgid "Latvian"
+msgid "Icelandic"
msgstr ""
#: conf/global_settings.py:60
-msgid "Macedonian"
+msgid "Italian"
msgstr ""
#: conf/global_settings.py:61
-msgid "Dutch"
+msgid "Japanese"
msgstr ""
#: conf/global_settings.py:62
-msgid "Norwegian"
+msgid "Korean"
msgstr ""
#: conf/global_settings.py:63
-msgid "Polish"
+msgid "Khmer"
msgstr ""
#: conf/global_settings.py:64
-msgid "Portugese"
+msgid "Kannada"
msgstr ""
#: conf/global_settings.py:65
-msgid "Brazilian"
+msgid "Latvian"
msgstr ""
#: conf/global_settings.py:66
-msgid "Romanian"
+msgid "Macedonian"
msgstr ""
#: conf/global_settings.py:67
-msgid "Russian"
+msgid "Dutch"
msgstr ""
#: conf/global_settings.py:68
-msgid "Slovak"
+msgid "Norwegian"
msgstr ""
#: conf/global_settings.py:69
-msgid "Slovenian"
+msgid "Polish"
msgstr ""
#: conf/global_settings.py:70
-msgid "Serbian"
+msgid "Portugese"
msgstr ""
#: conf/global_settings.py:71
-msgid "Swedish"
+msgid "Brazilian"
msgstr ""
#: conf/global_settings.py:72
-msgid "Tamil"
+msgid "Romanian"
msgstr ""
#: conf/global_settings.py:73
-msgid "Telugu"
+msgid "Russian"
msgstr ""
#: conf/global_settings.py:74
-msgid "Turkish"
+msgid "Slovak"
msgstr ""
#: conf/global_settings.py:75
-msgid "Ukrainian"
+msgid "Slovenian"
msgstr ""
#: conf/global_settings.py:76
-msgid "Simplified Chinese"
+msgid "Serbian"
msgstr ""
#: conf/global_settings.py:77
-msgid "Traditional Chinese"
+msgid "Swedish"
msgstr ""
-#: utils/timesince.py:12
-msgid "year"
-msgid_plural "years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: utils/timesince.py:13
-msgid "month"
-msgid_plural "months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: utils/timesince.py:14
-msgid "week"
-msgid_plural "weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: utils/timesince.py:15
-msgid "day"
-msgid_plural "days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: utils/timesince.py:16
-msgid "hour"
-msgid_plural "hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: utils/timesince.py:17
-msgid "minute"
-msgid_plural "minutes"
-msgstr[0] ""
-msgstr[1] ""
-
-#: utils/dates.py:6
-msgid "Monday"
+#: conf/global_settings.py:78
+msgid "Tamil"
msgstr ""
-#: utils/dates.py:6
-msgid "Tuesday"
+#: conf/global_settings.py:79
+msgid "Telugu"
msgstr ""
-#: utils/dates.py:6
-msgid "Wednesday"
+#: conf/global_settings.py:80
+msgid "Turkish"
msgstr ""
-#: utils/dates.py:6
-msgid "Thursday"
+#: conf/global_settings.py:81
+msgid "Ukrainian"
msgstr ""
-#: utils/dates.py:6
-msgid "Friday"
+#: conf/global_settings.py:82
+msgid "Simplified Chinese"
msgstr ""
-#: utils/dates.py:7
-msgid "Saturday"
+#: conf/global_settings.py:83
+msgid "Traditional Chinese"
msgstr ""
-#: utils/dates.py:7
-msgid "Sunday"
+#: contrib/admin/filterspecs.py:44
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
msgstr ""
-#: utils/dates.py:14
-msgid "January"
+#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92
+#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173
+msgid "All"
msgstr ""
-#: utils/dates.py:14
-msgid "February"
+#: contrib/admin/filterspecs.py:113
+msgid "Any date"
msgstr ""
-#: utils/dates.py:14 utils/dates.py:27
-msgid "March"
+#: contrib/admin/filterspecs.py:114
+msgid "Today"
msgstr ""
-#: utils/dates.py:14 utils/dates.py:27
-msgid "April"
+#: contrib/admin/filterspecs.py:117
+msgid "Past 7 days"
msgstr ""
-#: utils/dates.py:14 utils/dates.py:27
-msgid "May"
+#: contrib/admin/filterspecs.py:119
+msgid "This month"
msgstr ""
-#: utils/dates.py:14 utils/dates.py:27
-msgid "June"
+#: contrib/admin/filterspecs.py:121
+msgid "This year"
msgstr ""
-#: utils/dates.py:15 utils/dates.py:27
-msgid "July"
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Yes"
msgstr ""
-#: utils/dates.py:15
-msgid "August"
+#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "No"
msgstr ""
-#: utils/dates.py:15
-msgid "September"
+#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231
+#: oldforms/__init__.py:592
+msgid "Unknown"
msgstr ""
-#: utils/dates.py:15
-msgid "October"
+#: contrib/admin/models.py:18
+msgid "action time"
msgstr ""
-#: utils/dates.py:15
-msgid "November"
+#: contrib/admin/models.py:21
+msgid "object id"
msgstr ""
-#: utils/dates.py:16
-msgid "December"
+#: contrib/admin/models.py:22
+msgid "object repr"
msgstr ""
-#: utils/dates.py:19
-msgid "jan"
+#: contrib/admin/models.py:23
+msgid "action flag"
msgstr ""
-#: utils/dates.py:19
-msgid "feb"
+#: contrib/admin/models.py:24
+msgid "change message"
msgstr ""
-#: utils/dates.py:19
-msgid "mar"
+#: contrib/admin/models.py:27
+msgid "log entry"
msgstr ""
-#: utils/dates.py:19
-msgid "apr"
+#: contrib/admin/models.py:28
+msgid "log entries"
msgstr ""
-#: utils/dates.py:19
-msgid "may"
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
msgstr ""
-#: utils/dates.py:19
-msgid "jun"
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
msgstr ""
-#: utils/dates.py:20
-msgid "jul"
+#: 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 ""
-#: utils/dates.py:20
-msgid "aug"
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
msgstr ""
-#: utils/dates.py:20
-msgid "sep"
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
msgstr ""
-#: utils/dates.py:20
-msgid "oct"
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
msgstr ""
-#: utils/dates.py:20
-msgid "nov"
+#: 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 ""
-#: utils/dates.py:20
-msgid "dec"
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
msgstr ""
-#: utils/dates.py:27
-msgid "Jan."
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
msgstr ""
-#: utils/dates.py:27
-msgid "Feb."
+#: 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 ""
-#: utils/dates.py:28
-msgid "Aug."
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
msgstr ""
-#: utils/dates.py:28
-msgid "Sept."
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
msgstr ""
-#: utils/dates.py:28
-msgid "Oct."
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
msgstr ""
-#: utils/dates.py:28
-msgid "Nov."
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
msgstr ""
-#: utils/dates.py:28
-msgid "Dec."
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
msgstr ""
-#: utils/dateformat.py:40
-msgid "p.m."
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
msgstr ""
-#: utils/dateformat.py:41
-msgid "a.m."
-msgstr ""
+#: contrib/admin/templates/admin/change_form.html:31
+#: contrib/admin/templates/admin/auth/user/change_password.html:23
+msgid "Please correct the error below."
+msgid_plural "Please correct the errors below."
+msgstr[0] ""
+msgstr[1] ""
-#: utils/dateformat.py:46
-msgid "PM"
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
msgstr ""
-#: utils/dateformat.py:47
-msgid "AM"
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
msgstr ""
-#: utils/dateformat.py:95
-msgid "midnight"
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
msgstr ""
-#: utils/dateformat.py:97
-msgid "noon"
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
msgstr ""
-#: utils/translation/trans_real.py:358
-msgid "DATE_FORMAT"
-msgstr "N j, Y"
-
-#: utils/translation/trans_real.py:359
-msgid "DATETIME_FORMAT"
-msgstr "N j, Y, P"
-
-#: utils/translation/trans_real.py:360
-msgid "TIME_FORMAT"
-msgstr "P"
+#: 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 ""
-#: utils/translation/trans_real.py:376
-msgid "YEAR_MONTH_FORMAT"
-msgstr "F Y"
+#: 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 ""
-#: utils/translation/trans_real.py:377
-msgid "MONTH_DAY_FORMAT"
-msgstr "F j"
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr ""
-#: oldforms/__init__.py:392
+#: contrib/admin/templates/admin/filter.html:2
#, 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] ""
+msgid " By %(filter_title)s "
+msgstr ""
-#: oldforms/__init__.py:397
-msgid "Line breaks are not allowed here."
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
msgstr ""
-#: oldforms/__init__.py:498 oldforms/__init__.py:571 oldforms/__init__.py:610
+#: contrib/admin/templates/admin/index.html:17
#, python-format
-msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgid "Models available in the %(name)s application."
msgstr ""
-#: oldforms/__init__.py:577 contrib/admin/filterspecs.py:150
-#: newforms/widgets.py:174
-msgid "Unknown"
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
msgstr ""
-#: oldforms/__init__.py:577 contrib/admin/filterspecs.py:143
-#: newforms/widgets.py:174
-msgid "Yes"
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
msgstr ""
-#: oldforms/__init__.py:577 contrib/admin/filterspecs.py:143
-#: newforms/widgets.py:174
-msgid "No"
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
msgstr ""
-#: oldforms/__init__.py:672 core/validators.py:174 core/validators.py:445
-msgid "No file was submitted. Check the encoding type on the form."
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
msgstr ""
-#: oldforms/__init__.py:674
-msgid "The submitted file is empty."
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
msgstr ""
-#: oldforms/__init__.py:730
-msgid "Enter a whole number between -32,768 and 32,767."
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
msgstr ""
-#: oldforms/__init__.py:740
-msgid "Enter a positive number."
+#: 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 ""
-#: oldforms/__init__.py:750
-msgid "Enter a whole number between 0 and 32,767."
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
msgstr ""
-#: contrib/localflavor/no/forms.py:15
-msgid "Enter a zip code in the format XXXX."
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
msgstr ""
-#: contrib/localflavor/no/forms.py:36
-msgid "Enter a valid Norwegian social security number."
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:25
+msgid "Log in"
msgstr ""
-#: contrib/localflavor/it/forms.py:14 contrib/localflavor/fr/forms.py:17
-#: contrib/localflavor/fi/forms.py:14 contrib/localflavor/de/forms.py:16
-msgid "Enter a zip code in the format XXXXX."
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
msgstr ""
-#: contrib/localflavor/jp/forms.py:21
-msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:4
-msgid "Hokkaido"
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:5
-msgid "Aomori"
-msgstr ""
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "N j, Y, P"
-#: contrib/localflavor/jp/jp_prefectures.py:6
-msgid "Iwate"
+#: 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 ""
-#: contrib/localflavor/jp/jp_prefectures.py:7
-msgid "Miyagi"
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:8
-msgid "Akita"
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:9
-msgid "Yamagata"
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:10
-msgid "Fukushima"
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:11
-msgid "Ibaraki"
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:12
-msgid "Tochigi"
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:13
-msgid "Gunma"
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:14
-msgid "Saitama"
+#: 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 ""
-#: contrib/localflavor/jp/jp_prefectures.py:15
-msgid "Chiba"
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:16
-msgid "Tokyo"
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:17
-msgid "Kanagawa"
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:18
-msgid "Yamanashi"
+#: 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 ""
-#: contrib/localflavor/jp/jp_prefectures.py:19
-msgid "Nagano"
+#: contrib/admin/templates/admin/auth/user/change_password.html:27
+#, python-format
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:20
-msgid "Niigata"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:21
-msgid "Toyama"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:22
-msgid "Ishikawa"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
+msgid ""
+"\n"
+"<p class=\"help\">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\").</p>\n"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:23
-msgid "Fukui"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:24
-msgid "Gifu"
+#: 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/localflavor/jp/jp_prefectures.py:25
-msgid "Shizuoka"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:26
-msgid "Aichi"
+#: 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/localflavor/jp/jp_prefectures.py:27
-msgid "Mie"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:28
-msgid "Shiga"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:29
-msgid "Kyoto"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:30
-msgid "Osaka"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:31
-msgid "Hyogo"
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:32
-msgid "Nara"
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:33
-msgid "Wakayama"
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_form.html:5
+#: contrib/admin/templates/registration/password_change_form.html:9
+msgid "Password change"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:34
-msgid "Tottori"
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:35
-msgid "Shimane"
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:36
-msgid "Okayama"
+#: 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 ""
-#: contrib/localflavor/jp/jp_prefectures.py:37
-msgid "Hiroshima"
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:38
-msgid "Yamaguchi"
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:39
-msgid "Tokushima"
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:40
-msgid "Kagawa"
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:41
-msgid "Ehime"
+#: 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 ""
-#: contrib/localflavor/jp/jp_prefectures.py:42
-msgid "Kochi"
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:43
-msgid "Fukuoka"
+#: contrib/admin/templates/registration/password_reset_done.html:12
+msgid ""
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:44
-msgid "Saga"
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:45
-msgid "Nagasaki"
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:46
-msgid "Kumamoto"
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:47
-msgid "Oita"
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:48
-msgid "Miyazaki"
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:49
-msgid "Kagoshima"
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
msgstr ""
-#: contrib/localflavor/jp/jp_prefectures.py:50
-msgid "Okinawa"
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
msgstr ""
-#: contrib/localflavor/br/forms.py:18
-msgid "Enter a zip code in the format XXXXX-XXX."
+#: 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 ""
-#: contrib/localflavor/br/forms.py:30
-msgid "Phone numbers must be in XX-XXXX-XXXX format."
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
msgstr ""
-#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:46
-msgid "Enter a valid Finnish social security number."
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
msgstr ""
-#: contrib/localflavor/uk/forms.py:18
-msgid "Enter a postcode. A space is required between the two postcode parts."
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
msgstr ""
-#: contrib/localflavor/de/forms.py:63
-msgid ""
-"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
-"format"
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
msgstr ""
-#: contrib/localflavor/de/de_states.py:5
-msgid "Baden-Wuerttemberg"
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
msgstr ""
-#: contrib/localflavor/de/de_states.py:6
-msgid "Bavaria"
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
msgstr ""
-#: contrib/localflavor/de/de_states.py:7
-msgid "Berlin"
+#: contrib/admin/templatetags/admin_list.py:257
+msgid "All dates"
msgstr ""
-#: contrib/localflavor/de/de_states.py:8
-msgid "Brandenburg"
+#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr ""
-#: contrib/localflavor/de/de_states.py:9
-msgid "Bremen"
+#: 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 ""
-#: contrib/localflavor/de/de_states.py:10
-msgid "Hamburg"
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
msgstr ""
-#: contrib/localflavor/de/de_states.py:11
-msgid "Hessen"
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
msgstr ""
-#: contrib/localflavor/de/de_states.py:12
-msgid "Mecklenburg-Western Pomerania"
+#: contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
msgstr ""
-#: contrib/localflavor/de/de_states.py:13
-msgid "Lower Saxony"
+#: contrib/admin/views/decorators.py:11 contrib/auth/forms.py:60
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
msgstr ""
-#: contrib/localflavor/de/de_states.py:14
-msgid "North Rhine-Westphalia"
+#: contrib/admin/views/decorators.py:63
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
msgstr ""
-#: contrib/localflavor/de/de_states.py:15
-msgid "Rhineland-Palatinate"
+#: contrib/admin/views/decorators.py:70
+msgid ""
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
msgstr ""
-#: contrib/localflavor/de/de_states.py:16
-msgid "Saarland"
+#: contrib/admin/views/decorators.py:84
+msgid "Usernames cannot contain the '@' character."
msgstr ""
-#: contrib/localflavor/de/de_states.py:17
-msgid "Saxony"
+#: contrib/admin/views/decorators.py:86
+#, python-format
+msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr ""
-#: contrib/localflavor/de/de_states.py:18
-msgid "Saxony-Anhalt"
+#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:52
+msgid "tag:"
msgstr ""
-#: contrib/localflavor/de/de_states.py:19
-msgid "Schleswig-Holstein"
+#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:83
+msgid "filter:"
msgstr ""
-#: contrib/localflavor/de/de_states.py:20
-msgid "Thuringia"
+#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:141
+msgid "view:"
msgstr ""
-#: contrib/localflavor/usa/forms.py:18
-msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+#: contrib/admin/views/doc.py:166
+#, python-format
+msgid "App %r not found"
msgstr ""
-#: contrib/localflavor/usa/forms.py:51
-msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+#: contrib/admin/views/doc.py:173
+#, python-format
+msgid "Model %(name)r not found in app %(label)r"
msgstr ""
-#: contrib/sessions/models.py:68
-msgid "session key"
+#: contrib/admin/views/doc.py:185
+#, python-format
+msgid "the related `%(label)s.%(type)s` object"
msgstr ""
-#: contrib/sessions/models.py:69
-msgid "session data"
+#: 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/sessions/models.py:70
-msgid "expire date"
+#: contrib/admin/views/doc.py:216
+#, python-format
+msgid "related `%(label)s.%(name)s` objects"
msgstr ""
-#: contrib/sessions/models.py:74
-msgid "session"
+#: contrib/admin/views/doc.py:221
+#, python-format
+msgid "all %s"
msgstr ""
-#: contrib/sessions/models.py:75
-msgid "sessions"
+#: contrib/admin/views/doc.py:226
+#, python-format
+msgid "number of %s"
msgstr ""
-#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
-msgid "The two password fields didn't match."
+#: contrib/admin/views/doc.py:231
+#, python-format
+msgid "Fields on %s objects"
msgstr ""
-#: contrib/auth/forms.py:25
-msgid "A user with that username already exists."
+#: 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/auth/forms.py:53
-msgid ""
-"Your Web browser doesn't appear to have cookies enabled. Cookies are "
-"required for logging in."
+#: contrib/admin/views/doc.py:294
+msgid "Boolean (Either True or False)"
msgstr ""
-#: contrib/auth/forms.py:60 contrib/admin/views/decorators.py:10
-msgid ""
-"Please enter a correct username and password. Note that both fields are case-"
-"sensitive."
+#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314
+#, python-format
+msgid "String (up to %(max_length)s)"
msgstr ""
-#: contrib/auth/forms.py:62
-msgid "This account is inactive."
+#: contrib/admin/views/doc.py:296
+msgid "Comma-separated integers"
msgstr ""
-#: contrib/auth/forms.py:85
-msgid ""
-"That e-mail address doesn't have an associated user account. Are you sure "
-"you've registered?"
+#: contrib/admin/views/doc.py:297
+msgid "Date (without time)"
msgstr ""
-#: contrib/auth/forms.py:117
-msgid "The two 'new password' fields didn't match."
+#: contrib/admin/views/doc.py:298
+msgid "Date (with time)"
msgstr ""
-#: contrib/auth/forms.py:124
-msgid "Your old password was entered incorrectly. Please enter it again."
+#: contrib/admin/views/doc.py:299
+msgid "Decimal number"
msgstr ""
-#: contrib/auth/views.py:39
-msgid "Logged out"
+#: contrib/admin/views/doc.py:300
+msgid "E-mail address"
msgstr ""
-#: contrib/auth/models.py:38 contrib/auth/models.py:57
-msgid "name"
+#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:305
+msgid "File path"
msgstr ""
-#: contrib/auth/models.py:40
-msgid "codename"
+#: contrib/admin/views/doc.py:303
+msgid "Floating point number"
msgstr ""
-#: contrib/auth/models.py:42
-msgid "permission"
+#: contrib/admin/views/doc.py:307 contrib/comments/models.py:85
+msgid "IP address"
msgstr ""
-#: contrib/auth/models.py:43 contrib/auth/models.py:58
-msgid "permissions"
+#: contrib/admin/views/doc.py:309
+msgid "Boolean (Either True, False or None)"
msgstr ""
-#: contrib/auth/models.py:60
-msgid "group"
+#: contrib/admin/views/doc.py:310
+msgid "Relation to parent model"
msgstr ""
-#: contrib/auth/models.py:61 contrib/auth/models.py:100
-msgid "groups"
+#: contrib/admin/views/doc.py:311
+msgid "Phone number"
msgstr ""
-#: contrib/auth/models.py:90
-msgid "username"
+#: contrib/admin/views/doc.py:316
+msgid "Text"
msgstr ""
-#: contrib/auth/models.py:90
-msgid ""
-"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
-"digits and underscores)."
+#: contrib/admin/views/doc.py:317
+msgid "Time"
msgstr ""
-#: contrib/auth/models.py:91
-msgid "first name"
+#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:7
+msgid "URL"
msgstr ""
-#: contrib/auth/models.py:92
-msgid "last name"
+#: contrib/admin/views/doc.py:319
+msgid "U.S. state (two uppercase letters)"
msgstr ""
-#: contrib/auth/models.py:93
-msgid "e-mail address"
+#: contrib/admin/views/doc.py:320
+msgid "XML text"
msgstr ""
-#: contrib/auth/models.py:94
-msgid "password"
+#: contrib/admin/views/doc.py:346
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
msgstr ""
-#: contrib/auth/models.py:94
-msgid ""
-"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
-"password form</a>."
+#: contrib/admin/views/main.py:233
+msgid "Site administration"
msgstr ""
-#: contrib/auth/models.py:95
-msgid "staff status"
+#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365
+#, python-format
+msgid "You may add another %s below."
msgstr ""
-#: contrib/auth/models.py:95
-msgid "Designates whether the user can log into this admin site."
+#: contrib/admin/views/main.py:298
+#, python-format
+msgid "Add %s"
msgstr ""
-#: contrib/auth/models.py:96
-msgid "active"
+#: contrib/admin/views/main.py:344
+#, python-format
+msgid "Added %s."
msgstr ""
-#: contrib/auth/models.py:96
-msgid ""
-"Designates whether this user can log into the Django admin. Unselect this "
-"instead of deleting accounts."
+#: 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/auth/models.py:97
-msgid "superuser status"
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Changed %s."
msgstr ""
-#: contrib/auth/models.py:97
-msgid ""
-"Designates that this user has all permissions without explicitly assigning "
-"them."
+#: contrib/admin/views/main.py:348
+#, python-format
+msgid "Deleted %s."
msgstr ""
-#: contrib/auth/models.py:98
-msgid "last login"
+#: contrib/admin/views/main.py:351
+msgid "No fields changed."
msgstr ""
-#: contrib/auth/models.py:99
-msgid "date joined"
+#: contrib/admin/views/main.py:354
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr ""
-#: contrib/auth/models.py:101
+#: contrib/admin/views/main.py:362
+#, python-format
msgid ""
-"In addition to the permissions manually assigned, this user will also get "
-"all permissions granted to each group he/she is in."
+"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr ""
-#: contrib/auth/models.py:102
-msgid "user permissions"
+#: contrib/admin/views/main.py:400
+#, python-format
+msgid "Change %s"
msgstr ""
-#: contrib/auth/models.py:105
-msgid "user"
+#: contrib/admin/views/main.py:487
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr ""
-#: contrib/auth/models.py:106
-msgid "users"
+#: contrib/admin/views/main.py:492
+#, python-format
+msgid "One or more %(fieldname)s in %(name)s:"
msgstr ""
-#: contrib/auth/models.py:111
-msgid "Personal info"
+#: contrib/admin/views/main.py:524
+#, python-format
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr ""
-#: contrib/auth/models.py:112
-msgid "Permissions"
+#: contrib/admin/views/main.py:527
+msgid "Are you sure?"
msgstr ""
-#: contrib/auth/models.py:113
-msgid "Important dates"
+#: contrib/admin/views/main.py:549
+#, python-format
+msgid "Change history: %s"
msgstr ""
-#: contrib/auth/models.py:114
-msgid "Groups"
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s"
msgstr ""
-#: contrib/auth/models.py:258
-msgid "message"
+#: contrib/admin/views/main.py:583
+#, python-format
+msgid "Select %s to change"
msgstr ""
-#: contrib/humanize/templatetags/humanize.py:17
-msgid "th"
+#: contrib/admin/views/main.py:784
+msgid "Database error"
msgstr ""
-#: contrib/humanize/templatetags/humanize.py:17
-msgid "st"
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
msgstr ""
-#: contrib/humanize/templatetags/humanize.py:17
-msgid "nd"
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
msgstr ""
-#: contrib/humanize/templatetags/humanize.py:17
-msgid "rd"
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
msgstr ""
-#: contrib/humanize/templatetags/humanize.py:47
-#, python-format
-msgid "%(value).1f million"
-msgid_plural "%(value).1f million"
-msgstr[0] ""
-msgstr[1] ""
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr ""
-#: contrib/humanize/templatetags/humanize.py:50
-#, python-format
-msgid "%(value).1f billion"
-msgid_plural "%(value).1f billion"
-msgstr[0] ""
-msgstr[1] ""
+#: contrib/auth/forms.py:84
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
-#: contrib/humanize/templatetags/humanize.py:53
+#: contrib/auth/forms.py:107
#, python-format
-msgid "%(value).1f trillion"
-msgid_plural "%(value).1f trillion"
-msgstr[0] ""
-msgstr[1] ""
+msgid "Password reset on %s"
+msgstr ""
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "one"
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
msgstr ""
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "two"
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
msgstr ""
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "three"
+#: contrib/auth/models.py:73 contrib/auth/models.py:93
+msgid "name"
msgstr ""
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "four"
+#: contrib/auth/models.py:75
+msgid "codename"
msgstr ""
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "five"
+#: contrib/auth/models.py:78
+msgid "permission"
msgstr ""
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "six"
+#: contrib/auth/models.py:79 contrib/auth/models.py:94
+msgid "permissions"
msgstr ""
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "seven"
+#: contrib/auth/models.py:97
+msgid "group"
msgstr ""
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "eight"
+#: contrib/auth/models.py:98 contrib/auth/models.py:141
+msgid "groups"
msgstr ""
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "nine"
+#: contrib/auth/models.py:131
+msgid "username"
msgstr ""
-#: contrib/contenttypes/models.py:36
-msgid "python model class name"
+#: contrib/auth/models.py:131
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
msgstr ""
-#: contrib/contenttypes/models.py:39
-msgid "content type"
+#: contrib/auth/models.py:132
+msgid "first name"
msgstr ""
-#: contrib/contenttypes/models.py:40
-msgid "content types"
+#: contrib/auth/models.py:133
+msgid "last name"
msgstr ""
-#: contrib/redirects/models.py:7
-msgid "redirect from"
+#: contrib/auth/models.py:134
+msgid "e-mail address"
msgstr ""
-#: contrib/redirects/models.py:8
+#: contrib/auth/models.py:135
+msgid "password"
+msgstr ""
+
+#: contrib/auth/models.py:135
msgid ""
-"This should be an absolute path, excluding the domain name. Example: '/"
-"events/search/'."
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
msgstr ""
-#: contrib/redirects/models.py:9
-msgid "redirect to"
+#: contrib/auth/models.py:136
+msgid "staff status"
msgstr ""
-#: contrib/redirects/models.py:10
+#: contrib/auth/models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr ""
+
+#: contrib/auth/models.py:137
+msgid "active"
+msgstr ""
+
+#: contrib/auth/models.py:137
msgid ""
-"This can be either an absolute path (as above) or a full URL starting with "
-"'http://'."
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
msgstr ""
-#: contrib/redirects/models.py:13
-msgid "redirect"
+#: contrib/auth/models.py:138
+msgid "superuser status"
msgstr ""
-#: contrib/redirects/models.py:14
-msgid "redirects"
+#: contrib/auth/models.py:138
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
msgstr ""
-#: contrib/flatpages/models.py:7 contrib/admin/views/doc.py:315
-msgid "URL"
+#: contrib/auth/models.py:139
+msgid "last login"
msgstr ""
-#: contrib/flatpages/models.py:8
+#: contrib/auth/models.py:140
+msgid "date joined"
+msgstr ""
+
+#: contrib/auth/models.py:142
msgid ""
-"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
msgstr ""
-#: contrib/flatpages/models.py:9
-msgid "title"
+#: contrib/auth/models.py:143
+msgid "user permissions"
msgstr ""
-#: contrib/flatpages/models.py:10
-msgid "content"
+#: contrib/auth/models.py:147
+msgid "user"
msgstr ""
-#: contrib/flatpages/models.py:11
-msgid "enable comments"
+#: contrib/auth/models.py:148
+msgid "users"
msgstr ""
-#: contrib/flatpages/models.py:12
-msgid "template name"
+#: contrib/auth/models.py:154
+msgid "Personal info"
msgstr ""
-#: contrib/flatpages/models.py:13
-msgid ""
-"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
-"will use 'flatpages/default.html'."
+#: contrib/auth/models.py:155
+msgid "Permissions"
msgstr ""
-#: contrib/flatpages/models.py:14
-msgid "registration required"
+#: contrib/auth/models.py:156
+msgid "Important dates"
msgstr ""
-#: contrib/flatpages/models.py:14
-msgid "If this is checked, only logged-in users will be able to view the page."
+#: contrib/auth/models.py:157
+msgid "Groups"
msgstr ""
-#: contrib/flatpages/models.py:18
-msgid "flat page"
+#: contrib/auth/models.py:316
+msgid "message"
msgstr ""
-#: contrib/flatpages/models.py:19
-msgid "flat pages"
+#: contrib/auth/views.py:47
+msgid "Logged out"
msgstr ""
-#: contrib/comments/models.py:67 contrib/comments/models.py:166
+#: contrib/comments/models.py:67 contrib/comments/models.py:169
msgid "object ID"
msgstr ""
@@ -1186,7 +1197,7 @@ msgid "headline"
msgstr ""
#: contrib/comments/models.py:69 contrib/comments/models.py:90
-#: contrib/comments/models.py:167
+#: contrib/comments/models.py:170
msgid "comment"
msgstr ""
@@ -1226,18 +1237,14 @@ msgstr ""
msgid "is valid rating"
msgstr ""
-#: contrib/comments/models.py:83 contrib/comments/models.py:169
+#: contrib/comments/models.py:83 contrib/comments/models.py:172
msgid "date/time submitted"
msgstr ""
-#: contrib/comments/models.py:84 contrib/comments/models.py:170
+#: contrib/comments/models.py:84 contrib/comments/models.py:173
msgid "is public"
msgstr ""
-#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304
-msgid "IP address"
-msgstr ""
-
#: contrib/comments/models.py:86
msgid "is removed"
msgstr ""
@@ -1252,11 +1259,11 @@ msgstr ""
msgid "comments"
msgstr ""
-#: contrib/comments/models.py:131 contrib/comments/models.py:207
+#: contrib/comments/models.py:134 contrib/comments/models.py:213
msgid "Content object"
msgstr ""
-#: contrib/comments/models.py:159
+#: contrib/comments/models.py:162
#, python-format
msgid ""
"Posted by %(user)s at %(date)s\n"
@@ -1266,48 +1273,48 @@ msgid ""
"http://%(domain)s%(url)s"
msgstr ""
-#: contrib/comments/models.py:168
+#: contrib/comments/models.py:171
msgid "person's name"
msgstr ""
-#: contrib/comments/models.py:171
+#: contrib/comments/models.py:174
msgid "ip address"
msgstr ""
-#: contrib/comments/models.py:173
+#: contrib/comments/models.py:176
msgid "approved by staff"
msgstr ""
-#: contrib/comments/models.py:176
+#: contrib/comments/models.py:179
msgid "free comment"
msgstr ""
-#: contrib/comments/models.py:177
+#: contrib/comments/models.py:180
msgid "free comments"
msgstr ""
-#: contrib/comments/models.py:233
+#: contrib/comments/models.py:239
msgid "score"
msgstr ""
-#: contrib/comments/models.py:234
+#: contrib/comments/models.py:240
msgid "score date"
msgstr ""
-#: contrib/comments/models.py:237
+#: contrib/comments/models.py:243
msgid "karma score"
msgstr ""
-#: contrib/comments/models.py:238
+#: contrib/comments/models.py:244
msgid "karma scores"
msgstr ""
-#: contrib/comments/models.py:242
+#: contrib/comments/models.py:248
#, python-format
msgid "%(score)d rating by %(user)s"
msgstr ""
-#: contrib/comments/models.py:258
+#: contrib/comments/models.py:264
#, python-format
msgid ""
"This comment was flagged by %(user)s:\n"
@@ -1315,73 +1322,40 @@ msgid ""
"%(text)s"
msgstr ""
-#: contrib/comments/models.py:265
+#: contrib/comments/models.py:271
msgid "flag date"
msgstr ""
-#: contrib/comments/models.py:268
+#: contrib/comments/models.py:274
msgid "user flag"
msgstr ""
-#: contrib/comments/models.py:269
+#: contrib/comments/models.py:275
msgid "user flags"
msgstr ""
-#: contrib/comments/models.py:273
+#: contrib/comments/models.py:279
#, python-format
msgid "Flag by %r"
msgstr ""
-#: contrib/comments/models.py:278
+#: contrib/comments/models.py:284
msgid "deletion date"
msgstr ""
-#: contrib/comments/models.py:280
+#: contrib/comments/models.py:286
msgid "moderator deletion"
msgstr ""
-#: contrib/comments/models.py:281
+#: contrib/comments/models.py:287
msgid "moderator deletions"
msgstr ""
-#: contrib/comments/models.py:285
+#: contrib/comments/models.py:291
#, python-format
msgid "Moderator deletion by %r"
msgstr ""
-#: contrib/comments/templates/comments/form.html:6
-#: contrib/comments/templates/comments/form.html:8
-#: contrib/admin/templates/admin/login.html:17
-msgid "Username:"
-msgstr ""
-
-#: contrib/comments/templates/comments/form.html:6
-#: contrib/admin/templates/admin_doc/bookmarklets.html:4
-#: contrib/admin/templates/admin_doc/missing_docutils.html:4
-#: contrib/admin/templates/admin_doc/view_detail.html:4
-#: contrib/admin/templates/admin_doc/template_filter_index.html:5
-#: contrib/admin/templates/admin_doc/view_index.html:5
-#: contrib/admin/templates/admin_doc/template_tag_index.html:5
-#: contrib/admin/templates/admin_doc/model_detail.html:3
-#: contrib/admin/templates/admin_doc/model_index.html:5
-#: contrib/admin/templates/admin_doc/index.html:4
-#: contrib/admin/templates/admin_doc/template_detail.html:4
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/auth/user/change_password.html:9
-#: contrib/admin/templates/registration/password_change_form.html:3
-#: contrib/admin/templates/registration/password_change_done.html:3
-msgid "Log out"
-msgstr ""
-
-#: contrib/comments/templates/comments/form.html:8
-#: contrib/admin/templates/admin/login.html:20
-msgid "Password:"
-msgstr ""
-
#: contrib/comments/templates/comments/form.html:8
msgid "Forgotten your password?"
msgstr ""
@@ -1418,24 +1392,12 @@ msgstr ""
msgid "Your name:"
msgstr ""
-#: contrib/comments/views/karma.py:19
-msgid "Anonymous users cannot vote"
-msgstr ""
-
-#: contrib/comments/views/karma.py:23
-msgid "Invalid comment ID"
-msgstr ""
-
-#: contrib/comments/views/karma.py:25
-msgid "No voting for yourself"
-msgstr ""
-
-#: contrib/comments/views/comments.py:27
+#: contrib/comments/views/comments.py:28
msgid ""
"This rating is required because you've entered at least one other rating."
msgstr ""
-#: contrib/comments/views/comments.py:111
+#: contrib/comments/views/comments.py:112
#, python-format
msgid ""
"This comment was posted by a user who has posted fewer than %(count)s "
@@ -1450,7 +1412,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: contrib/comments/views/comments.py:116
+#: contrib/comments/views/comments.py:117
#, python-format
msgid ""
"This comment was posted by a sketchy user:\n"
@@ -1458,1097 +1420,1757 @@ msgid ""
"%(text)s"
msgstr ""
-#: contrib/comments/views/comments.py:188
-#: contrib/comments/views/comments.py:280
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
msgid "Only POSTs are allowed"
msgstr ""
-#: contrib/comments/views/comments.py:192
-#: contrib/comments/views/comments.py:284
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
msgid "One or more of the required fields wasn't submitted"
msgstr ""
-#: contrib/comments/views/comments.py:196
-#: contrib/comments/views/comments.py:286
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
msgid "Somebody tampered with the comment form (security violation)"
msgstr ""
-#: contrib/comments/views/comments.py:206
-#: contrib/comments/views/comments.py:292
+#: contrib/comments/views/comments.py:208
+#: contrib/comments/views/comments.py:295
msgid ""
"The comment form had an invalid 'target' parameter -- the object ID was "
"invalid"
msgstr ""
-#: contrib/comments/views/comments.py:257
-#: contrib/comments/views/comments.py:321
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
msgid "The comment form didn't provide either 'preview' or 'post'"
msgstr ""
-#: contrib/sites/models.py:10
-msgid "domain name"
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
msgstr ""
-#: contrib/sites/models.py:11
-msgid "display name"
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
msgstr ""
-#: contrib/sites/models.py:15
-msgid "site"
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
msgstr ""
-#: contrib/sites/models.py:16
-msgid "sites"
+#: contrib/contenttypes/models.py:37
+msgid "python model class name"
msgstr ""
-#: contrib/admin/filterspecs.py:40
-#, python-format
+#: contrib/contenttypes/models.py:40
+msgid "content type"
+msgstr ""
+
+#: contrib/contenttypes/models.py:41
+msgid "content types"
+msgstr ""
+
+#: contrib/flatpages/models.py:8
msgid ""
-"<h3>By %s:</h3>\n"
-"<ul>\n"
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr ""
-#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
-#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169
-msgid "All"
+#: contrib/flatpages/models.py:9
+msgid "title"
msgstr ""
-#: contrib/admin/filterspecs.py:109
-msgid "Any date"
+#: contrib/flatpages/models.py:10
+msgid "content"
msgstr ""
-#: contrib/admin/filterspecs.py:110
-msgid "Today"
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
msgstr ""
-#: contrib/admin/filterspecs.py:113
-msgid "Past 7 days"
+#: contrib/flatpages/models.py:12
+msgid "template name"
msgstr ""
-#: contrib/admin/filterspecs.py:115
-msgid "This month"
+#: contrib/flatpages/models.py:13
+msgid ""
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
msgstr ""
-#: contrib/admin/filterspecs.py:117
-msgid "This year"
+#: contrib/flatpages/models.py:14
+msgid "registration required"
msgstr ""
-#: contrib/admin/models.py:16
-msgid "action time"
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
msgstr ""
-#: contrib/admin/models.py:19
-msgid "object id"
+#: contrib/flatpages/models.py:18
+msgid "flat page"
msgstr ""
-#: contrib/admin/models.py:20
-msgid "object repr"
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
msgstr ""
-#: contrib/admin/models.py:21
-msgid "action flag"
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "th"
msgstr ""
-#: contrib/admin/models.py:22
-msgid "change message"
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "st"
msgstr ""
-#: contrib/admin/models.py:25
-msgid "log entry"
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "nd"
msgstr ""
-#: contrib/admin/models.py:26
-msgid "log entries"
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "rd"
msgstr ""
-#: contrib/admin/templatetags/admin_list.py:247
-msgid "All dates"
+#: contrib/humanize/templatetags/humanize.py:52
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:55
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:58
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] ""
+msgstr[1] ""
+
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "one"
msgstr ""
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-#: contrib/admin/templates/admin/500.html:4
-#: contrib/admin/templates/admin/invalid_setup.html:4
-#: contrib/admin/templates/admin/object_history.html:5
-#: contrib/admin/templates/admin/delete_confirmation.html:6
-#: contrib/admin/templates/admin/change_list.html:6
-#: contrib/admin/templates/admin/change_form.html:13
-#: contrib/admin/templates/admin/base.html:30
-#: contrib/admin/templates/admin/auth/user/change_password.html:12
-#: 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/registration/password_change_done.html:4
-#: contrib/admin/templates/registration/password_reset_form.html:4
-msgid "Home"
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "two"
msgstr ""
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/auth/user/change_password.html:9
-#: contrib/admin/templates/registration/password_change_form.html:3
-#: contrib/admin/templates/registration/password_change_done.html:3
-msgid "Documentation"
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "three"
msgstr ""
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-msgid "Bookmarklets"
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "four"
msgstr ""
-#: contrib/admin/templates/admin_doc/bookmarklets.html:4
-#: contrib/admin/templates/admin_doc/missing_docutils.html:4
-#: contrib/admin/templates/admin_doc/view_detail.html:4
-#: contrib/admin/templates/admin_doc/template_filter_index.html:5
-#: contrib/admin/templates/admin_doc/view_index.html:5
-#: contrib/admin/templates/admin_doc/template_tag_index.html:5
-#: contrib/admin/templates/admin_doc/model_detail.html:3
-#: contrib/admin/templates/admin_doc/model_index.html:5
-#: contrib/admin/templates/admin_doc/index.html:4
-#: contrib/admin/templates/admin_doc/template_detail.html:4
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/change_form.html:10
-#: 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_form.html:3
-#: contrib/admin/templates/registration/password_change_done.html:3
-msgid "Change password"
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "five"
msgstr ""
-#: contrib/admin/templates/admin_doc/bookmarklets.html:5
-msgid "Documentation bookmarklets"
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "six"
msgstr ""
-#: contrib/admin/templates/admin_doc/bookmarklets.html:9
-msgid ""
-"\n"
-"<p class=\"help\">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\").</p>\n"
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "seven"
msgstr ""
-#: contrib/admin/templates/admin_doc/bookmarklets.html:19
-msgid "Documentation for this page"
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "eight"
msgstr ""
-#: contrib/admin/templates/admin_doc/bookmarklets.html:20
-msgid ""
-"Jumps you from any page to the documentation for the view that generates "
-"that page."
+#: contrib/humanize/templatetags/humanize.py:74
+msgid "nine"
msgstr ""
-#: contrib/admin/templates/admin_doc/bookmarklets.html:22
-msgid "Show object ID"
+#: contrib/humanize/templatetags/humanize.py:94
+msgid "today"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:96
+msgid "tomorrow"
+msgstr ""
+
+#: contrib/humanize/templatetags/humanize.py:98
+msgid "yesterday"
msgstr ""
-#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+#: contrib/localflavor/ar/forms.py:30 contrib/localflavor/ar/forms.py:38
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:61 contrib/localflavor/br/forms.py:103
+#: contrib/localflavor/pe/forms.py:34 contrib/localflavor/pe/forms.py:57
+msgid "This field requires only numbers."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:64
+msgid "This field requires 7 or 8 digits."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:75
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr ""
+
+#: contrib/localflavor/ar/forms.py:88
+msgid "Invalid CUIT."
+msgstr ""
+
+#: contrib/localflavor/au/forms.py:18
+msgid "Enter a 4 digit post code."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:23
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:35
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:68
msgid ""
-"Shows the content-type and unique ID for pages that represent a single "
-"object."
+"Select a valid brazilian state. That state is not one of the available "
+"states."
msgstr ""
-#: contrib/admin/templates/admin_doc/bookmarklets.html:25
-msgid "Edit this object (current window)"
+#: contrib/localflavor/br/forms.py:105
+msgid "This field requires at most 11 digits or 14 characters."
msgstr ""
-#: contrib/admin/templates/admin_doc/bookmarklets.html:26
-msgid "Jumps to the admin page for pages that represent a single object."
+#: contrib/localflavor/br/forms.py:115
+msgid "Invalid CPF number."
msgstr ""
-#: contrib/admin/templates/admin_doc/bookmarklets.html:28
-msgid "Edit this object (new window)"
+#: contrib/localflavor/br/forms.py:137
+msgid "This field requires at least 14 digits"
msgstr ""
-#: contrib/admin/templates/admin_doc/bookmarklets.html:29
-msgid "As above, but opens the admin page in a new window."
+#: contrib/localflavor/br/forms.py:147
+msgid "Invalid CNPJ number."
msgstr ""
-#: contrib/admin/templates/admin/submit_line.html:3
-#: contrib/admin/templates/admin/delete_confirmation.html:9
-msgid "Delete"
+#: contrib/localflavor/ca/forms.py:19
+msgid "Enter a postal code in the format XXX XXX."
msgstr ""
-#: contrib/admin/templates/admin/submit_line.html:4
-msgid "Save as new"
+#: contrib/localflavor/ca/forms.py:81
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format."
msgstr ""
-#: contrib/admin/templates/admin/submit_line.html:5
-msgid "Save and add another"
+#: contrib/localflavor/ch/ch_states.py:5
+msgid "Aargau"
msgstr ""
-#: contrib/admin/templates/admin/submit_line.html:6
-msgid "Save and continue editing"
+#: contrib/localflavor/ch/ch_states.py:6
+msgid "Appenzell Innerrhoden"
msgstr ""
-#: contrib/admin/templates/admin/submit_line.html:7
-msgid "Save"
+#: contrib/localflavor/ch/ch_states.py:7
+msgid "Appenzell Ausserrhoden"
msgstr ""
-#: contrib/admin/templates/admin/500.html:4
-msgid "Server error"
+#: contrib/localflavor/ch/ch_states.py:8
+msgid "Basel-Stadt"
msgstr ""
-#: contrib/admin/templates/admin/500.html:6
-msgid "Server error (500)"
+#: contrib/localflavor/ch/ch_states.py:9
+msgid "Basel-Land"
msgstr ""
-#: contrib/admin/templates/admin/500.html:9
-msgid "Server Error <em>(500)</em>"
+#: contrib/localflavor/ch/ch_states.py:10
+msgid "Berne"
msgstr ""
-#: contrib/admin/templates/admin/500.html:10
+#: contrib/localflavor/ch/ch_states.py:11
+msgid "Fribourg"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:12
+msgid "Geneva"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:13
+msgid "Glarus"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:14
+msgid "Graubuenden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:15
+msgid "Jura"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:16
+msgid "Lucerne"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:17
+msgid "Neuchatel"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:18
+msgid "Nidwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:19
+msgid "Obwalden"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:20
+msgid "Schaffhausen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:21
+msgid "Schwyz"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:22
+msgid "Solothurn"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:23
+msgid "St. Gallen"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:24
+msgid "Thurgau"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:25
+msgid "Ticino"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:26
+msgid "Uri"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:27
+msgid "Valais"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:28
+msgid "Vaud"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:29
+msgid "Zug"
+msgstr ""
+
+#: contrib/localflavor/ch/ch_states.py:30
+msgid "Zurich"
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:14
+msgid "Enter a zip code in the format XXXX."
+msgstr ""
+
+#: contrib/localflavor/ch/forms.py:90
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."
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
msgstr ""
-#: contrib/admin/templates/admin/filter.html:2
-#, python-format
-msgid " By %(filter_title)s "
+#: contrib/localflavor/cl/forms.py:32
+msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
msgstr ""
-#: contrib/admin/templates/admin/filters.html:4
-msgid "Filter"
+#: contrib/localflavor/cl/forms.py:37
+msgid "Enter valid a Chilean RUT"
msgstr ""
-#: contrib/admin/templates/admin/invalid_setup.html:8
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr ""
+
+#: 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 ""
+
+#: 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:16 contrib/localflavor/fi/forms.py:14
+#: contrib/localflavor/fr/forms.py:17
+msgid "Enter a zip code in the format XXXXX."
+msgstr ""
+
+#: contrib/localflavor/de/forms.py:60
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."
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
msgstr ""
-#: contrib/admin/templates/admin/search_form.html:8
-msgid "Go"
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
msgstr ""
-#: contrib/admin/templates/admin/search_form.html:10
-#, python-format
-msgid "1 result"
-msgid_plural "%(counter)s results"
-msgstr[0] ""
-msgstr[1] ""
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr ""
-#: contrib/admin/templates/admin/search_form.html:10
-#, python-format
-msgid "%(full_result_count)s total"
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
msgstr ""
-#: contrib/admin/templates/admin/object_history.html:5
-#: contrib/admin/templates/admin/change_form.html:21
-msgid "History"
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
msgstr ""
-#: contrib/admin/templates/admin/object_history.html:18
-msgid "Date/time"
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
msgstr ""
-#: contrib/admin/templates/admin/object_history.html:19
-msgid "User"
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
msgstr ""
-#: contrib/admin/templates/admin/object_history.html:20
-msgid "Action"
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
msgstr ""
-#: contrib/admin/templates/admin/object_history.html:26
-msgid "DATE_WITH_TIME_FULL"
-msgstr "N j, Y, P"
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr ""
-#: contrib/admin/templates/admin/object_history.html:36
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr ""
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr ""
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:22
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:39
msgid ""
-"This object doesn't have a change history. It probably wasn't added via this "
-"admin site."
+"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or "
+"9XXXXXXXX."
msgstr ""
-#: contrib/admin/templates/admin/delete_confirmation.html:14
+#: 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 ""
+
+#: contrib/localflavor/es/forms.py:91
+msgid "Invalid checksum for NIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:97
+msgid "Invalid checksum for NIE."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:106
+msgid "Invalid checksum for CIF."
+msgstr ""
+
+#: contrib/localflavor/es/forms.py:136
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:"
+"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
msgstr ""
-#: contrib/admin/templates/admin/delete_confirmation.html:21
-#, python-format
+#: contrib/localflavor/es/forms.py:150
+msgid "Invalid checksum for bank account number."
+msgstr ""
+
+#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45
+msgid "Enter a valid Finnish social security number."
+msgstr ""
+
+#: contrib/localflavor/in_/forms.py:16
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr ""
+
+#: contrib/localflavor/is_/forms.py:17
msgid ""
-"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
-"All of the following related items will be deleted:"
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
msgstr ""
-#: contrib/admin/templates/admin/delete_confirmation.html:26
-msgid "Yes, I'm sure"
+#: contrib/localflavor/is_/forms.py:31
+msgid "The Icelandic identification number is not valid."
msgstr ""
-#: contrib/admin/templates/admin/pagination.html:10
-msgid "Show all"
+#: contrib/localflavor/it/forms.py:16
+msgid "Enter a valid zip code."
msgstr ""
-#: contrib/admin/templates/admin/change_list.html:12
-#, python-format
-msgid "Add %(name)s"
+#: contrib/localflavor/it/forms.py:41
+msgid "Enter a valid Social Security number."
msgstr ""
-#: contrib/admin/templates/admin/change_form.html:15
-#: contrib/admin/templates/admin/index.html:28
-msgid "Add"
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
msgstr ""
-#: contrib/admin/templates/admin/change_form.html:22
-msgid "View on site"
+#: contrib/localflavor/jp/forms.py:21
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
msgstr ""
-#: contrib/admin/templates/admin/change_form.html:32
-#: contrib/admin/templates/admin/auth/user/change_password.html:24
-msgid "Please correct the error below."
-msgid_plural "Please correct the errors below."
-msgstr[0] ""
-msgstr[1] ""
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
-#: contrib/admin/templates/admin/change_form.html:50
-msgid "Ordering"
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
msgstr ""
-#: contrib/admin/templates/admin/change_form.html:53
-msgid "Order:"
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
msgstr ""
-#: contrib/admin/templates/admin/base.html:25
-msgid "Welcome,"
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
msgstr ""
-#: contrib/admin/templates/admin/404.html:4
-#: contrib/admin/templates/admin/404.html:8
-msgid "Page not found"
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
msgstr ""
-#: contrib/admin/templates/admin/404.html:10
-msgid "We're sorry, but the requested page could not be found."
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
msgstr ""
-#: contrib/admin/templates/admin/login.html:25
-#: contrib/admin/views/decorators.py:24
-msgid "Log in"
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
msgstr ""
-#: contrib/admin/templates/admin/index.html:17
-#, python-format
-msgid "Models available in the %(name)s application."
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
msgstr ""
-#: contrib/admin/templates/admin/index.html:18
-#, python-format
-msgid "%(name)s"
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
msgstr ""
-#: contrib/admin/templates/admin/index.html:34
-msgid "Change"
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
msgstr ""
-#: contrib/admin/templates/admin/index.html:44
-msgid "You don't have permission to edit anything."
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
msgstr ""
-#: contrib/admin/templates/admin/index.html:52
-msgid "Recent Actions"
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
msgstr ""
-#: contrib/admin/templates/admin/index.html:53
-msgid "My Actions"
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
msgstr ""
-#: contrib/admin/templates/admin/index.html:57
-msgid "None available"
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
msgstr ""
-#: contrib/admin/templates/admin/base_site.html:4
-msgid "Django site admin"
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
msgstr ""
-#: contrib/admin/templates/admin/base_site.html:7
-msgid "Django administration"
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
msgstr ""
-#: 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."
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
msgstr ""
-#: contrib/admin/templates/admin/auth/user/add_form.html:12
-msgid "Username"
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
msgstr ""
-#: contrib/admin/templates/admin/auth/user/add_form.html:18
-#: contrib/admin/templates/admin/auth/user/change_password.html:34
-msgid "Password"
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
msgstr ""
-#: contrib/admin/templates/admin/auth/user/add_form.html:23
-#: contrib/admin/templates/admin/auth/user/change_password.html:39
-msgid "Password (again)"
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
msgstr ""
-#: contrib/admin/templates/admin/auth/user/add_form.html:24
-#: contrib/admin/templates/admin/auth/user/change_password.html:40
-msgid "Enter the same password as above, for verification."
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
msgstr ""
-#: contrib/admin/templates/admin/auth/user/change_password.html:28
-#, python-format
-msgid "Enter a new password for the user <strong>%(username)s</strong>."
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
msgstr ""
-#: contrib/admin/templates/widget/file.html:2
-msgid "Currently:"
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
msgstr ""
-#: contrib/admin/templates/widget/file.html:3
-msgid "Change:"
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
msgstr ""
-#: contrib/admin/templates/widget/date_time.html:3
-msgid "Date:"
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
msgstr ""
-#: contrib/admin/templates/widget/date_time.html:4
-msgid "Time:"
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
msgstr ""
-#: contrib/admin/templates/registration/logged_out.html:8
-msgid "Thanks for spending some quality time with the Web site today."
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
msgstr ""
-#: contrib/admin/templates/registration/logged_out.html:10
-msgid "Log in again"
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
msgstr ""
-#: contrib/admin/templates/registration/password_reset_email.html:2
-msgid "You're receiving this e-mail because you requested a password reset"
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
msgstr ""
-#: contrib/admin/templates/registration/password_reset_email.html:3
-#, python-format
-msgid "for your user account at %(site_name)s"
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
msgstr ""
-#: contrib/admin/templates/registration/password_reset_email.html:5
-#, python-format
-msgid "Your new password is: %(new_password)s"
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
msgstr ""
-#: contrib/admin/templates/registration/password_reset_email.html:7
-msgid "Feel free to change this password by going to this page:"
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
msgstr ""
-#: contrib/admin/templates/registration/password_reset_email.html:11
-msgid "Your username, in case you've forgotten:"
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
msgstr ""
-#: contrib/admin/templates/registration/password_reset_email.html:13
-msgid "Thanks for using our site!"
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
msgstr ""
-#: contrib/admin/templates/registration/password_reset_email.html:15
-#, python-format
-msgid "The %(site_name)s team"
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
msgstr ""
-#: 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"
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
msgstr ""
-#: contrib/admin/templates/registration/password_reset_done.html:6
-#: contrib/admin/templates/registration/password_reset_done.html:10
-msgid "Password reset successful"
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
msgstr ""
-#: contrib/admin/templates/registration/password_reset_done.html:12
-msgid ""
-"We've e-mailed a new password to the e-mail address you submitted. You "
-"should be receiving it shortly."
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
msgstr ""
-#: contrib/admin/templates/registration/password_change_form.html:4
-#: contrib/admin/templates/registration/password_change_form.html:6
-#: contrib/admin/templates/registration/password_change_form.html:10
-#: contrib/admin/templates/registration/password_change_done.html:4
-msgid "Password change"
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
msgstr ""
-#: 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."
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
msgstr ""
-#: contrib/admin/templates/registration/password_change_form.html:17
-msgid "Old password:"
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
msgstr ""
-#: contrib/admin/templates/registration/password_change_form.html:19
-msgid "New password:"
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
msgstr ""
-#: contrib/admin/templates/registration/password_change_form.html:21
-msgid "Confirm password:"
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
msgstr ""
-#: contrib/admin/templates/registration/password_change_form.html:23
-msgid "Change my password"
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
msgstr ""
-#: contrib/admin/templates/registration/password_change_done.html:6
-#: contrib/admin/templates/registration/password_change_done.html:10
-msgid "Password change successful"
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
msgstr ""
-#: contrib/admin/templates/registration/password_change_done.html:12
-msgid "Your password was changed."
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
msgstr ""
-#: 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."
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
msgstr ""
-#: contrib/admin/templates/registration/password_reset_form.html:16
-msgid "E-mail address:"
+#: contrib/localflavor/nl/forms.py:25
+msgid "Enter a valid postal code"
msgstr ""
-#: contrib/admin/templates/registration/password_reset_form.html:16
-msgid "Reset my password"
+#: contrib/localflavor/nl/forms.py:53
+msgid "Enter a valid phone number"
msgstr ""
-#: contrib/admin/views/main.py:223
-msgid "Site administration"
+#: contrib/localflavor/nl/forms.py:76
+msgid "Enter a valid SoFi number"
msgstr ""
-#: contrib/admin/views/main.py:257 contrib/admin/views/auth.py:19
-#, python-format
-msgid "The %(name)s \"%(obj)s\" was added successfully."
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
msgstr ""
-#: contrib/admin/views/main.py:261 contrib/admin/views/main.py:347
-#: contrib/admin/views/auth.py:24
-msgid "You may edit it again below."
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
msgstr ""
-#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
-#, python-format
-msgid "You may add another %s below."
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
msgstr ""
-#: contrib/admin/views/main.py:289
-#, python-format
-msgid "Add %s"
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
msgstr ""
-#: contrib/admin/views/main.py:335
-#, python-format
-msgid "Added %s."
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
msgstr ""
-#: contrib/admin/views/main.py:337
-#, python-format
-msgid "Changed %s."
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
msgstr ""
-#: contrib/admin/views/main.py:339
-#, python-format
-msgid "Deleted %s."
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
msgstr ""
-#: contrib/admin/views/main.py:342
-msgid "No fields changed."
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
msgstr ""
-#: contrib/admin/views/main.py:345
-#, python-format
-msgid "The %(name)s \"%(obj)s\" was changed successfully."
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
msgstr ""
-#: contrib/admin/views/main.py:353
-#, python-format
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr ""
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr ""
+
+#: contrib/localflavor/no/forms.py:35
+msgid "Enter a valid Norwegian social security number."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:36
+msgid "This field requires 8 digits."
+msgstr ""
+
+#: contrib/localflavor/pe/forms.py:59
+msgid "This field requires 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:41
+msgid "National Identification Number consists of 11 digits."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:47
+msgid "Wrong checksum for the National Identification Number."
+msgstr ""
+
+#: contrib/localflavor/pl/forms.py:72
msgid ""
-"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
msgstr ""
-#: contrib/admin/views/main.py:391
-#, python-format
-msgid "Change %s"
+#: contrib/localflavor/pl/forms.py:78
+msgid "Wrong checksum for the Tax Number (NIP)."
msgstr ""
-#: contrib/admin/views/main.py:476
-#, python-format
-msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+#: contrib/localflavor/pl/forms.py:107
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
msgstr ""
-#: contrib/admin/views/main.py:481
-#, python-format
-msgid "One or more %(fieldname)s in %(name)s:"
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
msgstr ""
-#: contrib/admin/views/main.py:514
-#, python-format
-msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+#: contrib/localflavor/pl/forms.py:148
+msgid "Enter a postal code in the format XX-XXX."
msgstr ""
-#: contrib/admin/views/main.py:517
-msgid "Are you sure?"
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
msgstr ""
-#: contrib/admin/views/main.py:539
-#, python-format
-msgid "Change history: %s"
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
msgstr ""
-#: contrib/admin/views/main.py:573
-#, python-format
-msgid "Select %s"
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
msgstr ""
-#: contrib/admin/views/main.py:573
-#, python-format
-msgid "Select %s to change"
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
msgstr ""
-#: contrib/admin/views/main.py:768
-msgid "Database error"
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
msgstr ""
-#: contrib/admin/views/decorators.py:62
-msgid ""
-"Please log in again, because your session has expired. Don't worry: Your "
-"submission has been saved."
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
msgstr ""
-#: 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."
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
msgstr ""
-#: contrib/admin/views/decorators.py:83
-msgid "Usernames cannot contain the '@' character."
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
msgstr ""
-#: contrib/admin/views/decorators.py:85
-#, python-format
-msgid "Your e-mail address is not your username. Try '%s' instead."
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
msgstr ""
-#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
-#: contrib/admin/views/doc.py:50
-msgid "tag:"
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
msgstr ""
-#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
-#: contrib/admin/views/doc.py:81
-msgid "filter:"
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
msgstr ""
-#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
-#: contrib/admin/views/doc.py:139
-msgid "view:"
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
msgstr ""
-#: contrib/admin/views/doc.py:164
-#, python-format
-msgid "App %r not found"
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
msgstr ""
-#: contrib/admin/views/doc.py:171
-#, python-format
-msgid "Model %(name)r not found in app %(label)r"
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
msgstr ""
-#: contrib/admin/views/doc.py:183
-#, python-format
-msgid "the related `%(label)s.%(type)s` object"
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
msgstr ""
-#: 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:"
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
msgstr ""
-#: contrib/admin/views/doc.py:214
-#, python-format
-msgid "related `%(label)s.%(name)s` objects"
+#: contrib/localflavor/sk/forms.py:32
+msgid "Enter a postal code in the format XXXXX or XXX XX."
msgstr ""
-#: contrib/admin/views/doc.py:219
-#, python-format
-msgid "all %s"
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
msgstr ""
-#: contrib/admin/views/doc.py:224
-#, python-format
-msgid "number of %s"
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
msgstr ""
-#: contrib/admin/views/doc.py:229
-#, python-format
-msgid "Fields on %s objects"
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
msgstr ""
-#: 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"
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
msgstr ""
-#: contrib/admin/views/doc.py:292
-msgid "Boolean (Either True or False)"
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
msgstr ""
-#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
-#, python-format
-msgid "String (up to %(maxlength)s)"
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
msgstr ""
-#: contrib/admin/views/doc.py:294
-msgid "Comma-separated integers"
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
msgstr ""
-#: contrib/admin/views/doc.py:295
-msgid "Date (without time)"
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
msgstr ""
-#: contrib/admin/views/doc.py:296
-msgid "Date (with time)"
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
msgstr ""
-#: contrib/admin/views/doc.py:297
-msgid "E-mail address"
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
msgstr ""
-#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
-#: contrib/admin/views/doc.py:302
-msgid "File path"
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
msgstr ""
-#: contrib/admin/views/doc.py:300
-msgid "Decimal number"
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
msgstr ""
-#: contrib/admin/views/doc.py:306
-msgid "Boolean (Either True, False or None)"
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
msgstr ""
-#: contrib/admin/views/doc.py:307
-msgid "Relation to parent model"
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
msgstr ""
-#: contrib/admin/views/doc.py:308
-msgid "Phone number"
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
msgstr ""
-#: contrib/admin/views/doc.py:313
-msgid "Text"
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
msgstr ""
-#: contrib/admin/views/doc.py:314
-msgid "Time"
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
msgstr ""
-#: contrib/admin/views/doc.py:316
-msgid "U.S. state (two uppercase letters)"
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
msgstr ""
-#: contrib/admin/views/doc.py:317
-msgid "XML text"
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
msgstr ""
-#: contrib/admin/views/doc.py:343
-#, python-format
-msgid "%s does not appear to be a urlpattern object"
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
msgstr ""
-#: contrib/admin/views/auth.py:30
-msgid "Add user"
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
msgstr ""
-#: contrib/admin/views/auth.py:57
-msgid "Password changed successfully."
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
msgstr ""
-#: contrib/admin/views/auth.py:64
-#, python-format
-msgid "Change password: %s"
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
msgstr ""
-#: newforms/fields.py:103 newforms/fields.py:256
-#, python-format
-msgid "Ensure this value has at most %d characters."
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
msgstr ""
-#: newforms/fields.py:105 newforms/fields.py:258
-#, python-format
-msgid "Ensure this value has at least %d characters."
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
msgstr ""
-#: newforms/fields.py:128 core/validators.py:120
-msgid "Enter a whole number."
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
msgstr ""
-#: newforms/fields.py:130
-#, python-format
-msgid "Ensure this value is less than or equal to %s."
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
msgstr ""
-#: newforms/fields.py:132
-#, python-format
-msgid "Ensure this value is greater than or equal to %s."
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
msgstr ""
-#: newforms/fields.py:165
-msgid "Enter a valid date."
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
msgstr ""
-#: newforms/fields.py:192
-msgid "Enter a valid time."
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
msgstr ""
-#: newforms/fields.py:228
-msgid "Enter a valid date/time."
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
msgstr ""
-#: newforms/fields.py:242
-msgid "Enter a valid value."
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
msgstr ""
-#: newforms/fields.py:271 core/validators.py:162
-msgid "Enter a valid e-mail address."
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
msgstr ""
-#: newforms/fields.py:289 newforms/fields.py:311
-msgid "Enter a valid URL."
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
msgstr ""
-#: newforms/fields.py:313
-msgid "This URL appears to be a broken link."
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
msgstr ""
-#: newforms/fields.py:362 newforms/models.py:165
-msgid "Select a valid choice. That choice is not one of the available choices."
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
msgstr ""
-#: newforms/fields.py:380 newforms/fields.py:456 newforms/models.py:182
-msgid "Enter a list of values."
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
msgstr ""
-#: newforms/fields.py:389 newforms/models.py:188
-#, python-format
-msgid "Select a valid choice. %s is not one of the available choices."
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
msgstr ""
-#: template/defaultfilters.py:491
-msgid "yes,no,maybe"
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
msgstr ""
-#: views/generic/create_update.py:43
-#, python-format
-msgid "The %(verbose_name)s was created successfully."
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
msgstr ""
-#: views/generic/create_update.py:117
-#, python-format
-msgid "The %(verbose_name)s was updated successfully."
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
msgstr ""
-#: views/generic/create_update.py:184
-#, python-format
-msgid "The %(verbose_name)s was deleted."
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr ""
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr ""
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:18
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr ""
+
+#: contrib/localflavor/us/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr ""
+
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr ""
+
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr ""
+
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr ""
+
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
msgstr ""
-#: core/validators.py:64
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr ""
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr ""
+
+#: contrib/sessions/models.py:80
+msgid "session key"
+msgstr ""
+
+#: contrib/sessions/models.py:81
+msgid "session data"
+msgstr ""
+
+#: contrib/sessions/models.py:82
+msgid "expire date"
+msgstr ""
+
+#: contrib/sessions/models.py:87
+msgid "session"
+msgstr ""
+
+#: contrib/sessions/models.py:88
+msgid "sessions"
+msgstr ""
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr ""
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr ""
+
+#: contrib/sites/models.py:37
+msgid "site"
+msgstr ""
+
+#: contrib/sites/models.py:38
+msgid "sites"
+msgstr ""
+
+#: core/validators.py:72
msgid "This value must contain only letters, numbers and underscores."
msgstr ""
-#: core/validators.py:68
+#: core/validators.py:76
msgid ""
"This value must contain only letters, numbers, underscores, dashes or "
"slashes."
msgstr ""
-#: core/validators.py:72
+#: core/validators.py:80
msgid "This value must contain only letters, numbers, underscores or hyphens."
msgstr ""
-#: core/validators.py:76
+#: core/validators.py:84
msgid "Uppercase letters are not allowed here."
msgstr ""
-#: core/validators.py:80
+#: core/validators.py:88
msgid "Lowercase letters are not allowed here."
msgstr ""
-#: core/validators.py:87
+#: core/validators.py:95
msgid "Enter only digits separated by commas."
msgstr ""
-#: core/validators.py:99
+#: core/validators.py:107
msgid "Enter valid e-mail addresses separated by commas."
msgstr ""
-#: core/validators.py:103
+#: core/validators.py:111
msgid "Please enter a valid IP address."
msgstr ""
-#: core/validators.py:107
+#: core/validators.py:115
msgid "Empty values are not allowed here."
msgstr ""
-#: core/validators.py:111
+#: core/validators.py:119
msgid "Non-numeric characters aren't allowed here."
msgstr ""
-#: core/validators.py:115
+#: core/validators.py:123
msgid "This value can't be comprised solely of digits."
msgstr ""
-#: core/validators.py:124
+#: core/validators.py:128 newforms/fields.py:157
+msgid "Enter a whole number."
+msgstr ""
+
+#: core/validators.py:132
msgid "Only alphabetical characters are allowed here."
msgstr ""
-#: core/validators.py:139
+#: core/validators.py:147
msgid "Year must be 1900 or later."
msgstr ""
-#: core/validators.py:143
+#: core/validators.py:151
#, python-format
msgid "Invalid date: %s"
msgstr ""
-#: core/validators.py:153
+#: core/validators.py:156 db/models/fields/__init__.py:509
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr ""
+
+#: core/validators.py:161
msgid "Enter a valid time in HH:MM format."
msgstr ""
-#: core/validators.py:178
+#: core/validators.py:165 db/models/fields/__init__.py:583
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr ""
+
+#: core/validators.py:170 newforms/fields.py:408
+msgid "Enter a valid e-mail address."
+msgstr ""
+
+#: core/validators.py:182 core/validators.py:474 newforms/fields.py:438
+#: 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
msgid ""
"Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image."
msgstr ""
-#: core/validators.py:185
+#: core/validators.py:200
#, python-format
msgid "The URL %s does not point to a valid image."
msgstr ""
-#: core/validators.py:189
+#: core/validators.py:204
#, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
msgstr ""
-#: core/validators.py:197
+#: core/validators.py:212
#, python-format
msgid "The URL %s does not point to a valid QuickTime video."
msgstr ""
-#: core/validators.py:201
+#: core/validators.py:216
msgid "A valid URL is required."
msgstr ""
-#: core/validators.py:215
+#: core/validators.py:230
#, python-format
msgid ""
"Valid HTML is required. Specific errors are:\n"
"%s"
msgstr ""
-#: core/validators.py:222
+#: core/validators.py:237
#, python-format
msgid "Badly formed XML: %s"
msgstr ""
-#: core/validators.py:239
+#: core/validators.py:254
#, python-format
msgid "Invalid URL: %s"
msgstr ""
-#: core/validators.py:244 core/validators.py:246
+#: core/validators.py:259 core/validators.py:261
#, python-format
msgid "The URL %s is a broken link."
msgstr ""
-#: core/validators.py:252
+#: core/validators.py:267
msgid "Enter a valid U.S. state abbreviation."
msgstr ""
-#: core/validators.py:266
+#: 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] ""
msgstr[1] ""
-#: core/validators.py:273
+#: core/validators.py:288
#, python-format
msgid "This field must match the '%s' field."
msgstr ""
-#: core/validators.py:292
+#: core/validators.py:307
msgid "Please enter something for at least one field."
msgstr ""
-#: core/validators.py:301 core/validators.py:312
+#: core/validators.py:316 core/validators.py:327
msgid "Please enter both fields or leave them both empty."
msgstr ""
-#: core/validators.py:320
+#: core/validators.py:335
#, python-format
msgid "This field must be given if %(field)s is %(value)s"
msgstr ""
-#: core/validators.py:333
+#: core/validators.py:348
#, python-format
msgid "This field must be given if %(field)s is not %(value)s"
msgstr ""
-#: core/validators.py:352
+#: core/validators.py:367
msgid "Duplicate values are not allowed."
msgstr ""
-#: core/validators.py:367
+#: core/validators.py:382
#, python-format
msgid "This value must be between %(lower)s and %(upper)s."
msgstr ""
-#: core/validators.py:369
+#: core/validators.py:384
#, python-format
msgid "This value must be at least %s."
msgstr ""
-#: core/validators.py:371
+#: core/validators.py:386
#, python-format
msgid "This value must be no more than %s."
msgstr ""
-#: core/validators.py:407
+#: core/validators.py:427
#, python-format
msgid "This value must be a power of %s."
msgstr ""
-#: core/validators.py:418
+#: core/validators.py:437
msgid "Please enter a valid decimal number."
msgstr ""
-#: core/validators.py:422
+#: core/validators.py:444
#, python-format
msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural ""
@@ -2556,7 +3178,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: core/validators.py:425
+#: core/validators.py:447
#, python-format
msgid ""
"Please enter a valid decimal number with a whole part of at most %s digit."
@@ -2565,7 +3187,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: core/validators.py:428
+#: core/validators.py:450
#, python-format
msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural ""
@@ -2573,73 +3195,574 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: core/validators.py:438
+#: core/validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr ""
+
+#: core/validators.py:467
#, python-format
msgid "Make sure your uploaded file is at least %s bytes big."
msgstr ""
-#: core/validators.py:439
+#: core/validators.py:468
#, python-format
msgid "Make sure your uploaded file is at most %s bytes big."
msgstr ""
-#: core/validators.py:456
+#: core/validators.py:485
msgid "The format for this field is wrong."
msgstr ""
-#: core/validators.py:471
+#: core/validators.py:500
msgid "This field is invalid."
msgstr ""
-#: core/validators.py:507
+#: core/validators.py:536
#, python-format
msgid "Could not retrieve anything from %s."
msgstr ""
-#: core/validators.py:510
+#: core/validators.py:539
#, python-format
msgid ""
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
msgstr ""
-#: core/validators.py:543
+#: core/validators.py:572
#, python-format
msgid ""
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
"\"%(start)s\".)"
msgstr ""
-#: core/validators.py:547
+#: core/validators.py:576
#, python-format
msgid ""
"Some text starting on line %(line)s is not allowed in that context. (Line "
"starts with \"%(start)s\".)"
msgstr ""
-#: core/validators.py:552
+#: core/validators.py:581
#, python-format
msgid ""
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
"(start)s\".)"
msgstr ""
-#: core/validators.py:557
+#: core/validators.py:586
#, python-format
msgid ""
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
"(start)s\".)"
msgstr ""
-#: core/validators.py:561
+#: core/validators.py:590
#, python-format
msgid ""
"A tag on line %(line)s is missing one or more required attributes. (Line "
"starts with \"%(start)s\".)"
msgstr ""
-#: core/validators.py:566
+#: core/validators.py:595
#, python-format
msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
"starts with \"%(start)s\".)"
msgstr ""
+
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr ""
+
+#: db/models/fields/__init__.py:52
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr ""
+
+#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:318
+#: db/models/fields/__init__.py:735 db/models/fields/__init__.py:746
+#: newforms/fields.py:45 oldforms/__init__.py:374
+msgid "This field is required."
+msgstr ""
+
+#: db/models/fields/__init__.py:418
+msgid "This value must be an integer."
+msgstr ""
+
+#: db/models/fields/__init__.py:454
+msgid "This value must be either True or False."
+msgstr ""
+
+#: db/models/fields/__init__.py:475
+msgid "This field cannot be null."
+msgstr ""
+
+#: db/models/fields/__init__.py:644
+msgid "This value must be a decimal number."
+msgstr ""
+
+#: db/models/fields/__init__.py:755
+msgid "Enter a valid filename."
+msgstr ""
+
+#: db/models/fields/__init__.py:904
+msgid "This value must be either None, True or False."
+msgstr ""
+
+#: db/models/fields/related.py:658
+msgid "Separate multiple IDs with commas."
+msgstr ""
+
+#: db/models/fields/related.py:660
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+
+#: 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] ""
+msgstr[1] ""
+
+#: newforms/fields.py:46
+msgid "Enter a valid value."
+msgstr ""
+
+#: newforms/fields.py:129
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr ""
+
+#: newforms/fields.py:130
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr ""
+
+#: newforms/fields.py:158 newforms/fields.py:187 newforms/fields.py:216
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr ""
+
+#: newforms/fields.py:159 newforms/fields.py:188 newforms/fields.py:217
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr ""
+
+#: newforms/fields.py:186 newforms/fields.py:215
+msgid "Enter a number."
+msgstr ""
+
+#: newforms/fields.py:218
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr ""
+
+#: newforms/fields.py:219
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr ""
+
+#: newforms/fields.py:220
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr ""
+
+#: newforms/fields.py:268 newforms/fields.py:724
+msgid "Enter a valid date."
+msgstr ""
+
+#: newforms/fields.py:301 newforms/fields.py:725
+msgid "Enter a valid time."
+msgstr ""
+
+#: newforms/fields.py:340
+msgid "Enter a valid date/time."
+msgstr ""
+
+#: newforms/fields.py:439
+msgid "No file was submitted."
+msgstr ""
+
+#: newforms/fields.py:440 oldforms/__init__.py:689
+msgid "The submitted file is empty."
+msgstr ""
+
+#: newforms/fields.py:498
+msgid "Enter a valid URL."
+msgstr ""
+
+#: newforms/fields.py:499
+msgid "This URL appears to be a broken link."
+msgstr ""
+
+#: newforms/fields.py:560 newforms/models.py:155
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+
+#: newforms/fields.py:599
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+
+#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:215
+msgid "Enter a list of values."
+msgstr ""
+
+#: newforms/fields.py:753
+msgid "Enter a valid IPv4 address."
+msgstr ""
+
+#: newforms/models.py:216
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr ""
+
+#: oldforms/__init__.py:409
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] ""
+msgstr[1] ""
+
+#: oldforms/__init__.py:414
+msgid "Line breaks are not allowed here."
+msgstr ""
+
+#: 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 ""
+
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr ""
+
+#: oldforms/__init__.py:755
+msgid "Enter a positive number."
+msgstr ""
+
+#: oldforms/__init__.py:765
+msgid "Enter a whole number between 0 and 32,767."
+msgstr ""
+
+#: template/defaultfilters.py:658
+msgid "yes,no,maybe"
+msgstr ""
+
+#: template/defaultfilters.py:689
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: template/defaultfilters.py:691
+#, python-format
+msgid "%.1f KB"
+msgstr ""
+
+#: template/defaultfilters.py:693
+#, python-format
+msgid "%.1f MB"
+msgstr ""
+
+#: template/defaultfilters.py:694
+#, python-format
+msgid "%.1f GB"
+msgstr ""
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr ""
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr ""
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr ""
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr ""
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr ""
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr ""
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr ""
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr ""
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr ""
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr ""
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr ""
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr ""
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr ""
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr ""
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr ""
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr ""
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr ""
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr ""
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr ""
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr ""
+
+#: utils/dates.py:18
+msgid "January"
+msgstr ""
+
+#: utils/dates.py:18
+msgid "February"
+msgstr ""
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr ""
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr ""
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr ""
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr ""
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr ""
+
+#: utils/dates.py:19
+msgid "August"
+msgstr ""
+
+#: utils/dates.py:19
+msgid "September"
+msgstr ""
+
+#: utils/dates.py:19
+msgid "October"
+msgstr ""
+
+#: utils/dates.py:19
+msgid "November"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "December"
+msgstr ""
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr ""
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr ""
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr ""
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr ""
+
+#: utils/dates.py:23
+msgid "may"
+msgstr ""
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr ""
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr ""
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr ""
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr ""
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr ""
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr ""
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr ""
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr ""
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr ""
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr ""
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr ""
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr ""
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr ""
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr ""
+
+#: utils/text.py:127
+msgid "or"
+msgstr ""
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr ""
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr ""
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ""
+
+#: utils/translation/trans_real.py:399
+msgid "DATE_FORMAT"
+msgstr "N j, Y"
+
+#: utils/translation/trans_real.py:400
+msgid "DATETIME_FORMAT"
+msgstr "N j, Y, P"
+
+#: utils/translation/trans_real.py:401
+msgid "TIME_FORMAT"
+msgstr "P"
+
+#: utils/translation/trans_real.py:417
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:418
+msgid "MONTH_DAY_FORMAT"
+msgstr "F j"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr ""
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr ""
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr ""
diff --git a/django/conf/locale/en/LC_MESSAGES/djangojs.po b/django/conf/locale/en/LC_MESSAGES/djangojs.po
index 802e0db605..c90b390589 100644
--- a/django/conf/locale/en/LC_MESSAGES/djangojs.po
+++ b/django/conf/locale/en/LC_MESSAGES/djangojs.po
@@ -7,12 +7,12 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-12-09 11:51+0100\n"
+"POT-Creation-Date: 2007-11-29 10:58-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: contrib/admin/media/js/SelectFilter2.js:33
@@ -45,64 +45,73 @@ msgstr ""
msgid "Clear all"
msgstr ""
-#: contrib/admin/media/js/dateparse.js:26
#: 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 ""
-#: contrib/admin/media/js/dateparse.js:27
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr ""
+
+#: contrib/admin/media/js/dateparse.js:33
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
msgstr ""
-#: contrib/admin/media/js/calendar.js:25
-msgid "S M T W T F S"
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr ""
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
msgstr ""
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
msgid "Now"
msgstr ""
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
msgid "Clock"
msgstr ""
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
msgid "Choose a time"
msgstr ""
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
msgid "Midnight"
msgstr ""
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
msgid "6 a.m."
msgstr ""
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
msgid "Noon"
msgstr ""
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
msgid "Cancel"
msgstr ""
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
msgid "Today"
msgstr ""
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
msgid "Calendar"
msgstr ""
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
msgid "Yesterday"
msgstr ""
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
msgid "Tomorrow"
msgstr ""
diff --git a/django/contrib/admin/templates/admin_doc/template_filter_index.html b/django/contrib/admin/templates/admin_doc/template_filter_index.html
index f67f14eb35..902396d416 100644
--- a/django/contrib/admin/templates/admin_doc/template_filter_index.html
+++ b/django/contrib/admin/templates/admin_doc/template_filter_index.html
@@ -13,7 +13,7 @@
{% for library in filter_libraries %}
<div class="module">
<h2>{% if library.grouper %}{{ library.grouper }}{% else %}Built-in filters{% endif %}</h2>
- {% if library.grouper %}<p class="small quiet">To use these filters, put <code>{% templatetag openblock %} load {{ library.grouper }} {% templatetag closeblock %}</code> in your template before using the filter.</p><hr>{% endif %}
+ {% if library.grouper %}<p class="small quiet">To use these filters, put <code>{% templatetag openblock %} load {{ library.grouper }} {% templatetag closeblock %}</code> in your template before using the filter.</p><hr />{% endif %}
{% for filter in library.list|dictsort:"name" %}
<h3 id="{{ filter.name }}">{{ filter.name }}</h3>
<p>{{ filter.title }}</p>
diff --git a/django/contrib/admin/templates/admin_doc/template_tag_index.html b/django/contrib/admin/templates/admin_doc/template_tag_index.html
index 9bd66b70e7..ea49529393 100644
--- a/django/contrib/admin/templates/admin_doc/template_tag_index.html
+++ b/django/contrib/admin/templates/admin_doc/template_tag_index.html
@@ -13,7 +13,7 @@
{% for library in tag_libraries %}
<div class="module">
<h2>{% if library.grouper %}{{ library.grouper }}{% else %}Built-in tags{% endif %}</h2>
- {% if library.grouper %}<p class="small quiet">To use these tags, put <code>{% templatetag openblock %} load {{ library.grouper }} {% templatetag closeblock %}</code> in your template before using the tag.</p><hr>{% endif %}
+ {% if library.grouper %}<p class="small quiet">To use these tags, put <code>{% templatetag openblock %} load {{ library.grouper }} {% templatetag closeblock %}</code> in your template before using the tag.</p><hr />{% endif %}
{% for tag in library.list|dictsort:"name" %}
<h3 id="{{ tag.name }}">{{ tag.name }}</h3>
<h4>{{ tag.title }}</h4>
diff --git a/django/contrib/admin/templates/admin_doc/view_index.html b/django/contrib/admin/templates/admin_doc/view_index.html
index 47f99350a3..1ed5ba2ac1 100644
--- a/django/contrib/admin/templates/admin_doc/view_index.html
+++ b/django/contrib/admin/templates/admin_doc/view_index.html
@@ -29,10 +29,10 @@
{% for view in site_views.list|dictsort:"url" %}
{% ifchanged %}
-<h3><a href="{{ view.module }}.{{ view.name }}/"/>{{ view.url|escape }}</a></h3>
+<h3><a href="{{ view.module }}.{{ view.name }}/">{{ view.url|escape }}</a></h3>
<p class="small quiet">View function: {{ view.module }}.{{ view.name }}</p>
<p>{{ view.title }}</p>
-<hr>
+<hr />
{% endifchanged %}
{% endfor %}
</div>
diff --git a/django/contrib/comments/models.py b/django/contrib/comments/models.py
index a88d2b3a8e..912f5a6cd2 100644
--- a/django/contrib/comments/models.py
+++ b/django/contrib/comments/models.py
@@ -102,7 +102,7 @@ class Comment(models.Model):
date_hierarchy = 'submit_date'
search_fields = ('comment', 'user__username')
- def __repr__(self):
+ def __unicode__(self):
return "%s: %s..." % (self.user.username, self.comment[:100])
def get_absolute_url(self):
@@ -190,7 +190,7 @@ class FreeComment(models.Model):
date_hierarchy = 'submit_date'
search_fields = ('comment', 'person_name')
- def __repr__(self):
+ def __unicode__(self):
return "%s: %s..." % (self.person_name, self.comment[:100])
def get_absolute_url(self):
@@ -244,7 +244,7 @@ class KarmaScore(models.Model):
verbose_name_plural = _('karma scores')
unique_together = (('user', 'comment'),)
- def __repr__(self):
+ def __unicode__(self):
return _("%(score)d rating by %(user)s") % {'score': self.score, 'user': self.user}
class UserFlagManager(models.Manager):
@@ -275,7 +275,7 @@ class UserFlag(models.Model):
verbose_name_plural = _('user flags')
unique_together = (('user', 'comment'),)
- def __repr__(self):
+ def __unicode__(self):
return _("Flag by %r") % self.user
class ModeratorDeletion(models.Model):
@@ -287,5 +287,5 @@ class ModeratorDeletion(models.Model):
verbose_name_plural = _('moderator deletions')
unique_together = (('user', 'comment'),)
- def __repr__(self):
+ def __unicode__(self):
return _("Moderator deletion by %r") % self.user
diff --git a/django/contrib/comments/tests.py b/django/contrib/comments/tests.py
new file mode 100644
index 0000000000..a8275debf6
--- /dev/null
+++ b/django/contrib/comments/tests.py
@@ -0,0 +1,13 @@
+# coding: utf-8
+
+r"""
+>>> from django.contrib.comments.models import Comment
+>>> from django.contrib.auth.models import User
+>>> u = User.objects.create_user('commenttestuser', 'commenttest@example.com', 'testpw')
+>>> c = Comment(user=u, comment=u'\xe2')
+>>> c
+<Comment: commenttestuser: â...>
+>>> print c
+commenttestuser: â...
+"""
+
diff --git a/django/contrib/formtools/models.py b/django/contrib/formtools/models.py
new file mode 100644
index 0000000000..13990e24af
--- /dev/null
+++ b/django/contrib/formtools/models.py
@@ -0,0 +1 @@
+""" models.py (even empty) currently required by the runtests.py to enable unit tests """
diff --git a/django/contrib/formtools/test_urls.py b/django/contrib/formtools/test_urls.py
new file mode 100644
index 0000000000..19dbbd1ae4
--- /dev/null
+++ b/django/contrib/formtools/test_urls.py
@@ -0,0 +1,12 @@
+"""
+
+This is a urlconf to be loaded by tests.py. Add any urls needed
+for tests only.
+
+"""
+from django.conf.urls.defaults import *
+from django.contrib.formtools.tests import *
+
+urlpatterns = patterns('',
+ (r'^test1/', TestFormPreview(TestForm)),
+ )
diff --git a/django/contrib/formtools/tests.py b/django/contrib/formtools/tests.py
new file mode 100644
index 0000000000..a5a9222c46
--- /dev/null
+++ b/django/contrib/formtools/tests.py
@@ -0,0 +1,93 @@
+from django import newforms as forms
+from django.contrib.formtools import preview
+from django import http
+from django.conf import settings
+from django.test import TestCase
+from django.test.client import Client
+
+
+success_string = "Done was called!"
+test_data = {'field1': u'foo',
+ 'field1_': u'asdf'}
+
+
+class TestFormPreview(preview.FormPreview):
+
+ def done(self, request, cleaned_data):
+ return http.HttpResponse(success_string)
+
+
+class TestForm(forms.Form):
+ field1 = forms.CharField()
+ field1_ = forms.CharField()
+
+
+class PreviewTests(TestCase):
+
+ def setUp(self):
+ settings.ROOT_URLCONF = 'django.contrib.formtools.test_urls'
+ # Create a FormPreview instance to share between tests
+ self.preview = preview.FormPreview(TestForm)
+ input_template = '<input type="hidden" name="%s" value="%s" />'
+ self.input = input_template % (self.preview.unused_name('stage'), "%d")
+
+ def test_unused_name(self):
+ """
+ Verifies name mangling to get uniue field name.
+ """
+ self.assertEqual(self.preview.unused_name('field1'), 'field1__')
+
+ def test_form_get(self):
+ """
+ Test contrib.formtools.preview form retrieval.
+
+ Use the client library to see if we can sucessfully retrieve
+ the form (mostly testing the setup ROOT_URLCONF
+ process). Verify that an additional hidden input field
+ is created to manage the stage.
+
+ """
+ response = self.client.get('/test1/')
+ stage = self.input % 1
+ self.assertContains(response, stage, 1)
+
+ def test_form_preview(self):
+ """
+ Test contrib.formtools.preview form preview rendering.
+
+ Use the client library to POST to the form to see if a preview
+ is returned. If we do get a form back check that the hidden
+ value is correctly managing the state of the form.
+
+ """
+ # Pass strings for form submittal and add stage variable to
+ # show we previously saw first stage of the form.
+ test_data.update({'stage': 1})
+ response = self.client.post('/test1/', test_data)
+ # Check to confirm stage is set to 2 in output form.
+ stage = self.input % 2
+ self.assertContains(response, stage, 1)
+
+ def test_form_submit(self):
+ """
+ Test contrib.formtools.preview form submittal.
+
+ Use the client library to POST to the form with stage set to 3
+ to see if our forms done() method is called. Check first
+ without the security hash, verify failure, retry with security
+ hash and verify sucess.
+
+ """
+ # Pass strings for form submittal and add stage variable to
+ # show we previously saw first stage of the form.
+ test_data.update({'stage': 2})
+ response = self.client.post('/test1/', test_data)
+ self.failIfEqual(response.content, success_string)
+ hash = self.preview.security_hash(None, TestForm(test_data))
+ test_data.update({'hash': hash})
+ response = self.client.post('/test1/', test_data)
+ self.assertEqual(response.content, success_string)
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/django/contrib/localflavor/ca/ca_provinces.py b/django/contrib/localflavor/ca/ca_provinces.py
index 072159ad57..746716fd21 100644
--- a/django/contrib/localflavor/ca/ca_provinces.py
+++ b/django/contrib/localflavor/ca/ca_provinces.py
@@ -33,6 +33,8 @@ PROVINCES_NORMALIZED = {
'british columbia': 'BC',
'mb': 'MB',
'manitoba': 'MB',
+ 'nb': 'NB',
+ 'new brunswick': 'NB',
'nf': 'NF',
'newfoundland': 'NF',
'newfoundland and labrador': 'NF',
diff --git a/django/db/models/base.py b/django/db/models/base.py
index 379ed898f6..6b8e8369b0 100644
--- a/django/db/models/base.py
+++ b/django/db/models/base.py
@@ -471,5 +471,5 @@ def method_get_order(ordered_obj, self):
# HELPER FUNCTIONS (CURRIED MODEL FUNCTIONS) #
##############################################
-def get_absolute_url(opts, func, self):
- return settings.ABSOLUTE_URL_OVERRIDES.get('%s.%s' % (opts.app_label, opts.module_name), func)(self)
+def get_absolute_url(opts, func, self, *args, **kwargs):
+ return settings.ABSOLUTE_URL_OVERRIDES.get('%s.%s' % (opts.app_label, opts.module_name), func)(self, *args, **kwargs)
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index af122b33d9..ddff9bde29 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -399,7 +399,7 @@ class Field(object):
"Returns a django.newforms.Field instance for this database Field."
defaults = {'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text}
if self.choices:
- defaults['widget'] = forms.Select(choices=self.get_choices())
+ defaults['widget'] = forms.Select(choices=self.get_choices(include_blank=self.blank or not (self.has_default() or 'initial' in kwargs)))
if self.has_default():
defaults['initial'] = self.get_default()
defaults.update(kwargs)
diff --git a/django/db/models/fields/subclassing.py b/django/db/models/fields/subclassing.py
index 1e4c8ca2e0..36f7e4d934 100644
--- a/django/db/models/fields/subclassing.py
+++ b/django/db/models/fields/subclassing.py
@@ -28,10 +28,10 @@ class Creator(object):
def __get__(self, obj, type=None):
if obj is None:
raise AttributeError('Can only be accessed via an instance.')
- return self.value
+ return obj.__dict__[self.field.name]
def __set__(self, obj, value):
- self.value = self.field.to_python(value)
+ obj.__dict__[self.field.name] = self.field.to_python(value)
def make_contrib(func=None):
"""
diff --git a/django/middleware/cache.py b/django/middleware/cache.py
index a88b4956b2..23a907f8be 100644
--- a/django/middleware/cache.py
+++ b/django/middleware/cache.py
@@ -1,14 +1,18 @@
from django.conf import settings
from django.core.cache import cache
-from django.utils.cache import get_cache_key, learn_cache_key, patch_response_headers
+from django.utils.cache import get_cache_key, learn_cache_key, patch_response_headers, get_max_age
class CacheMiddleware(object):
"""
Cache middleware. If this is enabled, each Django-powered page will be
- cached for CACHE_MIDDLEWARE_SECONDS seconds. Cache is based on URLs.
+ cached (based on URLs).
Only parameter-less GET or HEAD-requests with status code 200 are cached.
+ The number of seconds each page is stored for is set by the
+ "max-age" section of the response's "Cache-Control" header, falling back to
+ the CACHE_MIDDLEWARE_SECONDS setting if the section was not found.
+
If CACHE_MIDDLEWARE_ANONYMOUS_ONLY is set to True, only anonymous requests
(i.e., those not made by a logged-in user) will be cached. This is a
simple and effective way of avoiding the caching of the Django admin (and
@@ -78,7 +82,16 @@ class CacheMiddleware(object):
return response
if not response.status_code == 200:
return response
- patch_response_headers(response, self.cache_timeout)
- cache_key = learn_cache_key(request, response, self.cache_timeout, self.key_prefix)
- cache.set(cache_key, response, self.cache_timeout)
+ # Try to get the timeout from the "max-age" section of the "Cache-
+ # Control" header before reverting to using the default cache_timeout
+ # length.
+ timeout = get_max_age(response)
+ if timeout == None:
+ timeout = self.cache_timeout
+ elif timeout == 0:
+ # max-age was set to 0, don't bother caching.
+ return response
+ patch_response_headers(response, timeout)
+ cache_key = learn_cache_key(request, response, timeout, self.key_prefix)
+ cache.set(cache_key, response, timeout)
return response
diff --git a/django/newforms/fields.py b/django/newforms/fields.py
index 9bb2ced583..4a54a98d61 100644
--- a/django/newforms/fields.py
+++ b/django/newforms/fields.py
@@ -17,7 +17,7 @@ except NameError:
from sets import Set as set
from django.utils.translation import ugettext_lazy as _
-from django.utils.encoding import StrAndUnicode, smart_unicode
+from django.utils.encoding import StrAndUnicode, smart_unicode, smart_str
from util import ErrorList, ValidationError
from widgets import TextInput, PasswordInput, HiddenInput, MultipleHiddenInput, FileInput, CheckboxInput, Select, NullBooleanSelect, SelectMultiple, DateTimeInput
@@ -235,7 +235,7 @@ class DecimalField(Field):
super(DecimalField, self).clean(value)
if not self.required and value in EMPTY_VALUES:
return None
- value = str(value).strip()
+ value = smart_str(value).strip()
try:
value = Decimal(value)
except DecimalException:
@@ -536,11 +536,12 @@ class BooleanField(Field):
widget = CheckboxInput
def clean(self, value):
- "Returns a Python boolean object."
+ """Returns a Python boolean object."""
super(BooleanField, self).clean(value)
- # Explicitly check for the string '0', which is what as hidden field
- # will submit for False.
- if value == '0':
+ # Explicitly check for the string 'False', which is what a hidden field
+ # will submit for False (since bool("True") == True we don't need to
+ # handle that explicitly).
+ if value == 'False':
return False
return bool(value)
diff --git a/django/template/defaultfilters.py b/django/template/defaultfilters.py
index e62e2e3eaf..f2be64ef1d 100644
--- a/django/template/defaultfilters.py
+++ b/django/template/defaultfilters.py
@@ -25,8 +25,8 @@ def stringfilter(func):
if args:
args = list(args)
args[0] = force_unicode(args[0])
- if isinstance(args[0], SafeData) and getattr(func, 'is_safe', False):
- return mark_safe(func(*args, **kwargs))
+ if isinstance(args[0], SafeData) and getattr(func, 'is_safe', False):
+ return mark_safe(func(*args, **kwargs))
return func(*args, **kwargs)
# Include a reference to the real function (used to check original
@@ -91,7 +91,7 @@ def floatformat(text, arg=-1):
"""
try:
f = float(text)
- except ValueError:
+ except (ValueError, TypeError):
return u''
try:
d = int(arg)
diff --git a/django/utils/cache.py b/django/utils/cache.py
index 5654bed7aa..4fcf493944 100644
--- a/django/utils/cache.py
+++ b/django/utils/cache.py
@@ -74,6 +74,21 @@ def patch_cache_control(response, **kwargs):
cc = ', '.join([dictvalue(el) for el in cc.items()])
response['Cache-Control'] = cc
+def get_max_age(response):
+ """
+ Returns the max-age from the response Cache-Control header as an integer
+ (or ``None`` if it wasn't found or wasn't an integer.
+ """
+ if not response.has_header('Cache-Control'):
+ return
+ cc = dict([_to_tuple(el) for el in
+ cc_delim_re.split(response['Cache-Control'])])
+ if 'max-age' in cc:
+ try:
+ return int(cc['max-age'])
+ except (ValueError, TypeError):
+ pass
+
def patch_response_headers(response, cache_timeout=None):
"""
Adds some useful headers to the given HttpResponse object:
@@ -180,3 +195,10 @@ def learn_cache_key(request, response, cache_timeout=None, key_prefix=None):
# for the request.path
cache.set(cache_key, [], cache_timeout)
return _generate_cache_key(request, [], key_prefix)
+
+
+def _to_tuple(s):
+ t = s.split('=',1)
+ if len(t) == 2:
+ return t[0].lower(), t[1]
+ return t[0].lower(), True
diff --git a/django/utils/datastructures.py b/django/utils/datastructures.py
index ffdc73f922..ee156b11d0 100644
--- a/django/utils/datastructures.py
+++ b/django/utils/datastructures.py
@@ -60,7 +60,10 @@ class SortedDict(dict):
if isinstance(data, dict):
self.keyOrder = data.keys()
else:
- self.keyOrder = [key for key, value in data]
+ self.keyOrder = []
+ for key, value in data:
+ if key not in self.keyOrder:
+ self.keyOrder.append(key)
def __deepcopy__(self, memo):
from copy import deepcopy
diff --git a/django/utils/tzinfo.py b/django/utils/tzinfo.py
index e2e1d10fc1..7d5ead9290 100644
--- a/django/utils/tzinfo.py
+++ b/django/utils/tzinfo.py
@@ -54,6 +54,12 @@ class LocalTimezone(tzinfo):
def _isdst(self, dt):
tt = (dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.weekday(), 0, -1)
- stamp = time.mktime(tt)
+ try:
+ stamp = time.mktime(tt)
+ except OverflowError:
+ # 32 bit systems can't handle dates after Jan 2038, so we fake it
+ # in that case (since we only care about the DST flag here).
+ tt = (2037,) + tt[1:]
+ stamp = time.mktime(tt)
tt = time.localtime(stamp)
return tt.tm_isdst > 0
diff --git a/django/views/i18n.py b/django/views/i18n.py
index cccec13941..cd23ff8777 100644
--- a/django/views/i18n.py
+++ b/django/views/i18n.py
@@ -120,8 +120,12 @@ def javascript_catalog(request, domain='djangojs', packages=None):
p = __import__(package, {}, {}, [''])
path = os.path.join(os.path.dirname(p.__file__), 'locale')
paths.append(path)
- catalog = gettext_module.translation(domain, path, ['en'])
- t.update(catalog._catalog)
+ try:
+ catalog = gettext_module.translation(domain, path, ['en'])
+ t.update(catalog._catalog)
+ except IOError:
+ # 'en' catalog was missing. This is harmless.
+ pass
# next load the settings.LANGUAGE_CODE translations if it isn't english
if default_locale != 'en':
for path in paths:
diff --git a/django/views/static.py b/django/views/static.py
index b556c60ca6..f0e43ffe4e 100644
--- a/django/views/static.py
+++ b/django/views/static.py
@@ -33,6 +33,7 @@ def serve(request, path, document_root=None, show_indexes=False):
# Clean up given path to only allow serving files below document_root.
path = posixpath.normpath(urllib.unquote(path))
+ path = path.lstrip('/')
newpath = ''
for part in path.split('/'):
if not part: