summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS10
-rw-r--r--django/conf/__init__.py10
-rw-r--r--django/conf/global_settings.py3
-rw-r--r--django/conf/locale/ca/LC_MESSAGES/django.mobin56726 -> 61430 bytes
-rw-r--r--django/conf/locale/ca/LC_MESSAGES/django.po3204
-rw-r--r--django/conf/locale/es/LC_MESSAGES/django.mobin56661 -> 61344 bytes
-rw-r--r--django/conf/locale/es/LC_MESSAGES/django.po3204
-rw-r--r--django/conf/locale/es_AR/LC_MESSAGES/django.mobin49719 -> 57365 bytes
-rw-r--r--django/conf/locale/es_AR/LC_MESSAGES/django.po3950
-rw-r--r--django/conf/locale/es_AR/LC_MESSAGES/djangojs.mobin1633 -> 1633 bytes
-rw-r--r--django/conf/locale/es_AR/LC_MESSAGES/djangojs.po14
-rw-r--r--django/conf/locale/he/LC_MESSAGES/django.mobin48283 -> 61545 bytes
-rw-r--r--django/conf/locale/he/LC_MESSAGES/django.po4454
-rw-r--r--django/conf/locale/hr/LC_MESSAGES/django.mobin5413 -> 13458 bytes
-rw-r--r--django/conf/locale/hr/LC_MESSAGES/django.po262
-rw-r--r--django/contrib/admin/media/js/urlify.js10
-rw-r--r--django/contrib/comments/feeds.py4
-rw-r--r--django/contrib/localflavor/es/__init__.py0
-rw-r--r--django/contrib/localflavor/es/es_provinces.py58
-rw-r--r--django/contrib/localflavor/es/es_regions.py23
-rw-r--r--django/contrib/localflavor/es/forms.py173
-rw-r--r--django/contrib/localflavor/pl/forms.py94
-rw-r--r--django/contrib/sessions/backends/base.py1
-rw-r--r--django/contrib/sessions/middleware.py12
-rw-r--r--django/contrib/sessions/tests.py23
-rw-r--r--django/contrib/syndication/feeds.py1
-rw-r--r--django/core/cache/backends/base.py8
-rw-r--r--django/core/cache/backends/db.py8
-rw-r--r--django/core/cache/backends/dummy.py3
-rw-r--r--django/core/cache/backends/filebased.py20
-rw-r--r--django/core/cache/backends/locmem.py7
-rw-r--r--django/core/cache/backends/memcached.py3
-rw-r--r--django/core/cache/backends/simple.py9
-rw-r--r--django/core/handlers/modpython.py19
-rw-r--r--django/core/handlers/wsgi.py22
-rw-r--r--django/core/mail.py4
-rw-r--r--django/core/management/__init__.py111
-rw-r--r--django/core/management/validation.py2
-rw-r--r--django/core/urlresolvers.py5
-rw-r--r--django/db/backends/__init__.py21
-rw-r--r--django/db/backends/postgresql_psycopg2/base.py9
-rw-r--r--django/db/backends/util.py18
-rw-r--r--django/db/models/fields/__init__.py2
-rw-r--r--django/dispatch/saferef.py75
-rw-r--r--django/http/__init__.py34
-rw-r--r--django/middleware/common.py10
-rw-r--r--django/middleware/gzip.py7
-rw-r--r--django/newforms/fields.py10
-rw-r--r--django/newforms/widgets.py29
-rw-r--r--django/template/defaulttags.py10
-rw-r--r--django/templatetags/cache.py57
-rw-r--r--django/templatetags/i18n.py8
-rw-r--r--django/test/utils.py5
-rw-r--r--django/utils/checksums.py22
-rw-r--r--django/utils/datastructures.py70
-rw-r--r--django/utils/encoding.py2
-rw-r--r--django/utils/feedgenerator.py10
-rw-r--r--django/utils/functional.py16
-rw-r--r--django/utils/http.py3
-rw-r--r--django/utils/translation/__init__.py5
-rw-r--r--django/utils/translation/trans_null.py2
-rw-r--r--django/utils/translation/trans_real.py125
-rw-r--r--django/views/debug.py9
-rw-r--r--docs/apache_auth.txt22
-rw-r--r--docs/cache.txt54
-rw-r--r--docs/contributing.txt5
-rw-r--r--docs/databases.txt8
-rw-r--r--docs/django-admin.txt17
-rw-r--r--docs/flatpages.txt2
-rw-r--r--docs/install.txt5
-rw-r--r--docs/middleware.txt13
-rw-r--r--docs/model-api.txt10
-rw-r--r--docs/modpython.txt16
-rw-r--r--docs/newforms.txt52
-rw-r--r--docs/settings.txt37
-rw-r--r--docs/syndication_feeds.txt16
-rw-r--r--docs/templates.txt56
-rw-r--r--docs/tutorial01.txt2
-rw-r--r--tests/modeltests/invalid_models/models.py6
-rw-r--r--tests/regressiontests/auth_backends/tests.py30
-rw-r--r--tests/regressiontests/cache/tests.py6
-rw-r--r--tests/regressiontests/datastructures/tests.py11
-rw-r--r--tests/regressiontests/forms/localflavor/es.py343
-rw-r--r--tests/regressiontests/forms/localflavor/pl.py30
-rw-r--r--tests/regressiontests/forms/models.py50
-rw-r--r--tests/regressiontests/forms/tests.py2
-rw-r--r--tests/regressiontests/forms/widgets.py23
-rw-r--r--tests/regressiontests/i18n/misc.py57
-rw-r--r--tests/regressiontests/i18n/tests.py8
-rw-r--r--tests/regressiontests/templates/tests.py23
-rw-r--r--tests/regressiontests/text/tests.py4
-rw-r--r--tests/regressiontests/utils/tests.py28
-rwxr-xr-xtests/runtests.py3
93 files changed, 10158 insertions, 7071 deletions
diff --git a/AUTHORS b/AUTHORS
index 5af5c71f6e..1f85553a05 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -49,7 +49,8 @@ answer newbie questions, and generally made Django that much better:
andy@jadedplanet.net
Fabrice Aneche <akh@nobugware.com>
ant9000@netwise.it
- Florian Apolloner
+ Florian Apolloner
+ arien <regexbot@gmail.com>
David Ascher <http://ascher.ca/>
david@kazserve.org
Arthur <avandorp@gmail.com>
@@ -169,6 +170,7 @@ answer newbie questions, and generally made Django that much better:
Nagy Károly <charlie@rendszergazda.com>
Ben Dean Kawamura <ben.dean.kawamura@gmail.com>
Ian G. Kelly <ian.g.kelly@gmail.com>
+ Thomas Kerpe <thomas@kerpe.net>
Ben Khoo <khoobks@westnet.com.au>
Garth Kidd <http://www.deadlybloodyserious.com/>
kilian <kilian.cavalotti@lip6.fr>
@@ -213,6 +215,7 @@ answer newbie questions, and generally made Django that much better:
Jason McBrayer <http://www.carcosa.net/jason/>
mccutchen@gmail.com
michael.mcewan@gmail.com
+ michal@plovarna.cz
mikko@sorl.net
Slawek Mikula <slawek dot mikula at gmail dot com>
mitakummaa@gmail.com
@@ -256,13 +259,14 @@ answer newbie questions, and generally made Django that much better:
Brian Ray <http://brianray.chipy.org/>
remco@diji.biz
rhettg@gmail.com
+ ricardojbarrios@gmail.com
Matt Riggott
Henrique Romano <onaiort@gmail.com>
Armin Ronacher
Brian Rosner <brosner@gmail.com>
Oliver Rutherfurd <http://rutherfurd.net/>
ryankanno
- Manuel Saelices <msaelices@yaco.es>
+ Manuel Saelices <msaelices@yaco.es>
Ivan Sagalaev (Maniac) <http://www.softwaremaniacs.org/>
Vinay Sajip <vinay_sajip@yahoo.co.uk>
David Schein
@@ -270,6 +274,7 @@ answer newbie questions, and generally made Django that much better:
serbaut@gmail.com
John Shaffer <jshaffer2112@gmail.com>
Pete Shinners <pete@shinners.org>
+ jason.sidabras@gmail.com
Jozko Skrablin <jozko.skrablin@gmail.com>
SmileyChris <smileychris@gmail.com>
smurf@smurf.noris.de
@@ -324,6 +329,7 @@ answer newbie questions, and generally made Django that much better:
Jakub Wiśniowski <restless.being@gmail.com>
Maciej Wiśniowski <pigletto@gmail.com>
wojtek
+ Jason Yan <tailofthesun@gmail.com>
ye7cakf02@sneakemail.com
ymasuda@ethercube.com
Jarek Zgoda <jarek.zgoda@gmail.com>
diff --git a/django/conf/__init__.py b/django/conf/__init__.py
index f19e509ea3..0177490df9 100644
--- a/django/conf/__init__.py
+++ b/django/conf/__init__.py
@@ -140,13 +140,3 @@ class UserSettingsHolder(object):
settings = LazySettings()
-# This function replaces itself with django.utils.translation.gettext() the
-# first time it's run. This is necessary because the import of
-# django.utils.translation requires a working settings module, and loading it
-# from within this file would cause a circular import.
-def first_time_gettext(*args):
- from django.utils.translation import gettext
- __builtins__['_'] = gettext
- return gettext(*args)
-
-__builtins__['_'] = first_time_gettext
diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py
index b3cbf095c3..994e908caf 100644
--- a/django/conf/global_settings.py
+++ b/django/conf/global_settings.py
@@ -30,7 +30,7 @@ INTERNAL_IPS = ()
TIME_ZONE = 'America/Chicago'
# Language code for this installation. All choices can be found here:
-# http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes
+# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = 'en-us'
# Languages we provide translations for, out of the box. The language name
@@ -275,6 +275,7 @@ SESSION_COOKIE_NAME = 'sessionid' # Cookie name. This can
SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2 # Age of cookie, in seconds (default: 2 weeks).
SESSION_COOKIE_DOMAIN = None # A string like ".lawrence.com", or None for standard domain cookie.
SESSION_COOKIE_SECURE = False # Whether the session cookie should be secure (https:// only).
+SESSION_COOKIE_PATH = '/' # The path of the session cookie.
SESSION_SAVE_EVERY_REQUEST = False # Whether to save the session data on every request.
SESSION_EXPIRE_AT_BROWSER_CLOSE = False # Whether sessions expire when a user closes his browser.
SESSION_ENGINE = 'django.contrib.sessions.backends.db' # The module to store session data
diff --git a/django/conf/locale/ca/LC_MESSAGES/django.mo b/django/conf/locale/ca/LC_MESSAGES/django.mo
index 28bc60a758..8f10d00c4e 100644
--- a/django/conf/locale/ca/LC_MESSAGES/django.mo
+++ b/django/conf/locale/ca/LC_MESSAGES/django.mo
Binary files differ
diff --git a/django/conf/locale/ca/LC_MESSAGES/django.po b/django/conf/locale/ca/LC_MESSAGES/django.po
index fe2836ff89..26225d4269 100644
--- a/django/conf/locale/ca/LC_MESSAGES/django.po
+++ b/django/conf/locale/ca/LC_MESSAGES/django.po
@@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-09-14 12:38+0200\n"
-"PO-Revision-Date: 2007-09-14 14:21+0100\n"
+"POT-Creation-Date: 2007-10-20 14:55+0200\n"
+"PO-Revision-Date: 2007-10-20 15:22+0100\n"
"Last-Translator: Marc Garcia <marc.garcia@accopensys.com>\n"
"Language-Team: <es@li.org>\n"
"MIME-Version: 1.0\n"
@@ -14,91 +14,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: db/models/manipulators.py:309
-#, python-format
-msgid "%(object)s with this %(type)s already exists for the given %(field)s."
-msgstr "Ja existeix un %(object)s del tipus %(type)s amb aquest %(field)s."
-
-#: db/models/manipulators.py:310
-#: core/validators.py:283
-#: contrib/admin/views/main.py:342
-#: contrib/admin/views/main.py:344
-#: contrib/admin/views/main.py:346
-msgid "and"
-msgstr "i"
-
-#: db/models/fields/related.py:55
-#, python-format
-msgid "Please enter a valid %s."
-msgstr "Si us plau, introdueixi un %s vàlid."
-
-#: db/models/fields/related.py:658
-msgid "Separate multiple IDs with commas."
-msgstr "Separi múltiples IDs amb comes."
-
-#: db/models/fields/related.py:660
-msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
-msgstr "Premi \"Control\" o \"Command\" en un Mac per escollir més d'un."
-
-#: 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] "Si us plau, introdueixi els IDs de %(self)s vàlids. El valor %(value)r és invàlid."
-msgstr[1] "Si us plau, introdueixi IDs de %(self)s vàlids. Els valors %(value)r són invàlids."
-
-#: db/models/fields/__init__.py:52
-#, python-format
-msgid "%(optname)s with this %(fieldname)s already exists."
-msgstr "Ja existeix %(optname)s amb auqest %(fieldname)s."
-
-#: db/models/fields/__init__.py:159
-#: db/models/fields/__init__.py:316
-#: db/models/fields/__init__.py:724
-#: db/models/fields/__init__.py:735
-#: oldforms/__init__.py:373
-#: newforms/fields.py:93
-#: newforms/fields.py:509
-#: newforms/fields.py:585
-#: newforms/fields.py:596
-#: newforms/models.py:193
-msgid "This field is required."
-msgstr "Aquest camp és obligatori."
-
-#: db/models/fields/__init__.py:414
-msgid "This value must be an integer."
-msgstr "Aquest valor ha de ser un enter."
-
-#: db/models/fields/__init__.py:449
-msgid "This value must be either True or False."
-msgstr "Aquest valor ha de ser True (Veritat) o False (Fals)"
-
-#: db/models/fields/__init__.py:470
-msgid "This field cannot be null."
-msgstr "Aquest camp no pot ser null (estar buit)."
-
-#: db/models/fields/__init__.py:504
-#: core/validators.py:156
-msgid "Enter a valid date in YYYY-MM-DD format."
-msgstr "Introdueixi una data vàlida en el forma AAAA-MM-DD."
-
-#: db/models/fields/__init__.py:573
-#: core/validators.py:165
-msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
-msgstr "Introdueixi un data/hora vàlida en format YYYY-MM-DD HH:MM."
-
-#: db/models/fields/__init__.py:634
-msgid "This value must be a decimal number."
-msgstr "Aquest valor ha de ser un número decimal."
-
-#: db/models/fields/__init__.py:744
-msgid "Enter a valid filename."
-msgstr "Introdueixi un nom de fitxer vàlid."
-
-#: db/models/fields/__init__.py:887
-msgid "This value must be either None, True or False."
-msgstr "Aquest valor ha de ser None (Cap), True (Veritat) o False (Fals)"
-
#: conf/global_settings.py:39
msgid "Arabic"
msgstr "Arabic"
@@ -160,757 +75,700 @@ msgid "French"
msgstr "Francès"
#: conf/global_settings.py:54
+msgid "Gaeilge"
+msgstr "Gaeilge"
+
+#: conf/global_settings.py:55
msgid "Galician"
msgstr "Galleg"
-#: conf/global_settings.py:55
+#: conf/global_settings.py:56
msgid "Hungarian"
msgstr "Húngar"
-#: conf/global_settings.py:56
+#: conf/global_settings.py:57
msgid "Hebrew"
msgstr "Hebreu"
-#: conf/global_settings.py:57
+#: conf/global_settings.py:58
msgid "Croatian"
msgstr "Croat"
-#: conf/global_settings.py:58
+#: conf/global_settings.py:59
msgid "Icelandic"
msgstr "Islandès"
-#: conf/global_settings.py:59
+#: conf/global_settings.py:60
msgid "Italian"
msgstr "Italià"
-#: conf/global_settings.py:60
+#: conf/global_settings.py:61
msgid "Japanese"
msgstr "Japonès"
-#: conf/global_settings.py:61
+#: conf/global_settings.py:62
msgid "Korean"
msgstr "Coreà"
-#: conf/global_settings.py:62
+#: conf/global_settings.py:63
msgid "Khmer"
msgstr "Khmer"
-#: conf/global_settings.py:63
+#: conf/global_settings.py:64
msgid "Kannada"
msgstr "Canès"
-#: conf/global_settings.py:64
+#: conf/global_settings.py:65
msgid "Latvian"
msgstr "Letó"
-#: conf/global_settings.py:65
+#: conf/global_settings.py:66
msgid "Macedonian"
msgstr "Macedoni"
-#: conf/global_settings.py:66
+#: conf/global_settings.py:67
msgid "Dutch"
msgstr "Holandès"
-#: conf/global_settings.py:67
+#: conf/global_settings.py:68
msgid "Norwegian"
msgstr "Norueg"
-#: conf/global_settings.py:68
+#: conf/global_settings.py:69
msgid "Polish"
msgstr "Polac"
-#: conf/global_settings.py:69
+#: conf/global_settings.py:70
msgid "Portugese"
msgstr "Portuguès"
-#: conf/global_settings.py:70
+#: conf/global_settings.py:71
msgid "Brazilian"
msgstr "Brasileny"
-#: conf/global_settings.py:71
+#: conf/global_settings.py:72
msgid "Romanian"
msgstr "Rumanès"
-#: conf/global_settings.py:72
+#: conf/global_settings.py:73
msgid "Russian"
msgstr "Rús"
-#: conf/global_settings.py:73
+#: conf/global_settings.py:74
msgid "Slovak"
msgstr "Eslovac"
-#: conf/global_settings.py:74
+#: conf/global_settings.py:75
msgid "Slovenian"
msgstr "Esloveni"
-#: conf/global_settings.py:75
+#: conf/global_settings.py:76
msgid "Serbian"
msgstr "Serbi"
-#: conf/global_settings.py:76
+#: conf/global_settings.py:77
msgid "Swedish"
msgstr "Suec"
-#: conf/global_settings.py:77
+#: conf/global_settings.py:78
msgid "Tamil"
msgstr "Tàmil"
-#: conf/global_settings.py:78
+#: conf/global_settings.py:79
msgid "Telugu"
msgstr "Telugu"
-#: conf/global_settings.py:79
+#: conf/global_settings.py:80
msgid "Turkish"
msgstr "Turc"
-#: conf/global_settings.py:80
+#: conf/global_settings.py:81
msgid "Ukrainian"
msgstr "Ucranià"
-#: conf/global_settings.py:81
+#: conf/global_settings.py:82
msgid "Simplified Chinese"
msgstr "Xinés simplificat"
-#: conf/global_settings.py:82
+#: conf/global_settings.py:83
msgid "Traditional Chinese"
msgstr "Xinés tradicional"
-#: core/validators.py:72
-msgid "This value must contain only letters, numbers and underscores."
-msgstr "Aquest valor ha de contenir només números, guions, i guions baixos."
+#: contrib/admin/filterspecs.py:42
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Per %s:</h3>\n"
+"<ul>\n"
-#: core/validators.py:76
-msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
-msgstr "Aquest valor ha de contenir només lletres, números, guions, guions baixos, i barres (/)."
+#: contrib/admin/filterspecs.py:72
+#: contrib/admin/filterspecs.py:90
+#: contrib/admin/filterspecs.py:145
+#: contrib/admin/filterspecs.py:171
+msgid "All"
+msgstr "Tots"
-#: core/validators.py:80
-msgid "This value must contain only letters, numbers, underscores or hyphens."
-msgstr "Aquest valor ha de contenir només lletres, números, guions o guions baixos"
+#: contrib/admin/filterspecs.py:111
+msgid "Any date"
+msgstr "Qualsevol data"
-#: core/validators.py:84
-msgid "Uppercase letters are not allowed here."
-msgstr "No es permeten majúscules aquí."
+#: contrib/admin/filterspecs.py:112
+msgid "Today"
+msgstr "Avui"
-#: core/validators.py:88
-msgid "Lowercase letters are not allowed here."
-msgstr "No es permeten minúscules aquí."
+#: contrib/admin/filterspecs.py:115
+msgid "Past 7 days"
+msgstr "Últims 7 dies"
-#: core/validators.py:95
-msgid "Enter only digits separated by commas."
-msgstr "Introdueixi només dígits separats per comes."
+#: contrib/admin/filterspecs.py:117
+msgid "This month"
+msgstr "Aquest mes"
-#: core/validators.py:107
-msgid "Enter valid e-mail addresses separated by commas."
-msgstr "Introdueixi adreces de correu electrònic vàlides separades per comes."
+#: contrib/admin/filterspecs.py:119
+msgid "This year"
+msgstr "Aquest any"
-#: core/validators.py:111
-msgid "Please enter a valid IP address."
-msgstr "Per favor introdueixi una adreça IP vàlida."
+#: contrib/admin/filterspecs.py:145
+#: newforms/widgets.py:205
+#: oldforms/__init__.py:591
+msgid "Yes"
+msgstr "Si"
-#: core/validators.py:115
-msgid "Empty values are not allowed here."
-msgstr "No s'admeten valor buits."
+#: contrib/admin/filterspecs.py:145
+#: newforms/widgets.py:205
+#: oldforms/__init__.py:591
+msgid "No"
+msgstr "No"
-#: core/validators.py:119
-msgid "Non-numeric characters aren't allowed here."
-msgstr "No s'admeten caracters no numèrics."
+#: contrib/admin/filterspecs.py:152
+#: newforms/widgets.py:205
+#: oldforms/__init__.py:591
+msgid "Unknown"
+msgstr "Desconegut"
-#: core/validators.py:123
-msgid "This value can't be comprised solely of digits."
-msgstr "Aquest valor no pot contenir només dígits."
+#: contrib/admin/models.py:17
+msgid "action time"
+msgstr "moment de l'acció"
-#: core/validators.py:128
-#: newforms/fields.py:149
-msgid "Enter a whole number."
-msgstr "Introdueixi un número sencer."
+#: contrib/admin/models.py:20
+msgid "object id"
+msgstr "id del objecte"
-#: core/validators.py:132
-msgid "Only alphabetical characters are allowed here."
-msgstr "Només s'admeted caracters alfabètics aquí."
+#: contrib/admin/models.py:21
+msgid "object repr"
+msgstr "'repr' de l'objecte"
-#: core/validators.py:147
-msgid "Year must be 1900 or later."
-msgstr "L'any ha de ser posterior al 1900"
+#: contrib/admin/models.py:22
+msgid "action flag"
+msgstr "marca de l'acció"
-#: core/validators.py:151
-#, python-format
-msgid "Invalid date: %s"
-msgstr "Data invàlida: %s"
+#: contrib/admin/models.py:23
+msgid "change message"
+msgstr "missatge del canvi"
-#: core/validators.py:161
-msgid "Enter a valid time in HH:MM format."
-msgstr "Introdueixi una hora vàlida en el format HH:MM."
+#: contrib/admin/models.py:26
+msgid "log entry"
+msgstr "entrada del registre"
-#: core/validators.py:170
-#: newforms/fields.py:343
-msgid "Enter a valid e-mail address."
-msgstr "Introdueixi una adreça de correu vàlida."
+#: contrib/admin/models.py:27
+msgid "log entries"
+msgstr "entrades del registre"
-#: core/validators.py:182
-#: core/validators.py:469
-#: oldforms/__init__.py:686
-#: newforms/fields.py:377
-msgid "No file was submitted. Check the encoding type on the form."
-msgstr "No s'ha enviat cap fitxer. Comprovi el tipus de codificació del formulari."
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "No s'ha pogut trobar la pàgina"
-#: core/validators.py:193
-#: newforms/fields.py:405
-msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
-msgstr "Envii una imatge vàilda. El fitxer que ha enviat no era una imatge o estaba corrupte."
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Ho sentim, però no s'ha pogut trobar la pàgina solicitada"
-#: core/validators.py:200
-#, python-format
-msgid "The URL %s does not point to a valid image."
-msgstr "La URL %s no apunta una imatge vàlida."
+#: 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 "Inici"
-#: core/validators.py:204
-#, python-format
-msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
-msgstr "El números de telèfon han de guardar-se en el format XXX-XXX-XXXX. \"%s\" no és vàlid."
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Error del servidor"
-#: core/validators.py:212
-#, python-format
-msgid "The URL %s does not point to a valid QuickTime video."
-msgstr "La URL %s no apunta a un video QuickTime vàlid."
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Error del servidor (500)"
-#: core/validators.py:216
-msgid "A valid URL is required."
-msgstr "Es precisa d'una URL vàlida."
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Error del servidor <em>(500)</em>"
-#: core/validators.py:230
-#, python-format
-msgid ""
-"Valid HTML is required. Specific errors are:\n"
-"%s"
-msgstr ""
-"Es precisa HTML vàlid. Els errors específics sòn:\n"
-"%s"
+#: 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 "Hi ha hagut un error. S'ha informat als administradors del lloc per correu electrònic y hauria d'arreglar-se en breu. Gràcies per la seva paciència."
-#: core/validators.py:237
-#, python-format
-msgid "Badly formed XML: %s"
-msgstr "XML incorrectament formatejat: %s"
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr "Benvingut,"
-#: core/validators.py:254
-#, python-format
-msgid "Invalid URL: %s"
-msgstr "URL invalida: %s"
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Documentació"
-#: core/validators.py:259
-#: core/validators.py:261
-#, python-format
-msgid "The URL %s is a broken link."
-msgstr "La URL %sés un enllaç trencat."
+#: 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 "Canviar clau"
-#: core/validators.py:267
-msgid "Enter a valid U.S. state abbreviation."
-msgstr "Introdueixi una abreviatura vàlida d'estat d'els E.U.A.."
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Finalitzar sessió"
-#: 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] "Vigili la seva boca! Aquí no admetem la paraula: %s."
-msgstr[1] "Vigili la seva boca! Aquí no admetem les paraules: %s."
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Lloc administratiu de Django"
-#: core/validators.py:288
-#, python-format
-msgid "This field must match the '%s' field."
-msgstr "Aquest camp ha de concordar amb el camp '%s'."
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Adminsitració de Django"
-#: core/validators.py:307
-msgid "Please enter something for at least one field."
-msgstr "Si us plau, introdueixi alguna cosa alemnys en un camp."
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Afegir"
-#: core/validators.py:316
-#: core/validators.py:327
-msgid "Please enter both fields or leave them both empty."
-msgstr "Si us plau, ompli els dos camps o deixi'ls tots dos en blanc."
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr "Històric"
-#: core/validators.py:335
-#, python-format
-msgid "This field must be given if %(field)s is %(value)s"
-msgstr "S'ha de proporcionar aquest camps si %(field)s és %(value)s"
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "Veure en el lloc"
-#: core/validators.py:348
-#, python-format
-msgid "This field must be given if %(field)s is not %(value)s"
-msgstr "S'ha de proporcionar aquest camps si %(field)s no és %(value)s"
+#: 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] "Si us plau, corregeixi l'error mostrat abaix."
+msgstr[1] "Si us plau, corregeixi els errors mostrats abaix."
-#: core/validators.py:367
-msgid "Duplicate values are not allowed."
-msgstr "No s'admeten valors duplicats."
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr "Ordre"
-#: core/validators.py:382
-#, python-format
-msgid "This value must be between %(lower)s and %(upper)s."
-msgstr "Aquest valor ha de estar comprés entre %(lower)s i %(upper)s."
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr "Ordre:"
-#: core/validators.py:384
+#: contrib/admin/templates/admin/change_list.html:11
#, python-format
-msgid "This value must be at least %s."
-msgstr "Aquest valor ha de ser com a mínim %s."
+msgid "Add %(name)s"
+msgstr "Afegir %(name)s"
-#: core/validators.py:386
-#, python-format
-msgid "This value must be no more than %s."
-msgstr "Aquest valor ha de ser com a màxim %s."
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Eliminar"
-#: core/validators.py:422
+#: contrib/admin/templates/admin/delete_confirmation.html:13
#, python-format
-msgid "This value must be a power of %s."
-msgstr "Aquest valor ha de ser una potència de %s."
-
-#: core/validators.py:432
-msgid "Please enter a valid decimal number."
-msgstr "Si us plau, introdueixi un número decimal vàlid."
+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 "Eliminar el/la %(object_name)s '%(escaped_object)s' provocaria l'eliminació d'objectes relacionats, però el seu compte no te permisos per a esborrar els tipus d'objecte següents:"
-#: core/validators.py:439
+#: contrib/admin/templates/admin/delete_confirmation.html:20
#, python-format
-msgid "Please enter a valid decimal number with at most %s total digit."
-msgid_plural "Please enter a valid decimal number with at most %s total digits."
-msgstr[0] "Si us plau, introdueixi un número decimal vàlid de com a màxim %s digit."
-msgstr[1] "Si us plau, introdueixi un número decimal vàlid de com a màxim %s digits."
+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 "Està segur de voler esborrar els/les %(object_name)s \"%(escaped_object)s\"? S'esborraran els següents elements relacionats:"
-#: core/validators.py:442
-#, python-format
-msgid "Please enter a valid decimal number with a whole part of at most %s digit."
-msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
-msgstr[0] "Si us plau, introdueixi un número decimal vàlid que la seva part sencera sigui de com a màxim %s digit."
-msgstr[1] "Si us plau, introdueixi un número decimal vàlid que la seva part sencera sigui de com a màxim %s digits."
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr "Si, estic segur"
-#: core/validators.py:445
+#: contrib/admin/templates/admin/filter.html:2
#, python-format
-msgid "Please enter a valid decimal number with at most %s decimal place."
-msgid_plural "Please enter a valid decimal number with at most %s decimal places."
-msgstr[0] "Si us plau, introdueixi un número decimal vàlid de com a màxim %s posició decimal."
-msgstr[1] "Si us plau, introdueixi un número decimal vàlid de com a màxim %s posicions decimals."
-
-#: core/validators.py:453
-msgid "Please enter a valid floating point number."
-msgstr "Si us plau, introdueixi un número amb punt de coma flotant vàlid."
+msgid " By %(filter_title)s "
+msgstr "Per %(filter_title)s "
-#: core/validators.py:462
-#, python-format
-msgid "Make sure your uploaded file is at least %s bytes big."
-msgstr "Asseguris de que el fitxer que ha enviat té, com a mínim, %s bytes."
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filtre"
-#: core/validators.py:463
+#: contrib/admin/templates/admin/index.html:17
#, python-format
-msgid "Make sure your uploaded file is at most %s bytes big."
-msgstr "Asseguris de que el fitxer que ha enviat té, com a màxim %s bytes."
-
-#: core/validators.py:480
-msgid "The format for this field is wrong."
-msgstr "El format per aquest camp és incorrecte."
-
-#: core/validators.py:495
-msgid "This field is invalid."
-msgstr "El camp no és vàlid."
+msgid "Models available in the %(name)s application."
+msgstr "Models disponibles en la aplicació %(name)s."
-#: core/validators.py:531
+#: contrib/admin/templates/admin/index.html:18
#, python-format
-msgid "Could not retrieve anything from %s."
-msgstr "No s'ha pogut obtenir res de %s."
+msgid "%(name)s"
+msgstr "%(name)s"
-#: core/validators.py:534
-#, python-format
-msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
-msgstr "La URL %(url)s ha va tornar la capcelera Content-Type '%(contenttype)s', que no és vàlida."
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Modificar"
-#: core/validators.py:567
-#, python-format
-msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
-msgstr "Si us plau, tanqui l'etiqueta %(tag)s des de la línia %(line)s. (La línia comença amb \"%(start)s\".)"
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "No té permís per editar res."
-#: core/validators.py:571
-#, python-format
-msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
-msgstr "Part del text que comença en la línia %(line)s no està permès en aquest context. (La línia comença per \"%(start)s\".)"
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Accions recents"
-#: core/validators.py:576
-#, python-format
-msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
-msgstr "El \"%(attr)s\" de la línia %(line)s no és un atribut vàlid. (La línia comença per \"%(start)s\".)"
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Les meves accions"
-#: core/validators.py:581
-#, python-format
-msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
-msgstr "La \"<%(tag)s>\" de la línia %(line)s no és una etiqueta vàlida. (La línia comença per \"%(start)s\".)"
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Cap disponible"
-#: core/validators.py:585
-#, python-format
-msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
-msgstr "Una etiqueta de la línia %(line)s li falta un o més atributs requerits.(La línia comença per \"%(start)s\".)"
+#: 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 "Alguna cosa està malament en la instal·lació de la teva base de dades. Assegurat de que s'han creat les taules, i de que la base de dades és llegible per l'usuari apropiat."
-#: core/validators.py:590
-#, python-format
-msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
-msgstr "L'atribut \"%(attr)s\" de la línia %(line)s té un valor que no és vàlid. (La línia comença per \"%(start)s\".)"
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Usuari:"
-#: contrib/auth/forms.py:17
-#: contrib/auth/forms.py:138
-msgid "The two password fields didn't match."
-msgstr "Els dos camps de contrasenya no coincideixen."
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Contrasenya:"
-#: contrib/auth/forms.py:25
-msgid "A user with that username already exists."
-msgstr "Ja existeix un usuari amb aquest nom."
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:24
+msgid "Log in"
+msgstr "Iniciar sessió"
-#: contrib/auth/forms.py:53
-msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
-msgstr "El seu navegador no sembla tenir les 'cookies' (galetes) activades. Aquestes són necessàries per iniciar la sessió."
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr "Data/hora"
-#: 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."
-msgstr "Si us plau, introdueixi un nom d'usuari i contrasenya vàlids. Tingui en compte que tots dos camps son sensibles a majúscules i minúscules."
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr "Usuari"
-#: contrib/auth/forms.py:62
-msgid "This account is inactive."
-msgstr "Aquest compte està inactiu"
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr "Acció"
-#: contrib/auth/forms.py:84
-msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
-msgstr "Aquesta adreça de correu no té associada cap compte d'usuari. Està segur de que s'ha registrat?"
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "F j, Y, H:i "
-#: contrib/auth/forms.py:117
-msgid "The two 'new password' fields didn't match."
-msgstr "Els dos camps de nova contrasenya no coincideixen."
+#: 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 "Aquest objecte no te historial de canvis. Probablement no va ser afegit utilitzant aquest lloc administratiu."
-#: contrib/auth/forms.py:124
-msgid "Your old password was entered incorrectly. Please enter it again."
-msgstr "La seva antiga contrasenya no és correcte. Si el plau, introdueixi-la de nou."
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Mostrar tots"
-#: contrib/auth/models.py:53
-#: contrib/auth/models.py:73
-msgid "name"
-msgstr "nom"
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Cercar"
-#: contrib/auth/models.py:55
-msgid "codename"
-msgstr "nom en clau"
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 resultat"
+msgstr[1] "%(counter)s resultats"
-#: contrib/auth/models.py:58
-msgid "permission"
-msgstr "permís"
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s en total"
-#: contrib/auth/models.py:59
-#: contrib/auth/models.py:74
-msgid "permissions"
-msgstr "permissos"
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Desar com a nou"
-#: contrib/auth/models.py:77
-msgid "group"
-msgstr "grup"
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Desar i afegir-ne un de nou"
-#: contrib/auth/models.py:78
-#: contrib/auth/models.py:121
-msgid "groups"
-msgstr "grups"
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Desar i continuar editant"
-#: contrib/auth/models.py:111
-msgid "username"
-msgstr "nom d'usuari"
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Desar"
-#: contrib/auth/models.py:111
-msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
-msgstr "Requerit. 30 o menys caracters. Només caracters alfanumèrics (lletres, dígits i guions baixos)."
+#: 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 "Primer, entri un usuari i una contrasenya. Després podrà editar més opcions del usuari."
-#: contrib/auth/models.py:112
-msgid "first name"
-msgstr "nom propi"
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Usuari"
-#: contrib/auth/models.py:113
-msgid "last name"
-msgstr "cognoms"
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr "Contrasenya"
-#: contrib/auth/models.py:114
-msgid "e-mail address"
-msgstr "adreça de correu electrònic"
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
+msgstr "Contrasenya (de nou)"
-#: contrib/auth/models.py:115
-msgid "password"
-msgstr "contrasenya"
+#: 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 "Introdueixi la mateixa contrasenya que a sobre, per a verificació."
-#: contrib/auth/models.py:115
-msgid "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."
-msgstr "Utilitzi '[algo]$[salt]$[hexdigest]' o el <a href=\"password/\">formulari de canvi de contrasenya</a>."
+#: 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 "Introdueixi una contrasenya per l'usuari <strong>%(username)s</strong>"
-#: contrib/auth/models.py:116
-msgid "staff status"
-msgstr "és membre del personal"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "'Bookmarklets'"
-#: contrib/auth/models.py:116
-msgid "Designates whether the user can log into this admin site."
-msgstr "Indica si l'usuari pot entrar en el lloc administratiu."
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "'Bookmarklets' de documentació"
-#: contrib/auth/models.py:117
-msgid "active"
-msgstr "actiu"
+#: 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 ""
+"\n"
+"<p class=\"help\">Per a instalar 'bookmarklets', arrosegui l'enllaç a la seva barra de\n"
+"marcadors, o faci click amb el botò dret en l'enllaç i afegeixi'l als marcadors.\n"
+"Ara pot escollir el 'bookmarklet' des de qualsevol pàgina del lloc.\n"
+"Observi que alguns d'aquests 'bookmarklets' precisen que estigui veient\n"
+"el lloc des de un ordinador senyalat com a \"intern\" (parli\n"
+"amb el seu administrador de sistemes si no està segur de la condició del seu).</p>\n"
-#: contrib/auth/models.py:117
-msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."
-msgstr "Designa si aquest usuari pot iniciar sessió a la interfície administrativa Djano. Deselecciona-ho enlloc de esborrar comptes d'usuari."
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Documentació d'aquesta pàgina"
-#: contrib/auth/models.py:118
-msgid "superuser status"
-msgstr "estat de superusuari"
+#: 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 "El porta des de qualsevol pàgina de la documentació a la vista que la genera."
-#: contrib/auth/models.py:118
-msgid "Designates that this user has all permissions without explicitly assigning them."
-msgstr "Designa que aquest usuari té tots els permisos sense assignar-los explícitament."
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Mostra el ID de l'objecte"
-#: contrib/auth/models.py:119
-msgid "last login"
-msgstr "últim inici de sessió"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "Mostra el 'content-type' (tipus de contingut) i el ID inequívoc de les pàgines que representen un únic objecte."
-#: contrib/auth/models.py:120
-msgid "date joined"
-msgstr "data de creació"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Editar aquest objecte (finestra actual)"
-#: contrib/auth/models.py:122
-msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
-msgstr "Junt amb els permissos asignats manualment, aquest usuari tindrà, també, els permissos dels grups dels que sigui membre."
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "El porta a la pàgina d'administració de pàgines que representen un únic objecte."
-#: contrib/auth/models.py:123
-msgid "user permissions"
-msgstr "permissos de l'usuari"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Editar aquest objecte (nova finestra)"
-#: contrib/auth/models.py:127
-msgid "user"
-msgstr "usuari"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Com abans, però obre la pàgina d'administració en una nova finestra."
-#: contrib/auth/models.py:128
-msgid "users"
-msgstr "usuaris"
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Gràcies per emprar algun temps de cualitat amb el lloc web avui."
-#: contrib/auth/models.py:134
-msgid "Personal info"
-msgstr "Informaciò personal"
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Iniciar sessió de nou"
-#: contrib/auth/models.py:135
-msgid "Permissions"
-msgstr "permissos"
+#: 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 "Canvi de clau"
-#: contrib/auth/models.py:136
-msgid "Important dates"
-msgstr "Dates importants"
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr "Canvi de clau exitò"
-#: contrib/auth/models.py:137
-msgid "Groups"
-msgstr "Grups"
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr "La seva clau ha estat canviada."
-#: contrib/auth/models.py:288
-msgid "message"
-msgstr "missatge"
+#: 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 "Si us plau, introdueixi la seva contrasenya antiga, per seguretat, i tot seguit introdueixi la seva nova contrasenya dues vegades per verificar que l'ha escrit correctament."
-#: contrib/auth/views.py:47
-msgid "Logged out"
-msgstr "Sessió finalitzada"
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr "Contrasenya antiga:"
-#: contrib/admin/models.py:17
-msgid "action time"
-msgstr "moment de l'acció"
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr "Contrasenya nova:"
-#: contrib/admin/models.py:20
-msgid "object id"
-msgstr "id del objecte"
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr "Confirmar contrasenya:"
-#: contrib/admin/models.py:21
-msgid "object repr"
-msgstr "'repr' de l'objecte"
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr "Canviar la meva clau:"
-#: contrib/admin/models.py:22
-msgid "action flag"
-msgstr "marca de l'acció"
+#: 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 "Restablir contrasenya"
-#: contrib/admin/models.py:23
-msgid "change message"
-msgstr "missatge del canvi"
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Contrasenya restaber-ta amb èxit"
-#: contrib/admin/models.py:26
-msgid "log entry"
-msgstr "entrada del registre"
+#: 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 "Li hem enviat una contrasenya nova a l'adreça de correu electrònic que ens ha indicat. L'hauria de rebre en breu."
-#: contrib/admin/models.py:27
-msgid "log entries"
-msgstr "entrades del registre"
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Està rebent aquest missatge degut a que va solicitar un restabliment de contrasenya."
-#: contrib/admin/filterspecs.py:42
+#: contrib/admin/templates/registration/password_reset_email.html:3
#, python-format
-msgid ""
-"<h3>By %s:</h3>\n"
-"<ul>\n"
-msgstr ""
-"<h3>Per %s:</h3>\n"
-"<ul>\n"
-
-#: contrib/admin/filterspecs.py:72
-#: contrib/admin/filterspecs.py:90
-#: contrib/admin/filterspecs.py:145
-#: contrib/admin/filterspecs.py:171
-msgid "All"
-msgstr "Tots"
-
-#: contrib/admin/filterspecs.py:111
-msgid "Any date"
-msgstr "Qualsevol data"
+msgid "for your user account at %(site_name)s"
+msgstr "del seu compte d'usuari a %(site_name)s."
-#: contrib/admin/filterspecs.py:112
-msgid "Today"
-msgstr "Avui"
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "La seva nova contrasenya és: %(new_password)s"
-#: contrib/admin/filterspecs.py:115
-msgid "Past 7 days"
-msgstr "Últims 7 dies"
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Sentis lliure de canviar-la en aquesta pàgina:"
-#: contrib/admin/filterspecs.py:117
-msgid "This month"
-msgstr "Aquest mes"
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "El seu nom d'usuari, en cas d'haver-lo oblidat:"
-#: contrib/admin/filterspecs.py:119
-msgid "This year"
-msgstr "Aquest any"
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Gràcies per fer us del nostre lloc!"
-#: contrib/admin/filterspecs.py:145
-#: oldforms/__init__.py:591
-#: newforms/widgets.py:188
-msgid "Yes"
-msgstr "Si"
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "L'equip de %(site_name)s"
-#: contrib/admin/filterspecs.py:145
-#: oldforms/__init__.py:591
-#: newforms/widgets.py:188
-msgid "No"
-msgstr "No"
+#: 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 "Ha oblidat la seva contrasenya? Introdueixi la seva adreça de correu electrònic i crearem una nova que li enviarem per correu."
-#: contrib/admin/filterspecs.py:152
-#: oldforms/__init__.py:591
-#: newforms/widgets.py:188
-msgid "Unknown"
-msgstr "Desconegut"
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Adreça de correu electrònic:"
-#: contrib/admin/views/decorators.py:24
-#: contrib/admin/templates/admin/login.html:25
-msgid "Log in"
-msgstr "Iniciar sessió"
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Restablir la meva contrasenya"
-#: contrib/admin/views/decorators.py:62
-msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
-msgstr "Si us plau, identifiquis de nou doncs la seva sessió ha expirat. No es preocupi, el seu enviament està emmagatzemat."
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Data:"
-#: contrib/admin/views/decorators.py:69
-msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
-msgstr "Sembla ser que el seu navegador no està configurat per acceptar 'cookies' (galetes). Si us plau, habiliti les 'cookies', recarregui aquesta pàgina i provi-ho de nou. "
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Hora:"
-#: contrib/admin/views/decorators.py:83
-msgid "Usernames cannot contain the '@' character."
-msgstr "Els noms d'usuari no poden contenir el caracter '@'."
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Actualment:"
-#: contrib/admin/views/decorators.py:85
-#, python-format
-msgid "Your e-mail address is not your username. Try '%s' instead."
-msgstr "La seva adreça de correu no és el seu nom d'usuari. Provi '%s' en tot cas."
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Modificar:"
-#: contrib/admin/views/main.py:230
-msgid "Site administration"
-msgstr "Lloc administratiu"
+#: contrib/admin/templatetags/admin_list.py:254
+msgid "All dates"
+msgstr "Totes les dates"
-#: contrib/admin/views/main.py:264
#: contrib/admin/views/auth.py:20
+#: contrib/admin/views/main.py:264
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "El/la %(name)s \"%(obj)s\".ha estat agregat/da amb èxit."
+#: contrib/admin/views/auth.py:25
#: contrib/admin/views/main.py:268
#: contrib/admin/views/main.py:354
-#: contrib/admin/views/auth.py:25
msgid "You may edit it again below."
msgstr "Pot editar-lo de nou abaix."
-#: contrib/admin/views/main.py:278
-#: contrib/admin/views/main.py:363
-#, python-format
-msgid "You may add another %s below."
-msgstr "Pot afegir un altre %s a baix."
-
-#: contrib/admin/views/main.py:296
-#, python-format
-msgid "Add %s"
-msgstr "Afegir %s"
-
-#: contrib/admin/views/main.py:342
-#, python-format
-msgid "Added %s."
-msgstr "Agregat %s."
-
-#: contrib/admin/views/main.py:344
-#, python-format
-msgid "Changed %s."
-msgstr "Modificat %s."
-
-#: contrib/admin/views/main.py:346
-#, python-format
-msgid "Deleted %s."
-msgstr "Eliminat %s."
-
-#: contrib/admin/views/main.py:349
-msgid "No fields changed."
-msgstr "Cap camp canviat."
-
-#: contrib/admin/views/main.py:352
-#, python-format
-msgid "The %(name)s \"%(obj)s\" was changed successfully."
-msgstr "S'ha modificat amb èxist el/la %(name)s \"%(obj)s."
-
-#: contrib/admin/views/main.py:360
-#, python-format
-msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
-msgstr "S'ha agregat amb èxit el/la %(name)s \"%(obj)s\". Pot editar-lo de nou abaix."
-
-#: contrib/admin/views/main.py:398
-#, python-format
-msgid "Change %s"
-msgstr "Modificar %s"
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "Afegir usuari"
-#: contrib/admin/views/main.py:483
-#, python-format
-msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
-msgstr "Un o més %(fieldname)s en %(name)s: %(obj)s"
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "Canvi de clau exitós"
-#: contrib/admin/views/main.py:488
+#: contrib/admin/views/auth.py:65
#, python-format
-msgid "One or more %(fieldname)s in %(name)s:"
-msgstr "Un o més %(fieldname)s en %(name)s:"
+msgid "Change password: %s"
+msgstr "Canviar clau: %s"
-#: contrib/admin/views/main.py:520
-#, python-format
-msgid "The %(name)s \"%(obj)s\" was deleted successfully."
-msgstr "El/la %(name)s \"%(obj)s\".ha estat eliminat amb èxit."
+#: contrib/admin/views/decorators.py:10
+#: contrib/auth/forms.py:60
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "Si us plau, introdueixi un nom d'usuari i contrasenya vàlids. Tingui en compte que tots dos camps son sensibles a majúscules i minúscules."
-#: contrib/admin/views/main.py:523
-msgid "Are you sure?"
-msgstr "Està segur?"
+#: contrib/admin/views/decorators.py:62
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "Si us plau, identifiquis de nou doncs la seva sessió ha expirat. No es preocupi, el seu enviament està emmagatzemat."
-#: contrib/admin/views/main.py:545
-#, python-format
-msgid "Change history: %s"
-msgstr "Modificar històric: %s"
+#: contrib/admin/views/decorators.py:69
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "Sembla ser que el seu navegador no està configurat per acceptar 'cookies' (galetes). Si us plau, habiliti les 'cookies', recarregui aquesta pàgina i provi-ho de nou. "
-#: contrib/admin/views/main.py:579
-#, python-format
-msgid "Select %s"
-msgstr "Seleccioni %s"
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "Els noms d'usuari no poden contenir el caracter '@'."
-#: contrib/admin/views/main.py:579
+#: contrib/admin/views/decorators.py:85
#, python-format
-msgid "Select %s to change"
-msgstr "Seleccioni %s per modificar"
-
-#: contrib/admin/views/main.py:780
-msgid "Database error"
-msgstr "Error de/en la base de dades"
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "La seva adreça de correu no és el seu nom d'usuari. Provi '%s' en tot cas."
#: contrib/admin/views/doc.py:47
#: contrib/admin/views/doc.py:49
@@ -1064,666 +922,256 @@ msgstr "Texte XML"
msgid "%s does not appear to be a urlpattern object"
msgstr "%s no sembla ser un objecte 'urlpattern'"
-#: contrib/admin/views/auth.py:31
-msgid "Add user"
-msgstr "Afegir usuari"
-
-#: contrib/admin/views/auth.py:58
-msgid "Password changed successfully."
-msgstr "Canvi de clau exitós"
+#: contrib/admin/views/main.py:230
+msgid "Site administration"
+msgstr "Lloc administratiu"
-#: contrib/admin/views/auth.py:65
+#: contrib/admin/views/main.py:278
+#: contrib/admin/views/main.py:363
#, python-format
-msgid "Change password: %s"
-msgstr "Canviar clau: %s"
-
-#: contrib/admin/templatetags/admin_list.py:254
-msgid "All dates"
-msgstr "Totes les dates"
-
-#: contrib/admin/templates/admin/pagination.html:10
-msgid "Show all"
-msgstr "Mostrar tots"
-
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/auth/user/change_password.html:9
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-#: contrib/admin/templates/registration/password_change_form.html:3
-#: contrib/admin/templates/registration/password_change_done.html:3
-msgid "Documentation"
-msgstr "Documentació"
-
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/auth/user/change_password.html:9
-#: contrib/admin/templates/admin/auth/user/change_password.html:15
-#: contrib/admin/templates/admin/auth/user/change_password.html:46
-#: contrib/admin/templates/admin_doc/template_filter_index.html:5
-#: contrib/admin/templates/admin_doc/bookmarklets.html:4
-#: contrib/admin/templates/admin_doc/template_tag_index.html:5
-#: contrib/admin/templates/admin_doc/index.html:4
-#: contrib/admin/templates/admin_doc/model_detail.html:3
-#: contrib/admin/templates/admin_doc/missing_docutils.html:4
-#: contrib/admin/templates/admin_doc/template_detail.html:4
-#: contrib/admin/templates/admin_doc/view_index.html:5
-#: contrib/admin/templates/admin_doc/model_index.html:5
-#: contrib/admin/templates/admin_doc/view_detail.html:4
-#: contrib/admin/templates/registration/password_change_form.html:3
-#: contrib/admin/templates/registration/password_change_done.html:3
-msgid "Change password"
-msgstr "Canviar clau"
-
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/auth/user/change_password.html:9
-#: contrib/admin/templates/admin_doc/template_filter_index.html:5
-#: contrib/admin/templates/admin_doc/bookmarklets.html:4
-#: contrib/admin/templates/admin_doc/template_tag_index.html:5
-#: contrib/admin/templates/admin_doc/index.html:4
-#: contrib/admin/templates/admin_doc/model_detail.html:3
-#: contrib/admin/templates/admin_doc/missing_docutils.html:4
-#: contrib/admin/templates/admin_doc/template_detail.html:4
-#: contrib/admin/templates/admin_doc/view_index.html:5
-#: contrib/admin/templates/admin_doc/model_index.html:5
-#: contrib/admin/templates/admin_doc/view_detail.html:4
-#: contrib/admin/templates/registration/password_change_form.html:3
-#: contrib/admin/templates/registration/password_change_done.html:3
-#: contrib/comments/templates/comments/form.html:6
-msgid "Log out"
-msgstr "Finalitzar sessió"
-
-#: contrib/admin/templates/admin/delete_confirmation.html:6
-#: contrib/admin/templates/admin/change_form.html:13
-#: contrib/admin/templates/admin/change_list.html:6
-#: contrib/admin/templates/admin/object_history.html:5
-#: contrib/admin/templates/admin/500.html:4
-#: contrib/admin/templates/admin/invalid_setup.html:4
-#: contrib/admin/templates/admin/base.html:30
-#: contrib/admin/templates/admin/auth/user/change_password.html:12
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-#: contrib/admin/templates/registration/password_reset_form.html:4
-#: contrib/admin/templates/registration/logged_out.html:4
-#: contrib/admin/templates/registration/password_reset_done.html:4
-#: contrib/admin/templates/registration/password_change_form.html:4
-#: contrib/admin/templates/registration/password_change_done.html:4
-msgid "Home"
-msgstr "Inici"
-
-#: contrib/admin/templates/admin/delete_confirmation.html:9
-#: contrib/admin/templates/admin/submit_line.html:3
-msgid "Delete"
-msgstr "Eliminar"
+msgid "You may add another %s below."
+msgstr "Pot afegir un altre %s a baix."
-#: contrib/admin/templates/admin/delete_confirmation.html:14
+#: contrib/admin/views/main.py:296
#, 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 "Eliminar el/la %(object_name)s '%(escaped_object)s' provocaria l'eliminació d'objectes relacionats, però el seu compte no te permisos per a esborrar els tipus d'objecte següents:"
+msgid "Add %s"
+msgstr "Afegir %s"
-#: contrib/admin/templates/admin/delete_confirmation.html:21
+#: contrib/admin/views/main.py:342
#, 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 "Està segur de voler esborrar els/les %(object_name)s \"%(escaped_object)s\"? S'esborraran els següents elements relacionats:"
-
-#: contrib/admin/templates/admin/delete_confirmation.html:26
-msgid "Yes, I'm sure"
-msgstr "Si, estic segur"
-
-#: contrib/admin/templates/admin/404.html:4
-#: contrib/admin/templates/admin/404.html:8
-msgid "Page not found"
-msgstr "No s'ha pogut trobar la pàgina"
-
-#: contrib/admin/templates/admin/404.html:10
-msgid "We're sorry, but the requested page could not be found."
-msgstr "Ho sentim, però no s'ha pogut trobar la pàgina solicitada"
-
-#: contrib/admin/templates/admin/change_form.html:15
-#: contrib/admin/templates/admin/index.html:28
-msgid "Add"
-msgstr "Afegir"
-
-#: contrib/admin/templates/admin/change_form.html:21
-#: contrib/admin/templates/admin/object_history.html:5
-msgid "History"
-msgstr "Històric"
-
-#: contrib/admin/templates/admin/change_form.html:22
-msgid "View on site"
-msgstr "Veure en el lloc"
-
-#: 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] "Si us plau, corregeixi l'error mostrat abaix."
-msgstr[1] "Si us plau, corregeixi els errors mostrats abaix."
-
-#: contrib/admin/templates/admin/change_form.html:50
-msgid "Ordering"
-msgstr "Ordre"
+msgid "Added %s."
+msgstr "Agregat %s."
-#: contrib/admin/templates/admin/change_form.html:53
-msgid "Order:"
-msgstr "Ordre:"
+#: contrib/admin/views/main.py:342
+#: contrib/admin/views/main.py:344
+#: contrib/admin/views/main.py:346
+#: core/validators.py:283
+#: db/models/manipulators.py:309
+msgid "and"
+msgstr "i"
-#: contrib/admin/templates/admin/filter.html:2
+#: contrib/admin/views/main.py:344
#, python-format
-msgid " By %(filter_title)s "
-msgstr "Per %(filter_title)s "
-
-#: contrib/admin/templates/admin/submit_line.html:4
-msgid "Save as new"
-msgstr "Desar com a nou"
-
-#: contrib/admin/templates/admin/submit_line.html:5
-msgid "Save and add another"
-msgstr "Desar i afegir-ne un de nou"
+msgid "Changed %s."
+msgstr "Modificat %s."
-#: contrib/admin/templates/admin/submit_line.html:6
-msgid "Save and continue editing"
-msgstr "Desar i continuar editant"
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Deleted %s."
+msgstr "Eliminat %s."
-#: contrib/admin/templates/admin/submit_line.html:7
-msgid "Save"
-msgstr "Desar"
+#: contrib/admin/views/main.py:349
+msgid "No fields changed."
+msgstr "Cap camp canviat."
-#: contrib/admin/templates/admin/change_list.html:12
+#: contrib/admin/views/main.py:352
#, python-format
-msgid "Add %(name)s"
-msgstr "Afegir %(name)s"
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "S'ha modificat amb èxist el/la %(name)s \"%(obj)s."
-#: contrib/admin/templates/admin/index.html:17
+#: contrib/admin/views/main.py:360
#, python-format
-msgid "Models available in the %(name)s application."
-msgstr "Models disponibles en la aplicació %(name)s."
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "S'ha agregat amb èxit el/la %(name)s \"%(obj)s\". Pot editar-lo de nou abaix."
-#: contrib/admin/templates/admin/index.html:18
+#: contrib/admin/views/main.py:398
#, python-format
-msgid "%(name)s"
-msgstr "%(name)s"
-
-#: contrib/admin/templates/admin/index.html:34
-msgid "Change"
-msgstr "Modificar"
-
-#: contrib/admin/templates/admin/index.html:44
-msgid "You don't have permission to edit anything."
-msgstr "No té permís per editar res."
-
-#: contrib/admin/templates/admin/index.html:52
-msgid "Recent Actions"
-msgstr "Accions recents"
-
-#: contrib/admin/templates/admin/index.html:53
-msgid "My Actions"
-msgstr "Les meves accions"
-
-#: contrib/admin/templates/admin/index.html:57
-msgid "None available"
-msgstr "Cap disponible"
-
-#: contrib/admin/templates/admin/base_site.html:4
-msgid "Django site admin"
-msgstr "Lloc administratiu de Django"
-
-#: contrib/admin/templates/admin/base_site.html:7
-msgid "Django administration"
-msgstr "Adminsitració de Django"
-
-#: contrib/admin/templates/admin/object_history.html:18
-msgid "Date/time"
-msgstr "Data/hora"
-
-#: contrib/admin/templates/admin/object_history.html:19
-msgid "User"
-msgstr "Usuari"
-
-#: contrib/admin/templates/admin/object_history.html:20
-msgid "Action"
-msgstr "Acció"
-
-#: contrib/admin/templates/admin/object_history.html:26
-msgid "DATE_WITH_TIME_FULL"
-msgstr "F j, Y, H:i "
-
-#: contrib/admin/templates/admin/object_history.html:36
-msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
-msgstr "Aquest objecte no te historial de canvis. Probablement no va ser afegit utilitzant aquest lloc administratiu."
-
-#: contrib/admin/templates/admin/500.html:4
-msgid "Server error"
-msgstr "Error del servidor"
-
-#: contrib/admin/templates/admin/500.html:6
-msgid "Server error (500)"
-msgstr "Error del servidor (500)"
-
-#: contrib/admin/templates/admin/500.html:9
-msgid "Server Error <em>(500)</em>"
-msgstr "Error del servidor <em>(500)</em>"
-
-#: 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 "Hi ha hagut un error. S'ha informat als administradors del lloc per correu electrònic y hauria d'arreglar-se en breu. Gràcies per la seva paciència."
-
-#: 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 "Alguna cosa està malament en la instal·lació de la teva base de dades. Assegurat de que s'han creat les taules, i de que la base de dades és llegible per l'usuari apropiat."
-
-#: contrib/admin/templates/admin/search_form.html:8
-msgid "Go"
-msgstr "Cercar"
+msgid "Change %s"
+msgstr "Modificar %s"
-#: contrib/admin/templates/admin/search_form.html:10
+#: contrib/admin/views/main.py:483
#, python-format
-msgid "1 result"
-msgid_plural "%(counter)s results"
-msgstr[0] "1 resultat"
-msgstr[1] "%(counter)s resultats"
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Un o més %(fieldname)s en %(name)s: %(obj)s"
-#: contrib/admin/templates/admin/search_form.html:10
+#: contrib/admin/views/main.py:488
#, python-format
-msgid "%(full_result_count)s total"
-msgstr "%(full_result_count)s en total"
-
-#: contrib/admin/templates/admin/filters.html:4
-msgid "Filter"
-msgstr "Filtre"
-
-#: contrib/admin/templates/admin/login.html:17
-#: contrib/comments/templates/comments/form.html:6
-#: contrib/comments/templates/comments/form.html:8
-msgid "Username:"
-msgstr "Usuari:"
-
-#: contrib/admin/templates/admin/login.html:20
-#: contrib/comments/templates/comments/form.html:8
-msgid "Password:"
-msgstr "Contrasenya:"
-
-#: contrib/admin/templates/admin/base.html:25
-msgid "Welcome,"
-msgstr "Benvingut,"
-
-#: 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 "Primer, entri un usuari i una contrasenya. Després podrà editar més opcions del usuari."
-
-#: contrib/admin/templates/admin/auth/user/add_form.html:12
-msgid "Username"
-msgstr "Usuari"
-
-#: contrib/admin/templates/admin/auth/user/add_form.html:18
-#: contrib/admin/templates/admin/auth/user/change_password.html:34
-msgid "Password"
-msgstr "Contrasenya"
-
-#: contrib/admin/templates/admin/auth/user/add_form.html:23
-#: contrib/admin/templates/admin/auth/user/change_password.html:39
-msgid "Password (again)"
-msgstr "Contrasenya (de nou)"
-
-#: 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."
-msgstr "Introdueixi la mateixa contrasenya que a sobre, per a verificació."
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Un o més %(fieldname)s en %(name)s:"
-#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#: contrib/admin/views/main.py:520
#, python-format
-msgid "Enter a new password for the user <strong>%(username)s</strong>."
-msgstr "Introdueixi una contrasenya per l'usuari <strong>%(username)s</strong>"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-msgid "Bookmarklets"
-msgstr "'Bookmarklets'"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:5
-msgid "Documentation bookmarklets"
-msgstr "'Bookmarklets' de documentació"
-
-#: 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"
-msgstr ""
-"\n"
-"<p class=\"help\">Per a instalar 'bookmarklets', arrosegui l'enllaç a la seva barra de\n"
-"marcadors, o faci click amb el botò dret en l'enllaç i afegeixi'l als marcadors.\n"
-"Ara pot escollir el 'bookmarklet' des de qualsevol pàgina del lloc.\n"
-"Observi que alguns d'aquests 'bookmarklets' precisen que estigui veient\n"
-"el lloc des de un ordinador senyalat com a \"intern\" (parli\n"
-"amb el seu administrador de sistemes si no està segur de la condició del seu).</p>\n"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:19
-msgid "Documentation for this page"
-msgstr "Documentació d'aquesta pàgina"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:20
-msgid "Jumps you from any page to the documentation for the view that generates that page."
-msgstr "El porta des de qualsevol pàgina de la documentació a la vista que la genera."
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:22
-msgid "Show object ID"
-msgstr "Mostra el ID de l'objecte"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:23
-msgid "Shows the content-type and unique ID for pages that represent a single object."
-msgstr "Mostra el 'content-type' (tipus de contingut) i el ID inequívoc de les pàgines que representen un únic objecte."
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:25
-msgid "Edit this object (current window)"
-msgstr "Editar aquest objecte (finestra actual)"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:26
-msgid "Jumps to the admin page for pages that represent a single object."
-msgstr "El porta a la pàgina d'administració de pàgines que representen un únic objecte."
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:28
-msgid "Edit this object (new window)"
-msgstr "Editar aquest objecte (nova finestra)"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:29
-msgid "As above, but opens the admin page in a new window."
-msgstr "Com abans, però obre la pàgina d'administració en una nova finestra."
-
-#: contrib/admin/templates/widget/date_time.html:3
-msgid "Date:"
-msgstr "Data:"
-
-#: contrib/admin/templates/widget/date_time.html:4
-msgid "Time:"
-msgstr "Hora:"
-
-#: contrib/admin/templates/widget/file.html:2
-msgid "Currently:"
-msgstr "Actualment:"
-
-#: contrib/admin/templates/widget/file.html:3
-msgid "Change:"
-msgstr "Modificar:"
-
-#: contrib/admin/templates/registration/password_reset_form.html:4
-#: contrib/admin/templates/registration/password_reset_form.html:6
-#: contrib/admin/templates/registration/password_reset_form.html:10
-#: contrib/admin/templates/registration/password_reset_done.html:4
-msgid "Password reset"
-msgstr "Restablir contrasenya"
-
-#: 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 "Ha oblidat la seva contrasenya? Introdueixi la seva adreça de correu electrònic i crearem una nova que li enviarem per correu."
-
-#: contrib/admin/templates/registration/password_reset_form.html:16
-msgid "E-mail address:"
-msgstr "Adreça de correu electrònic:"
-
-#: contrib/admin/templates/registration/password_reset_form.html:16
-msgid "Reset my password"
-msgstr "Restablir la meva contrasenya"
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "El/la %(name)s \"%(obj)s\".ha estat eliminat amb èxit."
-#: contrib/admin/templates/registration/password_reset_email.html:2
-msgid "You're receiving this e-mail because you requested a password reset"
-msgstr "Està rebent aquest missatge degut a que va solicitar un restabliment de contrasenya."
+#: contrib/admin/views/main.py:523
+msgid "Are you sure?"
+msgstr "Està segur?"
-#: contrib/admin/templates/registration/password_reset_email.html:3
+#: contrib/admin/views/main.py:545
#, python-format
-msgid "for your user account at %(site_name)s"
-msgstr "del seu compte d'usuari a %(site_name)s."
+msgid "Change history: %s"
+msgstr "Modificar històric: %s"
-#: contrib/admin/templates/registration/password_reset_email.html:5
+#: contrib/admin/views/main.py:579
#, python-format
-msgid "Your new password is: %(new_password)s"
-msgstr "La seva nova contrasenya és: %(new_password)s"
-
-#: contrib/admin/templates/registration/password_reset_email.html:7
-msgid "Feel free to change this password by going to this page:"
-msgstr "Sentis lliure de canviar-la en aquesta pàgina:"
-
-#: contrib/admin/templates/registration/password_reset_email.html:11
-msgid "Your username, in case you've forgotten:"
-msgstr "El seu nom d'usuari, en cas d'haver-lo oblidat:"
-
-#: contrib/admin/templates/registration/password_reset_email.html:13
-msgid "Thanks for using our site!"
-msgstr "Gràcies per fer us del nostre lloc!"
+msgid "Select %s"
+msgstr "Seleccioni %s"
-#: contrib/admin/templates/registration/password_reset_email.html:15
+#: contrib/admin/views/main.py:579
#, python-format
-msgid "The %(site_name)s team"
-msgstr "L'equip de %(site_name)s"
-
-#: contrib/admin/templates/registration/logged_out.html:8
-msgid "Thanks for spending some quality time with the Web site today."
-msgstr "Gràcies per emprar algun temps de cualitat amb el lloc web avui."
-
-#: contrib/admin/templates/registration/logged_out.html:10
-msgid "Log in again"
-msgstr "Iniciar sessió de nou"
-
-#: contrib/admin/templates/registration/password_reset_done.html:6
-#: contrib/admin/templates/registration/password_reset_done.html:10
-msgid "Password reset successful"
-msgstr "Contrasenya restaber-ta amb èxit"
-
-#: 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 "Li hem enviat una contrasenya nova a l'adreça de correu electrònic que ens ha indicat. L'hauria de rebre en breu."
-
-#: 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"
-msgstr "Canvi de clau"
-
-#: contrib/admin/templates/registration/password_change_form.html:12
-msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
-msgstr "Si us plau, introdueixi la seva contrasenya antiga, per seguretat, i tot seguit introdueixi la seva nova contrasenya dues vegades per verificar que l'ha escrit correctament."
-
-#: contrib/admin/templates/registration/password_change_form.html:17
-msgid "Old password:"
-msgstr "Contrasenya antiga:"
-
-#: contrib/admin/templates/registration/password_change_form.html:19
-msgid "New password:"
-msgstr "Contrasenya nova:"
-
-#: contrib/admin/templates/registration/password_change_form.html:21
-msgid "Confirm password:"
-msgstr "Confirmar contrasenya:"
-
-#: contrib/admin/templates/registration/password_change_form.html:23
-msgid "Change my password"
-msgstr "Canviar la meva clau:"
-
-#: contrib/admin/templates/registration/password_change_done.html:6
-#: contrib/admin/templates/registration/password_change_done.html:10
-msgid "Password change successful"
-msgstr "Canvi de clau exitò"
-
-#: contrib/admin/templates/registration/password_change_done.html:12
-msgid "Your password was changed."
-msgstr "La seva clau ha estat canviada."
+msgid "Select %s to change"
+msgstr "Seleccioni %s per modificar"
-#: contrib/sites/models.py:33
-msgid "domain name"
-msgstr "nom del domini"
+#: contrib/admin/views/main.py:780
+msgid "Database error"
+msgstr "Error de/en la base de dades"
-#: contrib/sites/models.py:34
-msgid "display name"
-msgstr "nom per mostrar"
+#: contrib/auth/forms.py:17
+#: contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Els dos camps de contrasenya no coincideixen."
-#: contrib/sites/models.py:38
-msgid "site"
-msgstr "lloc"
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Ja existeix un usuari amb aquest nom."
-#: contrib/sites/models.py:39
-msgid "sites"
-msgstr "llocs"
+#: contrib/auth/forms.py:53
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "El seu navegador no sembla tenir les 'cookies' (galetes) activades. Aquestes són necessàries per iniciar la sessió."
-#: contrib/humanize/templatetags/humanize.py:20
-msgid "th"
-msgstr "rt"
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Aquest compte està inactiu"
-#: contrib/humanize/templatetags/humanize.py:20
-msgid "st"
-msgstr "r"
+#: contrib/auth/forms.py:84
+msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
+msgstr "Aquesta adreça de correu no té associada cap compte d'usuari. Està segur de que s'ha registrat?"
-#: contrib/humanize/templatetags/humanize.py:20
-msgid "nd"
-msgstr "n"
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Els dos camps de nova contrasenya no coincideixen."
-#: contrib/humanize/templatetags/humanize.py:20
-msgid "rd"
-msgstr "r"
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "La seva antiga contrasenya no és correcte. Si el plau, introdueixi-la de nou."
-#: contrib/humanize/templatetags/humanize.py:50
-#, python-format
-msgid "%(value).1f million"
-msgid_plural "%(value).1f million"
-msgstr[0] "%(value).1f milió"
-msgstr[1] "%(value).1f milions"
+#: contrib/auth/models.py:73
+#: contrib/auth/models.py:93
+msgid "name"
+msgstr "nom"
-#: contrib/humanize/templatetags/humanize.py:53
-#, python-format
-msgid "%(value).1f billion"
-msgid_plural "%(value).1f billion"
-msgstr[0] "%(value).1f bilió"
-msgstr[1] "%(value).1f bilions"
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "nom en clau"
-#: contrib/humanize/templatetags/humanize.py:56
-#, python-format
-msgid "%(value).1f trillion"
-msgid_plural "%(value).1f trillion"
-msgstr[0] "%(value).1f trilió"
-msgstr[1] "%(value).1f trilions"
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "permís"
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "one"
-msgstr "un"
+#: contrib/auth/models.py:79
+#: contrib/auth/models.py:94
+msgid "permissions"
+msgstr "permissos"
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "two"
-msgstr "dos"
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "grup"
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "three"
-msgstr "tres"
+#: contrib/auth/models.py:98
+#: contrib/auth/models.py:141
+msgid "groups"
+msgstr "grups"
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "four"
-msgstr "cuatre"
+#: contrib/auth/models.py:131
+msgid "username"
+msgstr "nom d'usuari"
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "five"
-msgstr "cinc"
+#: contrib/auth/models.py:131
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr "Requerit. 30 o menys caracters. Només caracters alfanumèrics (lletres, dígits i guions baixos)."
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "six"
-msgstr "sis"
+#: contrib/auth/models.py:132
+msgid "first name"
+msgstr "nom propi"
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "seven"
-msgstr "set"
+#: contrib/auth/models.py:133
+msgid "last name"
+msgstr "cognoms"
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "eight"
-msgstr "vuit"
+#: contrib/auth/models.py:134
+msgid "e-mail address"
+msgstr "adreça de correu electrònic"
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "nine"
-msgstr "nou"
+#: contrib/auth/models.py:135
+msgid "password"
+msgstr "contrasenya"
-#: contrib/humanize/templatetags/humanize.py:90
-msgid "today"
-msgstr "avui"
+#: contrib/auth/models.py:135
+msgid "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."
+msgstr "Utilitzi '[algo]$[salt]$[hexdigest]' o el <a href=\"password/\">formulari de canvi de contrasenya</a>."
-#: contrib/humanize/templatetags/humanize.py:92
-msgid "tomorrow"
-msgstr "demà"
+#: contrib/auth/models.py:136
+msgid "staff status"
+msgstr "és membre del personal"
-#: contrib/humanize/templatetags/humanize.py:94
-msgid "yesterday"
-msgstr "ahir"
+#: contrib/auth/models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr "Indica si l'usuari pot entrar en el lloc administratiu."
-#: contrib/flatpages/models.py:8
-msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
-msgstr "Exemple: '/about/contact/'. Asseguri's de posar les barres al principi i al final."
+#: contrib/auth/models.py:137
+msgid "active"
+msgstr "actiu"
-#: contrib/flatpages/models.py:9
-msgid "title"
-msgstr "tìtol"
+#: contrib/auth/models.py:137
+msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."
+msgstr "Designa si aquest usuari pot iniciar sessió a la interfície administrativa Djano. Deselecciona-ho enlloc de esborrar comptes d'usuari."
-#: contrib/flatpages/models.py:10
-msgid "content"
-msgstr "contingut"
+#: contrib/auth/models.py:138
+msgid "superuser status"
+msgstr "estat de superusuari"
-#: contrib/flatpages/models.py:11
-msgid "enable comments"
-msgstr "habilitar comentaris"
+#: contrib/auth/models.py:138
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr "Designa que aquest usuari té tots els permisos sense assignar-los explícitament."
-#: contrib/flatpages/models.py:12
-msgid "template name"
-msgstr "nom de la plantilla"
+#: contrib/auth/models.py:139
+msgid "last login"
+msgstr "últim inici de sessió"
-#: contrib/flatpages/models.py:13
-msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
-msgstr "Exemple: 'flatpages/contact_page.html'. Si no el proporciona, el sistema utilitzarà 'flatpages/defaula.htmlt'."
+#: contrib/auth/models.py:140
+msgid "date joined"
+msgstr "data de creació"
-#: contrib/flatpages/models.py:14
-msgid "registration required"
-msgstr "s'ha de estar registrat"
+#: contrib/auth/models.py:142
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "Junt amb els permissos asignats manualment, aquest usuari tindrà, també, els permissos dels grups dels que sigui membre."
-#: contrib/flatpages/models.py:14
-msgid "If this is checked, only logged-in users will be able to view the page."
-msgstr "Si està marcat, només els usuaris registrats podran veure la pàgina."
+#: contrib/auth/models.py:143
+msgid "user permissions"
+msgstr "permissos de l'usuari"
-#: contrib/flatpages/models.py:18
-msgid "flat page"
-msgstr "pàgina estàtica"
+#: contrib/auth/models.py:147
+msgid "user"
+msgstr "usuari"
-#: contrib/flatpages/models.py:19
-msgid "flat pages"
-msgstr "pàgines estàtiques"
+#: contrib/auth/models.py:148
+msgid "users"
+msgstr "usuaris"
-#: contrib/redirects/models.py:7
-msgid "redirect from"
-msgstr "redreçar des de"
+#: contrib/auth/models.py:154
+msgid "Personal info"
+msgstr "Informaciò personal"
-#: contrib/redirects/models.py:8
-msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
-msgstr "Aquesta ruta hauria de ser el camí absolut, excloent-ne el nom del domini. Exemple '/events/search/'."
+#: contrib/auth/models.py:155
+msgid "Permissions"
+msgstr "permissos"
-#: contrib/redirects/models.py:9
-msgid "redirect to"
-msgstr "redreçar a"
+#: contrib/auth/models.py:156
+msgid "Important dates"
+msgstr "Dates importants"
-#: contrib/redirects/models.py:10
-msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
-msgstr "Això pot ser bé una ruta absoluta (com abans) o una URL completa que comenci per http:// ."
+#: contrib/auth/models.py:157
+msgid "Groups"
+msgstr "Grups"
-#: contrib/redirects/models.py:13
-msgid "redirect"
-msgstr "redreçament"
+#: contrib/auth/models.py:316
+msgid "message"
+msgstr "missatge"
-#: contrib/redirects/models.py:14
-msgid "redirects"
-msgstr "redreçaments"
+#: contrib/auth/views.py:47
+msgid "Logged out"
+msgstr "Sessió finalitzada"
#: contrib/comments/models.py:67
#: contrib/comments/models.py:169
@@ -1904,17 +1352,41 @@ msgstr "eliminacions del moderador"
msgid "Moderator deletion by %r"
msgstr "eliminació del moderador per %r"
-#: contrib/comments/views/karma.py:20
-msgid "Anonymous users cannot vote"
-msgstr "Els usuaris anònims no poden votar"
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Contrasenya oblidada?"
-#: contrib/comments/views/karma.py:24
-msgid "Invalid comment ID"
-msgstr "ID del comentari invàlid"
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Qualificacions"
-#: contrib/comments/views/karma.py:26
-msgid "No voting for yourself"
-msgstr "No pots votar-te a tu mateix"
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Requerit"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Opcional"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Enviar una fotografia"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Comentari:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Previsualitzar comentari"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "El seu nom:"
#: contrib/comments/views/comments.py:28
msgid "This rating is required because you've entered at least one other rating."
@@ -1950,66 +1422,179 @@ msgstr ""
"\n"
"%(text)s"
-#: contrib/comments/views/comments.py:189
-#: contrib/comments/views/comments.py:281
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
msgid "Only POSTs are allowed"
msgstr "Només s'admed POST"
-#: contrib/comments/views/comments.py:193
-#: contrib/comments/views/comments.py:285
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
msgid "One or more of the required fields wasn't submitted"
msgstr "Un o més dels caps requerits no ha estat sotmès"
-#: contrib/comments/views/comments.py:197
-#: contrib/comments/views/comments.py:287
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
msgid "Somebody tampered with the comment form (security violation)"
msgstr "Algú està jugant amb el formulari de comentaris (violació de seguretat)"
-#: contrib/comments/views/comments.py:207
-#: contrib/comments/views/comments.py:293
+#: 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 "El formulari de comentaris tenia un paràmetre 'target' invàlid -- el ID del objecte era invàlid"
-#: contrib/comments/views/comments.py:258
-#: contrib/comments/views/comments.py:322
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
msgid "The comment form didn't provide either 'preview' or 'post'"
msgstr "El formulari del comentari no ha proveït ni 'previsualitzar' ni 'enviar'"
-#: contrib/comments/templates/comments/form.html:8
-msgid "Forgotten your password?"
-msgstr "Contrasenya oblidada?"
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Els usuaris anònims no poden votar"
-#: contrib/comments/templates/comments/form.html:12
-msgid "Ratings"
-msgstr "Qualificacions"
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "ID del comentari invàlid"
-#: contrib/comments/templates/comments/form.html:12
-#: contrib/comments/templates/comments/form.html:23
-msgid "Required"
-msgstr "Requerit"
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "No pots votar-te a tu mateix"
-#: contrib/comments/templates/comments/form.html:12
-#: contrib/comments/templates/comments/form.html:23
-msgid "Optional"
-msgstr "Opcional"
+#: contrib/contenttypes/models.py:37
+msgid "python model class name"
+msgstr "nom de la classe del model en python"
-#: contrib/comments/templates/comments/form.html:23
-msgid "Post a photo"
-msgstr "Enviar una fotografia"
+#: contrib/contenttypes/models.py:40
+msgid "content type"
+msgstr "tipus de contingut"
-#: contrib/comments/templates/comments/form.html:28
-#: contrib/comments/templates/comments/freeform.html:5
-msgid "Comment:"
-msgstr "Comentari:"
+#: contrib/contenttypes/models.py:41
+msgid "content types"
+msgstr "tipus de continguts"
-#: contrib/comments/templates/comments/form.html:35
-#: contrib/comments/templates/comments/freeform.html:10
-msgid "Preview comment"
-msgstr "Previsualitzar comentari"
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Exemple: '/about/contact/'. Asseguri's de posar les barres al principi i al final."
-#: contrib/comments/templates/comments/freeform.html:4
-msgid "Your name:"
-msgstr "El seu nom:"
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "tìtol"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "contingut"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "habilitar comentaris"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "nom de la plantilla"
+
+#: contrib/flatpages/models.py:13
+msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
+msgstr "Exemple: 'flatpages/contact_page.html'. Si no el proporciona, el sistema utilitzarà 'flatpages/defaula.htmlt'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "s'ha de estar registrat"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Si està marcat, només els usuaris registrats podran veure la pàgina."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "pàgina estàtica"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "pàgines estàtiques"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "th"
+msgstr "rt"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "st"
+msgstr "r"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "nd"
+msgstr "n"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "rd"
+msgstr "r"
+
+#: contrib/humanize/templatetags/humanize.py:50
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f milió"
+msgstr[1] "%(value).1f milions"
+
+#: contrib/humanize/templatetags/humanize.py:53
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f bilió"
+msgstr[1] "%(value).1f bilions"
+
+#: contrib/humanize/templatetags/humanize.py:56
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f trilió"
+msgstr[1] "%(value).1f trilions"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "one"
+msgstr "un"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "two"
+msgstr "dos"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "three"
+msgstr "tres"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "four"
+msgstr "cuatre"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "five"
+msgstr "cinc"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "six"
+msgstr "sis"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "seven"
+msgstr "set"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "eight"
+msgstr "vuit"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "nine"
+msgstr "nou"
+
+#: contrib/humanize/templatetags/humanize.py:90
+msgid "today"
+msgstr "avui"
+
+#: contrib/humanize/templatetags/humanize.py:92
+msgid "tomorrow"
+msgstr "demà"
+
+#: contrib/humanize/templatetags/humanize.py:94
+msgid "yesterday"
+msgstr "ahir"
#: contrib/localflavor/ar/forms.py:30
#: contrib/localflavor/ar/forms.py:38
@@ -2018,6 +1603,8 @@ msgstr "Introdueixi un codi postal en el format NNNN or ANNNNAAA."
#: contrib/localflavor/ar/forms.py:61
#: contrib/localflavor/br/forms.py:103
+#: contrib/localflavor/pe/forms.py:34
+#: contrib/localflavor/pe/forms.py:57
msgid "This field requires only numbers."
msgstr "Aquest camps requereix només números."
@@ -2065,14 +1652,13 @@ msgstr "Aquest camp requereix almenys 14 dígits."
msgid "Invalid CNPJ number."
msgstr "Número CNPJ invàlid."
-#: contrib/localflavor/ch/forms.py:18
-#: contrib/localflavor/no/forms.py:14
-msgid "Enter a zip code in the format XXXX."
-msgstr "Introdueixi un codi zip en el format XXXX."
+#: contrib/localflavor/ca/forms.py:19
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Introdueixi un codi postal en el format XXX XXX."
-#: contrib/localflavor/ch/forms.py:90
-msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format."
-msgstr "Introdueixi un número de identificació o de passaport Suïssos en els formats 1234567890 o X1234567<0."
+#: contrib/localflavor/ca/forms.py:81
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format."
+msgstr "Introdueixi un número vàlid de la Seguretat Social de Canada en el format XXX-XXX-XXXX."
#: contrib/localflavor/ch/ch_states.py:5
msgid "Aargau"
@@ -2178,6 +1764,15 @@ msgstr "Zug"
msgid "Zurich"
msgstr "Zurich"
+#: contrib/localflavor/ch/forms.py:18
+#: contrib/localflavor/no/forms.py:14
+msgid "Enter a zip code in the format XXXX."
+msgstr "Introdueixi un codi zip en el format XXXX."
+
+#: contrib/localflavor/ch/forms.py:90
+msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format."
+msgstr "Introdueixi un número de identificació o de passaport Suïssos en els formats 1234567890 o X1234567<0."
+
#: contrib/localflavor/cl/forms.py:32
msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
msgstr "Introdueixi un RUT Xilè vàlid. El format és XX.XXX.XXX-X"
@@ -2186,16 +1781,6 @@ msgstr "Introdueixi un RUT Xilè vàlid. El format és XX.XXX.XXX-X"
msgid "Enter valid a Chilean RUT"
msgstr "Introdueixi un RUT Xilè vàlid."
-#: 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 "Introdueixi un codi zip en el format XXXXX."
-
-#: contrib/localflavor/de/forms.py:60
-msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format."
-msgstr "Introdueixi un número de tarjeta d'identificació alemany vàlid en el format XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
-
#: contrib/localflavor/de/de_states.py:5
msgid "Baden-Wuerttemberg"
msgstr "Baden-Wuerttemberg"
@@ -2260,11 +1845,335 @@ msgstr "Schleswig-Holstein"
msgid "Thuringia"
msgstr "Thuringia"
+#: 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 "Introdueixi un codi zip en el format XXXXX."
+
+#: contrib/localflavor/de/forms.py:60
+msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format."
+msgstr "Introdueixi un número de tarjeta d'identificació alemany vàlid en el format XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Àlaba"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alacant"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "Almeria"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Àvila"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Illes Balears"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcelona"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Càceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cadis"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castelló"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Ciudad Real"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Còrdova"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "La Corunya"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Conca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Girona"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipúscoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Osca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaén"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "Lleó"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lleida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Madrid"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Màlaga"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Múrcia"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarra"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Ourense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Astúries"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palència"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Santa Cruz de Tenerife"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Cantàbria"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Segòvia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Sevilla"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Sòria"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Terol"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "València"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Biscaia"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Saragossa"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Andalusia"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Aragó"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Principat d'Astúries"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Illes Balears"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "Euskadi"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Canàries"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Castella-La Mancha"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Castella i Lleó"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Catalunya"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Extremadura"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Galícia"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Regió de Múrcia"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Comunitat Foral de Navarra"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Comunitat Valenciana"
+
+#: contrib/localflavor/es/forms.py:22
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Introdueixi un codi postal en rang i format 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+msgid "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX."
+msgstr "Introdueixi un número de telèfon vàlid en un dels formats 6XXXXXXXX, 8XXXXXXXX o 9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:73
+#: contrib/localflavor/es/forms.py:108
+#: db/models/fields/related.py:55
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Si us plau, introdueixi un %s vàlid."
+
+#: contrib/localflavor/es/forms.py:91
+msgid "Invalid checksum for NIF."
+msgstr "Validació invàlida del NIF."
+
+#: contrib/localflavor/es/forms.py:97
+msgid "Invalid checksum for NIE."
+msgstr "Validació invàlida del NIE."
+
+#: contrib/localflavor/es/forms.py:106
+msgid "Invalid checksum for CIF."
+msgstr "Validació invàlida del CIF."
+
+#: contrib/localflavor/es/forms.py:136
+msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr "Introdueixi un número de compte bancari vàlid en el format XXXX-XXXX-XX-XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:150
+msgid "Invalid checksum for bank account number."
+msgstr "Validació invàlida del número de compte bancari."
+
#: contrib/localflavor/fi/forms.py:40
#: contrib/localflavor/fi/forms.py:45
msgid "Enter a valid Finnish social security number."
msgstr "Introdueixi un número vàlid de la seguretat social finlandesa."
+#: contrib/localflavor/in_/forms.py:16
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Introdueixi un codi zip en el format XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Introdueixi un número de identificació d'Islàndia. El format és XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:31
+msgid "The Icelandic identification number is not valid."
+msgstr "El número de identificació d'Islàndia no és vàlid."
+
#: contrib/localflavor/it/forms.py:16
msgid "Enter a valid zip code."
msgstr "Introdueixi un codi zip vàlid."
@@ -2533,19 +2442,39 @@ msgstr "Zuid-Holland"
msgid "Enter a valid Norwegian social security number."
msgstr "Introdueixi un número de la seguretat social Noruega vàlid."
-#: contrib/localflavor/pl/forms.py:53
+#: contrib/localflavor/pe/forms.py:36
+msgid "This field requires 8 digits."
+msgstr "Aquest camp requereix 8 dígits."
+
+#: contrib/localflavor/pe/forms.py:59
+msgid "This field requires 11 digits."
+msgstr "Aquest camp requereix 11 dígits."
+
+#: contrib/localflavor/pl/forms.py:41
msgid "National Identification Number consists of 11 digits."
msgstr "El número d'identidicació nacional està compost de 11 digits."
-#: contrib/localflavor/pl/forms.py:59
+#: contrib/localflavor/pl/forms.py:47
msgid "Wrong checksum for the National Identification Number."
msgstr "Validació invàlida del número d'identificació nacional."
-#: contrib/localflavor/pl/forms.py:71
+#: contrib/localflavor/pl/forms.py:72
msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
msgstr "Introdueixi un número NIP en el format XXX-XXX-XX-XX o XX-XX-XXX-XXX."
-#: contrib/localflavor/pl/forms.py:82
+#: contrib/localflavor/pl/forms.py:78
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "Validació invàlida del número tributari (NIP)."
+
+#: contrib/localflavor/pl/forms.py:107
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr "El número nacional de registre de negocis (REGON) consisteix en 7 o 9 dígits."
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "Validació invàlida del número nacional de registre de negocis."
+
+#: contrib/localflavor/pl/forms.py:148
msgid "Enter a postal code in the format XX-XXX."
msgstr "Introdueixi un codi postal en el format XX-XXX."
@@ -2977,49 +2906,511 @@ msgstr "Introdueixi un codi zip en el format XXXXX o XXXXX-XXXX."
msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
msgstr "Introdueixi un número vàlid de la Seguretat Social dels E.U.A. en el format XXX-XX-XXXX."
-#: contrib/localflavor/in_/forms.py:16
-msgid "Enter a zip code in the format XXXXXXX."
-msgstr "Introdueixi un codi zip en el format XXXXXXX."
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "redreçar des de"
-#: contrib/localflavor/is_/forms.py:17
-msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
-msgstr "Introdueixi un número de identificació d'Islàndia. El format és XXXXXX-XXXX."
+#: contrib/redirects/models.py:8
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
+msgstr "Aquesta ruta hauria de ser el camí absolut, excloent-ne el nom del domini. Exemple '/events/search/'."
-#: contrib/localflavor/is_/forms.py:31
-msgid "The Icelandic identification number is not valid."
-msgstr "El número de identificació d'Islàndia no és vàlid."
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "redreçar a"
+
+#: contrib/redirects/models.py:10
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
+msgstr "Això pot ser bé una ruta absoluta (com abans) o una URL completa que comenci per http:// ."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "redreçament"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "redreçaments"
-#: contrib/sessions/models.py:68
+#: contrib/sessions/models.py:80
msgid "session key"
msgstr "clau de la sessió"
-#: contrib/sessions/models.py:69
+#: contrib/sessions/models.py:81
msgid "session data"
msgstr "dades de la sessió"
-#: contrib/sessions/models.py:70
+#: contrib/sessions/models.py:82
msgid "expire date"
msgstr "data de caducitat"
-#: contrib/sessions/models.py:74
+#: contrib/sessions/models.py:87
msgid "session"
msgstr "sessió"
-#: contrib/sessions/models.py:75
+#: contrib/sessions/models.py:88
msgid "sessions"
msgstr "sessions"
-#: contrib/contenttypes/models.py:37
-msgid "python model class name"
-msgstr "nom de la classe del model en python"
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "nom del domini"
-#: contrib/contenttypes/models.py:40
-msgid "content type"
-msgstr "tipus de contingut"
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "nom per mostrar"
-#: contrib/contenttypes/models.py:41
-msgid "content types"
-msgstr "tipus de continguts"
+#: contrib/sites/models.py:37
+msgid "site"
+msgstr "lloc"
+
+#: contrib/sites/models.py:38
+msgid "sites"
+msgstr "llocs"
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Aquest valor ha de contenir només números, guions, i guions baixos."
+
+#: core/validators.py:76
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "Aquest valor ha de contenir només lletres, números, guions, guions baixos, i barres (/)."
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Aquest valor ha de contenir només lletres, números, guions o guions baixos"
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "No es permeten majúscules aquí."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "No es permeten minúscules aquí."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Introdueixi només dígits separats per comes."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Introdueixi adreces de correu electrònic vàlides separades per comes."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Per favor introdueixi una adreça IP vàlida."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "No s'admeten valor buits."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "No s'admeten caracters no numèrics."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Aquest valor no pot contenir només dígits."
+
+#: core/validators.py:128
+#: newforms/fields.py:149
+msgid "Enter a whole number."
+msgstr "Introdueixi un número sencer."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Només s'admeted caracters alfabètics aquí."
+
+#: core/validators.py:147
+msgid "Year must be 1900 or later."
+msgstr "L'any ha de ser posterior al 1900"
+
+#: core/validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Data invàlida: %s"
+
+#: core/validators.py:156
+#: db/models/fields/__init__.py:505
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Introdueixi una data vàlida en el forma AAAA-MM-DD."
+
+#: core/validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr "Introdueixi una hora vàlida en el format HH:MM."
+
+#: core/validators.py:165
+#: db/models/fields/__init__.py:579
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Introdueixi un data/hora vàlida en format YYYY-MM-DD HH:MM."
+
+#: core/validators.py:170
+#: newforms/fields.py:343
+msgid "Enter a valid e-mail address."
+msgstr "Introdueixi una adreça de correu vàlida."
+
+#: core/validators.py:182
+#: core/validators.py:474
+#: newforms/fields.py:377
+#: oldforms/__init__.py:686
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "No s'ha enviat cap fitxer. Comprovi el tipus de codificació del formulari."
+
+#: core/validators.py:193
+#: newforms/fields.py:405
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "Envii una imatge vàilda. El fitxer que ha enviat no era una imatge o estaba corrupte."
+
+#: core/validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "La URL %s no apunta una imatge vàlida."
+
+#: core/validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "El números de telèfon han de guardar-se en el format XXX-XXX-XXXX. \"%s\" no és vàlid."
+
+#: core/validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "La URL %s no apunta a un video QuickTime vàlid."
+
+#: core/validators.py:216
+msgid "A valid URL is required."
+msgstr "Es precisa d'una URL vàlida."
+
+#: core/validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Es precisa HTML vàlid. Els errors específics sòn:\n"
+"%s"
+
+#: core/validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML incorrectament formatejat: %s"
+
+#: core/validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL invalida: %s"
+
+#: core/validators.py:259
+#: core/validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "La URL %sés un enllaç trencat."
+
+#: core/validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Introdueixi una abreviatura vàlida d'estat d'els E.U.A.."
+
+#: 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] "Vigili la seva boca! Aquí no admetem la paraula: %s."
+msgstr[1] "Vigili la seva boca! Aquí no admetem les paraules: %s."
+
+#: core/validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Aquest camp ha de concordar amb el camp '%s'."
+
+#: core/validators.py:307
+msgid "Please enter something for at least one field."
+msgstr "Si us plau, introdueixi alguna cosa alemnys en un camp."
+
+#: core/validators.py:316
+#: core/validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr "Si us plau, ompli els dos camps o deixi'ls tots dos en blanc."
+
+#: core/validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "S'ha de proporcionar aquest camps si %(field)s és %(value)s"
+
+#: core/validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "S'ha de proporcionar aquest camps si %(field)s no és %(value)s"
+
+#: core/validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr "No s'admeten valors duplicats."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Aquest valor ha de estar comprés entre %(lower)s i %(upper)s."
+
+#: core/validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Aquest valor ha de ser com a mínim %s."
+
+#: core/validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Aquest valor ha de ser com a màxim %s."
+
+#: core/validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Aquest valor ha de ser una potència de %s."
+
+#: core/validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr "Si us plau, introdueixi un número decimal vàlid."
+
+#: core/validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Si us plau, introdueixi un número decimal vàlid de com a màxim %s digit."
+msgstr[1] "Si us plau, introdueixi un número decimal vàlid de com a màxim %s digits."
+
+#: core/validators.py:447
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Si us plau, introdueixi un número decimal vàlid que la seva part sencera sigui de com a màxim %s digit."
+msgstr[1] "Si us plau, introdueixi un número decimal vàlid que la seva part sencera sigui de com a màxim %s digits."
+
+#: core/validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Si us plau, introdueixi un número decimal vàlid de com a màxim %s posició decimal."
+msgstr[1] "Si us plau, introdueixi un número decimal vàlid de com a màxim %s posicions decimals."
+
+#: core/validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr "Si us plau, introdueixi un número amb punt de coma flotant vàlid."
+
+#: core/validators.py:467
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Asseguris de que el fitxer que ha enviat té, com a mínim, %s bytes."
+
+#: core/validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Asseguris de que el fitxer que ha enviat té, com a màxim %s bytes."
+
+#: core/validators.py:485
+msgid "The format for this field is wrong."
+msgstr "El format per aquest camp és incorrecte."
+
+#: core/validators.py:500
+msgid "This field is invalid."
+msgstr "El camp no és vàlid."
+
+#: core/validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "No s'ha pogut obtenir res de %s."
+
+#: core/validators.py:539
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "La URL %(url)s ha va tornar la capcelera Content-Type '%(contenttype)s', que no és vàlida."
+
+#: core/validators.py:572
+#, python-format
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "Si us plau, tanqui l'etiqueta %(tag)s des de la línia %(line)s. (La línia comença amb \"%(start)s\".)"
+
+#: core/validators.py:576
+#, python-format
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr "Part del text que comença en la línia %(line)s no està permès en aquest context. (La línia comença per \"%(start)s\".)"
+
+#: core/validators.py:581
+#, python-format
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr "El \"%(attr)s\" de la línia %(line)s no és un atribut vàlid. (La línia comença per \"%(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr "La \"<%(tag)s>\" de la línia %(line)s no és una etiqueta vàlida. (La línia comença per \"%(start)s\".)"
+
+#: core/validators.py:590
+#, python-format
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr "Una etiqueta de la línia %(line)s li falta un o més atributs requerits.(La línia comença per \"%(start)s\".)"
+
+#: core/validators.py:595
+#, python-format
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr "L'atribut \"%(attr)s\" de la línia %(line)s té un valor que no és vàlid. (La línia comença per \"%(start)s\".)"
+
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "Ja existeix un %(object)s del tipus %(type)s amb aquest %(field)s."
+
+#: db/models/fields/__init__.py:52
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "Ja existeix %(optname)s amb auqest %(fieldname)s."
+
+#: db/models/fields/__init__.py:159
+#: db/models/fields/__init__.py:316
+#: db/models/fields/__init__.py:731
+#: db/models/fields/__init__.py:742
+#: newforms/fields.py:93
+#: newforms/fields.py:513
+#: newforms/fields.py:589
+#: newforms/fields.py:600
+#: newforms/models.py:193
+#: oldforms/__init__.py:373
+msgid "This field is required."
+msgstr "Aquest camp és obligatori."
+
+#: db/models/fields/__init__.py:414
+msgid "This value must be an integer."
+msgstr "Aquest valor ha de ser un enter."
+
+#: db/models/fields/__init__.py:450
+msgid "This value must be either True or False."
+msgstr "Aquest valor ha de ser True (Veritat) o False (Fals)"
+
+#: db/models/fields/__init__.py:471
+msgid "This field cannot be null."
+msgstr "Aquest camp no pot ser null (estar buit)."
+
+#: db/models/fields/__init__.py:640
+msgid "This value must be a decimal number."
+msgstr "Aquest valor ha de ser un número decimal."
+
+#: db/models/fields/__init__.py:751
+msgid "Enter a valid filename."
+msgstr "Introdueixi un nom de fitxer vàlid."
+
+#: db/models/fields/__init__.py:900
+msgid "This value must be either None, True or False."
+msgstr "Aquest valor ha de ser None (Cap), True (Veritat) o False (Fals)"
+
+#: db/models/fields/related.py:658
+msgid "Separate multiple IDs with commas."
+msgstr "Separi múltiples IDs amb comes."
+
+#: db/models/fields/related.py:660
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Premi \"Control\" o \"Command\" en un Mac per escollir més d'un."
+
+#: 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] "Si us plau, introdueixi els IDs de %(self)s vàlids. El valor %(value)r és invàlid."
+msgstr[1] "Si us plau, introdueixi IDs de %(self)s vàlids. Els valors %(value)r són invàlids."
+
+#: newforms/fields.py:123
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Asseguris de que el valor té com a màxim %(max)d caràcters (en té %(length)d)."
+
+#: newforms/fields.py:125
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Asseguris de que el valor té com a mínim %(min)d caràcters (en té %(length)d)."
+
+#: newforms/fields.py:151
+#: newforms/fields.py:174
+#: newforms/fields.py:204
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Aquest valor ha de ser menor o igual a %s."
+
+#: newforms/fields.py:153
+#: newforms/fields.py:176
+#: newforms/fields.py:206
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Asseguris de que aquest valor sigui superior o igual a %s."
+
+#: newforms/fields.py:172
+#: newforms/fields.py:199
+msgid "Enter a number."
+msgstr "Introdueixi un número."
+
+#: newforms/fields.py:208
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Asseguris de que no hi ha més de %s dígits en total."
+
+#: newforms/fields.py:210
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Asseguris de que no hi ha més de %s decimals."
+
+#: newforms/fields.py:212
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Asseguris de que no hia ha més de %s dígits decimals."
+
+#: newforms/fields.py:245
+#: newforms/fields.py:633
+msgid "Enter a valid date."
+msgstr "Introdueixi una data vàlida."
+
+#: newforms/fields.py:272
+#: newforms/fields.py:635
+msgid "Enter a valid time."
+msgstr "Introdueixi una hora vàlida."
+
+#: newforms/fields.py:308
+msgid "Enter a valid date/time."
+msgstr "Introdueixi una data/hora vàlides."
+
+#: newforms/fields.py:321
+msgid "Enter a valid value."
+msgstr "Introdueixi un valor vàlid."
+
+#: newforms/fields.py:379
+msgid "No file was submitted."
+msgstr "No s'ha enviat cap fitxer."
+
+#: newforms/fields.py:381
+#: oldforms/__init__.py:688
+msgid "The submitted file is empty."
+msgstr "El fitxer enviat està buit."
+
+#: newforms/fields.py:419
+#: newforms/fields.py:444
+msgid "Enter a valid URL."
+msgstr "Introdueixi una URL vàlida."
+
+#: newforms/fields.py:446
+msgid "This URL appears to be a broken link."
+msgstr "Aquesta URL sembla ser un enllaç trencat."
+
+#: newforms/fields.py:501
+#: newforms/models.py:180
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Esculli una opció vàlida; Aquesta opció no és una de les opcions disponibles."
+
+#: newforms/fields.py:517
+#: newforms/fields.py:593
+#: newforms/models.py:197
+msgid "Enter a list of values."
+msgstr "Introdueixi una llista de valors."
+
+#: newforms/fields.py:523
+#: newforms/models.py:203
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Esculli una opció vàlida; %s' no és una de les opcions vàlides."
+
+#: newforms/fields.py:644
+msgid "Enter a valid IPv4 address."
+msgstr "Introdueixi una adreça IPv4 vàlida."
#: oldforms/__init__.py:408
#, python-format
@@ -3039,11 +3430,6 @@ msgstr "No es permeten salts de línia."
msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
msgstr "Esculli una opció vàlida; %(data)s' no està dintre de %(choices)s."
-#: oldforms/__init__.py:688
-#: newforms/fields.py:381
-msgid "The submitted file is empty."
-msgstr "El fitxer enviat està buit."
-
#: oldforms/__init__.py:744
msgid "Enter a whole number between -32,768 and 32,767."
msgstr "Introdueixi un número enter entre -32,768 i 32,767."
@@ -3056,20 +3442,55 @@ msgstr "Introdueixi un número positiu."
msgid "Enter a whole number between 0 and 32,767."
msgstr "Introdueixi un número entre 0 i 32,767."
-#: views/generic/create_update.py:43
+#: template/defaultfilters.py:541
+msgid "yes,no,maybe"
+msgstr "si,no,potser"
+
+#: template/defaultfilters.py:570
#, python-format
-msgid "The %(verbose_name)s was created successfully."
-msgstr "El/La %(verbose_name)s s'ha creat amb èxit."
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
-#: views/generic/create_update.py:117
+#: template/defaultfilters.py:572
#, python-format
-msgid "The %(verbose_name)s was updated successfully."
-msgstr "El/La %(verbose_name)s s'ha actualtzat amb èxit."
+msgid "%.1f KB"
+msgstr "%.1f KB"
-#: views/generic/create_update.py:184
+#: template/defaultfilters.py:574
#, python-format
-msgid "The %(verbose_name)s was deleted."
-msgstr "El %(verbose_name)s s'ha eliminat."
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:575
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "mitja nit"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "mig dia"
#: utils/dates.py:6
msgid "Monday"
@@ -3260,76 +3681,56 @@ msgstr "Des."
msgid "or"
msgstr "o"
-#: utils/timesince.py:12
+#: utils/timesince.py:21
msgid "year"
msgid_plural "years"
msgstr[0] "any"
msgstr[1] "anys"
-#: utils/timesince.py:13
+#: utils/timesince.py:22
msgid "month"
msgid_plural "months"
msgstr[0] "mes"
msgstr[1] "mesos"
-#: utils/timesince.py:14
+#: utils/timesince.py:23
msgid "week"
msgid_plural "weeks"
msgstr[0] "setmana"
msgstr[1] "setmanes"
-#: utils/timesince.py:15
+#: utils/timesince.py:24
msgid "day"
msgid_plural "days"
msgstr[0] "dia"
msgstr[1] "dies"
-#: utils/timesince.py:16
+#: utils/timesince.py:25
msgid "hour"
msgid_plural "hours"
msgstr[0] "hora"
msgstr[1] "hores"
-#: utils/timesince.py:17
+#: utils/timesince.py:26
msgid "minute"
msgid_plural "minutes"
msgstr[0] "minut"
msgstr[1] "minuts"
-#: utils/timesince.py:39
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minuts"
+
+#: utils/timesince.py:51
#, python-format
msgid "%(number)d %(type)s"
msgstr "%(number)d %(type)s"
-#: utils/timesince.py:45
+#: utils/timesince.py:57
#, python-format
msgid ", %(number)d %(type)s"
msgstr ", %(number)d %(type)s"
-#: utils/dateformat.py:41
-msgid "p.m."
-msgstr "p.m."
-
-#: utils/dateformat.py:42
-msgid "a.m."
-msgstr "a.m."
-
-#: utils/dateformat.py:47
-msgid "PM"
-msgstr "PM"
-
-#: utils/dateformat.py:48
-msgid "AM"
-msgstr "AM"
-
-#: utils/dateformat.py:97
-msgid "midnight"
-msgstr "mitja nit"
-
-#: utils/dateformat.py:99
-msgid "noon"
-msgstr "mig dia"
-
#: utils/translation/trans_real.py:391
msgid "DATE_FORMAT"
msgstr "F j, Y"
@@ -3350,123 +3751,20 @@ msgstr "j de/d' F del Y"
msgid "MONTH_DAY_FORMAT"
msgstr "j de/d' F del Y"
-#: template/defaultfilters.py:532
-msgid "yes,no,maybe"
-msgstr "si,no,potser"
-
-#: template/defaultfilters.py:561
-#, python-format
-msgid "%(size)d byte"
-msgid_plural "%(size)d bytes"
-msgstr[0] "%(size)d byte"
-msgstr[1] "%(size)d bytes"
-
-#: template/defaultfilters.py:563
-#, python-format
-msgid "%.1f KB"
-msgstr "%.1f KB"
-
-#: template/defaultfilters.py:565
-#, python-format
-msgid "%.1f MB"
-msgstr "%.1f MB"
-
-#: template/defaultfilters.py:566
-#, python-format
-msgid "%.1f GB"
-msgstr "%.1f GB"
-
-#: newforms/fields.py:123
-#, python-format
-msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
-msgstr "Asseguris de que el valor té com a màxim %(max)d caràcters (en té %(length)d)."
-
-#: newforms/fields.py:125
-#, python-format
-msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
-msgstr "Asseguris de que el valor té com a mínim %(min)d caràcters (en té %(length)d)."
-
-#: newforms/fields.py:151
-#: newforms/fields.py:174
-#: newforms/fields.py:204
-#, python-format
-msgid "Ensure this value is less than or equal to %s."
-msgstr "Aquest valor ha de ser menor o igual a %s."
-
-#: newforms/fields.py:153
-#: newforms/fields.py:176
-#: newforms/fields.py:206
-#, python-format
-msgid "Ensure this value is greater than or equal to %s."
-msgstr "Asseguris de que aquest valor sigui superior o igual a %s."
-
-#: newforms/fields.py:172
-#: newforms/fields.py:199
-msgid "Enter a number."
-msgstr "Introdueixi un número."
-
-#: newforms/fields.py:208
-#, python-format
-msgid "Ensure that there are no more than %s digits in total."
-msgstr "Asseguris de que no hi ha més de %s dígits en total."
-
-#: newforms/fields.py:210
+#: views/generic/create_update.py:43
#, python-format
-msgid "Ensure that there are no more than %s decimal places."
-msgstr "Asseguris de que no hi ha més de %s decimals."
+msgid "The %(verbose_name)s was created successfully."
+msgstr "El/La %(verbose_name)s s'ha creat amb èxit."
-#: newforms/fields.py:212
+#: views/generic/create_update.py:117
#, python-format
-msgid "Ensure that there are no more than %s digits before the decimal point."
-msgstr "Asseguris de que no hia ha més de %s dígits decimals."
-
-#: newforms/fields.py:245
-#: newforms/fields.py:629
-msgid "Enter a valid date."
-msgstr "Introdueixi una data vàlida."
-
-#: newforms/fields.py:272
-#: newforms/fields.py:631
-msgid "Enter a valid time."
-msgstr "Introdueixi una hora vàlida."
-
-#: newforms/fields.py:308
-msgid "Enter a valid date/time."
-msgstr "Introdueixi una data/hora vàlides."
-
-#: newforms/fields.py:321
-msgid "Enter a valid value."
-msgstr "Introdueixi un valor vàlid."
-
-#: newforms/fields.py:379
-msgid "No file was submitted."
-msgstr "No s'ha enviat cap fitxer."
-
-#: newforms/fields.py:419
-#: newforms/fields.py:444
-msgid "Enter a valid URL."
-msgstr "Introdueixi una URL vàlida."
-
-#: newforms/fields.py:446
-msgid "This URL appears to be a broken link."
-msgstr "Aquesta URL sembla ser un enllaç trencat."
-
-#: newforms/fields.py:497
-#: newforms/models.py:180
-msgid "Select a valid choice. That choice is not one of the available choices."
-msgstr "Esculli una opció vàlida; Aquesta opció no és una de les opcions disponibles."
-
-#: newforms/fields.py:513
-#: newforms/fields.py:589
-#: newforms/models.py:197
-msgid "Enter a list of values."
-msgstr "Introdueixi una llista de valors."
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "El/La %(verbose_name)s s'ha actualtzat amb èxit."
-#: newforms/fields.py:519
-#: newforms/models.py:203
+#: views/generic/create_update.py:184
#, python-format
-msgid "Select a valid choice. %s is not one of the available choices."
-msgstr "Esculli una opció vàlida; %s' no és una de les opcions vàlides."
+msgid "The %(verbose_name)s was deleted."
+msgstr "El %(verbose_name)s s'ha eliminat."
#~ msgid ""
#~ "This comment was posted by a user who has posted fewer than %(count)s "
diff --git a/django/conf/locale/es/LC_MESSAGES/django.mo b/django/conf/locale/es/LC_MESSAGES/django.mo
index 28d389b404..29b411467e 100644
--- a/django/conf/locale/es/LC_MESSAGES/django.mo
+++ b/django/conf/locale/es/LC_MESSAGES/django.mo
Binary files differ
diff --git a/django/conf/locale/es/LC_MESSAGES/django.po b/django/conf/locale/es/LC_MESSAGES/django.po
index bf6d4ed6ae..786889106e 100644
--- a/django/conf/locale/es/LC_MESSAGES/django.po
+++ b/django/conf/locale/es/LC_MESSAGES/django.po
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-09-14 12:41+0200\n"
-"PO-Revision-Date: 2007-09-14 14:32+0100\n"
+"POT-Creation-Date: 2007-10-20 14:55+0200\n"
+"PO-Revision-Date: 2007-10-20 15:38+0100\n"
"Last-Translator: Marc Garcia <marc.garcia@accopensys.com>\n"
"Language-Team: Castellano <Django-I18N@googlegroups.com>\n"
"MIME-Version: 1.0\n"
@@ -15,91 +15,6 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: db/models/manipulators.py:309
-#, python-format
-msgid "%(object)s with this %(type)s already exists for the given %(field)s."
-msgstr "%(object)s de este %(type)s ya existen en este %(field)s."
-
-#: db/models/manipulators.py:310
-#: core/validators.py:283
-#: contrib/admin/views/main.py:342
-#: contrib/admin/views/main.py:344
-#: contrib/admin/views/main.py:346
-msgid "and"
-msgstr "y"
-
-#: db/models/fields/related.py:55
-#, python-format
-msgid "Please enter a valid %s."
-msgstr "Por favor, introduzca un %s válido."
-
-#: db/models/fields/related.py:658
-msgid "Separate multiple IDs with commas."
-msgstr "Separe múltiples IDs con comas."
-
-#: db/models/fields/related.py:660
-msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
-msgstr "Mantenga presionado \"Control\", o \"Command\" en un Mac, para seleccionar más de uno."
-
-#: 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] "Por favor, introduzca IDs de %(self)s válidos. El valor %(value)r no es válido."
-msgstr[1] "Por favor, introduzca IDs de %(self)s válidos. Los valores %(value)r no son válidos."
-
-#: db/models/fields/__init__.py:52
-#, python-format
-msgid "%(optname)s with this %(fieldname)s already exists."
-msgstr "Ya existe %(optname)s con este %(fieldname)s."
-
-#: db/models/fields/__init__.py:159
-#: db/models/fields/__init__.py:316
-#: db/models/fields/__init__.py:724
-#: db/models/fields/__init__.py:735
-#: oldforms/__init__.py:373
-#: newforms/fields.py:93
-#: newforms/fields.py:509
-#: newforms/fields.py:585
-#: newforms/fields.py:596
-#: newforms/models.py:193
-msgid "This field is required."
-msgstr "Este campo es obligatorio."
-
-#: db/models/fields/__init__.py:414
-msgid "This value must be an integer."
-msgstr "Este valor debe ser un entero."
-
-#: db/models/fields/__init__.py:449
-msgid "This value must be either True or False."
-msgstr "Este valor debe ser Verdadero o Falso."
-
-#: db/models/fields/__init__.py:470
-msgid "This field cannot be null."
-msgstr "Este campo no puede estar vacío."
-
-#: db/models/fields/__init__.py:504
-#: core/validators.py:156
-msgid "Enter a valid date in YYYY-MM-DD format."
-msgstr "Introduzca una fecha válida en formato AAAA-MM-DD."
-
-#: db/models/fields/__init__.py:573
-#: core/validators.py:165
-msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
-msgstr "Introduzca una fecha/hora válida en formato AAAA-MM-DD HH:MM."
-
-#: db/models/fields/__init__.py:634
-msgid "This value must be a decimal number."
-msgstr "Este valor debe ser un entero."
-
-#: db/models/fields/__init__.py:744
-msgid "Enter a valid filename."
-msgstr "Introduzca un nombre de fichero válido"
-
-#: db/models/fields/__init__.py:887
-msgid "This value must be either None, True or False."
-msgstr "Este valor debe ser Verdadero o Falso."
-
#: conf/global_settings.py:39
msgid "Arabic"
msgstr "Árabe"
@@ -161,757 +76,700 @@ msgid "French"
msgstr "Francés"
#: conf/global_settings.py:54
+msgid "Gaeilge"
+msgstr "Gaeilge"
+
+#: conf/global_settings.py:55
msgid "Galician"
msgstr "Gallego"
-#: conf/global_settings.py:55
+#: conf/global_settings.py:56
msgid "Hungarian"
msgstr "Húngaro"
-#: conf/global_settings.py:56
+#: conf/global_settings.py:57
msgid "Hebrew"
msgstr "Hebreo"
-#: conf/global_settings.py:57
+#: conf/global_settings.py:58
msgid "Croatian"
msgstr "Croata"
-#: conf/global_settings.py:58
+#: conf/global_settings.py:59
msgid "Icelandic"
msgstr "Islandés"
-#: conf/global_settings.py:59
+#: conf/global_settings.py:60
msgid "Italian"
msgstr "Italiano"
-#: conf/global_settings.py:60
+#: conf/global_settings.py:61
msgid "Japanese"
msgstr "Japonés"
-#: conf/global_settings.py:61
+#: conf/global_settings.py:62
msgid "Korean"
msgstr "Koreano"
-#: conf/global_settings.py:62
+#: conf/global_settings.py:63
msgid "Khmer"
msgstr "Khmer"
-#: conf/global_settings.py:63
+#: conf/global_settings.py:64
msgid "Kannada"
msgstr "Kannada"
-#: conf/global_settings.py:64
+#: conf/global_settings.py:65
msgid "Latvian"
msgstr "Latvio"
-#: conf/global_settings.py:65
+#: conf/global_settings.py:66
msgid "Macedonian"
msgstr "Macedonio"
-#: conf/global_settings.py:66
+#: conf/global_settings.py:67
msgid "Dutch"
msgstr "Alemán"
-#: conf/global_settings.py:67
+#: conf/global_settings.py:68
msgid "Norwegian"
msgstr "Noruego"
-#: conf/global_settings.py:68
+#: conf/global_settings.py:69
msgid "Polish"
msgstr "Polaco"
-#: conf/global_settings.py:69
+#: conf/global_settings.py:70
msgid "Portugese"
msgstr "Portugés"
-#: conf/global_settings.py:70
+#: conf/global_settings.py:71
msgid "Brazilian"
msgstr "Brasileño"
-#: conf/global_settings.py:71
+#: conf/global_settings.py:72
msgid "Romanian"
msgstr "Rumano"
-#: conf/global_settings.py:72
+#: conf/global_settings.py:73
msgid "Russian"
msgstr "Ruso"
-#: conf/global_settings.py:73
+#: conf/global_settings.py:74
msgid "Slovak"
msgstr "Eslovaco"
-#: conf/global_settings.py:74
+#: conf/global_settings.py:75
msgid "Slovenian"
msgstr "Esloveno"
-#: conf/global_settings.py:75
+#: conf/global_settings.py:76
msgid "Serbian"
msgstr "Serbio"
-#: conf/global_settings.py:76
+#: conf/global_settings.py:77
msgid "Swedish"
msgstr "Sueco"
-#: conf/global_settings.py:77
+#: conf/global_settings.py:78
msgid "Tamil"
msgstr "Tamil"
-#: conf/global_settings.py:78
+#: conf/global_settings.py:79
msgid "Telugu"
msgstr "Telugu"
-#: conf/global_settings.py:79
+#: conf/global_settings.py:80
msgid "Turkish"
msgstr "Turco"
-#: conf/global_settings.py:80
+#: conf/global_settings.py:81
msgid "Ukrainian"
msgstr "Ucraniano"
-#: conf/global_settings.py:81
+#: conf/global_settings.py:82
msgid "Simplified Chinese"
msgstr "Chino simplificado"
-#: conf/global_settings.py:82
+#: conf/global_settings.py:83
msgid "Traditional Chinese"
msgstr "Chino tradicional"
-#: core/validators.py:72
-msgid "This value must contain only letters, numbers and underscores."
-msgstr "Este valor debe contener sólo letras, números y guiones bajos."
+#: contrib/admin/filterspecs.py:42
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Por %s:</h3>\n"
+"<ul>\n"
-#: core/validators.py:76
-msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
-msgstr "Este valor debe contener letras, números, guiones bajos o barras solamente."
+#: contrib/admin/filterspecs.py:72
+#: contrib/admin/filterspecs.py:90
+#: contrib/admin/filterspecs.py:145
+#: contrib/admin/filterspecs.py:171
+msgid "All"
+msgstr "Todo"
-#: core/validators.py:80
-msgid "This value must contain only letters, numbers, underscores or hyphens."
-msgstr "Este valor debe contener sólo letras, números, guiones bajos o medios."
+#: contrib/admin/filterspecs.py:111
+msgid "Any date"
+msgstr "Cualquier fecha"
-#: core/validators.py:84
-msgid "Uppercase letters are not allowed here."
-msgstr "No se admiten letras mayúsculas."
+#: contrib/admin/filterspecs.py:112
+msgid "Today"
+msgstr "Hoy"
-#: core/validators.py:88
-msgid "Lowercase letters are not allowed here."
-msgstr "No se admiten letras minúsculas."
+#: contrib/admin/filterspecs.py:115
+msgid "Past 7 days"
+msgstr "Últimos 7 días"
-#: core/validators.py:95
-msgid "Enter only digits separated by commas."
-msgstr "Introduzca sólo dígitos separados por comas."
+#: contrib/admin/filterspecs.py:117
+msgid "This month"
+msgstr "Este mes"
-#: core/validators.py:107
-msgid "Enter valid e-mail addresses separated by commas."
-msgstr "Introduzca direcciones de correo válidas separadas por comas."
+#: contrib/admin/filterspecs.py:119
+msgid "This year"
+msgstr "Este año"
-#: core/validators.py:111
-msgid "Please enter a valid IP address."
-msgstr "Por favor introduzca una dirección IP válida."
+#: contrib/admin/filterspecs.py:145
+#: newforms/widgets.py:205
+#: oldforms/__init__.py:591
+msgid "Yes"
+msgstr "Sí"
-#: core/validators.py:115
-msgid "Empty values are not allowed here."
-msgstr "No se admiten valores vacíos."
+#: contrib/admin/filterspecs.py:145
+#: newforms/widgets.py:205
+#: oldforms/__init__.py:591
+msgid "No"
+msgstr "No"
-#: core/validators.py:119
-msgid "Non-numeric characters aren't allowed here."
-msgstr "No se admiten caracteres no numéricos."
+#: contrib/admin/filterspecs.py:152
+#: newforms/widgets.py:205
+#: oldforms/__init__.py:591
+msgid "Unknown"
+msgstr "Desconocido"
-#: core/validators.py:123
-msgid "This value can't be comprised solely of digits."
-msgstr "Este valor no puede comprender sólo dígitos."
+#: contrib/admin/models.py:17
+msgid "action time"
+msgstr "hora de acción"
-#: core/validators.py:128
-#: newforms/fields.py:149
-msgid "Enter a whole number."
-msgstr "Introduzca un número entero."
+#: contrib/admin/models.py:20
+msgid "object id"
+msgstr "id de objeto"
-#: core/validators.py:132
-msgid "Only alphabetical characters are allowed here."
-msgstr "Sólo se admiten caracteres alfabéticos."
+#: contrib/admin/models.py:21
+msgid "object repr"
+msgstr "repr de objeto"
-#: core/validators.py:147
-msgid "Year must be 1900 or later."
-msgstr "El año debe ser 1900 o posterior."
+#: contrib/admin/models.py:22
+msgid "action flag"
+msgstr "marca de acción"
-#: core/validators.py:151
-#, python-format
-msgid "Invalid date: %s"
-msgstr "Fecha no válida: %s"
+#: contrib/admin/models.py:23
+msgid "change message"
+msgstr "mensaje de cambio"
-#: core/validators.py:161
-msgid "Enter a valid time in HH:MM format."
-msgstr "Introduzca una hora válida en formato HH:MM."
+#: contrib/admin/models.py:26
+msgid "log entry"
+msgstr "entrada de registro"
-#: core/validators.py:170
-#: newforms/fields.py:343
-msgid "Enter a valid e-mail address."
-msgstr "Introduzca una dirección de correo electrónico válida"
+#: contrib/admin/models.py:27
+msgid "log entries"
+msgstr "entradas de registro"
-#: core/validators.py:182
-#: core/validators.py:469
-#: oldforms/__init__.py:686
-#: newforms/fields.py:377
-msgid "No file was submitted. Check the encoding type on the form."
-msgstr "No se ha enviado ningún fichero. Compruebe el tipo de codificación en el formulario."
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Página no encontrada"
-#: core/validators.py:193
-#: newforms/fields.py:405
-msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
-msgstr "Envíe una imagen válida. El fichero que ha enviado no era una imagen o se trataba de una imagen corrupta."
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Lo sentimos, pero no se encuentra la página solicitada."
-#: core/validators.py:200
-#, python-format
-msgid "The URL %s does not point to a valid image."
-msgstr "La URL %s no apunta a una imagen válida."
+#: 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 "Inicio"
-#: core/validators.py:204
-#, python-format
-msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
-msgstr "Los números de teléfono deben guardar el formato XXX-XXX-XXXX. \"%s\" no es válido."
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Error del servidor"
-#: core/validators.py:212
-#, python-format
-msgid "The URL %s does not point to a valid QuickTime video."
-msgstr "La URL %s no apunta a un vídeo QuickTime válido."
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Error del servidor (500)"
-#: core/validators.py:216
-msgid "A valid URL is required."
-msgstr "Se precisa una URL válida."
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Error de servidor <em>(500)</em>"
-#: core/validators.py:230
-#, python-format
-msgid ""
-"Valid HTML is required. Specific errors are:\n"
-"%s"
-msgstr ""
-"Se precisa HTML válido. Los errores específicos son:\n"
-"%s"
+#: 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 "Ha ocurrido un error. Se ha informado a los administradores del sitio mediante correo electrónico y debería arreglarse en breve. Gracias por su paciencia."
-#: core/validators.py:237
-#, python-format
-msgid "Badly formed XML: %s"
-msgstr "XML mal formado: %s"
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr "Bienvenido,"
-#: core/validators.py:254
-#, python-format
-msgid "Invalid URL: %s"
-msgstr "URL no válida: %s"
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Documentación"
-#: core/validators.py:259
-#: core/validators.py:261
-#, python-format
-msgid "The URL %s is a broken link."
-msgstr "La URL %s es un enlace roto."
+#: 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 "Cambiar clave"
-#: core/validators.py:267
-msgid "Enter a valid U.S. state abbreviation."
-msgstr "Introduzca una abreviatura válida de estado de los EEUU."
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Terminar sesión"
-#: 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] "¡Cuida tu vocabulario! Aquí no admitimos la palabra %s."
-msgstr[1] "¡Cuida tu vocabulario! Aquí no admitimos las palabras %s."
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Sitio de administración de Django"
-#: core/validators.py:288
-#, python-format
-msgid "This field must match the '%s' field."
-msgstr "Este campo debe concordar con el campo '%s'."
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Administración de Django"
-#: core/validators.py:307
-msgid "Please enter something for at least one field."
-msgstr "Por favor, introduzca algo en al menos un campo."
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Agregar"
-#: core/validators.py:316
-#: core/validators.py:327
-msgid "Please enter both fields or leave them both empty."
-msgstr "Por favor, rellene ambos campos o deje ambos vacíos."
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr "Histórico"
-#: core/validators.py:335
-#, python-format
-msgid "This field must be given if %(field)s is %(value)s"
-msgstr "Se debe proporcionar este campo si %(field)s es %(value)s"
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "Ver en el sitio"
-#: core/validators.py:348
-#, python-format
-msgid "This field must be given if %(field)s is not %(value)s"
-msgstr "Se debe proporcionar este campo si %(field)s no es %(value)s"
+#: 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] "Por favor, corrija el siguiente error."
+msgstr[1] "Por favor, corrija los siguientes errores."
-#: core/validators.py:367
-msgid "Duplicate values are not allowed."
-msgstr "No se admiten valores duplicados."
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr "Ordenación"
-#: core/validators.py:382
-#, python-format
-msgid "This value must be between %(lower)s and %(upper)s."
-msgstr "Este valor debe estar entre %(lower)s y %(upper)s."
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr "Orden:"
-#: core/validators.py:384
+#: contrib/admin/templates/admin/change_list.html:11
#, python-format
-msgid "This value must be at least %s."
-msgstr "Este valor debe ser como mínimo %s."
+msgid "Add %(name)s"
+msgstr "Agregar %(name)s"
-#: core/validators.py:386
-#, python-format
-msgid "This value must be no more than %s."
-msgstr "Este valor no debe ser mayor que %s."
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Eliminar"
-#: core/validators.py:422
+#: contrib/admin/templates/admin/delete_confirmation.html:13
#, python-format
-msgid "This value must be a power of %s."
-msgstr "Este valor debe ser una potencia de %s."
-
-#: core/validators.py:432
-msgid "Please enter a valid decimal number."
-msgstr "Por favor, introduzca un número decimal válido."
+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 "Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación de objetos relacionados, pero su cuenta no tiene permiso para borrar los siguientes tipos de objetos:"
-#: core/validators.py:439
+#: contrib/admin/templates/admin/delete_confirmation.html:20
#, python-format
-msgid "Please enter a valid decimal number with at most %s total digit."
-msgid_plural "Please enter a valid decimal number with at most %s total digits."
-msgstr[0] "Por favor, introduzca un número decimal válido con a lo más %s dígito en total."
-msgstr[1] "Por favor, introduzca un número decimal válido con a lo más %s dígitos en total."
+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 "¿Está seguro de que quiere borrar los %(object_name)s \"%(escaped_object)s\"? Se borrarán los siguientes objetos relacionados:"
-#: core/validators.py:442
-#, python-format
-msgid "Please enter a valid decimal number with a whole part of at most %s digit."
-msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
-msgstr[0] "Por favor, introduzca un número decimal válido con a lo más %s dígito en su parte entera."
-msgstr[1] "Por favor, introduzca un número decimal válido con a lo más %s dígitos en su parte entera."
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr "Sí, estoy seguro"
-#: core/validators.py:445
+#: contrib/admin/templates/admin/filter.html:2
#, python-format
-msgid "Please enter a valid decimal number with at most %s decimal place."
-msgid_plural "Please enter a valid decimal number with at most %s decimal places."
-msgstr[0] "Por favor, introduzca un número decimal válido con a lo más %s dígito decimal."
-msgstr[1] "Por favor, introduzca un número decimal válido con a lo más %s dígitos decimales."
-
-#: core/validators.py:453
-msgid "Please enter a valid floating point number."
-msgstr "Por favor, introduzca un número decimal válido."
+msgid " By %(filter_title)s "
+msgstr " Por %(filter_title)s "
-#: core/validators.py:462
-#, python-format
-msgid "Make sure your uploaded file is at least %s bytes big."
-msgstr "Asegúrese de que el fichero que envía tiene al menos %s bytes."
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filtro"
-#: core/validators.py:463
+#: contrib/admin/templates/admin/index.html:17
#, python-format
-msgid "Make sure your uploaded file is at most %s bytes big."
-msgstr "Asegúrese de que el fichero que envía tiene como máximo %s bytes."
-
-#: core/validators.py:480
-msgid "The format for this field is wrong."
-msgstr "El formato de este campo es incorrecto."
-
-#: core/validators.py:495
-msgid "This field is invalid."
-msgstr "Este campo no es válido."
+msgid "Models available in the %(name)s application."
+msgstr "Modelos disponibles en la aplicación %(name)s."
-#: core/validators.py:531
+#: contrib/admin/templates/admin/index.html:18
#, python-format
-msgid "Could not retrieve anything from %s."
-msgstr "No pude obtener nada de %s."
+msgid "%(name)s"
+msgstr "%(name)s"
-#: core/validators.py:534
-#, python-format
-msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
-msgstr "La URL %(url)s devolvió la cabecera Content-Type '%(contenttype)s', que no es válida."
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Modificar"
-#: core/validators.py:567
-#, python-format
-msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
-msgstr "Por favor, cierre la etiqueta %(tag)s de la línea %(line)s. (La línea empieza por \"%(start)s\".)"
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "No tiene permiso para editar nada."
-#: core/validators.py:571
-#, python-format
-msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
-msgstr "Parte del texto que comienza en la línea %(line)s no está permitido en ese contexto. (La línea empieza por \"%(start)s\".)"
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Acciones recientes"
-#: core/validators.py:576
-#, python-format
-msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
-msgstr "El \"%(attr)s\" de la línea %(line)s no es un atributo válido. (La línea empieza por \"%(start)s\".)"
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Mis acciones"
-#: core/validators.py:581
-#, python-format
-msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
-msgstr "La \"<%(tag)s>\" de la línea %(line)s no es una etiqueta válida. (La línea empieza por \"%(start)s\".)"
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Ninguno disponible"
-#: core/validators.py:585
-#, python-format
-msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
-msgstr "A una etiqueta de la línea %(line)s le faltan uno o más atributos requeridos. (La línea empieza por \"%(start)s\".)"
+#: 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 "Algo va mal con la instalación de la base de datos. Asegúrate que las tablas necesarias han sido creadas, y que la base de datos puede ser leída por el usuario apropiado."
-#: core/validators.py:590
-#, python-format
-msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
-msgstr "El atributo \"%(attr)s\" de la línea %(line)s tiene un valor que no es válido. (La línea empieza por \"%(start)s\".)"
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Usuario:"
-#: contrib/auth/forms.py:17
-#: contrib/auth/forms.py:138
-msgid "The two password fields didn't match."
-msgstr "Las dos contraseñas no coinciden."
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Clave:"
-#: contrib/auth/forms.py:25
-msgid "A user with that username already exists."
-msgstr "Ya existe un usuario con este nombre."
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:24
+msgid "Log in"
+msgstr "Identificarse"
-#: contrib/auth/forms.py:53
-msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
-msgstr "Tu navegador de internet parece no tener las cookies habilitadas. Las cookies se necesitan para poder ingresar."
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr "Fecha/hora"
-#: 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."
-msgstr "Por favor, introduzca un correcto nombre de usuario y contraseña. Note que ambos campos son sensibles a mayúsculas/minúsculas."
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr "Usuario"
-#: contrib/auth/forms.py:62
-msgid "This account is inactive."
-msgstr "Esta cuenta está inactiva."
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr "Acción"
-#: contrib/auth/forms.py:84
-msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
-msgstr "Esta dirección de correo electrónico no tiene una cuenta de usuario asociada. ¿Está seguro de que se ha registrado?"
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j M Y P"
-#: contrib/auth/forms.py:117
-msgid "The two 'new password' fields didn't match."
-msgstr "Las contraseñas introducidas en los campos 'nueva contraseña' no coinciden."
+#: 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 "Este objeto no tiene histórico de cambios. Probablemente no fue añadido usando este sitio de administración."
-#: contrib/auth/forms.py:124
-msgid "Your old password was entered incorrectly. Please enter it again."
-msgstr "Tu contraseña antigua es incorrecta. Por favor, vuelve a introducirla correctamente."
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Mostrarlo todo"
-#: contrib/auth/models.py:53
-#: contrib/auth/models.py:73
-msgid "name"
-msgstr "nombre"
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Buscar"
-#: contrib/auth/models.py:55
-msgid "codename"
-msgstr "nombre en código"
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 resultado"
+msgstr[1] "%(counter)s resultados"
-#: contrib/auth/models.py:58
-msgid "permission"
-msgstr "permiso"
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s total"
-#: contrib/auth/models.py:59
-#: contrib/auth/models.py:74
-msgid "permissions"
-msgstr "permisos"
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Grabar como nuevo"
-#: contrib/auth/models.py:77
-msgid "group"
-msgstr "grupo"
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Grabar y añadir otro"
-#: contrib/auth/models.py:78
-#: contrib/auth/models.py:121
-msgid "groups"
-msgstr "grupos"
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Grabar y continuar editando"
-#: contrib/auth/models.py:111
-msgid "username"
-msgstr "nombre de usuario"
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Grabar"
-#: contrib/auth/models.py:111
-msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
-msgstr "Requerido. 30 caracteres o menos. Sólo caracteres alfanuméricos (letras, dígitos y guiones bajos)."
+#: 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 "Primero introduzca un nombre de usuario y una contraseña. Luego podrá editar el resto de opciones del usuario."
-#: contrib/auth/models.py:112
-msgid "first name"
-msgstr "nombre"
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Nombre de usuario"
-#: contrib/auth/models.py:113
-msgid "last name"
-msgstr "apellidos"
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr "Contraseña"
-#: contrib/auth/models.py:114
-msgid "e-mail address"
-msgstr "dirección de correo"
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
+msgstr "Contraseña (de nuevo)"
-#: contrib/auth/models.py:115
-msgid "password"
-msgstr "clave"
+#: 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 "Introduzca la misma contraseña que arriba, para verificación"
-#: contrib/auth/models.py:115
-msgid "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."
-msgstr "Use'[algo]$[sal]$[hash hexadecimal]' o use <a href=\"password/\">el formulario para cambiar la contraseña</a>."
+#: 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 "Introduzca una nueva contraseña para el usuario <strong>%(username)s</strong>."
-#: contrib/auth/models.py:116
-msgid "staff status"
-msgstr "es staff"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Bookmarklets"
-#: contrib/auth/models.py:116
-msgid "Designates whether the user can log into this admin site."
-msgstr "Indica si el usuario puede entrar en este sitio de administración."
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Bookmarklets de documentación"
-#: contrib/auth/models.py:117
-msgid "active"
-msgstr "activo"
+#: 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 ""
+"\n"
+"<p class=\"help\">Para instalar bookmarklets, arrastre el enlace a su barra\n"
+"de favoritos, o pulse con el botón derecho el enlace y añádalo a sus favoritos.\n"
+"Ahora puede escoger el bookmarklet desde cualquier página en el sitio.\n"
+"Observer que algunos de estos bookmarklets precisan que esté viendo\n"
+"el sitio desde un computador señalado como \"interno\" (hable\n"
+"con su administrador de sistemas si no está seguro de si el suyo lo es).</p>\n"
-#: contrib/auth/models.py:117
-msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."
-msgstr "Indica si el usuario puede entrar en este sitio de administración. Desmarque esto en lugar de borrar la cuenta."
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Documentación de esta página"
-#: contrib/auth/models.py:118
-msgid "superuser status"
-msgstr "es superusuario"
+#: 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 "Le lleva desde cualquier página a la documentación de la vista que la genera."
-#: contrib/auth/models.py:118
-msgid "Designates that this user has all permissions without explicitly assigning them."
-msgstr "Indica que este usuario tiene todos los permisos sin asignárselos explícitamente."
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Mostrar ID de objeto"
-#: contrib/auth/models.py:119
-msgid "last login"
-msgstr "Último registro"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
+msgid "Shows the content-type and unique ID for pages that represent a single object."
+msgstr "Muestra el tipo de contenido e ID unívoco de las páginas que representan un único objeto."
-#: contrib/auth/models.py:120
-msgid "date joined"
-msgstr "fecha de creación"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Editar este objeto (ventana actual)"
-#: contrib/auth/models.py:122
-msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
-msgstr "Además de los permisos asignados manualmente, este usuario también tendrá todos los permisos de los grupos en los que esté."
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "Le lleva a la página de administración de páginas que representan un único objeto."
-#: contrib/auth/models.py:123
-msgid "user permissions"
-msgstr "permisos"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Editar este objeto (nueva ventana)"
-#: contrib/auth/models.py:127
-msgid "user"
-msgstr "usuario"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "Como antes, pero abre la página de administración en una nueva ventana."
-#: contrib/auth/models.py:128
-msgid "users"
-msgstr "usuarios"
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Gracias por el tiempo que ha dedicado al sitio web hoy."
-#: contrib/auth/models.py:134
-msgid "Personal info"
-msgstr "Información personal"
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Identificarse de nuevo"
-#: contrib/auth/models.py:135
-msgid "Permissions"
-msgstr "Permisos"
+#: 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 "Cambio de clave"
-#: contrib/auth/models.py:136
-msgid "Important dates"
-msgstr "Fechas importantes"
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr "Cambio de clave exitoso"
-#: contrib/auth/models.py:137
-msgid "Groups"
-msgstr "Grupos"
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr "Su clave ha sido cambiada."
-#: contrib/auth/models.py:288
-msgid "message"
-msgstr "mensaje"
+#: 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 "Por favor, introduzca su clave antigua, por seguridad, y después introduzca la nueva clave dos veces para verificar que la ha escrito correctamente."
-#: contrib/auth/views.py:47
-msgid "Logged out"
-msgstr "Sesión terminada"
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr "Clave antigua:"
-#: contrib/admin/models.py:17
-msgid "action time"
-msgstr "hora de acción"
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr "Clave nueva:"
-#: contrib/admin/models.py:20
-msgid "object id"
-msgstr "id de objeto"
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr "Confirme clave:"
-#: contrib/admin/models.py:21
-msgid "object repr"
-msgstr "repr de objeto"
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr "Cambiar mi clave"
-#: contrib/admin/models.py:22
-msgid "action flag"
-msgstr "marca de acción"
+#: 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 "Recuperar clave"
-#: contrib/admin/models.py:23
-msgid "change message"
-msgstr "mensaje de cambio"
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Recuperación de clave exitosa"
-#: contrib/admin/models.py:26
-msgid "log entry"
-msgstr "entrada de registro"
+#: 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 "Le hemos enviado una clave nueva a la dirección que ha suministrado. Debería recibirla en breve."
-#: contrib/admin/models.py:27
-msgid "log entries"
-msgstr "entradas de registro"
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Está recibiendo este mensaje debido a que solicitó recuperar la clave"
-#: contrib/admin/filterspecs.py:42
+#: contrib/admin/templates/registration/password_reset_email.html:3
#, python-format
-msgid ""
-"<h3>By %s:</h3>\n"
-"<ul>\n"
-msgstr ""
-"<h3>Por %s:</h3>\n"
-"<ul>\n"
-
-#: contrib/admin/filterspecs.py:72
-#: contrib/admin/filterspecs.py:90
-#: contrib/admin/filterspecs.py:145
-#: contrib/admin/filterspecs.py:171
-msgid "All"
-msgstr "Todo"
-
-#: contrib/admin/filterspecs.py:111
-msgid "Any date"
-msgstr "Cualquier fecha"
+msgid "for your user account at %(site_name)s"
+msgstr "de su cuenta de usuario en %(site_name)s."
-#: contrib/admin/filterspecs.py:112
-msgid "Today"
-msgstr "Hoy"
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Su nueva clave es: %(new_password)s"
-#: contrib/admin/filterspecs.py:115
-msgid "Past 7 days"
-msgstr "Últimos 7 días"
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Puede cambiarla accediendo a esta página:"
-#: contrib/admin/filterspecs.py:117
-msgid "This month"
-msgstr "Este mes"
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Su nombre de usuario, en caso de haberlo olvidado:"
-#: contrib/admin/filterspecs.py:119
-msgid "This year"
-msgstr "Este año"
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "¡Gracias por usar nuestro sitio!"
-#: contrib/admin/filterspecs.py:145
-#: oldforms/__init__.py:591
-#: newforms/widgets.py:188
-msgid "Yes"
-msgstr "Sí"
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "El equipo de %(site_name)s"
-#: contrib/admin/filterspecs.py:145
-#: oldforms/__init__.py:591
-#: newforms/widgets.py:188
-msgid "No"
-msgstr "No"
+#: 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 "¿Ha olvidado su clave? Introduzca su dirección de correo electrónico, y crearemos una nueva que le enviaremos por correo."
-#: contrib/admin/filterspecs.py:152
-#: oldforms/__init__.py:591
-#: newforms/widgets.py:188
-msgid "Unknown"
-msgstr "Desconocido"
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Dirección de correo electrónico:"
-#: contrib/admin/views/decorators.py:24
-#: contrib/admin/templates/admin/login.html:25
-msgid "Log in"
-msgstr "Identificarse"
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Recuperar mi clave"
-#: contrib/admin/views/decorators.py:62
-msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
-msgstr "Por favor, identifíquese de nuevo, porque su sesión ha caducado. No se preocupe: se ha guardado su envío."
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Fecha:"
-#: contrib/admin/views/decorators.py:69
-msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
-msgstr "Parece que su navegador no está configurado para aceptar cookies. Actívelas por favor, recargue esta página, e inténtelo de nuevo."
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Hora:"
-#: contrib/admin/views/decorators.py:83
-msgid "Usernames cannot contain the '@' character."
-msgstr "Los nombres de usuario no pueden contener el carácter '@'."
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Actualmente:"
-#: contrib/admin/views/decorators.py:85
-#, python-format
-msgid "Your e-mail address is not your username. Try '%s' instead."
-msgstr "Su dirección de correo no es su nombre de usuario. Pruebe con '%s' en su lugar."
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Modificar:"
-#: contrib/admin/views/main.py:230
-msgid "Site administration"
-msgstr "Sitio administrativo"
+#: contrib/admin/templatetags/admin_list.py:254
+msgid "All dates"
+msgstr "Todas las fechas"
-#: contrib/admin/views/main.py:264
#: contrib/admin/views/auth.py:20
+#: contrib/admin/views/main.py:264
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "Se añadió con éxito el %(name)s \"%(obj)s\"."
+#: contrib/admin/views/auth.py:25
#: contrib/admin/views/main.py:268
#: contrib/admin/views/main.py:354
-#: contrib/admin/views/auth.py:25
msgid "You may edit it again below."
msgstr "Puede editarlo de nuevo abajo."
-#: contrib/admin/views/main.py:278
-#: contrib/admin/views/main.py:363
-#, python-format
-msgid "You may add another %s below."
-msgstr "Puede agregar otro %s abajo."
-
-#: contrib/admin/views/main.py:296
-#, python-format
-msgid "Add %s"
-msgstr "Agregar %s"
-
-#: contrib/admin/views/main.py:342
-#, python-format
-msgid "Added %s."
-msgstr "Agregado %s."
-
-#: contrib/admin/views/main.py:344
-#, python-format
-msgid "Changed %s."
-msgstr "Modificado %s."
-
-#: contrib/admin/views/main.py:346
-#, python-format
-msgid "Deleted %s."
-msgstr "Borrado %s."
-
-#: contrib/admin/views/main.py:349
-msgid "No fields changed."
-msgstr "No ha cambiado ningún campo."
-
-#: contrib/admin/views/main.py:352
-#, python-format
-msgid "The %(name)s \"%(obj)s\" was changed successfully."
-msgstr "Se modificó con éxito el %(name)s \"%(obj)s."
-
-#: contrib/admin/views/main.py:360
-#, python-format
-msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
-msgstr "Se agregó con éxito el %(name)s \"%(obj)s. Puede editarlo de nuevo abajo."
-
-#: contrib/admin/views/main.py:398
-#, python-format
-msgid "Change %s"
-msgstr "Modificar %s"
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "Añadir usuario"
-#: contrib/admin/views/main.py:483
-#, python-format
-msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
-msgstr "Uno o más %(fieldname)s en %(name)s: %(obj)s"
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "La clave se ha cambiado exitosamente."
-#: contrib/admin/views/main.py:488
+#: contrib/admin/views/auth.py:65
#, python-format
-msgid "One or more %(fieldname)s in %(name)s:"
-msgstr "Uno o más %(fieldname)s en %(name)s:"
+msgid "Change password: %s"
+msgstr "Cambiar clave: %s"
-#: contrib/admin/views/main.py:520
-#, python-format
-msgid "The %(name)s \"%(obj)s\" was deleted successfully."
-msgstr "Se eliminó con éxito el %(name)s \"%(obj)s\"."
+#: contrib/admin/views/decorators.py:10
+#: contrib/auth/forms.py:60
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "Por favor, introduzca un correcto nombre de usuario y contraseña. Note que ambos campos son sensibles a mayúsculas/minúsculas."
-#: contrib/admin/views/main.py:523
-msgid "Are you sure?"
-msgstr "¿Está seguro?"
+#: contrib/admin/views/decorators.py:62
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "Por favor, identifíquese de nuevo, porque su sesión ha caducado. No se preocupe: se ha guardado su envío."
-#: contrib/admin/views/main.py:545
-#, python-format
-msgid "Change history: %s"
-msgstr "Modificar histórico: %s"
+#: contrib/admin/views/decorators.py:69
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "Parece que su navegador no está configurado para aceptar cookies. Actívelas por favor, recargue esta página, e inténtelo de nuevo."
-#: contrib/admin/views/main.py:579
-#, python-format
-msgid "Select %s"
-msgstr "Escoja %s"
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "Los nombres de usuario no pueden contener el carácter '@'."
-#: contrib/admin/views/main.py:579
+#: contrib/admin/views/decorators.py:85
#, python-format
-msgid "Select %s to change"
-msgstr "Escoja %s para modificar"
-
-#: contrib/admin/views/main.py:780
-msgid "Database error"
-msgstr "Erorr en la base de datos"
+msgid "Your e-mail address is not your username. Try '%s' instead."
+msgstr "Su dirección de correo no es su nombre de usuario. Pruebe con '%s' en su lugar."
#: contrib/admin/views/doc.py:47
#: contrib/admin/views/doc.py:49
@@ -1065,666 +923,256 @@ msgstr "Texto XML"
msgid "%s does not appear to be a urlpattern object"
msgstr "%s no parece ser un objeto urlpattern"
-#: contrib/admin/views/auth.py:31
-msgid "Add user"
-msgstr "Añadir usuario"
-
-#: contrib/admin/views/auth.py:58
-msgid "Password changed successfully."
-msgstr "La clave se ha cambiado exitosamente."
+#: contrib/admin/views/main.py:230
+msgid "Site administration"
+msgstr "Sitio administrativo"
-#: contrib/admin/views/auth.py:65
+#: contrib/admin/views/main.py:278
+#: contrib/admin/views/main.py:363
#, python-format
-msgid "Change password: %s"
-msgstr "Cambiar clave: %s"
-
-#: contrib/admin/templatetags/admin_list.py:254
-msgid "All dates"
-msgstr "Todas las fechas"
-
-#: contrib/admin/templates/admin/pagination.html:10
-msgid "Show all"
-msgstr "Mostrarlo todo"
-
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/auth/user/change_password.html:9
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-#: contrib/admin/templates/registration/password_change_form.html:3
-#: contrib/admin/templates/registration/password_change_done.html:3
-msgid "Documentation"
-msgstr "Documentación"
-
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/auth/user/change_password.html:9
-#: contrib/admin/templates/admin/auth/user/change_password.html:15
-#: contrib/admin/templates/admin/auth/user/change_password.html:46
-#: contrib/admin/templates/admin_doc/template_filter_index.html:5
-#: contrib/admin/templates/admin_doc/bookmarklets.html:4
-#: contrib/admin/templates/admin_doc/template_tag_index.html:5
-#: contrib/admin/templates/admin_doc/index.html:4
-#: contrib/admin/templates/admin_doc/model_detail.html:3
-#: contrib/admin/templates/admin_doc/missing_docutils.html:4
-#: contrib/admin/templates/admin_doc/template_detail.html:4
-#: contrib/admin/templates/admin_doc/view_index.html:5
-#: contrib/admin/templates/admin_doc/model_index.html:5
-#: contrib/admin/templates/admin_doc/view_detail.html:4
-#: contrib/admin/templates/registration/password_change_form.html:3
-#: contrib/admin/templates/registration/password_change_done.html:3
-msgid "Change password"
-msgstr "Cambiar clave"
-
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/auth/user/change_password.html:9
-#: contrib/admin/templates/admin_doc/template_filter_index.html:5
-#: contrib/admin/templates/admin_doc/bookmarklets.html:4
-#: contrib/admin/templates/admin_doc/template_tag_index.html:5
-#: contrib/admin/templates/admin_doc/index.html:4
-#: contrib/admin/templates/admin_doc/model_detail.html:3
-#: contrib/admin/templates/admin_doc/missing_docutils.html:4
-#: contrib/admin/templates/admin_doc/template_detail.html:4
-#: contrib/admin/templates/admin_doc/view_index.html:5
-#: contrib/admin/templates/admin_doc/model_index.html:5
-#: contrib/admin/templates/admin_doc/view_detail.html:4
-#: contrib/admin/templates/registration/password_change_form.html:3
-#: contrib/admin/templates/registration/password_change_done.html:3
-#: contrib/comments/templates/comments/form.html:6
-msgid "Log out"
-msgstr "Terminar sesión"
-
-#: contrib/admin/templates/admin/delete_confirmation.html:6
-#: contrib/admin/templates/admin/change_form.html:13
-#: contrib/admin/templates/admin/change_list.html:6
-#: contrib/admin/templates/admin/object_history.html:5
-#: contrib/admin/templates/admin/500.html:4
-#: contrib/admin/templates/admin/invalid_setup.html:4
-#: contrib/admin/templates/admin/base.html:30
-#: contrib/admin/templates/admin/auth/user/change_password.html:12
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-#: contrib/admin/templates/registration/password_reset_form.html:4
-#: contrib/admin/templates/registration/logged_out.html:4
-#: contrib/admin/templates/registration/password_reset_done.html:4
-#: contrib/admin/templates/registration/password_change_form.html:4
-#: contrib/admin/templates/registration/password_change_done.html:4
-msgid "Home"
-msgstr "Inicio"
-
-#: contrib/admin/templates/admin/delete_confirmation.html:9
-#: contrib/admin/templates/admin/submit_line.html:3
-msgid "Delete"
-msgstr "Eliminar"
+msgid "You may add another %s below."
+msgstr "Puede agregar otro %s abajo."
-#: contrib/admin/templates/admin/delete_confirmation.html:14
+#: contrib/admin/views/main.py:296
#, 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 "Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación de objetos relacionados, pero su cuenta no tiene permiso para borrar los siguientes tipos de objetos:"
+msgid "Add %s"
+msgstr "Agregar %s"
-#: contrib/admin/templates/admin/delete_confirmation.html:21
+#: contrib/admin/views/main.py:342
#, 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 "¿Está seguro de que quiere borrar los %(object_name)s \"%(escaped_object)s\"? Se borrarán los siguientes objetos relacionados:"
-
-#: contrib/admin/templates/admin/delete_confirmation.html:26
-msgid "Yes, I'm sure"
-msgstr "Sí, estoy seguro"
-
-#: contrib/admin/templates/admin/404.html:4
-#: contrib/admin/templates/admin/404.html:8
-msgid "Page not found"
-msgstr "Página no encontrada"
-
-#: contrib/admin/templates/admin/404.html:10
-msgid "We're sorry, but the requested page could not be found."
-msgstr "Lo sentimos, pero no se encuentra la página solicitada."
-
-#: contrib/admin/templates/admin/change_form.html:15
-#: contrib/admin/templates/admin/index.html:28
-msgid "Add"
-msgstr "Agregar"
-
-#: contrib/admin/templates/admin/change_form.html:21
-#: contrib/admin/templates/admin/object_history.html:5
-msgid "History"
-msgstr "Histórico"
-
-#: contrib/admin/templates/admin/change_form.html:22
-msgid "View on site"
-msgstr "Ver en el sitio"
-
-#: 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] "Por favor, corrija el siguiente error."
-msgstr[1] "Por favor, corrija los siguientes errores."
-
-#: contrib/admin/templates/admin/change_form.html:50
-msgid "Ordering"
-msgstr "Ordenación"
+msgid "Added %s."
+msgstr "Agregado %s."
-#: contrib/admin/templates/admin/change_form.html:53
-msgid "Order:"
-msgstr "Orden:"
+#: contrib/admin/views/main.py:342
+#: contrib/admin/views/main.py:344
+#: contrib/admin/views/main.py:346
+#: core/validators.py:283
+#: db/models/manipulators.py:309
+msgid "and"
+msgstr "y"
-#: contrib/admin/templates/admin/filter.html:2
+#: contrib/admin/views/main.py:344
#, python-format
-msgid " By %(filter_title)s "
-msgstr " Por %(filter_title)s "
-
-#: contrib/admin/templates/admin/submit_line.html:4
-msgid "Save as new"
-msgstr "Grabar como nuevo"
-
-#: contrib/admin/templates/admin/submit_line.html:5
-msgid "Save and add another"
-msgstr "Grabar y añadir otro"
+msgid "Changed %s."
+msgstr "Modificado %s."
-#: contrib/admin/templates/admin/submit_line.html:6
-msgid "Save and continue editing"
-msgstr "Grabar y continuar editando"
+#: contrib/admin/views/main.py:346
+#, python-format
+msgid "Deleted %s."
+msgstr "Borrado %s."
-#: contrib/admin/templates/admin/submit_line.html:7
-msgid "Save"
-msgstr "Grabar"
+#: contrib/admin/views/main.py:349
+msgid "No fields changed."
+msgstr "No ha cambiado ningún campo."
-#: contrib/admin/templates/admin/change_list.html:12
+#: contrib/admin/views/main.py:352
#, python-format
-msgid "Add %(name)s"
-msgstr "Agregar %(name)s"
+msgid "The %(name)s \"%(obj)s\" was changed successfully."
+msgstr "Se modificó con éxito el %(name)s \"%(obj)s."
-#: contrib/admin/templates/admin/index.html:17
+#: contrib/admin/views/main.py:360
#, python-format
-msgid "Models available in the %(name)s application."
-msgstr "Modelos disponibles en la aplicación %(name)s."
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "Se agregó con éxito el %(name)s \"%(obj)s. Puede editarlo de nuevo abajo."
-#: contrib/admin/templates/admin/index.html:18
+#: contrib/admin/views/main.py:398
#, python-format
-msgid "%(name)s"
-msgstr "%(name)s"
-
-#: contrib/admin/templates/admin/index.html:34
-msgid "Change"
-msgstr "Modificar"
-
-#: contrib/admin/templates/admin/index.html:44
-msgid "You don't have permission to edit anything."
-msgstr "No tiene permiso para editar nada."
-
-#: contrib/admin/templates/admin/index.html:52
-msgid "Recent Actions"
-msgstr "Acciones recientes"
-
-#: contrib/admin/templates/admin/index.html:53
-msgid "My Actions"
-msgstr "Mis acciones"
-
-#: contrib/admin/templates/admin/index.html:57
-msgid "None available"
-msgstr "Ninguno disponible"
-
-#: contrib/admin/templates/admin/base_site.html:4
-msgid "Django site admin"
-msgstr "Sitio de administración de Django"
-
-#: contrib/admin/templates/admin/base_site.html:7
-msgid "Django administration"
-msgstr "Administración de Django"
-
-#: contrib/admin/templates/admin/object_history.html:18
-msgid "Date/time"
-msgstr "Fecha/hora"
-
-#: contrib/admin/templates/admin/object_history.html:19
-msgid "User"
-msgstr "Usuario"
-
-#: contrib/admin/templates/admin/object_history.html:20
-msgid "Action"
-msgstr "Acción"
-
-#: contrib/admin/templates/admin/object_history.html:26
-msgid "DATE_WITH_TIME_FULL"
-msgstr "j M Y P"
-
-#: contrib/admin/templates/admin/object_history.html:36
-msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
-msgstr "Este objeto no tiene histórico de cambios. Probablemente no fue añadido usando este sitio de administración."
-
-#: contrib/admin/templates/admin/500.html:4
-msgid "Server error"
-msgstr "Error del servidor"
-
-#: contrib/admin/templates/admin/500.html:6
-msgid "Server error (500)"
-msgstr "Error del servidor (500)"
-
-#: contrib/admin/templates/admin/500.html:9
-msgid "Server Error <em>(500)</em>"
-msgstr "Error de servidor <em>(500)</em>"
-
-#: 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 "Ha ocurrido un error. Se ha informado a los administradores del sitio mediante correo electrónico y debería arreglarse en breve. Gracias por su paciencia."
-
-#: 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 "Algo va mal con la instalación de la base de datos. Asegúrate que las tablas necesarias han sido creadas, y que la base de datos puede ser leída por el usuario apropiado."
-
-#: contrib/admin/templates/admin/search_form.html:8
-msgid "Go"
-msgstr "Buscar"
+msgid "Change %s"
+msgstr "Modificar %s"
-#: contrib/admin/templates/admin/search_form.html:10
+#: contrib/admin/views/main.py:483
#, python-format
-msgid "1 result"
-msgid_plural "%(counter)s results"
-msgstr[0] "1 resultado"
-msgstr[1] "%(counter)s resultados"
+msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
+msgstr "Uno o más %(fieldname)s en %(name)s: %(obj)s"
-#: contrib/admin/templates/admin/search_form.html:10
+#: contrib/admin/views/main.py:488
#, python-format
-msgid "%(full_result_count)s total"
-msgstr "%(full_result_count)s total"
-
-#: contrib/admin/templates/admin/filters.html:4
-msgid "Filter"
-msgstr "Filtro"
-
-#: contrib/admin/templates/admin/login.html:17
-#: contrib/comments/templates/comments/form.html:6
-#: contrib/comments/templates/comments/form.html:8
-msgid "Username:"
-msgstr "Usuario:"
-
-#: contrib/admin/templates/admin/login.html:20
-#: contrib/comments/templates/comments/form.html:8
-msgid "Password:"
-msgstr "Clave:"
-
-#: contrib/admin/templates/admin/base.html:25
-msgid "Welcome,"
-msgstr "Bienvenido,"
-
-#: 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 "Primero introduzca un nombre de usuario y una contraseña. Luego podrá editar el resto de opciones del usuario."
-
-#: contrib/admin/templates/admin/auth/user/add_form.html:12
-msgid "Username"
-msgstr "Nombre de usuario"
-
-#: contrib/admin/templates/admin/auth/user/add_form.html:18
-#: contrib/admin/templates/admin/auth/user/change_password.html:34
-msgid "Password"
-msgstr "Contraseña"
-
-#: contrib/admin/templates/admin/auth/user/add_form.html:23
-#: contrib/admin/templates/admin/auth/user/change_password.html:39
-msgid "Password (again)"
-msgstr "Contraseña (de nuevo)"
-
-#: 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."
-msgstr "Introduzca la misma contraseña que arriba, para verificación"
+msgid "One or more %(fieldname)s in %(name)s:"
+msgstr "Uno o más %(fieldname)s en %(name)s:"
-#: contrib/admin/templates/admin/auth/user/change_password.html:28
+#: contrib/admin/views/main.py:520
#, python-format
-msgid "Enter a new password for the user <strong>%(username)s</strong>."
-msgstr "Introduzca una nueva contraseña para el usuario <strong>%(username)s</strong>."
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-msgid "Bookmarklets"
-msgstr "Bookmarklets"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:5
-msgid "Documentation bookmarklets"
-msgstr "Bookmarklets de documentación"
-
-#: 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"
-msgstr ""
-"\n"
-"<p class=\"help\">Para instalar bookmarklets, arrastre el enlace a su barra\n"
-"de favoritos, o pulse con el botón derecho el enlace y añádalo a sus favoritos.\n"
-"Ahora puede escoger el bookmarklet desde cualquier página en el sitio.\n"
-"Observer que algunos de estos bookmarklets precisan que esté viendo\n"
-"el sitio desde un computador señalado como \"interno\" (hable\n"
-"con su administrador de sistemas si no está seguro de si el suyo lo es).</p>\n"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:19
-msgid "Documentation for this page"
-msgstr "Documentación de esta página"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:20
-msgid "Jumps you from any page to the documentation for the view that generates that page."
-msgstr "Le lleva desde cualquier página a la documentación de la vista que la genera."
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:22
-msgid "Show object ID"
-msgstr "Mostrar ID de objeto"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:23
-msgid "Shows the content-type and unique ID for pages that represent a single object."
-msgstr "Muestra el tipo de contenido e ID unívoco de las páginas que representan un único objeto."
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:25
-msgid "Edit this object (current window)"
-msgstr "Editar este objeto (ventana actual)"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:26
-msgid "Jumps to the admin page for pages that represent a single object."
-msgstr "Le lleva a la página de administración de páginas que representan un único objeto."
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:28
-msgid "Edit this object (new window)"
-msgstr "Editar este objeto (nueva ventana)"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:29
-msgid "As above, but opens the admin page in a new window."
-msgstr "Como antes, pero abre la página de administración en una nueva ventana."
-
-#: contrib/admin/templates/widget/date_time.html:3
-msgid "Date:"
-msgstr "Fecha:"
-
-#: contrib/admin/templates/widget/date_time.html:4
-msgid "Time:"
-msgstr "Hora:"
-
-#: contrib/admin/templates/widget/file.html:2
-msgid "Currently:"
-msgstr "Actualmente:"
-
-#: contrib/admin/templates/widget/file.html:3
-msgid "Change:"
-msgstr "Modificar:"
-
-#: contrib/admin/templates/registration/password_reset_form.html:4
-#: contrib/admin/templates/registration/password_reset_form.html:6
-#: contrib/admin/templates/registration/password_reset_form.html:10
-#: contrib/admin/templates/registration/password_reset_done.html:4
-msgid "Password reset"
-msgstr "Recuperar clave"
-
-#: 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 "¿Ha olvidado su clave? Introduzca su dirección de correo electrónico, y crearemos una nueva que le enviaremos por correo."
-
-#: contrib/admin/templates/registration/password_reset_form.html:16
-msgid "E-mail address:"
-msgstr "Dirección de correo electrónico:"
-
-#: contrib/admin/templates/registration/password_reset_form.html:16
-msgid "Reset my password"
-msgstr "Recuperar mi clave"
+msgid "The %(name)s \"%(obj)s\" was deleted successfully."
+msgstr "Se eliminó con éxito el %(name)s \"%(obj)s\"."
-#: contrib/admin/templates/registration/password_reset_email.html:2
-msgid "You're receiving this e-mail because you requested a password reset"
-msgstr "Está recibiendo este mensaje debido a que solicitó recuperar la clave"
+#: contrib/admin/views/main.py:523
+msgid "Are you sure?"
+msgstr "¿Está seguro?"
-#: contrib/admin/templates/registration/password_reset_email.html:3
+#: contrib/admin/views/main.py:545
#, python-format
-msgid "for your user account at %(site_name)s"
-msgstr "de su cuenta de usuario en %(site_name)s."
+msgid "Change history: %s"
+msgstr "Modificar histórico: %s"
-#: contrib/admin/templates/registration/password_reset_email.html:5
+#: contrib/admin/views/main.py:579
#, python-format
-msgid "Your new password is: %(new_password)s"
-msgstr "Su nueva clave es: %(new_password)s"
-
-#: contrib/admin/templates/registration/password_reset_email.html:7
-msgid "Feel free to change this password by going to this page:"
-msgstr "Puede cambiarla accediendo a esta página:"
-
-#: contrib/admin/templates/registration/password_reset_email.html:11
-msgid "Your username, in case you've forgotten:"
-msgstr "Su nombre de usuario, en caso de haberlo olvidado:"
-
-#: contrib/admin/templates/registration/password_reset_email.html:13
-msgid "Thanks for using our site!"
-msgstr "¡Gracias por usar nuestro sitio!"
+msgid "Select %s"
+msgstr "Escoja %s"
-#: contrib/admin/templates/registration/password_reset_email.html:15
+#: contrib/admin/views/main.py:579
#, python-format
-msgid "The %(site_name)s team"
-msgstr "El equipo de %(site_name)s"
-
-#: contrib/admin/templates/registration/logged_out.html:8
-msgid "Thanks for spending some quality time with the Web site today."
-msgstr "Gracias por el tiempo que ha dedicado al sitio web hoy."
-
-#: contrib/admin/templates/registration/logged_out.html:10
-msgid "Log in again"
-msgstr "Identificarse de nuevo"
-
-#: contrib/admin/templates/registration/password_reset_done.html:6
-#: contrib/admin/templates/registration/password_reset_done.html:10
-msgid "Password reset successful"
-msgstr "Recuperación de clave exitosa"
-
-#: 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 "Le hemos enviado una clave nueva a la dirección que ha suministrado. Debería recibirla en breve."
-
-#: 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"
-msgstr "Cambio de clave"
-
-#: contrib/admin/templates/registration/password_change_form.html:12
-msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
-msgstr "Por favor, introduzca su clave antigua, por seguridad, y después introduzca la nueva clave dos veces para verificar que la ha escrito correctamente."
-
-#: contrib/admin/templates/registration/password_change_form.html:17
-msgid "Old password:"
-msgstr "Clave antigua:"
-
-#: contrib/admin/templates/registration/password_change_form.html:19
-msgid "New password:"
-msgstr "Clave nueva:"
-
-#: contrib/admin/templates/registration/password_change_form.html:21
-msgid "Confirm password:"
-msgstr "Confirme clave:"
-
-#: contrib/admin/templates/registration/password_change_form.html:23
-msgid "Change my password"
-msgstr "Cambiar mi clave"
-
-#: contrib/admin/templates/registration/password_change_done.html:6
-#: contrib/admin/templates/registration/password_change_done.html:10
-msgid "Password change successful"
-msgstr "Cambio de clave exitoso"
-
-#: contrib/admin/templates/registration/password_change_done.html:12
-msgid "Your password was changed."
-msgstr "Su clave ha sido cambiada."
+msgid "Select %s to change"
+msgstr "Escoja %s para modificar"
-#: contrib/sites/models.py:33
-msgid "domain name"
-msgstr "nombre de dominio"
+#: contrib/admin/views/main.py:780
+msgid "Database error"
+msgstr "Erorr en la base de datos"
-#: contrib/sites/models.py:34
-msgid "display name"
-msgstr "nombre para mostrar"
+#: contrib/auth/forms.py:17
+#: contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Las dos contraseñas no coinciden."
-#: contrib/sites/models.py:38
-msgid "site"
-msgstr "sitio"
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Ya existe un usuario con este nombre."
-#: contrib/sites/models.py:39
-msgid "sites"
-msgstr "sitios"
+#: contrib/auth/forms.py:53
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "Tu navegador de internet parece no tener las cookies habilitadas. Las cookies se necesitan para poder ingresar."
-#: contrib/humanize/templatetags/humanize.py:20
-msgid "th"
-msgstr "th"
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Esta cuenta está inactiva."
-#: contrib/humanize/templatetags/humanize.py:20
-msgid "st"
-msgstr "st"
+#: contrib/auth/forms.py:84
+msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
+msgstr "Esta dirección de correo electrónico no tiene una cuenta de usuario asociada. ¿Está seguro de que se ha registrado?"
-#: contrib/humanize/templatetags/humanize.py:20
-msgid "nd"
-msgstr "nd"
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Las contraseñas introducidas en los campos 'nueva contraseña' no coinciden."
-#: contrib/humanize/templatetags/humanize.py:20
-msgid "rd"
-msgstr "rd"
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "Tu contraseña antigua es incorrecta. Por favor, vuelve a introducirla correctamente."
-#: contrib/humanize/templatetags/humanize.py:50
-#, python-format
-msgid "%(value).1f million"
-msgid_plural "%(value).1f million"
-msgstr[0] "%(value).1f millón"
-msgstr[1] "%(value).1f millión"
+#: contrib/auth/models.py:73
+#: contrib/auth/models.py:93
+msgid "name"
+msgstr "nombre"
-#: contrib/humanize/templatetags/humanize.py:53
-#, python-format
-msgid "%(value).1f billion"
-msgid_plural "%(value).1f billion"
-msgstr[0] "%(value).1f billión"
-msgstr[1] "%(value).1f billión"
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "nombre en código"
-#: contrib/humanize/templatetags/humanize.py:56
-#, python-format
-msgid "%(value).1f trillion"
-msgid_plural "%(value).1f trillion"
-msgstr[0] "%(value).1f trillión"
-msgstr[1] "%(value).1f trillión"
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "permiso"
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "one"
-msgstr "uno"
+#: contrib/auth/models.py:79
+#: contrib/auth/models.py:94
+msgid "permissions"
+msgstr "permisos"
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "two"
-msgstr "dos"
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "grupo"
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "three"
-msgstr "tres"
+#: contrib/auth/models.py:98
+#: contrib/auth/models.py:141
+msgid "groups"
+msgstr "grupos"
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "four"
-msgstr "cuatro"
+#: contrib/auth/models.py:131
+msgid "username"
+msgstr "nombre de usuario"
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "five"
-msgstr "cinco"
+#: contrib/auth/models.py:131
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr "Requerido. 30 caracteres o menos. Sólo caracteres alfanuméricos (letras, dígitos y guiones bajos)."
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "six"
-msgstr "seis"
+#: contrib/auth/models.py:132
+msgid "first name"
+msgstr "nombre"
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "seven"
-msgstr "siete"
+#: contrib/auth/models.py:133
+msgid "last name"
+msgstr "apellidos"
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "eight"
-msgstr "ocho"
+#: contrib/auth/models.py:134
+msgid "e-mail address"
+msgstr "dirección de correo"
-#: contrib/humanize/templatetags/humanize.py:71
-msgid "nine"
-msgstr "nueve"
+#: contrib/auth/models.py:135
+msgid "password"
+msgstr "clave"
-#: contrib/humanize/templatetags/humanize.py:90
-msgid "today"
-msgstr "hoy"
+#: contrib/auth/models.py:135
+msgid "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."
+msgstr "Use'[algo]$[sal]$[hash hexadecimal]' o use <a href=\"password/\">el formulario para cambiar la contraseña</a>."
-#: contrib/humanize/templatetags/humanize.py:92
-msgid "tomorrow"
-msgstr "mañana"
+#: contrib/auth/models.py:136
+msgid "staff status"
+msgstr "es staff"
-#: contrib/humanize/templatetags/humanize.py:94
-msgid "yesterday"
-msgstr "ayer"
+#: contrib/auth/models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr "Indica si el usuario puede entrar en este sitio de administración."
-#: contrib/flatpages/models.py:8
-msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
-msgstr "Ejemplo: '/about/contact/'. Asegúrese de que pone barras al principio y al final."
+#: contrib/auth/models.py:137
+msgid "active"
+msgstr "activo"
-#: contrib/flatpages/models.py:9
-msgid "title"
-msgstr "título"
+#: contrib/auth/models.py:137
+msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."
+msgstr "Indica si el usuario puede entrar en este sitio de administración. Desmarque esto en lugar de borrar la cuenta."
-#: contrib/flatpages/models.py:10
-msgid "content"
-msgstr "contenido"
+#: contrib/auth/models.py:138
+msgid "superuser status"
+msgstr "es superusuario"
-#: contrib/flatpages/models.py:11
-msgid "enable comments"
-msgstr "admitir comentarios"
+#: contrib/auth/models.py:138
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr "Indica que este usuario tiene todos los permisos sin asignárselos explícitamente."
-#: contrib/flatpages/models.py:12
-msgid "template name"
-msgstr "nombre de plantilla"
+#: contrib/auth/models.py:139
+msgid "last login"
+msgstr "Último registro"
-#: contrib/flatpages/models.py:13
-msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
-msgstr "Ejemplo: 'flatpages/contact_page.html'. Si no es proporcionado, el sistema usará 'flatpages/default.html'."
+#: contrib/auth/models.py:140
+msgid "date joined"
+msgstr "fecha de creación"
-#: contrib/flatpages/models.py:14
-msgid "registration required"
-msgstr "debe estar registrado"
+#: contrib/auth/models.py:142
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "Además de los permisos asignados manualmente, este usuario también tendrá todos los permisos de los grupos en los que esté."
-#: contrib/flatpages/models.py:14
-msgid "If this is checked, only logged-in users will be able to view the page."
-msgstr "Si está marcado, sólo los usuarios registrados podrán ver la página."
+#: contrib/auth/models.py:143
+msgid "user permissions"
+msgstr "permisos"
-#: contrib/flatpages/models.py:18
-msgid "flat page"
-msgstr "página estática"
+#: contrib/auth/models.py:147
+msgid "user"
+msgstr "usuario"
-#: contrib/flatpages/models.py:19
-msgid "flat pages"
-msgstr "páginas estáticas"
+#: contrib/auth/models.py:148
+msgid "users"
+msgstr "usuarios"
-#: contrib/redirects/models.py:7
-msgid "redirect from"
-msgstr "redirigir desde"
+#: contrib/auth/models.py:154
+msgid "Personal info"
+msgstr "Información personal"
-#: contrib/redirects/models.py:8
-msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
-msgstr "Esta ruta debería ser absoluta, excluyendo el nombre de dominio. Ejeplo: '/events/search/'."
+#: contrib/auth/models.py:155
+msgid "Permissions"
+msgstr "Permisos"
-#: contrib/redirects/models.py:9
-msgid "redirect to"
-msgstr "redirigir a"
+#: contrib/auth/models.py:156
+msgid "Important dates"
+msgstr "Fechas importantes"
-#: contrib/redirects/models.py:10
-msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
-msgstr "Esto puede ser bien una ruta absoluta (como antes) o una URL completa que empiece con 'http://'."
+#: contrib/auth/models.py:157
+msgid "Groups"
+msgstr "Grupos"
-#: contrib/redirects/models.py:13
-msgid "redirect"
-msgstr "redirección"
+#: contrib/auth/models.py:316
+msgid "message"
+msgstr "mensaje"
-#: contrib/redirects/models.py:14
-msgid "redirects"
-msgstr "redirecciones"
+#: contrib/auth/views.py:47
+msgid "Logged out"
+msgstr "Sesión terminada"
#: contrib/comments/models.py:67
#: contrib/comments/models.py:169
@@ -1905,17 +1353,41 @@ msgstr "eliminaciones de moderador"
msgid "Moderator deletion by %r"
msgstr "Eliminación del moderador %r"
-#: contrib/comments/views/karma.py:20
-msgid "Anonymous users cannot vote"
-msgstr "Los usuarios anónimos no pueden votar"
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "¿Has olvidado tu contraseña?"
-#: contrib/comments/views/karma.py:24
-msgid "Invalid comment ID"
-msgstr "ID de comentario no válido"
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Calificaciones"
-#: contrib/comments/views/karma.py:26
-msgid "No voting for yourself"
-msgstr "No puedes votarte tú mismo"
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Requerido"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Opcional"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Postea una fotografía"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Comentario:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Previsualizar comentario"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Tu nombre:"
#: contrib/comments/views/comments.py:28
msgid "This rating is required because you've entered at least one other rating."
@@ -1951,66 +1423,179 @@ msgstr ""
"\n"
"%(text)s"
-#: contrib/comments/views/comments.py:189
-#: contrib/comments/views/comments.py:281
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
msgid "Only POSTs are allowed"
msgstr "Sólo se admite POST"
-#: contrib/comments/views/comments.py:193
-#: contrib/comments/views/comments.py:285
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
msgid "One or more of the required fields wasn't submitted"
msgstr "No se proporcionó uno o más de los siguientes campos requeridos"
-#: contrib/comments/views/comments.py:197
-#: contrib/comments/views/comments.py:287
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
msgid "Somebody tampered with the comment form (security violation)"
msgstr "Alguien está jugando con el formulario de comentarios (violación de seguridad)"
-#: contrib/comments/views/comments.py:207
-#: contrib/comments/views/comments.py:293
+#: 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 "El formulario de comentarios tiene un parámetro 'target' no válido (el ID de objeto era inválido)"
-#: contrib/comments/views/comments.py:258
-#: contrib/comments/views/comments.py:322
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
msgid "The comment form didn't provide either 'preview' or 'post'"
msgstr "El formulario de comentario no proporcionó 'previsualizar' ni 'enviar'"
-#: contrib/comments/templates/comments/form.html:8
-msgid "Forgotten your password?"
-msgstr "¿Has olvidado tu contraseña?"
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Los usuarios anónimos no pueden votar"
-#: contrib/comments/templates/comments/form.html:12
-msgid "Ratings"
-msgstr "Calificaciones"
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "ID de comentario no válido"
-#: contrib/comments/templates/comments/form.html:12
-#: contrib/comments/templates/comments/form.html:23
-msgid "Required"
-msgstr "Requerido"
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "No puedes votarte tú mismo"
-#: contrib/comments/templates/comments/form.html:12
-#: contrib/comments/templates/comments/form.html:23
-msgid "Optional"
-msgstr "Opcional"
+#: contrib/contenttypes/models.py:37
+msgid "python model class name"
+msgstr "nombre de módulo python"
-#: contrib/comments/templates/comments/form.html:23
-msgid "Post a photo"
-msgstr "Postea una fotografía"
+#: contrib/contenttypes/models.py:40
+msgid "content type"
+msgstr "tipo de contenido"
-#: contrib/comments/templates/comments/form.html:28
-#: contrib/comments/templates/comments/freeform.html:5
-msgid "Comment:"
-msgstr "Comentario:"
+#: contrib/contenttypes/models.py:41
+msgid "content types"
+msgstr "tipos de contenido"
-#: contrib/comments/templates/comments/form.html:35
-#: contrib/comments/templates/comments/freeform.html:10
-msgid "Preview comment"
-msgstr "Previsualizar comentario"
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Ejemplo: '/about/contact/'. Asegúrese de que pone barras al principio y al final."
-#: contrib/comments/templates/comments/freeform.html:4
-msgid "Your name:"
-msgstr "Tu nombre:"
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "título"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "contenido"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "admitir comentarios"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "nombre de plantilla"
+
+#: contrib/flatpages/models.py:13
+msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
+msgstr "Ejemplo: 'flatpages/contact_page.html'. Si no es proporcionado, el sistema usará 'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "debe estar registrado"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Si está marcado, sólo los usuarios registrados podrán ver la página."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "página estática"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "páginas estáticas"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "th"
+msgstr "th"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "st"
+msgstr "st"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "nd"
+msgstr "nd"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "rd"
+msgstr "rd"
+
+#: contrib/humanize/templatetags/humanize.py:50
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f millón"
+msgstr[1] "%(value).1f millión"
+
+#: contrib/humanize/templatetags/humanize.py:53
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f billión"
+msgstr[1] "%(value).1f billión"
+
+#: contrib/humanize/templatetags/humanize.py:56
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f trillión"
+msgstr[1] "%(value).1f trillión"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "one"
+msgstr "uno"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "two"
+msgstr "dos"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "three"
+msgstr "tres"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "four"
+msgstr "cuatro"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "five"
+msgstr "cinco"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "six"
+msgstr "seis"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "seven"
+msgstr "siete"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "eight"
+msgstr "ocho"
+
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "nine"
+msgstr "nueve"
+
+#: contrib/humanize/templatetags/humanize.py:90
+msgid "today"
+msgstr "hoy"
+
+#: contrib/humanize/templatetags/humanize.py:92
+msgid "tomorrow"
+msgstr "mañana"
+
+#: contrib/humanize/templatetags/humanize.py:94
+msgid "yesterday"
+msgstr "ayer"
#: contrib/localflavor/ar/forms.py:30
#: contrib/localflavor/ar/forms.py:38
@@ -2019,6 +1604,8 @@ msgstr "Introduzca un código postal en el formato NNNN or ANNNNAAA."
#: contrib/localflavor/ar/forms.py:61
#: contrib/localflavor/br/forms.py:103
+#: contrib/localflavor/pe/forms.py:34
+#: contrib/localflavor/pe/forms.py:57
msgid "This field requires only numbers."
msgstr "Este campo sólo acepta números."
@@ -2066,14 +1653,13 @@ msgstr "Este campo necesita 14 dígitos como máximo"
msgid "Invalid CNPJ number."
msgstr "Número CNPJ inválido"
-#: contrib/localflavor/ch/forms.py:18
-#: contrib/localflavor/no/forms.py:14
-msgid "Enter a zip code in the format XXXX."
-msgstr "Introduzca un código postal en el formato XXXX."
+#: contrib/localflavor/ca/forms.py:19
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Introduzca un código postal en el formato XXX XXX."
-#: contrib/localflavor/ch/forms.py:90
-msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format."
-msgstr "Introduzca una identificación suiza válida o un número de pasaporte en el formato X1234567<0 or 1234567890."
+#: contrib/localflavor/ca/forms.py:81
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format."
+msgstr "Introduzca un Número Seguro Social de Canada válido en el formato XXX-XXX-XXXX."
#: contrib/localflavor/ch/ch_states.py:5
msgid "Aargau"
@@ -2179,6 +1765,15 @@ msgstr "Zug"
msgid "Zurich"
msgstr "Zurich"
+#: contrib/localflavor/ch/forms.py:18
+#: contrib/localflavor/no/forms.py:14
+msgid "Enter a zip code in the format XXXX."
+msgstr "Introduzca un código postal en el formato XXXX."
+
+#: contrib/localflavor/ch/forms.py:90
+msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format."
+msgstr "Introduzca una identificación suiza válida o un número de pasaporte en el formato X1234567<0 or 1234567890."
+
#: contrib/localflavor/cl/forms.py:32
msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
msgstr "Introduzca un RUT chileno válido. El formato es XX.XXX.XXX-X."
@@ -2187,16 +1782,6 @@ msgstr "Introduzca un RUT chileno válido. El formato es XX.XXX.XXX-X."
msgid "Enter valid a Chilean RUT"
msgstr "Introduzca un RUT chileno válido"
-#: 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 "Introduzca un código postal en el formato XXXXX."
-
-#: contrib/localflavor/de/forms.py:60
-msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format."
-msgstr "Introduzca un número de tarjeta de identidad de Alemania válida en el formato XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
-
#: contrib/localflavor/de/de_states.py:5
msgid "Baden-Wuerttemberg"
msgstr "Baden-Wuerttemberg"
@@ -2261,11 +1846,335 @@ msgstr "Schleswig-Holstein"
msgid "Thuringia"
msgstr "Thuringia"
+#: 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 "Introduzca un código postal en el formato XXXXX."
+
+#: contrib/localflavor/de/forms.py:60
+msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format."
+msgstr "Introduzca un número de tarjeta de identidad de Alemania válida en el formato XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/es/es_provinces.py:5
+msgid "Arava"
+msgstr "Álava"
+
+#: contrib/localflavor/es/es_provinces.py:6
+msgid "Albacete"
+msgstr "Albacete"
+
+#: contrib/localflavor/es/es_provinces.py:7
+msgid "Alacant"
+msgstr "Alicante"
+
+#: contrib/localflavor/es/es_provinces.py:8
+msgid "Almeria"
+msgstr "Almería"
+
+#: contrib/localflavor/es/es_provinces.py:9
+msgid "Avila"
+msgstr "Ávila"
+
+#: contrib/localflavor/es/es_provinces.py:10
+msgid "Badajoz"
+msgstr "Badajoz"
+
+#: contrib/localflavor/es/es_provinces.py:11
+msgid "Illes Balears"
+msgstr "Islas Baleares"
+
+#: contrib/localflavor/es/es_provinces.py:12
+msgid "Barcelona"
+msgstr "Barcelona"
+
+#: contrib/localflavor/es/es_provinces.py:13
+msgid "Burgos"
+msgstr "Burgos"
+
+#: contrib/localflavor/es/es_provinces.py:14
+msgid "Caceres"
+msgstr "Cáceres"
+
+#: contrib/localflavor/es/es_provinces.py:15
+msgid "Cadiz"
+msgstr "Cádiz"
+
+#: contrib/localflavor/es/es_provinces.py:16
+msgid "Castello"
+msgstr "Castellón"
+
+#: contrib/localflavor/es/es_provinces.py:17
+msgid "Ciudad Real"
+msgstr "Ciudad Real"
+
+#: contrib/localflavor/es/es_provinces.py:18
+msgid "Cordoba"
+msgstr "Córdoba"
+
+#: contrib/localflavor/es/es_provinces.py:19
+msgid "A Coruna"
+msgstr "La Coruña"
+
+#: contrib/localflavor/es/es_provinces.py:20
+msgid "Cuenca"
+msgstr "Cuenca"
+
+#: contrib/localflavor/es/es_provinces.py:21
+msgid "Girona"
+msgstr "Gerona"
+
+#: contrib/localflavor/es/es_provinces.py:22
+msgid "Granada"
+msgstr "Granada"
+
+#: contrib/localflavor/es/es_provinces.py:23
+msgid "Guadalajara"
+msgstr "Guadalajara"
+
+#: contrib/localflavor/es/es_provinces.py:24
+msgid "Guipuzkoa"
+msgstr "Guipúzcoa"
+
+#: contrib/localflavor/es/es_provinces.py:25
+msgid "Huelva"
+msgstr "Huelva"
+
+#: contrib/localflavor/es/es_provinces.py:26
+msgid "Huesca"
+msgstr "Huesca"
+
+#: contrib/localflavor/es/es_provinces.py:27
+msgid "Jaen"
+msgstr "Jaén"
+
+#: contrib/localflavor/es/es_provinces.py:28
+msgid "Leon"
+msgstr "León"
+
+#: contrib/localflavor/es/es_provinces.py:29
+msgid "Lleida"
+msgstr "Lérida"
+
+#: contrib/localflavor/es/es_provinces.py:30
+#: contrib/localflavor/es/es_regions.py:17
+msgid "La Rioja"
+msgstr "La Rioja"
+
+#: contrib/localflavor/es/es_provinces.py:31
+msgid "Lugo"
+msgstr "Lugo"
+
+#: contrib/localflavor/es/es_provinces.py:32
+#: contrib/localflavor/es/es_regions.py:18
+msgid "Madrid"
+msgstr "Madrid"
+
+#: contrib/localflavor/es/es_provinces.py:33
+msgid "Malaga"
+msgstr "Málaga"
+
+#: contrib/localflavor/es/es_provinces.py:34
+msgid "Murcia"
+msgstr "Murcia"
+
+#: contrib/localflavor/es/es_provinces.py:35
+msgid "Navarre"
+msgstr "Navarra"
+
+#: contrib/localflavor/es/es_provinces.py:36
+msgid "Ourense"
+msgstr "Orense"
+
+#: contrib/localflavor/es/es_provinces.py:37
+msgid "Asturias"
+msgstr "Asturias"
+
+#: contrib/localflavor/es/es_provinces.py:38
+msgid "Palencia"
+msgstr "Palencia"
+
+#: contrib/localflavor/es/es_provinces.py:39
+msgid "Las Palmas"
+msgstr "Las Palmas"
+
+#: contrib/localflavor/es/es_provinces.py:40
+msgid "Pontevedra"
+msgstr "Pontevedra"
+
+#: contrib/localflavor/es/es_provinces.py:41
+msgid "Salamanca"
+msgstr "Salamanca"
+
+#: contrib/localflavor/es/es_provinces.py:42
+msgid "Santa Cruz de Tenerife"
+msgstr "Santa Cruz de Tenerife"
+
+#: contrib/localflavor/es/es_provinces.py:43
+#: contrib/localflavor/es/es_regions.py:11
+msgid "Cantabria"
+msgstr "Cantabria"
+
+#: contrib/localflavor/es/es_provinces.py:44
+msgid "Segovia"
+msgstr "Segovia"
+
+#: contrib/localflavor/es/es_provinces.py:45
+msgid "Seville"
+msgstr "Sevilla"
+
+#: contrib/localflavor/es/es_provinces.py:46
+msgid "Soria"
+msgstr "Soria"
+
+#: contrib/localflavor/es/es_provinces.py:47
+msgid "Tarragona"
+msgstr "Tarragona"
+
+#: contrib/localflavor/es/es_provinces.py:48
+msgid "Teruel"
+msgstr "Teruel"
+
+#: contrib/localflavor/es/es_provinces.py:49
+msgid "Toledo"
+msgstr "Toledo"
+
+#: contrib/localflavor/es/es_provinces.py:50
+msgid "Valencia"
+msgstr "Valencia"
+
+#: contrib/localflavor/es/es_provinces.py:51
+msgid "Valladolid"
+msgstr "Valladolid"
+
+#: contrib/localflavor/es/es_provinces.py:52
+msgid "Bizkaia"
+msgstr "Vizcaya"
+
+#: contrib/localflavor/es/es_provinces.py:53
+msgid "Zamora"
+msgstr "Zamora"
+
+#: contrib/localflavor/es/es_provinces.py:54
+msgid "Zaragoza"
+msgstr "Zaragoza"
+
+#: contrib/localflavor/es/es_provinces.py:55
+msgid "Ceuta"
+msgstr "Ceuta"
+
+#: contrib/localflavor/es/es_provinces.py:56
+msgid "Melilla"
+msgstr "Melilla"
+
+#: contrib/localflavor/es/es_regions.py:5
+msgid "Andalusia"
+msgstr "Andalucía"
+
+#: contrib/localflavor/es/es_regions.py:6
+msgid "Aragon"
+msgstr "Aragón"
+
+#: contrib/localflavor/es/es_regions.py:7
+msgid "Principality of Asturias"
+msgstr "Principado de Asturias"
+
+#: contrib/localflavor/es/es_regions.py:8
+msgid "Balearic Islands"
+msgstr "Islas Baleares"
+
+#: contrib/localflavor/es/es_regions.py:9
+msgid "Basque Country"
+msgstr "País Vasco"
+
+#: contrib/localflavor/es/es_regions.py:10
+msgid "Canary Islands"
+msgstr "Canarias"
+
+#: contrib/localflavor/es/es_regions.py:12
+msgid "Castile-La Mancha"
+msgstr "Castilla-La Mancha"
+
+#: contrib/localflavor/es/es_regions.py:13
+msgid "Castile and Leon"
+msgstr "Castilla y León"
+
+#: contrib/localflavor/es/es_regions.py:14
+msgid "Catalonia"
+msgstr "Cataluña"
+
+#: contrib/localflavor/es/es_regions.py:15
+msgid "Extremadura"
+msgstr "Extremadura"
+
+#: contrib/localflavor/es/es_regions.py:16
+msgid "Galicia"
+msgstr "Galicia"
+
+#: contrib/localflavor/es/es_regions.py:19
+msgid "Region of Murcia"
+msgstr "Región de Murcia"
+
+#: contrib/localflavor/es/es_regions.py:20
+msgid "Foral Community of Navarre"
+msgstr "Comunidad Foral de Navarra"
+
+#: contrib/localflavor/es/es_regions.py:21
+msgid "Valencian Community"
+msgstr "Comunidad Valenciana"
+
+#: contrib/localflavor/es/forms.py:22
+msgid "Enter a valid postal code in the range and format 01XXX - 52XXX."
+msgstr "Introduzca un código postal en el rango y formato 01XXX - 52XXX."
+
+#: contrib/localflavor/es/forms.py:39
+msgid "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX."
+msgstr "Introduzca un número de teléfono válido en el formato 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:73
+#: contrib/localflavor/es/forms.py:108
+#: db/models/fields/related.py:55
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Por favor, introduzca un %s válido."
+
+#: contrib/localflavor/es/forms.py:91
+msgid "Invalid checksum for NIF."
+msgstr "El NIF es incorrecto."
+
+#: contrib/localflavor/es/forms.py:97
+msgid "Invalid checksum for NIE."
+msgstr "El NIE es incorrecto."
+
+#: contrib/localflavor/es/forms.py:106
+msgid "Invalid checksum for CIF."
+msgstr "El CIF es incorrecto."
+
+#: contrib/localflavor/es/forms.py:136
+msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX."
+msgstr "Introduzca un número de cuenta bancaria en el formato XXXX-XXXX-XX-XXXXXXXXXX."
+
+#: contrib/localflavor/es/forms.py:150
+msgid "Invalid checksum for bank account number."
+msgstr "El número de cuenta bancaria es incorrecto."
+
#: contrib/localflavor/fi/forms.py:40
#: contrib/localflavor/fi/forms.py:45
msgid "Enter a valid Finnish social security number."
msgstr "Introduzca un número de seguro social finlandés válido."
+#: contrib/localflavor/in_/forms.py:16
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Introduzca un código postal en el formato XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "Introduzca un número de identificación de Islandia válido. El formato es XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:31
+msgid "The Icelandic identification number is not valid."
+msgstr "El número de identificación de Islandia no es válido."
+
#: contrib/localflavor/it/forms.py:16
msgid "Enter a valid zip code."
msgstr "Introduzca un código postal válido."
@@ -2534,19 +2443,39 @@ msgstr "Zuid-Holland"
msgid "Enter a valid Norwegian social security number."
msgstr "Introduzca un número de seguro social de Noruega válido."
-#: contrib/localflavor/pl/forms.py:53
+#: contrib/localflavor/pe/forms.py:36
+msgid "This field requires 8 digits."
+msgstr "Este campo necesita 8 dígitos."
+
+#: contrib/localflavor/pe/forms.py:59
+msgid "This field requires 11 digits."
+msgstr "Este campo necesita 11 dígitos."
+
+#: contrib/localflavor/pl/forms.py:41
msgid "National Identification Number consists of 11 digits."
msgstr "Número de Identificación Nacional consiste en 11 dígitos"
-#: contrib/localflavor/pl/forms.py:59
+#: contrib/localflavor/pl/forms.py:47
msgid "Wrong checksum for the National Identification Number."
msgstr "El Número de Identificación Nacional es incorrecto."
-#: contrib/localflavor/pl/forms.py:71
+#: contrib/localflavor/pl/forms.py:72
msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
msgstr "Introduzca un número de impuesto (NIP) en el formato XXX-XXX-XX-XX or XX-XX-XXX-XXX."
-#: contrib/localflavor/pl/forms.py:82
+#: contrib/localflavor/pl/forms.py:78
+msgid "Wrong checksum for the Tax Number (NIP)."
+msgstr "El Número de Identificación Tributaria (NIP) es incorrecto."
+
+#: contrib/localflavor/pl/forms.py:107
+msgid "National Business Register Number (REGON) consists of 7 or 9 digits."
+msgstr "El Número Nacional de Registro de Negocios (REGON) consiste en 11 dígitos"
+
+#: contrib/localflavor/pl/forms.py:113
+msgid "Wrong checksum for the National Business Register Number (REGON)."
+msgstr "El Número Nacional de Registro de Negocios (REGON) es incorrecto."
+
+#: contrib/localflavor/pl/forms.py:148
msgid "Enter a postal code in the format XX-XXX."
msgstr "Introduzca un código postal en el formato XX-XXX."
@@ -2978,49 +2907,511 @@ msgstr "Introduzca un código postal en el formato XXXXX o XXXX-XXXX."
msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
msgstr "Introduzca un Número Seguro Social de EEUU válido en el formato XXX-XX-XXXX"
-#: contrib/localflavor/in_/forms.py:16
-msgid "Enter a zip code in the format XXXXXXX."
-msgstr "Introduzca un código postal en el formato XXXXXXX."
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "redirigir desde"
-#: contrib/localflavor/is_/forms.py:17
-msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
-msgstr "Introduzca un número de identificación de Islandia válido. El formato es XXXXXX-XXXX."
+#: contrib/redirects/models.py:8
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
+msgstr "Esta ruta debería ser absoluta, excluyendo el nombre de dominio. Ejeplo: '/events/search/'."
-#: contrib/localflavor/is_/forms.py:31
-msgid "The Icelandic identification number is not valid."
-msgstr "El número de identificación de Islandia no es válido."
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "redirigir a"
+
+#: contrib/redirects/models.py:10
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
+msgstr "Esto puede ser bien una ruta absoluta (como antes) o una URL completa que empiece con 'http://'."
+
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "redirección"
+
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "redirecciones"
-#: contrib/sessions/models.py:68
+#: contrib/sessions/models.py:80
msgid "session key"
msgstr "clave de sesión"
-#: contrib/sessions/models.py:69
+#: contrib/sessions/models.py:81
msgid "session data"
msgstr "datos de sesión"
-#: contrib/sessions/models.py:70
+#: contrib/sessions/models.py:82
msgid "expire date"
msgstr "fecha de caducidad"
-#: contrib/sessions/models.py:74
+#: contrib/sessions/models.py:87
msgid "session"
msgstr "sesión"
-#: contrib/sessions/models.py:75
+#: contrib/sessions/models.py:88
msgid "sessions"
msgstr "sesiones"
-#: contrib/contenttypes/models.py:37
-msgid "python model class name"
-msgstr "nombre de módulo python"
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "nombre de dominio"
-#: contrib/contenttypes/models.py:40
-msgid "content type"
-msgstr "tipo de contenido"
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "nombre para mostrar"
-#: contrib/contenttypes/models.py:41
-msgid "content types"
-msgstr "tipos de contenido"
+#: contrib/sites/models.py:37
+msgid "site"
+msgstr "sitio"
+
+#: contrib/sites/models.py:38
+msgid "sites"
+msgstr "sitios"
+
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Este valor debe contener sólo letras, números y guiones bajos."
+
+#: core/validators.py:76
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "Este valor debe contener letras, números, guiones bajos o barras solamente."
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Este valor debe contener sólo letras, números, guiones bajos o medios."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "No se admiten letras mayúsculas."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "No se admiten letras minúsculas."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "Introduzca sólo dígitos separados por comas."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Introduzca direcciones de correo válidas separadas por comas."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "Por favor introduzca una dirección IP válida."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "No se admiten valores vacíos."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "No se admiten caracteres no numéricos."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "Este valor no puede comprender sólo dígitos."
+
+#: core/validators.py:128
+#: newforms/fields.py:149
+msgid "Enter a whole number."
+msgstr "Introduzca un número entero."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "Sólo se admiten caracteres alfabéticos."
+
+#: core/validators.py:147
+msgid "Year must be 1900 or later."
+msgstr "El año debe ser 1900 o posterior."
+
+#: core/validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr "Fecha no válida: %s"
+
+#: core/validators.py:156
+#: db/models/fields/__init__.py:505
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Introduzca una fecha válida en formato AAAA-MM-DD."
+
+#: core/validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr "Introduzca una hora válida en formato HH:MM."
+
+#: core/validators.py:165
+#: db/models/fields/__init__.py:579
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Introduzca una fecha/hora válida en formato AAAA-MM-DD HH:MM."
+
+#: core/validators.py:170
+#: newforms/fields.py:343
+msgid "Enter a valid e-mail address."
+msgstr "Introduzca una dirección de correo electrónico válida"
+
+#: core/validators.py:182
+#: core/validators.py:474
+#: newforms/fields.py:377
+#: oldforms/__init__.py:686
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "No se ha enviado ningún fichero. Compruebe el tipo de codificación en el formulario."
+
+#: core/validators.py:193
+#: newforms/fields.py:405
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "Envíe una imagen válida. El fichero que ha enviado no era una imagen o se trataba de una imagen corrupta."
+
+#: core/validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "La URL %s no apunta a una imagen válida."
+
+#: core/validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "Los números de teléfono deben guardar el formato XXX-XXX-XXXX. \"%s\" no es válido."
+
+#: core/validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "La URL %s no apunta a un vídeo QuickTime válido."
+
+#: core/validators.py:216
+msgid "A valid URL is required."
+msgstr "Se precisa una URL válida."
+
+#: core/validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"Se precisa HTML válido. Los errores específicos son:\n"
+"%s"
+
+#: core/validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML mal formado: %s"
+
+#: core/validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL no válida: %s"
+
+#: core/validators.py:259
+#: core/validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "La URL %s es un enlace roto."
+
+#: core/validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Introduzca una abreviatura válida de estado de los EEUU."
+
+#: 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] "¡Cuida tu vocabulario! Aquí no admitimos la palabra %s."
+msgstr[1] "¡Cuida tu vocabulario! Aquí no admitimos las palabras %s."
+
+#: core/validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Este campo debe concordar con el campo '%s'."
+
+#: core/validators.py:307
+msgid "Please enter something for at least one field."
+msgstr "Por favor, introduzca algo en al menos un campo."
+
+#: core/validators.py:316
+#: core/validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr "Por favor, rellene ambos campos o deje ambos vacíos."
+
+#: core/validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Se debe proporcionar este campo si %(field)s es %(value)s"
+
+#: core/validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Se debe proporcionar este campo si %(field)s no es %(value)s"
+
+#: core/validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr "No se admiten valores duplicados."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "Este valor debe estar entre %(lower)s y %(upper)s."
+
+#: core/validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Este valor debe ser como mínimo %s."
+
+#: core/validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Este valor no debe ser mayor que %s."
+
+#: core/validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Este valor debe ser una potencia de %s."
+
+#: core/validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr "Por favor, introduzca un número decimal válido."
+
+#: core/validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit."
+msgid_plural "Please enter a valid decimal number with at most %s total digits."
+msgstr[0] "Por favor, introduzca un número decimal válido con a lo más %s dígito en total."
+msgstr[1] "Por favor, introduzca un número decimal válido con a lo más %s dígitos en total."
+
+#: core/validators.py:447
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit."
+msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr[0] "Por favor, introduzca un número decimal válido con a lo más %s dígito en su parte entera."
+msgstr[1] "Por favor, introduzca un número decimal válido con a lo más %s dígitos en su parte entera."
+
+#: core/validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place."
+msgid_plural "Please enter a valid decimal number with at most %s decimal places."
+msgstr[0] "Por favor, introduzca un número decimal válido con a lo más %s dígito decimal."
+msgstr[1] "Por favor, introduzca un número decimal válido con a lo más %s dígitos decimales."
+
+#: core/validators.py:458
+msgid "Please enter a valid floating point number."
+msgstr "Por favor, introduzca un número decimal válido."
+
+#: core/validators.py:467
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Asegúrese de que el fichero que envía tiene al menos %s bytes."
+
+#: core/validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Asegúrese de que el fichero que envía tiene como máximo %s bytes."
+
+#: core/validators.py:485
+msgid "The format for this field is wrong."
+msgstr "El formato de este campo es incorrecto."
+
+#: core/validators.py:500
+msgid "This field is invalid."
+msgstr "Este campo no es válido."
+
+#: core/validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "No pude obtener nada de %s."
+
+#: core/validators.py:539
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "La URL %(url)s devolvió la cabecera Content-Type '%(contenttype)s', que no es válida."
+
+#: core/validators.py:572
+#, python-format
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "Por favor, cierre la etiqueta %(tag)s de la línea %(line)s. (La línea empieza por \"%(start)s\".)"
+
+#: core/validators.py:576
+#, python-format
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr "Parte del texto que comienza en la línea %(line)s no está permitido en ese contexto. (La línea empieza por \"%(start)s\".)"
+
+#: core/validators.py:581
+#, python-format
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr "El \"%(attr)s\" de la línea %(line)s no es un atributo válido. (La línea empieza por \"%(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr "La \"<%(tag)s>\" de la línea %(line)s no es una etiqueta válida. (La línea empieza por \"%(start)s\".)"
+
+#: core/validators.py:590
+#, python-format
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr "A una etiqueta de la línea %(line)s le faltan uno o más atributos requeridos. (La línea empieza por \"%(start)s\".)"
+
+#: core/validators.py:595
+#, python-format
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr "El atributo \"%(attr)s\" de la línea %(line)s tiene un valor que no es válido. (La línea empieza por \"%(start)s\".)"
+
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s de este %(type)s ya existen en este %(field)s."
+
+#: db/models/fields/__init__.py:52
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "Ya existe %(optname)s con este %(fieldname)s."
+
+#: db/models/fields/__init__.py:159
+#: db/models/fields/__init__.py:316
+#: db/models/fields/__init__.py:731
+#: db/models/fields/__init__.py:742
+#: newforms/fields.py:93
+#: newforms/fields.py:513
+#: newforms/fields.py:589
+#: newforms/fields.py:600
+#: newforms/models.py:193
+#: oldforms/__init__.py:373
+msgid "This field is required."
+msgstr "Este campo es obligatorio."
+
+#: db/models/fields/__init__.py:414
+msgid "This value must be an integer."
+msgstr "Este valor debe ser un entero."
+
+#: db/models/fields/__init__.py:450
+msgid "This value must be either True or False."
+msgstr "Este valor debe ser Verdadero o Falso."
+
+#: db/models/fields/__init__.py:471
+msgid "This field cannot be null."
+msgstr "Este campo no puede estar vacío."
+
+#: db/models/fields/__init__.py:640
+msgid "This value must be a decimal number."
+msgstr "Este valor debe ser un entero."
+
+#: db/models/fields/__init__.py:751
+msgid "Enter a valid filename."
+msgstr "Introduzca un nombre de fichero válido"
+
+#: db/models/fields/__init__.py:900
+msgid "This value must be either None, True or False."
+msgstr "Este valor debe ser Verdadero o Falso."
+
+#: db/models/fields/related.py:658
+msgid "Separate multiple IDs with commas."
+msgstr "Separe múltiples IDs con comas."
+
+#: db/models/fields/related.py:660
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Mantenga presionado \"Control\", o \"Command\" en un Mac, para seleccionar más de uno."
+
+#: 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] "Por favor, introduzca IDs de %(self)s válidos. El valor %(value)r no es válido."
+msgstr[1] "Por favor, introduzca IDs de %(self)s válidos. Los valores %(value)r no son válidos."
+
+#: newforms/fields.py:123
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "Asegúrese de que su texto tiene a lo más %(max)d caracteres (actualmente tiene %(length)d)."
+
+#: newforms/fields.py:125
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "Asegúrese de que su texto tiene al menos %(min)d caracteres (actualmente tiene %(length)d)."
+
+#: newforms/fields.py:151
+#: newforms/fields.py:174
+#: newforms/fields.py:204
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Asegúrese de que este valor es menor o igual a %s."
+
+#: newforms/fields.py:153
+#: newforms/fields.py:176
+#: newforms/fields.py:206
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Asegúrese de que este valor es mayor o igual a %s."
+
+#: newforms/fields.py:172
+#: newforms/fields.py:199
+msgid "Enter a number."
+msgstr "Introduzca un número."
+
+#: newforms/fields.py:208
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "Asegúrese de que no hay más de %s dígitos en total."
+
+#: newforms/fields.py:210
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "Asegúrese de que no hay más de %s decimales."
+
+#: newforms/fields.py:212
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "Asegúrese de que no hay más de %s dígitos antes del punto decimal."
+
+#: newforms/fields.py:245
+#: newforms/fields.py:633
+msgid "Enter a valid date."
+msgstr "Introduzca una fecha válida."
+
+#: newforms/fields.py:272
+#: newforms/fields.py:635
+msgid "Enter a valid time."
+msgstr "Introduzca una hora válida."
+
+#: newforms/fields.py:308
+msgid "Enter a valid date/time."
+msgstr "Introduzca una fecha/hora válida."
+
+#: newforms/fields.py:321
+msgid "Enter a valid value."
+msgstr "Introduzca un valor correcto."
+
+#: newforms/fields.py:379
+msgid "No file was submitted."
+msgstr "No se ha enviado ningún fichero"
+
+#: newforms/fields.py:381
+#: oldforms/__init__.py:688
+msgid "The submitted file is empty."
+msgstr "El fichero enviado está vacío."
+
+#: newforms/fields.py:419
+#: newforms/fields.py:444
+msgid "Enter a valid URL."
+msgstr "Introduzca una URL válida."
+
+#: newforms/fields.py:446
+msgid "This URL appears to be a broken link."
+msgstr "La URL parece ser un enlace roto."
+
+#: newforms/fields.py:501
+#: newforms/models.py:180
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Escoja una opción válida. Esa opción no está entre las aceptadas."
+
+#: newforms/fields.py:517
+#: newforms/fields.py:593
+#: newforms/models.py:197
+msgid "Enter a list of values."
+msgstr "Introduzca una lista de valores."
+
+#: newforms/fields.py:523
+#: newforms/models.py:203
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Escoja una opción válida; '%s' no es una de las opciones disponibles."
+
+#: newforms/fields.py:644
+msgid "Enter a valid IPv4 address."
+msgstr "Introduzca una dirección IPv4 válida."
#: oldforms/__init__.py:408
#, python-format
@@ -3040,11 +3431,6 @@ msgstr "No se permiten saltos de línea."
msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
msgstr "Escoja una opción válida; '%(data)s' no está en %(choices)s."
-#: oldforms/__init__.py:688
-#: newforms/fields.py:381
-msgid "The submitted file is empty."
-msgstr "El fichero enviado está vacío."
-
#: oldforms/__init__.py:744
msgid "Enter a whole number between -32,768 and 32,767."
msgstr "Introduzca un número entero entre -32,768 y 32,767."
@@ -3057,20 +3443,55 @@ msgstr "Introduzca un número positivo."
msgid "Enter a whole number between 0 and 32,767."
msgstr "Introduzca un número entero entre 0 y 32,767."
-#: views/generic/create_update.py:43
+#: template/defaultfilters.py:541
+msgid "yes,no,maybe"
+msgstr "sí,no,tal vez"
+
+#: template/defaultfilters.py:570
#, python-format
-msgid "The %(verbose_name)s was created successfully."
-msgstr "El %(verbose_name)s se ha creado correctamente."
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
-#: views/generic/create_update.py:117
+#: template/defaultfilters.py:572
#, python-format
-msgid "The %(verbose_name)s was updated successfully."
-msgstr "Se actualizó con éxito el %(verbose_name)s."
+msgid "%.1f KB"
+msgstr "%.1f KB"
-#: views/generic/create_update.py:184
+#: template/defaultfilters.py:574
#, python-format
-msgid "The %(verbose_name)s was deleted."
-msgstr "El %(verbose_name)s ha sido eliminado."
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:575
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m"
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m"
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "media noche"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "medio día"
#: utils/dates.py:6
msgid "Monday"
@@ -3261,76 +3682,56 @@ msgstr "Dic."
msgid "or"
msgstr "o"
-#: utils/timesince.py:12
+#: utils/timesince.py:21
msgid "year"
msgid_plural "years"
msgstr[0] "año"
msgstr[1] "años"
-#: utils/timesince.py:13
+#: utils/timesince.py:22
msgid "month"
msgid_plural "months"
msgstr[0] "mes"
msgstr[1] "meses"
-#: utils/timesince.py:14
+#: utils/timesince.py:23
msgid "week"
msgid_plural "weeks"
msgstr[0] "semana"
msgstr[1] "semanas"
-#: utils/timesince.py:15
+#: utils/timesince.py:24
msgid "day"
msgid_plural "days"
msgstr[0] "día"
msgstr[1] "días"
-#: utils/timesince.py:16
+#: utils/timesince.py:25
msgid "hour"
msgid_plural "hours"
msgstr[0] "hora"
msgstr[1] "horas"
-#: utils/timesince.py:17
+#: utils/timesince.py:26
msgid "minute"
msgid_plural "minutes"
msgstr[0] "minuto"
msgstr[1] "minutos"
-#: utils/timesince.py:39
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minutos"
+
+#: utils/timesince.py:51
#, python-format
msgid "%(number)d %(type)s"
msgstr "%(number)d %(type)s"
-#: utils/timesince.py:45
+#: utils/timesince.py:57
#, python-format
msgid ", %(number)d %(type)s"
msgstr ", %(number)d %(type)s"
-#: utils/dateformat.py:41
-msgid "p.m."
-msgstr "p.m"
-
-#: utils/dateformat.py:42
-msgid "a.m."
-msgstr "a.m"
-
-#: utils/dateformat.py:47
-msgid "PM"
-msgstr "PM"
-
-#: utils/dateformat.py:48
-msgid "AM"
-msgstr "AM"
-
-#: utils/dateformat.py:97
-msgid "midnight"
-msgstr "media noche"
-
-#: utils/dateformat.py:99
-msgid "noon"
-msgstr "medio día"
-
#: utils/translation/trans_real.py:391
msgid "DATE_FORMAT"
msgstr "j N Y"
@@ -3351,121 +3752,18 @@ msgstr "F Y"
msgid "MONTH_DAY_FORMAT"
msgstr "j \\de F"
-#: template/defaultfilters.py:532
-msgid "yes,no,maybe"
-msgstr "sí,no,tal vez"
-
-#: template/defaultfilters.py:561
-#, python-format
-msgid "%(size)d byte"
-msgid_plural "%(size)d bytes"
-msgstr[0] "%(size)d byte"
-msgstr[1] "%(size)d bytes"
-
-#: template/defaultfilters.py:563
-#, python-format
-msgid "%.1f KB"
-msgstr "%.1f KB"
-
-#: template/defaultfilters.py:565
-#, python-format
-msgid "%.1f MB"
-msgstr "%.1f MB"
-
-#: template/defaultfilters.py:566
-#, python-format
-msgid "%.1f GB"
-msgstr "%.1f GB"
-
-#: newforms/fields.py:123
-#, python-format
-msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
-msgstr "Asegúrese de que su texto tiene a lo más %(max)d caracteres (actualmente tiene %(length)d)."
-
-#: newforms/fields.py:125
-#, python-format
-msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
-msgstr "Asegúrese de que su texto tiene al menos %(min)d caracteres (actualmente tiene %(length)d)."
-
-#: newforms/fields.py:151
-#: newforms/fields.py:174
-#: newforms/fields.py:204
-#, python-format
-msgid "Ensure this value is less than or equal to %s."
-msgstr "Asegúrese de que este valor es menor o igual a %s."
-
-#: newforms/fields.py:153
-#: newforms/fields.py:176
-#: newforms/fields.py:206
-#, python-format
-msgid "Ensure this value is greater than or equal to %s."
-msgstr "Asegúrese de que este valor es mayor o igual a %s."
-
-#: newforms/fields.py:172
-#: newforms/fields.py:199
-msgid "Enter a number."
-msgstr "Introduzca un número."
-
-#: newforms/fields.py:208
-#, python-format
-msgid "Ensure that there are no more than %s digits in total."
-msgstr "Asegúrese de que no hay más de %s dígitos en total."
-
-#: newforms/fields.py:210
+#: views/generic/create_update.py:43
#, python-format
-msgid "Ensure that there are no more than %s decimal places."
-msgstr "Asegúrese de que no hay más de %s decimales."
+msgid "The %(verbose_name)s was created successfully."
+msgstr "El %(verbose_name)s se ha creado correctamente."
-#: newforms/fields.py:212
+#: views/generic/create_update.py:117
#, python-format
-msgid "Ensure that there are no more than %s digits before the decimal point."
-msgstr "Asegúrese de que no hay más de %s dígitos antes del punto decimal."
-
-#: newforms/fields.py:245
-#: newforms/fields.py:629
-msgid "Enter a valid date."
-msgstr "Introduzca una fecha válida."
-
-#: newforms/fields.py:272
-#: newforms/fields.py:631
-msgid "Enter a valid time."
-msgstr "Introduzca una hora válida."
-
-#: newforms/fields.py:308
-msgid "Enter a valid date/time."
-msgstr "Introduzca una fecha/hora válida."
-
-#: newforms/fields.py:321
-msgid "Enter a valid value."
-msgstr "Introduzca un valor correcto."
-
-#: newforms/fields.py:379
-msgid "No file was submitted."
-msgstr "No se ha enviado ningún fichero"
-
-#: newforms/fields.py:419
-#: newforms/fields.py:444
-msgid "Enter a valid URL."
-msgstr "Introduzca una URL válida."
-
-#: newforms/fields.py:446
-msgid "This URL appears to be a broken link."
-msgstr "La URL parece ser un enlace roto."
-
-#: newforms/fields.py:497
-#: newforms/models.py:180
-msgid "Select a valid choice. That choice is not one of the available choices."
-msgstr "Escoja una opción válida. Esa opción no está entre las aceptadas."
-
-#: newforms/fields.py:513
-#: newforms/fields.py:589
-#: newforms/models.py:197
-msgid "Enter a list of values."
-msgstr "Introduzca una lista de valores."
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "Se actualizó con éxito el %(verbose_name)s."
-#: newforms/fields.py:519
-#: newforms/models.py:203
+#: views/generic/create_update.py:184
#, python-format
-msgid "Select a valid choice. %s is not one of the available choices."
-msgstr "Escoja una opción válida; '%s' no es una de las opciones disponibles."
+msgid "The %(verbose_name)s was deleted."
+msgstr "El %(verbose_name)s ha sido eliminado."
diff --git a/django/conf/locale/es_AR/LC_MESSAGES/django.mo b/django/conf/locale/es_AR/LC_MESSAGES/django.mo
index 5c12160a7c..423380780f 100644
--- a/django/conf/locale/es_AR/LC_MESSAGES/django.mo
+++ b/django/conf/locale/es_AR/LC_MESSAGES/django.mo
Binary files differ
diff --git a/django/conf/locale/es_AR/LC_MESSAGES/django.po b/django/conf/locale/es_AR/LC_MESSAGES/django.po
index 93beac1e1b..8bd1aa2253 100644
--- a/django/conf/locale/es_AR/LC_MESSAGES/django.po
+++ b/django/conf/locale/es_AR/LC_MESSAGES/django.po
@@ -6,1202 +6,834 @@ msgid ""
msgstr ""
"Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-07-14 12:13-0300\n"
-"PO-Revision-Date: 2007-07-14 14:37-0300\n"
+"POT-Creation-Date: 2007-10-05 10:22-0300\n"
+"PO-Revision-Date: 2007-10-05 12:24-0300\n"
"Last-Translator: Ramiro Morales <rm0@gmx.net>\n"
"Language-Team: Django-I18N <django-i18n@googlegroups.com>\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"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: views/generic/create_update.py:43
-#, python-format
-msgid "The %(verbose_name)s was created successfully."
-msgstr "Se creó con éxito %(verbose_name)s."
-
-#: views/generic/create_update.py:117
-#, python-format
-msgid "The %(verbose_name)s was updated successfully."
-msgstr "Se actualizó con éxito %(verbose_name)s."
-
-#: views/generic/create_update.py:184
-#, python-format
-msgid "The %(verbose_name)s was deleted."
-msgstr "Se eliminó %(verbose_name)s."
-
-#: db/models/manipulators.py:309
-#, python-format
-msgid "%(object)s with this %(type)s already exists for the given %(field)s."
-msgstr "Ya existe un(a) %(object)s con este/a %(type)s para %(field)s."
-
-#: db/models/manipulators.py:310 contrib/admin/views/main.py:342
-#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346
-msgid "and"
-msgstr "y"
-
-#: db/models/fields/__init__.py:47
-#, python-format
-msgid "%(optname)s with this %(fieldname)s already exists."
-msgstr "Ya existe %(optname)s con este %(fieldname)s."
-
-#: db/models/fields/__init__.py:127 db/models/fields/__init__.py:284
-#: db/models/fields/__init__.py:681 db/models/fields/__init__.py:692
-#: oldforms/__init__.py:369 newforms/fields.py:92 newforms/fields.py:440
-#: newforms/fields.py:516 newforms/fields.py:527 newforms/models.py:187
-msgid "This field is required."
-msgstr "Este campo es obligatorio."
-
-#: db/models/fields/__init__.py:379
-msgid "This value must be an integer."
-msgstr "Este valor debe ser un número entero."
-
-#: db/models/fields/__init__.py:414
-msgid "This value must be either True or False."
-msgstr "Este valor debe ser True o False."
-
-#: db/models/fields/__init__.py:435
-msgid "This field cannot be null."
-msgstr "Este campo no puede ser nulo."
-
-#: db/models/fields/__init__.py:469 core/validators.py:155
-msgid "Enter a valid date in YYYY-MM-DD format."
-msgstr "Introduzca una fecha válida en formato AAAA-MM-DD."
-
-#: db/models/fields/__init__.py:538 core/validators.py:164
-msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
-msgstr "Introduzca una fecha/hora válida en formato AAAA-MM-DD HH:MM."
-
-#: db/models/fields/__init__.py:598
-msgid "This value must be a decimal number."
-msgstr "Este valor debe ser un número decimal."
-
-#: db/models/fields/__init__.py:701
-msgid "Enter a valid filename."
-msgstr "Introduzca un nombre de archivo válido."
-
-#: db/models/fields/__init__.py:826
-msgid "This value must be either None, True or False."
-msgstr "Este valor debe ser None, True o False."
-
-#: db/models/fields/related.py:55
-#, python-format
-msgid "Please enter a valid %s."
-msgstr "Por favor, introduzca un %s válido."
-
-#: db/models/fields/related.py:641
-msgid "Separate multiple IDs with commas."
-msgstr " Separe múltiples identificadores con comas."
-
-#: db/models/fields/related.py:643
-msgid ""
-"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
-msgstr ""
-"Mantenga presionada \"Control\" (\"Command\" en una Mac) para seleccionar "
-"más de uno."
-
-#: db/models/fields/related.py:690
-#, 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] ""
-"Por favor, introduzca IDs de %(self)s válidos. El valor %(value)r no es "
-"válido."
-msgstr[1] ""
-"Por favor, introduzca IDs de %(self)s válidos. Los valores %(value)r no son "
-"válidos."
-
-#: oldforms/__init__.py:404
-#, python-format
-msgid "Ensure your text is less than %s character."
-msgid_plural "Ensure your text is less than %s characters."
-msgstr[0] "Asegúrese de que su texto tiene menos de %s caracter."
-msgstr[1] "Asegúrese de que su texto tiene menos de %s caracteres."
-
-#: oldforms/__init__.py:409
-msgid "Line breaks are not allowed here."
-msgstr "No se permiten saltos de línea."
-
-#: oldforms/__init__.py:507 oldforms/__init__.py:581 oldforms/__init__.py:620
-#, python-format
-msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
-msgstr "Seleccione una opción válida; '%(data)s' no está en %(choices)s."
-
-#: oldforms/__init__.py:587 contrib/admin/filterspecs.py:152
-#: newforms/widgets.py:181
-msgid "Unknown"
-msgstr "Desconocido"
-
-#: oldforms/__init__.py:587 contrib/admin/filterspecs.py:145
-#: newforms/widgets.py:181
-msgid "Yes"
-msgstr "Sí"
-
-#: oldforms/__init__.py:587 contrib/admin/filterspecs.py:145
-#: newforms/widgets.py:181
-msgid "No"
-msgstr "No"
-
-#: oldforms/__init__.py:682 core/validators.py:181 core/validators.py:461
-msgid "No file was submitted. Check the encoding type on the form."
-msgstr ""
-"No se envió un archivo. Verifique el tipo de codificación en el formulario."
-
-#: oldforms/__init__.py:684
-msgid "The submitted file is empty."
-msgstr "El archivo enviado está vacío."
-
-#: oldforms/__init__.py:740
-msgid "Enter a whole number between -32,768 and 32,767."
-msgstr "Introduzca un número entero entre -32.768 y 32.767."
-
-#: oldforms/__init__.py:750
-msgid "Enter a positive number."
-msgstr "Introduzca un número positivo."
-
-#: oldforms/__init__.py:760
-msgid "Enter a whole number between 0 and 32,767."
-msgstr "Introduzca un número entero entre 0 y 32.767."
-
-#: conf/global_settings.py:38
+#: conf/global_settings.py:39
msgid "Arabic"
msgstr "Árabe"
-#: conf/global_settings.py:39
+#: conf/global_settings.py:40
msgid "Bengali"
msgstr "Bengalí"
-#: conf/global_settings.py:40
+#: conf/global_settings.py:41
msgid "Bulgarian"
msgstr "Búlgaro"
-#: conf/global_settings.py:41
+#: conf/global_settings.py:42
msgid "Catalan"
msgstr "Catalán"
-#: conf/global_settings.py:42
+#: conf/global_settings.py:43
msgid "Czech"
msgstr "Checo"
-#: conf/global_settings.py:43
+#: conf/global_settings.py:44
msgid "Welsh"
msgstr "Galés"
-#: conf/global_settings.py:44
+#: conf/global_settings.py:45
msgid "Danish"
msgstr "Danés"
-#: conf/global_settings.py:45
+#: conf/global_settings.py:46
msgid "German"
msgstr "Alemán"
-#: conf/global_settings.py:46
+#: conf/global_settings.py:47
msgid "Greek"
msgstr "Griego"
-#: conf/global_settings.py:47
+#: conf/global_settings.py:48
msgid "English"
msgstr "Inglés"
-#: conf/global_settings.py:48
+#: conf/global_settings.py:49
msgid "Spanish"
msgstr "Español"
-#: conf/global_settings.py:49
+#: conf/global_settings.py:50
msgid "Argentinean Spanish"
msgstr "Español Argentino"
-#: conf/global_settings.py:50
+#: conf/global_settings.py:51
msgid "Persian"
msgstr "Persa"
-#: conf/global_settings.py:51
+#: conf/global_settings.py:52
msgid "Finnish"
msgstr "Finlandés"
-#: conf/global_settings.py:52
+#: conf/global_settings.py:53
msgid "French"
msgstr "Francés"
-#: conf/global_settings.py:53
+#: conf/global_settings.py:54
+msgid "Gaeilge"
+msgstr "Irlandés"
+
+#: conf/global_settings.py:55
msgid "Galician"
msgstr "Gallego"
-#: conf/global_settings.py:54
+#: conf/global_settings.py:56
msgid "Hungarian"
msgstr "Húngaro"
-#: conf/global_settings.py:55
+#: conf/global_settings.py:57
msgid "Hebrew"
msgstr "Hebreo"
-#: conf/global_settings.py:56
+#: conf/global_settings.py:58
+msgid "Croatian"
+msgstr "Croata"
+
+#: conf/global_settings.py:59
msgid "Icelandic"
msgstr "Islandés"
-#: conf/global_settings.py:57
+#: conf/global_settings.py:60
msgid "Italian"
msgstr "Italiano"
-#: conf/global_settings.py:58
+#: conf/global_settings.py:61
msgid "Japanese"
msgstr "Japonés"
-#: conf/global_settings.py:59
+#: conf/global_settings.py:62
msgid "Korean"
msgstr "Koreano"
-#: conf/global_settings.py:60
+#: conf/global_settings.py:63
+msgid "Khmer"
+msgstr "Jémer"
+
+#: conf/global_settings.py:64
msgid "Kannada"
msgstr "Canarés"
-#: conf/global_settings.py:61
+#: conf/global_settings.py:65
msgid "Latvian"
msgstr "Letón"
-#: conf/global_settings.py:62
+#: conf/global_settings.py:66
msgid "Macedonian"
msgstr "Macedonio"
-#: conf/global_settings.py:63
+#: conf/global_settings.py:67
msgid "Dutch"
msgstr "Holandés"
-#: conf/global_settings.py:64
+#: conf/global_settings.py:68
msgid "Norwegian"
msgstr "Noruego"
-#: conf/global_settings.py:65
+#: conf/global_settings.py:69
msgid "Polish"
msgstr "Polaco"
-#: conf/global_settings.py:66
+#: conf/global_settings.py:70
msgid "Portugese"
msgstr "Portugués"
-#: conf/global_settings.py:67
+#: conf/global_settings.py:71
msgid "Brazilian"
msgstr "Brasileño"
-#: conf/global_settings.py:68
+#: conf/global_settings.py:72
msgid "Romanian"
msgstr "Rumano"
-#: conf/global_settings.py:69
+#: conf/global_settings.py:73
msgid "Russian"
msgstr "Ruso"
-#: conf/global_settings.py:70
+#: conf/global_settings.py:74
msgid "Slovak"
msgstr "Eslovaco"
-#: conf/global_settings.py:71
+#: conf/global_settings.py:75
msgid "Slovenian"
msgstr "Esloveno"
-#: conf/global_settings.py:72
+#: conf/global_settings.py:76
msgid "Serbian"
msgstr "Serbio"
-#: conf/global_settings.py:73
+#: conf/global_settings.py:77
msgid "Swedish"
msgstr "Sueco"
-#: conf/global_settings.py:74
+#: conf/global_settings.py:78
msgid "Tamil"
msgstr "Tamil"
-#: conf/global_settings.py:75
+#: conf/global_settings.py:79
msgid "Telugu"
msgstr "Telugu"
-#: conf/global_settings.py:76
+#: conf/global_settings.py:80
msgid "Turkish"
msgstr "Turco"
-#: conf/global_settings.py:77
+#: conf/global_settings.py:81
msgid "Ukrainian"
msgstr "Ucraniano"
-#: conf/global_settings.py:78
+#: conf/global_settings.py:82
msgid "Simplified Chinese"
msgstr "Chino simplificado"
-#: conf/global_settings.py:79
+#: conf/global_settings.py:83
msgid "Traditional Chinese"
msgstr "Chino tradicional"
-#: utils/dates.py:6
-msgid "Monday"
-msgstr "Lunes"
-
-#: utils/dates.py:6
-msgid "Tuesday"
-msgstr "Martes"
-
-#: utils/dates.py:6
-msgid "Wednesday"
-msgstr "Miércoles"
-
-#: utils/dates.py:6
-msgid "Thursday"
-msgstr "Jueves"
-
-#: utils/dates.py:6
-msgid "Friday"
-msgstr "Viernes"
-
-#: utils/dates.py:7
-msgid "Saturday"
-msgstr "Sábado"
-
-#: utils/dates.py:7
-msgid "Sunday"
-msgstr "Domingo"
-
-#: utils/dates.py:10
-msgid "Mon"
-msgstr "Lun"
-
-#: utils/dates.py:10
-msgid "Tue"
-msgstr "Mar"
+#: contrib/admin/filterspecs.py:42
+#, python-format
+msgid ""
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>Por %s:</h3>\n"
+"<ul>\n"
-#: utils/dates.py:10
-msgid "Wed"
-msgstr "Mie"
+#: contrib/admin/filterspecs.py:72 contrib/admin/filterspecs.py:90
+#: contrib/admin/filterspecs.py:145 contrib/admin/filterspecs.py:171
+msgid "All"
+msgstr "Todos/as"
-#: utils/dates.py:10
-msgid "Thu"
-msgstr "Jue"
+#: contrib/admin/filterspecs.py:111
+msgid "Any date"
+msgstr "Cualquier fecha"
-#: utils/dates.py:10
-msgid "Fri"
-msgstr "Vie"
+#: contrib/admin/filterspecs.py:112
+msgid "Today"
+msgstr "Hoy"
-#: utils/dates.py:11
-msgid "Sat"
-msgstr "Sab"
+#: contrib/admin/filterspecs.py:115
+msgid "Past 7 days"
+msgstr "Últimos 7 días"
-#: utils/dates.py:11
-msgid "Sun"
-msgstr "Dom"
+#: contrib/admin/filterspecs.py:117
+msgid "This month"
+msgstr "Este mes"
-#: utils/dates.py:18
-msgid "January"
-msgstr "Enero"
+#: contrib/admin/filterspecs.py:119
+msgid "This year"
+msgstr "Este año"
-#: utils/dates.py:18
-msgid "February"
-msgstr "Febrero"
+#: contrib/admin/filterspecs.py:145 newforms/widgets.py:198
+#: oldforms/__init__.py:591
+msgid "Yes"
+msgstr "Sí"
-#: utils/dates.py:18 utils/dates.py:31
-msgid "March"
-msgstr "Marzo"
+#: contrib/admin/filterspecs.py:145 newforms/widgets.py:198
+#: oldforms/__init__.py:591
+msgid "No"
+msgstr "No"
-#: utils/dates.py:18 utils/dates.py:31
-msgid "April"
-msgstr "Abril"
+#: contrib/admin/filterspecs.py:152 newforms/widgets.py:198
+#: oldforms/__init__.py:591
+msgid "Unknown"
+msgstr "Desconocido"
-#: utils/dates.py:18 utils/dates.py:31
-msgid "May"
-msgstr "Mayo"
+#: contrib/admin/models.py:17
+msgid "action time"
+msgstr "hora de acción"
-#: utils/dates.py:18 utils/dates.py:31
-msgid "June"
-msgstr "Junio"
+#: contrib/admin/models.py:20
+msgid "object id"
+msgstr "id de objeto"
-#: utils/dates.py:19 utils/dates.py:31
-msgid "July"
-msgstr "Julio"
+#: contrib/admin/models.py:21
+msgid "object repr"
+msgstr "repr de objeto"
-#: utils/dates.py:19
-msgid "August"
-msgstr "Agosto"
+#: contrib/admin/models.py:22
+msgid "action flag"
+msgstr "marca de acción"
-#: utils/dates.py:19
-msgid "September"
-msgstr "Setiembre"
+#: contrib/admin/models.py:23
+msgid "change message"
+msgstr "mensaje de cambio"
-#: utils/dates.py:19
-msgid "October"
-msgstr "Octubre"
+#: contrib/admin/models.py:26
+msgid "log entry"
+msgstr "entrada de registro"
-#: utils/dates.py:19
-msgid "November"
-msgstr "Noviembre"
+#: contrib/admin/models.py:27
+msgid "log entries"
+msgstr "entradas de registro"
-#: utils/dates.py:20
-msgid "December"
-msgstr "Diciembre"
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Página no encontrada"
-#: utils/dates.py:23
-msgid "jan"
-msgstr "ene"
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Lo sentimos, pero no se encuentra la página solicitada."
-#: utils/dates.py:23
-msgid "feb"
-msgstr "feb"
+#: 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 "Inicio"
-#: utils/dates.py:23
-msgid "mar"
-msgstr "mar"
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Error del servidor"
-#: utils/dates.py:23
-msgid "apr"
-msgstr "abr"
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Error del servidor (500)"
-#: utils/dates.py:23
-msgid "may"
-msgstr "may"
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Error de servidor <em>(500)</em>"
-#: utils/dates.py:23
-msgid "jun"
-msgstr "jun"
+#: 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 ""
+"Ha ocurrido un error. Se ha informado a los administradores del sitio "
+"mediante correo electrónico y debería ser solucionado en breve. Gracias por "
+"su paciencia."
-#: utils/dates.py:24
-msgid "jul"
-msgstr "jul"
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr "Bienvenido,"
-#: utils/dates.py:24
-msgid "aug"
-msgstr "ago"
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "Documentación"
-#: utils/dates.py:24
-msgid "sep"
-msgstr "set"
+#: 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 "Cambiar contraseña"
-#: utils/dates.py:24
-msgid "oct"
-msgstr "oct"
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Cerrar sesión"
-#: utils/dates.py:24
-msgid "nov"
-msgstr "nov"
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Sitio de administración de Django"
-#: utils/dates.py:24
-msgid "dec"
-msgstr "dic"
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Administración de Django"
-#: utils/dates.py:31
-msgid "Jan."
-msgstr "Enero"
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Agregar"
-#: utils/dates.py:31
-msgid "Feb."
-msgstr "Feb."
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr "Historia"
-#: utils/dates.py:32
-msgid "Aug."
-msgstr "Ago."
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "Ver en el sitio"
-#: utils/dates.py:32
-msgid "Sept."
-msgstr "Set."
+#: 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] "Por favor, corrija el siguiente error."
+msgstr[1] "Por favor, corrija los siguientes errores."
-#: utils/dates.py:32
-msgid "Oct."
-msgstr "Oct."
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr "Ordenación"
-#: utils/dates.py:32
-msgid "Nov."
-msgstr "Nov."
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr "Orden:"
-#: utils/dates.py:32
-msgid "Dec."
-msgstr "Dic."
+#: contrib/admin/templates/admin/change_list.html:11
+#, python-format
+msgid "Add %(name)s"
+msgstr "Agregar %(name)s"
-#: utils/timesince.py:12
-msgid "year"
-msgid_plural "years"
-msgstr[0] "año"
-msgstr[1] "años"
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "Eliminar"
-#: utils/timesince.py:13
-msgid "month"
-msgid_plural "months"
-msgstr[0] "mes"
-msgstr[1] "meses"
+#: 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 ""
+"Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación "
+"de objetos relacionados, pero su cuenta no tiene permiso para eliminar los "
+"siguientes tipos de objetos:"
-#: utils/timesince.py:14
-msgid "week"
-msgid_plural "weeks"
-msgstr[0] "semana"
-msgstr[1] "semanas"
+#: 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 ""
+"¿Está seguro de que quiere eliminar los %(object_name)s \"%(escaped_object)s"
+"\"? Se eliminarán los siguientes objetos relacionados:"
-#: utils/timesince.py:15
-msgid "day"
-msgid_plural "days"
-msgstr[0] "día"
-msgstr[1] "días"
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr "Sí, estoy seguro"
-#: utils/timesince.py:16
-msgid "hour"
-msgid_plural "hours"
-msgstr[0] "hora"
-msgstr[1] "horas"
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Por %(filter_title)s "
-#: utils/timesince.py:17
-msgid "minute"
-msgid_plural "minutes"
-msgstr[0] "minuto"
-msgstr[1] "minutos"
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filtrar"
-#: utils/timesince.py:39
+#: contrib/admin/templates/admin/index.html:17
#, python-format
-msgid "%(number)d %(type)s"
-msgstr "%(number)d %(type)s"
+msgid "Models available in the %(name)s application."
+msgstr "Modelos disponibles en la aplicación %(name)s."
-#: utils/timesince.py:45
+#: contrib/admin/templates/admin/index.html:18
#, python-format
-msgid ", %(number)d %(type)s"
-msgstr ", %(number)d %(type)s"
-
-#: utils/dateformat.py:41
-msgid "p.m."
-msgstr "p.m."
-
-#: utils/dateformat.py:42
-msgid "a.m."
-msgstr "a.m."
-
-#: utils/dateformat.py:47
-msgid "PM"
-msgstr "PM"
+msgid "%(name)s"
+msgstr "%(name)s"
-#: utils/dateformat.py:48
-msgid "AM"
-msgstr "AM"
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Modificar"
-#: utils/dateformat.py:97
-msgid "midnight"
-msgstr "medianoche"
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "No tiene permiso para editar nada."
-#: utils/dateformat.py:99
-msgid "noon"
-msgstr "mediodía"
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Acciones recientes"
-#: utils/translation/trans_real.py:391
-msgid "DATE_FORMAT"
-msgstr "j N Y"
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Mis acciones"
-#: utils/translation/trans_real.py:392
-msgid "DATETIME_FORMAT"
-msgstr "j N Y P"
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Ninguna disponible"
-#: utils/translation/trans_real.py:393
-msgid "TIME_FORMAT"
-msgstr "P"
+#: 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 ""
+"Hay algún problema con su instalación de base de datos. Asegúrese de que las "
+"tablas de la misma hayan sido creadas, y asegúrese de que el usuario "
+"apropiado tenga permisos de lectura en la base de datos."
-#: utils/translation/trans_real.py:409
-msgid "YEAR_MONTH_FORMAT"
-msgstr "F Y"
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Usuario:"
-#: utils/translation/trans_real.py:410
-msgid "MONTH_DAY_FORMAT"
-msgstr "j \\de F"
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Contraseña:"
-#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
-msgid "The two password fields didn't match."
-msgstr "Los dos campos de contraseñas no coinciden entre si."
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:24
+msgid "Log in"
+msgstr "Identificarse"
-#: contrib/auth/forms.py:25
-msgid "A user with that username already exists."
-msgstr "Ya existe un usuario con ese nombre."
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr "Fecha/hora"
-#: contrib/auth/forms.py:53
-msgid ""
-"Your Web browser doesn't appear to have cookies enabled. Cookies are "
-"required for logging in."
-msgstr ""
-"Su navegador Web aparenta no tener cookies activas. Las cookies son un "
-"requerimiento para poder ingresar."
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr "Usuario"
-#: 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."
-msgstr ""
-"Por favor introduzca un nombre de usuario y una contraseña correctos. Note "
-"que ambos campos son sensibles a mayúsculas/minúsculas."
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr "Acción"
-#: contrib/auth/forms.py:62
-msgid "This account is inactive."
-msgstr "Esta cuenta está inactiva"
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j M Y P"
-#: contrib/auth/forms.py:84
+#: contrib/admin/templates/admin/object_history.html:35
msgid ""
-"That e-mail address doesn't have an associated user account. Are you sure "
-"you've registered?"
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
msgstr ""
-"Esa dirección de e-mail no está asociada a ninguna cuenta de usuario. ¿Está "
-"seguro de que ya se ha registrado?"
-
-#: contrib/auth/forms.py:117
-msgid "The two 'new password' fields didn't match."
-msgstr "Los dos campos 'nueva contraseña' no coinciden entre si."
+"Este objeto no tiene historia de modificaciones. Probablemente no fué "
+"añadido usando este sitio de administración."
-#: contrib/auth/forms.py:124
-msgid "Your old password was entered incorrectly. Please enter it again."
-msgstr ""
-"La antigua contraseña ingresada es incorrecta. Por favor ingrésela "
-"nuevamente."
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Mostrar todos/as"
-#: contrib/auth/models.py:51 contrib/auth/models.py:71
-msgid "name"
-msgstr "nombre"
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Buscar"
-#: contrib/auth/models.py:53
-msgid "codename"
-msgstr "nombre en código"
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "un resultado"
+msgstr[1] "%(counter)s resultados"
-#: contrib/auth/models.py:56
-msgid "permission"
-msgstr "permiso"
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "total: %(full_result_count)s"
-#: contrib/auth/models.py:57 contrib/auth/models.py:72
-msgid "permissions"
-msgstr "permisos"
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "Grabar como nuevo"
-#: contrib/auth/models.py:75
-msgid "group"
-msgstr "grupo"
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "Grabar y añadir otro"
-#: contrib/auth/models.py:76 contrib/auth/models.py:116
-msgid "groups"
-msgstr "grupos"
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "Grabar y continuar editando"
-#: contrib/auth/models.py:106
-msgid "username"
-msgstr "nombre de usuario"
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "Grabar"
-#: contrib/auth/models.py:106
+#: contrib/admin/templates/admin/auth/user/add_form.html:6
msgid ""
-"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
-"digits and underscores)."
+"First, enter a username and password. Then, you'll be able to edit more user "
+"options."
msgstr ""
-"Requerido. Longitud máxima 30 caracteres alfanuméricos (letras, dígitos y "
-"guiones bajos)."
-
-#: contrib/auth/models.py:107
-msgid "first name"
-msgstr "nombre"
+"Primero, introduzca un nombre de usuario y una contraseña. Luego podrá "
+"configurar opciones adicionales."
-#: contrib/auth/models.py:108
-msgid "last name"
-msgstr "apellido"
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Nombre de usuario:"
-#: contrib/auth/models.py:109
-msgid "e-mail address"
-msgstr "dirección de correo"
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr "Contraseña:"
-#: contrib/auth/models.py:110
-msgid "password"
-msgstr "contraseña"
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:38
+msgid "Password (again)"
+msgstr "Contraseña (de nuevo)"
-#: contrib/auth/models.py:110
-msgid ""
-"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
-"password form</a>."
+#: 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 ""
-"Use '[algo]$[salt]$[hexdigest]' o use el <a href=\"password/\">formulario de "
-"cambio de contraseña</a>."
+"Para verificación, introduzca la misma contraseña que introdujo arriba."
-#: contrib/auth/models.py:111
-msgid "staff status"
-msgstr "es staff"
+#: 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 ""
+"Introduzca una nueva contraseña para el usuario <strong>%(username)s</"
+"strong>."
-#: contrib/auth/models.py:111
-msgid "Designates whether the user can log into this admin site."
-msgstr "Indica si el usuario puede ingresar a este sitio de administración."
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "Bookmarklets"
-#: contrib/auth/models.py:112
-msgid "active"
-msgstr "activo"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "Bookmarklets de documentación"
-#: contrib/auth/models.py:112
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
msgid ""
-"Designates whether this user can log into the Django admin. Unselect this "
-"instead of deleting accounts."
+"\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 ""
-"Indica si el usuario puede ingresar al sitio de administración Django. "
-"Desactive este campo en lugar de eliminar usuarios."
+"\n"
+"<p class=\"help\">Para instalar bookmarklets, arrastre el enlace a su barra\n"
+"de favoritos, o pulse con el botón derecho el enlace y añádalo a sus "
+"favoritos.\n"
+"Ahora puede seleccionar el bookmarklet desde cualquier página en el sitio.\n"
+"Tenga en cuenta que algunos de estos bookmarklets precisan que esté viendo\n"
+"el sitio desde un equipo señalado como \"interno\" (hable\n"
+"con su administrador de sistemas si no está seguro de si el suyo lo es).</"
+"p>\n"
-#: contrib/auth/models.py:113
-msgid "superuser status"
-msgstr "es superusuario"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "Documentación de esta página"
-#: contrib/auth/models.py:113
+#: contrib/admin/templates/admin_doc/bookmarklets.html:19
msgid ""
-"Designates that this user has all permissions without explicitly assigning "
-"them."
+"Jumps you from any page to the documentation for the view that generates "
+"that page."
msgstr ""
-"Indica que este usuario posee todos los permisos, sin que sea neceario "
-"asignarle los mismos en forma explícita."
-
-#: contrib/auth/models.py:114
-msgid "last login"
-msgstr "último ingreso"
+"Le lleva desde cualquier página a la documentación de la vista que la genera."
-#: contrib/auth/models.py:115
-msgid "date joined"
-msgstr "fecha de creación"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "Mostrar ID de objeto"
-#: contrib/auth/models.py:117
+#: contrib/admin/templates/admin_doc/bookmarklets.html:22
msgid ""
-"In addition to the permissions manually assigned, this user will also get "
-"all permissions granted to each group he/she is in."
+"Shows the content-type and unique ID for pages that represent a single "
+"object."
msgstr ""
-"Además de los permisos asignados manualmente, este usuario también poseerá "
-"todos los permisos de los grupos a los que pertenezca."
-
-#: contrib/auth/models.py:118
-msgid "user permissions"
-msgstr "permisos de usuario"
-
-#: contrib/auth/models.py:122
-msgid "user"
-msgstr "usuario"
-
-#: contrib/auth/models.py:123
-msgid "users"
-msgstr "usuarios"
-
-#: contrib/auth/models.py:129
-msgid "Personal info"
-msgstr "Información personal"
-
-#: contrib/auth/models.py:130
-msgid "Permissions"
-msgstr "Permisos"
-
-#: contrib/auth/models.py:131
-msgid "Important dates"
-msgstr "Fechas importantes"
-
-#: contrib/auth/models.py:132
-msgid "Groups"
-msgstr "Grupos"
-
-#: contrib/auth/models.py:274
-msgid "message"
-msgstr "mensaje"
-
-#: contrib/auth/views.py:41
-msgid "Logged out"
-msgstr "Sesión cerrada"
+"Muestra el tipo de contenido e ID unívoco de las páginas que representan un "
+"único objeto."
-#: contrib/comments/models.py:67 contrib/comments/models.py:166
-msgid "object ID"
-msgstr "ID de objeto"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "Editar este objeto (ventana actual)"
-#: contrib/comments/models.py:68
-msgid "headline"
-msgstr "encabezado"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr ""
+"Le lleva a la página de administración de páginas que representan un único "
+"objeto."
-#: contrib/comments/models.py:69 contrib/comments/models.py:90
-#: contrib/comments/models.py:167
-msgid "comment"
-msgstr "comentario"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "Editar este objeto (nueva ventana)"
-#: contrib/comments/models.py:70
-msgid "rating #1"
-msgstr "calificación 1"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr ""
+"Como antes, pero abre la página de administración en una nueva ventana."
-#: contrib/comments/models.py:71
-msgid "rating #2"
-msgstr "calificación 2"
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Gracias por el tiempo que ha dedicado al sitio web hoy."
-#: contrib/comments/models.py:72
-msgid "rating #3"
-msgstr "calificación 3"
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Identificarse de nuevo"
-#: contrib/comments/models.py:73
-msgid "rating #4"
-msgstr "calificación 4"
+#: 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 "Cambio de contraseña"
-#: contrib/comments/models.py:74
-msgid "rating #5"
-msgstr "calificación 5"
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr "Cambio de contraseña exitoso"
-#: contrib/comments/models.py:75
-msgid "rating #6"
-msgstr "calificación 6"
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr "Su contraseña ha sido cambiada."
-#: contrib/comments/models.py:76
-msgid "rating #7"
-msgstr "calificación 7"
+#: 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 ""
+"Por favor, por razones de seguridad, introduzca su contraseña antigua, y "
+"luego introduzca la nueva contraseña dos veces para verificar que la ha "
+"escrito correctamente."
-#: contrib/comments/models.py:77
-msgid "rating #8"
-msgstr "calificación 8"
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr "Contraseña antigua:"
-#: contrib/comments/models.py:82
-msgid "is valid rating"
-msgstr "es calificación válida"
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr "Contraseña nueva:"
-#: contrib/comments/models.py:83 contrib/comments/models.py:169
-msgid "date/time submitted"
-msgstr "fecha/hora de envío"
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr "Confirme contraseña:"
-#: contrib/comments/models.py:84 contrib/comments/models.py:170
-msgid "is public"
-msgstr "es público"
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr "Cambiar mi contraseña"
-#: contrib/comments/models.py:85 contrib/admin/views/doc.py:306
-msgid "IP address"
-msgstr "Dirección IP"
+#: 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 "Recuperar contraseña"
-#: contrib/comments/models.py:86
-msgid "is removed"
-msgstr "se ha eliminado"
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Recuperación de contraseña exitosa"
-#: contrib/comments/models.py:86
+#: contrib/admin/templates/registration/password_reset_done.html:12
msgid ""
-"Check this box if the comment is inappropriate. A \"This comment has been "
-"removed\" message will be displayed instead."
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
msgstr ""
-"Marque esta caja si el comentario es inapropiado. En su lugar se mostrará un "
-"mensaje \"Este comentario ha sido eliminado\"."
-
-#: contrib/comments/models.py:91
-msgid "comments"
-msgstr "comentarios"
-
-#: contrib/comments/models.py:131 contrib/comments/models.py:207
-msgid "Content object"
-msgstr "Objeto contenido"
+"Le hemos enviado una nueva contraseña a la dirección que ha suministrado. "
+"Debería recibirla en breve."
-#: contrib/comments/models.py:159
-#, python-format
-msgid ""
-"Posted by %(user)s at %(date)s\n"
-"\n"
-"%(comment)s\n"
-"\n"
-"http://%(domain)s%(url)s"
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
msgstr ""
-"Enviado por %(user)s el %(date)s\n"
-"\n"
-"%(comment)s\n"
-"\n"
-"http://%(domain)s%(url)s"
-
-#: contrib/comments/models.py:168
-msgid "person's name"
-msgstr "nombre de la persona"
-
-#: contrib/comments/models.py:171
-msgid "ip address"
-msgstr "dirección ip"
-
-#: contrib/comments/models.py:173
-msgid "approved by staff"
-msgstr "aprobado por el staff"
-
-#: contrib/comments/models.py:176
-msgid "free comment"
-msgstr "comentario libre"
+"Está recibiendo este mensaje debido a que solicitó recuperar la contraseña"
-#: contrib/comments/models.py:177
-msgid "free comments"
-msgstr "comentarios libres"
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "de su cuenta de usuario en %(site_name)s."
-#: contrib/comments/models.py:233
-msgid "score"
-msgstr "puntuación"
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "Su nueva contraseña es: %(new_password)s"
-#: contrib/comments/models.py:234
-msgid "score date"
-msgstr "fecha de la puntuación"
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Puede cambiarla accediendo a esta página:"
-#: contrib/comments/models.py:237
-msgid "karma score"
-msgstr "punto karma"
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Su nombre de usuario, en caso de haberlo olvidado:"
-#: contrib/comments/models.py:238
-msgid "karma scores"
-msgstr "puntos karma"
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "¡Gracias por usar nuestro sitio!"
-#: contrib/comments/models.py:242
+#: contrib/admin/templates/registration/password_reset_email.html:15
#, python-format
-msgid "%(score)d rating by %(user)s"
-msgstr "puntuado %(score)d por %(user)s"
+msgid "The %(site_name)s team"
+msgstr "El equipo de %(site_name)s"
-#: contrib/comments/models.py:258
-#, python-format
+#: contrib/admin/templates/registration/password_reset_form.html:12
msgid ""
-"This comment was flagged by %(user)s:\n"
-"\n"
-"%(text)s"
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
msgstr ""
-"Este comentario fue marcado por %(user)s:\n"
-"\n"
-"%(text)s"
+"¿Ha olvidado su contraseña? Introduzca su dirección de correo electrónico, y "
+"crearemos una nueva que le enviaremos por correo."
-#: contrib/comments/models.py:265
-msgid "flag date"
-msgstr "fecha de la marca"
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Dirección de correo electrónico:"
-#: contrib/comments/models.py:268
-msgid "user flag"
-msgstr "marca de usuario"
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Recuperar mi contraseña"
-#: contrib/comments/models.py:269
-msgid "user flags"
-msgstr "marcas de usuario"
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "Fecha:"
-#: contrib/comments/models.py:273
-#, python-format
-msgid "Flag by %r"
-msgstr "Marca de %r"
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "Hora:"
-#: contrib/comments/models.py:278
-msgid "deletion date"
-msgstr "fecha de eliminación"
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "Actualmente"
-#: contrib/comments/models.py:280
-msgid "moderator deletion"
-msgstr "Eliminación por moderador"
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "Modificar:"
-#: contrib/comments/models.py:281
-msgid "moderator deletions"
-msgstr "eliminaciones por moderador"
+#: contrib/admin/templatetags/admin_list.py:254
+msgid "All dates"
+msgstr "Todas las fechas"
-#: contrib/comments/models.py:285
+#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:264
#, python-format
-msgid "Moderator deletion by %r"
-msgstr "Eliminación del moderador %r"
-
-#: contrib/comments/views/karma.py:20
-msgid "Anonymous users cannot vote"
-msgstr "Los usuarios anónimos no pueden votar"
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "Se agregó con éxito %(name)s \"%(obj)s\"."
-#: contrib/comments/views/karma.py:24
-msgid "Invalid comment ID"
-msgstr "ID de comentario no válido"
+#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:268
+#: contrib/admin/views/main.py:354
+msgid "You may edit it again below."
+msgstr "Puede modificarlo nuevamente abajo."
-#: contrib/comments/views/karma.py:26
-msgid "No voting for yourself"
-msgstr "Ud. no puede votarse a sí mismo"
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "Agregar usuario"
-#: contrib/comments/views/comments.py:28
-msgid ""
-"This rating is required because you've entered at least one other rating."
-msgstr "Se precisa esta puntuación porque ha introducido al menos otra más."
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "Cambio de contraseña exitoso"
-#: contrib/comments/views/comments.py:112
+#: contrib/admin/views/auth.py:65
#, python-format
-msgid ""
-"This comment was posted by a user who has posted fewer than %(count)s "
-"comment:\n"
-"\n"
-"%(text)s"
-msgid_plural ""
-"This comment was posted by a user who has posted fewer than %(count)s "
-"comments:\n"
-"\n"
-"%(text)s"
-msgstr[0] ""
-"Este comentario lo envió un usuario que ha enviado menos de %(count)s "
-"comentario:\n"
-"\n"
-"%(text)s"
-msgstr[1] ""
-"Este comentario lo envió un usuario que ha enviado menos de %(count)s "
-"comentarios:\n"
-"\n"
-"%(text)s"
+msgid "Change password: %s"
+msgstr "Cambiar contraseña: %s"
-#: contrib/comments/views/comments.py:117
-#, python-format
+#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:60
msgid ""
-"This comment was posted by a sketchy user:\n"
-"\n"
-"%(text)s"
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
msgstr ""
-"Este comentario ha sido enviado por un usuario 'semi-anónimo':\n"
-"\n"
-"%(text)s"
-
-#: contrib/comments/views/comments.py:189
-#: contrib/comments/views/comments.py:281
-msgid "Only POSTs are allowed"
-msgstr "Sólo se admiten POSTs"
-
-#: contrib/comments/views/comments.py:193
-#: contrib/comments/views/comments.py:285
-msgid "One or more of the required fields wasn't submitted"
-msgstr "No se proporcionó uno o más de los siguientes campos requeridos"
+"Por favor introduzca un nombre de usuario y una contraseña correctos. Note "
+"que ambos campos son sensibles a mayúsculas/minúsculas."
-#: contrib/comments/views/comments.py:197
-#: contrib/comments/views/comments.py:287
-msgid "Somebody tampered with the comment form (security violation)"
+#: contrib/admin/views/decorators.py:62
+msgid ""
+"Please log in again, because your session has expired. Don't worry: Your "
+"submission has been saved."
msgstr ""
-"Alguien está jugando con el formulario de comentarios (violación de "
-"seguridad)"
+"Por favor, identifíquese de nuevo porque su sesión ha caducado. No se "
+"preocupe: se ha guardado su envío."
-#: contrib/comments/views/comments.py:207
-#: contrib/comments/views/comments.py:293
+#: contrib/admin/views/decorators.py:69
msgid ""
-"The comment form had an invalid 'target' parameter -- the object ID was "
-"invalid"
+"Looks like your browser isn't configured to accept cookies. Please enable "
+"cookies, reload this page, and try again."
msgstr ""
-"El formulario de comentarios tiene un parámetro 'target' no válido (el ID de "
-"objeto era inválido)"
-
-#: contrib/comments/views/comments.py:258
-#: contrib/comments/views/comments.py:322
-msgid "The comment form didn't provide either 'preview' or 'post'"
-msgstr "El formulario de comentario no proporcionó 'previsualizar' ni 'enviar'"
-
-#: contrib/comments/templates/comments/freeform.html:4
-msgid "Your name:"
-msgstr "Su nombre:"
-
-#: contrib/comments/templates/comments/freeform.html:5
-#: contrib/comments/templates/comments/form.html:28
-msgid "Comment:"
-msgstr "Comentario:"
-
-#: contrib/comments/templates/comments/freeform.html:10
-#: contrib/comments/templates/comments/form.html:35
-msgid "Preview comment"
-msgstr "Previsualizar comentario"
-
-#: contrib/comments/templates/comments/form.html:6
-#: contrib/comments/templates/comments/form.html:8
-#: contrib/admin/templates/admin/login.html:17
-msgid "Username:"
-msgstr "Usuario:"
-
-#: contrib/comments/templates/comments/form.html:6
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: 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
-#: contrib/admin/templates/admin_doc/template_filter_index.html:5
-#: contrib/admin/templates/admin_doc/missing_docutils.html:4
-#: contrib/admin/templates/admin_doc/model_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/index.html:4
-#: contrib/admin/templates/admin_doc/model_detail.html:3
-#: contrib/admin/templates/admin_doc/view_detail.html:4
-#: contrib/admin/templates/admin_doc/bookmarklets.html:4
-#: contrib/admin/templates/admin_doc/template_detail.html:4
-msgid "Log out"
-msgstr "Cerrar sesión"
-
-#: contrib/comments/templates/comments/form.html:8
-#: contrib/admin/templates/admin/login.html:20
-msgid "Password:"
-msgstr "Contraseña:"
-
-#: contrib/comments/templates/comments/form.html:8
-msgid "Forgotten your password?"
-msgstr "Olvidó su contraseña?"
-
-#: contrib/comments/templates/comments/form.html:12
-msgid "Ratings"
-msgstr "Calificaciones"
-
-#: contrib/comments/templates/comments/form.html:12
-#: contrib/comments/templates/comments/form.html:23
-msgid "Required"
-msgstr "Requerido"
-
-#: contrib/comments/templates/comments/form.html:12
-#: contrib/comments/templates/comments/form.html:23
-msgid "Optional"
-msgstr "Opcional"
-
-#: contrib/comments/templates/comments/form.html:23
-msgid "Post a photo"
-msgstr "Enviar una foto"
-
-#: contrib/sites/models.py:15
-msgid "domain name"
-msgstr "nombre de dominio"
-
-#: contrib/sites/models.py:16
-msgid "display name"
-msgstr "nombre para visualizar"
-
-#: contrib/sites/models.py:20
-msgid "site"
-msgstr "sitio"
+"Parece que su navegador no está configurado para aceptar cookies. Actívelas "
+"por favor, recargue esta página, e inténtelo de nuevo."
-#: contrib/sites/models.py:21
-msgid "sites"
-msgstr "sitios"
+#: contrib/admin/views/decorators.py:83
+msgid "Usernames cannot contain the '@' character."
+msgstr "Los nombres de usuario no pueden contener el carácter '@'."
-#: contrib/admin/filterspecs.py:42
+#: contrib/admin/views/decorators.py:85
#, python-format
-msgid ""
-"<h3>By %s:</h3>\n"
-"<ul>\n"
+msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr ""
-"<h3>Por %s:</h3>\n"
-"<ul>\n"
-
-#: contrib/admin/filterspecs.py:72 contrib/admin/filterspecs.py:90
-#: contrib/admin/filterspecs.py:145 contrib/admin/filterspecs.py:171
-msgid "All"
-msgstr "Todos/as"
-
-#: contrib/admin/filterspecs.py:111
-msgid "Any date"
-msgstr "Cualquier fecha"
-
-#: contrib/admin/filterspecs.py:112
-msgid "Today"
-msgstr "Hoy"
-
-#: contrib/admin/filterspecs.py:115
-msgid "Past 7 days"
-msgstr "Últimos 7 días"
-
-#: contrib/admin/filterspecs.py:117
-msgid "This month"
-msgstr "Este mes"
-
-#: contrib/admin/filterspecs.py:119
-msgid "This year"
-msgstr "Este año"
-
-#: contrib/admin/models.py:17
-msgid "action time"
-msgstr "hora de acción"
-
-#: contrib/admin/models.py:20
-msgid "object id"
-msgstr "id de objeto"
-
-#: contrib/admin/models.py:21
-msgid "object repr"
-msgstr "repr de objeto"
-
-#: contrib/admin/models.py:22
-msgid "action flag"
-msgstr "marca de acción"
-
-#: contrib/admin/models.py:23
-msgid "change message"
-msgstr "mensaje de cambio"
-
-#: contrib/admin/models.py:26
-msgid "log entry"
-msgstr "entrada de registro"
-
-#: contrib/admin/models.py:27
-msgid "log entries"
-msgstr "entradas de registro"
+"Su dirección de correo no es su nombre de usuario. Intente nuevamente usando "
+"'%s'."
#: contrib/admin/views/doc.py:47 contrib/admin/views/doc.py:49
#: contrib/admin/views/doc.py:51
@@ -1270,8 +902,8 @@ msgstr "Booleano (Verdadero o Falso)"
#: contrib/admin/views/doc.py:294 contrib/admin/views/doc.py:313
#, python-format
-msgid "String (up to %(maxlength)s)"
-msgstr "Cadena (máximo %(maxlength)s)"
+msgid "String (up to %(max_length)s)"
+msgstr "Cadena (máximo %(max_length)s)"
#: contrib/admin/views/doc.py:295
msgid "Comma-separated integers"
@@ -1302,6 +934,10 @@ msgstr "Ruta de archivo"
msgid "Floating point number"
msgstr "Número de punto flotante"
+#: contrib/admin/views/doc.py:306 contrib/comments/models.py:85
+msgid "IP address"
+msgstr "Dirección IP"
+
#: contrib/admin/views/doc.py:308
msgid "Boolean (Either True, False or None)"
msgstr "Booleano (Verdadero, Falso o Nulo)"
@@ -1339,61 +975,6 @@ msgstr "Texto XML"
msgid "%s does not appear to be a urlpattern object"
msgstr "%s no parece ser un objeto urlpattern"
-#: contrib/admin/views/decorators.py:24
-#: contrib/admin/templates/admin/login.html:25
-msgid "Log in"
-msgstr "Identificarse"
-
-#: contrib/admin/views/decorators.py:62
-msgid ""
-"Please log in again, because your session has expired. Don't worry: Your "
-"submission has been saved."
-msgstr ""
-"Por favor, identifíquese de nuevo porque su sesión ha caducado. No se "
-"preocupe: se ha guardado su envío."
-
-#: contrib/admin/views/decorators.py:69
-msgid ""
-"Looks like your browser isn't configured to accept cookies. Please enable "
-"cookies, reload this page, and try again."
-msgstr ""
-"Parece que su navegador no está configurado para aceptar cookies. Actívelas "
-"por favor, recargue esta página, e inténtelo de nuevo."
-
-#: contrib/admin/views/decorators.py:83
-msgid "Usernames cannot contain the '@' character."
-msgstr "Los nombres de usuario no pueden contener el carácter '@'."
-
-#: contrib/admin/views/decorators.py:85
-#, python-format
-msgid "Your e-mail address is not your username. Try '%s' instead."
-msgstr ""
-"Su dirección de correo no es su nombre de usuario. Intente nuevamente usando "
-"'%s'."
-
-#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:264
-#, python-format
-msgid "The %(name)s \"%(obj)s\" was added successfully."
-msgstr "Se agregó con éxito %(name)s \"%(obj)s\"."
-
-#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:268
-#: contrib/admin/views/main.py:354
-msgid "You may edit it again below."
-msgstr "Puede modificarlo nuevamente abajo."
-
-#: contrib/admin/views/auth.py:31
-msgid "Add user"
-msgstr "Agregar usuario"
-
-#: contrib/admin/views/auth.py:58
-msgid "Password changed successfully."
-msgstr "Cambio de contraseña exitoso"
-
-#: contrib/admin/views/auth.py:65
-#, python-format
-msgid "Change password: %s"
-msgstr "Cambiar contraseña: %s"
-
#: contrib/admin/views/main.py:230
msgid "Site administration"
msgstr "Administración de sitio"
@@ -1413,6 +994,12 @@ msgstr "Agregar %s"
msgid "Added %s."
msgstr "Agregado %s."
+#: contrib/admin/views/main.py:342 contrib/admin/views/main.py:344
+#: contrib/admin/views/main.py:346 core/validators.py:283
+#: db/models/manipulators.py:309
+msgid "and"
+msgstr "y"
+
#: contrib/admin/views/main.py:344
#, python-format
msgid "Changed %s."
@@ -1421,7 +1008,7 @@ msgstr "Modifica %s."
#: contrib/admin/views/main.py:346
#, python-format
msgid "Deleted %s."
-msgstr "Elimina %s."
+msgstr "Eliminó %s."
#: contrib/admin/views/main.py:349
msgid "No fields changed."
@@ -1482,670 +1069,692 @@ msgstr "Seleccione %s a modificar"
msgid "Database error"
msgstr "Error de base de datos"
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: 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
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-msgid "Documentation"
-msgstr "Documentación"
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Los dos campos de contraseñas no coinciden entre si."
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: 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
-#: contrib/admin/templates/admin_doc/template_filter_index.html:5
-#: contrib/admin/templates/admin_doc/missing_docutils.html:4
-#: contrib/admin/templates/admin_doc/model_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/index.html:4
-#: contrib/admin/templates/admin_doc/model_detail.html:3
-#: contrib/admin/templates/admin_doc/view_detail.html:4
-#: contrib/admin/templates/admin_doc/bookmarklets.html:4
-#: contrib/admin/templates/admin_doc/template_detail.html:4
-msgid "Change password"
-msgstr "Cambiar contraseña"
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Ya existe un usuario con ese nombre."
-#: contrib/admin/templates/admin/change_list.html:6
-#: contrib/admin/templates/admin/object_history.html:5
-#: contrib/admin/templates/admin/500.html:4
-#: contrib/admin/templates/admin/change_form.html:13
-#: contrib/admin/templates/admin/base.html:30
-#: contrib/admin/templates/admin/delete_confirmation.html:6
-#: contrib/admin/templates/admin/invalid_setup.html:4
-#: contrib/admin/templates/admin/auth/user/change_password.html:12
-#: contrib/admin/templates/registration/logged_out.html:4
-#: contrib/admin/templates/registration/password_change_form.html:4
-#: contrib/admin/templates/registration/password_reset_done.html:4
-#: contrib/admin/templates/registration/password_change_done.html:4
-#: contrib/admin/templates/registration/password_reset_form.html:4
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-msgid "Home"
-msgstr "Inicio"
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr ""
+"Su navegador Web aparenta no tener cookies activas. Las cookies son un "
+"requerimiento para poder ingresar."
-#: contrib/admin/templates/admin/change_list.html:12
-#, python-format
-msgid "Add %(name)s"
-msgstr "Agregar %(name)s"
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Esta cuenta está inactiva"
-#: contrib/admin/templates/admin/404.html:4
-#: contrib/admin/templates/admin/404.html:8
-msgid "Page not found"
-msgstr "Página no encontrada"
+#: contrib/auth/forms.py:84
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr ""
+"Esa dirección de e-mail no está asociada a ninguna cuenta de usuario. ¿Está "
+"seguro de que ya se ha registrado?"
-#: contrib/admin/templates/admin/404.html:10
-msgid "We're sorry, but the requested page could not be found."
-msgstr "Lo sentimos, pero no se encuentra la página solicitada."
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "Los dos campos 'nueva contraseña' no coinciden entre si."
-#: contrib/admin/templates/admin/object_history.html:5
-#: contrib/admin/templates/admin/change_form.html:21
-msgid "History"
-msgstr "Historia"
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr ""
+"La antigua contraseña introducida es incorrecta. Por favor introdúzcala "
+"nuevamente."
-#: contrib/admin/templates/admin/object_history.html:18
-msgid "Date/time"
-msgstr "Fecha/hora"
+#: contrib/auth/models.py:73 contrib/auth/models.py:93
+msgid "name"
+msgstr "nombre"
-#: contrib/admin/templates/admin/object_history.html:19
-msgid "User"
-msgstr "Usuario"
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "nombre en código"
-#: contrib/admin/templates/admin/object_history.html:20
-msgid "Action"
-msgstr "Acción"
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "permiso"
-#: contrib/admin/templates/admin/object_history.html:26
-msgid "DATE_WITH_TIME_FULL"
-msgstr "j M Y P"
+#: contrib/auth/models.py:79 contrib/auth/models.py:94
+msgid "permissions"
+msgstr "permisos"
-#: contrib/admin/templates/admin/object_history.html:36
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "grupo"
+
+#: contrib/auth/models.py:98 contrib/auth/models.py:141
+msgid "groups"
+msgstr "grupos"
+
+#: contrib/auth/models.py:131
+msgid "username"
+msgstr "nombre de usuario"
+
+#: contrib/auth/models.py:131
msgid ""
-"This object doesn't have a change history. It probably wasn't added via this "
-"admin site."
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
msgstr ""
-"Este objeto no tiene historia de modificaciones. Probablemente no fué "
-"añadido usando este sitio de administración."
+"Requerido. Longitud máxima 30 caracteres alfanuméricos (letras, dígitos y "
+"guiones bajos)."
-#: contrib/admin/templates/admin/500.html:4
-msgid "Server error"
-msgstr "Error del servidor"
+#: contrib/auth/models.py:132
+msgid "first name"
+msgstr "nombre"
-#: contrib/admin/templates/admin/500.html:6
-msgid "Server error (500)"
-msgstr "Error del servidor (500)"
+#: contrib/auth/models.py:133
+msgid "last name"
+msgstr "apellido"
-#: contrib/admin/templates/admin/500.html:9
-msgid "Server Error <em>(500)</em>"
-msgstr "Error de servidor <em>(500)</em>"
+#: contrib/auth/models.py:134
+msgid "e-mail address"
+msgstr "dirección de correo"
-#: contrib/admin/templates/admin/500.html:10
+#: contrib/auth/models.py:135
+msgid "password"
+msgstr "contraseña"
+
+#: contrib/auth/models.py:135
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."
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
msgstr ""
-"Ha ocurrido un error. Se ha informado a los administradores del sitio "
-"mediante correo electrónico y debería ser solucionado en breve. Gracias por "
-"su paciencia."
-
-#: contrib/admin/templates/admin/base_site.html:4
-msgid "Django site admin"
-msgstr "Sitio de administración de Django"
+"Use '[algo]$[salt]$[hexdigest]' o use el <a href=\"password/\">formulario de "
+"cambio de contraseña</a>."
-#: contrib/admin/templates/admin/base_site.html:7
-msgid "Django administration"
-msgstr "Administración de Django"
+#: contrib/auth/models.py:136
+msgid "staff status"
+msgstr "es staff"
-#: contrib/admin/templates/admin/filter.html:2
-#, python-format
-msgid " By %(filter_title)s "
-msgstr " Por %(filter_title)s "
+#: contrib/auth/models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr "Indica si el usuario puede ingresar a este sitio de administración."
-#: contrib/admin/templates/admin/index.html:17
-#, python-format
-msgid "Models available in the %(name)s application."
-msgstr "Modelos disponibles en la aplicación %(name)s."
+#: contrib/auth/models.py:137
+msgid "active"
+msgstr "activo"
-#: contrib/admin/templates/admin/index.html:18
-#, python-format
-msgid "%(name)s"
-msgstr "%(name)s"
+#: contrib/auth/models.py:137
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr ""
+"Indica si el usuario puede ingresar al sitio de administración Django. "
+"Desactive este campo en lugar de eliminar usuarios."
-#: contrib/admin/templates/admin/index.html:28
-#: contrib/admin/templates/admin/change_form.html:15
-msgid "Add"
-msgstr "Agregar"
+#: contrib/auth/models.py:138
+msgid "superuser status"
+msgstr "es superusuario"
-#: contrib/admin/templates/admin/index.html:34
-msgid "Change"
-msgstr "Modificar"
+#: contrib/auth/models.py:138
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr ""
+"Indica que este usuario posee todos los permisos, sin que sea necesario "
+"asignarle los mismos en forma explícita."
-#: contrib/admin/templates/admin/index.html:44
-msgid "You don't have permission to edit anything."
-msgstr "No tiene permiso para editar nada."
+#: contrib/auth/models.py:139
+msgid "last login"
+msgstr "último ingreso"
-#: contrib/admin/templates/admin/index.html:52
-msgid "Recent Actions"
-msgstr "Acciones recientes"
+#: contrib/auth/models.py:140
+msgid "date joined"
+msgstr "fecha de creación"
-#: contrib/admin/templates/admin/index.html:53
-msgid "My Actions"
-msgstr "Mis acciones"
+#: contrib/auth/models.py:142
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"Además de los permisos asignados manualmente, este usuario también poseerá "
+"todos los permisos de los grupos a los que pertenezca."
-#: contrib/admin/templates/admin/index.html:57
-msgid "None available"
-msgstr "Ninguna disponible"
+#: contrib/auth/models.py:143
+msgid "user permissions"
+msgstr "permisos de usuario"
-#: contrib/admin/templates/admin/change_form.html:22
-msgid "View on site"
-msgstr "Ver en el sitio"
+#: contrib/auth/models.py:147
+msgid "user"
+msgstr "usuario"
-#: 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] "Por favor, corrija el siguiente error."
-msgstr[1] "Por favor, corrija los siguientes errores."
+#: contrib/auth/models.py:148
+msgid "users"
+msgstr "usuarios"
-#: contrib/admin/templates/admin/change_form.html:50
-msgid "Ordering"
-msgstr "Ordenación"
+#: contrib/auth/models.py:154
+msgid "Personal info"
+msgstr "Información personal"
-#: contrib/admin/templates/admin/change_form.html:53
-msgid "Order:"
-msgstr "Orden:"
+#: contrib/auth/models.py:155
+msgid "Permissions"
+msgstr "Permisos"
-#: contrib/admin/templates/admin/pagination.html:10
-msgid "Show all"
-msgstr "Mostrar todos/as"
+#: contrib/auth/models.py:156
+msgid "Important dates"
+msgstr "Fechas importantes"
-#: contrib/admin/templates/admin/base.html:25
-msgid "Welcome,"
-msgstr "Bienvenido,"
+#: contrib/auth/models.py:157
+msgid "Groups"
+msgstr "Grupos"
-#: contrib/admin/templates/admin/submit_line.html:3
-#: contrib/admin/templates/admin/delete_confirmation.html:9
-msgid "Delete"
-msgstr "Eliminar"
+#: contrib/auth/models.py:316
+msgid "message"
+msgstr "mensaje"
-#: contrib/admin/templates/admin/submit_line.html:4
-msgid "Save as new"
-msgstr "Grabar como nuevo"
+#: contrib/auth/views.py:47
+msgid "Logged out"
+msgstr "Sesión cerrada"
-#: contrib/admin/templates/admin/submit_line.html:5
-msgid "Save and add another"
-msgstr "Grabar y añadir otro"
+#: contrib/comments/models.py:67 contrib/comments/models.py:169
+msgid "object ID"
+msgstr "ID de objeto"
-#: contrib/admin/templates/admin/submit_line.html:6
-msgid "Save and continue editing"
-msgstr "Grabar y continuar editando"
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "encabezado"
-#: contrib/admin/templates/admin/submit_line.html:7
-msgid "Save"
-msgstr "Grabar"
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:170
+msgid "comment"
+msgstr "comentario"
-#: contrib/admin/templates/admin/search_form.html:8
-msgid "Go"
-msgstr "Buscar"
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "calificación 1"
-#: contrib/admin/templates/admin/search_form.html:10
-#, python-format
-msgid "1 result"
-msgid_plural "%(counter)s results"
-msgstr[0] "un resultado"
-msgstr[1] "%(counter)s resultados"
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "calificación 2"
-#: contrib/admin/templates/admin/search_form.html:10
-#, python-format
-msgid "%(full_result_count)s total"
-msgstr "total: %(full_result_count)s"
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "calificación 3"
-#: contrib/admin/templates/admin/filters.html:4
-msgid "Filter"
-msgstr "Filtrar"
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "calificación 4"
-#: contrib/admin/templates/admin/delete_confirmation.html:14
-#, python-format
-msgid ""
-"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
-"related objects, but your account doesn't have permission to delete the "
-"following types of objects:"
-msgstr ""
-"Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación "
-"de objetos relacionados, pero su cuenta no tiene permiso para eliminar los "
-"siguientes tipos de objetos:"
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "calificación 5"
-#: contrib/admin/templates/admin/delete_confirmation.html:21
-#, python-format
-msgid ""
-"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
-"All of the following related items will be deleted:"
-msgstr ""
-"¿Está seguro de que quiere eliminar los %(object_name)s \"%(escaped_object)s"
-"\"? Se eliminarán los siguientes objetos relacionados:"
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "calificación 6"
-#: contrib/admin/templates/admin/delete_confirmation.html:26
-msgid "Yes, I'm sure"
-msgstr "Sí, estoy seguro"
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "calificación 7"
-#: 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 ""
-"Hay algún problema con su instalación de base de datos. Asegúrese de que las "
-"tablas de la misma hayan sido creadas, y asegúrese de que el usuario "
-"apropiado tenga permisos de lectura en la base de datos."
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "calificación 8"
-#: contrib/admin/templates/admin/auth/user/change_password.html:28
-#, python-format
-msgid "Enter a new password for the user <strong>%(username)s</strong>."
-msgstr ""
-"Introduzca una nueva contraseña para el usuario <strong>%(username)s</"
-"strong>."
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "es calificación válida"
-#: contrib/admin/templates/admin/auth/user/change_password.html:34
-#: contrib/admin/templates/admin/auth/user/add_form.html:18
-msgid "Password"
-msgstr "Contraseña:"
+#: contrib/comments/models.py:83 contrib/comments/models.py:172
+msgid "date/time submitted"
+msgstr "fecha/hora de envío"
-#: contrib/admin/templates/admin/auth/user/change_password.html:39
-#: contrib/admin/templates/admin/auth/user/add_form.html:23
-msgid "Password (again)"
-msgstr "Contraseña (de nuevo)"
+#: contrib/comments/models.py:84 contrib/comments/models.py:173
+msgid "is public"
+msgstr "es público"
-#: contrib/admin/templates/admin/auth/user/change_password.html:40
-#: contrib/admin/templates/admin/auth/user/add_form.html:24
-msgid "Enter the same password as above, for verification."
-msgstr "Para verificación, introduzca la misma contraseña que ingresó arriba."
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "se ha eliminado"
-#: contrib/admin/templates/admin/auth/user/add_form.html:6
+#: contrib/comments/models.py:86
msgid ""
-"First, enter a username and password. Then, you'll be able to edit more user "
-"options."
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
msgstr ""
-"Primero, introduzca un nombre de usuario y una contraseña. Luego podrá "
-"configurar opciones adicionales."
-
-#: contrib/admin/templates/admin/auth/user/add_form.html:12
-msgid "Username"
-msgstr "Nombre de usuario:"
-
-#: contrib/admin/templates/widget/file.html:2
-msgid "Currently:"
-msgstr "Actualmente"
+"Marque esta caja si el comentario es inapropiado. En su lugar se mostrará un "
+"mensaje \"Este comentario ha sido eliminado\"."
-#: contrib/admin/templates/widget/file.html:3
-msgid "Change:"
-msgstr "Modificar:"
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "comentarios"
-#: contrib/admin/templates/widget/date_time.html:3
-msgid "Date:"
-msgstr "Fecha:"
+#: contrib/comments/models.py:134 contrib/comments/models.py:213
+msgid "Content object"
+msgstr "Objeto contenido"
-#: contrib/admin/templates/widget/date_time.html:4
-msgid "Time:"
-msgstr "Hora:"
+#: contrib/comments/models.py:162
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
+msgstr ""
+"Enviado por %(user)s el %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
-#: contrib/admin/templates/registration/logged_out.html:8
-msgid "Thanks for spending some quality time with the Web site today."
-msgstr "Gracias por el tiempo que ha dedicado al sitio web hoy."
+#: contrib/comments/models.py:171
+msgid "person's name"
+msgstr "nombre de la persona"
-#: contrib/admin/templates/registration/logged_out.html:10
-msgid "Log in again"
-msgstr "Identificarse de nuevo"
+#: contrib/comments/models.py:174
+msgid "ip address"
+msgstr "dirección ip"
-#: 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"
-msgstr "Cambio de contraseña"
+#: contrib/comments/models.py:176
+msgid "approved by staff"
+msgstr "aprobado por el staff"
-#: contrib/admin/templates/registration/password_change_form.html:12
-msgid ""
-"Please enter your old password, for security's sake, and then enter your new "
-"password twice so we can verify you typed it in correctly."
-msgstr ""
-"Por favor, por razones de seguridad, introduzca su contraseña antigua, y "
-"luego introduzca la nueva contraseña dos veces para verificar que la ha "
-"escrito correctamente."
+#: contrib/comments/models.py:179
+msgid "free comment"
+msgstr "comentario libre"
-#: contrib/admin/templates/registration/password_change_form.html:17
-msgid "Old password:"
-msgstr "Contraseña antigua:"
+#: contrib/comments/models.py:180
+msgid "free comments"
+msgstr "comentarios libres"
-#: contrib/admin/templates/registration/password_change_form.html:19
-msgid "New password:"
-msgstr "Contraseña nueva:"
+#: contrib/comments/models.py:239
+msgid "score"
+msgstr "puntuación"
-#: contrib/admin/templates/registration/password_change_form.html:21
-msgid "Confirm password:"
-msgstr "Confirme contraseña:"
+#: contrib/comments/models.py:240
+msgid "score date"
+msgstr "fecha de la puntuación"
-#: contrib/admin/templates/registration/password_change_form.html:23
-msgid "Change my password"
-msgstr "Cambiar mi contraseña"
+#: contrib/comments/models.py:243
+msgid "karma score"
+msgstr "punto karma"
-#: 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 "Recuperar contraseña"
+#: contrib/comments/models.py:244
+msgid "karma scores"
+msgstr "puntos karma"
-#: contrib/admin/templates/registration/password_reset_done.html:6
-#: contrib/admin/templates/registration/password_reset_done.html:10
-msgid "Password reset successful"
-msgstr "Recuperación de contraseña exitosa"
+#: contrib/comments/models.py:248
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "puntuado %(score)d por %(user)s"
-#: contrib/admin/templates/registration/password_reset_done.html:12
+#: contrib/comments/models.py:264
+#, python-format
msgid ""
-"We've e-mailed a new password to the e-mail address you submitted. You "
-"should be receiving it shortly."
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
msgstr ""
-"Le hemos enviado una nueva contraseña a la dirección que ha suministrado. "
-"Debería recibirla en breve."
+"Este comentario fue marcado por %(user)s:\n"
+"\n"
+"%(text)s"
-#: contrib/admin/templates/registration/password_reset_email.html:2
-msgid "You're receiving this e-mail because you requested a password reset"
-msgstr ""
-"Está recibiendo este mensaje debido a que solicitó recuperar la contraseña"
+#: contrib/comments/models.py:271
+msgid "flag date"
+msgstr "fecha de la marca"
-#: contrib/admin/templates/registration/password_reset_email.html:3
-#, python-format
-msgid "for your user account at %(site_name)s"
-msgstr "de su cuenta de usuario en %(site_name)s."
+#: contrib/comments/models.py:274
+msgid "user flag"
+msgstr "marca de usuario"
-#: contrib/admin/templates/registration/password_reset_email.html:5
+#: contrib/comments/models.py:275
+msgid "user flags"
+msgstr "marcas de usuario"
+
+#: contrib/comments/models.py:279
#, python-format
-msgid "Your new password is: %(new_password)s"
-msgstr "Su nueva contraseña es: %(new_password)s"
+msgid "Flag by %r"
+msgstr "Marca de %r"
-#: contrib/admin/templates/registration/password_reset_email.html:7
-msgid "Feel free to change this password by going to this page:"
-msgstr "Puede cambiarla accediendo a esta página:"
+#: contrib/comments/models.py:284
+msgid "deletion date"
+msgstr "fecha de eliminación"
-#: contrib/admin/templates/registration/password_reset_email.html:11
-msgid "Your username, in case you've forgotten:"
-msgstr "Su nombre de usuario, en caso de haberlo olvidado:"
+#: contrib/comments/models.py:286
+msgid "moderator deletion"
+msgstr "Eliminación por moderador"
-#: contrib/admin/templates/registration/password_reset_email.html:13
-msgid "Thanks for using our site!"
-msgstr "¡Gracias por usar nuestro sitio!"
+#: contrib/comments/models.py:287
+msgid "moderator deletions"
+msgstr "eliminaciones por moderador"
-#: contrib/admin/templates/registration/password_reset_email.html:15
+#: contrib/comments/models.py:291
#, python-format
-msgid "The %(site_name)s team"
-msgstr "El equipo de %(site_name)s"
+msgid "Moderator deletion by %r"
+msgstr "Eliminación del moderador %r"
-#: contrib/admin/templates/registration/password_change_done.html:6
-#: contrib/admin/templates/registration/password_change_done.html:10
-msgid "Password change successful"
-msgstr "Cambio de contraseña exitoso"
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Olvidó su contraseña?"
-#: contrib/admin/templates/registration/password_change_done.html:12
-msgid "Your password was changed."
-msgstr "Su contraseña ha sido cambiada."
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Calificaciones"
-#: 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 ""
-"¿Ha olvidado su contraseña? Introduzca su dirección de correo electrónico, y "
-"crearemos una nueva que le enviaremos por correo."
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Requerido"
-#: contrib/admin/templates/registration/password_reset_form.html:16
-msgid "E-mail address:"
-msgstr "Dirección de correo electrónico:"
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Opcional"
-#: contrib/admin/templates/registration/password_reset_form.html:16
-msgid "Reset my password"
-msgstr "Recuperar mi contraseña"
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Enviar una foto"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-msgid "Bookmarklets"
-msgstr "Bookmarklets"
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Comentario:"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:5
-msgid "Documentation bookmarklets"
-msgstr "Bookmarklets de documentación"
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Previsualizar comentario"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:9
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Su nombre:"
+
+#: contrib/comments/views/comments.py:28
msgid ""
+"This rating is required because you've entered at least one other rating."
+msgstr "Se precisa esta puntuación porque ha introducido al menos otra más."
+
+#: contrib/comments/views/comments.py:112
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
"\n"
-"<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 ""
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
"\n"
-"<p class=\"help\">Para instalar bookmarklets, arrastre el enlace a su barra\n"
-"de favoritos, o pulse con el botón derecho el enlace y añádalo a sus "
-"favoritos.\n"
-"Ahora puede seleccionar el bookmarklet desde cualquier página en el sitio.\n"
-"Tenga en cuenta que algunos de estos bookmarklets precisan que esté viendo\n"
-"el sitio desde un equipo señalado como \"interno\" (hable\n"
-"con su administrador de sistemas si no está seguro de si el suyo lo es).</"
-"p>\n"
-
-#: contrib/admin/templates/admin_doc/bookmarklets.html:19
-msgid "Documentation for this page"
-msgstr "Documentación de esta página"
+"%(text)s"
+msgstr[0] ""
+"Este comentario lo envió un usuario que ha enviado menos de %(count)s "
+"comentario:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Este comentario lo envió un usuario que ha enviado menos de %(count)s "
+"comentarios:\n"
+"\n"
+"%(text)s"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:20
+#: contrib/comments/views/comments.py:117
+#, python-format
msgid ""
-"Jumps you from any page to the documentation for the view that generates "
-"that page."
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
msgstr ""
-"Le lleva desde cualquier página a la documentación de la vista que la genera."
+"Este comentario ha sido enviado por un usuario 'semi-anónimo':\n"
+"\n"
+"%(text)s"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:22
-msgid "Show object ID"
-msgstr "Mostrar ID de objeto"
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
+msgid "Only POSTs are allowed"
+msgstr "Sólo se admiten POSTs"
+
+#: contrib/comments/views/comments.py:194
+#: contrib/comments/views/comments.py:287
+msgid "One or more of the required fields wasn't submitted"
+msgstr "No se proporcionó uno o más de los siguientes campos requeridos"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:23
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr ""
+"Alguien está jugando con el formulario de comentarios (violación de "
+"seguridad)"
+
+#: contrib/comments/views/comments.py:208
+#: contrib/comments/views/comments.py:295
msgid ""
-"Shows the content-type and unique ID for pages that represent a single "
-"object."
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
msgstr ""
-"Muestra el tipo de contenido e ID unívoco de las páginas que representan un "
-"único objeto."
+"El formulario de comentarios tiene un parámetro 'target' no válido (el ID de "
+"objeto era inválido)"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:25
-msgid "Edit this object (current window)"
-msgstr "Editar este objeto (ventana actual)"
+#: contrib/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "El formulario de comentario no proporcionó 'previsualizar' ni 'enviar'"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:26
-msgid "Jumps to the admin page for pages that represent a single object."
-msgstr ""
-"Le lleva a la página de administración de páginas que representan un único "
-"objeto."
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "Los usuarios anónimos no pueden votar"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:28
-msgid "Edit this object (new window)"
-msgstr "Editar este objeto (nueva ventana)"
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "ID de comentario no válido"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:29
-msgid "As above, but opens the admin page in a new window."
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "Ud. no puede votarse a sí mismo"
+
+#: contrib/contenttypes/models.py:37
+msgid "python model class name"
+msgstr "nombre de la clase python del modelo"
+
+#: contrib/contenttypes/models.py:40
+msgid "content type"
+msgstr "tipo de contenido"
+
+#: contrib/contenttypes/models.py:41
+msgid "content types"
+msgstr "tipos de contenido"
+
+#: contrib/flatpages/models.py:8
+msgid ""
+"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr ""
-"Como antes, pero abre la página de administración en una nueva ventana."
+"Ejemplo: '/about/contact/'. Asegúrese de usar barras '/' al principio y al "
+"final."
-#: contrib/admin/templatetags/admin_list.py:254
-msgid "All dates"
-msgstr "Todas las fechas"
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "título"
-#: contrib/localflavor/is_/forms.py:17
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "contenido"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "activar comentarios"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "nombre de plantilla"
+
+#: contrib/flatpages/models.py:13
msgid ""
-"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
msgstr ""
-"Introduzca un número de identificación islandés válido. El formato es XXXXXX-"
-"XXXX."
+"Ejemplo: 'flatpages/contact_page.html'. Si no lo proporciona, el sistema "
+"usará 'flatpages/default.html'."
-#: contrib/localflavor/is_/forms.py:31
-msgid "The Icelandic identification number is not valid."
-msgstr "El número de identificación islandés no es válido."
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "debe estar registrado"
-#: contrib/localflavor/fi/forms.py:14 contrib/localflavor/de/forms.py:16
-#: contrib/localflavor/fr/forms.py:17
-msgid "Enter a zip code in the format XXXXX."
-msgstr "Introduzca un zip code en formato XXXXX."
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "Si está marcado, sólo los usuarios registrados podrán ver la página."
-#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45
-msgid "Enter a valid Finnish social security number."
-msgstr "Introduzca un número de seguridad social finlandés válido."
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "página estática"
-#: contrib/localflavor/br/forms.py:18
-msgid "Enter a zip code in the format XXXXX-XXX."
-msgstr "Introduzca un zip code en formato XXXXX-XXX."
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "páginas estáticas"
-#: contrib/localflavor/br/forms.py:30
-msgid "Phone numbers must be in XX-XXXX-XXXX format."
-msgstr "Los números telefónicos deben respetar el formato XX-XXXX-XXXX."
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "th"
+msgstr "th"
-#: contrib/localflavor/br/forms.py:72
-msgid "This field requires only numbers."
-msgstr "Este campo permite sólo valores numéricos."
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "st"
+msgstr "st"
-#: contrib/localflavor/br/forms.py:74
-msgid "This field requires at most 11 digits or 14 characters."
-msgstr "Este campo requiere como máximo 11 dígitos o 14 caracteres."
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "nd"
+msgstr "nd"
-#: contrib/localflavor/br/forms.py:84
-msgid "Invalid CPF number."
-msgstr "Número CPF inválido."
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "rd"
+msgstr "rd"
-#: contrib/localflavor/br/forms.py:106
-msgid "This field requires at least 14 digits"
-msgstr "Este campo requiere al menos 14 dígitos."
+#: contrib/humanize/templatetags/humanize.py:50
+#, python-format
+msgid "%(value).1f million"
+msgid_plural "%(value).1f million"
+msgstr[0] "%(value).1f millón"
+msgstr[1] "%(value).1f millones"
-#: contrib/localflavor/br/forms.py:116
-msgid "Invalid CNPJ number."
-msgstr "Número CNPJ inválido."
+#: contrib/humanize/templatetags/humanize.py:53
+#, python-format
+msgid "%(value).1f billion"
+msgid_plural "%(value).1f billion"
+msgstr[0] "%(value).1f millardo"
+msgstr[1] "%(value).1f millardos"
-#: contrib/localflavor/it/forms.py:16
-msgid "Enter a valid zip code."
-msgstr "Introduzca un zip code válido."
+#: contrib/humanize/templatetags/humanize.py:56
+#, python-format
+msgid "%(value).1f trillion"
+msgid_plural "%(value).1f trillion"
+msgstr[0] "%(value).1f billón"
+msgstr[1] "%(value).1f billones"
-#: contrib/localflavor/it/forms.py:41
-msgid "Enter a valid Social Security number."
-msgstr "Introduzca un número de Seguridad Social válido."
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "one"
+msgstr "uno"
-#: contrib/localflavor/it/forms.py:68
-msgid "Enter a valid VAT number."
-msgstr "Introduzca un número VAT válido."
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "two"
+msgstr "dos"
-#: contrib/localflavor/de/de_states.py:5
-msgid "Baden-Wuerttemberg"
-msgstr "Baden-Wuerttemberg"
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "three"
+msgstr "tres"
-#: contrib/localflavor/de/de_states.py:6
-msgid "Bavaria"
-msgstr "Bavaria"
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "four"
+msgstr "cuatro"
-#: contrib/localflavor/de/de_states.py:7
-msgid "Berlin"
-msgstr "Berlin"
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "five"
+msgstr "cinco"
-#: contrib/localflavor/de/de_states.py:8
-msgid "Brandenburg"
-msgstr "Brandenburg"
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "six"
+msgstr "seis"
-#: contrib/localflavor/de/de_states.py:9
-msgid "Bremen"
-msgstr "Bremen"
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "seven"
+msgstr "siete"
-#: contrib/localflavor/de/de_states.py:10
-msgid "Hamburg"
-msgstr "Hamburg"
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "eight"
+msgstr "ocho"
-#: contrib/localflavor/de/de_states.py:11
-msgid "Hessen"
-msgstr "Hessen"
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "nine"
+msgstr "nueve"
-#: contrib/localflavor/de/de_states.py:12
-msgid "Mecklenburg-Western Pomerania"
-msgstr "Mecklenburg-Western Pomerania"
+#: contrib/humanize/templatetags/humanize.py:90
+msgid "today"
+msgstr "hoy"
-#: contrib/localflavor/de/de_states.py:13
-msgid "Lower Saxony"
-msgstr "Lower Saxony"
+#: contrib/humanize/templatetags/humanize.py:92
+msgid "tomorrow"
+msgstr "mañana"
-#: contrib/localflavor/de/de_states.py:14
-msgid "North Rhine-Westphalia"
-msgstr "North Rhine-Westphalia"
+#: contrib/humanize/templatetags/humanize.py:94
+msgid "yesterday"
+msgstr "ayer"
-#: contrib/localflavor/de/de_states.py:15
-msgid "Rhineland-Palatinate"
-msgstr "Rhineland-Palatinate"
+#: contrib/localflavor/ar/forms.py:30 contrib/localflavor/ar/forms.py:38
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "Introduzca un código postal en formato NNNN o ANNNNAAA."
-#: contrib/localflavor/de/de_states.py:16
-msgid "Saarland"
-msgstr "Saarland"
+#: 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 "Este campo permite sólo valores numéricos."
-#: contrib/localflavor/de/de_states.py:17
-msgid "Saxony"
-msgstr "Saxony"
+#: contrib/localflavor/ar/forms.py:64
+msgid "This field requires 7 or 8 digits."
+msgstr "Este campo requiere 7 u 8 dígitos."
-#: contrib/localflavor/de/de_states.py:18
-msgid "Saxony-Anhalt"
-msgstr "Saxony-Anhalt"
+#: contrib/localflavor/ar/forms.py:75
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "Introduzca un CUIT válido en formato XX-XXXXXXXX-X o XXXXXXXXXXX."
-#: contrib/localflavor/de/de_states.py:19
-msgid "Schleswig-Holstein"
-msgstr "Schleswig-Holstein"
+#: contrib/localflavor/ar/forms.py:88
+msgid "Invalid CUIT."
+msgstr "CUIT inválido."
-#: contrib/localflavor/de/de_states.py:20
-msgid "Thuringia"
-msgstr "Thuringia"
+#: contrib/localflavor/au/forms.py:18
+msgid "Enter a 4 digit post code."
+msgstr "Introduzca un post code de 4 dígitos."
-#: contrib/localflavor/de/forms.py:60
+#: contrib/localflavor/br/forms.py:23
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Introduzca un zip code en formato XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:35
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Los números telefónicos deben respetar el formato XX-XXXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:68
msgid ""
-"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
-"format."
+"Select a valid brazilian state. That state is not one of the available "
+"states."
msgstr ""
-"Introduzca un número de tarjeta de identidad alemán válido en formato "
-"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+"Seleccione un estado Brasileño válido. Ese estado no es uno de los estados "
+"disponibles."
-#: contrib/localflavor/uk/forms.py:18
-msgid "Enter a postcode. A space is required between the two postcode parts."
-msgstr ""
-"Introduzca un postcode. Se requiere un espacio entre las dos secciones del "
-"mismo."
+#: contrib/localflavor/br/forms.py:105
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "Este campo requiere como máximo 11 dígitos o 14 caracteres."
-#: contrib/localflavor/cl/forms.py:32
-msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
-msgstr "Introduzca un RUT chileno válido. EL formato es XX.XXX.XXX-X."
+#: contrib/localflavor/br/forms.py:115
+msgid "Invalid CPF number."
+msgstr "Número CPF inválido."
-#: contrib/localflavor/cl/forms.py:37
-msgid "Enter valid a Chilean RUT"
-msgstr "Introduzca un RUT chileno válido."
+#: contrib/localflavor/br/forms.py:137
+msgid "This field requires at least 14 digits"
+msgstr "Este campo requiere al menos 14 dígitos."
-#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:14
-msgid "Enter a zip code in the format XXXX."
-msgstr "Introduzca un zip code en formato XXX."
+#: contrib/localflavor/br/forms.py:147
+msgid "Invalid CNPJ number."
+msgstr "Número CNPJ inválido."
-#: contrib/localflavor/ch/forms.py:90
-msgid ""
-"Enter a valid Swiss identity or passport card number in X1234567<0 or "
-"1234567890 format."
-msgstr ""
-"Introduzca un número válido de tarjeta de identidad o pasaporte Suizos en "
-"formato X1234567<0 o 1234567890."
+#: contrib/localflavor/ca/forms.py:19
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "Introduzca un código postal en formato XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:81
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format."
+msgstr "Introduzca un Número de Seguridad Social Canadiense en formato XXX-XXX-XXXX."
#: contrib/localflavor/ch/ch_states.py:5
msgid "Aargau"
@@ -2251,17 +1860,137 @@ msgstr "Zug"
msgid "Zurich"
msgstr "Zurich"
-#: contrib/localflavor/us/forms.py:18
-msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
-msgstr "Introduzca un zip code en el formato XXXXX o XXXXX-XXXX."
+#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:14
+msgid "Enter a zip code in the format XXXX."
+msgstr "Introduzca un zip code en formato XXX."
-#: contrib/localflavor/us/forms.py:51
-msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
-msgstr "Introduzca un Número de Seguridad Social en formato XXX-XX-XXXX."
+#: contrib/localflavor/ch/forms.py:90
+msgid ""
+"Enter a valid Swiss identity or passport card number in X1234567<0 or "
+"1234567890 format."
+msgstr ""
+"Introduzca un número válido de tarjeta de identidad o pasaporte Suizos en "
+"formato X1234567<0 o 1234567890."
-#: contrib/localflavor/au/forms.py:18
-msgid "Enter a 4 digit post code."
-msgstr "Introduzca un post code de 4 dígitos."
+#: contrib/localflavor/cl/forms.py:32
+msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
+msgstr "Introduzca un RUT chileno válido. EL formato es XX.XXX.XXX-X."
+
+#: contrib/localflavor/cl/forms.py:37
+msgid "Enter valid a Chilean RUT"
+msgstr "Introduzca un RUT chileno válido."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr "Baden-Wuerttemberg"
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr "Bavaria"
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr "Berlin"
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr "Brandenburg"
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr "Bremen"
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr "Hamburg"
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr "Hessen"
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr "Mecklenburg-Western Pomerania"
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr "Lower Saxony"
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr "North Rhine-Westphalia"
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr "Rhineland-Palatinate"
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr "Saarland"
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr "Saxony"
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr "Saxony-Anhalt"
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr "Schleswig-Holstein"
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr "Thuringia"
+
+#: 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 "Introduzca un zip code en formato XXXXX."
+
+#: contrib/localflavor/de/forms.py:60
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format."
+msgstr ""
+"Introduzca un número de tarjeta de identidad alemán válido en formato "
+"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45
+msgid "Enter a valid Finnish social security number."
+msgstr "Introduzca un número de seguridad social finlandés válido."
+
+#: contrib/localflavor/in_/forms.py:16
+msgid "Enter a zip code in the format XXXXXXX."
+msgstr "Introduzca un zip code en formato XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid ""
+"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr ""
+"Introduzca un número de identificación islandés válido. El formato es XXXXXX-"
+"XXXX."
+
+#: contrib/localflavor/is_/forms.py:31
+msgid "The Icelandic identification number is not valid."
+msgstr "El número de identificación islandés no es válido."
+
+#: contrib/localflavor/it/forms.py:16
+msgid "Enter a valid zip code."
+msgstr "Introduzca un zip code válido."
+
+#: contrib/localflavor/it/forms.py:41
+msgid "Enter a valid Social Security number."
+msgstr "Introduzca un número de Seguridad Social válido."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "Introduzca un número VAT válido."
+
+#: contrib/localflavor/jp/forms.py:21
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Introduzca un código postal en formato XXXXXX o XXX-XXXX."
#: contrib/localflavor/jp/jp_prefectures.py:4
msgid "Hokkaido"
@@ -2451,165 +2180,526 @@ msgstr "Kagoshima"
msgid "Okinawa"
msgstr "Okinawa"
-#: contrib/localflavor/jp/forms.py:21
-msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
-msgstr "Introduzca un código postal en formato XXXXXX o XXX-XXXX."
+#: contrib/localflavor/nl/forms.py:25
+msgid "Enter a valid postal code"
+msgstr "Introduzca un código postal válido."
+
+#: contrib/localflavor/nl/forms.py:53
+msgid "Enter a valid phone number"
+msgstr "Introduzca un número telefónico válido."
+
+#: contrib/localflavor/nl/forms.py:76
+msgid "Enter a valid SoFi number"
+msgstr "Introduzca un número SoFi válido."
+
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr "Drente"
+
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "Flevolanda"
+
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "Frisia"
+
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "Güeldres"
+
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "Groninga"
+
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "Limburgo"
+
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "Brabante Septentrional"
+
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "Holanda Septentrional"
+
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "Overijssel"
+
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "Utrecht"
+
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "Zelanda"
+
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "Holanda Meridional"
#: contrib/localflavor/no/forms.py:35
msgid "Enter a valid Norwegian social security number."
msgstr "Introduzca un número de seguridad social Noruego válido."
-#: contrib/contenttypes/models.py:37
-msgid "python model class name"
-msgstr "nombre de la clase python del modelo"
+#: contrib/localflavor/pe/forms.py:36
+msgid "This field requires 8 digits."
+msgstr "Este campo requiere 8 dígitos."
-#: contrib/contenttypes/models.py:40
-msgid "content type"
-msgstr "tipo de contenido"
+#: contrib/localflavor/pe/forms.py:59
+msgid "This field requires 11 digits."
+msgstr "Este campo requiere 11 dígitos."
-#: contrib/contenttypes/models.py:41
-msgid "content types"
-msgstr "tipos de contenido"
+#: contrib/localflavor/pl/forms.py:53
+msgid "National Identification Number consists of 11 digits."
+msgstr "Los Números Nacionales de Identificación constan de 11 dígitos."
-#: contrib/flatpages/models.py:8
+#: contrib/localflavor/pl/forms.py:59
+msgid "Wrong checksum for the National Identification Number."
+msgstr "Código de verificación de Número Nacional de Identificación inválido."
+
+#: contrib/localflavor/pl/forms.py:71
msgid ""
-"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
msgstr ""
-"Ejemplo: '/about/contact/'. Asegúrese de usar barras '/' al principio y al "
-"final."
+"Introduzca un campo de número impositivo en formato XXX-XXX-XX-XX o XX-XX-"
+"XXX-XXX."
-#: contrib/flatpages/models.py:9
-msgid "title"
-msgstr "título"
+#: contrib/localflavor/pl/forms.py:82
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "Introduzca un código postal en formato XX-XXX."
-#: contrib/flatpages/models.py:10
-msgid "content"
-msgstr "contenido"
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "Baja Silesia"
-#: contrib/flatpages/models.py:11
-msgid "enable comments"
-msgstr "activar comentarios"
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "Cuyavia y Pomerania"
-#: contrib/flatpages/models.py:12
-msgid "template name"
-msgstr "nombre de plantilla"
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "Lublin"
-#: contrib/flatpages/models.py:13
-msgid ""
-"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
-"will use 'flatpages/default.html'."
-msgstr ""
-"Ejemplo: 'flatpages/contact_page.html'. Si no lo proporciona, el sistema "
-"usará 'flatpages/default.html'."
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "Lubus"
-#: contrib/flatpages/models.py:14
-msgid "registration required"
-msgstr "debe estar registrado"
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "Lodz"
-#: contrib/flatpages/models.py:14
-msgid "If this is checked, only logged-in users will be able to view the page."
-msgstr "Si está marcado, sólo los usuarios registrados podrán ver la página."
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "Pequeña Polonia"
-#: contrib/flatpages/models.py:18
-msgid "flat page"
-msgstr "página estática"
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "Masovia"
-#: contrib/flatpages/models.py:19
-msgid "flat pages"
-msgstr "páginas estáticas"
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "Opole"
-#: contrib/sessions/models.py:68
-msgid "session key"
-msgstr "clave de sesión"
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "Subcarpacia"
-#: contrib/sessions/models.py:69
-msgid "session data"
-msgstr "datos de sesión"
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "Podlaquia"
-#: contrib/sessions/models.py:70
-msgid "expire date"
-msgstr "fecha de caducidad"
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "Pomerania"
-#: contrib/sessions/models.py:74
-msgid "session"
-msgstr "sesión"
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "Silesia"
-#: contrib/sessions/models.py:75
-msgid "sessions"
-msgstr "sesiones"
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "Swietokrzyskie"
-#: contrib/humanize/templatetags/humanize.py:17
-msgid "th"
-msgstr "th"
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "Varmia y Masuria"
-#: contrib/humanize/templatetags/humanize.py:17
-msgid "st"
-msgstr "st"
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "Gran Polonia"
-#: contrib/humanize/templatetags/humanize.py:17
-msgid "nd"
-msgstr "nd"
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "Pomerania Occidental"
-#: contrib/humanize/templatetags/humanize.py:17
-msgid "rd"
-msgstr "rd"
+#: contrib/localflavor/sk/forms.py:32
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "Introduzca un código postal en formato XXXXX o XXX XX."
-#: contrib/humanize/templatetags/humanize.py:47
-#, python-format
-msgid "%(value).1f million"
-msgid_plural "%(value).1f million"
-msgstr[0] "%(value).1f millón"
-msgstr[1] "%(value).1f millones"
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr "Banska Bystrica"
-#: contrib/humanize/templatetags/humanize.py:50
-#, python-format
-msgid "%(value).1f billion"
-msgid_plural "%(value).1f billion"
-msgstr[0] "%(value).1f millardo"
-msgstr[1] "%(value).1f millardos"
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "Banska Stiavnica"
-#: contrib/humanize/templatetags/humanize.py:53
-#, python-format
-msgid "%(value).1f trillion"
-msgid_plural "%(value).1f trillion"
-msgstr[0] "%(value).1f billón"
-msgstr[1] "%(value).1f billones"
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "Bardejov"
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "one"
-msgstr "uno"
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "Banovce nad Bebravou"
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "two"
-msgstr "dos"
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "Brezno"
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "three"
-msgstr "tres"
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "Bratislava I"
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "four"
-msgstr "cuatro"
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "Bratislava II"
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "five"
-msgstr "cinco"
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "Bratislava III"
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "six"
-msgstr "seis"
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "Bratislava IV"
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "seven"
-msgstr "siete"
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "Bratislava V"
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "eight"
-msgstr "ocho"
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "Bytca"
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "nine"
-msgstr "nueve"
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "Cadca"
+
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "Detva"
+
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "Dolny Kubin"
+
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "Dunajska Streda"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "Galanta"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "Gelnica"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "Hlohovec"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "Humenne"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "Ilava"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "Kezmarok"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "Komarno"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "Kosice I"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "Kosice II"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "Kosice III"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "Kosice IV"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "Kosice - okolie"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "Krupina"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "Kysucke Nove Mesto"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "Levice"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "Levoca"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "Liptovsky Mikulas"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "Lucenec"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "Malacky"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "Martin"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "Medzilaborce"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "Michalovce"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "Myjava"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "Namestovo"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "Nitra"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "Nove Mesto nad Vahom"
+
+#: contrib/localflavor/sk/sk_districts.py:49
+msgid "Nove Zamky"
+msgstr "Nove Zamky"
+
+#: contrib/localflavor/sk/sk_districts.py:50
+msgid "Partizanske"
+msgstr "Partizanske"
+
+#: contrib/localflavor/sk/sk_districts.py:51
+msgid "Pezinok"
+msgstr "Pezinok"
+
+#: contrib/localflavor/sk/sk_districts.py:52
+msgid "Piestany"
+msgstr "Piestany"
+
+#: contrib/localflavor/sk/sk_districts.py:53
+msgid "Poltar"
+msgstr "Poltar"
+
+#: contrib/localflavor/sk/sk_districts.py:54
+msgid "Poprad"
+msgstr "Poprad"
+
+#: contrib/localflavor/sk/sk_districts.py:55
+msgid "Povazska Bystrica"
+msgstr "Povazska Bystrica"
+
+#: contrib/localflavor/sk/sk_districts.py:56
+msgid "Presov"
+msgstr "Presov"
+
+#: contrib/localflavor/sk/sk_districts.py:57
+msgid "Prievidza"
+msgstr "Prievidza"
+
+#: contrib/localflavor/sk/sk_districts.py:58
+msgid "Puchov"
+msgstr "Puchov"
+
+#: contrib/localflavor/sk/sk_districts.py:59
+msgid "Revuca"
+msgstr "Revuca"
+
+#: contrib/localflavor/sk/sk_districts.py:60
+msgid "Rimavska Sobota"
+msgstr "Rimavska Sobota"
+
+#: contrib/localflavor/sk/sk_districts.py:61
+msgid "Roznava"
+msgstr "Roznava"
+
+#: contrib/localflavor/sk/sk_districts.py:62
+msgid "Ruzomberok"
+msgstr "Ruzomberok"
+
+#: contrib/localflavor/sk/sk_districts.py:63
+msgid "Sabinov"
+msgstr "Sabinov"
+
+#: contrib/localflavor/sk/sk_districts.py:64
+msgid "Senec"
+msgstr "Senec"
+
+#: contrib/localflavor/sk/sk_districts.py:65
+msgid "Senica"
+msgstr "Senica"
+
+#: contrib/localflavor/sk/sk_districts.py:66
+msgid "Skalica"
+msgstr "Skalica"
+
+#: contrib/localflavor/sk/sk_districts.py:67
+msgid "Snina"
+msgstr "Snina"
+
+#: contrib/localflavor/sk/sk_districts.py:68
+msgid "Sobrance"
+msgstr "Sobrance"
+
+#: contrib/localflavor/sk/sk_districts.py:69
+msgid "Spisska Nova Ves"
+msgstr "Spisska Nova Ves"
+
+#: contrib/localflavor/sk/sk_districts.py:70
+msgid "Stara Lubovna"
+msgstr "Stara Lubovna"
+
+#: contrib/localflavor/sk/sk_districts.py:71
+msgid "Stropkov"
+msgstr "Stropkov"
+
+#: contrib/localflavor/sk/sk_districts.py:72
+msgid "Svidnik"
+msgstr "Svidnik"
+
+#: contrib/localflavor/sk/sk_districts.py:73
+msgid "Sala"
+msgstr "Sala"
+
+#: contrib/localflavor/sk/sk_districts.py:74
+msgid "Topolcany"
+msgstr "Topolcany"
+
+#: contrib/localflavor/sk/sk_districts.py:75
+msgid "Trebisov"
+msgstr "Trebisov"
+
+#: contrib/localflavor/sk/sk_districts.py:76
+msgid "Trencin"
+msgstr "Trencin"
+
+#: contrib/localflavor/sk/sk_districts.py:77
+msgid "Trnava"
+msgstr "Trnava"
+
+#: contrib/localflavor/sk/sk_districts.py:78
+msgid "Turcianske Teplice"
+msgstr "Turcianske Teplice"
+
+#: contrib/localflavor/sk/sk_districts.py:79
+msgid "Tvrdosin"
+msgstr "Tvrdosin"
+
+#: contrib/localflavor/sk/sk_districts.py:80
+msgid "Velky Krtis"
+msgstr "Velky Krtis"
+
+#: contrib/localflavor/sk/sk_districts.py:81
+msgid "Vranov nad Toplou"
+msgstr "Vranov nad Toplou"
+
+#: contrib/localflavor/sk/sk_districts.py:82
+msgid "Zlate Moravce"
+msgstr "Zlate Moravce"
+
+#: contrib/localflavor/sk/sk_districts.py:83
+msgid "Zvolen"
+msgstr "Zvolen"
+
+#: contrib/localflavor/sk/sk_districts.py:84
+msgid "Zarnovica"
+msgstr "Zarnovica"
+
+#: contrib/localflavor/sk/sk_districts.py:85
+msgid "Ziar nad Hronom"
+msgstr "Ziar nad Hronom"
+
+#: contrib/localflavor/sk/sk_districts.py:86
+msgid "Zilina"
+msgstr "Zilina"
+
+#: contrib/localflavor/sk/sk_regions.py:8
+msgid "Banska Bystrica region"
+msgstr "region Banska Bystrica"
+
+#: contrib/localflavor/sk/sk_regions.py:9
+msgid "Bratislava region"
+msgstr "region Bratislava"
+
+#: contrib/localflavor/sk/sk_regions.py:10
+msgid "Kosice region"
+msgstr "region Kosice"
+
+#: contrib/localflavor/sk/sk_regions.py:11
+msgid "Nitra region"
+msgstr "region Nitra"
+
+#: contrib/localflavor/sk/sk_regions.py:12
+msgid "Presov region"
+msgstr "region Presov"
+
+#: contrib/localflavor/sk/sk_regions.py:13
+msgid "Trencin region"
+msgstr "region Trencin"
+
+#: contrib/localflavor/sk/sk_regions.py:14
+msgid "Trnava region"
+msgstr "region Trnava"
+
+#: contrib/localflavor/sk/sk_regions.py:15
+msgid "Zilina region"
+msgstr "region Zilina"
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr ""
+"Introduzca un postcode. Se requiere un espacio entre las dos secciones del "
+"mismo."
+
+#: contrib/localflavor/us/forms.py:18
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Introduzca un zip code en el formato XXXXX o XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Introduzca un Número de Seguridad Social en formato XXX-XX-XXXX."
#: contrib/redirects/models.py:7
msgid "redirect from"
@@ -2643,11 +2733,47 @@ msgstr "redirección"
msgid "redirects"
msgstr "redirecciones"
-#: core/validators.py:71
+#: contrib/sessions/models.py:80
+msgid "session key"
+msgstr "clave de sesión"
+
+#: contrib/sessions/models.py:81
+msgid "session data"
+msgstr "datos de sesión"
+
+#: contrib/sessions/models.py:82
+msgid "expire date"
+msgstr "fecha de caducidad"
+
+#: contrib/sessions/models.py:87
+msgid "session"
+msgstr "sesión"
+
+#: contrib/sessions/models.py:88
+msgid "sessions"
+msgstr "sesiones"
+
+#: contrib/sites/models.py:32
+msgid "domain name"
+msgstr "nombre de dominio"
+
+#: contrib/sites/models.py:33
+msgid "display name"
+msgstr "nombre para visualizar"
+
+#: contrib/sites/models.py:37
+msgid "site"
+msgstr "sitio"
+
+#: contrib/sites/models.py:38
+msgid "sites"
+msgstr "sitios"
+
+#: core/validators.py:72
msgid "This value must contain only letters, numbers and underscores."
msgstr "Este valor debe contener sólo letras, números y guiones bajos."
-#: core/validators.py:75
+#: core/validators.py:76
msgid ""
"This value must contain only letters, numbers, underscores, dashes or "
"slashes."
@@ -2655,69 +2781,83 @@ msgstr ""
"Este valor debe contener sólo letras, números, guiones bajos, guiones o "
"barras (/)"
-#: core/validators.py:79
+#: core/validators.py:80
msgid "This value must contain only letters, numbers, underscores or hyphens."
msgstr ""
"Este valor debe contener sólo letras, números, guiones bajos o guiones."
-#: core/validators.py:83
+#: core/validators.py:84
msgid "Uppercase letters are not allowed here."
msgstr "No se admiten letras mayúsculas."
-#: core/validators.py:87
+#: core/validators.py:88
msgid "Lowercase letters are not allowed here."
msgstr "No se admiten letras minúsculas."
-#: core/validators.py:94
+#: core/validators.py:95
msgid "Enter only digits separated by commas."
msgstr "Introduzca sólo dígitos separados por comas."
-#: core/validators.py:106
+#: core/validators.py:107
msgid "Enter valid e-mail addresses separated by commas."
msgstr "Introduzca direcciones de correo válidas separadas por comas."
-#: core/validators.py:110
+#: core/validators.py:111
msgid "Please enter a valid IP address."
msgstr "Por favor introduzca una dirección IP válida."
-#: core/validators.py:114
+#: core/validators.py:115
msgid "Empty values are not allowed here."
msgstr "No se admiten valores vacíos."
-#: core/validators.py:118
+#: core/validators.py:119
msgid "Non-numeric characters aren't allowed here."
msgstr "No se admiten caracteres no numéricos."
-#: core/validators.py:122
+#: core/validators.py:123
msgid "This value can't be comprised solely of digits."
msgstr "Este valor no puede estar formado sólo por dígitos."
-#: core/validators.py:127 newforms/fields.py:141
+#: core/validators.py:128 newforms/fields.py:149
msgid "Enter a whole number."
msgstr "Introduzca un número entero."
-#: core/validators.py:131
+#: core/validators.py:132
msgid "Only alphabetical characters are allowed here."
msgstr "Sólo se admiten caracteres alfabéticos."
-#: core/validators.py:146
+#: core/validators.py:147
msgid "Year must be 1900 or later."
msgstr "El año debe ser 1900 o posterior."
-#: core/validators.py:150
+#: core/validators.py:151
#, python-format
msgid "Invalid date: %s"
msgstr "Fecha no válida: %s"
-#: core/validators.py:160
+#: core/validators.py:156 db/models/fields/__init__.py:505
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Introduzca una fecha válida en formato AAAA-MM-DD."
+
+#: core/validators.py:161
msgid "Enter a valid time in HH:MM format."
msgstr "Introduzca una hora válida en formato HH:MM."
-#: core/validators.py:169 newforms/fields.py:335
+#: core/validators.py:165 db/models/fields/__init__.py:579
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Introduzca una fecha/hora válida en formato AAAA-MM-DD HH:MM."
+
+#: core/validators.py:170 newforms/fields.py:343
msgid "Enter a valid e-mail address."
msgstr "Introduzca una dirección de correo electrónico válida"
-#: core/validators.py:185
+#: core/validators.py:182 core/validators.py:474 newforms/fields.py:377
+#: oldforms/__init__.py:686
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"No se envió un archivo. Verifique el tipo de codificación en el formulario."
+
+#: core/validators.py:193 newforms/fields.py:405
msgid ""
"Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image."
@@ -2725,28 +2865,28 @@ msgstr ""
"Envíe una imagen válida. El archivo que ha enviado no era una imagen o se "
"trataba de una imagen corrupta."
-#: core/validators.py:192
+#: core/validators.py:200
#, python-format
msgid "The URL %s does not point to a valid image."
msgstr "La URL %s no apunta a una imagen válida."
-#: core/validators.py:196
+#: core/validators.py:204
#, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
msgstr ""
"Los números telefónicos deben respetar el formato XXX-XXX-XXXX. \"%s\" no es "
"válido."
-#: core/validators.py:204
+#: core/validators.py:212
#, python-format
msgid "The URL %s does not point to a valid QuickTime video."
msgstr "La URL %s no apunta a un vídeo QuickTime válido."
-#: core/validators.py:208
+#: core/validators.py:216
msgid "A valid URL is required."
msgstr "Se precisa una URL válida."
-#: core/validators.py:222
+#: core/validators.py:230
#, python-format
msgid ""
"Valid HTML is required. Specific errors are:\n"
@@ -2755,84 +2895,84 @@ msgstr ""
"Se precisa HTML válido. Los errores específicos son:\n"
"%s"
-#: core/validators.py:229
+#: core/validators.py:237
#, python-format
msgid "Badly formed XML: %s"
msgstr "XML mal formado: %s"
-#: core/validators.py:246
+#: core/validators.py:254
#, python-format
msgid "Invalid URL: %s"
msgstr "URL no válida: %s"
-#: core/validators.py:251 core/validators.py:253
+#: core/validators.py:259 core/validators.py:261
#, python-format
msgid "The URL %s is a broken link."
msgstr "La URL %s es un enlace roto."
-#: core/validators.py:259
+#: core/validators.py:267
msgid "Enter a valid U.S. state abbreviation."
msgstr "Introduzca una abreviatura válida de estado de los EE.UU."
-#: core/validators.py:273
+#: 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] "¡Vigila tu boca! Aquí no admitimos la palabra %s."
msgstr[1] "¡Vigila tu boca! Aquí no admitimos las palabras %s."
-#: core/validators.py:280
+#: core/validators.py:288
#, python-format
msgid "This field must match the '%s' field."
msgstr "Este campo debe concordar con el campo '%s'."
-#: core/validators.py:299
+#: core/validators.py:307
msgid "Please enter something for at least one field."
msgstr "Por favor, introduzca algo en al menos un campo."
-#: core/validators.py:308 core/validators.py:319
+#: core/validators.py:316 core/validators.py:327
msgid "Please enter both fields or leave them both empty."
msgstr "Por favor, rellene ambos campos o deje ambos vacíos."
-#: core/validators.py:327
+#: core/validators.py:335
#, python-format
msgid "This field must be given if %(field)s is %(value)s"
msgstr "Se debe proporcionar este campo si %(field)s es %(value)s"
-#: core/validators.py:340
+#: core/validators.py:348
#, python-format
msgid "This field must be given if %(field)s is not %(value)s"
msgstr "Se debe proporcionar este campo si %(field)s no es %(value)s"
-#: core/validators.py:359
+#: core/validators.py:367
msgid "Duplicate values are not allowed."
msgstr "No se admiten valores duplicados."
-#: core/validators.py:374
+#: core/validators.py:382
#, python-format
msgid "This value must be between %(lower)s and %(upper)s."
msgstr "Este valor debe estar entre %(lower)s y %(upper)s."
-#: core/validators.py:376
+#: core/validators.py:384
#, python-format
msgid "This value must be at least %s."
msgstr "Este valor debe ser al menos %s."
-#: core/validators.py:378
+#: core/validators.py:386
#, python-format
msgid "This value must be no more than %s."
msgstr "Este valor debe ser no mayor que %s."
-#: core/validators.py:414
+#: core/validators.py:427
#, python-format
msgid "This value must be a power of %s."
msgstr "Este valor debe ser una potencia de %s."
-#: core/validators.py:424
+#: core/validators.py:437
msgid "Please enter a valid decimal number."
msgstr "Por favor, introduzca un número decimal válido."
-#: core/validators.py:431
+#: core/validators.py:444
#, python-format
msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural ""
@@ -2844,7 +2984,7 @@ msgstr[1] ""
"Por favor, introduzca un número decimal válido con un maximo de %s dígitos "
"en total."
-#: core/validators.py:434
+#: core/validators.py:447
#, python-format
msgid ""
"Please enter a valid decimal number with a whole part of at most %s digit."
@@ -2857,7 +2997,7 @@ msgstr[1] ""
"Por favor, introduzca un número decimal válido con un máximo de %s dígitos "
"enteros."
-#: core/validators.py:437
+#: core/validators.py:450
#, python-format
msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural ""
@@ -2869,36 +3009,36 @@ msgstr[1] ""
"Por favor, introduzca un número decimal válido con un máximo de %s "
"posiciones decimales."
-#: core/validators.py:445
+#: core/validators.py:458
msgid "Please enter a valid floating point number."
msgstr "Por favor introduzca un número de punto flotante válido."
-#: core/validators.py:454
+#: core/validators.py:467
#, python-format
msgid "Make sure your uploaded file is at least %s bytes big."
msgstr ""
"Asegúrese de que el archivo que envía es de un tamaño mínimo de %s bytes."
-#: core/validators.py:455
+#: core/validators.py:468
#, python-format
msgid "Make sure your uploaded file is at most %s bytes big."
msgstr ""
"Asegúrese de que el archivo que envía es de un tamaño máximo de %s bytes."
-#: core/validators.py:472
+#: core/validators.py:485
msgid "The format for this field is wrong."
msgstr "El formato de este campo es incorrecto."
-#: core/validators.py:487
+#: core/validators.py:500
msgid "This field is invalid."
msgstr "Este campo no es válido."
-#: core/validators.py:523
+#: core/validators.py:536
#, python-format
msgid "Could not retrieve anything from %s."
msgstr "No se pudo obtener nada de %s."
-#: core/validators.py:526
+#: core/validators.py:539
#, python-format
msgid ""
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
@@ -2906,7 +3046,7 @@ msgstr ""
"La URL %(url)s devolvió la cabecera Content-Type '%(contenttype)s', que no "
"es válida."
-#: core/validators.py:559
+#: core/validators.py:572
#, python-format
msgid ""
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
@@ -2915,7 +3055,7 @@ msgstr ""
"Por favor, cierre la etiqueta %(tag)s de la línea %(line)s. (La línea "
"empieza con \"%(start)s\".)"
-#: core/validators.py:563
+#: core/validators.py:576
#, python-format
msgid ""
"Some text starting on line %(line)s is not allowed in that context. (Line "
@@ -2924,7 +3064,7 @@ msgstr ""
"Parte del texto que comienza en la línea %(line)s no está permitido en ese "
"contexto. (La línea empieza con \"%(start)s\".)"
-#: core/validators.py:568
+#: core/validators.py:581
#, python-format
msgid ""
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
@@ -2933,7 +3073,7 @@ msgstr ""
"El \"%(attr)s\" de la línea %(line)s no es un atributo válido. (La línea "
"empieza con \"%(start)s\".)"
-#: core/validators.py:573
+#: core/validators.py:586
#, python-format
msgid ""
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
@@ -2942,7 +3082,7 @@ msgstr ""
"La \"<%(tag)s>\" de la línea %(line)s no es una etiqueta válida. (La línea "
"empieza con \"%(start)s\".)"
-#: core/validators.py:577
+#: core/validators.py:590
#, python-format
msgid ""
"A tag on line %(line)s is missing one or more required attributes. (Line "
@@ -2951,7 +3091,7 @@ msgstr ""
"A una etiqueta de la línea %(line)s le faltan uno o más atributos "
"requeridos. (La línea empieza con \"%(start)s\".)"
-#: core/validators.py:582
+#: core/validators.py:595
#, python-format
msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
@@ -2960,111 +3100,517 @@ msgstr ""
"El atributo \"%(attr)s\" de la línea %(line)s tiene un valor que no es "
"válido. (La línea empieza con \"%(start)s\".)"
-#: newforms/fields.py:116
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "Ya existe un(a) %(object)s con este/a %(type)s para %(field)s."
+
+#: db/models/fields/__init__.py:52
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "Ya existe %(optname)s con este %(fieldname)s."
+
+#: db/models/fields/__init__.py:159 db/models/fields/__init__.py:316
+#: db/models/fields/__init__.py:731 db/models/fields/__init__.py:742
+#: newforms/fields.py:93 newforms/fields.py:513 newforms/fields.py:589
+#: newforms/fields.py:600 newforms/models.py:193 oldforms/__init__.py:373
+msgid "This field is required."
+msgstr "Este campo es obligatorio."
+
+#: db/models/fields/__init__.py:414
+msgid "This value must be an integer."
+msgstr "Este valor debe ser un número entero."
+
+#: db/models/fields/__init__.py:450
+msgid "This value must be either True or False."
+msgstr "Este valor debe ser True o False."
+
+#: db/models/fields/__init__.py:471
+msgid "This field cannot be null."
+msgstr "Este campo no puede ser nulo."
+
+#: db/models/fields/__init__.py:640
+msgid "This value must be a decimal number."
+msgstr "Este valor debe ser un número decimal."
+
+#: db/models/fields/__init__.py:751
+msgid "Enter a valid filename."
+msgstr "Introduzca un nombre de archivo válido."
+
+#: db/models/fields/__init__.py:900
+msgid "This value must be either None, True or False."
+msgstr "Este valor debe ser None, True o False."
+
+#: db/models/fields/related.py:55
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Por favor, introduzca un %s válido."
+
+#: db/models/fields/related.py:658
+msgid "Separate multiple IDs with commas."
+msgstr "Separe múltiples identificadores con comas."
+
+#: db/models/fields/related.py:660
+msgid ""
+"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr ""
+"Mantenga presionada \"Control\" (\"Command\" en una Mac) para seleccionar "
+"más de uno."
+
+#: 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] ""
+"Por favor, introduzca IDs de %(self)s válidos. El valor %(value)r no es "
+"válido."
+msgstr[1] ""
+"Por favor, introduzca IDs de %(self)s válidos. Los valores %(value)r no son "
+"válidos."
+
+#: newforms/fields.py:123
#, python-format
msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
-msgstr "Asegúrese de que este valor tenga como máximo %(max)d caracteres (tiene %(length)d)."
+msgstr ""
+"Asegúrese de que este valor tenga como máximo %(max)d caracteres (tiene %"
+"(length)d)."
-#: newforms/fields.py:118
+#: newforms/fields.py:125
#, python-format
msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
-msgstr "Asegúrese de que este valor tenga al menos %(min)d caracteres (tiene %(length)d)."
+msgstr ""
+"Asegúrese de que este valor tenga al menos %(min)d caracteres (tiene %"
+"(length)d)."
-#: newforms/fields.py:143 newforms/fields.py:166 newforms/fields.py:196
+#: newforms/fields.py:151 newforms/fields.py:174 newforms/fields.py:204
#, python-format
msgid "Ensure this value is less than or equal to %s."
msgstr "Asegúrese de que este valor sea menor o igual a %s."
-#: newforms/fields.py:145 newforms/fields.py:168 newforms/fields.py:198
+#: newforms/fields.py:153 newforms/fields.py:176 newforms/fields.py:206
#, python-format
msgid "Ensure this value is greater than or equal to %s."
msgstr "Asegúrese de que este valor sea mayor o igual a %s."
-#: newforms/fields.py:164 newforms/fields.py:191
+#: newforms/fields.py:172 newforms/fields.py:199
msgid "Enter a number."
msgstr "Introduzca un número."
-#: newforms/fields.py:200
+#: newforms/fields.py:208
#, python-format
msgid "Ensure that there are no more than %s digits in total."
msgstr "Asegúrese de que no existan en total mas de %s dígitos."
-#: newforms/fields.py:202
+#: newforms/fields.py:210
#, python-format
msgid "Ensure that there are no more than %s decimal places."
msgstr "Asegúrese de que no existan mas de %s lugares decimales."
-#: newforms/fields.py:204
+#: newforms/fields.py:212
#, python-format
msgid "Ensure that there are no more than %s digits before the decimal point."
msgstr "Asegúrese de que no existan mas de %s dígitos antes del punto decimal."
-#: newforms/fields.py:237 newforms/fields.py:560
+#: newforms/fields.py:245 newforms/fields.py:633
msgid "Enter a valid date."
msgstr "Introduzca una fecha válida."
-#: newforms/fields.py:264 newforms/fields.py:562
+#: newforms/fields.py:272 newforms/fields.py:635
msgid "Enter a valid time."
msgstr "Introduzca una hora válida."
-#: newforms/fields.py:300
+#: newforms/fields.py:308
msgid "Enter a valid date/time."
msgstr "Introduzca una fecha/hora válida."
-#: newforms/fields.py:313
+#: newforms/fields.py:321
msgid "Enter a valid value."
msgstr "Introduzca un valor válido."
-#: newforms/fields.py:353 newforms/fields.py:375
+#: newforms/fields.py:379
+msgid "No file was submitted."
+msgstr "No se envió ningún archivo."
+
+#: newforms/fields.py:381 oldforms/__init__.py:688
+msgid "The submitted file is empty."
+msgstr "El archivo enviado está vacío."
+
+#: newforms/fields.py:419 newforms/fields.py:444
msgid "Enter a valid URL."
msgstr "Introduzca una URL válida."
-#: newforms/fields.py:377
+#: newforms/fields.py:446
msgid "This URL appears to be a broken link."
msgstr "La URL parece ser un enlace roto."
-#: newforms/fields.py:428 newforms/models.py:174
+#: newforms/fields.py:501 newforms/models.py:180
msgid "Select a valid choice. That choice is not one of the available choices."
msgstr ""
"Seleccione una opción válida. Esa opción no es una de las opciones "
"disponibles."
-#: newforms/fields.py:444 newforms/fields.py:520 newforms/models.py:191
+#: newforms/fields.py:517 newforms/fields.py:593 newforms/models.py:197
msgid "Enter a list of values."
msgstr "Introduzca una lista de valores."
-#: newforms/fields.py:450 newforms/models.py:197
+#: newforms/fields.py:523 newforms/models.py:203
#, python-format
msgid "Select a valid choice. %s is not one of the available choices."
msgstr ""
"Seleccione una opción válida. %s no es una de las opciones disponibles."
-#: template/defaultfilters.py:485
+#: newforms/fields.py:644
+msgid "Enter a valid IPv4 address."
+msgstr "Introduzca una dirección IPv4 válida"
+
+#: oldforms/__init__.py:408
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Asegúrese de que su texto tiene menos de %s caracter."
+msgstr[1] "Asegúrese de que su texto tiene menos de %s caracteres."
+
+#: oldforms/__init__.py:413
+msgid "Line breaks are not allowed here."
+msgstr "No se permiten saltos de línea."
+
+#: oldforms/__init__.py:511 oldforms/__init__.py:585 oldforms/__init__.py:624
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Seleccione una opción válida; '%(data)s' no está en %(choices)s."
+
+#: oldforms/__init__.py:744
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Introduzca un número entero entre -32.768 y 32.767."
+
+#: oldforms/__init__.py:754
+msgid "Enter a positive number."
+msgstr "Introduzca un número positivo."
+
+#: oldforms/__init__.py:764
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Introduzca un número entero entre 0 y 32.767."
+
+#: template/defaultfilters.py:541
msgid "yes,no,maybe"
msgstr "si,no,talvez"
-#: template/defaultfilters.py:514
+#: template/defaultfilters.py:570
#, python-format
msgid "%(size)d byte"
msgid_plural "%(size)d bytes"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
-#: template/defaultfilters.py:516
+#: template/defaultfilters.py:572
#, python-format
msgid "%.1f KB"
msgstr "%.1f KB"
-#: template/defaultfilters.py:518
+#: template/defaultfilters.py:574
#, python-format
msgid "%.1f MB"
msgstr "%.1f MB"
-#: template/defaultfilters.py:519
+#: template/defaultfilters.py:575
#, python-format
msgid "%.1f GB"
msgstr "%.1f GB"
+#: utils/dateformat.py:41
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:42
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:47
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:48
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:97
+msgid "midnight"
+msgstr "medianoche"
+
+#: utils/dateformat.py:99
+msgid "noon"
+msgstr "mediodía"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "Lunes"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "Martes"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "Miércoles"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "Jueves"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "Viernes"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "Sábado"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "Domingo"
+
+#: utils/dates.py:10
+msgid "Mon"
+msgstr "Lun"
+
+#: utils/dates.py:10
+msgid "Tue"
+msgstr "Mar"
+
+#: utils/dates.py:10
+msgid "Wed"
+msgstr "Mie"
+
+#: utils/dates.py:10
+msgid "Thu"
+msgstr "Jue"
+
+#: utils/dates.py:10
+msgid "Fri"
+msgstr "Vie"
+
+#: utils/dates.py:11
+msgid "Sat"
+msgstr "Sab"
+
+#: utils/dates.py:11
+msgid "Sun"
+msgstr "Dom"
+
+#: utils/dates.py:18
+msgid "January"
+msgstr "Enero"
+
+#: utils/dates.py:18
+msgid "February"
+msgstr "Febrero"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "March"
+msgstr "Marzo"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "April"
+msgstr "Abril"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "May"
+msgstr "Mayo"
+
+#: utils/dates.py:18 utils/dates.py:31
+msgid "June"
+msgstr "Junio"
+
+#: utils/dates.py:19 utils/dates.py:31
+msgid "July"
+msgstr "Julio"
+
+#: utils/dates.py:19
+msgid "August"
+msgstr "Agosto"
+
+#: utils/dates.py:19
+msgid "September"
+msgstr "Setiembre"
+
+#: utils/dates.py:19
+msgid "October"
+msgstr "Octubre"
+
+#: utils/dates.py:19
+msgid "November"
+msgstr "Noviembre"
+
+#: utils/dates.py:20
+msgid "December"
+msgstr "Diciembre"
+
+#: utils/dates.py:23
+msgid "jan"
+msgstr "ene"
+
+#: utils/dates.py:23
+msgid "feb"
+msgstr "feb"
+
+#: utils/dates.py:23
+msgid "mar"
+msgstr "mar"
+
+#: utils/dates.py:23
+msgid "apr"
+msgstr "abr"
+
+#: utils/dates.py:23
+msgid "may"
+msgstr "may"
+
+#: utils/dates.py:23
+msgid "jun"
+msgstr "jun"
+
+#: utils/dates.py:24
+msgid "jul"
+msgstr "jul"
+
+#: utils/dates.py:24
+msgid "aug"
+msgstr "ago"
+
+#: utils/dates.py:24
+msgid "sep"
+msgstr "set"
+
+#: utils/dates.py:24
+msgid "oct"
+msgstr "oct"
+
+#: utils/dates.py:24
+msgid "nov"
+msgstr "nov"
+
+#: utils/dates.py:24
+msgid "dec"
+msgstr "dic"
+
+#: utils/dates.py:31
+msgid "Jan."
+msgstr "Enero"
+
+#: utils/dates.py:31
+msgid "Feb."
+msgstr "Feb."
+
+#: utils/dates.py:32
+msgid "Aug."
+msgstr "Ago."
+
+#: utils/dates.py:32
+msgid "Sept."
+msgstr "Set."
+
+#: utils/dates.py:32
+msgid "Oct."
+msgstr "Oct."
+
+#: utils/dates.py:32
+msgid "Nov."
+msgstr "Nov."
+
+#: utils/dates.py:32
+msgid "Dec."
+msgstr "Dic."
+
+#: utils/text.py:127
+msgid "or"
+msgstr "o"
+
+#: utils/timesince.py:21
+msgid "year"
+msgid_plural "years"
+msgstr[0] "año"
+msgstr[1] "años"
+
+#: utils/timesince.py:22
+msgid "month"
+msgid_plural "months"
+msgstr[0] "mes"
+msgstr[1] "meses"
+
+#: utils/timesince.py:23
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "semana"
+msgstr[1] "semanas"
+
+#: utils/timesince.py:24
+msgid "day"
+msgid_plural "days"
+msgstr[0] "día"
+msgstr[1] "días"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "hora"
+msgstr[1] "horas"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "minuto"
+msgstr[1] "minutos"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "minutos"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:391
+msgid "DATE_FORMAT"
+msgstr "j N Y"
+
+#: utils/translation/trans_real.py:392
+msgid "DATETIME_FORMAT"
+msgstr "j N Y P"
+
+#: utils/translation/trans_real.py:393
+msgid "TIME_FORMAT"
+msgstr "P"
+
+#: utils/translation/trans_real.py:409
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:410
+msgid "MONTH_DAY_FORMAT"
+msgstr "j \\de F"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "Se creó con éxito %(verbose_name)s."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "Se actualizó con éxito %(verbose_name)s."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "Se eliminó %(verbose_name)s."
+
#~ msgid "%d milliseconds"
#~ msgstr "%d milisegundos"
diff --git a/django/conf/locale/es_AR/LC_MESSAGES/djangojs.mo b/django/conf/locale/es_AR/LC_MESSAGES/djangojs.mo
index b055405fbf..32035fae25 100644
--- a/django/conf/locale/es_AR/LC_MESSAGES/djangojs.mo
+++ b/django/conf/locale/es_AR/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/django/conf/locale/es_AR/LC_MESSAGES/djangojs.po b/django/conf/locale/es_AR/LC_MESSAGES/djangojs.po
index 4c81e7e3f1..3a671b7439 100644
--- a/django/conf/locale/es_AR/LC_MESSAGES/djangojs.po
+++ b/django/conf/locale/es_AR/LC_MESSAGES/djangojs.po
@@ -6,12 +6,12 @@ msgid ""
msgstr ""
"Project-Id-Version: Django Javascript 1.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-07-14 13:45-0300\n"
+"POT-Creation-Date: 2007-10-06 14:18-0300\n"
"PO-Revision-Date: 2007-07-14 14:36-0300\n"
"Last-Translator: Ramiro Morales <rm0@gmx.net>\n"
"Language-Team: Django-I18N <django-i18n@googlegroups.com>\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
@@ -44,8 +44,8 @@ msgstr "Seleccione los items a agregar y haga click en "
msgid "Clear all"
msgstr "Eliminar todos"
-#: contrib/admin/media/js/dateparse.js:32
#: 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"
@@ -53,14 +53,14 @@ msgstr ""
"Enero Febrero Marzo Abril Mayo Junio Julio Agosto Setiembre Octubre "
"Noviembre Diciembre"
-#: contrib/admin/media/js/dateparse.js:33
-msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
-msgstr "Domingo Lunes Martes Miércoles Jueves Viernes Sábado"
-
#: contrib/admin/media/js/calendar.js:25
msgid "S M T W T F S"
msgstr "D L M M J V S"
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Domingo Lunes Martes Miércoles Jueves Viernes Sábado"
+
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
msgid "Show"
diff --git a/django/conf/locale/he/LC_MESSAGES/django.mo b/django/conf/locale/he/LC_MESSAGES/django.mo
index a0cb5fa62a..49ea931fef 100644
--- a/django/conf/locale/he/LC_MESSAGES/django.mo
+++ b/django/conf/locale/he/LC_MESSAGES/django.mo
Binary files differ
diff --git a/django/conf/locale/he/LC_MESSAGES/django.po b/django/conf/locale/he/LC_MESSAGES/django.po
index 3ea69510c8..c0646a5518 100644
--- a/django/conf/locale/he/LC_MESSAGES/django.po
+++ b/django/conf/locale/he/LC_MESSAGES/django.po
@@ -8,1405 +8,756 @@ msgid ""
msgstr ""
"Project-Id-Version: Django 0.95\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-05-04 19:38+0300\n"
-"PO-Revision-Date: 2007-05-06 12:43+0300\n"
-"Last-Translator: meir <(null)>\n"
-"Language-Team: English <en@li.org>\n"
+"POT-Creation-Date: 2007-10-05 18:10+0200\n"
+"PO-Revision-Date: 2007-10-07 01:31+0200\n"
+"Last-Translator: Meir Kriheli <meir@mksoft.co.il>\n"
+"Language-Team: Hebrew <he@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit"
-#: newforms/models.py:165 newforms/fields.py:364
-msgid "Select a valid choice. That choice is not one of the available choices."
-msgstr "יש לבחור אפשרות חוקית; '%(data)s' אינו בין %(choices)s."
-
-#: newforms/models.py:178 newforms/fields.py:80 newforms/fields.py:376
-#: newforms/fields.py:452 newforms/fields.py:463
-#: db/models/fields/__init__.py:117 db/models/fields/__init__.py:274
-#: db/models/fields/__init__.py:612 db/models/fields/__init__.py:623
-#: oldforms/__init__.py:357
-msgid "This field is required."
-msgstr "יש להזין תוכן בשדה זה."
-
-#: newforms/models.py:182 newforms/fields.py:380 newforms/fields.py:456
-msgid "Enter a list of values."
-msgstr "יש להזין רשימת ערכים"
-
-#: newforms/models.py:188 newforms/fields.py:389
-#, python-format
-msgid "Select a valid choice. %s is not one of the available choices."
-msgstr "יש לבחור אפשרות חוקית. %s אינו בין האפשרויות הזמינות."
-
-#: newforms/widgets.py:180 oldforms/__init__.py:577
-#: contrib/admin/filterspecs.py:150
-msgid "Unknown"
-msgstr "לא ידוע"
-
-#: newforms/widgets.py:180 oldforms/__init__.py:577
-#: contrib/admin/filterspecs.py:143
-msgid "Yes"
-msgstr "כן"
-
-#: newforms/widgets.py:180 oldforms/__init__.py:577
-#: contrib/admin/filterspecs.py:143
-msgid "No"
-msgstr "לא"
-
-#: newforms/fields.py:103 newforms/fields.py:256
-#, python-format
-msgid "Ensure this value has at most %d characters."
-msgstr "נא לוודא שהטקסט שלך מכיל %d תווים לכל היותר."
-
-#: newforms/fields.py:105 newforms/fields.py:258
-#, python-format
-msgid "Ensure this value has at least %d characters."
-msgstr "נא לוודא שערך זה מכיל לפחות %d תווים"
-
-#: newforms/fields.py:128 core/validators.py:120
-msgid "Enter a whole number."
-msgstr "נא להזין מספר שלם."
-
-#: newforms/fields.py:130
-#, python-format
-msgid "Ensure this value is less than or equal to %s."
-msgstr "יש לוודא שערך זה פחות מ או שווה ל %s."
-
-#: newforms/fields.py:132
-#, python-format
-msgid "Ensure this value is greater than or equal to %s."
-msgstr "יש לוודא שהערך גדול מ או שווה ל %s."
-
-#: newforms/fields.py:165
-msgid "Enter a valid date."
-msgstr "יש להזין תאריך חוקי."
-
-#: newforms/fields.py:192
-msgid "Enter a valid time."
-msgstr "יש להזין שעה חוקית."
-
-#: newforms/fields.py:228
-msgid "Enter a valid date/time."
-msgstr "יש להזין תאריך ושעה חוקיים."
-
-#: newforms/fields.py:242
-msgid "Enter a valid value."
-msgstr "יש להזין ערך חוקי."
-
-#: newforms/fields.py:271 core/validators.py:162
-msgid "Enter a valid e-mail address."
-msgstr "יש להזין כתובת דוא\"ל חוקית."
-
-#: newforms/fields.py:289 newforms/fields.py:311
-msgid "Enter a valid URL."
-msgstr "יש להזין URL חוקי."
-
-#: newforms/fields.py:313
-msgid "This URL appears to be a broken link."
-msgstr "ה-URL‏ הזה כנראה מכיל קישור שבור."
-
-#: db/models/manipulators.py:307
-#, python-format
-msgid "%(object)s with this %(type)s already exists for the given %(field)s."
-msgstr "%(object)s עם %(type)s קיים כבר עבור %(field)s נתון."
-
-#: db/models/manipulators.py:308 contrib/admin/views/main.py:335
-#: contrib/admin/views/main.py:337 contrib/admin/views/main.py:339
-msgid "and"
-msgstr "ו"
-
-#: db/models/fields/related.py:53
-#, python-format
-msgid "Please enter a valid %s."
-msgstr "יש להזין %s חוקי."
-
-#: 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 "החזק את \"Control\", או \"Command\" על מק, לחוץ כדי לבחור יותר מאחד."
-
-#: db/models/fields/related.py:691
-#, python-format
-msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
-"Please enter valid %(self)s IDs. The values %(value)r are invalid."
-msgstr "נא להזין זיהוי %(self)s חוקי. הערך %(value)r אינו חוקי."
-
-#: db/models/fields/__init__.py:42
-#, python-format
-msgid "%(optname)s with this %(fieldname)s already exists."
-msgstr "%(optname)s·עם·%(fieldname)s·זה קיימת כבר."
-
-#: db/models/fields/__init__.py:369
-msgid "This value must be an integer."
-msgstr "ערך זה חייב להיות מספר שלם."
-
-#: db/models/fields/__init__.py:404
-msgid "This value must be either True or False."
-msgstr "ערך זה חייב להיות אמת או שקר."
-
-#: db/models/fields/__init__.py:425
-msgid "This field cannot be null."
-msgstr "שדה זה אינו יכול להכיל null."
-
-#: db/models/fields/__init__.py:459 core/validators.py:148
-msgid "Enter a valid date in YYYY-MM-DD format."
-msgstr "יש להזין תאריך במבנה YYYY-MM-DD."
-
-#: db/models/fields/__init__.py:528 core/validators.py:157
-msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
-msgstr "יש להזין תאריך ושעה במבנה YYYY-MM-DD HH:MM."
-
-#: db/models/fields/__init__.py:632
-msgid "Enter a valid filename."
-msgstr "יש להזין שם קובץ חוקי."
-
-#: db/models/fields/__init__.py:753
-msgid "This value must be either None, True or False."
-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:14
-msgid "January"
-msgstr "ינואר"
-
-#: utils/dates.py:14
-msgid "February"
-msgstr "פברואר"
-
-#: utils/dates.py:14 utils/dates.py:27
-msgid "March"
-msgstr "מרס"
-
-#: utils/dates.py:14 utils/dates.py:27
-msgid "April"
-msgstr "אפריל"
-
-#: utils/dates.py:14 utils/dates.py:27
-msgid "May"
-msgstr "מאי"
-
-#: utils/dates.py:14 utils/dates.py:27
-msgid "June"
-msgstr "יוני"
-
-#: utils/dates.py:15 utils/dates.py:27
-msgid "July"
-msgstr "יולי"
-
-#: utils/dates.py:15
-msgid "August"
-msgstr "אוגוסט"
-
-#: utils/dates.py:15
-msgid "September"
-msgstr "ספטמבר"
-
-#: utils/dates.py:15
-msgid "October"
-msgstr "אוקטובר"
-
-#: utils/dates.py:15
-msgid "November"
-msgstr "נובמבר"
-
-#: utils/dates.py:16
-msgid "December"
-msgstr "דצמבר"
-
-#: utils/dates.py:19
-msgid "jan"
-msgstr "ינו"
-
-#: utils/dates.py:19
-msgid "feb"
-msgstr "פבר"
-
-#: utils/dates.py:19
-msgid "mar"
-msgstr "מרס"
-
-#: utils/dates.py:19
-msgid "apr"
-msgstr "אפר"
-
-#: utils/dates.py:19
-msgid "may"
-msgstr "מאי"
-
-#: utils/dates.py:19
-msgid "jun"
-msgstr "יונ"
-
-#: utils/dates.py:20
-msgid "jul"
-msgstr "יול"
-
-#: utils/dates.py:20
-msgid "aug"
-msgstr "אוג"
-
-#: utils/dates.py:20
-msgid "sep"
-msgstr "ספט"
-
-#: utils/dates.py:20
-msgid "oct"
-msgstr "אוק"
-
-#: utils/dates.py:20
-msgid "nov"
-msgstr "נוב"
-
-#: utils/dates.py:20
-msgid "dec"
-msgstr "דצמ"
-
-#: utils/dates.py:27
-msgid "Jan."
-msgstr "ינו'"
-
-#: utils/dates.py:27
-msgid "Feb."
-msgstr "פבר'"
-
-#: utils/dates.py:28
-msgid "Aug."
-msgstr "אוג'"
-
-#: utils/dates.py:28
-msgid "Sept."
-msgstr "ספט'"
-
-#: utils/dates.py:28
-msgid "Oct."
-msgstr "אוק'"
-
-#: utils/dates.py:28
-msgid "Nov."
-msgstr "נוב'"
-
-#: utils/dates.py:28
-msgid "Dec."
-msgstr "דצמ'"
-
-#: utils/timesince.py:12
-msgid "year"
-msgstr "שנה"
-
-#: utils/timesince.py:13
-msgid "month"
-msgstr "חודש"
-
-#: utils/timesince.py:14
-msgid "week"
-msgstr "שבוע"
-
-#: utils/timesince.py:15
-msgid "day"
-msgstr "יום"
-
-#: utils/timesince.py:16
-msgid "hour"
-msgstr "שעה"
-
-#: utils/timesince.py:17
-msgid "minute"
-msgstr "דקה"
-
-#: utils/timesince.py:40
-#, python-format
-msgid "%d milliseconds"
-msgstr "%d מילישניות"
-
-#: utils/timesince.py:41
-#, python-format
-msgid "%(number)d %(type)s"
-msgstr "%(number)d %(type)s"
-
-#: utils/timesince.py:47
-#, python-format
-msgid ", %(number)d %(type)s"
-msgstr ", %(number)d %(type)s"
-
-#: utils/dateformat.py:40
-msgid "p.m."
-msgstr "אחר הצהריים"
-
-#: utils/dateformat.py:41
-msgid "a.m."
-msgstr "בבוקר"
-
-#: utils/dateformat.py:46
-msgid "PM"
-msgstr "אחר הצהריים"
-
-#: utils/dateformat.py:47
-msgid "AM"
-msgstr "בבוקר"
-
-#: utils/dateformat.py:95
-msgid "midnight"
-msgstr "חצות"
-
-#: utils/dateformat.py:97
-msgid "noon"
-msgstr "צהריים"
-
-#: utils/translation/trans_real.py:358
-msgid "DATE_FORMAT"
-msgstr "d.m.Y"
-
-#: utils/translation/trans_real.py:359
-msgid "DATETIME_FORMAT"
-msgstr "d.m.y H:i:s"
-
-#: utils/translation/trans_real.py:360
-msgid "TIME_FORMAT"
-msgstr "H:i:s"
-
-#: utils/translation/trans_real.py:376
-msgid "YEAR_MONTH_FORMAT"
-msgstr "d.m.Y"
-
-#: utils/translation/trans_real.py:377
-msgid "MONTH_DAY_FORMAT"
-msgstr "d.m.Y"
-
#: conf/global_settings.py:39
msgid "Arabic"
-msgstr "ערבית"
+msgstr "ערבית - Arabic"
#: conf/global_settings.py:40
msgid "Bengali"
msgstr "בנגאלית - Bengali"
#: conf/global_settings.py:41
+msgid "Bulgarian"
+msgstr "בולגרית - Bulgarian"
+
+#: conf/global_settings.py:42
msgid "Catalan"
msgstr "קאטלונית - Catalan"
-#: conf/global_settings.py:42
+#: conf/global_settings.py:43
msgid "Czech"
msgstr "צ'כית - Czech"
-#: conf/global_settings.py:43
+#: conf/global_settings.py:44
msgid "Welsh"
msgstr "וולשית - Welsh"
-#: conf/global_settings.py:44
+#: conf/global_settings.py:45
msgid "Danish"
msgstr "דנית - Danish"
-#: conf/global_settings.py:45
+#: conf/global_settings.py:46
msgid "German"
msgstr "גרמנית - German"
-#: conf/global_settings.py:46
+#: conf/global_settings.py:47
msgid "Greek"
msgstr "יוונית - Greek"
-#: conf/global_settings.py:47
+#: conf/global_settings.py:48
msgid "English"
msgstr "אנגלית - English"
-#: conf/global_settings.py:48
+#: conf/global_settings.py:49
msgid "Spanish"
msgstr "ספרדית - Spanish"
-#: conf/global_settings.py:49
+#: conf/global_settings.py:50
msgid "Argentinean Spanish"
msgstr "ספרדית ארגנטינאית - Argentinean Spanish"
-#: conf/global_settings.py:50
+#: conf/global_settings.py:51
+msgid "Persian"
+msgstr "פרסית - Persian"
+
+#: conf/global_settings.py:52
msgid "Finnish"
msgstr "פינית - Finnish"
-#: conf/global_settings.py:51
+#: conf/global_settings.py:53
msgid "French"
msgstr "צרפתית - French"
-#: conf/global_settings.py:52
+#: conf/global_settings.py:54
+msgid "Gaeilge"
+msgstr "גיילית אירית - Gaeilge"
+
+#: conf/global_settings.py:55
msgid "Galician"
msgstr "גאליצית - Galician"
-#: conf/global_settings.py:53
+#: conf/global_settings.py:56
msgid "Hungarian"
-msgstr "הונגרית (Hungarian)"
+msgstr "הונגרית - Hungarian"
-#: conf/global_settings.py:54
+#: conf/global_settings.py:57
msgid "Hebrew"
msgstr "עברית - Hebrew"
-#: conf/global_settings.py:55
+#: conf/global_settings.py:58
+msgid "Croatian"
+msgstr "קרואטית - Croatian"
+
+#: conf/global_settings.py:59
msgid "Icelandic"
msgstr "איסלנדית - Icelandic"
-#: conf/global_settings.py:56
+#: conf/global_settings.py:60
msgid "Italian"
msgstr "איטלקית - Italian"
-#: conf/global_settings.py:57
+#: conf/global_settings.py:61
msgid "Japanese"
msgstr "יפנית - Japanese"
-#: conf/global_settings.py:58
+#: conf/global_settings.py:62
msgid "Korean"
msgstr "קוריאנית - Korean"
-#: conf/global_settings.py:59
+#: conf/global_settings.py:63
+msgid "Khmer"
+msgstr "חמר - Khmer"
+
+#: conf/global_settings.py:64
msgid "Kannada"
msgstr "קנדה - Kannada"
-#: conf/global_settings.py:60
+#: conf/global_settings.py:65
msgid "Latvian"
msgstr "לטבית - Latvian"
-#: conf/global_settings.py:61
+#: conf/global_settings.py:66
msgid "Macedonian"
msgstr "מקדונית - Macedonian"
-#: conf/global_settings.py:62
+#: conf/global_settings.py:67
msgid "Dutch"
msgstr "הולנדית - Dutch"
-#: conf/global_settings.py:63
+#: conf/global_settings.py:68
msgid "Norwegian"
msgstr "נורווגית - Norwegian"
-#: conf/global_settings.py:64
+#: conf/global_settings.py:69
msgid "Polish"
msgstr "פולנית - Polish"
-#: conf/global_settings.py:65
+#: conf/global_settings.py:70
msgid "Portugese"
msgstr "פורטוגזית - Portugese"
-#: conf/global_settings.py:66
+#: conf/global_settings.py:71
msgid "Brazilian"
msgstr "ברזילאית - Brazilian"
-#: conf/global_settings.py:67
+#: conf/global_settings.py:72
msgid "Romanian"
msgstr "רומנית - Romanian"
-#: conf/global_settings.py:68
+#: conf/global_settings.py:73
msgid "Russian"
msgstr "רוסית - Russian"
-#: conf/global_settings.py:69
+#: conf/global_settings.py:74
msgid "Slovak"
msgstr "סלובקית - Slovak"
-#: conf/global_settings.py:70
+#: conf/global_settings.py:75
msgid "Slovenian"
msgstr "סלובנית - Slovenian"
-#: conf/global_settings.py:71
+#: conf/global_settings.py:76
msgid "Serbian"
msgstr "סרבית - Serbian"
-#: conf/global_settings.py:72
+#: conf/global_settings.py:77
msgid "Swedish"
msgstr "שוודית - Swedish"
-#: conf/global_settings.py:73
+#: conf/global_settings.py:78
msgid "Tamil"
-msgstr ""
+msgstr "טמילית"
-#: conf/global_settings.py:74
+#: conf/global_settings.py:79
msgid "Telugu"
-msgstr ""
+msgstr "טלגו - Telugu"
-#: conf/global_settings.py:75
+#: conf/global_settings.py:80
msgid "Turkish"
msgstr "טורקית - Turkish"
-#: conf/global_settings.py:76
+#: conf/global_settings.py:81
msgid "Ukrainian"
msgstr "אוקראינית - Ukrainian"
-#: conf/global_settings.py:77
+#: conf/global_settings.py:82
msgid "Simplified Chinese"
msgstr "סינית פשוטה - Simplified·Chinese"
-#: conf/global_settings.py:78
+#: conf/global_settings.py:83
msgid "Traditional Chinese"
msgstr "סינית מסורתית - Traditional·Chinese"
-#: template/defaultfilters.py:491
-msgid "yes,no,maybe"
-msgstr "כן,לא,אולי"
-
-#: template/defaultfilters.py:520
-#, python-format
-msgid "%(size)d byte"
-msgstr "%(size)d בתים"
-
-#: template/defaultfilters.py:522
-#, python-format
-msgid "%.1f KB"
-msgstr "%.1f KB"
-
-#: template/defaultfilters.py:524
-#, python-format
-msgid "%.1f MB"
-msgstr "%.1f MB"
-
-#: template/defaultfilters.py:525
+#: contrib/admin/filterspecs.py:42
#, python-format
-msgid "%.1f GB"
-msgstr "%.1f GB"
-
-#: views/generic/create_update.py:43
-#, python-format
-msgid "The %(verbose_name)s was created successfully."
-msgstr "ה-%(verbose_name)s נוצר בהצלחה."
-
-#: views/generic/create_update.py:117
-#, python-format
-msgid "The %(verbose_name)s was updated successfully."
-msgstr "ה-%(verbose_name)s עודכן בהצלחה."
-
-#: views/generic/create_update.py:184
-#, python-format
-msgid "The %(verbose_name)s was deleted."
-msgstr "ה-%(verbose_name)s נמחק."
-
-#: oldforms/__init__.py:392
-#, python-format
-msgid "Ensure your text is less than %s character."
-msgstr "נא לוודא שהטקסט שלך מכיל פחות מ %s תו."
-
-#: oldforms/__init__.py:397
-msgid "Line breaks are not allowed here."
-msgstr "מעברי שורה אסורים כאן."
-
-#: oldforms/__init__.py:498 oldforms/__init__.py:571 oldforms/__init__.py:610
-#, python-format
-msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
-msgstr "יש לבחור אפשרות חוקית; '%(data)s' אינו בין %(choices)s."
-
-#: oldforms/__init__.py:672 core/validators.py:174 core/validators.py:445
-msgid "No file was submitted. Check the encoding type on the form."
-msgstr "לא נשלח שום קובץ. נא לבדוק את סוג הקידוד של הטופס."
-
-#: oldforms/__init__.py:674
-msgid "The submitted file is empty."
-msgstr "הקובץ שנשלח ריק."
-
-#: oldforms/__init__.py:730
-msgid "Enter a whole number between -32,768 and 32,767."
-msgstr "חש להזין מספר שלם בין ‎-32,768 ל- 32,767."
-
-#: oldforms/__init__.py:740
-msgid "Enter a positive number."
-msgstr "יש להזין מספר חיובי."
-
-#: oldforms/__init__.py:750
-msgid "Enter a whole number between 0 and 32,767."
-msgstr "יש להזין מספר שלם בין 0 ל- 32,767."
-
-#: core/validators.py:64
-msgid "This value must contain only letters, numbers and underscores."
-msgstr "ערך זה חייב להכיל אותיות, ספרות וקווים תחתונים בלבד."
-
-#: core/validators.py:68
msgid ""
-"This value must contain only letters, numbers, underscores, dashes or "
-"slashes."
-msgstr "ערך זה חייב להכיל אותיות, ספרות, מקפים, קווים תחתונים ונטויים בלבד."
-
-#: core/validators.py:72
-msgid "This value must contain only letters, numbers, underscores or hyphens."
-msgstr "ערך זה חייב להכיל אותיות, ספרות, מקפים וקווים תחתונים בלבד."
-
-#: core/validators.py:76
-msgid "Uppercase letters are not allowed here."
-msgstr "אסור להשתמש באותיות גדולות."
-
-#: core/validators.py:80
-msgid "Lowercase letters are not allowed here."
-msgstr "אסור להשתמש באותיות קטנות."
-
-#: core/validators.py:87
-msgid "Enter only digits separated by commas."
-msgstr "יש להזין רק ספרות מופרדות בפסיקים."
+"<h3>By %s:</h3>\n"
+"<ul>\n"
+msgstr ""
+"<h3>ע\"י %s:</h3>\n"
+"<ul>\n"
-#: core/validators.py:99
-msgid "Enter valid e-mail addresses separated by commas."
-msgstr "יש להזין רק כתובות דוא\"ל מופרדות בפסיקים."
+#: contrib/admin/filterspecs.py:72
+#: contrib/admin/filterspecs.py:90
+#: contrib/admin/filterspecs.py:145
+#: contrib/admin/filterspecs.py:171
+msgid "All"
+msgstr "הכל"
-#: core/validators.py:103
-msgid "Please enter a valid IP address."
-msgstr "נא להזין כתובת IP חוקית."
+#: contrib/admin/filterspecs.py:111
+msgid "Any date"
+msgstr "כל תאריך"
-#: core/validators.py:107
-msgid "Empty values are not allowed here."
-msgstr "חובה להזין ערך בשדה זה."
+#: contrib/admin/filterspecs.py:112
+msgid "Today"
+msgstr "היום"
-#: core/validators.py:111
-msgid "Non-numeric characters aren't allowed here."
-msgstr "מותר להזין ספרות בלבד."
+#: contrib/admin/filterspecs.py:115
+msgid "Past 7 days"
+msgstr "בשבוע האחרון"
-#: core/validators.py:115
-msgid "This value can't be comprised solely of digits."
-msgstr "ערך זה אינו יכול להכיל ספרות בלבד."
+#: contrib/admin/filterspecs.py:117
+msgid "This month"
+msgstr "החודש"
-#: core/validators.py:124
-msgid "Only alphabetical characters are allowed here."
-msgstr "יש להזין כאן אותיות בלבד."
+#: contrib/admin/filterspecs.py:119
+msgid "This year"
+msgstr "השנה"
-#: core/validators.py:139
-msgid "Year must be 1900 or later."
-msgstr "שנה צריכה להיות 1900 ומעלה."
+#: contrib/admin/filterspecs.py:145
+#: newforms/widgets.py:198
+#: oldforms/__init__.py:591
+msgid "Yes"
+msgstr "כן"
-#: core/validators.py:143
-#, python-format
-msgid "Invalid date: %s"
-msgstr "תאריך שגוי: %s"
+#: contrib/admin/filterspecs.py:145
+#: newforms/widgets.py:198
+#: oldforms/__init__.py:591
+msgid "No"
+msgstr "לא"
-#: core/validators.py:153
-msgid "Enter a valid time in HH:MM format."
-msgstr "יש להזין שעה במבנה HH:MM."
+#: contrib/admin/filterspecs.py:152
+#: newforms/widgets.py:198
+#: oldforms/__init__.py:591
+msgid "Unknown"
+msgstr "לא ידוע"
-#: core/validators.py:178
-msgid ""
-"Upload a valid image. The file you uploaded was either not an image or a "
-"corrupted image."
-msgstr "נא להעלות תמונה חוקית. הקובץ שהעלת אינו תמונה אומכיל תמונה מקולקלת."
+#: contrib/admin/models.py:17
+msgid "action time"
+msgstr "זמן פעולה"
-#: core/validators.py:185
-#, python-format
-msgid "The URL %s does not point to a valid image."
-msgstr "ה-URL %s אנו מצביע לתמונה חוקית."
+#: contrib/admin/models.py:20
+msgid "object id"
+msgstr "מזהה אובייקט"
-#: core/validators.py:189
-#, python-format
-msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
-msgstr "מספרי טלפון חייבים להיות במבנה XXX-XXX-XXXX.‏ \"%s\" אינו חוקי."
+#: contrib/admin/models.py:21
+msgid "object repr"
+msgstr "ייצוג אובייקט"
-#: core/validators.py:197
-#, python-format
-msgid "The URL %s does not point to a valid QuickTime video."
-msgstr "ה-URL‏ %s אינו מצביע לסרטון QuickTime חוקי."
+#: contrib/admin/models.py:22
+msgid "action flag"
+msgstr "דגל פעולה"
-#: core/validators.py:201
-msgid "A valid URL is required."
-msgstr "יש להזין URL חוקי."
+#: contrib/admin/models.py:23
+msgid "change message"
+msgstr "הערה לשינוי"
-#: core/validators.py:215
-#, python-format
-msgid ""
-"Valid HTML is required. Specific errors are:\n"
-"%s"
-msgstr ""
-"יש להזין HTML חוקי. שגיאות ספציפיות:\n"
-"%s"
+#: contrib/admin/models.py:26
+msgid "log entry"
+msgstr "רישום יומן"
-#: core/validators.py:222
-#, python-format
-msgid "Badly formed XML: %s"
-msgstr "מבנה XML שגוי: %s"
+#: contrib/admin/models.py:27
+msgid "log entries"
+msgstr "רישומי יומן"
-#: core/validators.py:239
-#, python-format
-msgid "Invalid URL: %s"
-msgstr "URL שגוי: %s"
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "דף לא קיים"
-#: core/validators.py:244 core/validators.py:246
-#, python-format
-msgid "The URL %s is a broken link."
-msgstr "ה-URL‏ %s הוא קישור שבור."
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "אנו מצטערים, לא ניתן למצוא את הדף המבוקש."
-#: core/validators.py:252
-msgid "Enter a valid U.S. state abbreviation."
-msgstr "יש להזין קיצור חוקי למדינה בארה\"ב."
+#: 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 "דף הבית"
-#: core/validators.py:266
-#, python-format
-msgid "Watch your mouth! The word %s is not allowed here."
-msgstr "שמור על לשונך! המילה %s אסורה לשימוש כאן."
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "שגיאת שרת"
-#: core/validators.py:273
-#, python-format
-msgid "This field must match the '%s' field."
-msgstr "תוכן השדה חייב להיות זהה לשדה '%s'."
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "שגיאת שרת (500)"
-#: core/validators.py:292
-msgid "Please enter something for at least one field."
-msgstr "יש להזין תוכן בלפחות אחד מהשדות."
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "שגיאת שרת <em>(500)</em>"
-#: core/validators.py:301 core/validators.py:312
-msgid "Please enter both fields or leave them both empty."
-msgstr "יש להזין תוכן בשני השדות או להשאיר את שניהם ריקים."
+#: 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 "התרחשה שגיאה. היא דווחה למנהלי האתר בדוא\"ל ותתוקן בקרוב. תודה על סבלנותך."
-#: core/validators.py:320
-#, python-format
-msgid "This field must be given if %(field)s is %(value)s"
-msgstr "יש להזין מידע בשדה זה אם שדה %(field)s מכיל %(value)s"
+#: contrib/admin/templates/admin/base.html:26
+msgid "Welcome,"
+msgstr "שלום"
-#: core/validators.py:333
-#, python-format
-msgid "This field must be given if %(field)s is not %(value)s"
-msgstr "יש להזין תוכן בשדה זה אם תוכן שדה %(field)s אינו %(value)s"
+#: contrib/admin/templates/admin/base.html:28
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Documentation"
+msgstr "תיעוד"
-#: core/validators.py:352
-msgid "Duplicate values are not allowed."
-msgstr "לא ניתן להזין ערכים כפולים."
+#: 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 "שינוי סיסמה"
-#: core/validators.py:367
-#, python-format
-msgid "This value must be between %(lower)s and %(upper)s."
-msgstr "ערך זה חייב להיות בין %(lower)s ל-%(upper)s."
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "יציאה"
-#: core/validators.py:369
-#, python-format
-msgid "This value must be at least %s."
-msgstr "ערך זה חייב להיות לפחות %s."
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "ניהול אתר Django"
-#: core/validators.py:371
-#, python-format
-msgid "This value must be no more than %s."
-msgstr "ערך זה אינו יכול להיות יותר מ-%s."
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "ניהול Django"
-#: core/validators.py:407
-#, python-format
-msgid "This value must be a power of %s."
-msgstr "ערך זה חייב להיות חזקה של %s."
+#: contrib/admin/templates/admin/change_form.html:14
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "הוספה"
-#: core/validators.py:418
-msgid "Please enter a valid decimal number."
-msgstr "יש להזין מספר עשרוני חוקי."
+#: contrib/admin/templates/admin/change_form.html:20
+#: contrib/admin/templates/admin/object_history.html:4
+msgid "History"
+msgstr "היסטוריה"
-#: core/validators.py:422
-#, python-format
-msgid "Please enter a valid decimal number with at most %s total digit."
-"Please enter a valid decimal number with at most %s total digits."
-msgstr "נא להזין מספר עשרוני חוקי עם %s ספרה לכל היותר."
-"נא להזין מספר עשורני חוקי עם %s ספרות לכל היותר."
+#: contrib/admin/templates/admin/change_form.html:21
+msgid "View on site"
+msgstr "צפיה באתר"
-#: core/validators.py:425
-#, python-format
-msgid ""
-"Please enter a valid decimal number with a whole part of at most %s digit."
-"Please enter a valid decimal number with a whole part of at most %s digits."
-msgstr ""
-"נא להזין מספר עשרוני המכיל מספר שלם עם %s ספרה לכל היותר."
-"נא להזין מספר עשרוני המכיל מספר שלם עם %s ספרות לכל היותר."
+#: contrib/admin/templates/admin/change_form.html:31
+#: contrib/admin/templates/admin/auth/user/change_password.html:23
+msgid "Please correct the error below."
+msgstr "נא לתקן את השגיאה המופיעה מתחת."
-#: core/validators.py:428
-#, python-format
-msgid "Please enter a valid decimal number with at most %s decimal place."
-"Please enter a valid decimal number with at most %s decimal places."
-msgstr "נא להזין מספר עשרוני חוקי בעל %s ספרה לכל היותר במקום העשרוני."
-"נא להזין מספר עשרוני חוקי בעל %s ספרות לכל היותר במקום העשרוני."
+#: contrib/admin/templates/admin/change_form.html:49
+msgid "Ordering"
+msgstr "מיון"
-#: core/validators.py:438
-#, python-format
-msgid "Make sure your uploaded file is at least %s bytes big."
-msgstr "יש להעלות קובץ בגודל %s בתים לפחות."
+#: contrib/admin/templates/admin/change_form.html:52
+msgid "Order:"
+msgstr "מיון:"
-#: core/validators.py:439
+#: contrib/admin/templates/admin/change_list.html:11
#, python-format
-msgid "Make sure your uploaded file is at most %s bytes big."
-msgstr "יש לוודא שהקובץ שהעלת הוא בגודל %s בתים לכל היותר."
-
-#: core/validators.py:456
-msgid "The format for this field is wrong."
-msgstr "מבנה תוכן שדה זה שגוי."
+msgid "Add %(name)s"
+msgstr "הוספת %(name)s"
-#: core/validators.py:471
-msgid "This field is invalid."
-msgstr "שדה זה אינו חוקי."
+#: contrib/admin/templates/admin/delete_confirmation.html:8
+#: contrib/admin/templates/admin/submit_line.html:3
+msgid "Delete"
+msgstr "מחיקה"
-#: core/validators.py:507
+#: contrib/admin/templates/admin/delete_confirmation.html:13
#, python-format
-msgid "Could not retrieve anything from %s."
-msgstr "לא ניתן לאחזר כלום מ %s."
+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 "מחיקת %(object_name)s '%(escaped_object)s' מצריכה מחיקת אובייקטים מקושרים, אך לחשבון שלך אין הרשאות למחיקתסוגי האובייקטים הבאים:"
-#: core/validators.py:510
+#: contrib/admin/templates/admin/delete_confirmation.html:20
#, python-format
-msgid ""
-"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
-msgstr "ה-URL·%(url)s·החזיר כותרת·Content-Type·לא חוקית·'%(contenttype)s'."
+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 "האם ברצונך למחוק את %(object_name)s \"%(escaped_object)s\"? כל הפריטים הקשורים הבאים יימחקו:"
-#: core/validators.py:543
-#, python-format
-msgid ""
-"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
-"\"%(start)s\".)"
-msgstr "נא לסגור את תג·%(tag)s·בשורה·%(line)s.·(השורה מתחילה ב·\"%(start)s\".)"
-
-#: core/validators.py:547
-#, python-format
-msgid ""
-"Some text starting on line %(line)s is not allowed in that context. (Line "
-"starts with \"%(start)s\".)"
-msgstr ""
-"חלק מהטקסט בשורה·%(line)s·אסור בהקשר זה.·(השורה·מתחילה ב·\"%(start)s\".)"
+#: contrib/admin/templates/admin/delete_confirmation.html:25
+msgid "Yes, I'm sure"
+msgstr "כן, אני בטוח/ה"
-#: core/validators.py:552
+#: contrib/admin/templates/admin/filter.html:2
#, python-format
-msgid ""
-"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
-"(start)s\".)"
-msgstr ""
-"\"%(attr)s\"·בשורה·%(line)s·אינה תכונה חוקית.·(השורה מתחילה ב·\"%(start)s\".)"
+msgid " By %(filter_title)s "
+msgstr " לפי %(filter_title)s "
-#: core/validators.py:557
-#, python-format
-msgid ""
-"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
-"(start)s\".)"
-msgstr ""
-"\"<%(tag)s>\"·בשורה·%(line)s·אינו תג חוקי.·(השורה מתחילה ב·\"%(start)s\".)"
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "סינון"
-#: core/validators.py:561
+#: contrib/admin/templates/admin/index.html:17
#, python-format
-msgid ""
-"A tag on line %(line)s is missing one or more required attributes. (Line "
-"starts with \"%(start)s\".)"
-msgstr ""
-"לתג בשורה %(line)s חסרה תכונה אחת או יותר נדרשות. (השורה מתחילה ב-\"%(start)s"
-"\".)"
+msgid "Models available in the %(name)s application."
+msgstr "מודלים זמינים ביישום %(name)s."
-#: core/validators.py:566
+#: contrib/admin/templates/admin/index.html:18
#, python-format
-msgid ""
-"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
-"starts with \"%(start)s\".)"
-msgstr ""
-"לתכונה·\"%(attr)s\"·בשורה·%(line)s·יש ערך לא חוקי.·(השורה·מתחילה ב·\"%(start)"
-"s\".)"
-
-#: contrib/sites/models.py:10
-msgid "domain name"
-msgstr "שם מתחם"
-
-#: contrib/sites/models.py:11
-msgid "display name"
-msgstr "שם לתצוגה"
-
-#: contrib/sites/models.py:15
-msgid "site"
-msgstr "אתר"
-
-#: contrib/sites/models.py:16
-msgid "sites"
-msgstr "אתרים"
-
-#: contrib/comments/models.py:67 contrib/comments/models.py:166
-msgid "object ID"
-msgstr "מזהה אובייקט"
-
-#: contrib/comments/models.py:68
-msgid "headline"
-msgstr "כותרת"
-
-#: contrib/comments/models.py:69 contrib/comments/models.py:90
-#: contrib/comments/models.py:167
-msgid "comment"
-msgstr "תגובה"
+msgid "%(name)s"
+msgstr "%(name)s"
-#: contrib/comments/models.py:70
-msgid "rating #1"
-msgstr "דירוג #1"
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "שינוי"
-#: contrib/comments/models.py:71
-msgid "rating #2"
-msgstr "דירוג #2"
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "אין לך הרשאות לעריכה"
-#: contrib/comments/models.py:72
-msgid "rating #3"
-msgstr "דירוג #3"
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "פעולות אחרונות"
-#: contrib/comments/models.py:73
-msgid "rating #4"
-msgstr "דירוג #4"
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "הפעולות שלי"
-#: contrib/comments/models.py:74
-msgid "rating #5"
-msgstr "דירוג #5"
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "לא נמצאו"
-#: contrib/comments/models.py:75
-msgid "rating #6"
-msgstr "דירוג #6"
+#: 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 "משהו שגוי בהתקנת בסיס הנתונים שלך. נא לוודא שנוצרו טבלאות בסיס הנתונים המתאימות, ובסיס הנתונים ניתן לקריאה על ידי המשתמש המתאים."
-#: contrib/comments/models.py:76
-msgid "rating #7"
-msgstr "דירוג #7"
+#: 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/comments/models.py:77
-msgid "rating #8"
-msgstr "דירוג #8"
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "סיסמה:"
-#: contrib/comments/models.py:82
-msgid "is valid rating"
-msgstr "האם דירוג חוקי"
+#: contrib/admin/templates/admin/login.html:25
+#: contrib/admin/views/decorators.py:24
+msgid "Log in"
+msgstr "כניסה"
-#: contrib/comments/models.py:83 contrib/comments/models.py:169
-msgid "date/time submitted"
-msgstr "תאריך/שעת הגשה"
+#: contrib/admin/templates/admin/object_history.html:17
+msgid "Date/time"
+msgstr "תאריך/שעה"
-#: contrib/comments/models.py:84 contrib/comments/models.py:170
-msgid "is public"
-msgstr "ציבורי"
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "User"
+msgstr "משתמש"
-#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304
-msgid "IP address"
-msgstr "כתובת IP"
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "Action"
+msgstr "פעולה"
-#: contrib/comments/models.py:86
-msgid "is removed"
-msgstr "האם הוסר"
+#: contrib/admin/templates/admin/object_history.html:25
+msgid "DATE_WITH_TIME_FULL"
+msgstr "l d.m.y H:i:s"
-#: contrib/comments/models.py:86
-msgid ""
-"Check this box if the comment is inappropriate. A \"This comment has been "
-"removed\" message will be displayed instead."
-msgstr ""
-"יש לסמן תיבה זו עבור תגובה לא נאותה. הודעת \"תגובה זו נמחקה\" תוצג במקום."
+#: 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/comments/models.py:91
-msgid "comments"
-msgstr "תגובות"
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "הצג הכל"
-#: contrib/comments/models.py:131 contrib/comments/models.py:207
-msgid "Content object"
-msgstr "אובייקט תוכן"
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "בצע"
-#: contrib/comments/models.py:159
+#: contrib/admin/templates/admin/search_form.html:10
#, python-format
-msgid ""
-"Posted by %(user)s at %(date)s\n"
-"\n"
-"%(comment)s\n"
-"\n"
-"http://%(domain)s%(url)s"
-msgstr ""
-"הוגש ע\"י %(user)s ב %(date)s\n"
-"\n"
-"%(comment)s\n"
-"\n"
-"http://%(domain)s%(url)s"
-
-#: contrib/comments/models.py:168
-msgid "person's name"
-msgstr "שם"
-
-#: contrib/comments/models.py:171
-msgid "ip address"
-msgstr "כתובת IP"
-
-#: contrib/comments/models.py:173
-msgid "approved by staff"
-msgstr "אושר ע\"י הצוות"
-
-#: contrib/comments/models.py:176
-msgid "free comment"
-msgstr "הערה אנונימית"
+msgid "1 result"
+msgstr "תוצאה אחת"
-#: contrib/comments/models.py:177
-msgid "free comments"
-msgstr "הערות אנונימיות"
+#: contrib/admin/templates/admin/search_form.html:10
+#, python-format
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s סה\"כ"
-#: contrib/comments/models.py:233
-msgid "score"
-msgstr "ציון"
+#: contrib/admin/templates/admin/submit_line.html:4
+msgid "Save as new"
+msgstr "שמירה כחדש"
-#: contrib/comments/models.py:234
-msgid "score date"
-msgstr "תאריך ציון"
+#: contrib/admin/templates/admin/submit_line.html:5
+msgid "Save and add another"
+msgstr "שמירה והוספת אחר"
-#: contrib/comments/models.py:237
-msgid "karma score"
-msgstr "ניקוד קארמה"
+#: contrib/admin/templates/admin/submit_line.html:6
+msgid "Save and continue editing"
+msgstr "שמירה והמשך עריכה"
-#: contrib/comments/models.py:238
-msgid "karma scores"
-msgstr "ניקודי קארמה"
+#: contrib/admin/templates/admin/submit_line.html:7
+msgid "Save"
+msgstr "שמירה"
-#: contrib/comments/models.py:242
-#, python-format
-msgid "%(score)d rating by %(user)s"
-msgstr "%(score)d·דירוג ע\"י·%(user)s"
+#: 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/comments/models.py:258
-#, python-format
-msgid ""
-"This comment was flagged by %(user)s:\n"
-"\n"
-"%(text)s"
-msgstr ""
-"התגובה סומנה ע\"י %(user)s:\n"
-"\n"
-"%(text)s"
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "שם משתמש"
-#: contrib/comments/models.py:265
-msgid "flag date"
-msgstr "תאריך סימון"
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:33
+msgid "Password"
+msgstr "סיסמה"
-#: contrib/comments/models.py:268
-msgid "user flag"
-msgstr "סימון ע\"י משתמש"
+#: 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/comments/models.py:269
-msgid "user flags"
-msgstr "סימונים ע\"י משתמש"
+#: contrib/admin/templates/admin/auth/user/add_form.html:24
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Enter the same password as above, for verification."
+msgstr "יש להזין את אותה סיסנה שוב,לאימות."
-#: contrib/comments/models.py:273
+#: contrib/admin/templates/admin/auth/user/change_password.html:27
#, python-format
-msgid "Flag by %r"
-msgstr "סימון ע\"י %r"
-
-#: contrib/comments/models.py:278
-msgid "deletion date"
-msgstr "תאריך מחיקה"
-
-#: contrib/comments/models.py:280
-msgid "moderator deletion"
-msgstr "מחיקת מודרטור"
-
-#: contrib/comments/models.py:281
-msgid "moderator deletions"
-msgstr "מחיקות מודרטור"
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "יש להזין סיסמה חדשה עבור המשתמש <strong>%(username)s</strong>."
-#: contrib/comments/models.py:285
-#, python-format
-msgid "Moderator deletion by %r"
-msgstr "מחיקת מודרציה ע\"י %r"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+msgid "Bookmarklets"
+msgstr "ייסומניות"
-#: contrib/comments/views/comments.py:27
-msgid ""
-"This rating is required because you've entered at least one other rating."
-msgstr "הדירוג נדרש מאחר והזנת לפחות דרוג אחד אחר."
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+msgid "Documentation bookmarklets"
+msgstr "ייסומוניות תיעוד"
-#: contrib/comments/views/comments.py:111
-#, python-format
+#: contrib/admin/templates/admin_doc/bookmarklets.html:8
msgid ""
-"This comment was posted by a user who has posted fewer than %(count)s "
-"comment:\n"
"\n"
-"%(text)s"
-"This comment was posted by a user who has posted fewer than %(count)s "
-"comments:\n"
-"\n"
-"%(text)s"
+"<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 ""
-"התגובה נשלחה ע\"י משתמש אשר שלח פחות מ-%(count)s תגובה:\n"
"\n"
-"%(text)s"
-"התגובה נשלחה ע\"י משתמש אשר שלח פחות מ-%(count)s תגובות:\n"
-"\n"
-"%(text)s"
+"<p class=\"help\">כדי להתקין ייסומניות, יש לגרור את הקישור לסרגל הסימניות\n"
+"שלך, או קליק ימני והוספה לסימניות. כעת ניתן\n"
+"לבחור את הייסומניה מכל עמוד באתר. יש לשים לב כי חלק מהייסומניות\n"
+"ניתנות לצפיה רק ממחשב שמסווג\n"
+"כ\"פנימי\" (יש לדבר עם מנהל המערכת שלך אם אינך בטוח/ה\n"
+"שהמחשב מסווג ככזה).</p>\n"
-#: contrib/comments/views/comments.py:116
-#, python-format
-msgid ""
-"This comment was posted by a sketchy user:\n"
-"\n"
-"%(text)s"
-msgstr ""
-"ההודעה נשלחה ע\"י משתמש מפוקפק:\n"
-"\n"
-"%(text)s"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:18
+msgid "Documentation for this page"
+msgstr "תיעוד לדף זה"
-#: contrib/comments/views/comments.py:188
-#: contrib/comments/views/comments.py:280
-msgid "Only POSTs are allowed"
-msgstr "רק פעולות POST מותרות"
+#: 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/comments/views/comments.py:192
-#: contrib/comments/views/comments.py:284
-msgid "One or more of the required fields wasn't submitted"
-msgstr "אחד או יותר מהשדות הנדרשים אינו נשלח."
+#: contrib/admin/templates/admin_doc/bookmarklets.html:21
+msgid "Show object ID"
+msgstr "הצג מזהה אובייקט"
-#: contrib/comments/views/comments.py:196
-#: contrib/comments/views/comments.py:286
-msgid "Somebody tampered with the comment form (security violation)"
-msgstr "מישהו התעסק עם טופס התגובה (הפרת אבטחה)"
+#: 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/comments/views/comments.py:206
-#: contrib/comments/views/comments.py:292
-msgid ""
-"The comment form had an invalid 'target' parameter -- the object ID was "
-"invalid"
-msgstr "טופס התגובה הכיל פרמטר target לא חוקי -- מזהה האובייקט אינו חוקי"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:24
+msgid "Edit this object (current window)"
+msgstr "עריכת אובייקט זה (בחלון הנוכחי)"
-#: contrib/comments/views/comments.py:257
-#: contrib/comments/views/comments.py:321
-msgid "The comment form didn't provide either 'preview' or 'post'"
-msgstr "טופס התגובה לא הכיל 'preview' או 'post'"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:25
+msgid "Jumps to the admin page for pages that represent a single object."
+msgstr "קופץ לעמוד הניהול לעמודים אשר מייצגים אובייקטים בודד."
-#: contrib/comments/views/karma.py:19
-msgid "Anonymous users cannot vote"
-msgstr "משתמשים אנונימיים אינם יכולים להצביע"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:27
+msgid "Edit this object (new window)"
+msgstr "עריכת אובייקט זה (בחלון חדש)"
-#: contrib/comments/views/karma.py:23
-msgid "Invalid comment ID"
-msgstr "מזהה תגובה שגוי"
+#: contrib/admin/templates/admin_doc/bookmarklets.html:28
+msgid "As above, but opens the admin page in a new window."
+msgstr "כנ\"ל, אך דף הניהול ייפתח בחלון חדש."
-#: contrib/comments/views/karma.py:25
-msgid "No voting for yourself"
-msgstr "לא ניתן להצביע לעצמך"
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+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/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "התחבר/י שוב"
-#: contrib/comments/templates/comments/form.html:6
-#: contrib/admin/templates/admin_doc/view_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/bookmarklets.html:4
-#: contrib/admin/templates/admin_doc/index.html:4
-#: contrib/admin/templates/admin_doc/missing_docutils.html:4
-#: contrib/admin/templates/admin_doc/template_tag_index.html:5
-#: contrib/admin/templates/admin_doc/template_filter_index.html:5
-#: contrib/admin/templates/admin_doc/view_detail.html:4
-#: contrib/admin/templates/admin_doc/template_detail.html:4
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/auth/user/change_password.html:9
#: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3
-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 "שכחת את סיסמתך ?"
-
-#: contrib/comments/templates/comments/form.html:12
-msgid "Ratings"
-msgstr "דירוג"
+#: contrib/admin/templates/registration/password_change_form.html:5
+#: contrib/admin/templates/registration/password_change_form.html:9
+msgid "Password change"
+msgstr "שינוי סיסמה"
-#: contrib/comments/templates/comments/form.html:12
-#: contrib/comments/templates/comments/form.html:23
-msgid "Required"
-msgstr "נדרש"
+#: contrib/admin/templates/registration/password_change_done.html:5
+#: contrib/admin/templates/registration/password_change_done.html:9
+msgid "Password change successful"
+msgstr "הסיסמה שונתה בהצלחה"
-#: contrib/comments/templates/comments/form.html:12
-#: contrib/comments/templates/comments/form.html:23
-msgid "Optional"
-msgstr "אופציונלי"
+#: contrib/admin/templates/registration/password_change_done.html:11
+msgid "Your password was changed."
+msgstr "סיסמתך שונתה."
-#: contrib/comments/templates/comments/form.html:23
-msgid "Post a photo"
-msgstr "שליחת תמונה"
+#: 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/comments/templates/comments/form.html:28
-#: contrib/comments/templates/comments/freeform.html:5
-msgid "Comment:"
-msgstr "תגובה:"
+#: contrib/admin/templates/registration/password_change_form.html:16
+msgid "Old password:"
+msgstr "סיסמה ישנה:"
-#: contrib/comments/templates/comments/form.html:35
-#: contrib/comments/templates/comments/freeform.html:10
-msgid "Preview comment"
-msgstr "תצוגה מקדימה של התגובה"
+#: contrib/admin/templates/registration/password_change_form.html:18
+msgid "New password:"
+msgstr "סיסמה חדשה:"
-#: contrib/comments/templates/comments/freeform.html:4
-msgid "Your name:"
-msgstr "שמך:"
+#: contrib/admin/templates/registration/password_change_form.html:20
+msgid "Confirm password:"
+msgstr "אימות סיסמה:"
-#: contrib/humanize/templatetags/humanize.py:17
-msgid "th"
-msgstr "רביעי"
+#: contrib/admin/templates/registration/password_change_form.html:22
+msgid "Change my password"
+msgstr "שנה את סיסמתי"
-#: contrib/humanize/templatetags/humanize.py:17
-msgid "st"
-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"
+msgstr "איפוס סיסמה"
-#: contrib/humanize/templatetags/humanize.py:17
-msgid "nd"
-msgstr "שני"
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "הסיסמה אופסה בהצלחה"
-#: contrib/humanize/templatetags/humanize.py:17
-msgid "rd"
-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."
+msgstr "שלחנו את הסיסמה החדשה לכתובת הדוא\"ל שהזנת. היא אמורה להתקבל תוך זמן קצר."
-#: contrib/humanize/templatetags/humanize.py:47
-#, python-format
-msgid "%(value).1f million"
-msgstr "%(value).1f מיליון"
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "הודעה זו התקבלה כי ביקשת איפוס סיסמה"
-#: contrib/humanize/templatetags/humanize.py:50
+#: contrib/admin/templates/registration/password_reset_email.html:3
#, python-format
-msgid "%(value).1f billion"
-msgstr "%(value).1f ביליון"
+msgid "for your user account at %(site_name)s"
+msgstr "עבור חשבון המשתמש שלך ב %(site_name)s"
-#: contrib/humanize/templatetags/humanize.py:53
+#: contrib/admin/templates/registration/password_reset_email.html:5
#, python-format
-msgid "%(value).1f trillion"
-msgstr "%(value).1f טריליון"
-
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "one"
-msgstr "אחד"
-
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "two"
-msgstr "שניים"
-
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "three"
-msgstr "שלושה"
-
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "four"
-msgstr "ארבעה"
+msgid "Your new password is: %(new_password)s"
+msgstr "סיסמתך החדשה: %(new_password)s"
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "five"
-msgstr "חמישה"
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "ניתן לשנות את הסיסמה בכל עת ע\"י פניה לדף זה:"
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "six"
-msgstr "שישה"
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "שם המשתמש שלך, במקרה ששכחת:"
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "seven"
-msgstr "שבעה"
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "תודה על השימוש באתר שלנו!"
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "eight"
-msgstr "שמונה"
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "צוות %(site_name)s"
-#: contrib/humanize/templatetags/humanize.py:68
-msgid "nine"
-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."
+msgstr "שכחת את סיסמתך ? נא להזין את כתובת הדוא\"ל מתחת, אנו נאפסאת הסיסמה ונשלח את החדשה אליך."
-#: contrib/admin/models.py:16
-msgid "action time"
-msgstr "זמן פעולה"
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "כתובת דוא\"ל:"
-#: contrib/admin/models.py:19
-msgid "object id"
-msgstr "מזהה אובייקט"
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "אפס את סיסמתי"
-#: contrib/admin/models.py:20
-msgid "object repr"
-msgstr "ייצוג אובייקט"
+#: contrib/admin/templates/widget/date_time.html:3
+msgid "Date:"
+msgstr "תאריך:"
-#: contrib/admin/models.py:21
-msgid "action flag"
-msgstr "דגל פעולה"
+#: contrib/admin/templates/widget/date_time.html:4
+msgid "Time:"
+msgstr "שעה:"
-#: contrib/admin/models.py:22
-msgid "change message"
-msgstr "הערה לשינוי"
+#: contrib/admin/templates/widget/file.html:2
+msgid "Currently:"
+msgstr "הנוכחי."
-#: contrib/admin/models.py:25
-msgid "log entry"
-msgstr "רישום יומן"
+#: contrib/admin/templates/widget/file.html:3
+msgid "Change:"
+msgstr "שינוי:"
-#: contrib/admin/models.py:26
-msgid "log entries"
-msgstr "רישומי יומן"
+#: contrib/admin/templatetags/admin_list.py:254
+msgid "All dates"
+msgstr "כל התאריכים"
-#: contrib/admin/filterspecs.py:40
+#: contrib/admin/views/auth.py:20
+#: contrib/admin/views/main.py:264
#, python-format
-msgid ""
-"<h3>By %s:</h3>\n"
-"<ul>\n"
-msgstr ""
-"<h3>ע\"י %s:</h3>\n"
-"<ul>\n"
-
-#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
-#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169
-msgid "All"
-msgstr "הכל"
-
-#: contrib/admin/filterspecs.py:109
-msgid "Any date"
-msgstr "כל תאריך"
-
-#: contrib/admin/filterspecs.py:110
-msgid "Today"
-msgstr "היום"
-
-#: contrib/admin/filterspecs.py:113
-msgid "Past 7 days"
-msgstr "בשבוע האחרון"
+msgid "The %(name)s \"%(obj)s\" was added successfully."
+msgstr "הוספת %(name)s \"%(obj)s\" בוצעה בהצלחה."
-#: contrib/admin/filterspecs.py:115
-msgid "This month"
-msgstr "החודש"
+#: contrib/admin/views/auth.py:25
+#: contrib/admin/views/main.py:268
+#: contrib/admin/views/main.py:354
+msgid "You may edit it again below."
+msgstr "ניתן לערוך שוב מתחת"
-#: contrib/admin/filterspecs.py:117
-msgid "This year"
-msgstr "השנה"
+#: contrib/admin/views/auth.py:31
+msgid "Add user"
+msgstr "הוספת משתמש"
-#: contrib/admin/templatetags/admin_list.py:247
-msgid "All dates"
-msgstr "כל התאריכים"
+#: contrib/admin/views/auth.py:58
+msgid "Password changed successfully."
+msgstr "הסיסמה שונתה בהצלחה."
-#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:60
-msgid ""
-"Please enter a correct username and password. Note that both fields are case-"
-"sensitive."
-msgstr ""
-"נא להזין שם משתמש וסיסמה נכונים. בשני השדות גודל האותיות האנגליות משנה."
+#: contrib/admin/views/auth.py:65
+#, python-format
+msgid "Change password: %s"
+msgstr "שינוי סיסמה: %s"
-#: contrib/admin/views/decorators.py:24
-#: contrib/admin/templates/admin/login.html:25
-msgid "Log in"
-msgstr "כניסה"
+#: contrib/admin/views/decorators.py:10
+#: contrib/auth/forms.py:60
+msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
+msgstr "נא להזין שם משתמש וסיסמה נכונים. בשני השדות גודל האותיות האנגליות משנה."
#: contrib/admin/views/decorators.py:62
-msgid ""
-"Please log in again, because your session has expired. Don't worry: Your "
-"submission has been saved."
-msgstr ""
-"נא להתחבר שוב, מאחר ופג תוקף ההתחברות הנוכחית. אל דאגה: המידע ששלחת נשמר."
+msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
+msgstr "נא להתחבר שוב, מאחר ופג תוקף ההתחברות הנוכחית. אל דאגה: המידע ששלחת נשמר."
#: contrib/admin/views/decorators.py:69
-msgid ""
-"Looks like your browser isn't configured to accept cookies. Please enable "
-"cookies, reload this page, and try again."
-msgstr ""
-"נראה שהדפדפן שלך אינו מוגדר לקבל עוגיות. נא לאפשר עוגיות, לטעון מחדש את הדף "
-"ולנסות שוב."
+msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
+msgstr "נראה שהדפדפן שלך אינו מוגדר לקבל עוגיות. נא לאפשר עוגיות, לטעון מחדש את הדף ולנסות שוב."
#: contrib/admin/views/decorators.py:83
msgid "Usernames cannot contain the '@' character."
@@ -1417,785 +768,905 @@ msgstr "שם משתמש אינו יכול להכיל את התו '@'."
msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr "כתובת הדוא\"ל שלך אינה שם המשתמש שלך. נסה/י '%s' במקום."
-#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
-#: contrib/admin/views/doc.py:50
+#: contrib/admin/views/doc.py:47
+#: contrib/admin/views/doc.py:49
+#: contrib/admin/views/doc.py:51
msgid "tag:"
msgstr "תג:"
-#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
-#: contrib/admin/views/doc.py:81
+#: contrib/admin/views/doc.py:78
+#: contrib/admin/views/doc.py:80
+#: contrib/admin/views/doc.py:82
msgid "filter:"
msgstr "סינון:"
-#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
-#: contrib/admin/views/doc.py:139
+#: contrib/admin/views/doc.py:136
+#: contrib/admin/views/doc.py:138
+#: contrib/admin/views/doc.py:140
msgid "view:"
msgstr "צפיה (view):"
-#: contrib/admin/views/doc.py:164
+#: contrib/admin/views/doc.py:165
#, python-format
msgid "App %r not found"
msgstr "יישום %r לא נמצא"
-#: contrib/admin/views/doc.py:171
+#: contrib/admin/views/doc.py:172
#, python-format
msgid "Model %(name)r not found in app %(label)r"
msgstr "מודל %(name)r לא נמצא ביישום %(label)r"
-#: contrib/admin/views/doc.py:183
+#: contrib/admin/views/doc.py:184
#, python-format
msgid "the related `%(label)s.%(type)s` object"
msgstr "האובייקט `%(label)s.%(type)s` הקשור"
-#: contrib/admin/views/doc.py:183 contrib/admin/views/doc.py:205
-#: contrib/admin/views/doc.py:219 contrib/admin/views/doc.py:224
+#: contrib/admin/views/doc.py:184
+#: contrib/admin/views/doc.py:206
+#: contrib/admin/views/doc.py:220
+#: contrib/admin/views/doc.py:225
msgid "model:"
msgstr "מודל:"
-#: contrib/admin/views/doc.py:214
+#: contrib/admin/views/doc.py:215
#, python-format
msgid "related `%(label)s.%(name)s` objects"
msgstr "אובייקטי `%(label)s.%(name)s` מקושרים"
-#: contrib/admin/views/doc.py:219
+#: contrib/admin/views/doc.py:220
#, python-format
msgid "all %s"
msgstr "כל %s"
-#: contrib/admin/views/doc.py:224
+#: contrib/admin/views/doc.py:225
#, python-format
msgid "number of %s"
msgstr "מספר %s"
-#: contrib/admin/views/doc.py:229
+#: contrib/admin/views/doc.py:230
#, python-format
msgid "Fields on %s objects"
msgstr "Fields on %s objects"
-#: 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
+#: contrib/admin/views/doc.py:292
+#: contrib/admin/views/doc.py:303
+#: contrib/admin/views/doc.py:305
+#: contrib/admin/views/doc.py:311
+#: contrib/admin/views/doc.py:312
+#: contrib/admin/views/doc.py:314
msgid "Integer"
msgstr "מספר שלם"
-#: contrib/admin/views/doc.py:292
+#: contrib/admin/views/doc.py:293
msgid "Boolean (Either True or False)"
msgstr "בוליאני (אמת או שקר)"
-#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
+#: contrib/admin/views/doc.py:294
+#: contrib/admin/views/doc.py:313
#, python-format
-msgid "String (up to %(maxlength)s)"
-msgstr "מחרוזת (עד %(maxlength)s תווים)"
+msgid "String (up to %(max_length)s)"
+msgstr "מחרוזת (עד %(max_length)s תווים)"
-#: contrib/admin/views/doc.py:294
+#: contrib/admin/views/doc.py:295
msgid "Comma-separated integers"
msgstr "מספרים שלמים מופרדים בפסיקים"
-#: contrib/admin/views/doc.py:295
+#: contrib/admin/views/doc.py:296
msgid "Date (without time)"
msgstr "תאריך (ללא שעה)"
-#: contrib/admin/views/doc.py:296
+#: contrib/admin/views/doc.py:297
msgid "Date (with time)"
msgstr "תאריך (כולל שעה)"
-#: contrib/admin/views/doc.py:297
+#: contrib/admin/views/doc.py:298
+msgid "Decimal number"
+msgstr "מספר עשרוני"
+
+#: contrib/admin/views/doc.py:299
msgid "E-mail address"
msgstr "כתובת דוא\"ל"
-#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
-#: contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:300
+#: contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:304
msgid "File path"
msgstr "נתיב קובץ"
-#: contrib/admin/views/doc.py:300
-msgid "Decimal number"
+#: contrib/admin/views/doc.py:302
+msgid "Floating point number"
msgstr "מספר עשרוני"
#: contrib/admin/views/doc.py:306
+#: contrib/comments/models.py:85
+msgid "IP address"
+msgstr "כתובת IP"
+
+#: contrib/admin/views/doc.py:308
msgid "Boolean (Either True, False or None)"
msgstr "בוליאני (אמת, שקר או כלום)"
-#: contrib/admin/views/doc.py:307
+#: contrib/admin/views/doc.py:309
msgid "Relation to parent model"
msgstr "יחס למודל אב"
-#: contrib/admin/views/doc.py:308
+#: contrib/admin/views/doc.py:310
msgid "Phone number"
msgstr "מספר טלפון"
-#: contrib/admin/views/doc.py:313
+#: contrib/admin/views/doc.py:315
msgid "Text"
msgstr "טקסט"
-#: contrib/admin/views/doc.py:314
+#: contrib/admin/views/doc.py:316
msgid "Time"
msgstr "זמן"
-#: contrib/admin/views/doc.py:315 contrib/flatpages/models.py:7
+#: contrib/admin/views/doc.py:317
+#: contrib/flatpages/models.py:7
msgid "URL"
msgstr "URL"
-#: contrib/admin/views/doc.py:316
+#: contrib/admin/views/doc.py:318
msgid "U.S. state (two uppercase letters)"
msgstr "מדינה בארה\"ב (שתי אותיות גדולות)"
-#: contrib/admin/views/doc.py:317
+#: contrib/admin/views/doc.py:319
msgid "XML text"
msgstr "טקסט XML"
-#: contrib/admin/views/doc.py:343
+#: contrib/admin/views/doc.py:345
#, python-format
msgid "%s does not appear to be a urlpattern object"
msgstr "לא נראה ש-%s הוא אובייקט urlpattern"
-#: contrib/admin/views/auth.py:19 contrib/admin/views/main.py:257
-#, python-format
-msgid "The %(name)s \"%(obj)s\" was added successfully."
-msgstr "הוספת %(name)s \"%(obj)s\" בוצעה בהצלחה."
-
-#: contrib/admin/views/auth.py:24 contrib/admin/views/main.py:261
-#: contrib/admin/views/main.py:347
-msgid "You may edit it again below."
-msgstr "ניתן לערוך שוב מתחת"
-
-#: contrib/admin/views/auth.py:30
-msgid "Add user"
-msgstr "הוספת משתמש"
-
-#: contrib/admin/views/auth.py:57
-msgid "Password changed successfully."
-msgstr "הסיסמה שונתה בהצלחה."
-
-#: contrib/admin/views/auth.py:64
-#, python-format
-msgid "Change password: %s"
-msgstr "שינוי סיסמה: %s"
-
-#: contrib/admin/views/main.py:223
+#: contrib/admin/views/main.py:230
msgid "Site administration"
msgstr "ניהול אתר"
-#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
+#: contrib/admin/views/main.py:278
+#: contrib/admin/views/main.py:363
#, python-format
msgid "You may add another %s below."
msgstr "ניתן להוסיף %s נוסף מתחת."
-#: contrib/admin/views/main.py:289
+#: contrib/admin/views/main.py:296
#, python-format
msgid "Add %s"
msgstr "הוספת %s"
-#: contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:342
#, python-format
msgid "Added %s."
msgstr "%s התווסף."
-#: contrib/admin/views/main.py:337
+#: contrib/admin/views/main.py:342
+#: contrib/admin/views/main.py:344
+#: contrib/admin/views/main.py:346
+#: core/validators.py:283
+#: db/models/manipulators.py:309
+msgid "and"
+msgstr "ו"
+
+#: contrib/admin/views/main.py:344
#, python-format
msgid "Changed %s."
msgstr "%s שונה."
-#: contrib/admin/views/main.py:339
+#: contrib/admin/views/main.py:346
#, python-format
msgid "Deleted %s."
msgstr "%s נמחק."
-#: contrib/admin/views/main.py:342
+#: contrib/admin/views/main.py:349
msgid "No fields changed."
msgstr "אף שדה לא השתנה."
-#: contrib/admin/views/main.py:345
+#: contrib/admin/views/main.py:352
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr "שינוי %(name)s \"%(obj)s\" בוצע בהצלחה."
-#: contrib/admin/views/main.py:353
+#: contrib/admin/views/main.py:360
#, python-format
-msgid ""
-"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr "הוספת %(name)s \"%(obj)s\" בוצעה בהצלחה. ניתן לערוך אותו שוב מתחת."
-#: contrib/admin/views/main.py:391
+#: contrib/admin/views/main.py:398
#, python-format
msgid "Change %s"
msgstr "שינוי %s"
-#: contrib/admin/views/main.py:476
+#: contrib/admin/views/main.py:483
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr "אחד או יותר %(fieldname)s ב%(name)s: %(obj)s"
-#: contrib/admin/views/main.py:481
+#: contrib/admin/views/main.py:488
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr "אחד או יותר %(fieldname)s ב%(name)s:"
-#: contrib/admin/views/main.py:514
+#: contrib/admin/views/main.py:520
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "מחיקת %(name)s \"%(obj)s\" בוצעה בהצלחה."
-#: contrib/admin/views/main.py:517
+#: contrib/admin/views/main.py:523
msgid "Are you sure?"
msgstr "האם את/ה בטוח/ה ?"
-#: contrib/admin/views/main.py:539
+#: contrib/admin/views/main.py:545
#, python-format
msgid "Change history: %s"
msgstr "היסטוריית שינוי: %s"
-#: contrib/admin/views/main.py:573
+#: contrib/admin/views/main.py:579
#, python-format
msgid "Select %s"
msgstr "בחירת %s"
-#: contrib/admin/views/main.py:573
+#: contrib/admin/views/main.py:579
#, python-format
msgid "Select %s to change"
msgstr "בחירת %s לשינוי"
-#: contrib/admin/views/main.py:768
+#: contrib/admin/views/main.py:780
msgid "Database error"
msgstr "שגיאת בסיס נתונים"
-#: contrib/admin/templates/admin_doc/view_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/bookmarklets.html:4
-#: contrib/admin/templates/admin_doc/index.html:4
-#: contrib/admin/templates/admin_doc/missing_docutils.html:4
-#: contrib/admin/templates/admin_doc/template_tag_index.html:5
-#: contrib/admin/templates/admin_doc/template_filter_index.html:5
-#: contrib/admin/templates/admin_doc/view_detail.html:4
-#: contrib/admin/templates/admin_doc/template_detail.html:4
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/auth/user/change_password.html:9
-#: contrib/admin/templates/admin/auth/user/change_password.html:15
-#: contrib/admin/templates/admin/auth/user/change_password.html:46
-#: contrib/admin/templates/registration/password_change_done.html:3
-#: contrib/admin/templates/registration/password_change_form.html:3
-msgid "Change password"
-msgstr "שינוי סיסמה"
+#: contrib/auth/forms.py:17
+#: contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "שני שדות הסיסמה אינם זהים."
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-#: contrib/admin/templates/admin/base.html:30
-#: contrib/admin/templates/admin/change_form.html:13
-#: contrib/admin/templates/admin/delete_confirmation.html:6
-#: 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/change_list.html:6
-#: contrib/admin/templates/admin/auth/user/change_password.html:12
-#: contrib/admin/templates/registration/password_reset_form.html:4
-#: contrib/admin/templates/registration/logged_out.html:4
-#: contrib/admin/templates/registration/password_reset_done.html:4
-#: contrib/admin/templates/registration/password_change_done.html:4
-#: contrib/admin/templates/registration/password_change_form.html:4
-msgid "Home"
-msgstr "דף הבית"
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "משתמש עם שם משתמש זה קיים כבר"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-#: contrib/admin/templates/admin/base.html:25
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/auth/user/change_password.html:9
-#: contrib/admin/templates/registration/password_change_done.html:3
-#: contrib/admin/templates/registration/password_change_form.html:3
-msgid "Documentation"
-msgstr "תיעוד"
+#: contrib/auth/forms.py:53
+msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
+msgstr "נראה שעוגיות לא מאופשרות בדפדפן שלך.הן נדרשות כדי להתחבר."
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
-msgid "Bookmarklets"
-msgstr "ייסומניות"
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "חשבון זה אינו פעיל."
-#: contrib/admin/templates/admin_doc/bookmarklets.html:5
-msgid "Documentation bookmarklets"
-msgstr "ייסומוניות תיעוד"
+#: 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/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"
-msgstr ""
-"\n"
-"<p class=\"help\">כדי להתקין ייסומניות, יש לגרור את הקישור לסרגל הסימניות\n"
-"שלך, או קליק ימני והוספה לסימניות. כעת ניתן\n"
-"לבחור את הייסומניה מכל עמוד באתר. יש לשים לב כי חלק מהייסומניות\n"
-"ניתנות לצפיה רק ממחשב שמסווג\n"
-"כ\"פנימי\" (יש לדבר עם מנהל המערכת שלך אם אינך בטוח/ה\n"
-"שהמחשב מסווג ככזה).</p>\n"
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "שני שדות 'הסיסמה החדשה' אינם זהים."
-#: contrib/admin/templates/admin_doc/bookmarklets.html:19
-msgid "Documentation for this page"
-msgstr "תיעוד לדף זה"
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+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."
-msgstr "מקפיץ אותך מכל עמוד לתיעוד התצוגה שייצרה אותו."
+#: contrib/auth/models.py:73
+#: contrib/auth/models.py:93
+msgid "name"
+msgstr "שם"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:22
-msgid "Show object ID"
-msgstr "הצג מזהה אובייקט"
+#: contrib/auth/models.py:75
+msgid "codename"
+msgstr "שם קוד"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:23
-msgid ""
-"Shows the content-type and unique ID for pages that represent a single "
-"object."
-msgstr "מציג את סוג התוכן והמזהה הייחודי לעמודים המייצגים אובייקט בודד."
+#: contrib/auth/models.py:78
+msgid "permission"
+msgstr "הרשאה"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:25
-msgid "Edit this object (current window)"
-msgstr "עריכת אובייקט זה (בחלון הנוכחי)"
+#: contrib/auth/models.py:79
+#: contrib/auth/models.py:94
+msgid "permissions"
+msgstr "הרשאות"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:26
-msgid "Jumps to the admin page for pages that represent a single object."
-msgstr "קופץ לעמוד הניהול לעמודים אשר מייצגים אובייקטים בודד."
+#: contrib/auth/models.py:97
+msgid "group"
+msgstr "קבוצה"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:28
-msgid "Edit this object (new window)"
-msgstr "עריכת אובייקט זה (בחלון חדש)"
+#: contrib/auth/models.py:98
+#: contrib/auth/models.py:141
+msgid "groups"
+msgstr "קבוצות"
-#: contrib/admin/templates/admin_doc/bookmarklets.html:29
-msgid "As above, but opens the admin page in a new window."
-msgstr "כנ\"ל, אך דף הניהול ייפתח בחלון חדש."
+#: contrib/auth/models.py:131
+msgid "username"
+msgstr "שם משתמש"
-#: contrib/admin/templates/admin/filters.html:4
-msgid "Filter"
-msgstr "סינון"
+#: contrib/auth/models.py:131
+msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)."
+msgstr "דורש 30 תווים או פחות. תווים אלפאנומריים בלבד (אותיות, ספרות וקווים תחתונים)."
-#: contrib/admin/templates/admin/base.html:25
-msgid "Welcome,"
-msgstr "שלום"
+#: contrib/auth/models.py:132
+msgid "first name"
+msgstr "שם פרטי"
-#: contrib/admin/templates/admin/change_form.html:15
-#: contrib/admin/templates/admin/index.html:28
-msgid "Add"
-msgstr "הוספה"
+#: contrib/auth/models.py:133
+msgid "last name"
+msgstr "שם משפחה"
-#: contrib/admin/templates/admin/change_form.html:21
-#: contrib/admin/templates/admin/object_history.html:5
-msgid "History"
-msgstr "היסטוריה"
+#: contrib/auth/models.py:134
+msgid "e-mail address"
+msgstr "כתובת דוא\"ל"
-#: contrib/admin/templates/admin/change_form.html:22
-msgid "View on site"
-msgstr "צפיה באתר"
+#: contrib/auth/models.py:135
+msgid "password"
+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."
-msgstr "נא לתקן את השגיאה המופיעה מתחת."
+#: contrib/auth/models.py:135
+msgid "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."
+msgstr "יש להזין '[algo]$[salt]$[hexdigest]' או להשתמש ב<a href=\"password/\">טופס שינוי הסיסמה</a>."
-#: contrib/admin/templates/admin/change_form.html:50
-msgid "Ordering"
-msgstr "מיון"
+#: contrib/auth/models.py:136
+msgid "staff status"
+msgstr "סטטוס איש צוות"
-#: contrib/admin/templates/admin/change_form.html:53
-msgid "Order:"
-msgstr "מיון:"
+#: contrib/auth/models.py:136
+msgid "Designates whether the user can log into this admin site."
+msgstr "מציין האם המשתמש יכול להתחבר לאתר הניהול."
-#: contrib/admin/templates/admin/delete_confirmation.html:9
-#: contrib/admin/templates/admin/submit_line.html:3
-msgid "Delete"
-msgstr "מחיקה"
+#: contrib/auth/models.py:137
+msgid "active"
+msgstr "פעיל"
-#: contrib/admin/templates/admin/delete_confirmation.html:14
-#, python-format
-msgid ""
-"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
-"related objects, but your account doesn't have permission to delete the "
-"following types of objects:"
-msgstr ""
-"מחיקת %(object_name)s '%(escaped_object)s' מצריכה מחיקת "
-"אובייקטים מקושרים, אך לחשבון שלך אין הרשאות למחיקת"
-"סוגי האובייקטים הבאים:"
+#: contrib/auth/models.py:137
+msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."
+msgstr "מציין האם המשתמש יכול להתחבר לאתר הניהול. יש לבטל בחירה זובמקום למחוק חשבונות משתמשים."
-#: contrib/admin/templates/admin/delete_confirmation.html:21
-#, python-format
-msgid ""
-"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
-"All of the following related items will be deleted:"
-msgstr ""
-"האם ברצונך למחוק את %(object_name)s \"%(escaped_object)s\"? "
-"כל הפריטים הקשורים הבאים יימחקו:"
+#: contrib/auth/models.py:138
+msgid "superuser status"
+msgstr "סטטוס משתמש על"
-#: contrib/admin/templates/admin/delete_confirmation.html:26
-msgid "Yes, I'm sure"
-msgstr "כן, אני בטוח/ה"
+#: contrib/auth/models.py:138
+msgid "Designates that this user has all permissions without explicitly assigning them."
+msgstr "מציין שלמשתמש זה יש את כל ההרשאות ללא הצורך המפורש בהענקתן."
-#: contrib/admin/templates/admin/filter.html:2
-#, python-format
-msgid " By %(filter_title)s "
-msgstr " לפי %(filter_title)s "
+#: contrib/auth/models.py:139
+msgid "last login"
+msgstr "כניסה אחרונה"
-#: contrib/admin/templates/admin/500.html:4
-msgid "Server error"
-msgstr "שגיאת שרת"
+#: contrib/auth/models.py:140
+msgid "date joined"
+msgstr "תאריך הצטרפות"
-#: contrib/admin/templates/admin/500.html:6
-msgid "Server error (500)"
-msgstr "שגיאת שרת (500)"
+#: contrib/auth/models.py:142
+msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
+msgstr "בנוסף לכל ההרשאות שהוקצו ידנית, יוענקו למשתמש גם כל ההרשאות של כל קבוצה המשוייכת אליו."
-#: contrib/admin/templates/admin/500.html:9
-msgid "Server Error <em>(500)</em>"
-msgstr "שגיאת שרת <em>(500)</em>"
+#: contrib/auth/models.py:143
+msgid "user permissions"
+msgstr "הרשאות משתמש"
-#: 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 ""
-"התרחשה שגיאה. היא דווחה למנהלי האתר בדוא\"ל ותתוקן בקרוב. תודה על סבלנותך."
+#: contrib/auth/models.py:147
+msgid "user"
+msgstr "משתמש"
-#: contrib/admin/templates/admin/index.html:17
-#, python-format
-msgid "Models available in the %(name)s application."
-msgstr "מודלים זמינים ביישום %(name)s."
+#: contrib/auth/models.py:148
+msgid "users"
+msgstr "משתמשים"
-#: contrib/admin/templates/admin/index.html:18
-#, python-format
-msgid "%(name)s"
-msgstr "%(name)s"
+#: contrib/auth/models.py:154
+msgid "Personal info"
+msgstr "מידע אישי"
-#: contrib/admin/templates/admin/index.html:34
-msgid "Change"
-msgstr "שינוי"
+#: contrib/auth/models.py:155
+msgid "Permissions"
+msgstr "הרשאות"
-#: contrib/admin/templates/admin/index.html:44
-msgid "You don't have permission to edit anything."
-msgstr "אין לך הרשאות לעריכה"
+#: contrib/auth/models.py:156
+msgid "Important dates"
+msgstr "תאריכים חשובים"
-#: contrib/admin/templates/admin/index.html:52
-msgid "Recent Actions"
-msgstr "פעולות אחרונות"
+#: contrib/auth/models.py:157
+msgid "Groups"
+msgstr "קבוצות"
-#: contrib/admin/templates/admin/index.html:53
-msgid "My Actions"
-msgstr "הפעולות שלי"
+#: contrib/auth/models.py:316
+msgid "message"
+msgstr "הודעה"
-#: contrib/admin/templates/admin/index.html:57
-msgid "None available"
-msgstr "לא נמצאו"
+#: contrib/auth/views.py:47
+msgid "Logged out"
+msgstr "יצאת מהמערכת"
-#: 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 ""
-"משהו שגוי בהתקנת בסיס הנתונים שלך. נא לוודא שנוצרו טבלאות בסיס הנתונים "
-"המתאימות, ובסיס הנתונים ניתן לקריאה על ידי המשתמש המתאים."
+#: contrib/comments/models.py:67
+#: contrib/comments/models.py:169
+msgid "object ID"
+msgstr "מזהה אובייקט"
-#: contrib/admin/templates/admin/object_history.html:18
-msgid "Date/time"
-msgstr "תאריך/שעה"
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "כותרת"
-#: contrib/admin/templates/admin/object_history.html:19
-msgid "User"
-msgstr "משתמש"
+#: contrib/comments/models.py:69
+#: contrib/comments/models.py:90
+#: contrib/comments/models.py:170
+msgid "comment"
+msgstr "תגובה"
-#: contrib/admin/templates/admin/object_history.html:20
-msgid "Action"
-msgstr "פעולה"
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "דירוג #1"
-#: contrib/admin/templates/admin/object_history.html:26
-msgid "DATE_WITH_TIME_FULL"
-msgstr "l d.m.y H:i:s"
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "דירוג #2"
-#: contrib/admin/templates/admin/object_history.html:36
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "דירוג #3"
+
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "דירוג #4"
+
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "דירוג #5"
+
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "דירוג #6"
+
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "דירוג #7"
+
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "דירוג #8"
+
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "האם דירוג חוקי"
+
+#: contrib/comments/models.py:83
+#: contrib/comments/models.py:172
+msgid "date/time submitted"
+msgstr "תאריך/שעת הגשה"
+
+#: contrib/comments/models.py:84
+#: contrib/comments/models.py:173
+msgid "is public"
+msgstr "ציבורי"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "האם הוסר"
+
+#: contrib/comments/models.py:86
+msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
+msgstr "יש לסמן תיבה זו עבור תגובה לא נאותה. הודעת \"תגובה זו נמחקה\" תוצג במקום."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "תגובות"
+
+#: contrib/comments/models.py:134
+#: contrib/comments/models.py:213
+msgid "Content object"
+msgstr "אובייקט תוכן"
+
+#: contrib/comments/models.py:162
+#, python-format
msgid ""
-"This object doesn't have a change history. It probably wasn't added via this "
-"admin site."
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
msgstr ""
-"לאובייקט זה אין היסטוריית שינוי. כנראה לא השתמשו בממשק הניהול הזה להוספתו."
+"הוגש ע\"י %(user)s ב %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
-#: contrib/admin/templates/admin/submit_line.html:4
-msgid "Save as new"
-msgstr "שמירה כחדש"
+#: contrib/comments/models.py:171
+msgid "person's name"
+msgstr "שם"
-#: contrib/admin/templates/admin/submit_line.html:5
-msgid "Save and add another"
-msgstr "שמירה והוספת אחר"
+#: contrib/comments/models.py:174
+msgid "ip address"
+msgstr "כתובת IP"
-#: contrib/admin/templates/admin/submit_line.html:6
-msgid "Save and continue editing"
-msgstr "שמירה והמשך עריכה"
+#: contrib/comments/models.py:176
+msgid "approved by staff"
+msgstr "אושר ע\"י הצוות"
-#: contrib/admin/templates/admin/submit_line.html:7
-msgid "Save"
-msgstr "שמירה"
+#: contrib/comments/models.py:179
+msgid "free comment"
+msgstr "הערה אנונימית"
-#: contrib/admin/templates/admin/404.html:4
-#: contrib/admin/templates/admin/404.html:8
-msgid "Page not found"
-msgstr "דף לא קיים"
+#: contrib/comments/models.py:180
+msgid "free comments"
+msgstr "הערות אנונימיות"
-#: contrib/admin/templates/admin/404.html:10
-msgid "We're sorry, but the requested page could not be found."
-msgstr "אנו מצטערים, לא ניתן למצוא את הדף המבוקש."
+#: contrib/comments/models.py:239
+msgid "score"
+msgstr "ציון"
-#: contrib/admin/templates/admin/search_form.html:8
-msgid "Go"
-msgstr "בצע"
+#: contrib/comments/models.py:240
+msgid "score date"
+msgstr "תאריך ציון"
-#: contrib/admin/templates/admin/search_form.html:10
+#: contrib/comments/models.py:243
+msgid "karma score"
+msgstr "ניקוד קארמה"
+
+#: contrib/comments/models.py:244
+msgid "karma scores"
+msgstr "ניקודי קארמה"
+
+#: contrib/comments/models.py:248
#, python-format
-msgid "1 result"
-msgstr "תוצאה אחת"
+msgid "%(score)d rating by %(user)s"
+msgstr "%(score)d·דירוג ע\"י·%(user)s"
-#: contrib/admin/templates/admin/search_form.html:10
+#: contrib/comments/models.py:264
#, python-format
-msgid "%(full_result_count)s total"
-msgstr "%(full_result_count)s סה\"כ"
+msgid ""
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"התגובה סומנה ע\"י %(user)s:\n"
+"\n"
+"%(text)s"
-#: contrib/admin/templates/admin/pagination.html:10
-msgid "Show all"
-msgstr "הצג הכל"
+#: contrib/comments/models.py:271
+msgid "flag date"
+msgstr "תאריך סימון"
-#: contrib/admin/templates/admin/change_list.html:12
+#: contrib/comments/models.py:274
+msgid "user flag"
+msgstr "סימון ע\"י משתמש"
+
+#: contrib/comments/models.py:275
+msgid "user flags"
+msgstr "סימונים ע\"י משתמש"
+
+#: contrib/comments/models.py:279
#, python-format
-msgid "Add %(name)s"
-msgstr "הוספת %(name)s"
+msgid "Flag by %r"
+msgstr "סימון ע\"י %r"
-#: contrib/admin/templates/admin/base_site.html:4
-msgid "Django site admin"
-msgstr "ניהול אתר Django"
+#: contrib/comments/models.py:284
+msgid "deletion date"
+msgstr "תאריך מחיקה"
-#: contrib/admin/templates/admin/base_site.html:7
-msgid "Django administration"
-msgstr "ניהול Django"
+#: contrib/comments/models.py:286
+msgid "moderator deletion"
+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."
-msgstr "ראשית יש להזין שם משתמש וסיסמה. לאחר מכן יהיה ביכולתך לערוך אפשרויות"
-"נוספות עבור המשתמש"
+#: contrib/comments/models.py:287
+msgid "moderator deletions"
+msgstr "מחיקות מודרטור"
-#: contrib/admin/templates/admin/auth/user/add_form.html:12
-msgid "Username"
-msgstr "שם משתמש"
+#: contrib/comments/models.py:291
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "מחיקת מודרציה ע\"י %r"
-#: contrib/admin/templates/admin/auth/user/add_form.html:18
-#: contrib/admin/templates/admin/auth/user/change_password.html:34
-msgid "Password"
-msgstr "סיסמה"
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "שכחת את סיסמתך ?"
-#: contrib/admin/templates/admin/auth/user/add_form.html:23
-#: contrib/admin/templates/admin/auth/user/change_password.html:39
-msgid "Password (again)"
-msgstr "סיסמה (שוב)"
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+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."
-msgstr "יש להזין את אותה סיסנה שוב,לאימות."
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+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>."
-msgstr "יש להזין סיסמה חדשה עבור המשתמש <strong>%(username)s</strong>."
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "אופציונלי"
-#: contrib/admin/templates/widget/file.html:2
-msgid "Currently:"
-msgstr "הנוכחי."
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "שליחת תמונה"
-#: contrib/admin/templates/widget/file.html:3
-msgid "Change:"
-msgstr "שינוי:"
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "תגובה:"
-#: contrib/admin/templates/widget/date_time.html:3
-msgid "Date:"
-msgstr "תאריך:"
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "תצוגה מקדימה של התגובה"
-#: contrib/admin/templates/widget/date_time.html:4
-msgid "Time:"
-msgstr "שעה:"
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "שמך:"
-#: contrib/admin/templates/registration/password_reset_form.html:4
-#: contrib/admin/templates/registration/password_reset_form.html:6
-#: contrib/admin/templates/registration/password_reset_form.html:10
-#: contrib/admin/templates/registration/password_reset_done.html:4
-msgid "Password reset"
-msgstr "איפוס סיסמה"
+#: contrib/comments/views/comments.py:28
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "הדירוג נדרש מאחר והזנת לפחות דרוג אחד אחר."
-#: contrib/admin/templates/registration/password_reset_form.html:12
+#: contrib/comments/views/comments.py:112
+#, python-format
msgid ""
-"Forgotten your password? Enter your e-mail address below, and we'll reset "
-"your password and e-mail the new one to you."
+"This comment was posted by a user who has posted fewer than %(count)s comment:\n"
+"\n"
+"%(text)sThis comment was posted by a user who has posted fewer than %(count)s comments:\n"
+"\n"
+"%(text)s"
msgstr ""
-"שכחת את סיסמתך ? נא להזין את כתובת הדוא\"ל מתחת, אנו נאפסאת הסיסמה ונשלח את "
-"החדשה אליך."
+"תגובה זו נשלחה ממשתמש ששלח פחות מ-%(count)s תגובה:\n"
+"\n"
+"%(text)sתגובה זו נשלחה ממשתמש ששלח פחות מ-%(count)s תגובות:\n"
+"\n"
+"%(text)s"
-#: contrib/admin/templates/registration/password_reset_form.html:16
-msgid "E-mail address:"
-msgstr "כתובת דוא\"ל:"
+#: contrib/comments/views/comments.py:117
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"ההודעה נשלחה ע\"י משתמש מפוקפק:\n"
+"\n"
+"%(text)s"
-#: contrib/admin/templates/registration/password_reset_form.html:16
-msgid "Reset my password"
-msgstr "אפס את סיסמתי"
+#: contrib/comments/views/comments.py:190
+#: contrib/comments/views/comments.py:283
+msgid "Only POSTs are allowed"
+msgstr "רק פעולות POST מותרות"
-#: contrib/admin/templates/registration/logged_out.html:8
-msgid "Thanks for spending some quality time with the Web site today."
-msgstr "תודה על בילוי זמן איכות עם האתר."
+#: 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/admin/templates/registration/logged_out.html:10
-msgid "Log in again"
-msgstr "התחבר/י שוב"
+#: contrib/comments/views/comments.py:198
+#: contrib/comments/views/comments.py:289
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "מישהו התעסק עם טופס התגובה (הפרת אבטחה)"
-#: contrib/admin/templates/registration/password_reset_done.html:6
-#: contrib/admin/templates/registration/password_reset_done.html:10
-msgid "Password reset successful"
-msgstr "הסיסמה אופסה בהצלחה"
+#: 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 "טופס התגובה הכיל פרמטר target לא חוקי -- מזהה האובייקט אינו חוקי"
-#: 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/comments/views/comments.py:259
+#: contrib/comments/views/comments.py:324
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "טופס התגובה לא הכיל 'preview' או 'post'"
-#: contrib/admin/templates/registration/password_reset_email.html:2
-msgid "You're receiving this e-mail because you requested a password reset"
-msgstr "הודעה זו התקבלה כי ביקשת איפוס סיסמה"
+#: contrib/comments/views/karma.py:21
+msgid "Anonymous users cannot vote"
+msgstr "משתמשים אנונימיים אינם יכולים להצביע"
-#: contrib/admin/templates/registration/password_reset_email.html:3
+#: contrib/comments/views/karma.py:25
+msgid "Invalid comment ID"
+msgstr "מזהה תגובה שגוי"
+
+#: contrib/comments/views/karma.py:27
+msgid "No voting for yourself"
+msgstr "לא ניתן להצביע לעצמך"
+
+#: contrib/contenttypes/models.py:37
+msgid "python model class name"
+msgstr "שם ה-class של מודל פייתון"
+
+#: contrib/contenttypes/models.py:40
+msgid "content type"
+msgstr "סוג תוכן"
+
+#: contrib/contenttypes/models.py:41
+msgid "content types"
+msgstr "סוגי תוכן"
+
+#: contrib/flatpages/models.py:8
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "לדוגמא: '/about/contact/'. יש לוודא הימצאות הקווים הנטויים בהתחלה ובסוף."
+
+#: contrib/flatpages/models.py:9
+msgid "title"
+msgstr "כותרת"
+
+#: contrib/flatpages/models.py:10
+msgid "content"
+msgstr "תוכן"
+
+#: contrib/flatpages/models.py:11
+msgid "enable comments"
+msgstr "אפשר תגובות"
+
+#: contrib/flatpages/models.py:12
+msgid "template name"
+msgstr "שם תבנית"
+
+#: contrib/flatpages/models.py:13
+msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."
+msgstr "דוגמא: 'flatpages/contact_page.html'. אם זה לא צויין, המערכת תשתמש ב-'flatpages/default.html'."
+
+#: contrib/flatpages/models.py:14
+msgid "registration required"
+msgstr "הרשמה נדרשת"
+
+#: contrib/flatpages/models.py:14
+msgid "If this is checked, only logged-in users will be able to view the page."
+msgstr "אם זה מסומך, רק משתמשים מחוברים יוכלו לצפות בדף."
+
+#: contrib/flatpages/models.py:18
+msgid "flat page"
+msgstr "דף פשוט"
+
+#: contrib/flatpages/models.py:19
+msgid "flat pages"
+msgstr "דפים פשוטים"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "th"
+msgstr "רביעי"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "st"
+msgstr "ראשון"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "nd"
+msgstr "שני"
+
+#: contrib/humanize/templatetags/humanize.py:20
+msgid "rd"
+msgstr "שלישי"
+
+#: contrib/humanize/templatetags/humanize.py:50
#, python-format
-msgid "for your user account at %(site_name)s"
-msgstr "עבור חשבון המשתמש שלך ב %(site_name)s"
+msgid "%(value).1f million"
+msgstr "%(value).1f מיליון"
-#: contrib/admin/templates/registration/password_reset_email.html:5
+#: contrib/humanize/templatetags/humanize.py:53
#, python-format
-msgid "Your new password is: %(new_password)s"
-msgstr "סיסמתך החדשה: %(new_password)s"
+msgid "%(value).1f billion"
+msgstr "%(value).1f ביליון"
-#: contrib/admin/templates/registration/password_reset_email.html:7
-msgid "Feel free to change this password by going to this page:"
-msgstr "ניתן לשנות את הסיסמה בכל עת ע\"י פניה לדף זה:"
+#: contrib/humanize/templatetags/humanize.py:56
+#, python-format
+msgid "%(value).1f trillion"
+msgstr "%(value).1f טריליון"
-#: contrib/admin/templates/registration/password_reset_email.html:11
-msgid "Your username, in case you've forgotten:"
-msgstr "שם המשתמש שלך, במקרה ששכחת:"
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "one"
+msgstr "אחד"
-#: contrib/admin/templates/registration/password_reset_email.html:13
-msgid "Thanks for using our site!"
-msgstr "תודה על השימוש באתר שלנו!"
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "two"
+msgstr "שניים"
-#: contrib/admin/templates/registration/password_reset_email.html:15
-#, python-format
-msgid "The %(site_name)s team"
-msgstr "צוות %(site_name)s"
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "three"
+msgstr "שלושה"
-#: contrib/admin/templates/registration/password_change_done.html:4
-#: contrib/admin/templates/registration/password_change_form.html:4
-#: contrib/admin/templates/registration/password_change_form.html:6
-#: contrib/admin/templates/registration/password_change_form.html:10
-msgid "Password change"
-msgstr "שינוי סיסמה"
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "four"
+msgstr "ארבעה"
-#: contrib/admin/templates/registration/password_change_done.html:6
-#: contrib/admin/templates/registration/password_change_done.html:10
-msgid "Password change successful"
-msgstr "הסיסמה שונתה בהצלחה"
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "five"
+msgstr "חמישה"
-#: contrib/admin/templates/registration/password_change_done.html:12
-msgid "Your password was changed."
-msgstr "סיסמתך שונתה."
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "six"
+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."
-msgstr ""
-"נא להזין את סיסמתך הישנה, למען האבטחה, ולאחר מכן את סיסמתךהחדשה פעמיים כדי "
-"שנוכל לוודא שהקלדת אותה כראוי."
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "seven"
+msgstr "שבעה"
-#: contrib/admin/templates/registration/password_change_form.html:17
-msgid "Old password:"
-msgstr "סיסמה ישנה:"
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "eight"
+msgstr "שמונה"
-#: contrib/admin/templates/registration/password_change_form.html:19
-msgid "New password:"
-msgstr "סיסמה חדשה:"
+#: contrib/humanize/templatetags/humanize.py:71
+msgid "nine"
+msgstr "תשעה"
-#: contrib/admin/templates/registration/password_change_form.html:21
-msgid "Confirm password:"
-msgstr "אימות סיסמה:"
+#: contrib/humanize/templatetags/humanize.py:90
+msgid "today"
+msgstr "היום"
-#: contrib/admin/templates/registration/password_change_form.html:23
-msgid "Change my password"
-msgstr "שנה את סיסמתי"
+#: contrib/humanize/templatetags/humanize.py:92
+msgid "tomorrow"
+msgstr "מחר"
-#: contrib/localflavor/it/forms.py:16
-msgid "Enter a valid zip code."
-msgstr "יש להזין מיקוד חוקי."
+#: contrib/humanize/templatetags/humanize.py:94
+msgid "yesterday"
+msgstr "אתמול"
-#: contrib/localflavor/it/forms.py:41
-msgid "Enter a valid Social Security number."
-msgstr "יש להזין מספר ביטוח לאומי חוקי."
+#: contrib/localflavor/ar/forms.py:30
+#: contrib/localflavor/ar/forms.py:38
+msgid "Enter a postal code in the format NNNN or ANNNNAAA."
+msgstr "יש להזין קוד דואר בתחביר NNNN או ANNNNAAA."
-#: contrib/localflavor/it/forms.py:68
-msgid "Enter a valid VAT number."
-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/us/forms.py:18
-msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
-msgstr "יש להזין מיקוד חוקי בתחביר XXXXX או XXXXX-XXXX."
+#: contrib/localflavor/ar/forms.py:64
+msgid "This field requires 7 or 8 digits."
+msgstr "שדה זה דורש 7 או 8 ספרות."
-#: contrib/localflavor/us/forms.py:51
-msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
-msgstr "יש להזין מספר ביטוח לאומי אמריקאי בתחביר XXX-XX-XXXX."
+#: contrib/localflavor/ar/forms.py:75
+msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
+msgstr "יש להזין מספר CUIT חוקי בתחביר XX-XXXXXXXX-X או XXXXXXXXXXXX."
-#: 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."
-msgstr "יש להזין מיקוד בתחביר XXXXX."
+#: contrib/localflavor/ar/forms.py:88
+msgid "Invalid CUIT."
+msgstr "CUIT שגוי"
-#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:15
-msgid "Enter a zip code in the format XXXX."
-msgstr "יש להזין מיקוד בתחביר XXXX."
+#: contrib/localflavor/au/forms.py:18
+msgid "Enter a 4 digit post code."
+msgstr "יש להזין קוד דואר בן 4 ספרות."
-#: contrib/localflavor/ch/forms.py:90
-msgid ""
-"Enter a valid Swiss identity or passport card number in X1234567<0 or "
-"1234567890 format."
-msgstr ""
-"יש להזין מספר זיהוי או דרכון שוויצרי בתחביר X1234567<0 או "
-"1234567890."
+#: contrib/localflavor/br/forms.py:23
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "יש להזין מיקוד בתחביר XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:35
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "מספרי טלפון חייבים להיות בתחביר XX-XXXX-XXXX."
+
+#: contrib/localflavor/br/forms.py:68
+msgid "Select a valid brazilian state. That state is not one of the available states."
+msgstr "נא לבחור מדינה ברזילאית חוקית. מדינה זו אינה אחת מהמדינות האפשריות."
+
+#: contrib/localflavor/br/forms.py:105
+msgid "This field requires at most 11 digits or 14 characters."
+msgstr "שדה זה דורש 11 או 14 ספרות לכל היותר."
+
+#: contrib/localflavor/br/forms.py:115
+msgid "Invalid CPF number."
+msgstr "מספר CPF לא חוקי"
+
+#: contrib/localflavor/br/forms.py:137
+msgid "This field requires at least 14 digits"
+msgstr "שדה זה דורש לפחות 14 ספרות."
+
+#: contrib/localflavor/br/forms.py:147
+msgid "Invalid CNPJ number."
+msgstr "מספר CNPJ לא חוקי"
+
+#: contrib/localflavor/ca/forms.py:19
+msgid "Enter a postal code in the format XXX XXX."
+msgstr "יש להזין מיקוד בתחביר XXX XXX."
+
+#: contrib/localflavor/ca/forms.py:81
+msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format."
+msgstr "יש להזין מספר ביטוח לאומי קנדי חוקי בתחביר XXX-XXX-XXXX."
#: contrib/localflavor/ch/ch_states.py:5
msgid "Aargau"
-msgstr ""
+msgstr "ארגאו"
#: contrib/localflavor/ch/ch_states.py:6
msgid "Appenzell Innerrhoden"
-msgstr ""
+msgstr "אפנצל אינר-רודן"
#: contrib/localflavor/ch/ch_states.py:7
msgid "Appenzell Ausserrhoden"
-msgstr ""
+msgstr "אפנצל אוסר-רודן"
#: contrib/localflavor/ch/ch_states.py:8
msgid "Basel-Stadt"
-msgstr ""
+msgstr "באזל-שטאדט"
#: contrib/localflavor/ch/ch_states.py:9
msgid "Basel-Land"
-msgstr ""
+msgstr "באזל-לנדשאפט"
#: contrib/localflavor/ch/ch_states.py:10
msgid "Berne"
@@ -2203,7 +1674,7 @@ msgstr "ברן"
#: contrib/localflavor/ch/ch_states.py:11
msgid "Fribourg"
-msgstr ""
+msgstr "פריבור"
#: contrib/localflavor/ch/ch_states.py:12
msgid "Geneva"
@@ -2215,11 +1686,11 @@ msgstr "גלרוס"
#: contrib/localflavor/ch/ch_states.py:14
msgid "Graubuenden"
-msgstr ""
+msgstr "גראובינדן"
#: contrib/localflavor/ch/ch_states.py:15
msgid "Jura"
-msgstr ""
+msgstr "ז'ורה"
#: contrib/localflavor/ch/ch_states.py:16
msgid "Lucerne"
@@ -2227,31 +1698,31 @@ msgstr "לוצרן"
#: contrib/localflavor/ch/ch_states.py:17
msgid "Neuchatel"
-msgstr ""
+msgstr "נשאטל"
#: contrib/localflavor/ch/ch_states.py:18
msgid "Nidwalden"
-msgstr ""
+msgstr "נידוולדן"
#: contrib/localflavor/ch/ch_states.py:19
msgid "Obwalden"
-msgstr ""
+msgstr "אובוולדן"
#: contrib/localflavor/ch/ch_states.py:20
msgid "Schaffhausen"
-msgstr ""
+msgstr "שפהאוזן"
#: contrib/localflavor/ch/ch_states.py:21
msgid "Schwyz"
-msgstr ""
+msgstr "שוויץ"
#: contrib/localflavor/ch/ch_states.py:22
msgid "Solothurn"
-msgstr ""
+msgstr "זולותורן"
#: contrib/localflavor/ch/ch_states.py:23
msgid "St. Gallen"
-msgstr ""
+msgstr "סנט גלן"
#: contrib/localflavor/ch/ch_states.py:24
msgid "Thurgau"
@@ -2259,19 +1730,19 @@ msgstr "Thurgau"
#: contrib/localflavor/ch/ch_states.py:25
msgid "Ticino"
-msgstr ""
+msgstr "טיצ'ינו"
#: contrib/localflavor/ch/ch_states.py:26
msgid "Uri"
-msgstr ""
+msgstr "אורי"
#: contrib/localflavor/ch/ch_states.py:27
msgid "Valais"
-msgstr ""
+msgstr "ואלה"
#: contrib/localflavor/ch/ch_states.py:28
msgid "Vaud"
-msgstr ""
+msgstr "וו"
#: contrib/localflavor/ch/ch_states.py:29
msgid "Zug"
@@ -2279,80 +1750,28 @@ msgstr "צוג"
#: contrib/localflavor/ch/ch_states.py:30
msgid "Zurich"
-msgstr ""
-
-#: contrib/localflavor/no/forms.py:36
-msgid "Enter a valid Norwegian social security number."
-msgstr "יש להזין מספר ביטוח לאומי נורבגי חוקי."
-
-#: contrib/localflavor/br/forms.py:18
-msgid "Enter a zip code in the format XXXXX-XXX."
-msgstr "יש להזין מיקוד בתחביר XXXXX-XXX."
-
-#: contrib/localflavor/br/forms.py:30
-msgid "Phone numbers must be in XX-XXXX-XXXX format."
-msgstr "מספרי טלפון חייבים להיות בתחביר XX-XXXX-XXXX."
-
-#: contrib/localflavor/br/forms.py:72
-msgid "This field requires only numbers."
-msgstr "יש להזין רק ספרות בשדה זה."
-
-#: contrib/localflavor/br/forms.py:74
-msgid "This field requires at most 11 digits or 14 characters."
-msgstr "שדה זה דורש 11 או 14 ספרות לכל היותר."
-
-#: contrib/localflavor/br/forms.py:84
-msgid "Invalid CPF number."
-msgstr "מספר CPF לא חוקי"
-
-#: contrib/localflavor/br/forms.py:106
-msgid "This field requires at least 14 digits"
-msgstr "שדה זה דורש לפחות 14 ספרות."
+msgstr "ציריך"
-#: contrib/localflavor/br/forms.py:116
-msgid "Invalid CNPJ number."
-msgstr "מספר CNPJ לא חוקי"
-
-#: contrib/localflavor/uk/forms.py:18
-msgid "Enter a postcode. A space is required between the two postcode parts."
-msgstr "יש להזין קוד דואר. נדרש רווח בין שני חלקי הקוד."
-
-#: contrib/localflavor/is_/forms.py:16
-msgid ""
-"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
-msgstr ""
-"יש להזין מספר זיהוי איסלנדי חוקי. התחביר הוא XXXXXX-XXXX."
-
-#: contrib/localflavor/is_/forms.py:30
-msgid "The Icelandic identification number is not valid."
-msgstr ""
+#: contrib/localflavor/ch/forms.py:18
+#: contrib/localflavor/no/forms.py:14
+msgid "Enter a zip code in the format XXXX."
+msgstr "יש להזין מיקוד בתחביר XXXX."
-#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45
-msgid "Enter a valid Finnish social security number."
-msgstr "יש להזין מספר ביטוח לאומי פיני חוקי."
+#: contrib/localflavor/ch/forms.py:90
+msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format."
+msgstr "יש להזין מספר זיהוי או דרכון שוויצרי בתחביר X1234567<0 או 1234567890."
-#: contrib/localflavor/cl/forms.py:21
+#: contrib/localflavor/cl/forms.py:32
msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
msgstr "יש להזין RUT צ'יליאני חוקי. התחביר הוא XX.XXX.XXX-X."
-#: contrib/localflavor/cl/forms.py:26
+#: contrib/localflavor/cl/forms.py:37
msgid "Enter valid a Chilean RUT"
msgstr "יש להזין RUT צ'יליאני חוקי."
-#: contrib/localflavor/au/forms.py:18
-msgid "Enter a 4 digit post code."
-msgstr "יש להזין קוד דואר בן 4 ספרות."
-
-#: contrib/localflavor/de/forms.py:60
-msgid ""
-"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
-"format."
-msgstr ""
-"יש להזין מספר זיהוי גרמני חוקי בתחביר XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
-
#: contrib/localflavor/de/de_states.py:5
msgid "Baden-Wuerttemberg"
-msgstr ""
+msgstr "באדן-וירטמברג"
#: contrib/localflavor/de/de_states.py:6
msgid "Bavaria"
@@ -2364,7 +1783,7 @@ msgstr "ברלין"
#: contrib/localflavor/de/de_states.py:8
msgid "Brandenburg"
-msgstr ""
+msgstr "ברנדנבורג"
#: contrib/localflavor/de/de_states.py:9
msgid "Bremen"
@@ -2380,39 +1799,78 @@ msgstr "הסה"
#: contrib/localflavor/de/de_states.py:12
msgid "Mecklenburg-Western Pomerania"
-msgstr ""
+msgstr "מקלנבורג-מערב פומרניה"
#: contrib/localflavor/de/de_states.py:13
msgid "Lower Saxony"
-msgstr ""
+msgstr "סקסוניה התחתונה"
#: contrib/localflavor/de/de_states.py:14
msgid "North Rhine-Westphalia"
-msgstr ""
+msgstr "נורדריין-וסטפאליה"
#: contrib/localflavor/de/de_states.py:15
msgid "Rhineland-Palatinate"
-msgstr ""
+msgstr "ריינלנד-פאלץ"
#: contrib/localflavor/de/de_states.py:16
msgid "Saarland"
-msgstr ""
+msgstr "חבל הסאר"
#: contrib/localflavor/de/de_states.py:17
msgid "Saxony"
-msgstr ""
+msgstr "סקסוניה"
#: contrib/localflavor/de/de_states.py:18
msgid "Saxony-Anhalt"
-msgstr ""
+msgstr "סקסוניה-אנהלט"
#: contrib/localflavor/de/de_states.py:19
msgid "Schleswig-Holstein"
-msgstr ""
+msgstr "שלזוויג-הולשטיין"
#: contrib/localflavor/de/de_states.py:20
msgid "Thuringia"
-msgstr ""
+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 "יש להזין מיקוד בתחביר XXXXX."
+
+#: contrib/localflavor/de/forms.py:60
+msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format."
+msgstr "יש להזין מספר זיהוי גרמני חוקי בתחביר XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: 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 "יש להזין מיקוד בתחביר XXXXXXX."
+
+#: contrib/localflavor/is_/forms.py:17
+msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX."
+msgstr "יש להזין מספר זיהוי איסלנדי חוקי. התחביר הוא XXXXXX-XXXX."
+
+#: contrib/localflavor/is_/forms.py:31
+msgid "The Icelandic identification number is not valid."
+msgstr "מספר הזיהוי האיסלנדי אינו חוקי"
+
+#: contrib/localflavor/it/forms.py:16
+msgid "Enter a valid zip code."
+msgstr "יש להזין מיקוד חוקי."
+
+#: contrib/localflavor/it/forms.py:41
+msgid "Enter a valid Social Security number."
+msgstr "יש להזין מספר ביטוח לאומי חוקי."
+
+#: contrib/localflavor/it/forms.py:68
+msgid "Enter a valid VAT number."
+msgstr "יש להזין מספר מעמ חוקי"
#: contrib/localflavor/jp/forms.py:21
msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
@@ -2420,11 +1878,11 @@ msgstr "יש להזין קוד דואר בתחביר XXXXXXX או XXX-XXXX."
#: contrib/localflavor/jp/jp_prefectures.py:4
msgid "Hokkaido"
-msgstr ""
+msgstr "הוקאידו"
#: contrib/localflavor/jp/jp_prefectures.py:5
msgid "Aomori"
-msgstr ""
+msgstr "אאומורי"
#: contrib/localflavor/jp/jp_prefectures.py:6
msgid "Iwate"
@@ -2432,39 +1890,39 @@ msgstr "Iwate"
#: contrib/localflavor/jp/jp_prefectures.py:7
msgid "Miyagi"
-msgstr ""
+msgstr "מיאגי"
#: contrib/localflavor/jp/jp_prefectures.py:8
msgid "Akita"
-msgstr ""
+msgstr "אקיטה"
#: contrib/localflavor/jp/jp_prefectures.py:9
msgid "Yamagata"
-msgstr ""
+msgstr "יאמאגטה"
#: contrib/localflavor/jp/jp_prefectures.py:10
msgid "Fukushima"
-msgstr ""
+msgstr "פוקושימה"
#: contrib/localflavor/jp/jp_prefectures.py:11
msgid "Ibaraki"
-msgstr ""
+msgstr "איברקי"
#: contrib/localflavor/jp/jp_prefectures.py:12
msgid "Tochigi"
-msgstr ""
+msgstr "טושיגי"
#: contrib/localflavor/jp/jp_prefectures.py:13
msgid "Gunma"
-msgstr ""
+msgstr "גונמה"
#: contrib/localflavor/jp/jp_prefectures.py:14
msgid "Saitama"
-msgstr ""
+msgstr "סאיטאמה"
#: contrib/localflavor/jp/jp_prefectures.py:15
msgid "Chiba"
-msgstr ""
+msgstr "צ'יבה"
#: contrib/localflavor/jp/jp_prefectures.py:16
msgid "Tokyo"
@@ -2472,51 +1930,51 @@ msgstr "טוקיו"
#: contrib/localflavor/jp/jp_prefectures.py:17
msgid "Kanagawa"
-msgstr ""
+msgstr "קאנגאווה"
#: contrib/localflavor/jp/jp_prefectures.py:18
msgid "Yamanashi"
-msgstr ""
+msgstr "יאמאנשי"
#: contrib/localflavor/jp/jp_prefectures.py:19
msgid "Nagano"
-msgstr ""
+msgstr "נאגאנו"
#: contrib/localflavor/jp/jp_prefectures.py:20
msgid "Niigata"
-msgstr ""
+msgstr "נייגטה"
#: contrib/localflavor/jp/jp_prefectures.py:21
msgid "Toyama"
-msgstr ""
+msgstr "טויאמה"
#: contrib/localflavor/jp/jp_prefectures.py:22
msgid "Ishikawa"
-msgstr ""
+msgstr "אישיקאוואה"
#: contrib/localflavor/jp/jp_prefectures.py:23
msgid "Fukui"
-msgstr ""
+msgstr "פוקוי"
#: contrib/localflavor/jp/jp_prefectures.py:24
msgid "Gifu"
-msgstr ""
+msgstr "גיפו"
#: contrib/localflavor/jp/jp_prefectures.py:25
msgid "Shizuoka"
-msgstr ""
+msgstr "שיזואוקה"
#: contrib/localflavor/jp/jp_prefectures.py:26
msgid "Aichi"
-msgstr ""
+msgstr "אייצ'י"
#: contrib/localflavor/jp/jp_prefectures.py:27
msgid "Mie"
-msgstr ""
+msgstr "מיי"
#: contrib/localflavor/jp/jp_prefectures.py:28
msgid "Shiga"
-msgstr ""
+msgstr "שיגה"
#: contrib/localflavor/jp/jp_prefectures.py:29
msgid "Kyoto"
@@ -2528,19 +1986,19 @@ msgstr "אוסקה"
#: contrib/localflavor/jp/jp_prefectures.py:31
msgid "Hyogo"
-msgstr ""
+msgstr "הייוגו"
#: contrib/localflavor/jp/jp_prefectures.py:32
msgid "Nara"
-msgstr ""
+msgstr "נארה"
#: contrib/localflavor/jp/jp_prefectures.py:33
msgid "Wakayama"
-msgstr ""
+msgstr "ווקאייאמה"
#: contrib/localflavor/jp/jp_prefectures.py:34
msgid "Tottori"
-msgstr ""
+msgstr "טוטורי"
#: contrib/localflavor/jp/jp_prefectures.py:35
msgid "Shimane"
@@ -2548,23 +2006,23 @@ msgstr "Shimane"
#: contrib/localflavor/jp/jp_prefectures.py:36
msgid "Okayama"
-msgstr ""
+msgstr "אוקייאמה"
#: contrib/localflavor/jp/jp_prefectures.py:37
msgid "Hiroshima"
-msgstr ""
+msgstr "הירושימה"
#: contrib/localflavor/jp/jp_prefectures.py:38
msgid "Yamaguchi"
-msgstr ""
+msgstr "יאמאגוצ'י"
#: contrib/localflavor/jp/jp_prefectures.py:39
msgid "Tokushima"
-msgstr ""
+msgstr "טוקושימה"
#: contrib/localflavor/jp/jp_prefectures.py:40
msgid "Kagawa"
-msgstr ""
+msgstr "קאגאווה"
#: contrib/localflavor/jp/jp_prefectures.py:41
msgid "Ehime"
@@ -2572,15 +2030,15 @@ msgstr "Ehime"
#: contrib/localflavor/jp/jp_prefectures.py:42
msgid "Kochi"
-msgstr ""
+msgstr "קוצ'י"
#: contrib/localflavor/jp/jp_prefectures.py:43
msgid "Fukuoka"
-msgstr ""
+msgstr "פוקוקה"
#: contrib/localflavor/jp/jp_prefectures.py:44
msgid "Saga"
-msgstr ""
+msgstr "סגה"
#: contrib/localflavor/jp/jp_prefectures.py:45
msgid "Nagasaki"
@@ -2588,273 +2046,546 @@ msgstr "נגסקי"
#: contrib/localflavor/jp/jp_prefectures.py:46
msgid "Kumamoto"
-msgstr ""
+msgstr "קומאמוטו"
#: contrib/localflavor/jp/jp_prefectures.py:47
msgid "Oita"
-msgstr ""
+msgstr "אויטה"
#: contrib/localflavor/jp/jp_prefectures.py:48
msgid "Miyazaki"
-msgstr ""
+msgstr "מיאזאקי"
#: contrib/localflavor/jp/jp_prefectures.py:49
msgid "Kagoshima"
-msgstr ""
+msgstr "קגושימה"
#: contrib/localflavor/jp/jp_prefectures.py:50
msgid "Okinawa"
msgstr "אוקינאווה"
-#: contrib/sessions/models.py:68
-msgid "session key"
-msgstr "מפתח התחברות (session key)"
+#: contrib/localflavor/nl/forms.py:25
+msgid "Enter a valid postal code"
+msgstr "יש להזין מיקוד חוקי."
-#: contrib/sessions/models.py:69
-msgid "session data"
-msgstr "מידע התחברות (session data)"
+#: contrib/localflavor/nl/forms.py:53
+msgid "Enter a valid phone number"
+msgstr "יש להזין מספר טלפון חוקי"
-#: contrib/sessions/models.py:70
-msgid "expire date"
-msgstr "תאריך פג תוקף"
+#: contrib/localflavor/nl/forms.py:76
+msgid "Enter a valid SoFi number"
+msgstr "יש להזין מספר SoFi חוקי"
-#: contrib/sessions/models.py:74
-msgid "session"
-msgstr "התחברות"
+#: contrib/localflavor/nl/nl_provinces.py:4
+msgid "Drente"
+msgstr "דרנתה"
-#: contrib/sessions/models.py:75
-msgid "sessions"
-msgstr "התחברויות"
+#: contrib/localflavor/nl/nl_provinces.py:5
+msgid "Flevoland"
+msgstr "פלבולנד"
-#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
-msgid "The two password fields didn't match."
-msgstr "שני שדות הסיסמה אינם זהים."
+#: contrib/localflavor/nl/nl_provinces.py:6
+msgid "Friesland"
+msgstr "פריזלנד"
-#: contrib/auth/forms.py:25
-msgid "A user with that username already exists."
-msgstr "משתמש עם שם משתמש זה קיים כבר"
+#: contrib/localflavor/nl/nl_provinces.py:7
+msgid "Gelderland"
+msgstr "חלדרלנד"
-#: contrib/auth/forms.py:53
-msgid ""
-"Your Web browser doesn't appear to have cookies enabled. Cookies are "
-"required for logging in."
-msgstr "נראה שעוגיות לא מאופשרות בדפדפן שלך.הן נדרשות כדי להתחבר."
+#: contrib/localflavor/nl/nl_provinces.py:8
+msgid "Groningen"
+msgstr "חרונינגן"
-#: contrib/auth/forms.py:62
-msgid "This account is inactive."
-msgstr "חשבון זה אינו פעיל."
+#: contrib/localflavor/nl/nl_provinces.py:9
+msgid "Limburg"
+msgstr "לימבורג"
-#: contrib/auth/forms.py:85
-msgid ""
-"That e-mail address doesn't have an associated user account. Are you sure "
-"you've registered?"
-msgstr "כתובת דואר אלקטרוני זו אינה משוייכת למשתמש. בטוח שנרשמת ?"
+#: contrib/localflavor/nl/nl_provinces.py:10
+msgid "Noord-Brabant"
+msgstr "צפון בראבנט"
-#: contrib/auth/forms.py:117
-msgid "The two 'new password' fields didn't match."
-msgstr "שני שדות 'הסיסמה החדשה' אינם זהים."
+#: contrib/localflavor/nl/nl_provinces.py:11
+msgid "Noord-Holland"
+msgstr "צפון הולנד"
-#: contrib/auth/forms.py:124
-msgid "Your old password was entered incorrectly. Please enter it again."
-msgstr "סיסמתך הישנה הוזנה בצורה השגויה. נא להזינה שוב."
+#: contrib/localflavor/nl/nl_provinces.py:12
+msgid "Overijssel"
+msgstr "אובראיסל"
-#: contrib/auth/models.py:44 contrib/auth/models.py:64
-msgid "name"
-msgstr "שם"
+#: contrib/localflavor/nl/nl_provinces.py:13
+msgid "Utrecht"
+msgstr "אוטרכט"
-#: contrib/auth/models.py:46
-msgid "codename"
-msgstr "שם קוד"
+#: contrib/localflavor/nl/nl_provinces.py:14
+msgid "Zeeland"
+msgstr "זילנד"
-#: contrib/auth/models.py:49
-msgid "permission"
-msgstr "הרשאה"
+#: contrib/localflavor/nl/nl_provinces.py:15
+msgid "Zuid-Holland"
+msgstr "דרום הולנד"
-#: contrib/auth/models.py:50 contrib/auth/models.py:65
-msgid "permissions"
-msgstr "הרשאות"
+#: contrib/localflavor/no/forms.py:35
+msgid "Enter a valid Norwegian social security number."
+msgstr "יש להזין מספר ביטוח לאומי נורבגי חוקי."
-#: contrib/auth/models.py:68
-msgid "group"
-msgstr "קבוצה"
+#: contrib/localflavor/pe/forms.py:36
+msgid "This field requires 8 digits."
+msgstr "שדה זה דורש 8 ספרות."
-#: contrib/auth/models.py:69 contrib/auth/models.py:109
-msgid "groups"
-msgstr "קבוצות"
+#: contrib/localflavor/pe/forms.py:59
+msgid "This field requires 11 digits."
+msgstr "שדה זה דורש 11 ספרות."
-#: contrib/auth/models.py:99
-msgid "username"
-msgstr "שם משתמש"
+#: contrib/localflavor/pl/forms.py:53
+msgid "National Identification Number consists of 11 digits."
+msgstr "מספר זיהוי לאומי מורכב מ-11 ספרות"
-#: contrib/auth/models.py:99
-msgid ""
-"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
-"digits and underscores)."
-msgstr "דורש 30 תווים או פחות. תווים אלפאנומריים בלבד (אותיות, ספרות וקווים תחתונים)."
+#: contrib/localflavor/pl/forms.py:59
+msgid "Wrong checksum for the National Identification Number."
+msgstr "סכום ביקורת שגוי עבודי מספר הזיהוי הלאומי"
-#: contrib/auth/models.py:100
-msgid "first name"
-msgstr "שם פרטי"
+#: contrib/localflavor/pl/forms.py:71
+msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX."
+msgstr "נא להזין שדה מספר מס (NIP) בתחביר XXX-XXX-XX-XX או XX-XX-XXX-XXX."
-#: contrib/auth/models.py:101
-msgid "last name"
-msgstr "שם משפחה"
+#: contrib/localflavor/pl/forms.py:82
+msgid "Enter a postal code in the format XX-XXX."
+msgstr "נא להזין מיקוד בתחביר XX-XXX."
-#: contrib/auth/models.py:102
-msgid "e-mail address"
-msgstr "כתובת דוא\"ל"
+#: contrib/localflavor/pl/pl_voivodeships.py:8
+msgid "Lower Silesia"
+msgstr "סילסיה התחתונה"
-#: contrib/auth/models.py:103
-msgid "password"
-msgstr "סיסמה"
+#: contrib/localflavor/pl/pl_voivodeships.py:9
+msgid "Kuyavia-Pomerania"
+msgstr "קויאבויה - פומרניה"
-#: contrib/auth/models.py:103
-msgid ""
-"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
-"password form</a>."
-msgstr ""
-"יש להזין '[algo]$[salt]$[hexdigest]' או להשתמש ב<a href=\"password/\">טופס "
-"שינוי הסיסמה</a>."
+#: contrib/localflavor/pl/pl_voivodeships.py:10
+msgid "Lublin"
+msgstr "לובלין"
-#: contrib/auth/models.py:104
-msgid "staff status"
-msgstr "סטטוס איש צוות"
+#: contrib/localflavor/pl/pl_voivodeships.py:11
+msgid "Lubusz"
+msgstr "לובוש"
-#: contrib/auth/models.py:104
-msgid "Designates whether the user can log into this admin site."
-msgstr "מציין האם המשתמש יכול להתחבר לאתר הניהול."
+#: contrib/localflavor/pl/pl_voivodeships.py:12
+msgid "Lodz"
+msgstr "לודז'"
-#: contrib/auth/models.py:105
-msgid "active"
-msgstr "פעיל"
+#: contrib/localflavor/pl/pl_voivodeships.py:13
+msgid "Lesser Poland"
+msgstr "פולין זוטא"
-#: contrib/auth/models.py:105
-msgid ""
-"Designates whether this user can log into the Django admin. Unselect this "
-"instead of deleting accounts."
-msgstr "מציין האם המשתמש יכול להתחבר לאתר הניהול. יש לבטל בחירה זו"
-"במקום למחוק חשבונות משתמשים."
+#: contrib/localflavor/pl/pl_voivodeships.py:14
+msgid "Masovia"
+msgstr "מזוביה"
-#: contrib/auth/models.py:106
-msgid "superuser status"
-msgstr "סטטוס משתמש על"
+#: contrib/localflavor/pl/pl_voivodeships.py:15
+msgid "Opole"
+msgstr "אופולה"
-#: contrib/auth/models.py:106
-msgid ""
-"Designates that this user has all permissions without explicitly assigning "
-"them."
-msgstr "מציין שלמשתמש זה יש את כל ההרשאות ללא הצורך המפורש בהענקתן."
+#: contrib/localflavor/pl/pl_voivodeships.py:16
+msgid "Subcarpatia"
+msgstr "תת קרפטיה"
-#: contrib/auth/models.py:107
-msgid "last login"
-msgstr "כניסה אחרונה"
+#: contrib/localflavor/pl/pl_voivodeships.py:17
+msgid "Podlasie"
+msgstr "פודלסיה"
-#: contrib/auth/models.py:108
-msgid "date joined"
-msgstr "תאריך הצטרפות"
+#: contrib/localflavor/pl/pl_voivodeships.py:18
+msgid "Pomerania"
+msgstr "פומרניה"
-#: contrib/auth/models.py:110
-msgid ""
-"In addition to the permissions manually assigned, this user will also get "
-"all permissions granted to each group he/she is in."
-msgstr ""
-"בנוסף לכל ההרשאות שהוקצו ידנית, יוענקו למשתמש גם כל ההרשאות של כל קבוצה "
-"המשוייכת אליו."
+#: contrib/localflavor/pl/pl_voivodeships.py:19
+msgid "Silesia"
+msgstr "סילסיה"
-#: contrib/auth/models.py:111
-msgid "user permissions"
-msgstr "הרשאות משתמש"
+#: contrib/localflavor/pl/pl_voivodeships.py:20
+msgid "Swietokrzyskie"
+msgstr "סבייטוקזי'סקי"
-#: contrib/auth/models.py:115
-msgid "user"
-msgstr "משתמש"
+#: contrib/localflavor/pl/pl_voivodeships.py:21
+msgid "Warmia-Masuria"
+msgstr "וורמיה- מזוריה"
-#: contrib/auth/models.py:116
-msgid "users"
-msgstr "משתמשים"
+#: contrib/localflavor/pl/pl_voivodeships.py:22
+msgid "Greater Poland"
+msgstr "פולין רבתי"
-#: contrib/auth/models.py:122
-msgid "Personal info"
-msgstr "מידע אישי"
+#: contrib/localflavor/pl/pl_voivodeships.py:23
+msgid "West Pomerania"
+msgstr "מערב פומרניה"
-#: contrib/auth/models.py:123
-msgid "Permissions"
-msgstr "הרשאות"
+#: contrib/localflavor/sk/forms.py:32
+msgid "Enter a postal code in the format XXXXX or XXX XX."
+msgstr "יש להזין קוד דואר בתחביר XXXXX או XXX XX."
-#: contrib/auth/models.py:124
-msgid "Important dates"
-msgstr "תאריכים חשובים"
+#: contrib/localflavor/sk/sk_districts.py:8
+msgid "Banska Bystrica"
+msgstr " בנסקה ביסטריצה"
-#: contrib/auth/models.py:125
-msgid "Groups"
-msgstr "קבוצות"
+#: contrib/localflavor/sk/sk_districts.py:9
+msgid "Banska Stiavnica"
+msgstr "בנסקה שטיאבניצה"
-#: contrib/auth/models.py:269
-msgid "message"
-msgstr "הודעה"
+#: contrib/localflavor/sk/sk_districts.py:10
+msgid "Bardejov"
+msgstr "ברדיוב"
-#: contrib/auth/models.py:282
-msgid "AnonymousUser"
-msgstr "משתמש אנונימי"
+#: contrib/localflavor/sk/sk_districts.py:11
+msgid "Banovce nad Bebravou"
+msgstr "בנובץ ע\"מ בברבו"
-#: contrib/auth/views.py:40
-msgid "Logged out"
-msgstr "יצאת מהמערכת"
+#: contrib/localflavor/sk/sk_districts.py:12
+msgid "Brezno"
+msgstr "ברזנו"
-#: contrib/flatpages/models.py:8
-msgid ""
-"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
-msgstr ""
-"לדוגמא: '/about/contact/'. יש לוודא הימצאות הקווים הנטויים בהתחלה ובסוף."
+#: contrib/localflavor/sk/sk_districts.py:13
+msgid "Bratislava I"
+msgstr "ברטיסלאבה 1"
-#: contrib/flatpages/models.py:9
-msgid "title"
-msgstr "כותרת"
+#: contrib/localflavor/sk/sk_districts.py:14
+msgid "Bratislava II"
+msgstr "ברטיסלאבה 2"
-#: contrib/flatpages/models.py:10
-msgid "content"
-msgstr "תוכן"
+#: contrib/localflavor/sk/sk_districts.py:15
+msgid "Bratislava III"
+msgstr "ברטיסלאבה 3"
-#: contrib/flatpages/models.py:11
-msgid "enable comments"
-msgstr "אפשר תגובות"
+#: contrib/localflavor/sk/sk_districts.py:16
+msgid "Bratislava IV"
+msgstr "ברטיסלאבה 4"
-#: contrib/flatpages/models.py:12
-msgid "template name"
-msgstr "שם תבנית"
+#: contrib/localflavor/sk/sk_districts.py:17
+msgid "Bratislava V"
+msgstr "ברטיסלאבה 5"
-#: contrib/flatpages/models.py:13
-msgid ""
-"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
-"will use 'flatpages/default.html'."
-msgstr ""
-"דוגמא: 'flatpages/contact_page.html'. אם זה לא צויין, המערכת "
-"תשתמש ב-'flatpages/default.html'."
+#: contrib/localflavor/sk/sk_districts.py:18
+msgid "Bytca"
+msgstr "ביטצ'ה"
-#: contrib/flatpages/models.py:14
-msgid "registration required"
-msgstr "הרשמה נדרשת"
+#: contrib/localflavor/sk/sk_districts.py:19
+msgid "Cadca"
+msgstr "צ'דקה"
-#: contrib/flatpages/models.py:14
-msgid "If this is checked, only logged-in users will be able to view the page."
-msgstr "אם זה מסומך, רק משתמשים מחוברים יוכלו לצפות בדף."
+#: contrib/localflavor/sk/sk_districts.py:20
+msgid "Detva"
+msgstr "דטבה"
-#: contrib/flatpages/models.py:18
-msgid "flat page"
-msgstr "דף פשוט"
+#: contrib/localflavor/sk/sk_districts.py:21
+msgid "Dolny Kubin"
+msgstr "דולני קובין"
-#: contrib/flatpages/models.py:19
-msgid "flat pages"
-msgstr "דפים פשוטים"
+#: contrib/localflavor/sk/sk_districts.py:22
+msgid "Dunajska Streda"
+msgstr "דונאייסקה סטרדה"
+
+#: contrib/localflavor/sk/sk_districts.py:23
+msgid "Galanta"
+msgstr "גלנטה"
+
+#: contrib/localflavor/sk/sk_districts.py:24
+msgid "Gelnica"
+msgstr "גלניקה"
+
+#: contrib/localflavor/sk/sk_districts.py:25
+msgid "Hlohovec"
+msgstr "הלוהובץ"
+
+#: contrib/localflavor/sk/sk_districts.py:26
+msgid "Humenne"
+msgstr "הומנה"
+
+#: contrib/localflavor/sk/sk_districts.py:27
+msgid "Ilava"
+msgstr "אילבה"
+
+#: contrib/localflavor/sk/sk_districts.py:28
+msgid "Kezmarok"
+msgstr "קזמרוק"
+
+#: contrib/localflavor/sk/sk_districts.py:29
+msgid "Komarno"
+msgstr "קומרנו"
+
+#: contrib/localflavor/sk/sk_districts.py:30
+msgid "Kosice I"
+msgstr "קושיצה 1"
+
+#: contrib/localflavor/sk/sk_districts.py:31
+msgid "Kosice II"
+msgstr "קושיצה 2"
+
+#: contrib/localflavor/sk/sk_districts.py:32
+msgid "Kosice III"
+msgstr "קושיצה 3"
+
+#: contrib/localflavor/sk/sk_districts.py:33
+msgid "Kosice IV"
+msgstr "קושיצה 4"
+
+#: contrib/localflavor/sk/sk_districts.py:34
+msgid "Kosice - okolie"
+msgstr "קושיצ'ה - אוקולי"
+
+#: contrib/localflavor/sk/sk_districts.py:35
+msgid "Krupina"
+msgstr "קרופינה"
+
+#: contrib/localflavor/sk/sk_districts.py:36
+msgid "Kysucke Nove Mesto"
+msgstr "קיוסקה נובה מסטו"
+
+#: contrib/localflavor/sk/sk_districts.py:37
+msgid "Levice"
+msgstr "לביצה"
+
+#: contrib/localflavor/sk/sk_districts.py:38
+msgid "Levoca"
+msgstr "לבוצ'ה"
+
+#: contrib/localflavor/sk/sk_districts.py:39
+msgid "Liptovsky Mikulas"
+msgstr "ליפטובסקי מיקולס"
+
+#: contrib/localflavor/sk/sk_districts.py:40
+msgid "Lucenec"
+msgstr "לוצ'נץ'"
+
+#: contrib/localflavor/sk/sk_districts.py:41
+msgid "Malacky"
+msgstr "מאלאקי"
+
+#: contrib/localflavor/sk/sk_districts.py:42
+msgid "Martin"
+msgstr "מרטין"
+
+#: contrib/localflavor/sk/sk_districts.py:43
+msgid "Medzilaborce"
+msgstr "מדזילבורצה"
+
+#: contrib/localflavor/sk/sk_districts.py:44
+msgid "Michalovce"
+msgstr "מיחלובצה"
+
+#: contrib/localflavor/sk/sk_districts.py:45
+msgid "Myjava"
+msgstr "מיאווה"
+
+#: contrib/localflavor/sk/sk_districts.py:46
+msgid "Namestovo"
+msgstr "נמסטובו"
+
+#: contrib/localflavor/sk/sk_districts.py:47
+msgid "Nitra"
+msgstr "ניטרה"
+
+#: contrib/localflavor/sk/sk_districts.py:48
+msgid "Nove Mesto nad Vahom"
+msgstr "נובה מסטו ע\"נ וה"
+
+#: 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 "יש להזין מיקוד חוקי בתחביר XXXXX או XXXXX-XXXX."
+
+#: contrib/localflavor/us/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "יש להזין מספר ביטוח לאומי אמריקאי בתחביר XXX-XX-XXXX."
#: 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/'."
+msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
msgstr "זה אמור להיות נתיב מלא, ללא שם המתחם. לדוגמא: '‎/events/search'."
#: contrib/redirects/models.py:9
@@ -2862,9 +2593,7 @@ 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://'."
+msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
msgstr "יכול להיות נתיב מלא (כנ\"ל) או URL מלא המתחיל ב'http://'."
#: contrib/redirects/models.py:13
@@ -2875,15 +2604,818 @@ msgstr "הפניה"
msgid "redirects"
msgstr "הפניות"
-#: contrib/contenttypes/models.py:36
-msgid "python model class name"
-msgstr "שם ה-class של מודל פייתון"
+#: contrib/sessions/models.py:80
+msgid "session key"
+msgstr "מפתח התחברות (session key)"
-#: contrib/contenttypes/models.py:39
-msgid "content type"
-msgstr "סוג תוכן"
+#: contrib/sessions/models.py:81
+msgid "session data"
+msgstr "מידע התחברות (session data)"
-#: contrib/contenttypes/models.py:40
-msgid "content types"
-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:76
+msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
+msgstr "ערך זה חייב להכיל אותיות, ספרות, מקפים, קווים תחתונים ונטויים בלבד."
+
+#: core/validators.py:80
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "ערך זה חייב להכיל אותיות, ספרות, מקפים וקווים תחתונים בלבד."
+
+#: core/validators.py:84
+msgid "Uppercase letters are not allowed here."
+msgstr "אסור להשתמש באותיות גדולות."
+
+#: core/validators.py:88
+msgid "Lowercase letters are not allowed here."
+msgstr "אסור להשתמש באותיות קטנות."
+
+#: core/validators.py:95
+msgid "Enter only digits separated by commas."
+msgstr "יש להזין רק ספרות מופרדות בפסיקים."
+
+#: core/validators.py:107
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "יש להזין רק כתובות דוא\"ל מופרדות בפסיקים."
+
+#: core/validators.py:111
+msgid "Please enter a valid IP address."
+msgstr "נא להזין כתובת IP חוקית."
+
+#: core/validators.py:115
+msgid "Empty values are not allowed here."
+msgstr "חובה להזין ערך בשדה זה."
+
+#: core/validators.py:119
+msgid "Non-numeric characters aren't allowed here."
+msgstr "מותר להזין ספרות בלבד."
+
+#: core/validators.py:123
+msgid "This value can't be comprised solely of digits."
+msgstr "ערך זה אינו יכול להכיל ספרות בלבד."
+
+#: core/validators.py:128
+#: newforms/fields.py:149
+msgid "Enter a whole number."
+msgstr "נא להזין מספר שלם."
+
+#: core/validators.py:132
+msgid "Only alphabetical characters are allowed here."
+msgstr "יש להזין כאן אותיות בלבד."
+
+#: core/validators.py:147
+msgid "Year must be 1900 or later."
+msgstr "שנה צריכה להיות 1900 ומעלה."
+
+#: core/validators.py:151
+#, python-format
+msgid "Invalid date: %s"
+msgstr "תאריך שגוי: %s"
+
+#: core/validators.py:156
+#: db/models/fields/__init__.py:505
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "יש להזין תאריך במבנה YYYY-MM-DD."
+
+#: core/validators.py:161
+msgid "Enter a valid time in HH:MM format."
+msgstr "יש להזין שעה במבנה HH:MM."
+
+#: core/validators.py:165
+#: db/models/fields/__init__.py:579
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "יש להזין תאריך ושעה במבנה YYYY-MM-DD HH:MM."
+
+#: core/validators.py:170
+#: newforms/fields.py:343
+msgid "Enter a valid e-mail address."
+msgstr "יש להזין כתובת דוא\"ל חוקית."
+
+#: core/validators.py:182
+#: core/validators.py:474
+#: newforms/fields.py:377
+#: oldforms/__init__.py:686
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "לא נשלח שום קובץ. נא לבדוק את סוג הקידוד של הטופס."
+
+#: core/validators.py:193
+#: newforms/fields.py:405
+msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
+msgstr "נא להעלות תמונה חוקית. הקובץ שהעלת אינו תמונה אומכיל תמונה מקולקלת."
+
+#: core/validators.py:200
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "ה-URL %s אנו מצביע לתמונה חוקית."
+
+#: core/validators.py:204
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "מספרי טלפון חייבים להיות במבנה XXX-XXX-XXXX.‏ \"%s\" אינו חוקי."
+
+#: core/validators.py:212
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "ה-URL‏ %s אינו מצביע לסרטון QuickTime חוקי."
+
+#: core/validators.py:216
+msgid "A valid URL is required."
+msgstr "יש להזין URL חוקי."
+
+#: core/validators.py:230
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
+msgstr ""
+"יש להזין HTML חוקי. שגיאות ספציפיות:\n"
+"%s"
+
+#: core/validators.py:237
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "מבנה XML שגוי: %s"
+
+#: core/validators.py:254
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL שגוי: %s"
+
+#: core/validators.py:259
+#: core/validators.py:261
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "ה-URL‏ %s הוא קישור שבור."
+
+#: core/validators.py:267
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "יש להזין קיצור חוקי למדינה בארה\"ב."
+
+#: core/validators.py:281
+#, python-format
+msgid "Watch your mouth! The word %s is not allowed here."
+msgstr "שמור על לשונך! המילה %s אסורה לשימוש כאן."
+
+#: core/validators.py:288
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "תוכן השדה חייב להיות זהה לשדה '%s'."
+
+#: core/validators.py:307
+msgid "Please enter something for at least one field."
+msgstr "יש להזין תוכן בלפחות אחד מהשדות."
+
+#: core/validators.py:316
+#: core/validators.py:327
+msgid "Please enter both fields or leave them both empty."
+msgstr "יש להזין תוכן בשני השדות או להשאיר את שניהם ריקים."
+
+#: core/validators.py:335
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "יש להזין מידע בשדה זה אם שדה %(field)s מכיל %(value)s"
+
+#: core/validators.py:348
+#, python-format
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "יש להזין תוכן בשדה זה אם תוכן שדה %(field)s אינו %(value)s"
+
+#: core/validators.py:367
+msgid "Duplicate values are not allowed."
+msgstr "לא ניתן להזין ערכים כפולים."
+
+#: core/validators.py:382
+#, python-format
+msgid "This value must be between %(lower)s and %(upper)s."
+msgstr "ערך זה חייב להיות בין %(lower)s ל-%(upper)s."
+
+#: core/validators.py:384
+#, python-format
+msgid "This value must be at least %s."
+msgstr "ערך זה חייב להיות לפחות %s."
+
+#: core/validators.py:386
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "ערך זה אינו יכול להיות יותר מ-%s."
+
+#: core/validators.py:427
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "ערך זה חייב להיות חזקה של %s."
+
+#: core/validators.py:437
+msgid "Please enter a valid decimal number."
+msgstr "יש להזין מספר עשרוני חוקי."
+
+#: core/validators.py:444
+#, python-format
+msgid "Please enter a valid decimal number with at most %s total digit.Please enter a valid decimal number with at most %s total digits."
+msgstr "נא להזין מספר עשרוני חוקי עפ %s ספרה לכל היותר.נא להזין מספר עשרוני חוקי עם %s ספרות לכל היותר."
+
+#: core/validators.py:447
+#, python-format
+msgid "Please enter a valid decimal number with a whole part of at most %s digit.Please enter a valid decimal number with a whole part of at most %s digits."
+msgstr "נא להזין מספר עשרוני חוקי כאשר החלק השלם מכיל %s ספרה לכל היותר.נא להזין מספר עשרוני חוקי כאשר החלק השלם מכיל %s ספרות לכל היותר."
+
+#: core/validators.py:450
+#, python-format
+msgid "Please enter a valid decimal number with at most %s decimal place.Please enter a valid decimal number with at most %s decimal places."
+msgstr "נא להזין מספר עשרוני חוקי עם %s מקום עשרוני לכל היותר.נא להזין מספר עשרוני חוקי עם %s מקומקומות עשרוניים לא היותר."
+
+#: 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 "יש להעלות קובץ בגודל %s בתים לפחות."
+
+#: core/validators.py:468
+#, python-format
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "יש לוודא שהקובץ שהעלת הוא בגודל %s בתים לכל היותר."
+
+#: core/validators.py:485
+msgid "The format for this field is wrong."
+msgstr "מבנה תוכן שדה זה שגוי."
+
+#: core/validators.py:500
+msgid "This field is invalid."
+msgstr "שדה זה אינו חוקי."
+
+#: core/validators.py:536
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "לא ניתן לאחזר כלום מ %s."
+
+#: core/validators.py:539
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "ה-URL·%(url)s·החזיר כותרת·Content-Type·לא חוקית·'%(contenttype)s'."
+
+#: core/validators.py:572
+#, python-format
+msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
+msgstr "נא לסגור את תג·%(tag)s·בשורה·%(line)s.·(השורה מתחילה ב·\"%(start)s\".)"
+
+#: core/validators.py:576
+#, python-format
+msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)"
+msgstr "חלק מהטקסט בשורה·%(line)s·אסור בהקשר זה.·(השורה·מתחילה ב·\"%(start)s\".)"
+
+#: core/validators.py:581
+#, python-format
+msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
+msgstr "\"%(attr)s\"·בשורה·%(line)s·אינה תכונה חוקית.·(השורה מתחילה ב·\"%(start)s\".)"
+
+#: core/validators.py:586
+#, python-format
+msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)"
+msgstr "\"<%(tag)s>\"·בשורה·%(line)s·אינו תג חוקי.·(השורה מתחילה ב·\"%(start)s\".)"
+
+#: core/validators.py:590
+#, python-format
+msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
+msgstr "לתג בשורה %(line)s חסרה תכונה אחת או יותר נדרשות. (השורה מתחילה ב-\"%(start)s\".)"
+
+#: core/validators.py:595
+#, python-format
+msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
+msgstr "לתכונה·\"%(attr)s\"·בשורה·%(line)s·יש ערך לא חוקי.·(השורה·מתחילה ב·\"%(start)s\".)"
+
+#: db/models/manipulators.py:308
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s עם %(type)s קיים כבר עבור %(field)s נתון."
+
+#: db/models/fields/__init__.py:52
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s·עם·%(fieldname)s·זה קיימת כבר."
+
+#: db/models/fields/__init__.py:159
+#: db/models/fields/__init__.py:316
+#: db/models/fields/__init__.py:731
+#: db/models/fields/__init__.py:742
+#: newforms/fields.py:93
+#: newforms/fields.py:513
+#: newforms/fields.py:589
+#: newforms/fields.py:600
+#: newforms/models.py:193
+#: oldforms/__init__.py:373
+msgid "This field is required."
+msgstr "יש להזין תוכן בשדה זה."
+
+#: db/models/fields/__init__.py:414
+msgid "This value must be an integer."
+msgstr "ערך זה חייב להיות מספר שלם."
+
+#: db/models/fields/__init__.py:450
+msgid "This value must be either True or False."
+msgstr "ערך זה חייב להיות אמת או שקר."
+
+#: db/models/fields/__init__.py:471
+msgid "This field cannot be null."
+msgstr "שדה זה אינו יכול להכיל null."
+
+#: db/models/fields/__init__.py:640
+msgid "This value must be a decimal number."
+msgstr "ערך זה חייב להיות מספר עשרוני."
+
+#: db/models/fields/__init__.py:751
+msgid "Enter a valid filename."
+msgstr "יש להזין שם קובץ חוקי."
+
+#: db/models/fields/__init__.py:900
+msgid "This value must be either None, True or False."
+msgstr "ערך זה חייב להיות כלום, אמת או שקר."
+
+#: db/models/fields/related.py:55
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "יש להזין %s חוקי."
+
+#: 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 "החזק את \"Control\", או \"Command\" על מק, לחוץ כדי לבחור יותר מאחד."
+
+#: db/models/fields/related.py:707
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid.Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr "נא להזין מזהה %(self)s חוקי. הערך %(value)r אינו חוקי. נא להזין מזהה %(self)s חוקי. הערכים %(value)r אינם חוקיים."
+
+#: newforms/fields.py:123
+#, python-format
+msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
+msgstr "נא לוודא שערך זה מכיל %(max)d תווים לכל היותר (מכיל %(length)d)."
+
+#: newforms/fields.py:125
+#, python-format
+msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
+msgstr "נא לוודא שערך זה מכיל לפחות %(min)d תווים (מכיל %(length)d)."
+
+#: newforms/fields.py:151
+#: newforms/fields.py:174
+#: newforms/fields.py:204
+#, python-format
+msgid "Ensure this value is less than or equal to %s."
+msgstr "יש לוודא שערך זה פחות מ או שווה ל %s."
+
+#: newforms/fields.py:153
+#: newforms/fields.py:176
+#: newforms/fields.py:206
+#, python-format
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "יש לוודא שהערך גדול מ או שווה ל %s."
+
+#: newforms/fields.py:172
+#: newforms/fields.py:199
+msgid "Enter a number."
+msgstr "נא להזין מספר."
+
+#: newforms/fields.py:208
+#, python-format
+msgid "Ensure that there are no more than %s digits in total."
+msgstr "נא לוודא שאין יותר מ-%s ספרות סה\"כ"
+
+#: newforms/fields.py:210
+#, python-format
+msgid "Ensure that there are no more than %s decimal places."
+msgstr "נא לוודא שאין יותר מ-%s ספרות אחרי הנקודה"
+
+#: newforms/fields.py:212
+#, python-format
+msgid "Ensure that there are no more than %s digits before the decimal point."
+msgstr "נא לוודא שאין יותר מ-%s ספרות לפני הנקודה העשרונית"
+
+#: newforms/fields.py:245
+#: newforms/fields.py:633
+msgid "Enter a valid date."
+msgstr "יש להזין תאריך חוקי."
+
+#: newforms/fields.py:272
+#: newforms/fields.py:635
+msgid "Enter a valid time."
+msgstr "יש להזין שעה חוקית."
+
+#: newforms/fields.py:308
+msgid "Enter a valid date/time."
+msgstr "יש להזין תאריך ושעה חוקיים."
+
+#: newforms/fields.py:321
+msgid "Enter a valid value."
+msgstr "יש להזין ערך חוקי."
+
+#: newforms/fields.py:379
+msgid "No file was submitted."
+msgstr "לא נשלח שום קובץ"
+
+#: newforms/fields.py:381
+#: oldforms/__init__.py:688
+msgid "The submitted file is empty."
+msgstr "הקובץ שנשלח ריק."
+
+#: newforms/fields.py:419
+#: newforms/fields.py:444
+msgid "Enter a valid URL."
+msgstr "יש להזין URL חוקי."
+
+#: newforms/fields.py:446
+msgid "This URL appears to be a broken link."
+msgstr "ה-URL הזה נראה כקישור שבור."
+
+#: newforms/fields.py:501
+#: newforms/models.py:180
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "יש לבחור אפשרות חוקית; '%(data)s' אינו בין %(choices)s."
+
+#: newforms/fields.py:517
+#: newforms/fields.py:593
+#: newforms/models.py:197
+msgid "Enter a list of values."
+msgstr "יש להזין רשימת ערכים"
+
+#: newforms/fields.py:523
+#: newforms/models.py:203
+#, python-format
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "יש לבחור אפשרות חוקית. %s אינו בין האפשרויות הזמינות."
+
+#: newforms/fields.py:644
+msgid "Enter a valid IPv4 address."
+msgstr "יש להזין כתובת IPv4 חוקית."
+
+#: oldforms/__init__.py:408
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgstr "נא לוודא שהטקסט שלך מכיל פחות מ %s תו."
+
+#: oldforms/__init__.py:413
+msgid "Line breaks are not allowed here."
+msgstr "מעברי שורה אסורים כאן."
+
+#: oldforms/__init__.py:511
+#: oldforms/__init__.py:585
+#: oldforms/__init__.py:624
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "יש לבחור אפשרות חוקית; '%(data)s' אינו בין %(choices)s."
+
+#: oldforms/__init__.py:744
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "חש להזין מספר שלם בין ‎-32,768 ל- 32,767."
+
+#: oldforms/__init__.py:754
+msgid "Enter a positive number."
+msgstr "יש להזין מספר חיובי."
+
+#: oldforms/__init__.py:764
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "יש להזין מספר שלם בין 0 ל- 32,767."
+
+#: template/defaultfilters.py:541
+msgid "yes,no,maybe"
+msgstr "כן,לא,אולי"
+
+#: template/defaultfilters.py:570
+#, python-format
+msgid "%(size)d byte"
+msgstr "%(size)d בתים"
+
+#: template/defaultfilters.py:572
+#, python-format
+msgid "%.1f KB"
+msgstr "%.1f KB"
+
+#: template/defaultfilters.py:574
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: template/defaultfilters.py:575
+#, python-format
+msgid "%.1f GB"
+msgstr "%.1f GB"
+
+#: 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"
+msgstr "שנה"
+
+#: utils/timesince.py:22
+msgid "month"
+msgstr "חודש"
+
+#: utils/timesince.py:23
+msgid "week"
+msgstr "שבוע"
+
+#: utils/timesince.py:24
+msgid "day"
+msgstr "יום"
+
+#: utils/timesince.py:25
+msgid "hour"
+msgstr "שעה"
+
+#: utils/timesince.py:26
+msgid "minute"
+msgstr "דקה"
+
+#: utils/timesince.py:46
+msgid "minutes"
+msgstr "דקות"
+
+#: utils/timesince.py:51
+#, python-format
+msgid "%(number)d %(type)s"
+msgstr "%(number)d %(type)s"
+
+#: utils/timesince.py:57
+#, python-format
+msgid ", %(number)d %(type)s"
+msgstr ", %(number)d %(type)s"
+
+#: utils/translation/trans_real.py:391
+msgid "DATE_FORMAT"
+msgstr "d.m.Y"
+
+#: utils/translation/trans_real.py:392
+msgid "DATETIME_FORMAT"
+msgstr "d.m.y H:i:s"
+
+#: utils/translation/trans_real.py:393
+msgid "TIME_FORMAT"
+msgstr "H:i:s"
+
+#: utils/translation/trans_real.py:409
+msgid "YEAR_MONTH_FORMAT"
+msgstr "d.m.Y"
+
+#: utils/translation/trans_real.py:410
+msgid "MONTH_DAY_FORMAT"
+msgstr "d.m.Y"
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "ה-%(verbose_name)s נוצר בהצלחה."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "ה-%(verbose_name)s עודכן בהצלחה."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "ה-%(verbose_name)s נמחק."
diff --git a/django/conf/locale/hr/LC_MESSAGES/django.mo b/django/conf/locale/hr/LC_MESSAGES/django.mo
index e7f4d6bf2f..5e1c7a9c45 100644
--- a/django/conf/locale/hr/LC_MESSAGES/django.mo
+++ b/django/conf/locale/hr/LC_MESSAGES/django.mo
Binary files differ
diff --git a/django/conf/locale/hr/LC_MESSAGES/django.po b/django/conf/locale/hr/LC_MESSAGES/django.po
index 79850d176e..6b299acf70 100644
--- a/django/conf/locale/hr/LC_MESSAGES/django.po
+++ b/django/conf/locale/hr/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-08-06 23:19+0200\n"
-"PO-Revision-Date: 2007-08-12 23:05+0200\n"
+"PO-Revision-Date: 2007-10-12 21:22+0200\n"
"Last-Translator: Aljosa Mohorovic <aljosa.mohorovic@gmail.com>\n"
"Language-Team: Hrvatski jezik\n"
"MIME-Version: 1.0\n"
@@ -28,7 +28,7 @@ msgstr "Unos za ovo polje je obavezan."
#, python-format
msgid "Ensure your text is less than %s character."
msgid_plural "Ensure your text is less than %s characters."
-msgstr[0] "Uneseni tekst mora sadržavati manje od %s znaka."
+msgstr[0] ""
msgstr[1] "Uneseni tekst mora sadržavati manje od %s znakova."
#: oldforms/__init__.py:413
@@ -398,62 +398,62 @@ msgstr "URL %s ne prikazuje ispravnu sliku."
#: core/validators.py:196
#, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
-msgstr ""
+msgstr "Telefonski brojevi moraju biti u formatu XXX-XXX-XXXX. \"%s\" nije ispravan format."
#: core/validators.py:204
#, python-format
msgid "The URL %s does not point to a valid QuickTime video."
-msgstr ""
+msgstr "URL %s ne vodi na ispravan QuickTime video."
#: core/validators.py:208
msgid "A valid URL is required."
-msgstr ""
+msgstr "Ispravan URL je obavezan."
#: core/validators.py:222
#, python-format
msgid ""
"Valid HTML is required. Specific errors are:\n"
"%s"
-msgstr ""
+msgstr "Ispravan HTML je obavezan. Pogreške:<br> %s"
#: core/validators.py:229
#, python-format
msgid "Badly formed XML: %s"
-msgstr ""
+msgstr "Loše formatiran XML: %s"
#: core/validators.py:246
#, python-format
msgid "Invalid URL: %s"
-msgstr ""
+msgstr "Neispravan URL: %s"
#: core/validators.py:251 core/validators.py:253
#, python-format
msgid "The URL %s is a broken link."
-msgstr ""
+msgstr "URL %s je neispravan (broken) link."
#: core/validators.py:259
msgid "Enter a valid U.S. state abbreviation."
-msgstr ""
+msgstr "Enter a valid U.S. state abbreviation."
#: core/validators.py:273
#, 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] ""
+msgstr[0] "Pazite na izražavanje! Riječ %s nije dopuštena."
+msgstr[1] "Pazite na izražavanje! Riječi %s nisu dopuštene."
#: core/validators.py:280
#, python-format
msgid "This field must match the '%s' field."
-msgstr ""
+msgstr "Ovo polje mora biti jednako %s polju."
#: core/validators.py:299
msgid "Please enter something for at least one field."
-msgstr ""
+msgstr "Molim unesite nešto bar za jedno polje."
#: core/validators.py:308 core/validators.py:319
msgid "Please enter both fields or leave them both empty."
-msgstr ""
+msgstr "Molim unesite vrijednosti za oba polja ili ostavite oba polja prazna."
#: core/validators.py:327
#, python-format
@@ -463,7 +463,7 @@ msgstr ""
#: core/validators.py:340
#, python-format
msgid "This field must be given if %(field)s is not %(value)s"
-msgstr ""
+msgstr "Ovo polje je obavezno ako je %(field)s različito od %(value)s"
#: core/validators.py:359
msgid "Duplicate values are not allowed."
@@ -471,28 +471,27 @@ msgstr ""
#: core/validators.py:374
#, python-format
-#, fuzzy
msgid "This value must be between %(lower)s and %(upper)s."
-msgstr "i."
+msgstr "Vrijednost mora biti između %(lower)s i %(upper)s."
#: core/validators.py:376
#, python-format
msgid "This value must be at least %s."
-msgstr ""
+msgstr "Vrijednost mora biti bar %s."
#: core/validators.py:378
#, python-format
msgid "This value must be no more than %s."
-msgstr ""
+msgstr "Vrijednost ne može biti veća od %s."
#: core/validators.py:414
#, python-format
msgid "This value must be a power of %s."
-msgstr ""
+msgstr "Ova vrijednost na kvadrat mora biti %s."
#: core/validators.py:424
msgid "Please enter a valid decimal number."
-msgstr ""
+msgstr "Molim unesite ispravan decimalni broj."
#: core/validators.py:431
#, python-format
@@ -1879,7 +1878,6 @@ msgid "Documentation bookmarklets"
msgstr ""
#: contrib/admin/templates/admin_doc/bookmarklets.html:9
-#, fuzzy
msgid ""
"\n"
"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
@@ -1890,107 +1888,110 @@ msgid ""
"your computer is \"internal\").</p>\n"
msgstr ""
"\n"
-"<p class=\"help\"> i</p>"
+"<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/admin/templates/admin_doc/bookmarklets.html:19
msgid "Documentation for this page"
-msgstr ""
+msgstr "Dokumentacija za ovu stranicu"
#: contrib/admin/templates/admin_doc/bookmarklets.html:20
msgid ""
"Jumps you from any page to the documentation for the view that generates "
"that page."
-msgstr ""
+msgstr "Preusmjeri te sa bilo koje stranice na dokumentaciju za taj prikaz (view) koji generira stranicu."
#: contrib/admin/templates/admin_doc/bookmarklets.html:22
msgid "Show object ID"
-msgstr ""
+msgstr "Prikaži ID objekta"
#: contrib/admin/templates/admin_doc/bookmarklets.html:23
-#, fuzzy
msgid ""
"Shows the content-type and unique ID for pages that represent a single "
"object."
-msgstr "i."
+msgstr "Prikazuje tip sadržaja i jedinstveni ID za stranice koje predstavljaju pojedinačan objekt."
#: contrib/admin/templates/admin_doc/bookmarklets.html:25
msgid "Edit this object (current window)"
-msgstr ""
+msgstr "Uredi objekt (u trenutno prozoru)"
#: contrib/admin/templates/admin_doc/bookmarklets.html:26
msgid "Jumps to the admin page for pages that represent a single object."
-msgstr ""
+msgstr "Preusmjeri na admin stranicu za stranice koje predstavljaju pojedinačan objekt."
#: contrib/admin/templates/admin_doc/bookmarklets.html:28
msgid "Edit this object (new window)"
-msgstr ""
+msgstr "Uredi objekt (novi prozor)"
#: contrib/admin/templates/admin_doc/bookmarklets.html:29
msgid "As above, but opens the admin page in a new window."
-msgstr ""
+msgstr "Isto kao prethodno, ali otvara admin stranicu u novom prozoru."
#: contrib/contenttypes/models.py:37
msgid "python model class name"
-msgstr ""
+msgstr "ime klase (class) python modela"
#: contrib/contenttypes/models.py:40
msgid "content type"
-msgstr ""
+msgstr "tip sadržaja"
#: contrib/contenttypes/models.py:41
msgid "content types"
-msgstr ""
+msgstr "tipovi sadržaja"
#: contrib/auth/views.py:41
msgid "Logged out"
-msgstr ""
+msgstr "Niste logirani"
#: contrib/auth/models.py:53 contrib/auth/models.py:73
msgid "name"
-msgstr ""
+msgstr "ime"
#: contrib/auth/models.py:55
msgid "codename"
-msgstr ""
+msgstr "kodno ime"
#: contrib/auth/models.py:58
msgid "permission"
-msgstr ""
+msgstr "privilegija"
#: contrib/auth/models.py:59 contrib/auth/models.py:74
msgid "permissions"
-msgstr ""
+msgstr "privilegije"
#: contrib/auth/models.py:77
msgid "group"
-msgstr ""
+msgstr "grupa"
#: contrib/auth/models.py:78 contrib/auth/models.py:121
msgid "groups"
-msgstr ""
+msgstr "grupe"
#: contrib/auth/models.py:111
msgid "username"
-msgstr ""
+msgstr "korisničko ime"
#: contrib/auth/models.py:111
-#, fuzzy
msgid ""
"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
"digits and underscores)."
-msgstr "i."
+msgstr "Obavezno 30 alfanumeričkih znakova ili manje (slova, brojevi i povlaka)."
#: contrib/auth/models.py:112
msgid "first name"
-msgstr ""
+msgstr "ime"
#: contrib/auth/models.py:113
msgid "last name"
-msgstr ""
+msgstr "prezime"
#: contrib/auth/models.py:114
msgid "e-mail address"
-msgstr ""
+msgstr "e-mail adresa"
#: contrib/auth/models.py:115
msgid "password"
@@ -2207,7 +2208,7 @@ msgstr ""
#: contrib/localflavor/de/de_states.py:17
msgid "Saxony"
-msgstr ""
+msgstr "Saxony"
#: contrib/localflavor/de/de_states.py:18
msgid "Saxony-Anhalt"
@@ -2899,306 +2900,305 @@ msgstr ""
#: contrib/localflavor/sk/sk_districts.py:85
msgid "Ziar nad Hronom"
-msgstr ""
+msgstr "Ziar nad Hronom"
#: contrib/localflavor/sk/sk_districts.py:86
msgid "Zilina"
-msgstr ""
+msgstr "Zilina"
#: contrib/localflavor/sk/forms.py:32
msgid "Enter a postal code in the format XXXXX or XXX XX."
-msgstr ""
+msgstr "Unesi ispravan poštanski broj formata XXXXX or XXX XX."
#: contrib/localflavor/cl/forms.py:32
msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X."
-msgstr ""
+msgstr "Unesi ispravan čileanski RUT formata XX.XXX.XXX-X."
#: contrib/localflavor/cl/forms.py:37
msgid "Enter valid a Chilean RUT"
-msgstr ""
+msgstr "Unesi ispravan čileanski RUT"
#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45
msgid "Enter a valid Finnish social security number."
-msgstr ""
+msgstr "Unesi ispravan finski broj socijalnog osiguranja."
#: contrib/sessions/models.py:68
msgid "session key"
-msgstr ""
+msgstr "session ključ (key)"
#: contrib/sessions/models.py:69
msgid "session data"
-msgstr ""
+msgstr "session podaci"
#: contrib/sessions/models.py:70
msgid "expire date"
-msgstr ""
+msgstr "ističe datuma"
#: contrib/sessions/models.py:74
msgid "session"
-msgstr ""
+msgstr "session"
#: contrib/sessions/models.py:75
msgid "sessions"
-msgstr ""
+msgstr "sessions"
#: contrib/flatpages/models.py:8
-#, fuzzy
msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
-msgstr "i."
+msgstr "Primjer: '/about/contact/'. Provjerite ako imate prvi i preostale slash-eve (/)."
#: contrib/flatpages/models.py:9
msgid "title"
-msgstr ""
+msgstr "naslov"
#: contrib/flatpages/models.py:10
msgid "content"
-msgstr ""
+msgstr "sadržaj"
#: contrib/flatpages/models.py:11
msgid "enable comments"
-msgstr ""
+msgstr "uključi komentare"
#: contrib/flatpages/models.py:12
msgid "template name"
-msgstr ""
+msgstr "ime template-a"
#: contrib/flatpages/models.py:13
msgid ""
"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
"will use 'flatpages/default.html'."
-msgstr ""
+msgstr "Primjer: 'flatpages/contact_page.html'. Ako navedeno nije definirano sistem će koristiti 'flatpages/default.html'."
#: contrib/flatpages/models.py:14
msgid "registration required"
-msgstr ""
+msgstr "registracija obavezna"
#: contrib/flatpages/models.py:14
msgid "If this is checked, only logged-in users will be able to view the page."
-msgstr ""
+msgstr "Ako je ovo selektirano samo logirani korisnici moći će vidjeti ovu stranicu."
#: contrib/flatpages/models.py:18
msgid "flat page"
-msgstr ""
+msgstr "statična stranica"
#: contrib/flatpages/models.py:19
msgid "flat pages"
-msgstr ""
+msgstr "statične stranice"
#: utils/dates.py:6
msgid "Monday"
-msgstr ""
+msgstr "Ponedjeljak"
#: utils/dates.py:6
msgid "Tuesday"
-msgstr ""
+msgstr "Utorak"
#: utils/dates.py:6
msgid "Wednesday"
-msgstr ""
+msgstr "Srijeda"
#: utils/dates.py:6
msgid "Thursday"
-msgstr ""
+msgstr "Četvrtak"
#: utils/dates.py:6
msgid "Friday"
-msgstr ""
+msgstr "Petak"
#: utils/dates.py:7
msgid "Saturday"
-msgstr ""
+msgstr "Subota"
#: utils/dates.py:7
msgid "Sunday"
-msgstr ""
+msgstr "Nedjelja"
#: utils/dates.py:10
msgid "Mon"
-msgstr ""
+msgstr "Pon"
#: utils/dates.py:10
msgid "Tue"
-msgstr ""
+msgstr "Uto"
#: utils/dates.py:10
msgid "Wed"
-msgstr ""
+msgstr "Sri"
#: utils/dates.py:10
msgid "Thu"
-msgstr ""
+msgstr "Čet"
#: utils/dates.py:10
msgid "Fri"
-msgstr ""
+msgstr "Pet"
#: utils/dates.py:11
msgid "Sat"
-msgstr ""
+msgstr "Sub"
#: utils/dates.py:11
msgid "Sun"
-msgstr ""
+msgstr "Ned"
#: utils/dates.py:18
msgid "January"
-msgstr ""
+msgstr "Siječanj"
#: utils/dates.py:18
msgid "February"
-msgstr ""
+msgstr "Veljača"
#: utils/dates.py:18 utils/dates.py:31
msgid "March"
-msgstr ""
+msgstr "Ožujak"
#: utils/dates.py:18 utils/dates.py:31
msgid "April"
-msgstr ""
+msgstr "Travanj"
#: utils/dates.py:18 utils/dates.py:31
msgid "May"
-msgstr ""
+msgstr "Svibanj"
#: utils/dates.py:18 utils/dates.py:31
msgid "June"
-msgstr ""
+msgstr "Lipanj"
#: utils/dates.py:19 utils/dates.py:31
msgid "July"
-msgstr ""
+msgstr "Srpanj"
#: utils/dates.py:19
msgid "August"
-msgstr ""
+msgstr "Kolovoz"
#: utils/dates.py:19
msgid "September"
-msgstr ""
+msgstr "Rujan"
#: utils/dates.py:19
msgid "October"
-msgstr ""
+msgstr "Listopad"
#: utils/dates.py:19
msgid "November"
-msgstr ""
+msgstr "Studeni"
#: utils/dates.py:20
msgid "December"
-msgstr ""
+msgstr "Prosinac"
#: utils/dates.py:23
msgid "jan"
-msgstr ""
+msgstr "sij."
#: utils/dates.py:23
msgid "feb"
-msgstr ""
+msgstr "velj."
#: utils/dates.py:23
msgid "mar"
-msgstr ""
+msgstr "ožu."
#: utils/dates.py:23
msgid "apr"
-msgstr ""
+msgstr "tra."
#: utils/dates.py:23
msgid "may"
-msgstr ""
+msgstr "svi."
#: utils/dates.py:23
msgid "jun"
-msgstr ""
+msgstr "lip."
#: utils/dates.py:24
msgid "jul"
-msgstr ""
+msgstr "srp."
#: utils/dates.py:24
msgid "aug"
-msgstr ""
+msgstr "kol."
#: utils/dates.py:24
msgid "sep"
-msgstr ""
+msgstr "ruj."
#: utils/dates.py:24
msgid "oct"
-msgstr ""
+msgstr "lis."
#: utils/dates.py:24
msgid "nov"
-msgstr ""
+msgstr "stu."
#: utils/dates.py:24
msgid "dec"
-msgstr ""
+msgstr "pro."
#: utils/dates.py:31
msgid "Jan."
-msgstr ""
+msgstr "Sij."
#: utils/dates.py:31
msgid "Feb."
-msgstr ""
+msgstr "Velj."
#: utils/dates.py:32
msgid "Aug."
-msgstr ""
+msgstr "Kol."
#: utils/dates.py:32
msgid "Sept."
-msgstr ""
+msgstr "Ruj."
#: utils/dates.py:32
msgid "Oct."
-msgstr ""
+msgstr "Lis."
#: utils/dates.py:32
msgid "Nov."
-msgstr ""
+msgstr "Stu."
#: utils/dates.py:32
msgid "Dec."
-msgstr ""
+msgstr "Pro."
#: utils/timesince.py:12
msgid "year"
msgid_plural "years"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "godina"
+msgstr[1] "godina"
#: utils/timesince.py:13
msgid "month"
msgid_plural "months"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "mjesec"
+msgstr[1] "mjesec"
#: utils/timesince.py:14
msgid "week"
msgid_plural "weeks"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "tjedan"
+msgstr[1] "tjedan"
#: utils/timesince.py:15
msgid "day"
msgid_plural "days"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "dan"
+msgstr[1] "dan"
#: utils/timesince.py:16
msgid "hour"
msgid_plural "hours"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "sati"
+msgstr[1] "sati"
#: utils/timesince.py:17
msgid "minute"
msgid_plural "minutes"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "minute"
+msgstr[1] "minuta"
#: utils/timesince.py:39
#, python-format
@@ -3228,7 +3228,7 @@ msgstr ""
#: utils/dateformat.py:97
msgid "midnight"
-msgstr ""
+msgstr "ponoć"
#: utils/dateformat.py:99
msgid "noon"
@@ -3256,7 +3256,7 @@ msgstr ""
#: template/defaultfilters.py:485
msgid "yes,no,maybe"
-msgstr ""
+msgstr "da,ne,možda"
#: template/defaultfilters.py:514
#, python-format
diff --git a/django/contrib/admin/media/js/urlify.js b/django/contrib/admin/media/js/urlify.js
index 40320979be..74e6e57e6c 100644
--- a/django/contrib/admin/media/js/urlify.js
+++ b/django/contrib/admin/media/js/urlify.js
@@ -45,7 +45,14 @@ var UKRAINIAN_MAP = {
}
var CZECH_MAP = {
'č':'c', 'ď':'d', 'ě':'e', 'ň': 'n', 'ř':'r', 'š':'s', 'ť':'t', 'ů':'u',
- 'ž':'z'
+ 'ž':'z', 'Č':'C', 'Ď':'D', 'Ě':'E', 'Ň': 'N', 'Ř':'R', 'Š':'S', 'Ť':'T',
+ 'Ů':'U', 'Ž':'Z'
+}
+
+var POLISH_MAP = {
+ 'ą':'a', 'ć':'c', 'ę':'e', 'ł':'l', 'ń':'n', 'ó':'o', 'ś':'s', 'ź':'z',
+ 'ż':'z', 'Ą':'A', 'Ć':'C', 'Ę':'e', 'Ł':'L', 'Ń':'N', 'Ó':'o', 'Ś':'S',
+ 'Ź':'Z', 'Ż':'Z'
}
var ALL_DOWNCODE_MAPS=new Array()
@@ -56,6 +63,7 @@ ALL_DOWNCODE_MAPS[3]=TURKISH_MAP
ALL_DOWNCODE_MAPS[4]=RUSSIAN_MAP
ALL_DOWNCODE_MAPS[5]=UKRAINIAN_MAP
ALL_DOWNCODE_MAPS[6]=CZECH_MAP
+ALL_DOWNCODE_MAPS[7]=POLISH_MAP
var Downcoder = new Object();
Downcoder.Initialize = function()
diff --git a/django/contrib/comments/feeds.py b/django/contrib/comments/feeds.py
index 417e1d928a..901254f3c4 100644
--- a/django/contrib/comments/feeds.py
+++ b/django/contrib/comments/feeds.py
@@ -4,7 +4,7 @@ from django.contrib.syndication.feeds import Feed
from django.contrib.sites.models import Site
class LatestFreeCommentsFeed(Feed):
- "Feed of latest comments on the current site."
+ """Feed of latest free comments on the current site."""
comments_class = FreeComment
@@ -30,7 +30,7 @@ class LatestFreeCommentsFeed(Feed):
return self.get_query_set()[:40]
class LatestCommentsFeed(LatestFreeCommentsFeed):
- """Feed of latest free comments on the current site"""
+ """Feed of latest comments on the current site."""
comments_class = Comment
diff --git a/django/contrib/localflavor/es/__init__.py b/django/contrib/localflavor/es/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/django/contrib/localflavor/es/__init__.py
diff --git a/django/contrib/localflavor/es/es_provinces.py b/django/contrib/localflavor/es/es_provinces.py
new file mode 100644
index 0000000000..9f5e12680b
--- /dev/null
+++ b/django/contrib/localflavor/es/es_provinces.py
@@ -0,0 +1,58 @@
+# -*- coding: utf-8 -*-
+from django.utils.translation import ugettext_lazy as _
+
+PROVINCE_CHOICES = (
+ ('01', _('Arava')),
+ ('02', _('Albacete')),
+ ('03', _('Alacant')),
+ ('04', _('Almeria')),
+ ('05', _('Avila')),
+ ('06', _('Badajoz')),
+ ('07', _('Illes Balears')),
+ ('08', _('Barcelona')),
+ ('09', _('Burgos')),
+ ('10', _('Caceres')),
+ ('11', _('Cadiz')),
+ ('12', _('Castello')),
+ ('13', _('Ciudad Real')),
+ ('14', _('Cordoba')),
+ ('15', _('A Coruna')),
+ ('16', _('Cuenca')),
+ ('17', _('Girona')),
+ ('18', _('Granada')),
+ ('19', _('Guadalajara')),
+ ('20', _('Guipuzkoa')),
+ ('21', _('Huelva')),
+ ('22', _('Huesca')),
+ ('23', _('Jaen')),
+ ('24', _('Leon')),
+ ('25', _('Lleida')),
+ ('26', _('La Rioja')),
+ ('27', _('Lugo')),
+ ('28', _('Madrid')),
+ ('29', _('Malaga')),
+ ('30', _('Murcia')),
+ ('31', _('Navarre')),
+ ('32', _('Ourense')),
+ ('33', _('Asturias')),
+ ('34', _('Palencia')),
+ ('35', _('Las Palmas')),
+ ('36', _('Pontevedra')),
+ ('37', _('Salamanca')),
+ ('38', _('Santa Cruz de Tenerife')),
+ ('39', _('Cantabria')),
+ ('40', _('Segovia')),
+ ('41', _('Seville')),
+ ('42', _('Soria')),
+ ('43', _('Tarragona')),
+ ('44', _('Teruel')),
+ ('45', _('Toledo')),
+ ('46', _('Valencia')),
+ ('47', _('Valladolid')),
+ ('48', _('Bizkaia')),
+ ('49', _('Zamora')),
+ ('50', _('Zaragoza')),
+ ('51', _('Ceuta')),
+ ('52', _('Melilla')),
+)
+
diff --git a/django/contrib/localflavor/es/es_regions.py b/django/contrib/localflavor/es/es_regions.py
new file mode 100644
index 0000000000..3c1ea0e974
--- /dev/null
+++ b/django/contrib/localflavor/es/es_regions.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+from django.utils.translation import ugettext_lazy as _
+
+REGION_CHOICES = (
+ ('AN', _('Andalusia')),
+ ('AR', _('Aragon')),
+ ('O', _('Principality of Asturias')),
+ ('IB', _('Balearic Islands')),
+ ('PV', _('Basque Country')),
+ ('CN', _('Canary Islands')),
+ ('S', _('Cantabria')),
+ ('CM', _('Castile-La Mancha')),
+ ('CL', _('Castile and Leon')),
+ ('CT', _('Catalonia')),
+ ('EX', _('Extremadura')),
+ ('GA', _('Galicia')),
+ ('LO', _('La Rioja')),
+ ('M', _('Madrid')),
+ ('MU', _('Region of Murcia')),
+ ('NA', _('Foral Community of Navarre')),
+ ('VC', _('Valencian Community')),
+)
+
diff --git a/django/contrib/localflavor/es/forms.py b/django/contrib/localflavor/es/forms.py
new file mode 100644
index 0000000000..29b41828f6
--- /dev/null
+++ b/django/contrib/localflavor/es/forms.py
@@ -0,0 +1,173 @@
+# -*- coding: utf-8 -*-
+"""
+Spanish-specific Form helpers
+"""
+
+from django.newforms import ValidationError
+from django.newforms.fields import RegexField, Select, EMPTY_VALUES
+from django.utils.translation import ugettext as _
+import re
+
+class ESPostalCodeField(RegexField):
+ """
+ A form field that validates its input as a spanish postal code.
+
+ Spanish postal code is a five digits string, with two first digits
+ between 01 and 52, assigned to provinces code.
+ """
+ def __init__(self, *args, **kwargs):
+ super(ESPostalCodeField, self).__init__(
+ r'^(0[1-9]|[1-4][0-9]|5[0-2])\d{3}$',
+ max_length=None, min_length=None,
+ error_message=_('Enter a valid postal code in the range and format 01XXX - 52XXX.'),
+ *args, **kwargs)
+
+class ESPhoneNumberField(RegexField):
+ """
+ A form field that validates its input as a Spanish phone number.
+ Information numbers are ommited.
+
+ Spanish phone numbers are nine digit numbers, where first digit is 6 (for
+ cell phones), 8 (for special phones), or 9 (for landlines and special
+ phones)
+
+ TODO: accept and strip characters like dot, hyphen... in phone number
+ """
+ def __init__(self, *args, **kwargs):
+ super(ESPhoneNumberField, self).__init__(r'^(6|8|9)\d{8}$',
+ max_length=None, min_length=None,
+ error_message=_('Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.'),
+ *args, **kwargs)
+
+class ESIdentityCardNumberField(RegexField):
+ """
+ Spanish NIF/NIE/CIF (Fiscal Identification Number) code.
+
+ Validates three diferent formats:
+
+ NIF (individuals): 12345678A
+ CIF (companies): A12345678
+ NIE (foreigners): X12345678A
+
+ according to a couple of simple checksum algorithms.
+
+ Value can include a space or hyphen separator between number and letters.
+ Number length is not checked for NIF (or NIE), old values start with a 1,
+ and future values can contain digits greater than 8. The CIF control digit
+ can be a number or a letter depending on company type. Algorithm is not
+ public, and different authors have different opinions on which ones allows
+ letters, so both validations are assumed true for all types.
+ """
+ def __init__(self, only_nif=False, *args, **kwargs):
+ self.only_nif = only_nif
+ self.nif_control = 'TRWAGMYFPDXBNJZSQVHLCKE'
+ self.cif_control = 'JABCDEFGHI'
+ self.cif_types = 'ABCDEFGHKLMNPQS'
+ self.nie_types = 'XT'
+ if self.only_nif:
+ self.id_types = 'NIF or NIE'
+ else:
+ self.id_types = 'NIF, NIE, or CIF'
+ super(ESIdentityCardNumberField, self).__init__(r'^([%s]?)[ -]?(\d+)[ -]?([%s]?)$' % (self.cif_types + self.nie_types + self.cif_types.lower() + self.nie_types.lower(), self.nif_control + self.nif_control.lower()),
+ max_length=None, min_length=None,
+ error_message=_('Please enter a valid %s.' % self.id_types),
+ *args, **kwargs)
+
+ def clean(self, value):
+ super(ESIdentityCardNumberField, self).clean(value)
+ if value in EMPTY_VALUES:
+ return u''
+ nif_get_checksum = lambda d: self.nif_control[int(d)%23]
+
+ value = value.upper().replace(' ', '').replace('-', '')
+ m = re.match(r'^([%s]?)[ -]?(\d+)[ -]?([%s]?)$' % (self.cif_types + self.nie_types, self.nif_control), value)
+ letter1, number, letter2 = m.groups()
+
+ if not letter1 and letter2:
+ # NIF
+ if letter2 == nif_get_checksum(number):
+ return value
+ else:
+ raise ValidationError, _('Invalid checksum for NIF.')
+ elif letter1 in self.nie_types and letter2:
+ # NIE
+ if letter2 == nif_get_checksum(number):
+ return value
+ else:
+ raise ValidationError, _('Invalid checksum for NIE.')
+ elif not self.only_nif and letter1 in self.cif_types and len(number) in [7, 8]:
+ # CIF
+ if not letter2:
+ number, letter2 = number[:-1], int(number[-1])
+ checksum = cif_get_checksum(number)
+ if letter2 in [checksum, self.cif_control[checksum]]:
+ return value
+ else:
+ raise ValidationError, _('Invalid checksum for CIF.')
+ else:
+ raise ValidationError, _('Please enter a valid %s.' % self.id_types)
+
+class ESCCCField(RegexField):
+ """
+ A form field that validates its input as a Spanish bank account or CCC
+ (Codigo Cuenta Cliente).
+
+ Spanish CCC is in format EEEE-OOOO-CC-AAAAAAAAAA where:
+
+ E = entity
+ O = office
+ C = checksum
+ A = account
+
+ It's also valid to use a space as delimiter, or to use no delimiter.
+
+ First checksum digit validates entity and office, and last one
+ validates account. Validation is done multiplying every digit of 10
+ digit value (with leading 0 if necessary) by number in its position in
+ string 1, 2, 4, 8, 5, 10, 9, 7, 3, 6. Sum resulting numbers and extract
+ it from 11. Result is checksum except when 10 then is 1, or when 11
+ then is 0.
+
+ TODO: allow IBAN validation too
+ """
+ def __init__(self, *args, **kwargs):
+ super(ESCCCField, self).__init__(r'^\d{4}[ -]?\d{4}[ -]?\d{2}[ -]?\d{10}$',
+ max_length=None, min_length=None,
+ error_message=_('Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX.'),
+ *args, **kwargs)
+
+ def clean(self, value):
+ super(ESCCCField, self).clean(value)
+ if value in EMPTY_VALUES:
+ return u''
+ control_str = [1, 2, 4, 8, 5, 10, 9, 7, 3, 6]
+ m = re.match(r'^(\d{4})[ -]?(\d{4})[ -]?(\d{2})[ -]?(\d{10})$', value)
+ entity, office, checksum, account = m.groups()
+ get_checksum = lambda d: str(11 - sum([int(digit) * int(control) for digit, control in zip(d, control_str)]) % 11).replace('10', '1').replace('11', '0')
+ if get_checksum('00' + entity + office) + get_checksum(account) == checksum:
+ return value
+ else:
+ raise ValidationError, _('Invalid checksum for bank account number.')
+
+class ESRegionSelect(Select):
+ """
+ A Select widget that uses a list of spanish regions as its choices.
+ """
+ def __init__(self, attrs=None):
+ from es_regions import REGION_CHOICES
+ super(ESRegionSelect, self).__init__(attrs, choices=REGION_CHOICES)
+
+class ESProvinceSelect(Select):
+ """
+ A Select widget that uses a list of spanish provinces as its choices.
+ """
+ def __init__(self, attrs=None):
+ from es_provinces import PROVINCE_CHOICES
+ super(ESProvinceSelect, self).__init__(attrs, choices=PROVINCE_CHOICES)
+
+
+def cif_get_checksum(number):
+ s1 = sum([int(digit) for pos, digit in enumerate(number) if int(pos) % 2])
+ s2 = sum([sum([int(unit) for unit in str(int(digit) * 2)]) for pos, digit in enumerate(number) if not int(pos) % 2])
+ return 10 - ((s1 + s2) % 10)
+
diff --git a/django/contrib/localflavor/pl/forms.py b/django/contrib/localflavor/pl/forms.py
index 62806362dc..3d1c4234d3 100644
--- a/django/contrib/localflavor/pl/forms.py
+++ b/django/contrib/localflavor/pl/forms.py
@@ -2,6 +2,8 @@
Polish-specific form helpers
"""
+import re
+
from django.newforms import ValidationError
from django.newforms.fields import Select, RegexField
from django.utils.translation import ugettext as _
@@ -34,20 +36,6 @@ class PLNationalIdentificationNumberField(RegexField):
The algorithm is documented at http://en.wikipedia.org/wiki/PESEL.
"""
- def has_valid_checksum(self, number):
- """
- Calculates a checksum with the provided algorithm.
- """
- multiple_table = (1, 3, 7, 9, 1, 3, 7, 9, 1, 3, 1)
- result = 0
- for i in range(len(number)):
- result += int(number[i])*multiple_table[i]
-
- if result % 10 == 0:
- return True
- else:
- return False
-
def __init__(self, *args, **kwargs):
super(PLNationalIdentificationNumberField, self).__init__(r'^\d{11}$',
max_length=None, min_length=None, error_message=_(u'National Identification Number consists of 11 digits.'),
@@ -59,17 +47,95 @@ class PLNationalIdentificationNumberField(RegexField):
raise ValidationError(_(u'Wrong checksum for the National Identification Number.'))
return u'%s' % value
+ def has_valid_checksum(self, number):
+ """
+ Calculates a checksum with the provided algorithm.
+ """
+ multiple_table = (1, 3, 7, 9, 1, 3, 7, 9, 1, 3, 1)
+ result = 0
+ for i in range(len(number)):
+ result += int(number[i]) * multiple_table[i]
+ return result % 10 == 0
class PLTaxNumberField(RegexField):
"""
A form field that validates as Polish Tax Number (NIP).
Valid forms are: XXX-XXX-YY-YY or XX-XX-YYY-YYY.
+
+ Checksum algorithm based on documentation at
+ http://wipos.p.lodz.pl/zylla/ut/nip-rego.html
"""
+
def __init__(self, *args, **kwargs):
super(PLTaxNumberField, self).__init__(r'^\d{3}-\d{3}-\d{2}-\d{2}$|^\d{2}-\d{2}-\d{3}-\d{3}$',
max_length=None, min_length=None,
error_message=_(u'Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX.'), *args, **kwargs)
+ def clean(self,value):
+ super(PLTaxNumberField, self).clean(value)
+ value = re.sub("[-]", "", value)
+ if not self.has_valid_checksum(value):
+ raise ValidationError(_(u'Wrong checksum for the Tax Number (NIP).'))
+ return u'%s' % value
+
+ def has_valid_checksum(self, number):
+ """
+ Calculates a checksum with the provided algorithm.
+ """
+ multiple_table = (6, 5, 7, 2, 3, 4, 5, 6, 7)
+ result = 0
+ for i in range(len(number)-1):
+ result += int(number[i]) * multiple_table[i]
+
+ result %= 11
+ if result == int(number[-1]):
+ return True
+ else:
+ return False
+
+class PLNationalBusinessRegisterField(RegexField):
+ """
+ A form field that validated as Polish National Official Business Register Number (REGON)
+ Valid forms are: 7 or 9 digits number
+
+ More on the field: http://www.stat.gov.pl/bip/regon_ENG_HTML.htm
+
+ The checksum algorithm is documented at http://wipos.p.lodz.pl/zylla/ut/nip-rego.html
+ """
+ def __init__(self, *args, **kwargs):
+ super(PLNationalBusinessRegisterField, self).__init__(r'^\d{7,9}$',
+ max_length=None, min_length=None, error_message=_(u'National Business Register Number (REGON) consists of 7 or 9 digits.'),
+ *args, **kwargs)
+
+ def clean(self,value):
+ super(PLNationalBusinessRegisterField, self).clean(value)
+ if not self.has_valid_checksum(value):
+ raise ValidationError(_(u'Wrong checksum for the National Business Register Number (REGON).'))
+ return u'%s' % value
+
+ def has_valid_checksum(self, number):
+ """
+ Calculates a checksum with the provided algorithm.
+ """
+ multiple_table_7 = (2, 3, 4, 5, 6, 7)
+ multiple_table_9 = (8, 9, 2, 3, 4, 5, 6, 7)
+ result = 0
+
+ if len(number) == 7:
+ multiple_table = multiple_table_7
+ else:
+ multiple_table = multiple_table_9
+
+ for i in range(len(number)-1):
+ result += int(number[i]) * multiple_table[i]
+
+ result %= 11
+ if result == 10:
+ result = 0
+ if result == int(number[-1]):
+ return True
+ else:
+ return False
class PLPostalCodeField(RegexField):
"""
diff --git a/django/contrib/sessions/backends/base.py b/django/contrib/sessions/backends/base.py
index e6be0482de..192065a5f3 100644
--- a/django/contrib/sessions/backends/base.py
+++ b/django/contrib/sessions/backends/base.py
@@ -48,6 +48,7 @@ class SessionBase(object):
return self._session.get(key, default)
def pop(self, key, *args):
+ self.modified = self.modified or key in self._session
return self._session.pop(key, *args)
def set_test_cookie(self):
diff --git a/django/contrib/sessions/middleware.py b/django/contrib/sessions/middleware.py
index 4c3c5acc43..7b6c826805 100644
--- a/django/contrib/sessions/middleware.py
+++ b/django/contrib/sessions/middleware.py
@@ -31,7 +31,7 @@ class SessionMiddleware(object):
else:
max_age = settings.SESSION_COOKIE_AGE
rfcdate = formatdate(time.time() + settings.SESSION_COOKIE_AGE)
-
+
# Fixed length date must have '-' separation in the format
# DD-MMM-YYYY for compliance with Netscape cookie standard
expires = datetime.datetime.strftime(datetime.datetime.utcnow() + \
@@ -39,8 +39,10 @@ class SessionMiddleware(object):
# Save the seesion data and refresh the client cookie.
request.session.save()
- response.set_cookie(settings.SESSION_COOKIE_NAME, request.session.session_key,
- max_age=max_age, expires=expires, domain=settings.SESSION_COOKIE_DOMAIN,
- secure=settings.SESSION_COOKIE_SECURE or None)
-
+ response.set_cookie(settings.SESSION_COOKIE_NAME,
+ request.session.session_key, max_age=max_age,
+ expires=expires, domain=settings.SESSION_COOKIE_DOMAIN,
+ path=settings.SESSION_COOKIE_PATH,
+ secure=settings.SESSION_COOKIE_SECURE or None)
+
return response
diff --git a/django/contrib/sessions/tests.py b/django/contrib/sessions/tests.py
index cfb475fc49..ab3034f858 100644
--- a/django/contrib/sessions/tests.py
+++ b/django/contrib/sessions/tests.py
@@ -3,6 +3,7 @@ r"""
>>> from django.contrib.sessions.backends.db import SessionStore as DatabaseSession
>>> from django.contrib.sessions.backends.cache import SessionStore as CacheSession
>>> from django.contrib.sessions.backends.file import SessionStore as FileSession
+>>> from django.contrib.sessions.backends.base import SessionBase
>>> db_session = DatabaseSession()
>>> db_session.modified
@@ -52,6 +53,28 @@ True
>>> cache_session.delete(cache_session.session_key)
>>> cache_session.exists(cache_session.session_key)
False
+
+>>> s = SessionBase()
+>>> s._session['some key'] = 'exists' # Pre-populate the session with some data
+>>> s.accessed = False # Reset to pretend this wasn't accessed previously
+
+>>> s.accessed, s.modified
+(False, False)
+
+>>> s.pop('non existant key', 'does not exist')
+'does not exist'
+>>> s.accessed, s.modified
+(True, False)
+
+>>> s.accessed = False # Reset the accessed flag
+
+>>> s.pop('some key')
+'exists'
+>>> s.accessed, s.modified
+(True, True)
+
+>>> s.pop('some key', 'does not exist')
+'does not exist'
"""
if __name__ == '__main__':
diff --git a/django/contrib/syndication/feeds.py b/django/contrib/syndication/feeds.py
index eb5a9f0607..57d092a5b5 100644
--- a/django/contrib/syndication/feeds.py
+++ b/django/contrib/syndication/feeds.py
@@ -89,6 +89,7 @@ class Feed(object):
categories = self.__get_dynamic_attr('categories', obj),
feed_copyright = self.__get_dynamic_attr('feed_copyright', obj),
feed_guid = self.__get_dynamic_attr('feed_guid', obj),
+ ttl = self.__get_dynamic_attr('ttl', obj),
)
try:
diff --git a/django/core/cache/backends/base.py b/django/core/cache/backends/base.py
index bb67399f3b..cd0d7bd103 100644
--- a/django/core/cache/backends/base.py
+++ b/django/core/cache/backends/base.py
@@ -14,6 +14,14 @@ class BaseCache(object):
timeout = 300
self.default_timeout = timeout
+ def add(self, key, value, timeout=None):
+ """
+ Set a value in the cache if the key does not already exist. If
+ timeout is given, that timeout will be used for the key; otherwise
+ the default cache timeout will be used.
+ """
+ raise NotImplementedError
+
def get(self, key, default=None):
"""
Fetch a given key from the cache. If the key does not exist, return
diff --git a/django/core/cache/backends/db.py b/django/core/cache/backends/db.py
index 4a0d44a44e..d54677057f 100644
--- a/django/core/cache/backends/db.py
+++ b/django/core/cache/backends/db.py
@@ -38,6 +38,12 @@ class CacheClass(BaseCache):
return pickle.loads(base64.decodestring(row[1]))
def set(self, key, value, timeout=None):
+ return self._base_set('set', key, value, timeout)
+
+ def add(self, key, value, timeout=None):
+ return self._base_set('add', key, value, timeout)
+
+ def _base_set(self, mode, key, value, timeout=None):
if timeout is None:
timeout = self.default_timeout
cursor = connection.cursor()
@@ -50,7 +56,7 @@ class CacheClass(BaseCache):
encoded = base64.encodestring(pickle.dumps(value, 2)).strip()
cursor.execute("SELECT cache_key FROM %s WHERE cache_key = %%s" % self._table, [key])
try:
- if cursor.fetchone():
+ if mode == 'set' and cursor.fetchone():
cursor.execute("UPDATE %s SET value = %%s, expires = %%s WHERE cache_key = %%s" % self._table, [encoded, str(exp), key])
else:
cursor.execute("INSERT INTO %s (cache_key, value, expires) VALUES (%%s, %%s, %%s)" % self._table, [key, encoded, str(exp)])
diff --git a/django/core/cache/backends/dummy.py b/django/core/cache/backends/dummy.py
index 4c64161538..3ff7e1c1b9 100644
--- a/django/core/cache/backends/dummy.py
+++ b/django/core/cache/backends/dummy.py
@@ -6,6 +6,9 @@ class CacheClass(BaseCache):
def __init__(self, *args, **kwargs):
pass
+ def add(self, *args, **kwargs):
+ pass
+
def get(self, key, default=None):
return default
diff --git a/django/core/cache/backends/filebased.py b/django/core/cache/backends/filebased.py
index d5415c8ace..690193ac81 100644
--- a/django/core/cache/backends/filebased.py
+++ b/django/core/cache/backends/filebased.py
@@ -17,6 +17,26 @@ class CacheClass(SimpleCacheClass):
del self._cache
del self._expire_info
+ def add(self, key, value, timeout=None):
+ fname = self._key_to_file(key)
+ if timeout is None:
+ timeout = self.default_timeout
+ try:
+ filelist = os.listdir(self._dir)
+ except (IOError, OSError):
+ self._createdir()
+ filelist = []
+ if len(filelist) > self._max_entries:
+ self._cull(filelist)
+ if os.path.basename(fname) not in filelist:
+ try:
+ f = open(fname, 'wb')
+ now = time.time()
+ pickle.dump(now + timeout, f, 2)
+ pickle.dump(value, f, 2)
+ except (IOError, OSError):
+ pass
+
def get(self, key, default=None):
fname = self._key_to_file(key)
try:
diff --git a/django/core/cache/backends/locmem.py b/django/core/cache/backends/locmem.py
index 4c48c571b7..5998f7bfd5 100644
--- a/django/core/cache/backends/locmem.py
+++ b/django/core/cache/backends/locmem.py
@@ -14,6 +14,13 @@ class CacheClass(SimpleCacheClass):
SimpleCacheClass.__init__(self, host, params)
self._lock = RWLock()
+ def add(self, key, value, timeout=None):
+ self._lock.writer_enters()
+ try:
+ SimpleCacheClass.add(self, key, value, timeout)
+ finally:
+ self._lock.writer_leaves()
+
def get(self, key, default=None):
should_delete = False
self._lock.reader_enters()
diff --git a/django/core/cache/backends/memcached.py b/django/core/cache/backends/memcached.py
index 52610daef1..096cec0ee0 100644
--- a/django/core/cache/backends/memcached.py
+++ b/django/core/cache/backends/memcached.py
@@ -16,6 +16,9 @@ class CacheClass(BaseCache):
BaseCache.__init__(self, params)
self._cache = memcache.Client(server.split(';'))
+ def add(self, key, value, timeout=0):
+ self._cache.add(key.encode('ascii', 'ignore'), value, timeout or self.default_timeout)
+
def get(self, key, default=None):
val = self._cache.get(smart_str(key))
if val is None:
diff --git a/django/core/cache/backends/simple.py b/django/core/cache/backends/simple.py
index 3fcad8c7ad..ff60d49066 100644
--- a/django/core/cache/backends/simple.py
+++ b/django/core/cache/backends/simple.py
@@ -21,6 +21,15 @@ class CacheClass(BaseCache):
except (ValueError, TypeError):
self._cull_frequency = 3
+ def add(self, key, value, timeout=None):
+ if len(self._cache) >= self._max_entries:
+ self._cull()
+ if timeout is None:
+ timeout = self.default_timeout
+ if key not in self._cache.keys():
+ self._cache[key] = value
+ self._expire_info[key] = time.time() + timeout
+
def get(self, key, default=None):
now = time.time()
exp = self._expire_info.get(key)
diff --git a/django/core/handlers/modpython.py b/django/core/handlers/modpython.py
index 52419d9e6c..2a3e03f3dd 100644
--- a/django/core/handlers/modpython.py
+++ b/django/core/handlers/modpython.py
@@ -14,7 +14,7 @@ import os
class ModPythonRequest(http.HttpRequest):
def __init__(self, req):
self._req = req
- self.path = force_unicode(req.uri, errors='ignore')
+ self.path = force_unicode(req.uri)
def __repr__(self):
# Since this is called as part of error handling, we need to be very
@@ -136,6 +136,8 @@ class ModPythonRequest(http.HttpRequest):
method = property(_get_method)
class ModPythonHandler(BaseHandler):
+ request_class = ModPythonRequest
+
def __call__(self, req):
# mod_python fakes the environ, and thus doesn't process SetEnv. This fixes that
os.environ.update(req.subprocess_env)
@@ -150,13 +152,16 @@ class ModPythonHandler(BaseHandler):
dispatcher.send(signal=signals.request_started)
try:
- request = ModPythonRequest(req)
- response = self.get_response(request)
-
- # Apply response middleware
- for middleware_method in self._response_middleware:
- response = middleware_method(request, response)
+ try:
+ request = self.request_class(req)
+ except UnicodeDecodeError:
+ response = http.HttpResponseBadRequest()
+ else:
+ response = self.get_response(request)
+ # Apply response middleware
+ for middleware_method in self._response_middleware:
+ response = middleware_method(request, response)
finally:
dispatcher.send(signal=signals.request_finished)
diff --git a/django/core/handlers/wsgi.py b/django/core/handlers/wsgi.py
index 95c5f9cbda..d06eee73f2 100644
--- a/django/core/handlers/wsgi.py
+++ b/django/core/handlers/wsgi.py
@@ -75,7 +75,7 @@ def safe_copyfileobj(fsrc, fdst, length=16*1024, size=0):
class WSGIRequest(http.HttpRequest):
def __init__(self, environ):
self.environ = environ
- self.path = force_unicode(environ['PATH_INFO'], errors='ignore')
+ self.path = force_unicode(environ['PATH_INFO'])
self.META = environ
self.method = environ['REQUEST_METHOD'].upper()
@@ -165,7 +165,9 @@ class WSGIRequest(http.HttpRequest):
content_length = int(self.environ.get('CONTENT_LENGTH', 0))
except ValueError: # if CONTENT_LENGTH was empty string or not an integer
content_length = 0
- safe_copyfileobj(self.environ['wsgi.input'], buf, size=content_length)
+ if content_length > 0:
+ safe_copyfileobj(self.environ['wsgi.input'], buf,
+ size=content_length)
self._raw_post_data = buf.getvalue()
buf.close()
return self._raw_post_data
@@ -179,6 +181,7 @@ class WSGIRequest(http.HttpRequest):
class WSGIHandler(BaseHandler):
initLock = Lock()
+ request_class = WSGIRequest
def __call__(self, environ, start_response):
from django.conf import settings
@@ -194,13 +197,16 @@ class WSGIHandler(BaseHandler):
dispatcher.send(signal=signals.request_started)
try:
- request = WSGIRequest(environ)
- response = self.get_response(request)
-
- # Apply response middleware
- for middleware_method in self._response_middleware:
- response = middleware_method(request, response)
+ try:
+ request = self.request_class(environ)
+ except UnicodeDecodeError:
+ response = http.HttpResponseBadRequest()
+ else:
+ response = self.get_response(request)
+ # Apply response middleware
+ for middleware_method in self._response_middleware:
+ response = middleware_method(request, response)
finally:
dispatcher.send(signal=signals.request_finished)
diff --git a/django/core/mail.py b/django/core/mail.py
index b90752e649..77ab8007e6 100644
--- a/django/core/mail.py
+++ b/django/core/mail.py
@@ -73,7 +73,7 @@ class SafeMIMEText(MIMEText):
if '\n' in val or '\r' in val:
raise BadHeaderError, "Header values can't contain newlines (got %r for header %r)" % (val, name)
try:
- val = str(force_unicode(val))
+ val = force_unicode(val).encode('ascii')
except UnicodeEncodeError:
if name.lower() in ('to', 'from', 'cc'):
result = []
@@ -92,7 +92,7 @@ class SafeMIMEMultipart(MIMEMultipart):
if '\n' in val or '\r' in val:
raise BadHeaderError, "Header values can't contain newlines (got %r for header %r)" % (val, name)
try:
- val = str(force_unicode(val))
+ val = force_unicode(val).encode('ascii')
except UnicodeEncodeError:
if name.lower() in ('to', 'from', 'cc'):
result = []
diff --git a/django/core/management/__init__.py b/django/core/management/__init__.py
index cd90fd6109..f706fa3c7e 100644
--- a/django/core/management/__init__.py
+++ b/django/core/management/__init__.py
@@ -1,31 +1,35 @@
-import django
-from django.core.management.base import BaseCommand, CommandError, handle_default_options
-from optparse import OptionParser
import os
import sys
+from optparse import OptionParser
from imp import find_module
+import django
+from django.core.management.base import BaseCommand, CommandError, handle_default_options
+
# For backwards compatibility: get_version() used to be in this module.
get_version = django.get_version
-# A cache of loaded commands, so that call_command
+# A cache of loaded commands, so that call_command
# doesn't have to reload every time it is called
_commands = None
def find_commands(management_dir):
"""
- Given a path to a management directory, return a list of all the command names
- that are available. Returns an empty list if no commands are defined.
+ Given a path to a management directory, returns a list of all the command
+ names that are available.
+
+ Returns an empty list if no commands are defined.
"""
- command_dir = os.path.join(management_dir,'commands')
+ command_dir = os.path.join(management_dir, 'commands')
try:
- return [f[:-3] for f in os.listdir(command_dir) if not f.startswith('_') and f.endswith('.py')]
+ return [f[:-3] for f in os.listdir(command_dir)
+ if not f.startswith('_') and f.endswith('.py')]
except OSError:
return []
def find_management_module(app_name):
"""
- Determine the path to the management module for the application named,
+ Determines the path to the management module for the application named,
without acutally importing the application or the management module.
Raises ImportError if the management module cannot be found for any reason.
@@ -36,23 +40,23 @@ def find_management_module(app_name):
path = None
while parts:
part = parts.pop()
- f,path,descr = find_module(part, path and [path] or None)
+ f, path, descr = find_module(part, path and [path] or None)
return path
-
+
def load_command_class(app_name, name):
"""
- Given a command name and an application name, returns the Command
+ Given a command name and an application name, returns the Command
class instance. All errors raised by the importation process
(ImportError, AttributeError) are allowed to propagate.
"""
- return getattr(__import__('%s.management.commands.%s' % (app_name, name),
+ return getattr(__import__('%s.management.commands.%s' % (app_name, name),
{}, {}, ['Command']), 'Command')()
def get_commands(load_user_commands=True, project_directory=None):
"""
Returns a dictionary of commands against the application in which
- those commands can be found. This works by looking for a
- management.commands package in django.core, and in each installed
+ those commands can be found. This works by looking for a
+ management.commands package in django.core, and in each installed
application -- if a commands package exists, all commands in that
package are registered.
@@ -62,38 +66,38 @@ def get_commands(load_user_commands=True, project_directory=None):
startapp command will be modified to use that directory.
The dictionary is in the format {command_name: app_name}. Key-value
- pairs from this dictionary can then be used in calls to
+ pairs from this dictionary can then be used in calls to
load_command_class(app_name, command_name)
-
+
If a specific version of a command must be loaded (e.g., with the
startapp command), the instantiated module can be placed in the
dictionary in place of the application name.
-
+
The dictionary is cached on the first call, and reused on subsequent
calls.
"""
global _commands
if _commands is None:
- _commands = dict([(name, 'django.core')
+ _commands = dict([(name, 'django.core')
for name in find_commands(__path__[0])])
if load_user_commands:
- # Get commands from all installed apps
+ # Get commands from all installed apps.
from django.conf import settings
for app_name in settings.INSTALLED_APPS:
try:
path = find_management_module(app_name)
- _commands.update(dict([(name, app_name)
+ _commands.update(dict([(name, app_name)
for name in find_commands(path)]))
except ImportError:
pass # No management module - ignore this app
-
+
if project_directory:
# Remove the "startproject" command from self.commands, because
# that's a django-admin.py command, not a manage.py command.
del _commands['startproject']
# Override the startapp command so that it always uses the
- # project_directory, not the current working directory
+ # project_directory, not the current working directory
# (which is default).
from django.core.management.commands.startapp import ProjectCommand
_commands['startapp'] = ProjectCommand(project_directory)
@@ -113,7 +117,7 @@ def call_command(name, *args, **options):
"""
try:
app_name = get_commands()[name]
- if isinstance(app_name, BaseCommand):
+ if isinstance(app_name, BaseCommand):
# If the command is already loaded, use it directly.
klass = app_name
else:
@@ -121,16 +125,16 @@ def call_command(name, *args, **options):
except KeyError:
raise CommandError, "Unknown command: %r" % name
return klass.execute(*args, **options)
-
-class LaxOptionParser(OptionParser):
+
+class LaxOptionParser(OptionParser):
"""
An option parser that doesn't raise any errors on unknown options.
-
+
This is needed because the --settings and --pythonpath options affect
- the commands (and thus the options) that are available to the user.
+ the commands (and thus the options) that are available to the user.
"""
- def error(self, msg):
- pass
+ def error(self, msg):
+ pass
class ManagementUtility(object):
"""
@@ -144,16 +148,19 @@ class ManagementUtility(object):
self.prog_name = os.path.basename(self.argv[0])
self.project_directory = None
self.user_commands = False
-
+
def main_help_text(self):
"""
Returns the script's main help text, as a string.
"""
usage = ['%s <subcommand> [options] [args]' % self.prog_name]
- usage.append('Django command line tool, version %s' % django.get_version())
- usage.append("Type '%s help <subcommand>' for help on a specific subcommand." % self.prog_name)
+ usage.append('Django command line tool,'
+ ' version %s' % django.get_version())
+ usage.append("Type '%s help <subcommand>' for help on a specific"
+ " subcommand." % self.prog_name)
usage.append('Available subcommands:')
- commands = get_commands(self.user_commands, self.project_directory).keys()
+ commands = get_commands(self.user_commands,
+ self.project_directory).keys()
commands.sort()
for cmd in commands:
usage.append(' %s' % cmd)
@@ -166,33 +173,35 @@ class ManagementUtility(object):
django-admin.py or manage.py) if it can't be found.
"""
try:
- app_name = get_commands(self.user_commands, self.project_directory)[subcommand]
- if isinstance(app_name, BaseCommand):
+ app_name = get_commands(self.user_commands,
+ self.project_directory)[subcommand]
+ if isinstance(app_name, BaseCommand):
# If the command is already loaded, use it directly.
klass = app_name
else:
klass = load_command_class(app_name, subcommand)
except KeyError:
- sys.stderr.write("Unknown command: %r\nType '%s help' for usage.\n" % (subcommand, self.prog_name))
+ sys.stderr.write("Unknown command: %r\nType '%s help' for"
+ " usage.\n" % (subcommand, self.prog_name))
sys.exit(1)
return klass
-
+
def execute(self):
"""
Given the command-line arguments, this figures out which subcommand is
being run, creates a parser appropriate to that command, and runs it.
"""
- # Preprocess options to extract --settings and --pythonpath. These options
- # could affect the commands that are available, so they must be processed
- # early
- parser = LaxOptionParser(version=get_version(),
- option_list=BaseCommand.option_list)
+ # Preprocess options to extract --settings and --pythonpath.
+ # These options could affect the commands that are available, so they
+ # must be processed early.
+ parser = LaxOptionParser(version=get_version(),
+ option_list=BaseCommand.option_list)
try:
- options, args = parser.parse_args(self.argv)
+ options, args = parser.parse_args(self.argv)
handle_default_options(options)
- except:
+ except:
pass # Ignore any option errors at this point.
-
+
try:
subcommand = self.argv[1]
except IndexError:
@@ -208,7 +217,8 @@ class ManagementUtility(object):
# Special-cases: We want 'django-admin.py --version' and
# 'django-admin.py --help' to work, for backwards compatibility.
elif self.argv[1:] == ['--version']:
- print django.get_version()
+ # LaxOptionParser already takes care of printing the version.
+ pass
elif self.argv[1:] == ['--help']:
sys.stderr.write(self.main_help_text() + '\n')
else:
@@ -227,10 +237,10 @@ class ProjectManagementUtility(ManagementUtility):
super(ProjectManagementUtility, self).__init__(argv)
self.project_directory = project_directory
self.user_commands = True
-
+
def setup_environ(settings_mod):
"""
- Configure the runtime environment. This can also be used by external
+ Configures the runtime environment. This can also be used by external
scripts wanting to set up a similar environment to manage.py.
"""
# Add this project to sys.path so that it's importable in the conventional
@@ -244,7 +254,8 @@ def setup_environ(settings_mod):
sys.path.pop()
# Set DJANGO_SETTINGS_MODULE appropriately.
- os.environ['DJANGO_SETTINGS_MODULE'] = '%s.%s' % (project_name, settings_name)
+ os.environ['DJANGO_SETTINGS_MODULE'] = '%s.%s' % (project_name,
+ settings_name)
return project_directory
def execute_from_command_line(argv=None):
diff --git a/django/core/management/validation.py b/django/core/management/validation.py
index 9e004d3d25..c433b7fa96 100644
--- a/django/core/management/validation.py
+++ b/django/core/management/validation.py
@@ -35,6 +35,8 @@ def get_validation_errors(outfile, app=None):
for f in opts.fields:
if f.name == 'id' and not f.primary_key and opts.pk.name == 'id':
e.add(opts, '"%s": You can\'t use "id" as a field name, because each model automatically gets an "id" field if none of the fields have primary_key=True. You need to either remove/rename your "id" field or add primary_key=True to a field.' % f.name)
+ if f.name.endswith('_'):
+ e.add(opts, '"%s": Field names cannot end with underscores, because this would lead to ambiguous queryset filters.' % f.name)
if isinstance(f, models.CharField) and f.max_length in (None, 0):
e.add(opts, '"%s": CharFields require a "max_length" attribute.' % f.name)
if isinstance(f, models.DecimalField):
diff --git a/django/core/urlresolvers.py b/django/core/urlresolvers.py
index c512c37b96..2ef3d6f169 100644
--- a/django/core/urlresolvers.py
+++ b/django/core/urlresolvers.py
@@ -249,8 +249,9 @@ class RegexURLResolver(object):
except AttributeError:
try:
self._urlconf_module = __import__(self.urlconf_name, {}, {}, [''])
- except ValueError, e:
- # Invalid urlconf_name, such as "foo.bar." (note trailing period)
+ except Exception, e:
+ # Either an invalid urlconf_name, such as "foo.bar.", or some
+ # kind of problem during the actual import.
raise ImproperlyConfigured, "Error while importing URLconf %r: %s" % (self.urlconf_name, e)
return self._urlconf_module
urlconf_module = property(_get_urlconf_module)
diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py
index 1b6ba07f24..dd50229461 100644
--- a/django/db/backends/__init__.py
+++ b/django/db/backends/__init__.py
@@ -127,6 +127,27 @@ class BaseDatabaseOperations(object):
"""
raise NotImplementedError('Full-text search is not implemented for this database backend')
+ def last_executed_query(self, cursor, sql, params):
+ """
+ Returns a string of the query last executed by the given cursor, with
+ placeholders replaced with actual values.
+
+ `sql` is the raw query containing placeholders, and `params` is the
+ sequence of parameters. These are used by default, but this method
+ exists for database backends to provide a better implementation
+ according to their own quoting schemes.
+ """
+ from django.utils.encoding import smart_unicode, force_unicode
+
+ # Convert params to contain Unicode values.
+ to_unicode = lambda s: force_unicode(s, strings_only=True)
+ if isinstance(params, (list, tuple)):
+ u_params = tuple([to_unicode(val) for val in params])
+ else:
+ u_params = dict([(to_unicode(k), to_unicode(v)) for k, v in params.items()])
+
+ return smart_unicode(sql) % u_params
+
def last_insert_id(self, cursor, table_name, pk_name):
"""
Given a cursor object that has just performed an INSERT statement into
diff --git a/django/db/backends/postgresql_psycopg2/base.py b/django/db/backends/postgresql_psycopg2/base.py
index a7b080d505..d7b3558344 100644
--- a/django/db/backends/postgresql_psycopg2/base.py
+++ b/django/db/backends/postgresql_psycopg2/base.py
@@ -5,7 +5,7 @@ Requires psycopg 2: http://initd.org/projects/psycopg2
"""
from django.db.backends import BaseDatabaseWrapper, BaseDatabaseFeatures
-from django.db.backends.postgresql.operations import DatabaseOperations
+from django.db.backends.postgresql.operations import DatabaseOperations as PostgresqlDatabaseOperations
try:
import psycopg2 as Database
import psycopg2.extensions
@@ -21,6 +21,13 @@ psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
class DatabaseFeatures(BaseDatabaseFeatures):
needs_datetime_string_cast = False
+class DatabaseOperations(PostgresqlDatabaseOperations):
+ def last_executed_query(self, cursor, sql, params):
+ # With psycopg2, cursor objects have a "query" attribute that is the
+ # exact query sent to the database. See docs here:
+ # http://www.initd.org/tracker/psycopg/wiki/psycopg2_documentation#postgresql-status-message-and-executed-query
+ return cursor.query
+
class DatabaseWrapper(BaseDatabaseWrapper):
features = DatabaseFeatures()
ops = DatabaseOperations()
diff --git a/django/db/backends/util.py b/django/db/backends/util.py
index fa2df22927..ca4e90d6c2 100644
--- a/django/db/backends/util.py
+++ b/django/db/backends/util.py
@@ -1,7 +1,6 @@
import datetime
import md5
from time import time
-from django.utils.encoding import smart_unicode, force_unicode
try:
import decimal
@@ -11,7 +10,7 @@ except ImportError:
class CursorDebugWrapper(object):
def __init__(self, cursor, db):
self.cursor = cursor
- self.db = db
+ self.db = db # Instance of a BaseDatabaseWrapper subclass
def execute(self, sql, params=()):
start = time()
@@ -19,8 +18,9 @@ class CursorDebugWrapper(object):
return self.cursor.execute(sql, params)
finally:
stop = time()
+ sql = self.db.ops.last_executed_query(self.cursor, sql, params)
self.db.queries.append({
- 'sql': smart_unicode(sql) % convert_args(params),
+ 'sql': sql,
'time': "%.3f" % (stop - start),
})
@@ -31,7 +31,7 @@ class CursorDebugWrapper(object):
finally:
stop = time()
self.db.queries.append({
- 'sql': 'MANY: ' + sql + ' ' + smart_unicode(tuple(param_list)),
+ 'sql': '%s times: %s' % (len(param_list), sql),
'time': "%.3f" % (stop - start),
})
@@ -41,16 +41,6 @@ class CursorDebugWrapper(object):
else:
return getattr(self.cursor, attr)
-def convert_args(args):
- """
- Convert sequence or dictionary to contain unicode values.
- """
- to_unicode = lambda s: force_unicode(s, strings_only=True)
- if isinstance(args, (list, tuple)):
- return tuple([to_unicode(val) for val in args])
- else:
- return dict([(to_unicode(k), to_unicode(v)) for k, v in args.items()])
-
###############################################
# Converters from database (string) to Python #
###############################################
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index 6186063b1d..e1506ce293 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -395,6 +395,8 @@ class Field(object):
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())
+ if self.has_default():
+ defaults['initial'] = self.get_default()
defaults.update(kwargs)
return form_class(**defaults)
diff --git a/django/dispatch/saferef.py b/django/dispatch/saferef.py
index 74b7a41942..c0d2eeb788 100644
--- a/django/dispatch/saferef.py
+++ b/django/dispatch/saferef.py
@@ -1,5 +1,6 @@
"""Refactored "safe reference" from dispatcher.py"""
import weakref, traceback
+from django.utils.functional import curry
def safeRef(target, onDelete = None):
"""Return a *safe* weak reference to a callable target
@@ -17,7 +18,7 @@ def safeRef(target, onDelete = None):
# Turn a bound method into a BoundMethodWeakref instance.
# Keep track of these instances for lookup by disconnect().
assert hasattr(target, 'im_func'), """safeRef target %r has im_self, but no im_func, don't know how to create reference"""%( target,)
- reference = BoundMethodWeakref(
+ reference = get_bound_method_weakref(
target=target,
onDelete=onDelete
)
@@ -163,3 +164,75 @@ class BoundMethodWeakref(object):
if function is not None:
return function.__get__(target)
return None
+
+class BoundNonDescriptorMethodWeakref(BoundMethodWeakref):
+ """A specialized BoundMethodWeakref, for platforms where instance methods
+ are not descriptors.
+
+ It assumes that the function name and the target attribute name are the
+ same, instead of assuming that the function is a descriptor. This approach
+ is equally fast, but not 100% reliable because functions can be stored on an
+ attribute named differenty than the function's name such as in:
+
+ class A: pass
+ def foo(self): return "foo"
+ A.bar = foo
+
+ But this shouldn't be a common use case. So, on platforms where methods
+ aren't descriptors (such as Jython) this implementation has the advantage
+ of working in the most cases.
+ """
+ def __init__(self, target, onDelete=None):
+ """Return a weak-reference-like instance for a bound method
+
+ target -- the instance-method target for the weak
+ reference, must have im_self and im_func attributes
+ and be reconstructable via:
+ target.im_func.__get__( target.im_self )
+ which is true of built-in instance methods.
+ onDelete -- optional callback which will be called
+ when this weak reference ceases to be valid
+ (i.e. either the object or the function is garbage
+ collected). Should take a single argument,
+ which will be passed a pointer to this object.
+ """
+ assert getattr(target.im_self, target.__name__) == target, \
+ ("method %s isn't available as the attribute %s of %s" %
+ (target, target.__name__, target.im_self))
+ super(BoundNonDescriptorMethodWeakref, self).__init__(target, onDelete)
+
+ def __call__(self):
+ """Return a strong reference to the bound method
+
+ If the target cannot be retrieved, then will
+ return None, otherwise returns a bound instance
+ method for our object and function.
+
+ Note:
+ You may call this method any number of times,
+ as it does not invalidate the reference.
+ """
+ target = self.weakSelf()
+ if target is not None:
+ function = self.weakFunc()
+ if function is not None:
+ # Using curry() would be another option, but it erases the
+ # "signature" of the function. That is, after a function is
+ # curried, the inspect module can't be used to determine how
+ # many arguments the function expects, nor what keyword
+ # arguments it supports, and pydispatcher needs this
+ # information.
+ return getattr(target, function.__name__)
+ return None
+
+
+def get_bound_method_weakref(target, onDelete):
+ """Instantiates the appropiate BoundMethodWeakRef, depending on the details of
+ the underlying class method implementation"""
+ if hasattr(target, '__get__'):
+ # target method is a descriptor, so the default implementation works:
+ return BoundMethodWeakref(target=target, onDelete=onDelete)
+ else:
+ # no luck, use the alternative implementation:
+ return BoundNonDescriptorMethodWeakref(target=target, onDelete=onDelete)
+
diff --git a/django/http/__init__.py b/django/http/__init__.py
index 508c6d2f3e..51744a0866 100644
--- a/django/http/__init__.py
+++ b/django/http/__init__.py
@@ -261,19 +261,23 @@ class HttpResponse(object):
else:
self._container = [content]
self._is_string = True
- self._headers = {'content-type': content_type}
self.cookies = SimpleCookie()
if status:
self.status_code = status
+ # _headers is a mapping of the lower-case name to the original case of
+ # the header (required for working with legacy systems) and the header
+ # value.
+ self._headers = {'content-type': ('Content-Type', content_type)}
+
def __str__(self):
"Full HTTP message, including headers"
return '\n'.join(['%s: %s' % (key, value)
- for key, value in self._headers.items()]) \
+ for key, value in self._headers.values()]) \
+ '\n\n' + self.content
def __setitem__(self, header, value):
- self._headers[header.lower()] = value
+ self._headers[header.lower()] = (header, value)
def __delitem__(self, header):
try:
@@ -282,19 +286,19 @@ class HttpResponse(object):
pass
def __getitem__(self, header):
- return self._headers[header.lower()]
+ return self._headers[header.lower()][1]
def has_header(self, header):
"Case-insensitive check for a header"
return self._headers.has_key(header.lower())
__contains__ = has_header
-
+
def items(self):
- return self._headers.items()
-
+ return self._headers.values()
+
def get(self, header, alternate):
- return self._headers.get(header, alternate)
+ return self._headers.get(header.lower(), (None, alternate))[1]
def set_cookie(self, key, value='', max_age=None, expires=None, path='/', domain=None, secure=None):
self.cookies[key] = value
@@ -304,17 +308,13 @@ class HttpResponse(object):
self.cookies[key][var.replace('_', '-')] = val
def delete_cookie(self, key, path='/', domain=None):
- self.cookies[key] = ''
- if path is not None:
- self.cookies[key]['path'] = path
- if domain is not None:
- self.cookies[key]['domain'] = domain
- self.cookies[key]['expires'] = 0
- self.cookies[key]['max-age'] = 0
+ self.set_cookie(key, max_age=0, path=path, domain=domain,
+ expires='Thu, 01-Jan-1970 00:00:00 GMT')
def _get_content(self):
- content = smart_str(''.join(self._container), self._charset)
- return content
+ if self.has_header('Content-Encoding'):
+ return ''.join(self._container)
+ return smart_str(''.join(self._container), self._charset)
def _set_content(self, value):
self._container = [value]
diff --git a/django/middleware/common.py b/django/middleware/common.py
index 57af4eb481..10a3a71b8d 100644
--- a/django/middleware/common.py
+++ b/django/middleware/common.py
@@ -1,8 +1,10 @@
+import md5
+import re
+
from django.conf import settings
from django import http
from django.core.mail import mail_managers
-import md5
-import re
+from django.utils.http import urlquote
class CommonMiddleware(object):
"""
@@ -46,9 +48,9 @@ class CommonMiddleware(object):
if new_url != old_url:
# Redirect
if new_url[0]:
- newurl = "%s://%s%s" % (request.is_secure() and 'https' or 'http', new_url[0], new_url[1])
+ newurl = "%s://%s%s" % (request.is_secure() and 'https' or 'http', new_url[0], urlquote(new_url[1]))
else:
- newurl = new_url[1]
+ newurl = urlquote(new_url[1])
if request.GET:
newurl += '?' + request.GET.urlencode()
return http.HttpResponsePermanentRedirect(newurl)
diff --git a/django/middleware/gzip.py b/django/middleware/gzip.py
index 7fd0d82419..aa2a8ea5a6 100644
--- a/django/middleware/gzip.py
+++ b/django/middleware/gzip.py
@@ -17,10 +17,11 @@ class GZipMiddleware(object):
return response
patch_vary_headers(response, ('Accept-Encoding',))
-
+
# Avoid gzipping if we've already got a content-encoding or if the
- # content-type is Javascript (silly IE...)
- is_js = "javascript" in response.get('Content-Type', '').lower()
+ # content-type is Javascript and the user's browser is IE.
+ is_js = ("msie" in request.META.get('HTTP_USER_AGENT', '').lower() and
+ "javascript" in response.get('Content-Type', '').lower())
if response.has_header('Content-Encoding') or is_js:
return response
diff --git a/django/newforms/fields.py b/django/newforms/fields.py
index a39987e1b5..11e6f51779 100644
--- a/django/newforms/fields.py
+++ b/django/newforms/fields.py
@@ -11,7 +11,7 @@ from django.utils.translation import ugettext
from django.utils.encoding import StrAndUnicode, smart_unicode
from util import ErrorList, ValidationError
-from widgets import TextInput, PasswordInput, HiddenInput, MultipleHiddenInput, FileInput, CheckboxInput, Select, NullBooleanSelect, SelectMultiple
+from widgets import TextInput, PasswordInput, HiddenInput, MultipleHiddenInput, FileInput, CheckboxInput, Select, NullBooleanSelect, SelectMultiple, DateTimeInput
try:
from decimal import Decimal, DecimalException
@@ -284,6 +284,8 @@ DEFAULT_DATETIME_INPUT_FORMATS = (
)
class DateTimeField(Field):
+ widget = DateTimeInput
+
def __init__(self, input_formats=None, *args, **kwargs):
super(DateTimeField, self).__init__(*args, **kwargs)
self.input_formats = input_formats or DEFAULT_DATETIME_INPUT_FORMATS
@@ -300,6 +302,12 @@ class DateTimeField(Field):
return value
if isinstance(value, datetime.date):
return datetime.datetime(value.year, value.month, value.day)
+ if isinstance(value, list):
+ # Input comes from a SplitDateTimeWidget, for example. So, it's two
+ # components: date and time.
+ if len(value) != 2:
+ raise ValidationError(ugettext(u'Enter a valid date/time.'))
+ value = '%s %s' % tuple(value)
for format in self.input_formats:
try:
return datetime.datetime(*time.strptime(value, format)[:6])
diff --git a/django/newforms/widgets.py b/django/newforms/widgets.py
index 2c235513d0..076845427d 100644
--- a/django/newforms/widgets.py
+++ b/django/newforms/widgets.py
@@ -19,7 +19,7 @@ from util import flatatt
__all__ = (
'Widget', 'TextInput', 'PasswordInput',
'HiddenInput', 'MultipleHiddenInput',
- 'FileInput', 'Textarea', 'CheckboxInput',
+ 'FileInput', 'DateTimeInput', 'Textarea', 'CheckboxInput',
'Select', 'NullBooleanSelect', 'SelectMultiple', 'RadioSelect',
'CheckboxSelectMultiple', 'MultiWidget', 'SplitDateTimeWidget',
)
@@ -133,7 +133,7 @@ class FileInput(Input):
def render(self, name, value, attrs=None):
return super(FileInput, self).render(name, None, attrs=attrs)
-
+
def value_from_datadict(self, data, files, name):
"File widgets take data from FILES, not POST"
return files.get(name, None)
@@ -151,6 +151,22 @@ class Textarea(Widget):
final_attrs = self.build_attrs(attrs, name=name)
return u'<textarea%s>%s</textarea>' % (flatatt(final_attrs), escape(value))
+class DateTimeInput(Input):
+ input_type = 'text'
+ format = '%Y-%m-%d %H:%M:%S' # '2006-10-25 14:30:59'
+
+ def __init__(self, attrs=None, format=None):
+ super(DateTimeInput, self).__init__(attrs)
+ if format:
+ self.format = format
+
+ def render(self, name, value, attrs=None):
+ if value is None:
+ value = ''
+ elif hasattr(value, 'strftime'):
+ value = value.strftime(self.format)
+ return super(DateTimeInput, self).render(name, value, attrs)
+
class CheckboxInput(Widget):
def __init__(self, attrs=None, check_test=bool):
super(CheckboxInput, self).__init__(attrs)
@@ -170,6 +186,13 @@ class CheckboxInput(Widget):
final_attrs['value'] = force_unicode(value) # Only add the 'value' attribute if a value is non-empty.
return u'<input%s />' % flatatt(final_attrs)
+ def value_from_datadict(self, data, files, name):
+ if name not in data:
+ # A missing value means False because HTML form submission does not
+ # send results for unselected checkboxes.
+ return False
+ return super(CheckboxInput, self).value_from_datadict(data, files, name)
+
class Select(Widget):
def __init__(self, attrs=None, choices=()):
super(Select, self).__init__(attrs)
@@ -425,5 +448,5 @@ class SplitDateTimeWidget(MultiWidget):
def decompress(self, value):
if value:
- return [value.date(), value.time()]
+ return [value.date(), value.time().replace(microsecond=0)]
return [None, None]
diff --git a/django/template/defaulttags.py b/django/template/defaulttags.py
index 151985bfdd..2ba23a0465 100644
--- a/django/template/defaulttags.py
+++ b/django/template/defaulttags.py
@@ -517,8 +517,14 @@ def firstof(parser, token):
{% endif %}{% endif %}{% endif %}
but obviously much cleaner!
+
+ You can also use a literal string as a fallback value in case all
+ passed variables are False::
+
+ {% firstof var1 var2 var3 "fallback value" %}
+
"""
- bits = token.contents.split()[1:]
+ bits = token.split_contents()[1:]
if len(bits) < 1:
raise TemplateSyntaxError, "'firstof' statement requires at least one argument"
return FirstOfNode(bits)
@@ -675,7 +681,7 @@ def do_if(parser, token):
{% if athlete_list and coach_list or cheerleader_list %}
If you need to combine ``and`` and ``or`` to do advanced logic, just use
- nested if tags. For example:
+ nested if tags. For example::
{% if athlete_list %}
{% if coach_list or cheerleader_list %}
diff --git a/django/templatetags/cache.py b/django/templatetags/cache.py
new file mode 100644
index 0000000000..4436b15d6e
--- /dev/null
+++ b/django/templatetags/cache.py
@@ -0,0 +1,57 @@
+from django.template import Library, Node, TemplateSyntaxError
+from django.template import resolve_variable
+from django.core.cache import cache
+from django.utils.encoding import force_unicode
+
+register = Library()
+
+class CacheNode(Node):
+ def __init__(self, nodelist, expire_time, fragment_name, vary_on):
+ self.nodelist = nodelist
+ self.expire_time = expire_time
+ self.fragment_name = fragment_name
+ self.vary_on = vary_on
+
+ def render(self, context):
+ # Build a unicode key for this fragment and all vary-on's.
+ cache_key = u':'.join([self.fragment_name] + \
+ [force_unicode(resolve_variable(var, context)) for var in self.vary_on])
+ value = cache.get(cache_key)
+ if value is None:
+ value = self.nodelist.render(context)
+ cache.set(cache_key, value, self.expire_time)
+ return value
+
+def do_cache(parser, token):
+ """
+ This will cache the contents of a template fragment for a given amount
+ of time.
+
+ Usage::
+
+ {% load cache %}
+ {% cache [expire_time] [fragment_name] %}
+ .. some expensive processing ..
+ {% endcache %}
+
+ This tag also supports varying by a list of arguments::
+
+ {% load cache %}
+ {% cache [expire_time] [fragment_name] [var1] [var2] .. %}
+ .. some expensive processing ..
+ {% endcache %}
+
+ Each unique set of arguments will result in a unique cache entry.
+ """
+ nodelist = parser.parse(('endcache',))
+ parser.delete_first_token()
+ tokens = token.contents.split()
+ if len(tokens) < 3:
+ raise TemplateSyntaxError(u"'%r' tag requires at least 2 arguments." % tokens[0])
+ try:
+ expire_time = int(tokens[1])
+ except ValueError:
+ raise TemplateSyntaxError(u"First argument to '%r' must be an integer (got '%s')." % (tokens[0], tokens[1]))
+ return CacheNode(nodelist, expire_time, tokens[2], tokens[3:])
+
+register.tag('cache', do_cache)
diff --git a/django/templatetags/i18n.py b/django/templatetags/i18n.py
index d5b0741a61..cec35fb48e 100644
--- a/django/templatetags/i18n.py
+++ b/django/templatetags/i18n.py
@@ -1,3 +1,5 @@
+import re
+
from django.template import Node, Variable
from django.template import TemplateSyntaxError, TokenParser, Library
from django.template import TOKEN_TEXT, TOKEN_VAR
@@ -68,9 +70,11 @@ class BlockTranslateNode(Node):
count = self.counter.resolve(context)
context[self.countervar] = count
plural = self.render_token_list(self.plural)
- result = translation.ungettext(singular, plural, count) % context
+ result = translation.ungettext(singular, plural, count)
else:
- result = translation.ugettext(singular) % context
+ result = translation.ugettext(singular)
+ # Escape all isolated '%' before substituting in the context.
+ result = re.sub('%(?!\()', '%%', result) % context
context.pop()
return result
diff --git a/django/test/utils.py b/django/test/utils.py
index 6edd186b54..51ca37e2f0 100644
--- a/django/test/utils.py
+++ b/django/test/utils.py
@@ -6,6 +6,7 @@ from django.core.management import call_command
from django.dispatch import dispatcher
from django.test import signals
from django.template import Template
+from django.utils.translation import deactivate
# The prefix to put on the default database name when creating
# the test database.
@@ -43,7 +44,7 @@ def setup_test_environment():
- Installing the instrumented test renderer
- Diverting the email sending functions to a test buffer
-
+ - Setting the active locale to match the LANGUAGE_CODE setting.
"""
Template.original_render = Template.render
Template.render = instrumented_test_render
@@ -53,6 +54,8 @@ def setup_test_environment():
mail.outbox = []
+ deactivate()
+
def teardown_test_environment():
"""Perform any global post-test teardown. This involves:
diff --git a/django/utils/checksums.py b/django/utils/checksums.py
new file mode 100644
index 0000000000..970f563f38
--- /dev/null
+++ b/django/utils/checksums.py
@@ -0,0 +1,22 @@
+"""
+Common checksum routines (used in multiple localflavor/ cases, for example).
+"""
+
+__all__ = ['luhn',]
+
+LUHN_ODD_LOOKUP = (0, 2, 4, 6, 8, 1, 3, 5, 7, 9) # sum_of_digits(index * 2)
+
+def luhn(candidate):
+ """
+ Checks a candidate number for validity according to the Luhn
+ algorithm (used in validation of, for example, credit cards).
+ Both numeric and string candidates are accepted.
+ """
+ if not isinstance(candidate, basestring):
+ candidate = str(candidate)
+ try:
+ evens = sum([int(c) for c in candidate[-1::-2]])
+ odds = sum([LUHN_ODD_LOOKUP[int(c)] for c in candidate[-2::-2]])
+ return ((evens + odds) % 10 == 0)
+ except ValueError: # Raised if an int conversion fails
+ return False
diff --git a/django/utils/datastructures.py b/django/utils/datastructures.py
index d750f098f0..e0835b2cfc 100644
--- a/django/utils/datastructures.py
+++ b/django/utils/datastructures.py
@@ -42,22 +42,32 @@ class MergeDict(object):
if key in dict:
return True
return False
-
+
__contains__ = has_key
def copy(self):
- """ returns a copy of this object"""
+ """Returns a copy of this object."""
return self.__copy__()
class SortedDict(dict):
- "A dictionary that keeps its keys in the order in which they're inserted."
+ """
+ A dictionary that keeps its keys in the order in which they're inserted.
+ """
def __init__(self, data=None):
- if data is None: data = {}
+ if data is None:
+ data = {}
dict.__init__(self, data)
if isinstance(data, dict):
self.keyOrder = data.keys()
else:
- self.keyOrder=[key for key, value in data]
+ self.keyOrder = [key for key, value in data]
+
+ def __deepcopy__(self,memo):
+ from copy import deepcopy
+ obj = self.__class__()
+ for k, v in self.items():
+ obj[k] = deepcopy(v, memo)
+ return obj
def __setitem__(self, key, value):
dict.__setitem__(self, key, value)
@@ -72,6 +82,20 @@ class SortedDict(dict):
for k in self.keyOrder:
yield k
+ def pop(self, k, *args):
+ result = dict.pop(self, k, *args)
+ try:
+ self.keyOrder.remove(k)
+ except ValueError:
+ # Key wasn't in the dictionary in the first place. No problem.
+ pass
+ return result
+
+ def popitem(self):
+ result = dict.popitem(self)
+ self.keyOrder.remove(result[0])
+ return result
+
def items(self):
return zip(self.keyOrder, self.values())
@@ -102,20 +126,21 @@ class SortedDict(dict):
return dict.setdefault(self, key, default)
def value_for_index(self, index):
- "Returns the value of the item at the given zero-based index."
+ """Returns the value of the item at the given zero-based index."""
return self[self.keyOrder[index]]
def insert(self, index, key, value):
- "Inserts the key, value pair before the item with the given index."
+ """Inserts the key, value pair before the item with the given index."""
if key in self.keyOrder:
n = self.keyOrder.index(key)
del self.keyOrder[n]
- if n < index: index -= 1
+ if n < index:
+ index -= 1
self.keyOrder.insert(index, key)
dict.__setitem__(self, key, value)
def copy(self):
- "Returns a copy of this object."
+ """Returns a copy of this object."""
# This way of initializing the copy means it works for subclasses, too.
obj = self.__class__(self)
obj.keyOrder = self.keyOrder
@@ -133,7 +158,8 @@ class MultiValueDictKeyError(KeyError):
class MultiValueDict(dict):
"""
- A subclass of dictionary customized to handle multiple values for the same key.
+ A subclass of dictionary customized to handle multiple values for the
+ same key.
>>> d = MultiValueDict({'name': ['Adrian', 'Simon'], 'position': ['Developer']})
>>> d['name']
@@ -176,15 +202,17 @@ class MultiValueDict(dict):
def __deepcopy__(self, memo=None):
import copy
- if memo is None: memo = {}
+ if memo is None:
+ memo = {}
result = self.__class__()
memo[id(self)] = result
for key, value in dict.items(self):
- dict.__setitem__(result, copy.deepcopy(key, memo), copy.deepcopy(value, memo))
+ dict.__setitem__(result, copy.deepcopy(key, memo),
+ copy.deepcopy(value, memo))
return result
def get(self, key, default=None):
- "Returns the default value if the requested data doesn't exist"
+ """Returns the default value if the requested data doesn't exist."""
try:
val = self[key]
except KeyError:
@@ -194,7 +222,7 @@ class MultiValueDict(dict):
return val
def getlist(self, key):
- "Returns an empty list if the requested data doesn't exist"
+ """Returns an empty list if the requested data doesn't exist."""
try:
return dict.__getitem__(self, key)
except KeyError:
@@ -214,7 +242,7 @@ class MultiValueDict(dict):
return self.getlist(key)
def appendlist(self, key, value):
- "Appends an item to the internal list associated with key"
+ """Appends an item to the internal list associated with key."""
self.setlistdefault(key, [])
dict.__setitem__(self, key, self.getlist(key) + [value])
@@ -226,19 +254,22 @@ class MultiValueDict(dict):
return [(key, self[key]) for key in self.keys()]
def lists(self):
- "Returns a list of (key, list) pairs."
+ """Returns a list of (key, list) pairs."""
return dict.items(self)
def values(self):
- "Returns a list of the last value on every key list."
+ """Returns a list of the last value on every key list."""
return [self[key] for key in self.keys()]
def copy(self):
- "Returns a copy of this object."
+ """Returns a copy of this object."""
return self.__deepcopy__()
def update(self, *args, **kwargs):
- "update() extends rather than replaces existing key lists. Also accepts keyword args."
+ """
+ update() extends rather than replaces existing key lists.
+ Also accepts keyword args.
+ """
if len(args) > 1:
raise TypeError, "update expected at most 1 arguments, got %d" % len(args)
if args:
@@ -299,4 +330,3 @@ class FileDict(dict):
d = dict(self, content='<omitted>')
return dict.__repr__(d)
return dict.__repr__(self)
-
diff --git a/django/utils/encoding.py b/django/utils/encoding.py
index 6daae4386d..2bd1ef6563 100644
--- a/django/utils/encoding.py
+++ b/django/utils/encoding.py
@@ -31,7 +31,7 @@ def force_unicode(s, encoding='utf-8', strings_only=False, errors='strict'):
If strings_only is True, don't convert (some) non-string-like objects.
"""
- if strings_only and isinstance(s, (types.NoneType, int, long, datetime.datetime, datetime.time, float)):
+ if strings_only and isinstance(s, (types.NoneType, int, long, datetime.datetime, datetime.date, datetime.time, float)):
return s
if not isinstance(s, basestring,):
if hasattr(s, '__unicode__'):
diff --git a/django/utils/feedgenerator.py b/django/utils/feedgenerator.py
index e296331324..3e0826c968 100644
--- a/django/utils/feedgenerator.py
+++ b/django/utils/feedgenerator.py
@@ -45,7 +45,7 @@ class SyndicationFeed(object):
"Base class for all syndication feeds. Subclasses should provide write()"
def __init__(self, title, link, description, language=None, author_email=None,
author_name=None, author_link=None, subtitle=None, categories=None,
- feed_url=None, feed_copyright=None, feed_guid=None):
+ feed_url=None, feed_copyright=None, feed_guid=None, ttl=None):
to_unicode = lambda s: force_unicode(s, strings_only=True)
if categories:
categories = [force_unicode(c) for c in categories]
@@ -62,12 +62,13 @@ class SyndicationFeed(object):
'feed_url': iri_to_uri(feed_url),
'feed_copyright': to_unicode(feed_copyright),
'id': feed_guid or link,
+ 'ttl': ttl,
}
self.items = []
def add_item(self, title, link, description, author_email=None,
author_name=None, author_link=None, pubdate=None, comments=None,
- unique_id=None, enclosure=None, categories=(), item_copyright=None):
+ unique_id=None, enclosure=None, categories=(), item_copyright=None, ttl=None):
"""
Adds an item to the feed. All args are expected to be Python Unicode
objects except pubdate, which is a datetime.datetime object, and
@@ -89,6 +90,7 @@ class SyndicationFeed(object):
'enclosure': enclosure,
'categories': categories or (),
'item_copyright': to_unicode(item_copyright),
+ 'ttl': ttl,
})
def num_items(self):
@@ -146,6 +148,8 @@ class RssFeed(SyndicationFeed):
if self.feed['feed_copyright'] is not None:
handler.addQuickElement(u"copyright", self.feed['feed_copyright'])
handler.addQuickElement(u"lastBuildDate", rfc2822_date(self.latest_post_date()).decode('ascii'))
+ if self.feed['ttl'] is not None:
+ handler.addQuickElement(u"ttl", self.feed['ttl'])
self.write_items(handler)
self.endChannelElement(handler)
handler.endElement(u"rss")
@@ -190,6 +194,8 @@ class Rss201rev2Feed(RssFeed):
handler.addQuickElement(u"comments", item['comments'])
if item['unique_id'] is not None:
handler.addQuickElement(u"guid", item['unique_id'])
+ if item['ttl'] is not None:
+ handler.addQuickElement(u"ttl", item['ttl'])
# Enclosure.
if item['enclosure'] is not None:
diff --git a/django/utils/functional.py b/django/utils/functional.py
index f4580e7bd5..e0c862b0b7 100644
--- a/django/utils/functional.py
+++ b/django/utils/functional.py
@@ -53,7 +53,11 @@ def lazy(func, *resultclasses):
self._delegate_unicode = unicode in resultclasses
assert not (self._delegate_str and self._delegate_unicode), "Cannot call lazy() with both str and unicode return types."
if self._delegate_unicode:
- self.__unicode__ = self.__unicode_cast
+ # Each call to lazy() makes a new __proxy__ object, so this
+ # doesn't interfere with any other lazy() results.
+ __proxy__.__unicode__ = __proxy__.__unicode_cast
+ elif self._delegate_str:
+ __proxy__.__str__ = __proxy__.__str_cast
def __promise__(self, klass, funcname, func):
# Builds a wrapper around some magic method and registers that magic
@@ -72,14 +76,8 @@ def lazy(func, *resultclasses):
def __unicode_cast(self):
return self.__func(*self.__args, **self.__kw)
- def __str__(self):
- # As __str__ is always a method on the type (class), it is looked
- # up (and found) there first. So we can't just assign to it on a
- # per-instance basis in __init__.
- if self._delegate_str:
- return str(self.__func(*self.__args, **self.__kw))
- else:
- return Promise.__str__(self)
+ def __str_cast(self):
+ return str(self.__func(*self.__args, **self.__kw))
def __cmp__(self, rhs):
if self._delegate_str:
diff --git a/django/utils/http.py b/django/utils/http.py
index 4c3b6af868..4912c9c46a 100644
--- a/django/utils/http.py
+++ b/django/utils/http.py
@@ -9,7 +9,8 @@ def urlquote(url, safe='/'):
can safely be used as part of an argument to a subsequent iri_to_uri() call
without double-quoting occurring.
"""
- return force_unicode(urllib.quote(smart_str(url)))
+ return force_unicode(urllib.quote(smart_str(url), safe))
+
urlquote = allow_lazy(urlquote, unicode)
def urlquote_plus(url, safe=''):
diff --git a/django/utils/translation/__init__.py b/django/utils/translation/__init__.py
index 9ca7419e1e..43ce3e591a 100644
--- a/django/utils/translation/__init__.py
+++ b/django/utils/translation/__init__.py
@@ -8,7 +8,7 @@ __all__ = ['gettext', 'gettext_noop', 'gettext_lazy', 'ngettext',
'ngettext_lazy', 'string_concat', 'activate', 'deactivate',
'get_language', 'get_language_bidi', 'get_date_formats',
'get_partial_date_formats', 'check_for_language', 'to_locale',
- 'get_language_from_request', 'install', 'templatize', 'ugettext',
+ 'get_language_from_request', 'templatize', 'ugettext',
'ungettext', 'deactivate_all']
# Here be dragons, so a short explanation of the logic won't hurt:
@@ -96,9 +96,6 @@ def to_locale(language):
def get_language_from_request(request):
return real_get_language_from_request(request)
-def install():
- return real_install()
-
def templatize(src):
return real_templatize(src)
diff --git a/django/utils/translation/trans_null.py b/django/utils/translation/trans_null.py
index 771a80e99c..0b62907e44 100644
--- a/django/utils/translation/trans_null.py
+++ b/django/utils/translation/trans_null.py
@@ -14,7 +14,7 @@ def ungettext(singular, plural, number):
return force_unicode(ngettext(singular, plural, number))
activate = lambda x: None
-deactivate = deactivate_all = install = lambda: None
+deactivate = deactivate_all = lambda: None
get_language = lambda: settings.LANGUAGE_CODE
get_language_bidi = lambda: settings.LANGUAGE_CODE in settings.LANGUAGES_BIDI
get_date_formats = lambda: (settings.DATE_FORMAT, settings.DATETIME_FORMAT, settings.TIME_FORMAT)
diff --git a/django/utils/translation/trans_real.py b/django/utils/translation/trans_real.py
index 250af04e8c..98b4769031 100644
--- a/django/utils/translation/trans_real.py
+++ b/django/utils/translation/trans_real.py
@@ -1,8 +1,12 @@
"Translation helper functions"
-import os, re, sys
+import locale
+import os
+import re
+import sys
import gettext as gettext_module
from cStringIO import StringIO
+
from django.utils.encoding import force_unicode
try:
@@ -25,15 +29,25 @@ _active = {}
# The default translation is based on the settings file.
_default = None
-# This is a cache for accept-header to translation object mappings to prevent
-# the accept parser to run multiple times for one user.
+# This is a cache for normalised accept-header languages to prevent multiple
+# file lookups when checking the same locale on repeated requests.
_accepted = {}
-def to_locale(language):
+# Format of Accept-Language header values. From RFC 2616, section 14.4 and 3.9.
+accept_language_re = re.compile(r'''
+ ([A-Za-z]{1,8}(?:-[A-Za-z]{1,8})*|\*) # "en", "en-au", "x-y-z", "*"
+ (?:;q=(0(?:\.\d{,3})?|1(?:.0{,3})?))? # Optional "q=1.00", "q=0.8"
+ (?:\s*,\s*|$) # Multiple accepts per header.
+ ''', re.VERBOSE)
+
+def to_locale(language, to_lower=False):
"Turns a language name (en-us) into a locale name (en_US)."
p = language.find('-')
if p >= 0:
- return language[:p].lower()+'_'+language[p+1:].upper()
+ if to_lower:
+ return language[:p].lower()+'_'+language[p+1:].lower()
+ else:
+ return language[:p].lower()+'_'+language[p+1:].upper()
else:
return language.lower()
@@ -249,8 +263,10 @@ def catalog():
def do_translate(message, translation_function):
"""
- Translate 'message' using the given 'translation_function' name -- which
- will be either gettext or ugettext.
+ Translates 'message' using the given 'translation_function' name -- which
+ will be either gettext or ugettext. It uses the current thread to find the
+ translation object to use. If no current translation is activated, the
+ message will be run through the default translation object.
"""
global _default, _active
t = _active.get(currentThread(), None)
@@ -262,12 +278,6 @@ def do_translate(message, translation_function):
return getattr(_default, translation_function)(message)
def gettext(message):
- """
- This function will be patched into the builtins module to provide the _
- helper function. It will use the current thread as a discriminator to find
- the translation object to use. If no current translation is activated, the
- message will be run through the default translation object.
- """
return do_translate(message, 'gettext')
def ugettext(message):
@@ -338,46 +348,40 @@ def get_language_from_request(request):
if lang_code in supported and lang_code is not None and check_for_language(lang_code):
return lang_code
- lang_code = request.COOKIES.get('django_language', None)
- if lang_code in supported and lang_code is not None and check_for_language(lang_code):
+ lang_code = request.COOKIES.get('django_language')
+ if lang_code and lang_code in supported and check_for_language(lang_code):
return lang_code
- accept = request.META.get('HTTP_ACCEPT_LANGUAGE', None)
- if accept is not None:
+ accept = request.META.get('HTTP_ACCEPT_LANGUAGE', '')
+ for lang, unused in parse_accept_lang_header(accept):
+ if lang == '*':
+ break
- t = _accepted.get(accept, None)
- if t is not None:
- return t
+ # We have a very restricted form for our language files (no encoding
+ # specifier, since they all must be UTF-8 and only one possible
+ # language each time. So we avoid the overhead of gettext.find() and
+ # look up the MO file manually.
- def _parsed(el):
- p = el.find(';q=')
- if p >= 0:
- lang = el[:p].strip()
- order = int(float(el[p+3:].strip())*100)
- else:
- lang = el
- order = 100
- p = lang.find('-')
- if p >= 0:
- mainlang = lang[:p]
- else:
- mainlang = lang
- return (lang, mainlang, order)
+ normalized = locale.locale_alias.get(to_locale(lang, True))
+ if not normalized:
+ continue
+
+ # Remove the default encoding from locale_alias
+ normalized = normalized.split('.')[0]
- langs = [_parsed(el) for el in accept.split(',')]
- langs.sort(lambda a,b: -1*cmp(a[2], b[2]))
+ if normalized in _accepted:
+ # We've seen this locale before and have an MO file for it, so no
+ # need to check again.
+ return _accepted[normalized]
- for lang, mainlang, order in langs:
- if lang in supported or mainlang in supported:
- langfile = gettext_module.find('django', globalpath, [to_locale(lang)])
- if langfile:
- # reconstruct the actual language from the language
- # filename, because otherwise we might incorrectly
- # report de_DE if we only have de available, but
- # did find de_DE because of language normalization
- lang = langfile[len(globalpath):].split(os.path.sep)[1]
- _accepted[accept] = lang
- return lang
+ for lang in (normalized, normalized.split('_')[0]):
+ if lang not in supported:
+ continue
+ langfile = os.path.join(globalpath, lang, 'LC_MESSAGES',
+ 'django.mo')
+ if os.path.exists(langfile):
+ _accepted[normalized] = lang
+ return lang
return settings.LANGUAGE_CODE
@@ -414,13 +418,6 @@ def get_partial_date_formats():
month_day_format = settings.MONTH_DAY_FORMAT
return year_month_format, month_day_format
-def install():
- """
- Installs the gettext function as the default translation function under
- the name '_'.
- """
- __builtins__['_'] = gettext
-
dot_re = re.compile(r'\S')
def blankout(src, char):
"""
@@ -516,3 +513,23 @@ def templatize(src):
out.write(blankout(t.contents, 'X'))
return out.getvalue()
+def parse_accept_lang_header(lang_string):
+ """
+ Parses the lang_string, which is the body of an HTTP Accept-Language
+ header, and returns a list of (lang, q-value), ordered by 'q' values.
+
+ Any format errors in lang_string results in an empty list being returned.
+ """
+ result = []
+ pieces = accept_language_re.split(lang_string)
+ if pieces[-1]:
+ return []
+ for i in range(0, len(pieces) - 1, 3):
+ first, lang, priority = pieces[i : i + 3]
+ if first:
+ return []
+ priority = priority and float(priority) or 1.0
+ result.append((lang, priority))
+ result.sort(lambda x, y: -cmp(x[1], y[1]))
+ return result
+
diff --git a/django/views/debug.py b/django/views/debug.py
index cf0b6b5a0b..717de1eb34 100644
--- a/django/views/debug.py
+++ b/django/views/debug.py
@@ -201,16 +201,15 @@ def _get_lines_from_file(filename, lineno, context_lines, loader=None, module_na
if source is None:
return None, [], None, []
- encoding=None
+ encoding = 'ascii'
for line in source[:2]:
- # File coding may be specified (and may not be UTF-8). Match
- # pattern from PEP-263 (http://www.python.org/dev/peps/pep-0263/)
+ # File coding may be specified. Match pattern from PEP-263
+ # (http://www.python.org/dev/peps/pep-0263/)
match = re.search(r'coding[:=]\s*([-\w.]+)', line)
if match:
encoding = match.group(1)
break
- if encoding:
- source = [unicode(sline, encoding) for sline in source]
+ source = [unicode(sline, encoding, 'replace') for sline in source]
lower_bound = max(0, lineno - context_lines)
upper_bound = lineno + context_lines
diff --git a/docs/apache_auth.txt b/docs/apache_auth.txt
index cab57fe6d5..859050e716 100644
--- a/docs/apache_auth.txt
+++ b/docs/apache_auth.txt
@@ -28,21 +28,21 @@ with the standard ``Auth*`` and ``Require`` directives::
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonAuthenHandler django.contrib.auth.handlers.modpython
</Location>
-
+
.. admonition:: Using the authentication handler with Apache 2.2
If you're using Apache 2.2, you'll need to take a couple extra steps.
-
+
You'll need to ensure that ``mod_auth_basic`` and ``mod_authz_user``
are loaded. These might be compiled statically into Apache, or you might
need to use ``LoadModule`` to load them dynamically (as shown in the
example at the bottom of this note).
-
+
You'll also need to insert configuration directives that prevent Apache
from trying to use other authentication modules. Depending on which other
authentication modules you have loaded, you might need one or more of
the following directives::
-
+
AuthBasicAuthoritative Off
AuthDefaultAuthoritative Off
AuthzLDAPAuthoritative Off
@@ -51,18 +51,18 @@ with the standard ``Auth*`` and ``Require`` directives::
AuthzGroupFileAuthoritative Off
AuthzOwnerAuthoritative Off
AuthzUserAuthoritative Off
-
+
A complete configuration, with differences between Apache 2.0 and
Apache 2.2 marked in bold, would look something like:
-
+
.. parsed-literal::
-
+
**LoadModule auth_basic_module modules/mod_auth_basic.so**
**LoadModule authz_user_module modules/mod_authz_user.so**
-
+
...
-
- <Location /exmaple/>
+
+ <Location /example/>
AuthType Basic
AuthName "example.com"
**AuthBasicAuthoritative Off**
@@ -71,7 +71,7 @@ with the standard ``Auth*`` and ``Require`` directives::
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonAuthenHandler django.contrib.auth.handlers.modpython
</Location>
-
+
By default, the authentication handler will limit access to the ``/example/``
location to users marked as staff members. You can use a set of
``PythonOption`` directives to modify this behavior:
diff --git a/docs/cache.txt b/docs/cache.txt
index 8ba0383909..d598915d1a 100644
--- a/docs/cache.txt
+++ b/docs/cache.txt
@@ -119,8 +119,8 @@ in your database that is in the proper format that Django's database-cache
system expects.
Once you've created that database table, set your ``CACHE_BACKEND`` setting to
-``"db://tablename/"``, where ``tablename`` is the name of the database table.
-In this example, the cache table's name is ``my_cache_table``:
+``"db://tablename"``, where ``tablename`` is the name of the database table.
+In this example, the cache table's name is ``my_cache_table``::
CACHE_BACKEND = 'db://my_cache_table'
@@ -228,7 +228,7 @@ entire site. Just add ``'django.middleware.cache.CacheMiddleware'`` to your
'django.middleware.common.CommonMiddleware',
)
-(The order of ``MIDDLEWARE_CLASSES`` matters. See "Order of MIDDLEWARE_CLASSES"
+(The order of ``MIDDLEWARE_CLASSES`` matters. See `Order of MIDDLEWARE_CLASSES`_
below.)
Then, add the following required settings to your Django settings file:
@@ -288,6 +288,36 @@ Or, using Python 2.4's decorator syntax::
above example, the result of the ``slashdot_this()`` view will be cached for 15
minutes.
+Template fragment caching
+=========================
+
+If you're after even more control, you can also cache template fragments using
+the ``cache`` template tag. To give your template access to this tag, put ``{%
+load cache %}`` near the top of your template.
+
+The ``{% cache %}`` template tag caches the contents of the block for a given
+amount of time. It takes at least two arguments: the cache timeout, in
+seconds, and the name to give the cache fragment. For example::
+
+ {% load cache %}
+ {% cache 500 sidebar %}
+ .. sidebar ..
+ {% endcache %}
+
+Sometimes you might want to cache multiple copies of a fragment depending on
+some dynamic data that appears inside the fragment. For example you may want a
+separate cached copy of the sidebar used in the previous example for every user
+of your site. This can be easily achieved by passing additional arguments to
+the ``{% cache %}`` template tag to uniquely identify the cache fragment::
+
+ {% load cache %}
+ {% cache 500 sidebar request.user.username %}
+ .. sidebar for logged in user ..
+ {% endcache %}
+
+If you need more than one argument to identify the fragment that's fine, simply
+pass as many arguments to ``{% cache %}`` as you need!
+
The low-level cache API
=======================
@@ -326,6 +356,15 @@ get() can take a ``default`` argument::
>>> cache.get('my_key', 'has expired')
'has expired'
+To add a key only if it doesn't already exist, there is an add() method. It
+takes the same parameters as set(), but will not attempt to update the cache
+if the key specified is already present::
+
+ >>> cache.set('add_key', 'Initial value')
+ >>> cache.add('add_key', 'New value')
+ >>> cache.get('add_key')
+ 'Initial value'
+
There's also a get_many() interface that only hits the cache once. get_many()
returns a dictionary with all the keys you asked for that actually exist in the
cache (and haven't expired)::
@@ -524,7 +563,7 @@ the value of the ``CACHE_MIDDLEWARE_SETTINGS`` setting. If you use a custom
``max_age`` in a ``cache_control`` decorator, the decorator will take
precedence, and the header values will be merged correctly.)
-If you want to use headers to disable caching altogether,
+If you want to use headers to disable caching altogether,
``django.views.decorators.never_cache`` is a view decorator that adds
headers to ensure the response won't be cached by browsers or other caches. Example::
@@ -556,8 +595,11 @@ within the ``MIDDLEWARE_CLASSES`` setting, because the cache middleware needs
to know which headers by which to vary the cache storage. Middleware always
adds something to the ``Vary`` response header when it can.
-Put the ``CacheMiddleware`` after any middlewares that might add something to
-the ``Vary`` header. The following middlewares do so:
+Put the ``CacheMiddleware`` *before* any other middleware that might add
+something to the ``Vary`` header (response middleware is applied in reverse
+order). The following middleware modules do so:
* ``SessionMiddleware`` adds ``Cookie``
* ``GZipMiddleware`` adds ``Accept-Encoding``
+ * ``LocaleMiddleware`` adds ``Accept-Language``
+
diff --git a/docs/contributing.txt b/docs/contributing.txt
index 3200a87012..a842f4477a 100644
--- a/docs/contributing.txt
+++ b/docs/contributing.txt
@@ -335,6 +335,10 @@ Please follow these coding standards when writing code for inclusion in Django:
* Unless otherwise specified, follow `PEP 8`_.
+ You could use a tool like `pep8.py`_ to check for some problems in this
+ area, but remember that PEP 8 is only a guide, so respect the style of
+ the surrounding code as a primary goal.
+
* Use four spaces for indentation.
* Use underscores, not camelCase, for variable, function and method names
@@ -924,5 +928,6 @@ requests for commit access are potential flame-war starters, and will be ignored
.. _`#django`: irc://irc.freenode.net/django
.. _list of tickets with patches: http://code.djangoproject.com/query?status=new&status=assigned&status=reopened&has_patch=1&order=priority
.. _PEP 8: http://www.python.org/peps/pep-0008.html
+.. _pep8.py: http://svn.browsershots.org/trunk/devtools/pep8/pep8.py
.. _i18n branch: http://code.djangoproject.com/browser/django/branches/i18n
.. _`tags/releases`: http://code.djangoproject.com/browser/django/tags/releases
diff --git a/docs/databases.txt b/docs/databases.txt
index 213c2d666c..4530a1b896 100644
--- a/docs/databases.txt
+++ b/docs/databases.txt
@@ -76,6 +76,14 @@ the ``mysql`` backend.
If you are trying to use an older version of MySQL and the ``mysql_old``
backend, then 1.2.0 *might* work for you.
+.. note::
+ If you see ``ImportError: cannot import name ImmutableSet`` when trying to
+ use Django, your MySQLdb installation may contain an outdated ``sets.py``
+ file that conflicts with the built-in module of the same name from Python
+ 2.4 and later. To fix this, verify that you have installed MySQLdb version
+ 1.2.1p2 or newer, then delete the ``sets.py`` file in the MySQLdb
+ directory that was left by an earlier version.
+
.. _MySQLdb: http://sourceforge.net/projects/mysql-python
Creating your database
diff --git a/docs/django-admin.txt b/docs/django-admin.txt
index f098dfa988..e751a7b3d9 100644
--- a/docs/django-admin.txt
+++ b/docs/django-admin.txt
@@ -741,22 +741,25 @@ Customized actions
**New in Django development version**
-If you want to add an action of your own to ``manage.py``, you can.
-Simply add a ``management/commands`` directory to your application.
-Each python module in that directory will be discovered and registered as
+Applications can register their own actions with ``manage.py``. For example,
+you might want to add a ``manage.py`` action for a Django app that you're
+distributing.
+
+To do this, just add a ``management/commands`` directory to your application.
+Each Python module in that directory will be auto-discovered and registered as
a command that can be executed as an action when you run ``manage.py``::
- /fancy_blog
+ blog/
__init__.py
models.py
- /management
+ management/
__init__.py
- /commands
+ commands/
__init__.py
explode.py
views.py
-In this example, ``explode`` command will be made available to any project
+In this example, the ``explode`` command will be made available to any project
that includes the ``fancy_blog`` application in ``settings.INSTALLED_APPS``.
The ``explode.py`` module has only one requirement -- it must define a class
diff --git a/docs/flatpages.txt b/docs/flatpages.txt
index 1422f16b6b..d082090689 100644
--- a/docs/flatpages.txt
+++ b/docs/flatpages.txt
@@ -48,7 +48,7 @@ with the given URL with a site ID that corresponds to the SITE_ID_ setting.
If it finds a match, it follows this algorithm:
* If the flatpage has a custom template, it loads that template. Otherwise,
- it loads the template ``flatpages/default``.
+ it loads the template ``flatpages/default.html``.
* It passes that template a single context variable, ``flatpage``, which is
the flatpage object. It uses RequestContext_ in rendering the template.
diff --git a/docs/install.txt b/docs/install.txt
index 95aa82b2e3..519bf2674c 100644
--- a/docs/install.txt
+++ b/docs/install.txt
@@ -63,7 +63,10 @@ installed.
* If you're using MySQL, you'll need MySQLdb_, version 1.2.1p2 or higher.
You will also want to read the database-specific notes for the `MySQL backend`_.
-* If you're using SQLite, you'll need pysqlite_. Use version 2.0.3 or higher.
+* If you're using SQLite and either Python 2.3 or Python 2.4, you'll need
+ pysqlite_. Use version 2.0.3 or higher. Python 2.5 ships with an sqlite
+ wrapper in the standard library, so you don't need to install anything extra
+ in that case.
* If you're using Oracle, you'll need cx_Oracle_, version 4.3.1 or higher.
You will also want to read the database-specific notes for the `Oracle backend`_.
diff --git a/docs/middleware.txt b/docs/middleware.txt
index 63ba8c6999..30a4899a3e 100644
--- a/docs/middleware.txt
+++ b/docs/middleware.txt
@@ -178,8 +178,9 @@ request, before Django decides which view to execute.
``process_request()`` should return either ``None`` or an ``HttpResponse``
object. If it returns ``None``, Django will continue processing this request,
executing any other middleware and, then, the appropriate view. If it returns
-an ``HttpResponse`` object, Django won't bother calling ANY other middleware or
-the appropriate view; it'll return that ``HttpResponse``.
+an ``HttpResponse`` object, Django won't bother calling ANY other request,
+view or exception middleware, or the appropriate view; it'll return that
+``HttpResponse``. Response middleware is always called on every response.
process_view
------------
@@ -197,8 +198,9 @@ arguments that will be passed to the view. Neither ``view_args`` nor
return either ``None`` or an ``HttpResponse`` object. If it returns ``None``,
Django will continue processing this request, executing any other
``process_view()`` middleware and, then, the appropriate view. If it returns an
-``HttpResponse`` object, Django won't bother calling ANY other middleware or
-the appropriate view; it'll return that ``HttpResponse``.
+``HttpResponse`` object, Django won't bother calling ANY other request, view
+or exception middleware, or the appropriate view; it'll return that
+``HttpResponse``. Response middleware is always called on every response.
process_response
----------------
@@ -236,7 +238,8 @@ Guidelines
* Feel free to look at Django's available middleware for examples. The
core Django middleware classes are in ``django/middleware/`` in the
- Django distribution. The session middleware is in ``django/contrib/sessions``.
+ Django distribution. The session middleware is in
+ ``django/contrib/sessions``.
* If you write a middleware component that you think would be useful to
other people, contribute to the community! Let us know, and we'll
diff --git a/docs/model-api.txt b/docs/model-api.txt
index a0844ea961..b49963d8f5 100644
--- a/docs/model-api.txt
+++ b/docs/model-api.txt
@@ -149,7 +149,7 @@ and in Django's validation.
Django veterans: Note that the argument is now called ``max_length`` to
provide consistency throughout Django. There is full legacy support for
the old ``maxlength`` argument, but ``max_length`` is preferred.
-
+
``CommaSeparatedIntegerField``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -678,7 +678,9 @@ set.
If ``True``, this field must be unique throughout the table.
-This is enforced at the database level and at the Django admin-form level.
+This is enforced at the database level and at the Django admin-form level. If
+you try to add save a model with a duplicate value in a ``unique`` field, a
+``django.db.IntegrityError`` will be raised by the model's ``save()`` method.
``unique_for_date``
~~~~~~~~~~~~~~~~~~~
@@ -1584,8 +1586,8 @@ Finally, note that in order to use ``list_display_links``, you must define
Set ``list_filter`` to activate filters in the right sidebar of the change list
page of the admin. This should be a list of field names, and each specified
-field should be either a ``BooleanField``, ``CharField``, ``DateField``,
-``DateTimeField``, ``IntegerField`` or ``ForeignKey``.
+field should be either a ``BooleanField``, ``CharField``, ``DateField``,
+``DateTimeField``, ``IntegerField`` or ``ForeignKey``.
This example, taken from the ``django.contrib.auth.models.User`` model, shows
how both ``list_display`` and ``list_filter`` work::
diff --git a/docs/modpython.txt b/docs/modpython.txt
index 4a8c169a51..5b20046168 100644
--- a/docs/modpython.txt
+++ b/docs/modpython.txt
@@ -87,17 +87,19 @@ lived under the ``weblog/`` directory, you would *also* need to add
**parent directories** of anything you import directly must be on the Python
path.
-.. caution::
+.. note::
- If you're using Windows, remember that the path will contain backslashes.
- This string is passed through Python's string parser twice, so you need to
- escape each backslash **twice**::
+ If you're using Windows, it is still recommended that you use forward
+ slashes in the pathnames, even though Windows normally uses backslashes
+ for its native separator. Apache knows how to convert from the forward
+ slash format to the native format, so this approach is portable and easier
+ to read (it avoids tricky problems with having to double-escape
+ backslashes).
- PythonPath "['c:\\\\path\\\\to\\\\project'] + sys.path"
+ This is valid even on a Windows system::
- Or, use raw strings::
+ PythonPath "['c:/path/to/project'] + sys.path"
- PythonPath "[r'c:\\path\\to\\project'] + sys.path"
You can also add directives such as ``PythonAutoReload Off`` for performance.
See the `mod_python documentation`_ for a full list of options.
diff --git a/docs/newforms.txt b/docs/newforms.txt
index 2005adeec8..5e33a478ee 100644
--- a/docs/newforms.txt
+++ b/docs/newforms.txt
@@ -100,7 +100,7 @@ Start with this basic ``Form`` subclass, which we'll call ``ContactForm``::
subject = forms.CharField(max_length=100)
message = forms.CharField()
sender = forms.EmailField()
- cc_myself = forms.BooleanField()
+ cc_myself = forms.BooleanField(required=False)
A form is composed of ``Field`` objects. In this case, our form has four
fields: ``subject``, ``message``, ``sender`` and ``cc_myself``. We'll explain
@@ -860,6 +860,23 @@ classes::
<li>Instrument: <input type="text" name="instrument" /></li>
<li>Haircut type: <input type="text" name="haircut_type" /></li>
+
+Prefixes for forms
+------------------
+
+You can put several Django forms inside one ``<form>`` tag. To give each
+``Form`` its own namespace you need to use the ``prefix`` keyword argument::
+
+ >>> mother = PersonForm(prefix="mother")
+ >>> father = PersonForm(prefix="father")
+ >>> print mother.as_ul()
+ <li><label for="id_mother-first_name">First name:</label> <input type="text" name="mother-first_name" id="id_mother-first_name" /></li>
+ <li><label for="id_mother-last_name">Last name:</label> <input type="text" name="mother-last_name" id="id_mother-last_name" /></li>
+ >>> print father.as_ul()
+ <li><label for="id_father-first_name">First name:</label> <input type="text" name="father-first_name" id="id_father-first_name" /></li>
+ <li><label for="id_father-last_name">Last name:</label> <input type="text" name="father-last_name" id="id_father-last_name" /></li>
+
+
Fields
======
@@ -1043,7 +1060,7 @@ fields. We've specified ``auto_id=False`` to simplify the output::
... subject = forms.CharField(max_length=100, help_text='100 characters max.')
... message = forms.CharField()
... sender = forms.EmailField(help_text='A valid e-mail address, please.')
- ... cc_myself = forms.BooleanField()
+ ... cc_myself = forms.BooleanField(required=False)
>>> f = HelpTextContactForm(auto_id=False)
>>> print f.as_table()
<tr><th>Subject:</th><td><input type="text" name="subject" maxlength="100" /><br />100 characters max.</td></tr>
@@ -1122,9 +1139,20 @@ For each field, we describe the default widget used if you don't specify
~~~~~~~~~~~~~~~~
* Default widget: ``CheckboxInput``
- * Empty value: ``None``
+ * Empty value: ``False``
* Normalizes to: A Python ``True`` or ``False`` value.
- * Validates nothing (i.e., it never raises a ``ValidationError``).
+ * Validates that the check box is checked (i.e. the value is ``True``) if
+ the field has ``required=True``.
+
+**New in Django development version:** The empty value for a ``CheckboxInput``
+(and hence the standard ``BooleanField``) has changed to return ``False``
+instead of ``None`` in the development version.
+
+.. note::
+ Since all ``Field`` subclasses have ``required=True`` by default, the
+ validation condition here is important. If you want to include a checkbox
+ in your form that can be either checked or unchecked, you must remember to
+ pass in ``required=False`` when creating the ``BooleanField``.
``CharField``
~~~~~~~~~~~~~
@@ -1132,7 +1160,8 @@ For each field, we describe the default widget used if you don't specify
* Default widget: ``TextInput``
* Empty value: ``''`` (an empty string)
* Normalizes to: A Unicode object.
- * Validates nothing, unless ``max_length`` or ``min_length`` is provided.
+ * Validates ``max_length`` or ``min_length``, if they are provided.
+ Otherwise, all inputs are valid.
Has two optional arguments for validation, ``max_length`` and ``min_length``.
If provided, these arguments ensure that the string is at most or at least the
@@ -1172,7 +1201,7 @@ If no ``input_formats`` argument is provided, the default input formats are::
``DateTimeField``
~~~~~~~~~~~~~~~~~
- * Default widget: ``TextInput``
+ * Default widget: ``DateTimeInput``
* Empty value: ``None``
* Normalizes to: A Python ``datetime.datetime`` object.
* Validates that the given value is either a ``datetime.datetime``,
@@ -1193,6 +1222,9 @@ If no ``input_formats`` argument is provided, the default input formats are::
'%m/%d/%y %H:%M', # '10/25/06 14:30'
'%m/%d/%y', # '10/25/06'
+**New in Django development version:** The ``DateTimeField`` used to use a
+``TextInput`` widget by default. This has now changed.
+
``DecimalField``
~~~~~~~~~~~~~~~~
@@ -1508,7 +1540,7 @@ like so::
subject = forms.CharField(max_length=100)
message = forms.CharField()
senders = MultiEmailField()
- cc_myself = forms.BooleanField()
+ cc_myself = forms.BooleanField(required=False)
Widgets
=======
@@ -1529,6 +1561,7 @@ commonly used groups of widgets:
``MultipleHiddenInput`` Multiple ``<input type='hidden' ...``
instances.
``FileInput`` ``<input type='file' ...``
+ ``DateTimeInput`` ``<input type='text' ...``
``Textarea`` ``<textarea>...</textarea>``
``CheckboxInput`` ``<input type='checkbox' ...``
``Select`` ``<select><option ...``
@@ -1542,6 +1575,9 @@ commonly used groups of widgets:
one for the Date, and one for the Time.
============================ ===========================================
+**New in Django development version:** The ``DateTimeInput`` has been added
+since the last release.
+
Specifying widgets
------------------
@@ -2033,7 +2069,7 @@ have a ``Message`` model that holds each contact submission. Something like::
subject = models.CharField(max_length=100)
message = models.TextField()
sender = models.EmailField()
- cc_myself = models.BooleanField()
+ cc_myself = models.BooleanField(required=False)
You could use this model to create a form (using ``form_for_model()``). You
could also use existing ``Message`` instances to create a form for editing
diff --git a/docs/settings.txt b/docs/settings.txt
index 7ad1f6441d..6241749753 100644
--- a/docs/settings.txt
+++ b/docs/settings.txt
@@ -172,7 +172,7 @@ of the case of the actual model class name.
ADMIN_FOR
---------
-Default: ``()`` (Empty list)
+Default: ``()`` (Empty tuple)
Used for admin-site settings modules, this should be a tuple of settings
modules (in the format ``'foo.bar.baz'``) for which this site is an admin.
@@ -475,7 +475,7 @@ FIXTURE_DIRS
Default: ``()`` (Empty tuple)
List of locations of the fixture data files, in search order. Note that
-these paths should use Unix-style forward slashes, even on Windows. See
+these paths should use Unix-style forward slashes, even on Windows. See
`Testing Django Applications`_.
.. _Testing Django Applications: ../testing/
@@ -578,6 +578,17 @@ strings for translation, but the translation won't happen at runtime -- so
you'll have to remember to wrap the languages in the *real* ``gettext()`` in
any code that uses ``LANGUAGES`` at runtime.
+LOCALE_PATHS
+------------
+
+Default: ``()`` (Empty tuple)
+
+A list of directories where Django looks for translation files.
+See the `internationalization docs section`_ explaining the variable and the
+default behavior.
+
+.. _internationalization docs section: ../i18n/#using-translations-in-your-own-projects
+
LOGIN_REDIRECT_URL
------------------
@@ -720,8 +731,8 @@ SERIALIZATION_MODULES
Default: Not defined.
-A dictionary of modules containing serializer definitions (provided as
-strings), keyed by a string identifier for that serialization type. For
+A dictionary of modules containing serializer definitions (provided as
+strings), keyed by a string identifier for that serialization type. For
example, to define a YAML serializer, use::
SERIALIZATION_MODULES = { 'yaml' : 'path.to.yaml_serializer' }
@@ -743,10 +754,10 @@ Default: ``django.contrib.sessions.backends.db``
Controls where Django stores session data. Valid values are:
- * ``'django.contrib.sessions.backends.db'``
- * ``'django.contrib.sessions.backends.file'``
+ * ``'django.contrib.sessions.backends.db'``
+ * ``'django.contrib.sessions.backends.file'``
* ``'django.contrib.sessions.backends.cache'``
-
+
See the `session docs`_ for more details.
SESSION_COOKIE_AGE
@@ -773,6 +784,18 @@ Default: ``'sessionid'``
The name of the cookie to use for sessions. This can be whatever you want.
See the `session docs`_.
+SESSION_COOKIE_PATH
+-------------------
+
+**New in Django development version**
+
+Default: ``'/'``
+
+The path set on the session cookie. Should match the URL path of your Django
+installation (or be parent of that path). This is useful if you have multiple
+Django instances running under the same hostname; they can use different
+cookie paths and each instance will only see its own session cookie.
+
SESSION_COOKIE_SECURE
---------------------
diff --git a/docs/syndication_feeds.txt b/docs/syndication_feeds.txt
index 393572f3e2..30943591b8 100644
--- a/docs/syndication_feeds.txt
+++ b/docs/syndication_feeds.txt
@@ -547,6 +547,22 @@ This example illustrates all possible attributes and methods for a ``Feed`` clas
copyright = 'Copyright (c) 2007, Sally Smith' # Hard-coded copyright notice.
+ # TTL -- One of the following three is optional. The framework looks
+ # for them in this order. Ignored for Atom feeds.
+
+ def ttl(self, obj):
+ """
+ Takes the object returned by get_object() and returns the feed's
+ TTL (Time to live) as a normal Python string.
+ """
+
+ def ttl(self):
+ """
+ Returns the feed's ttl as a normal Python string.
+ """
+
+ ttl = 600 # Hard-coded Time to live.
+
# ITEMS -- One of the following three is required. The framework looks
# for them in this order.
diff --git a/docs/templates.txt b/docs/templates.txt
index cd436a987d..5d5f657747 100644
--- a/docs/templates.txt
+++ b/docs/templates.txt
@@ -2,13 +2,35 @@
The Django template language: For template authors
==================================================
+This document explains the language syntax of the Django template system. If
+you're looking for a more technical perspective on how it works and how to
+extend it, see `The Django template language: For Python programmers`_.
+
Django's template language is designed to strike a balance between power and
ease. It's designed to feel comfortable to those used to working with HTML. If
you have any exposure to other text-based template languages, such as Smarty_
or CheetahTemplate_, you should feel right at home with Django's templates.
+.. admonition:: Philosophy
+
+ If you have a background in programming, or if you're used to languages
+ like PHP which mix programming code directly into HTML, you'll want to
+ bear in mind that the Django template system is not simply Python embedded
+ into HTML. This is by design: the template system is meant to express
+ presentation, not program logic.
+
+ The Django template system provides tags which function similarly to some
+ programming constructs -- an ``{% if %}`` tag for boolean tests, a ``{%
+ for %}`` tag for looping, etc. -- but these are not simply executed as the
+ corresponding Python code, and the template system will not execute
+ arbitrary Python expressions. Only the tags, filters and syntax listed
+ below are supported by default (although you can add `your own
+ extensions`_ to the template language as needed).
+
+.. _`The Django template language: For Python programmers`: ../templates_python/
.. _Smarty: http://smarty.php.net/
.. _CheetahTemplate: http://www.cheetahtemplate.org/
+.. _your own extensions: ../templates_python/#extending-the-template-system
Templates
=========
@@ -377,7 +399,7 @@ loop::
...
</tr>
{% endfor %}
-
+
Outside of a loop, give the values a unique name the first time you call it,
then use that name each successive time through::
@@ -385,16 +407,16 @@ then use that name each successive time through::
<tr class="{% cycle rowcolors %}">...</tr>
<tr class="{% cycle rowcolors %}">...</tr>
-You can use any number of values, separated by spaces. Values enclosed in
-single (') or double quotes (") are treated as string literals, while values
-without quotes are assumed to refer to context variables.
+You can use any number of values, separated by spaces. Values enclosed in
+single (') or double quotes (") are treated as string literals, while values
+without quotes are assumed to refer to context variables.
You can also separate values with commas::
{% cycle row1,row2,row3 %}
-
-In this syntax, each value will be interpreted as literal text. The
-comma-based syntax exists for backwards-compatibility, and should not be
+
+In this syntax, each value will be interpreted as literal text. The
+comma-based syntax exists for backwards-compatibility, and should not be
used for new projects.
debug
@@ -454,6 +476,11 @@ This is equivalent to::
{{ var3 }}
{% endif %}{% endif %}{% endif %}
+You can also use a literal string as a fallback value in case all
+passed variables are False::
+
+ {% firstof var1 var2 var3 "fallback value" %}
+
for
~~~
@@ -472,13 +499,13 @@ You can loop over a list in reverse by using ``{% for obj in list reversed %}``.
If you need to loop over a list of lists, you can unpack the values
in eachs sub-list into a set of known names. For example, if your context contains
a list of (x,y) coordinates called ``points``, you could use the following
-to output the list of points::
+to output the list of points::
{% for x, y in points %}
There is a point at {{ x }},{{ y }}
{% endfor %}
-
-This can also be useful if you need to access the items in a dictionary.
+
+This can also be useful if you need to access the items in a dictionary.
For example, if your context contained a dictionary ``data``, the following
would display the keys and values of the dictionary::
@@ -1438,12 +1465,3 @@ A collection of template tags that can be useful while designing a website,
such as a generator of Lorem Ipsum text. See the `webdesign documentation`_.
.. _webdesign documentation: ../webdesign/
-
-Next steps
-==========
-
-Read the document `The Django template language: For Python programmers`_ if
-you're interested in learning the template system from a technical
-perspective -- how it works and how to extend it.
-
-.. _The Django template language\: For Python programmers: ../templates_python/
diff --git a/docs/tutorial01.txt b/docs/tutorial01.txt
index 4e97dcd541..9e0c287346 100644
--- a/docs/tutorial01.txt
+++ b/docs/tutorial01.txt
@@ -41,7 +41,7 @@ From the command line, ``cd`` into a directory where you'd like to store your
code, then run the command ``django-admin.py startproject mysite``. This
will create a ``mysite`` directory in your current directory.
-.. admonition:: Max OS X permissions
+.. admonition:: Mac OS X permissions
If you're using Mac OS X, you may see the message "permission
denied" when you try to run ``django-admin.py startproject``. This
diff --git a/tests/modeltests/invalid_models/models.py b/tests/modeltests/invalid_models/models.py
index 1afe660dd0..b746af6dba 100644
--- a/tests/modeltests/invalid_models/models.py
+++ b/tests/modeltests/invalid_models/models.py
@@ -14,6 +14,7 @@ class FieldErrors(models.Model):
choices = models.CharField(max_length=10, choices='bad')
choices2 = models.CharField(max_length=10, choices=[(1,2,3),(1,2,3)])
index = models.CharField(max_length=10, db_index='bad')
+ field_ = models.CharField(max_length=10)
class Target(models.Model):
tgt_safe = models.CharField(max_length=10)
@@ -47,7 +48,7 @@ class Target2(models.Model):
class Clash3(models.Model):
src_safe = models.CharField(max_length=10, core=True)
-
+
foreign_1 = models.ForeignKey(Target2, related_name='foreign_tgt')
foreign_2 = models.ForeignKey(Target2, related_name='m2m_tgt')
@@ -76,7 +77,7 @@ class ValidM2M(models.Model):
# on self don't require a related accessor, so many potential
# clashes are avoided.
validm2m_set = models.ManyToManyField("ValidM2M")
-
+
m2m_1 = models.ManyToManyField("ValidM2M", related_name='id')
m2m_2 = models.ManyToManyField("ValidM2M", related_name='src_safe')
@@ -116,6 +117,7 @@ invalid_models.fielderrors: "choices": "choices" should be iterable (e.g., a tup
invalid_models.fielderrors: "choices2": "choices" should be a sequence of two-tuples.
invalid_models.fielderrors: "choices2": "choices" should be a sequence of two-tuples.
invalid_models.fielderrors: "index": "db_index" should be either None, True or False.
+invalid_models.fielderrors: "field_": Field names cannot end with underscores, because this would lead to ambiguous queryset filters.
invalid_models.clash1: Accessor for field 'foreign' clashes with field 'Target.clash1_set'. Add a related_name argument to the definition for 'foreign'.
invalid_models.clash1: Accessor for field 'foreign' clashes with related m2m field 'Target.clash1_set'. Add a related_name argument to the definition for 'foreign'.
invalid_models.clash1: Reverse query name for field 'foreign' clashes with field 'Target.clash1'. Add a related_name argument to the definition for 'foreign'.
diff --git a/tests/regressiontests/auth_backends/tests.py b/tests/regressiontests/auth_backends/tests.py
index 71e58442e7..3ec2a059ad 100644
--- a/tests/regressiontests/auth_backends/tests.py
+++ b/tests/regressiontests/auth_backends/tests.py
@@ -1,4 +1,9 @@
-"""
+try:
+ set
+except NameError:
+ from sets import Set as set # Python 2.3 fallback
+
+__test__ = {'API_TESTS': """
>>> from django.contrib.auth.models import User, Group, Permission
>>> from django.contrib.contenttypes.models import ContentType
@@ -28,10 +33,10 @@ False
# reloading user to purge the _perm_cache
>>> user = User.objects.get(username="test")
->>> user.get_all_permissions()
-set([u'auth.test'])
->>> user.get_group_permissions()
-set([])
+>>> user.get_all_permissions() == set([u'auth.test'])
+True
+>>> user.get_group_permissions() == set([])
+True
>>> user.has_module_perms("Group")
False
>>> user.has_module_perms("auth")
@@ -43,8 +48,8 @@ True
>>> user.user_permissions.add(perm)
>>> user.save()
>>> user = User.objects.get(username="test")
->>> user.get_all_permissions()
-set([u'auth.test2', u'auth.test', u'auth.test3'])
+>>> user.get_all_permissions() == set([u'auth.test2', u'auth.test', u'auth.test3'])
+True
>>> user.has_perm('test')
False
>>> user.has_perm('auth.test')
@@ -57,10 +62,11 @@ True
>>> group.save()
>>> user.groups.add(group)
>>> user = User.objects.get(username="test")
->>> user.get_all_permissions()
-set([u'auth.test2', u'auth.test', u'auth.test3', u'auth.test_group'])
->>> user.get_group_permissions()
-set([u'auth.test_group'])
+>>> exp = set([u'auth.test2', u'auth.test', u'auth.test3', u'auth.test_group'])
+>>> user.get_all_permissions() == exp
+True
+>>> user.get_group_permissions() == set([u'auth.test_group'])
+True
>>> user.has_perms(['auth.test3', 'auth.test_group'])
True
-""" \ No newline at end of file
+"""}
diff --git a/tests/regressiontests/cache/tests.py b/tests/regressiontests/cache/tests.py
index 752083bd2f..3879da7703 100644
--- a/tests/regressiontests/cache/tests.py
+++ b/tests/regressiontests/cache/tests.py
@@ -19,6 +19,12 @@ class Cache(unittest.TestCase):
cache.set("key", "value")
self.assertEqual(cache.get("key"), "value")
+ def test_add(self):
+ # test add (only add if key isn't already in cache)
+ cache.add("addkey1", "value")
+ cache.add("addkey1", "newvalue")
+ self.assertEqual(cache.get("addkey1"), "value")
+
def test_non_existent(self):
# get with non-existent keys
self.assertEqual(cache.get("does_not_exist"), None)
diff --git a/tests/regressiontests/datastructures/tests.py b/tests/regressiontests/datastructures/tests.py
index b58ee79693..d1e21e673c 100644
--- a/tests/regressiontests/datastructures/tests.py
+++ b/tests/regressiontests/datastructures/tests.py
@@ -54,6 +54,17 @@
True
>>> print repr(d)
{'one': 'not one', 'two': 'two', 'three': 'three'}
+>>> d.pop('one', 'missing')
+'not one'
+>>> d.pop('one', 'missing')
+'missing'
+
+We don't know which item will be popped in popitem(), so we'll just check that
+the number of keys has decreased.
+>>> l = len(d)
+>>> _ = d.popitem()
+>>> l - len(d)
+1
Init from sequence of tuples
>>> d = SortedDict((
diff --git a/tests/regressiontests/forms/localflavor/es.py b/tests/regressiontests/forms/localflavor/es.py
new file mode 100644
index 0000000000..f149aa9cbe
--- /dev/null
+++ b/tests/regressiontests/forms/localflavor/es.py
@@ -0,0 +1,343 @@
+# -*- coding: utf-8 -*-
+# Tests for the contrib/localflavor/ ES form fields.
+
+tests = r"""
+# ESPostalCodeField ##############################################################
+
+ESPostalCodeField validates that data is a five-digit spanish postal code.
+>>> from django.contrib.localflavor.es.forms import ESPostalCodeField
+>>> f = ESPostalCodeField()
+>>> f.clean('08028')
+u'08028'
+>>> f.clean('28080')
+u'28080'
+>>> f.clean('53001')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
+>>> f.clean('0801')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
+>>> f.clean('080001')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
+>>> f.clean('00999')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
+>>> f.clean('08 01')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
+>>> f.clean('08A01')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
+>>> f.clean('')
+Traceback (most recent call last):
+...
+ValidationError: [u'This field is required.']
+
+>>> f = ESPostalCodeField(required=False)
+>>> f.clean('08028')
+u'08028'
+>>> f.clean('28080')
+u'28080'
+>>> f.clean('53001')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
+>>> f.clean('0801')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
+>>> f.clean('080001')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
+>>> f.clean('00999')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
+>>> f.clean('08 01')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
+>>> f.clean('08A01')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
+>>> f.clean('')
+u''
+
+# ESPhoneNumberField ##############################################################
+
+ESPhoneNumberField validates that data is a nine-digit spanish phone number.
+>>> from django.contrib.localflavor.es.forms import ESPhoneNumberField
+>>> f = ESPhoneNumberField()
+>>> f.clean('650010101')
+u'650010101'
+>>> f.clean('931234567')
+u'931234567'
+>>> f.clean('800123123')
+u'800123123'
+>>> f.clean('555555555')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
+>>> f.clean('789789789')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
+>>> f.clean('99123123')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
+>>> f.clean('9999123123')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
+>>> f.clean('')
+Traceback (most recent call last):
+...
+ValidationError: [u'This field is required.']
+
+>>> f = ESPhoneNumberField(required=False)
+>>> f.clean('650010101')
+u'650010101'
+>>> f.clean('931234567')
+u'931234567'
+>>> f.clean('800123123')
+u'800123123'
+>>> f.clean('555555555')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
+>>> f.clean('789789789')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
+>>> f.clean('99123123')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
+>>> f.clean('9999123123')
+Traceback (most recent call last):
+...
+ValidationError: [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
+>>> f.clean('')
+u''
+
+# ESIdentityCardNumberField ##############################################################
+
+ESIdentityCardNumberField validates that data is a identification spanish code for companies or individuals (CIF, NIF or NIE).
+>>> from django.contrib.localflavor.es.forms import ESIdentityCardNumberField
+>>> f = ESIdentityCardNumberField()
+>>> f.clean('78699688J')
+'78699688J'
+>>> f.clean('78699688-J')
+'78699688J'
+>>> f.clean('78699688 J')
+'78699688J'
+>>> f.clean('78699688 j')
+'78699688J'
+>>> f.clean('78699688T')
+Traceback (most recent call last):
+...
+ValidationError: [u'Invalid checksum for NIF.']
+>>> f.clean('X0901797J')
+'X0901797J'
+>>> f.clean('X-6124387-Q')
+'X6124387Q'
+>>> f.clean('X 0012953 G')
+'X0012953G'
+>>> f.clean('x-3287690-r')
+'X3287690R'
+>>> f.clean('t-03287690r')
+'T03287690R'
+>>> f.clean('X-03287690')
+Traceback (most recent call last):
+...
+ValidationError: [u'Please enter a valid NIF, NIE, or CIF.']
+>>> f.clean('X-03287690-T')
+Traceback (most recent call last):
+...
+ValidationError: [u'Invalid checksum for NIE.']
+>>> f.clean('B38790911')
+'B38790911'
+>>> f.clean('B-3879091A')
+'B3879091A'
+>>> f.clean('B 38790917')
+Traceback (most recent call last):
+...
+ValidationError: [u'Invalid checksum for CIF.']
+>>> f.clean('B 38790911')
+'B38790911'
+>>> f.clean('P-3900800-H')
+'P3900800H'
+>>> f.clean('P 39008008')
+'P39008008'
+>>> f.clean('C-28795565')
+'C28795565'
+>>> f.clean('C 2879556E')
+'C2879556E'
+>>> f.clean('C28795567')
+Traceback (most recent call last):
+...
+ValidationError: [u'Invalid checksum for CIF.']
+>>> f.clean('I38790911')
+Traceback (most recent call last):
+...
+ValidationError: [u'Please enter a valid NIF, NIE, or CIF.']
+>>> f.clean('78699688-2')
+Traceback (most recent call last):
+...
+ValidationError: [u'Please enter a valid NIF, NIE, or CIF.']
+>>> f.clean('')
+Traceback (most recent call last):
+...
+ValidationError: [u'This field is required.']
+
+>>> f = ESIdentityCardNumberField(required=False)
+>>> f.clean('78699688J')
+'78699688J'
+>>> f.clean('78699688-J')
+'78699688J'
+>>> f.clean('78699688 J')
+'78699688J'
+>>> f.clean('78699688 j')
+'78699688J'
+>>> f.clean('78699688T')
+Traceback (most recent call last):
+...
+ValidationError: [u'Invalid checksum for NIF.']
+>>> f.clean('X0901797J')
+'X0901797J'
+>>> f.clean('X-6124387-Q')
+'X6124387Q'
+>>> f.clean('X 0012953 G')
+'X0012953G'
+>>> f.clean('x-3287690-r')
+'X3287690R'
+>>> f.clean('t-03287690r')
+'T03287690R'
+>>> f.clean('X-03287690')
+Traceback (most recent call last):
+...
+ValidationError: [u'Please enter a valid NIF, NIE, or CIF.']
+>>> f.clean('X-03287690-T')
+Traceback (most recent call last):
+...
+ValidationError: [u'Invalid checksum for NIE.']
+>>> f.clean('B38790911')
+'B38790911'
+>>> f.clean('B-3879091A')
+'B3879091A'
+>>> f.clean('B 38790917')
+Traceback (most recent call last):
+...
+ValidationError: [u'Invalid checksum for CIF.']
+>>> f.clean('B 38790911')
+'B38790911'
+>>> f.clean('P-3900800-H')
+'P3900800H'
+>>> f.clean('P 39008008')
+'P39008008'
+>>> f.clean('C-28795565')
+'C28795565'
+>>> f.clean('C 2879556E')
+'C2879556E'
+>>> f.clean('C28795567')
+Traceback (most recent call last):
+...
+ValidationError: [u'Invalid checksum for CIF.']
+>>> f.clean('I38790911')
+Traceback (most recent call last):
+...
+ValidationError: [u'Please enter a valid NIF, NIE, or CIF.']
+>>> f.clean('78699688-2')
+Traceback (most recent call last):
+...
+ValidationError: [u'Please enter a valid NIF, NIE, or CIF.']
+>>> f.clean('')
+u''
+
+# ESCCCField ##############################################################
+
+ESCCCField validates that data is a spanish bank account number (codigo cuenta cliente).
+
+>>> from django.contrib.localflavor.es.forms import ESCCCField
+>>> f = ESCCCField()
+>>> f.clean('20770338793100254321')
+'20770338793100254321'
+>>> f.clean('2077 0338 79 3100254321')
+'2077 0338 79 3100254321'
+>>> f.clean('2077-0338-79-3100254321')
+'2077-0338-79-3100254321'
+>>> f.clean('2077.0338.79.3100254321')
+Traceback (most recent call last):
+...
+ValidationError: [u'Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX.']
+>>> f.clean('2077-0338-78-3100254321')
+Traceback (most recent call last):
+...
+ValidationError: [u'Invalid checksum for bank account number.']
+>>> f.clean('2077-0338-89-3100254321')
+Traceback (most recent call last):
+...
+ValidationError: [u'Invalid checksum for bank account number.']
+>>> f.clean('2077-03-3879-3100254321')
+Traceback (most recent call last):
+...
+ValidationError: [u'Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX.']
+>>> f.clean('')
+Traceback (most recent call last):
+...
+ValidationError: [u'This field is required.']
+
+>>> f = ESCCCField(required=False)
+>>> f.clean('20770338793100254321')
+'20770338793100254321'
+>>> f.clean('2077 0338 79 3100254321')
+'2077 0338 79 3100254321'
+>>> f.clean('2077-0338-79-3100254321')
+'2077-0338-79-3100254321'
+>>> f.clean('2077.0338.79.3100254321')
+Traceback (most recent call last):
+...
+ValidationError: [u'Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX.']
+>>> f.clean('2077-0338-78-3100254321')
+Traceback (most recent call last):
+...
+ValidationError: [u'Invalid checksum for bank account number.']
+>>> f.clean('2077-0338-89-3100254321')
+Traceback (most recent call last):
+...
+ValidationError: [u'Invalid checksum for bank account number.']
+>>> f.clean('2077-03-3879-3100254321')
+Traceback (most recent call last):
+...
+ValidationError: [u'Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX.']
+>>> f.clean('')
+u''
+
+# ESRegionSelect ##############################################################
+
+ESRegionSelect is a Select widget that uses a list of Spain regions as its choices.
+>>> from django.contrib.localflavor.es.forms import ESRegionSelect
+>>> w = ESRegionSelect()
+>>> w.render('regions', 'CT')
+u'<select name="regions">\n<option value="AN">Andalusia</option>\n<option value="AR">Aragon</option>\n<option value="O">Principality of Asturias</option>\n<option value="IB">Balearic Islands</option>\n<option value="PV">Basque Country</option>\n<option value="CN">Canary Islands</option>\n<option value="S">Cantabria</option>\n<option value="CM">Castile-La Mancha</option>\n<option value="CL">Castile and Leon</option>\n<option value="CT" selected="selected">Catalonia</option>\n<option value="EX">Extremadura</option>\n<option value="GA">Galicia</option>\n<option value="LO">La Rioja</option>\n<option value="M">Madrid</option>\n<option value="MU">Region of Murcia</option>\n<option value="NA">Foral Community of Navarre</option>\n<option value="VC">Valencian Community</option>\n</select>'
+
+# ESProvincenSelect ##############################################################
+
+ESProvinceSelect is a Select widget that uses a list of Spain provinces as its choices.
+>>> from django.contrib.localflavor.es.forms import ESProvinceSelect
+>>> w = ESProvinceSelect()
+>>> w.render('provinces', '08')
+u'<select name="provinces">\n<option value="01">Arava</option>\n<option value="02">Albacete</option>\n<option value="03">Alacant</option>\n<option value="04">Almeria</option>\n<option value="05">Avila</option>\n<option value="06">Badajoz</option>\n<option value="07">Illes Balears</option>\n<option value="08" selected="selected">Barcelona</option>\n<option value="09">Burgos</option>\n<option value="10">Caceres</option>\n<option value="11">Cadiz</option>\n<option value="12">Castello</option>\n<option value="13">Ciudad Real</option>\n<option value="14">Cordoba</option>\n<option value="15">A Coruna</option>\n<option value="16">Cuenca</option>\n<option value="17">Girona</option>\n<option value="18">Granada</option>\n<option value="19">Guadalajara</option>\n<option value="20">Guipuzkoa</option>\n<option value="21">Huelva</option>\n<option value="22">Huesca</option>\n<option value="23">Jaen</option>\n<option value="24">Leon</option>\n<option value="25">Lleida</option>\n<option value="26">La Rioja</option>\n<option value="27">Lugo</option>\n<option value="28">Madrid</option>\n<option value="29">Malaga</option>\n<option value="30">Murcia</option>\n<option value="31">Navarre</option>\n<option value="32">Ourense</option>\n<option value="33">Asturias</option>\n<option value="34">Palencia</option>\n<option value="35">Las Palmas</option>\n<option value="36">Pontevedra</option>\n<option value="37">Salamanca</option>\n<option value="38">Santa Cruz de Tenerife</option>\n<option value="39">Cantabria</option>\n<option value="40">Segovia</option>\n<option value="41">Seville</option>\n<option value="42">Soria</option>\n<option value="43">Tarragona</option>\n<option value="44">Teruel</option>\n<option value="45">Toledo</option>\n<option value="46">Valencia</option>\n<option value="47">Valladolid</option>\n<option value="48">Bizkaia</option>\n<option value="49">Zamora</option>\n<option value="50">Zaragoza</option>\n<option value="51">Ceuta</option>\n<option value="52">Melilla</option>\n</select>'
+
+"""
+
diff --git a/tests/regressiontests/forms/localflavor/pl.py b/tests/regressiontests/forms/localflavor/pl.py
index be8437208b..becdda8a1d 100644
--- a/tests/regressiontests/forms/localflavor/pl.py
+++ b/tests/regressiontests/forms/localflavor/pl.py
@@ -35,11 +35,15 @@ u'41-403'
Traceback (most recent call last):
...
ValidationError: [u'Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX.']
->>> f.clean('43-34-234-323')
-u'43-34-234-323'
->>> f.clean('433-344-24-23')
-u'433-344-24-23'
-
+>>> f.clean('64-62-414-124')
+u'6462414124'
+>>> f.clean('646-241-41-24')
+u'6462414124'
+>>> f.clean('646-241-41-23')
+Traceback (most recent call last):
+...
+ValidationError: [u'Wrong checksum for the Tax Number (NIP).']
+
# PLNationalIdentificationNumberField ############################################
>>> from django.contrib.localflavor.pl.forms import PLNationalIdentificationNumberField
@@ -58,4 +62,20 @@ ValidationError: [u'National Identification Number consists of 11 digits.']
Traceback (most recent call last):
...
ValidationError: [u'National Identification Number consists of 11 digits.']
+
+# PLNationalBusinessRegisterField ################################################
+
+>>> from django.contrib.localflavor.pl.forms import PLNationalBusinessRegisterField
+>>> f = PLNationalBusinessRegisterField()
+>>> f.clean('590096454')
+u'590096454'
+>>> f.clean('590096453')
+Traceback (most recent call last):
+...
+ValidationError: [u'Wrong checksum for the National Business Register Number (REGON).']
+>>> f.clean('590096')
+Traceback (most recent call last):
+...
+ValidationError: [u'National Business Register Number (REGON) consists of 7 or 9 digits.']
+
"""
diff --git a/tests/regressiontests/forms/models.py b/tests/regressiontests/forms/models.py
index f4f8607193..1a6f566b6b 100644
--- a/tests/regressiontests/forms/models.py
+++ b/tests/regressiontests/forms/models.py
@@ -1,21 +1,49 @@
+import datetime
+
from django.db import models
-class BoundaryModel(models.Model):
+class BoundaryModel(models.Model):
positive_integer = models.PositiveIntegerField(null=True, blank=True)
-
+
+class Defaults(models.Model):
+ name = models.CharField(max_length=256, default='class default value')
+ def_date = models.DateField(default = datetime.date(1980, 1, 1))
+ value = models.IntegerField(default=42)
+
__test__ = {'API_TESTS': """
->>> from django.newforms import form_for_model
+>>> from django.newforms import form_for_model, form_for_instance
# Boundary conditions on a PostitiveIntegerField #########################
->>> BoundaryForm = form_for_model(BoundaryModel)
->>> f = BoundaryForm({'positive_integer':100})
->>> f.is_valid()
+>>> BoundaryForm = form_for_model(BoundaryModel)
+>>> f = BoundaryForm({'positive_integer':100})
+>>> f.is_valid()
True
->>> f = BoundaryForm({'positive_integer':0})
->>> f.is_valid()
+>>> f = BoundaryForm({'positive_integer':0})
+>>> f.is_valid()
True
->>> f = BoundaryForm({'positive_integer':-100})
->>> f.is_valid()
+>>> f = BoundaryForm({'positive_integer':-100})
+>>> f.is_valid()
False
-"""} \ No newline at end of file
+# Formfield initial values ########
+If the model has default values for some fields, they are used as the formfield
+initial values.
+>>> DefaultsForm = form_for_model(Defaults)
+>>> DefaultsForm().fields['name'].initial
+u'class default value'
+>>> DefaultsForm().fields['def_date'].initial
+datetime.date(1980, 1, 1)
+>>> DefaultsForm().fields['value'].initial
+42
+
+In form_for_instance(), the initial values come from the instance's values, not
+the model's defaults.
+>>> foo_instance = Defaults(name=u'instance value', def_date = datetime.date(1969, 4, 4), value = 12)
+>>> InstanceForm = form_for_instance(foo_instance)
+>>> InstanceForm().fields['name'].initial
+u'instance value'
+>>> InstanceForm().fields['def_date'].initial
+datetime.date(1969, 4, 4)
+>>> InstanceForm().fields['value'].initial
+12
+"""}
diff --git a/tests/regressiontests/forms/tests.py b/tests/regressiontests/forms/tests.py
index a732f9fdb0..aa33386d09 100644
--- a/tests/regressiontests/forms/tests.py
+++ b/tests/regressiontests/forms/tests.py
@@ -9,6 +9,7 @@ from localflavor.ca import tests as localflavor_ca_tests
from localflavor.ch import tests as localflavor_ch_tests
from localflavor.cl import tests as localflavor_cl_tests
from localflavor.de import tests as localflavor_de_tests
+from localflavor.es import tests as localflavor_es_tests
from localflavor.fi import tests as localflavor_fi_tests
from localflavor.fr import tests as localflavor_fr_tests
from localflavor.generic import tests as localflavor_generic_tests
@@ -35,6 +36,7 @@ __test__ = {
'localflavor_ch_tests': localflavor_ch_tests,
'localflavor_cl_tests': localflavor_cl_tests,
'localflavor_de_tests': localflavor_de_tests,
+ 'localflavor_es_tests': localflavor_es_tests,
'localflavor_fi_tests': localflavor_fi_tests,
'localflavor_fr_tests': localflavor_fr_tests,
'localflavor_generic_tests': localflavor_generic_tests,
diff --git a/tests/regressiontests/forms/widgets.py b/tests/regressiontests/forms/widgets.py
index 1c3e873963..cb1d084631 100644
--- a/tests/regressiontests/forms/widgets.py
+++ b/tests/regressiontests/forms/widgets.py
@@ -276,6 +276,12 @@ u'<input type="checkbox" name="greeting" />'
>>> w.render('greeting', None)
u'<input type="checkbox" name="greeting" />'
+The CheckboxInput widget will return False if the key is not found in the data
+dictionary (because HTML form submission doesn't send any result for unchecked
+checkboxes).
+>>> w.value_from_datadict({}, {}, 'testing')
+False
+
# Select Widget ###############################################################
>>> w = Select()
@@ -845,4 +851,21 @@ included on both widgets.
>>> w = SplitDateTimeWidget(attrs={'class': 'pretty'})
>>> w.render('date', datetime.datetime(2006, 1, 10, 7, 30))
u'<input type="text" class="pretty" value="2006-01-10" name="date_0" /><input type="text" class="pretty" value="07:30:00" name="date_1" />'
+
+# DateTimeInput ###############################################################
+
+>>> w = DateTimeInput()
+>>> w.render('date', None)
+u'<input type="text" name="date" />'
+>>> d = datetime.datetime(2007, 9, 17, 12, 51, 34, 482548)
+>>> print d
+2007-09-17 12:51:34.482548
+
+The microseconds are trimmed on display, by default.
+>>> w.render('date', d)
+u'<input type="text" name="date" value="2007-09-17 12:51:34" />'
+>>> w.render('date', datetime.datetime(2007, 9, 17, 12, 51, 34))
+u'<input type="text" name="date" value="2007-09-17 12:51:34" />'
+>>> w.render('date', datetime.datetime(2007, 9, 17, 12, 51))
+u'<input type="text" name="date" value="2007-09-17 12:51:00" />'
"""
diff --git a/tests/regressiontests/i18n/misc.py b/tests/regressiontests/i18n/misc.py
new file mode 100644
index 0000000000..fa22fd05d3
--- /dev/null
+++ b/tests/regressiontests/i18n/misc.py
@@ -0,0 +1,57 @@
+tests = """
+>>> from django.utils.translation.trans_real import parse_accept_lang_header
+>>> p = parse_accept_lang_header
+
+Good headers.
+>>> p('de')
+[('de', 1.0)]
+>>> p('en-AU')
+[('en-AU', 1.0)]
+>>> p('*;q=1.00')
+[('*', 1.0)]
+>>> p('en-AU;q=0.123')
+[('en-AU', 0.123)]
+>>> p('en-au;q=0.1')
+[('en-au', 0.10000000000000001)]
+>>> p('en-au;q=1.0')
+[('en-au', 1.0)]
+>>> p('da, en-gb;q=0.25, en;q=0.5')
+[('da', 1.0), ('en', 0.5), ('en-gb', 0.25)]
+>>> p('en-au-xx')
+[('en-au-xx', 1.0)]
+>>> p('de,en-au;q=0.75,en-us;q=0.5,en;q=0.25,es;q=0.125,fa;q=0.125')
+[('de', 1.0), ('en-au', 0.75), ('en-us', 0.5), ('en', 0.25), ('es', 0.125), ('fa', 0.125)]
+>>> p('*')
+[('*', 1.0)]
+>>> p('de;q=0.')
+[('de', 1.0)]
+>>> p('')
+[]
+
+Bad headers; should always return [].
+>>> p('en-gb;q=1.0000')
+[]
+>>> p('en;q=0.1234')
+[]
+>>> p('en;q=.2')
+[]
+>>> p('abcdefghi-au')
+[]
+>>> p('**')
+[]
+>>> p('en,,gb')
+[]
+>>> p('en-au;q=0.1.0')
+[]
+>>> p('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXZ,en')
+[]
+>>> p('da, en-gb;q=0.8, en;q=0.7,#')
+[]
+>>> p('de;q=2.0')
+[]
+>>> p('de;q=0.a')
+[]
+>>> p('')
+[]
+
+"""
diff --git a/tests/regressiontests/i18n/tests.py b/tests/regressiontests/i18n/tests.py
index 99204451e4..0a18e8bea5 100644
--- a/tests/regressiontests/i18n/tests.py
+++ b/tests/regressiontests/i18n/tests.py
@@ -1,6 +1,7 @@
# coding: utf-8
+import misc
-ur"""
+regressions = ur"""
Format string interpolation should work with *_lazy objects.
>>> from django.utils.translation import ugettext_lazy, activate, deactivate, gettext_lazy
@@ -39,3 +40,8 @@ unicode(string_concat(...)) should not raise a TypeError - #4796
>>> unicode(django.utils.translation.string_concat("dja", "ngo"))
u'django'
"""
+
+__test__ = {
+ 'regressions': regressions,
+ 'misc': misc.tests,
+}
diff --git a/tests/regressiontests/templates/tests.py b/tests/regressiontests/templates/tests.py
index 0c851d5f78..60f7d54145 100644
--- a/tests/regressiontests/templates/tests.py
+++ b/tests/regressiontests/templates/tests.py
@@ -13,7 +13,7 @@ from datetime import datetime, timedelta
from django import template
from django.template import loader
from django.template.loaders import app_directories, filesystem
-from django.utils.translation import activate, deactivate, install, ugettext as _
+from django.utils.translation import activate, deactivate, ugettext as _
from django.utils.tzinfo import LocalTimezone
from unicode import unicode_tests
@@ -341,7 +341,10 @@ class Templates(unittest.TestCase):
'firstof03': ('{% firstof a b c %}', {'a':0,'b':2,'c':0}, '2'),
'firstof04': ('{% firstof a b c %}', {'a':0,'b':0,'c':3}, '3'),
'firstof05': ('{% firstof a b c %}', {'a':1,'b':2,'c':3}, '1'),
- 'firstof06': ('{% firstof %}', {}, template.TemplateSyntaxError),
+ 'firstof06': ('{% firstof a b c %}', {'b':0,'c':3}, '3'),
+ 'firstof07': ('{% firstof a b "c" %}', {'a':0}, 'c'),
+ 'firstof08': ('{% firstof a b "c and d" %}', {'a':0,'b':0}, 'c and d'),
+ 'firstof09': ('{% firstof %}', {}, template.TemplateSyntaxError),
### FOR TAG ###############################################################
'for-tag01': ("{% for val in values %}{{ val }}{% endfor %}", {"values": [1, 2, 3]}, "123"),
@@ -802,6 +805,20 @@ class Templates(unittest.TestCase):
'url-fail01' : ('{% url %}', {}, template.TemplateSyntaxError),
'url-fail02' : ('{% url no_such_view %}', {}, ''),
'url-fail03' : ('{% url regressiontests.templates.views.client no_such_param="value" %}', {}, ''),
+
+ ### CACHE TAG ######################################################
+ 'cache01' : ('{% load cache %}{% cache -1 test %}cache01{% endcache %}', {}, 'cache01'),
+ 'cache02' : ('{% load cache %}{% cache -1 test %}cache02{% endcache %}', {}, 'cache02'),
+ 'cache03' : ('{% load cache %}{% cache 2 test %}cache03{% endcache %}', {}, 'cache03'),
+ 'cache04' : ('{% load cache %}{% cache 2 test %}cache04{% endcache %}', {}, 'cache03'),
+ 'cache05' : ('{% load cache %}{% cache 2 test foo %}cache05{% endcache %}', {'foo': 1}, 'cache05'),
+ 'cache06' : ('{% load cache %}{% cache 2 test foo %}cache06{% endcache %}', {'foo': 2}, 'cache06'),
+ 'cache07' : ('{% load cache %}{% cache 2 test foo %}cache06{% endcache %}', {'foo': 1}, 'cache05'),
+
+ # Raise exception if we dont have at least 2 args, first one integer.
+ 'cache08' : ('{% load cache %}{% cache %}{% endcache %}', {}, template.TemplateSyntaxError),
+ 'cache09' : ('{% load cache %}{% cache 1 %}{% endcache %}', {}, template.TemplateSyntaxError),
+ 'cache10' : ('{% load cache %}{% cache foo bar %}{% endcache %}', {}, template.TemplateSyntaxError),
}
# Register our custom template loader.
@@ -827,8 +844,6 @@ class Templates(unittest.TestCase):
expected_invalid_str = 'INVALID'
for name, vals in tests:
- install()
-
if isinstance(vals[2], tuple):
normal_string_result = vals[2][0]
invalid_string_result = vals[2][1]
diff --git a/tests/regressiontests/text/tests.py b/tests/regressiontests/text/tests.py
index 0fd22b58b0..962a30ef19 100644
--- a/tests/regressiontests/text/tests.py
+++ b/tests/regressiontests/text/tests.py
@@ -20,8 +20,12 @@ friends'
>>> from django.utils.http import urlquote, urlquote_plus
>>> urlquote(u'Paris & Orl\xe9ans')
u'Paris%20%26%20Orl%C3%A9ans'
+>>> urlquote(u'Paris & Orl\xe9ans', safe="&")
+u'Paris%20&%20Orl%C3%A9ans'
>>> urlquote_plus(u'Paris & Orl\xe9ans')
u'Paris+%26+Orl%C3%A9ans'
+>>> urlquote_plus(u'Paris & Orl\xe9ans', safe="&")
+u'Paris+&+Orl%C3%A9ans'
### iri_to_uri ###########################################################
>>> from django.utils.encoding import iri_to_uri
diff --git a/tests/regressiontests/utils/tests.py b/tests/regressiontests/utils/tests.py
index fe0b226adc..eb3a722888 100644
--- a/tests/regressiontests/utils/tests.py
+++ b/tests/regressiontests/utils/tests.py
@@ -4,7 +4,7 @@ Tests for django.utils.
from unittest import TestCase
-from django.utils import html
+from django.utils import html, checksums
from timesince import timesince_tests
@@ -116,6 +116,32 @@ class TestUtilsHtml(TestCase):
for value, output in items:
self.check_output(f, value, output)
+class TestUtilsChecksums(TestCase):
+
+ def check_output(self, function, value, output=None):
+ """
+ Check that function(value) equals output. If output is None,
+ check that function(value) equals value.
+ """
+ if output is None:
+ output = value
+ self.assertEqual(function(value), output)
+
+ def test_luhn(self):
+ f = checksums.luhn
+ items = (
+ (4111111111111111, True), ('4111111111111111', True),
+ (4222222222222, True), (378734493671000, True),
+ (5424000000000015, True), (5555555555554444, True),
+ (1008, True), ('0000001008', True), ('000000001008', True),
+ (4012888888881881, True), (1234567890123456789012345678909, True),
+ (4111111111211111, False), (42222222222224, False),
+ (100, False), ('100', False), ('0000100', False),
+ ('abc', False), (None, False), (object(), False),
+ )
+ for value, output in items:
+ self.check_output(f, value, output)
+
__test__ = {
'timesince_tests': timesince_tests,
}
diff --git a/tests/runtests.py b/tests/runtests.py
index 736a9a61b3..843850074b 100755
--- a/tests/runtests.py
+++ b/tests/runtests.py
@@ -93,6 +93,7 @@ def django_tests(verbosity, interactive, test_labels):
old_root_urlconf = settings.ROOT_URLCONF
old_template_dirs = settings.TEMPLATE_DIRS
old_use_i18n = settings.USE_I18N
+ old_language_code = settings.LANGUAGE_CODE
old_middleware_classes = settings.MIDDLEWARE_CLASSES
# Redirect some settings for the duration of these tests.
@@ -100,6 +101,7 @@ def django_tests(verbosity, interactive, test_labels):
settings.ROOT_URLCONF = 'urls'
settings.TEMPLATE_DIRS = (os.path.join(os.path.dirname(__file__), TEST_TEMPLATE_DIR),)
settings.USE_I18N = True
+ settings.LANGUAGE_CODE = 'en'
settings.MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
@@ -151,6 +153,7 @@ def django_tests(verbosity, interactive, test_labels):
settings.ROOT_URLCONF = old_root_urlconf
settings.TEMPLATE_DIRS = old_template_dirs
settings.USE_I18N = old_use_i18n
+ settings.LANGUAGE_CODE = old_language_code
settings.MIDDLEWARE_CLASSES = old_middleware_classes
if __name__ == "__main__":