From a82d071b484b6a3b429f5ed1c635a6f0e46f9636 Mon Sep 17 00:00:00 2001 From: Boulder Sprinters Date: Wed, 30 May 2007 16:57:27 +0000 Subject: boulder-oracle-sprint: Merged to [5383] git-svn-id: http://code.djangoproject.com/svn/django/branches/boulder-oracle-sprint@5384 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- AUTHORS | 1 + django/conf/global_settings.py | 8 + django/conf/locale/ca/LC_MESSAGES/django.mo | Bin 48325 -> 49408 bytes django/conf/locale/ca/LC_MESSAGES/django.po | 4028 ++++++++++---------- django/conf/locale/ca/LC_MESSAGES/djangojs.mo | Bin 1556 -> 1646 bytes django/conf/locale/ca/LC_MESSAGES/djangojs.po | 4 +- django/conf/locale/de/LC_MESSAGES/django.mo | Bin 44063 -> 44039 bytes django/conf/locale/de/LC_MESSAGES/django.po | 4 +- django/conf/urls/defaults.py | 8 +- django/core/context_processors.py | 7 + django/core/management.py | 2 +- django/core/serializers/python.py | 7 +- django/core/serializers/xml_serializer.py | 8 +- django/newforms/forms.py | 27 +- django/test/utils.py | 24 +- django/utils/feedgenerator.py | 2 + docs/db-api.txt | 3 +- docs/install.txt | 4 +- docs/model-api.txt | 18 +- docs/modpython.txt | 37 + docs/newforms.txt | 8 +- docs/settings.txt | 53 +- docs/templates.txt | 17 +- docs/templates_python.txt | 12 +- docs/testing.txt | 12 +- docs/tutorial03.txt | 5 +- docs/tutorial04.txt | 27 +- docs/url_dispatch.txt | 34 + tests/regressiontests/forms/tests.py | 19 + .../regressiontests/serializers_regress/models.py | 3 + tests/regressiontests/serializers_regress/tests.py | 2 + 31 files changed, 2336 insertions(+), 2048 deletions(-) diff --git a/AUTHORS b/AUTHORS index cd54dbad08..fedbd74684 100644 --- a/AUTHORS +++ b/AUTHORS @@ -230,6 +230,7 @@ answer newbie questions, and generally made Django that much better: viestards.lists@gmail.com Milton Waddams wam-djangobug@wamber.net + wangchun Dan Watson Chris Wesseling charly.wilhelm@gmail.com diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 9abc8d6a6c..2be6a4ef95 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -144,6 +144,7 @@ TEMPLATE_CONTEXT_PROCESSORS = ( 'django.core.context_processors.auth', 'django.core.context_processors.debug', 'django.core.context_processors.i18n', + 'django.core.context_processors.media', # 'django.core.context_processors.request', ) @@ -331,6 +332,13 @@ TEST_RUNNER = 'django.test.simple.run_tests' # If None, a name of 'test_' + DATABASE_NAME will be assumed TEST_DATABASE_NAME = None +# Strings used to set the character set and collation order for the test +# database. These values are passed literally to the server, so they are +# backend-dependent. If None, no special settings are sent (system defaults are +# used). +TEST_DATABASE_CHARSET = None +TEST_DATABASE_COLLATION = None + ############ # FIXTURES # ############ diff --git a/django/conf/locale/ca/LC_MESSAGES/django.mo b/django/conf/locale/ca/LC_MESSAGES/django.mo index ca03991f2b..665d7d41a9 100644 Binary files a/django/conf/locale/ca/LC_MESSAGES/django.mo and b/django/conf/locale/ca/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/ca/LC_MESSAGES/django.po b/django/conf/locale/ca/LC_MESSAGES/django.po index ccef4f8e3b..30a8797a91 100644 --- a/django/conf/locale/ca/LC_MESSAGES/django.po +++ b/django/conf/locale/ca/LC_MESSAGES/django.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-05-20 18:25+0200\n" -"PO-Revision-Date: 2007-05-20 18:24+0200\n" +"POT-Creation-Date: 2007-05-25 13:04+0200\n" +"PO-Revision-Date: 2007-05-25 13:04+0200\n" "Last-Translator: Marc Fargas \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -16,278 +16,302 @@ msgstr "" "X-Generator: VIM 7.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: utils/dateformat.py:40 -msgid "p.m." -msgstr "p.m." +#: template/defaultfilters.py:491 +msgid "yes,no,maybe" +msgstr "si,no,potser" -#: utils/dateformat.py:41 -msgid "a.m." -msgstr "a.m." +#: template/defaultfilters.py:520 +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" -#: utils/dateformat.py:46 -msgid "PM" -msgstr "PM" +#: template/defaultfilters.py:522 +#, python-format +msgid "%.1f KB" +msgstr "%.1f KB" -#: utils/dateformat.py:47 -msgid "AM" -msgstr "AM" +#: template/defaultfilters.py:524 +#, python-format +msgid "%.1f MB" +msgstr "%.1f MB" -#: utils/dateformat.py:95 -msgid "midnight" -msgstr "mitja nit" +#: template/defaultfilters.py:525 +#, python-format +msgid "%.1f GB" +msgstr "%.1f GB" -#: utils/dateformat.py:97 -msgid "noon" -msgstr "mig dia" +#: newforms/models.py:173 newforms/fields.py:432 +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." -#: utils/dates.py:6 -msgid "Monday" -msgstr "Dilluns" +#: newforms/models.py:186 newforms/fields.py:87 newforms/fields.py:444 +#: newforms/fields.py:520 newforms/fields.py:531 oldforms/__init__.py:357 +#: db/models/fields/__init__.py:121 db/models/fields/__init__.py:278 +#: db/models/fields/__init__.py:675 db/models/fields/__init__.py:686 +msgid "This field is required." +msgstr "Aquest camp és obligatori." -#: utils/dates.py:6 -msgid "Tuesday" -msgstr "Dimarts" +#: newforms/models.py:190 newforms/fields.py:448 newforms/fields.py:524 +msgid "Enter a list of values." +msgstr "Introdueixi una llista de valors." -#: utils/dates.py:6 -msgid "Wednesday" -msgstr "Dimecres" +#: newforms/models.py:196 newforms/fields.py:457 +#, 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." -#: utils/dates.py:6 -msgid "Thursday" -msgstr "Dijous" +#: newforms/widgets.py:182 contrib/admin/filterspecs.py:150 +#: oldforms/__init__.py:577 +msgid "Unknown" +msgstr "Desconegut" -#: utils/dates.py:6 -msgid "Friday" -msgstr "Divendres" +#: newforms/widgets.py:182 contrib/admin/filterspecs.py:143 +#: oldforms/__init__.py:577 +msgid "Yes" +msgstr "Si" -#: utils/dates.py:7 -msgid "Saturday" -msgstr "Dissabte" +#: newforms/widgets.py:182 contrib/admin/filterspecs.py:143 +#: oldforms/__init__.py:577 +msgid "No" +msgstr "No" -#: utils/dates.py:7 -msgid "Sunday" -msgstr "Diumenge" +#: newforms/fields.py:110 newforms/fields.py:324 +#, python-format +msgid "Ensure this value has at most %d characters." +msgstr "Asseguris de que el seu texte té com a màxim %d caracters." -#: utils/dates.py:14 -msgid "January" -msgstr "Gener" +#: newforms/fields.py:112 newforms/fields.py:326 +#, python-format +msgid "Ensure this value has at least %d characters." +msgstr "Asseguris de que el seu texte té almenys %d caracters." -#: utils/dates.py:14 -msgid "February" -msgstr "Febrer" +#: newforms/fields.py:135 core/validators.py:121 +msgid "Enter a whole number." +msgstr "Introdueixi un número sencer." -#: utils/dates.py:14 utils/dates.py:27 -msgid "March" -msgstr "Març" +#: newforms/fields.py:137 newforms/fields.py:160 newforms/fields.py:192 +#, python-format +msgid "Ensure this value is less than or equal to %s." +msgstr "Aquest valor ha de ser menor o igual a %s." -#: utils/dates.py:14 utils/dates.py:27 -msgid "April" -msgstr "Abril" +#: newforms/fields.py:139 newforms/fields.py:162 newforms/fields.py:194 +#, 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." -#: utils/dates.py:14 utils/dates.py:27 -msgid "May" -msgstr "Maig" +#: newforms/fields.py:158 newforms/fields.py:186 +msgid "Enter a number." +msgstr "Introdueixi un número." -#: utils/dates.py:14 utils/dates.py:27 -msgid "June" -msgstr "Juny" +#: newforms/fields.py:196 +#, 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." -#: utils/dates.py:15 utils/dates.py:27 -msgid "July" -msgstr "Juliol" +#: newforms/fields.py:198 +#, 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." -#: utils/dates.py:15 -msgid "August" -msgstr "Agost" +#: newforms/fields.py:200 +#, 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." -#: utils/dates.py:15 -msgid "September" -msgstr "Setembre" +#: newforms/fields.py:233 +msgid "Enter a valid date." +msgstr "Introdueixi una data vàlida." -#: utils/dates.py:15 -msgid "October" -msgstr "Octubre" +#: newforms/fields.py:260 +msgid "Enter a valid time." +msgstr "Introdueixi una hora vàlida." -#: utils/dates.py:15 -msgid "November" -msgstr "Novembre" +#: newforms/fields.py:296 +msgid "Enter a valid date/time." +msgstr "Introdueixi una data/hora vàlides." -#: utils/dates.py:16 -msgid "December" -msgstr "Desembre" +#: newforms/fields.py:310 +msgid "Enter a valid value." +msgstr "Introdueixi un valor vàlid." -#: utils/dates.py:19 -msgid "jan" -msgstr "gen" +#: newforms/fields.py:339 core/validators.py:163 +msgid "Enter a valid e-mail address." +msgstr "Introdueixi una adreça de correu vàlida." -#: utils/dates.py:19 -msgid "feb" -msgstr "feb" +#: newforms/fields.py:357 newforms/fields.py:379 +msgid "Enter a valid URL." +msgstr "Introdueixi una URL vàlida." -#: utils/dates.py:19 -msgid "mar" -msgstr "mar" +#: newforms/fields.py:381 +msgid "This URL appears to be a broken link." +msgstr "Aquesta URL sembla ser un enllaç trencat." -#: utils/dates.py:19 -msgid "apr" -msgstr "abr" +#: conf/global_settings.py:39 +msgid "Arabic" +msgstr "Arabic" -#: utils/dates.py:19 -msgid "may" -msgstr "mai" +#: conf/global_settings.py:40 +msgid "Bengali" +msgstr "Bengalí" -#: utils/dates.py:19 -msgid "jun" -msgstr "jun" +#: conf/global_settings.py:41 +msgid "Bulgarian" +msgstr "Bulgar" -#: utils/dates.py:20 -msgid "jul" -msgstr "jul" +#: conf/global_settings.py:42 +msgid "Catalan" +msgstr "Català" -#: utils/dates.py:20 -msgid "aug" -msgstr "ago" +#: conf/global_settings.py:43 +msgid "Czech" +msgstr "Txec" -#: utils/dates.py:20 -msgid "sep" -msgstr "set" +#: conf/global_settings.py:44 +msgid "Welsh" +msgstr "Galès" -#: utils/dates.py:20 -msgid "oct" -msgstr "oct" +#: conf/global_settings.py:45 +msgid "Danish" +msgstr "Danès" -#: utils/dates.py:20 -msgid "nov" -msgstr "nov" +#: conf/global_settings.py:46 +msgid "German" +msgstr "Alemany" -#: utils/dates.py:20 -msgid "dec" -msgstr "des" +#: conf/global_settings.py:47 +msgid "Greek" +msgstr "Grec" -#: utils/dates.py:27 -msgid "Jan." -msgstr "Gen." +#: conf/global_settings.py:48 +msgid "English" +msgstr "Anglès" -#: utils/dates.py:27 -msgid "Feb." -msgstr "Feb." +#: conf/global_settings.py:49 +msgid "Spanish" +msgstr "Espanyol" -#: utils/dates.py:28 -msgid "Aug." -msgstr "Ago." +#: conf/global_settings.py:50 +msgid "Argentinean Spanish" +msgstr "Castellà Argentí" -#: utils/dates.py:28 -msgid "Sept." -msgstr "Set." +#: conf/global_settings.py:51 +msgid "Finnish" +msgstr "Finlandès" -#: utils/dates.py:28 -msgid "Oct." -msgstr "Oct." +#: conf/global_settings.py:52 +msgid "French" +msgstr "Francès" -#: utils/dates.py:28 -msgid "Nov." -msgstr "Nov." +#: conf/global_settings.py:53 +msgid "Galician" +msgstr "Galleg" -#: utils/dates.py:28 -msgid "Dec." -msgstr "Des." +#: conf/global_settings.py:54 +msgid "Hungarian" +msgstr "Húngar" -#: utils/timesince.py:12 -msgid "year" -msgid_plural "years" -msgstr[0] "any" -msgstr[1] "anys" +#: conf/global_settings.py:55 +msgid "Hebrew" +msgstr "Hebreu" -#: utils/timesince.py:13 -msgid "month" -msgid_plural "months" -msgstr[0] "mes" -msgstr[1] "mesos" +#: conf/global_settings.py:56 +msgid "Icelandic" +msgstr "Islandès" -#: utils/timesince.py:14 -msgid "week" -msgid_plural "weeks" -msgstr[0] "setmana" -msgstr[1] "setmanes" +#: conf/global_settings.py:57 +msgid "Italian" +msgstr "Italià" -#: utils/timesince.py:15 -msgid "day" -msgid_plural "days" -msgstr[0] "dia" -msgstr[1] "dies" +#: conf/global_settings.py:58 +msgid "Japanese" +msgstr "Japonès" -#: utils/timesince.py:16 -msgid "hour" -msgid_plural "hours" -msgstr[0] "hora" -msgstr[1] "hores" +#: conf/global_settings.py:59 +msgid "Korean" +msgstr "Coreà" -#: utils/timesince.py:17 -msgid "minute" -msgid_plural "minutes" -msgstr[0] "minut" -msgstr[1] "minuts" +#: conf/global_settings.py:60 +msgid "Kannada" +msgstr "" -#: utils/timesince.py:40 -#, python-format -msgid "%d milliseconds" -msgstr "%d milisegons" +#: conf/global_settings.py:61 +msgid "Latvian" +msgstr "" -#: utils/timesince.py:41 -#, python-format -msgid "%(number)d %(type)s" -msgstr "%(number)d %(type)s" +#: conf/global_settings.py:62 +msgid "Macedonian" +msgstr "Macedoni" -#: utils/timesince.py:47 -#, python-format -msgid ", %(number)d %(type)s" -msgstr ", %(number)d %(type)s" +#: conf/global_settings.py:63 +msgid "Dutch" +msgstr "Holandès" -#: utils/translation/trans_real.py:358 -msgid "DATE_FORMAT" -msgstr "F j, Y" +#: conf/global_settings.py:64 +msgid "Norwegian" +msgstr "Norueg" -#: utils/translation/trans_real.py:359 -msgid "DATETIME_FORMAT" -msgstr "F j, Y, H:i" +#: conf/global_settings.py:65 +msgid "Polish" +msgstr "Polac" -#: utils/translation/trans_real.py:360 -msgid "TIME_FORMAT" -msgstr "H:i" +#: conf/global_settings.py:66 +msgid "Portugese" +msgstr "Portuguès" -#: utils/translation/trans_real.py:376 -msgid "YEAR_MONTH_FORMAT" -msgstr "j de/d' F del Y" +#: conf/global_settings.py:67 +msgid "Brazilian" +msgstr "Brasileny" -#: utils/translation/trans_real.py:377 -msgid "MONTH_DAY_FORMAT" -msgstr "j de/d' F del Y" +#: conf/global_settings.py:68 +msgid "Romanian" +msgstr "Rumanès" -#: template/defaultfilters.py:491 -msgid "yes,no,maybe" -msgstr "si,no,potser" +#: conf/global_settings.py:69 +msgid "Russian" +msgstr "Rús" -#: template/defaultfilters.py:520 -#, python-format -msgid "%(size)d byte" -msgid_plural "%(size)d bytes" -msgstr[0] "%(size)d byte" -msgstr[1] "%(size)d bytes" +#: conf/global_settings.py:70 +msgid "Slovak" +msgstr "Eslovac" -#: template/defaultfilters.py:522 -#, python-format -msgid "%.1f KB" -msgstr "%.1f KB" +#: conf/global_settings.py:71 +msgid "Slovenian" +msgstr "Esloveni" -#: template/defaultfilters.py:524 -#, python-format -msgid "%.1f MB" -msgstr "%.1f MB" +#: conf/global_settings.py:72 +msgid "Serbian" +msgstr "Serbi" -#: template/defaultfilters.py:525 -#, python-format -msgid "%.1f GB" -msgstr "%.1f GB" +#: conf/global_settings.py:73 +msgid "Swedish" +msgstr "Suec" + +#: conf/global_settings.py:74 +msgid "Tamil" +msgstr "" + +#: conf/global_settings.py:75 +msgid "Telugu" +msgstr "" + +#: conf/global_settings.py:76 +msgid "Turkish" +msgstr "Turc" + +#: conf/global_settings.py:77 +msgid "Ukrainian" +msgstr "Ucranià" + +#: conf/global_settings.py:78 +msgid "Simplified Chinese" +msgstr "Xinés simplificat" + +#: conf/global_settings.py:79 +msgid "Traditional Chinese" +msgstr "Xinés tradicional" #: contrib/comments/models.py:67 contrib/comments/models.py:166 msgid "object ID" @@ -346,7 +370,7 @@ msgstr "data/hora d'enviament" msgid "is public" msgstr "és públic" -#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304 +#: contrib/comments/models.py:85 contrib/admin/views/doc.py:305 msgid "IP address" msgstr "Adreça IP" @@ -471,6 +495,75 @@ msgstr "eliminacions del moderador" msgid "Moderator deletion by %r" msgstr "eliminació del moderador per %r" +#: contrib/comments/templates/comments/freeform.html:4 +msgid "Your name:" +msgstr "El seu nom:" + +#: contrib/comments/templates/comments/freeform.html:5 +#: contrib/comments/templates/comments/form.html:28 +msgid "Comment:" +msgstr "Comentari:" + +#: contrib/comments/templates/comments/freeform.html:10 +#: contrib/comments/templates/comments/form.html:35 +msgid "Preview comment" +msgstr "Previsualitzar comentari" + +#: contrib/comments/templates/comments/form.html:6 +#: contrib/comments/templates/comments/form.html:8 +#: contrib/admin/templates/admin/login.html:17 +msgid "Username:" +msgstr "Usuari:" + +#: contrib/comments/templates/comments/form.html:6 +#: contrib/admin/templates/admin/object_history.html:3 +#: 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/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +#: contrib/admin/templates/admin_doc/template_tag_index.html:5 +#: contrib/admin/templates/admin_doc/view_detail.html:4 +#: contrib/admin/templates/admin_doc/missing_docutils.html:4 +#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/index.html:4 +#: contrib/admin/templates/admin_doc/template_filter_index.html:5 +#: contrib/admin/templates/admin_doc/model_detail.html:3 +#: contrib/admin/templates/admin_doc/template_detail.html:4 +#: contrib/admin/templates/admin_doc/view_index.html:5 +msgid "Log out" +msgstr "Finalitzar sessió" + +#: contrib/comments/templates/comments/form.html:8 +#: contrib/admin/templates/admin/login.html:20 +msgid "Password:" +msgstr "Contrasenya:" + +#: contrib/comments/templates/comments/form.html:8 +msgid "Forgotten your password?" +msgstr "Contrasenya oblidada?" + +#: contrib/comments/templates/comments/form.html:12 +msgid "Ratings" +msgstr "Qualificacions" + +#: 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/views/comments.py:27 msgid "" "This rating is required because you've entered at least one other rating." @@ -553,114 +646,13 @@ msgstr "ID del comentari invàlid" msgid "No voting for yourself" msgstr "No pots votar-te a tu mateix" -#: contrib/comments/templates/comments/form.html:6 -#: contrib/comments/templates/comments/form.html:8 -#: contrib/admin/templates/admin/login.html:17 -msgid "Username:" -msgstr "Usuari:" +#: contrib/admin/models.py:16 +msgid "action time" +msgstr "moment de l'acció" -#: contrib/comments/templates/comments/form.html:6 -#: contrib/admin/templates/admin/change_form.html:10 -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: 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/missing_docutils.html:4 -#: contrib/admin/templates/admin_doc/template_detail.html:4 -#: contrib/admin/templates/admin_doc/view_detail.html:4 -#: contrib/admin/templates/admin_doc/view_index.html:5 -#: contrib/admin/templates/admin_doc/index.html:4 -#: contrib/admin/templates/admin_doc/template_tag_index.html:5 -#: contrib/admin/templates/admin_doc/bookmarklets.html:4 -#: contrib/admin/templates/admin_doc/model_index.html:5 -#: contrib/admin/templates/admin_doc/template_filter_index.html:5 -#: contrib/admin/templates/admin_doc/model_detail.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 -#: contrib/admin/templates/registration/password_change_done.html:3 -msgid "Log out" -msgstr "Finalitzar sessió" - -#: contrib/comments/templates/comments/form.html:8 -#: contrib/admin/templates/admin/login.html:20 -msgid "Password:" -msgstr "Contrasenya:" - -#: contrib/comments/templates/comments/form.html:8 -msgid "Forgotten your password?" -msgstr "Contrasenya oblidada?" - -#: contrib/comments/templates/comments/form.html:12 -msgid "Ratings" -msgstr "Qualificacions" - -#: 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/redirects/models.py:7 -msgid "redirect from" -msgstr "redreçar des de" - -#: 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/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/admin/models.py:16 -msgid "action time" -msgstr "moment de l'acció" - -#: contrib/admin/models.py:19 -msgid "object id" -msgstr "id del objecte" +#: contrib/admin/models.py:19 +msgid "object id" +msgstr "id del objecte" #: contrib/admin/models.py:20 msgid "object repr" @@ -716,1120 +708,1187 @@ msgstr "Aquest mes" msgid "This year" msgstr "Aquest any" -#: contrib/admin/filterspecs.py:143 newforms/widgets.py:182 -#: oldforms/__init__.py:577 -msgid "Yes" -msgstr "Si" - -#: contrib/admin/filterspecs.py:143 newforms/widgets.py:182 -#: oldforms/__init__.py:577 -msgid "No" -msgstr "No" - -#: contrib/admin/filterspecs.py:150 newforms/widgets.py:182 -#: oldforms/__init__.py:577 -msgid "Unknown" -msgstr "Desconegut" - -#: contrib/admin/templatetags/admin_list.py:247 +#: contrib/admin/templatetags/admin_list.py:249 msgid "All dates" msgstr "Totes les dates" -#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48 -#: contrib/admin/views/doc.py:50 -msgid "tag:" -msgstr "etiqueta:" +#: contrib/admin/templates/admin/object_history.html:3 +#: 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/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +msgid "Documentation" +msgstr "Documentació" -#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79 -#: contrib/admin/views/doc.py:81 -msgid "filter:" -msgstr "filtre:" +#: contrib/admin/templates/admin/object_history.html:3 +#: 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/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/admin/auth/user/change_password.html:15 +#: contrib/admin/templates/admin/auth/user/change_password.html:46 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +#: contrib/admin/templates/admin_doc/template_tag_index.html:5 +#: contrib/admin/templates/admin_doc/view_detail.html:4 +#: contrib/admin/templates/admin_doc/missing_docutils.html:4 +#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/index.html:4 +#: contrib/admin/templates/admin_doc/template_filter_index.html:5 +#: contrib/admin/templates/admin_doc/model_detail.html:3 +#: contrib/admin/templates/admin_doc/template_detail.html:4 +#: contrib/admin/templates/admin_doc/view_index.html:5 +msgid "Change password" +msgstr "Canviar clau" -#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137 -#: contrib/admin/views/doc.py:139 -msgid "view:" -msgstr "vista:" +#: contrib/admin/templates/admin/object_history.html:5 +#: contrib/admin/templates/admin/invalid_setup.html:4 +#: contrib/admin/templates/admin/delete_confirmation.html:6 +#: contrib/admin/templates/admin/change_form.html:13 +#: contrib/admin/templates/admin/500.html:4 +#: contrib/admin/templates/admin/change_list.html:6 +#: contrib/admin/templates/admin/base.html:30 +#: contrib/admin/templates/admin/auth/user/change_password.html:12 +#: contrib/admin/templates/registration/logged_out.html:4 +#: contrib/admin/templates/registration/password_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 "Inici" -#: contrib/admin/views/doc.py:164 -#, python-format -msgid "App %r not found" -msgstr "La aplicació %r no s'ha pogut trobar" +#: contrib/admin/templates/admin/object_history.html:5 +#: contrib/admin/templates/admin/change_form.html:21 +msgid "History" +msgstr "Històric" -#: contrib/admin/views/doc.py:171 -#, python-format -msgid "Model %(name)r not found in app %(label)r" -msgstr "El model %(name)r no s'ha trobat en la aplicació %(label)r" +#: contrib/admin/templates/admin/object_history.html:18 +msgid "Date/time" +msgstr "Data/hora" -#: contrib/admin/views/doc.py:183 -#, python-format -msgid "the related `%(label)s.%(type)s` object" -msgstr "el objecte relacionat `%(label)s.%(type)s`" +#: contrib/admin/templates/admin/object_history.html:19 +msgid "User" +msgstr "Usuari" -#: contrib/admin/views/doc.py:183 contrib/admin/views/doc.py:205 -#: contrib/admin/views/doc.py:219 contrib/admin/views/doc.py:224 -msgid "model:" -msgstr "model:" +#: contrib/admin/templates/admin/object_history.html:20 +msgid "Action" +msgstr "Acció" -#: contrib/admin/views/doc.py:214 -#, python-format -msgid "related `%(label)s.%(name)s` objects" -msgstr "objectes relacionats `%(label)s.%(name)s`" +#: contrib/admin/templates/admin/object_history.html:26 +msgid "DATE_WITH_TIME_FULL" +msgstr "F j, Y, H:i " -#: contrib/admin/views/doc.py:219 -#, python-format -msgid "all %s" -msgstr "tots %s" +#: 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/views/doc.py:224 +#: 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" + +#: contrib/admin/templates/admin/search_form.html:10 #, python-format -msgid "number of %s" -msgstr "nombre de %s" +msgid "1 result" +msgid_plural "%(counter)s results" +msgstr[0] "1 resultat" +msgstr[1] "%(counter)s resultats" -#: contrib/admin/views/doc.py:229 +#: contrib/admin/templates/admin/search_form.html:10 #, python-format -msgid "Fields on %s objects" -msgstr "Camps en objectes %s" +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s en total" -#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:301 -#: contrib/admin/views/doc.py:303 contrib/admin/views/doc.py:309 -#: contrib/admin/views/doc.py:310 contrib/admin/views/doc.py:312 -msgid "Integer" -msgstr "Enter" +#: contrib/admin/templates/admin/delete_confirmation.html:9 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Delete" +msgstr "Eliminar" -#: contrib/admin/views/doc.py:292 -msgid "Boolean (Either True or False)" -msgstr "Booleà (Verdader o Fals)" +#: 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/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:" -#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311 +#: contrib/admin/templates/admin/delete_confirmation.html:21 #, python-format -msgid "String (up to %(maxlength)s)" -msgstr "Cadena (fins a %(maxlength)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 "" +"Està segur de voler esborrar els/les %(object_name)s \"%(escaped_object)s\"? " +"S'esborraran els següents elements relacionats:" -#: contrib/admin/views/doc.py:294 -msgid "Comma-separated integers" -msgstr "Enters separats per comes" +#: contrib/admin/templates/admin/delete_confirmation.html:26 +msgid "Yes, I'm sure" +msgstr "Si, estic segur" -#: contrib/admin/views/doc.py:295 -msgid "Date (without time)" -msgstr "Data (sense hora)" +#: contrib/admin/templates/admin/pagination.html:10 +msgid "Show all" +msgstr "Mostrar tots" -#: contrib/admin/views/doc.py:296 -msgid "Date (with time)" -msgstr "Data (amb hora)" +#: contrib/admin/templates/admin/login.html:25 +#: contrib/admin/views/decorators.py:24 +msgid "Log in" +msgstr "Iniciar sessió" -#: contrib/admin/views/doc.py:297 -msgid "E-mail address" -msgstr "Adreça de correu electrònic" +#: contrib/admin/templates/admin/change_form.html:15 +#: contrib/admin/templates/admin/index.html:28 +msgid "Add" +msgstr "Afegir" -#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299 -#: contrib/admin/views/doc.py:302 -msgid "File path" -msgstr "Ruta del fitxer" +#: contrib/admin/templates/admin/change_form.html:22 +msgid "View on site" +msgstr "Veure en el lloc" -#: contrib/admin/views/doc.py:300 -msgid "Decimal number" -msgstr "Número decimal" +#: 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/views/doc.py:306 -msgid "Boolean (Either True, False or None)" -msgstr "Booleà (Verdader, Fals o 'None' (cap))" +#: contrib/admin/templates/admin/change_form.html:50 +msgid "Ordering" +msgstr "Ordre" -#: contrib/admin/views/doc.py:307 -msgid "Relation to parent model" -msgstr "Relació amb el model pare" +#: contrib/admin/templates/admin/change_form.html:53 +msgid "Order:" +msgstr "Ordre:" -#: contrib/admin/views/doc.py:308 -msgid "Phone number" -msgstr "Número de telèfon" +#: contrib/admin/templates/admin/index.html:17 +#, python-format +msgid "Models available in the %(name)s application." +msgstr "Models disponibles en la aplicació %(name)s." -#: contrib/admin/views/doc.py:313 -msgid "Text" -msgstr "Texte" +#: contrib/admin/templates/admin/index.html:18 +#, python-format +msgid "%(name)s" +msgstr "%(name)s" -#: contrib/admin/views/doc.py:314 -msgid "Time" -msgstr "Hora" +#: contrib/admin/templates/admin/index.html:34 +msgid "Change" +msgstr "Modificar" -#: contrib/admin/views/doc.py:315 contrib/flatpages/models.py:7 -msgid "URL" -msgstr "URL" +#: 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/views/doc.py:316 -msgid "U.S. state (two uppercase letters)" -msgstr "Estat dels E.U.A. (dos lletres majúscules)" +#: contrib/admin/templates/admin/index.html:52 +msgid "Recent Actions" +msgstr "Accions recents" -#: contrib/admin/views/doc.py:317 -msgid "XML text" -msgstr "Texte XML" +#: contrib/admin/templates/admin/index.html:53 +msgid "My Actions" +msgstr "Les meves accions" -#: contrib/admin/views/doc.py:343 -#, python-format -msgid "%s does not appear to be a urlpattern object" -msgstr "%s no sembla ser un objecte 'urlpattern'" +#: contrib/admin/templates/admin/index.html:57 +msgid "None available" +msgstr "Cap disponible" -#: 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/templates/admin/500.html:4 +msgid "Server error" +msgstr "Error del servidor" -#: contrib/admin/views/decorators.py:24 -#: contrib/admin/templates/admin/login.html:25 -msgid "Log in" -msgstr "Iniciar sessió" +#: contrib/admin/templates/admin/500.html:6 +msgid "Server error (500)" +msgstr "Error del servidor (500)" -#: 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/admin/500.html:9 +msgid "Server Error (500)" +msgstr "Error del servidor (500)" -#: contrib/admin/views/decorators.py:69 +#: contrib/admin/templates/admin/500.html:10 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/decorators.py:83 -msgid "Usernames cannot contain the '@' character." -msgstr "Els noms d'usuari no poden contenir el caracter '@'." - -#: contrib/admin/views/decorators.py:85 -#, python-format -msgid "Your e-mail address is not your username. Try '%s' instead." +"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 "" -"La seva adreça de correu no és el seu nom d'usuari. Provi '%s' en tot cas." +"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/views/auth.py:19 contrib/admin/views/main.py:257 +#: contrib/admin/templates/admin/change_list.html:12 #, 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:24 contrib/admin/views/main.py:261 -#: contrib/admin/views/main.py:347 -msgid "You may edit it again below." -msgstr "Pot editar-lo de nou abaix." - -#: contrib/admin/views/auth.py:30 -msgid "Add user" -msgstr "Agregar usuari" +msgid "Add %(name)s" +msgstr "Afegir %(name)s" -#: contrib/admin/views/auth.py:57 -msgid "Password changed successfully." -msgstr "Canvi de clau exitós" +#: contrib/admin/templates/admin/base.html:25 +msgid "Welcome," +msgstr "Benvingut," -#: contrib/admin/views/auth.py:64 -#, python-format -msgid "Change password: %s" -msgstr "Canviar clau: %s" +#: contrib/admin/templates/admin/base_site.html:4 +msgid "Django site admin" +msgstr "Lloc administratiu de Django" -#: contrib/admin/views/main.py:223 -msgid "Site administration" -msgstr "Lloc administratiu" +#: contrib/admin/templates/admin/base_site.html:7 +msgid "Django administration" +msgstr "Adminsitració de Django" -#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356 -#, python-format -msgid "You may add another %s below." -msgstr "Pot agregar un altre %s abaix." +#: contrib/admin/templates/admin/filters.html:4 +msgid "Filter" +msgstr "Filtre" -#: contrib/admin/views/main.py:289 -#, python-format -msgid "Add %s" -msgstr "Agregar %s" +#: contrib/admin/templates/admin/submit_line.html:4 +msgid "Save as new" +msgstr "Desar com a nou" -#: contrib/admin/views/main.py:335 -#, python-format -msgid "Added %s." -msgstr "Agregat %s." +#: contrib/admin/templates/admin/submit_line.html:5 +msgid "Save and add another" +msgstr "Desar i afegir-ne un de nou" -#: contrib/admin/views/main.py:335 contrib/admin/views/main.py:337 -#: contrib/admin/views/main.py:339 db/models/manipulators.py:308 -msgid "and" -msgstr "i" +#: contrib/admin/templates/admin/submit_line.html:6 +msgid "Save and continue editing" +msgstr "Desar i continuar editant" -#: contrib/admin/views/main.py:337 -#, python-format -msgid "Changed %s." -msgstr "Modificat %s." +#: contrib/admin/templates/admin/submit_line.html:7 +msgid "Save" +msgstr "Desar" -#: contrib/admin/views/main.py:339 -#, python-format -msgid "Deleted %s." -msgstr "Eliminat %s." +#: 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/views/main.py:342 -msgid "No fields changed." -msgstr "Cap camp canviat." +#: 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/views/main.py:345 +#: contrib/admin/templates/admin/filter.html:2 #, python-format -msgid "The %(name)s \"%(obj)s\" was changed successfully." -msgstr "S'ha modificat amb èxist el/la %(name)s \"%(obj)s." +msgid " By %(filter_title)s " +msgstr "Per %(filter_title)s " -#: contrib/admin/views/main.py:353 -#, python-format +#: contrib/admin/templates/admin/auth/user/add_form.html:6 msgid "" -"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." +"First, enter a username and password. Then, you'll be able to edit more user " +"options." msgstr "" -"S'ha agregat amb èxit el/la %(name)s \"%(obj)s\". Pot editar-lo de nou abaix." +"Primer, entri un usuari i una contrasenya. Després podrà editar més opcions " +"del usuari." -#: contrib/admin/views/main.py:391 -#, python-format -msgid "Change %s" -msgstr "Modificar %s" +#: contrib/admin/templates/admin/auth/user/add_form.html:12 +msgid "Username" +msgstr "Usuari" -#: contrib/admin/views/main.py:476 -#, 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/templates/admin/auth/user/add_form.html:18 +#: contrib/admin/templates/admin/auth/user/change_password.html:34 +msgid "Password" +msgstr "Contrasenya" -#: contrib/admin/views/main.py:481 -#, python-format -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/add_form.html:23 +#: contrib/admin/templates/admin/auth/user/change_password.html:39 +msgid "Password (again)" +msgstr "Contrasenya (de nou)" -#: contrib/admin/views/main.py:514 +#: 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ó." + +#: contrib/admin/templates/admin/auth/user/change_password.html:28 #, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "El/la %(name)s \"%(obj)s\".ha estat eliminat amb èxit." +msgid "Enter a new password for the user %(username)s." +msgstr "Introdueixi una contrasenya per l'usuari %(username)s" -#: contrib/admin/views/main.py:517 -msgid "Are you sure?" -msgstr "Està segur?" +#: contrib/admin/templates/widget/date_time.html:3 +msgid "Date:" +msgstr "Data:" -#: contrib/admin/views/main.py:539 -#, python-format -msgid "Change history: %s" -msgstr "Modificar històric: %s" +#: contrib/admin/templates/widget/date_time.html:4 +msgid "Time:" +msgstr "Hora:" -#: contrib/admin/views/main.py:573 -#, python-format -msgid "Select %s" -msgstr "Seleccioni %s" +#: contrib/admin/templates/widget/file.html:2 +msgid "Currently:" +msgstr "Actualment:" -#: contrib/admin/views/main.py:573 -#, python-format -msgid "Select %s to change" -msgstr "Seleccioni %s per modificar" +#: contrib/admin/templates/widget/file.html:3 +msgid "Change:" +msgstr "Modificar:" -#: contrib/admin/views/main.py:768 -msgid "Database error" -msgstr "Error de/en la base de dades" +#: 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/admin/filter.html:2 -#, python-format -msgid " By %(filter_title)s " -msgstr "Per %(filter_title)s " +#: contrib/admin/templates/registration/logged_out.html:10 +msgid "Log in again" +msgstr "Iniciar sessió de nou" -#: contrib/admin/templates/admin/filters.html:4 -msgid "Filter" -msgstr "Filtre" +#: 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/admin/change_form.html:10 -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: 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/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/admin/change_form.html:10 -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: 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/missing_docutils.html:4 -#: contrib/admin/templates/admin_doc/template_detail.html:4 -#: contrib/admin/templates/admin_doc/view_detail.html:4 -#: contrib/admin/templates/admin_doc/view_index.html:5 -#: contrib/admin/templates/admin_doc/index.html:4 -#: contrib/admin/templates/admin_doc/template_tag_index.html:5 -#: contrib/admin/templates/admin_doc/bookmarklets.html:4 -#: contrib/admin/templates/admin_doc/model_index.html:5 -#: contrib/admin/templates/admin_doc/template_filter_index.html:5 -#: contrib/admin/templates/admin_doc/model_detail.html:3 -#: 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/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/admin/change_form.html:13 -#: contrib/admin/templates/admin/change_list.html:6 -#: contrib/admin/templates/admin/500.html:4 -#: contrib/admin/templates/admin/delete_confirmation.html:6 -#: contrib/admin/templates/admin/object_history.html:5 -#: contrib/admin/templates/admin/base.html:30 -#: contrib/admin/templates/admin/invalid_setup.html:4 -#: 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/password_reset_done.html:4 -#: contrib/admin/templates/registration/password_change_form.html:4 -#: contrib/admin/templates/registration/password_change_done.html:4 -#: contrib/admin/templates/registration/logged_out.html:4 -msgid "Home" -msgstr "Inici" +#: 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/templates/admin/change_form.html:15 -#: contrib/admin/templates/admin/index.html:28 -msgid "Add" -msgstr "Afegir" +#: 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/admin/change_form.html:21 -#: contrib/admin/templates/admin/object_history.html:5 -msgid "History" -msgstr "Històric" +#: 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/admin/change_form.html:22 -msgid "View on site" -msgstr "Veure en el lloc" +#: 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/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/registration/password_change_done.html:12 +msgid "Your password was changed." +msgstr "La seva clau ha estat canviada." -#: contrib/admin/templates/admin/change_form.html:50 -msgid "Ordering" -msgstr "Ordre" +#: 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/templates/admin/change_form.html:53 -msgid "Order:" -msgstr "Ordre:" +#: contrib/admin/templates/registration/password_reset_email.html:3 +#, python-format +msgid "for your user account at %(site_name)s" +msgstr "del seu compte d'usuari a %(site_name)s." -#: contrib/admin/templates/admin/change_list.html:12 +#: contrib/admin/templates/registration/password_reset_email.html:5 #, python-format -msgid "Add %(name)s" -msgstr "Afegir %(name)s" +msgid "Your new password is: %(new_password)s" +msgstr "La seva nova contrasenya és: %(new_password)s" -#: contrib/admin/templates/admin/submit_line.html:3 -#: contrib/admin/templates/admin/delete_confirmation.html:9 -msgid "Delete" -msgstr "Eliminar" +#: 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/admin/submit_line.html:4 -msgid "Save as new" -msgstr "Desar com a nou" +#: 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/admin/submit_line.html:5 -msgid "Save and add another" -msgstr "Desar i afegir-ne un de nou" +#: 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/templates/admin/submit_line.html:6 -msgid "Save and continue editing" -msgstr "Desar i continuar editant" +#: 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/templates/admin/submit_line.html:7 -msgid "Save" -msgstr "Desar" +#: 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/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/registration/password_reset_form.html:16 +msgid "E-mail address:" +msgstr "Adreça de correu electrònic:" -#: 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/registration/password_reset_form.html:16 +msgid "Reset my password" +msgstr "Restablir la meva contrasenya" -#: contrib/admin/templates/admin/pagination.html:10 -msgid "Show all" -msgstr "Mostrar tots" +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +msgid "Bookmarklets" +msgstr "'Bookmarklets'" -#: contrib/admin/templates/admin/500.html:4 -msgid "Server error" -msgstr "Error del servidor" +#: contrib/admin/templates/admin_doc/bookmarklets.html:5 +msgid "Documentation bookmarklets" +msgstr "'Bookmarklets' de documentació" -#: contrib/admin/templates/admin/500.html:6 -msgid "Server error (500)" -msgstr "Error del servidor (500)" +#: contrib/admin/templates/admin_doc/bookmarklets.html:9 +msgid "" +"\n" +"

To install bookmarklets, drag the link to your bookmarks\n" +"toolbar, or right-click the link and add it to your bookmarks. Now you can\n" +"select the bookmarklet from any page in the site. Note that some of these\n" +"bookmarklets require you to be viewing the site from a computer designated\n" +"as \"internal\" (talk to your system administrator if you aren't sure if\n" +"your computer is \"internal\").

\n" +msgstr "" +"\n" +"

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).

\n" -#: contrib/admin/templates/admin/500.html:9 -msgid "Server Error (500)" -msgstr "Error del servidor (500)" +#: contrib/admin/templates/admin_doc/bookmarklets.html:19 +msgid "Documentation for this page" +msgstr "Documentació d'aquesta pàgina" -#: contrib/admin/templates/admin/500.html:10 +#: contrib/admin/templates/admin_doc/bookmarklets.html:20 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." +"Jumps you from any page to the documentation for the view that generates " +"that page." 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." +"El porta des de qualsevol pàgina de la documentació a la vista que la genera." -#: contrib/admin/templates/admin/base_site.html:4 -msgid "Django site admin" -msgstr "Lloc administratiu de Django" +#: contrib/admin/templates/admin_doc/bookmarklets.html:22 +msgid "Show object ID" +msgstr "Mostra el ID de l'objecte" -#: contrib/admin/templates/admin/base_site.html:7 -msgid "Django administration" -msgstr "Adminsitració de Django" +#: 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/search_form.html:8 -msgid "Go" -msgstr "Cercar" +#: contrib/admin/templates/admin_doc/bookmarklets.html:25 +msgid "Edit this object (current window)" +msgstr "Editar aquest objecte (finestra actual)" -#: 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/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/search_form.html:10 -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s en total" +#: contrib/admin/templates/admin_doc/bookmarklets.html:28 +msgid "Edit this object (new window)" +msgstr "Editar aquest objecte (nova finestra)" -#: contrib/admin/templates/admin/index.html:17 -#, python-format -msgid "Models available in the %(name)s application." -msgstr "Models disponibles en la aplicació %(name)s." +#: 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/admin/index.html:18 +#: contrib/admin/views/auth.py:19 contrib/admin/views/main.py:257 #, python-format -msgid "%(name)s" -msgstr "%(name)s" +msgid "The %(name)s \"%(obj)s\" was added successfully." +msgstr "El/la %(name)s \"%(obj)s\".ha estat agregat/da amb èxit." -#: contrib/admin/templates/admin/index.html:34 -msgid "Change" -msgstr "Modificar" +#: 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 "Pot editar-lo de nou abaix." -#: 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/views/auth.py:30 +msgid "Add user" +msgstr "Agregar usuari" -#: contrib/admin/templates/admin/index.html:52 -msgid "Recent Actions" -msgstr "Accions recents" +#: contrib/admin/views/auth.py:57 +msgid "Password changed successfully." +msgstr "Canvi de clau exitós" -#: contrib/admin/templates/admin/index.html:53 -msgid "My Actions" -msgstr "Les meves accions" +#: contrib/admin/views/auth.py:64 +#, python-format +msgid "Change password: %s" +msgstr "Canviar clau: %s" -#: contrib/admin/templates/admin/index.html:57 -msgid "None available" -msgstr "Cap disponible" +#: contrib/admin/views/main.py:223 +msgid "Site administration" +msgstr "Lloc administratiu" -#: contrib/admin/templates/admin/delete_confirmation.html:14 +#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356 #, 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 "You may add another %s below." +msgstr "Pot agregar un altre %s abaix." -#: contrib/admin/templates/admin/delete_confirmation.html:21 +#: contrib/admin/views/main.py:289 #, 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:" +msgid "Add %s" +msgstr "Agregar %s" -#: contrib/admin/templates/admin/delete_confirmation.html:26 -msgid "Yes, I'm sure" -msgstr "Si, estic segur" +#: contrib/admin/views/main.py:335 +#, python-format +msgid "Added %s." +msgstr "Agregat %s." -#: contrib/admin/templates/admin/object_history.html:18 -msgid "Date/time" -msgstr "Data/hora" +#: contrib/admin/views/main.py:335 contrib/admin/views/main.py:337 +#: contrib/admin/views/main.py:339 db/models/manipulators.py:308 +msgid "and" +msgstr "i" -#: contrib/admin/templates/admin/object_history.html:19 -msgid "User" -msgstr "Usuari" +#: contrib/admin/views/main.py:337 +#, python-format +msgid "Changed %s." +msgstr "Modificat %s." -#: contrib/admin/templates/admin/object_history.html:20 -msgid "Action" -msgstr "Acció" +#: contrib/admin/views/main.py:339 +#, python-format +msgid "Deleted %s." +msgstr "Eliminat %s." -#: contrib/admin/templates/admin/object_history.html:26 -msgid "DATE_WITH_TIME_FULL" -msgstr "F j, Y, H:i " +#: contrib/admin/views/main.py:342 +msgid "No fields changed." +msgstr "Cap camp canviat." -#: contrib/admin/templates/admin/object_history.html:36 +#: contrib/admin/views/main.py:345 +#, 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:353 +#, python-format msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." +"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." msgstr "" -"Aquest objecte no te historial de canvis. Probablement no va ser afegit " -"utilitzant aquest lloc administratiu." +"S'ha agregat amb èxit el/la %(name)s \"%(obj)s\". Pot editar-lo de nou abaix." -#: contrib/admin/templates/admin/base.html:25 -msgid "Welcome," -msgstr "Benvingut," +#: contrib/admin/views/main.py:391 +#, python-format +msgid "Change %s" +msgstr "Modificar %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." +#: contrib/admin/views/main.py:476 +#, 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/main.py:481 +#, python-format +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:514 #, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Introdueixi una contrasenya per l'usuari %(username)s" +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "El/la %(name)s \"%(obj)s\".ha estat eliminat amb èxit." -#: contrib/admin/templates/admin/auth/user/change_password.html:34 -#: contrib/admin/templates/admin/auth/user/add_form.html:18 -msgid "Password" -msgstr "Contrasenya" +#: contrib/admin/views/main.py:517 +msgid "Are you sure?" +msgstr "Està segur?" -#: contrib/admin/templates/admin/auth/user/change_password.html:39 -#: contrib/admin/templates/admin/auth/user/add_form.html:23 -msgid "Password (again)" -msgstr "Contrasenya (de nou)" +#: contrib/admin/views/main.py:539 +#, python-format +msgid "Change history: %s" +msgstr "Modificar històric: %s" -#: 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 "Introdueixi la mateixa contrasenya que a sobre, per a verificació." +#: contrib/admin/views/main.py:573 +#, python-format +msgid "Select %s" +msgstr "Seleccioni %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 "" -"Primer, entri un usuari i una contrasenya. Després podrà editar més opcions " -"del usuari." +#: contrib/admin/views/main.py:573 +#, python-format +msgid "Select %s to change" +msgstr "Seleccioni %s per modificar" -#: contrib/admin/templates/admin/auth/user/add_form.html:12 -msgid "Username" -msgstr "Usuari" +#: contrib/admin/views/main.py:768 +msgid "Database error" +msgstr "Error de/en la base de dades" -#: contrib/admin/templates/admin_doc/bookmarklets.html:3 -msgid "Bookmarklets" -msgstr "'Bookmarklets'" +#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48 +#: contrib/admin/views/doc.py:50 +msgid "tag:" +msgstr "etiqueta:" -#: contrib/admin/templates/admin_doc/bookmarklets.html:5 -msgid "Documentation bookmarklets" -msgstr "'Bookmarklets' de documentació" +#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79 +#: contrib/admin/views/doc.py:81 +msgid "filter:" +msgstr "filtre:" -#: contrib/admin/templates/admin_doc/bookmarklets.html:9 -msgid "" -"\n" -"

To install bookmarklets, drag the link to your bookmarks\n" -"toolbar, or right-click the link and add it to your bookmarks. Now you can\n" -"select the bookmarklet from any page in the site. Note that some of these\n" -"bookmarklets require you to be viewing the site from a computer designated\n" -"as \"internal\" (talk to your system administrator if you aren't sure if\n" -"your computer is \"internal\").

\n" -msgstr "" -"\n" -"

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).

\n" +#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137 +#: contrib/admin/views/doc.py:139 +msgid "view:" +msgstr "vista:" -#: contrib/admin/templates/admin_doc/bookmarklets.html:19 -msgid "Documentation for this page" -msgstr "Documentació d'aquesta pàgina" +#: contrib/admin/views/doc.py:164 +#, python-format +msgid "App %r not found" +msgstr "La aplicació %r no s'ha pogut trobar" -#: 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/views/doc.py:171 +#, python-format +msgid "Model %(name)r not found in app %(label)r" +msgstr "El model %(name)r no s'ha trobat en la aplicació %(label)r" -#: contrib/admin/templates/admin_doc/bookmarklets.html:22 -msgid "Show object ID" -msgstr "Mostra el ID de l'objecte" +#: contrib/admin/views/doc.py:183 +#, python-format +msgid "the related `%(label)s.%(type)s` object" +msgstr "el objecte relacionat `%(label)s.%(type)s`" -#: 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/views/doc.py:183 contrib/admin/views/doc.py:205 +#: contrib/admin/views/doc.py:219 contrib/admin/views/doc.py:224 +msgid "model:" +msgstr "model:" -#: contrib/admin/templates/admin_doc/bookmarklets.html:25 -msgid "Edit this object (current window)" -msgstr "Editar aquest objecte (finestra actual)" +#: contrib/admin/views/doc.py:214 +#, python-format +msgid "related `%(label)s.%(name)s` objects" +msgstr "objectes relacionats `%(label)s.%(name)s`" -#: 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/views/doc.py:219 +#, python-format +msgid "all %s" +msgstr "tots %s" -#: contrib/admin/templates/admin_doc/bookmarklets.html:28 -msgid "Edit this object (new window)" -msgstr "Editar aquest objecte (nova finestra)" +#: contrib/admin/views/doc.py:224 +#, python-format +msgid "number of %s" +msgstr "nombre de %s" -#: 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/views/doc.py:229 +#, python-format +msgid "Fields on %s objects" +msgstr "Camps en objectes %s" -#: contrib/admin/templates/widget/date_time.html:3 -msgid "Date:" -msgstr "Data:" +#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:302 +#: contrib/admin/views/doc.py:304 contrib/admin/views/doc.py:310 +#: contrib/admin/views/doc.py:311 contrib/admin/views/doc.py:313 +msgid "Integer" +msgstr "Enter" -#: contrib/admin/templates/widget/date_time.html:4 -msgid "Time:" -msgstr "Hora:" +#: contrib/admin/views/doc.py:292 +msgid "Boolean (Either True or False)" +msgstr "Booleà (Verdader o Fals)" -#: contrib/admin/templates/widget/file.html:2 -msgid "Currently:" -msgstr "Actualment:" +#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:312 +#, python-format +msgid "String (up to %(maxlength)s)" +msgstr "Cadena (fins a %(maxlength)s)" -#: contrib/admin/templates/widget/file.html:3 -msgid "Change:" -msgstr "Modificar:" +#: contrib/admin/views/doc.py:294 +msgid "Comma-separated integers" +msgstr "Enters separats per comes" -#: 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/doc.py:295 +msgid "Date (without time)" +msgstr "Data (sense hora)" -#: contrib/admin/templates/registration/password_reset_email.html:3 -#, python-format -msgid "for your user account at %(site_name)s" -msgstr "del seu compte d'usuari a %(site_name)s." +#: contrib/admin/views/doc.py:296 +msgid "Date (with time)" +msgstr "Data (amb hora)" -#: 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/views/doc.py:297 +msgid "Decimal number" +msgstr "Número decimal" -#: 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/views/doc.py:298 +msgid "E-mail address" +msgstr "Adreça de correu electrònic" -#: 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/views/doc.py:299 contrib/admin/views/doc.py:300 +#: contrib/admin/views/doc.py:303 +msgid "File path" +msgstr "Ruta del fitxer" -#: 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/views/doc.py:301 +msgid "Floating point number" +msgstr "Número amb punt de coma flotant" -#: 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/views/doc.py:307 +msgid "Boolean (Either True, False or None)" +msgstr "Booleà (Verdader, Fals o 'None' (cap))" -#: 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/views/doc.py:308 +msgid "Relation to parent model" +msgstr "Relació amb el model pare" -#: 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/views/doc.py:309 +msgid "Phone number" +msgstr "Número de telèfon" -#: contrib/admin/templates/registration/password_reset_form.html:16 -msgid "E-mail address:" -msgstr "Adreça de correu electrònic:" +#: contrib/admin/views/doc.py:314 +msgid "Text" +msgstr "Texte" -#: contrib/admin/templates/registration/password_reset_form.html:16 -msgid "Reset my password" -msgstr "Restablir la meva contrasenya" +#: contrib/admin/views/doc.py:315 +msgid "Time" +msgstr "Hora" -#: 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/views/doc.py:316 contrib/flatpages/models.py:7 +msgid "URL" +msgstr "URL" + +#: contrib/admin/views/doc.py:317 +msgid "U.S. state (two uppercase letters)" +msgstr "Estat dels E.U.A. (dos lletres majúscules)" + +#: contrib/admin/views/doc.py:318 +msgid "XML text" +msgstr "Texte XML" -#: contrib/admin/templates/registration/password_reset_done.html:12 +#: contrib/admin/views/doc.py:344 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "%s no sembla ser un objecte 'urlpattern'" + +#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:60 msgid "" -"We've e-mailed a new password to the e-mail address you submitted. You " -"should be receiving it shortly." +"Please enter a correct username and password. Note that both fields are case-" +"sensitive." 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" +"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/registration/password_change_form.html:12 +#: contrib/admin/views/decorators.py:62 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." +"Please log in again, because your session has expired. Don't worry: Your " +"submission has been saved." 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." +"Si us plau, identifiquis de nou doncs la seva sessió ha expirat. No es " +"preocupi, el seu enviament està emmagatzemat." -#: contrib/admin/templates/registration/password_change_form.html:17 -msgid "Old password:" -msgstr "Contrasenya antiga:" +#: 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/registration/password_change_form.html:19 -msgid "New password:" -msgstr "Contrasenya nova:" +#: 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/registration/password_change_form.html:21 -msgid "Confirm password:" -msgstr "Confirmar contrasenya:" +#: 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/registration/password_change_form.html:23 -msgid "Change my password" -msgstr "Canviar la meva clau:" +#: contrib/sessions/models.py:68 +msgid "session key" +msgstr "clau de la sessió" -#: 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/sessions/models.py:69 +msgid "session data" +msgstr "dades de la sessió" -#: contrib/admin/templates/registration/password_change_done.html:12 -msgid "Your password was changed." -msgstr "La seva clau ha estat canviada." +#: contrib/sessions/models.py:70 +msgid "expire date" +msgstr "data de caducitat" -#: 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/sessions/models.py:74 +msgid "session" +msgstr "sessió" -#: contrib/admin/templates/registration/logged_out.html:10 -msgid "Log in again" -msgstr "Iniciar sessió de nou" +#: contrib/sessions/models.py:75 +msgid "sessions" +msgstr "sessions" -#: 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 "Introdueixi un codi zip en el format XXXXX." +#: contrib/humanize/templatetags/humanize.py:17 +msgid "th" +msgstr "rt" -#: 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/humanize/templatetags/humanize.py:17 +msgid "st" +msgstr "r" -#: contrib/localflavor/jp/forms.py:21 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Introdueixi un codi postal en el format XXXXXXX o XX-XXXX." +#: contrib/humanize/templatetags/humanize.py:17 +msgid "nd" +msgstr "n" -#: contrib/localflavor/jp/jp_prefectures.py:4 -msgid "Hokkaido" -msgstr "Hokkaido" +#: contrib/humanize/templatetags/humanize.py:17 +msgid "rd" +msgstr "r" -#: contrib/localflavor/jp/jp_prefectures.py:5 -msgid "Aomori" -msgstr "Aomori" +#: contrib/humanize/templatetags/humanize.py:47 +#, python-format +msgid "%(value).1f million" +msgid_plural "%(value).1f million" +msgstr[0] "%(value).1f milió" +msgstr[1] "%(value).1f milions" -#: contrib/localflavor/jp/jp_prefectures.py:6 -msgid "Iwate" -msgstr "Iwate" +#: contrib/humanize/templatetags/humanize.py:50 +#, python-format +msgid "%(value).1f billion" +msgid_plural "%(value).1f billion" +msgstr[0] "%(value).1f bilió" +msgstr[1] "%(value).1f bilions" -#: contrib/localflavor/jp/jp_prefectures.py:7 -msgid "Miyagi" -msgstr "Miyagi" +#: contrib/humanize/templatetags/humanize.py:53 +#, python-format +msgid "%(value).1f trillion" +msgid_plural "%(value).1f trillion" +msgstr[0] "%(value).1f trilió" +msgstr[1] "%(value).1f trilions" -#: contrib/localflavor/jp/jp_prefectures.py:8 -msgid "Akita" -msgstr "Akita" +#: contrib/humanize/templatetags/humanize.py:68 +msgid "one" +msgstr "un" -#: contrib/localflavor/jp/jp_prefectures.py:9 -msgid "Yamagata" -msgstr "Yamagata" +#: contrib/humanize/templatetags/humanize.py:68 +msgid "two" +msgstr "dos" -#: contrib/localflavor/jp/jp_prefectures.py:10 -msgid "Fukushima" -msgstr "Fukushima" +#: contrib/humanize/templatetags/humanize.py:68 +msgid "three" +msgstr "tres" -#: contrib/localflavor/jp/jp_prefectures.py:11 -msgid "Ibaraki" -msgstr "Ibaraki" +#: contrib/humanize/templatetags/humanize.py:68 +msgid "four" +msgstr "cuatre" -#: contrib/localflavor/jp/jp_prefectures.py:12 -msgid "Tochigi" -msgstr "Tochigi" +#: contrib/humanize/templatetags/humanize.py:68 +msgid "five" +msgstr "cinc" -#: contrib/localflavor/jp/jp_prefectures.py:13 -msgid "Gunma" -msgstr "Gunma" +#: contrib/humanize/templatetags/humanize.py:68 +msgid "six" +msgstr "sis" -#: contrib/localflavor/jp/jp_prefectures.py:14 -msgid "Saitama" -msgstr "Saitama" +#: contrib/humanize/templatetags/humanize.py:68 +msgid "seven" +msgstr "set" -#: contrib/localflavor/jp/jp_prefectures.py:15 -msgid "Chiba" -msgstr "Chiba" +#: contrib/humanize/templatetags/humanize.py:68 +msgid "eight" +msgstr "vuit" -#: contrib/localflavor/jp/jp_prefectures.py:16 -msgid "Tokyo" -msgstr "Tokyo" +#: contrib/humanize/templatetags/humanize.py:68 +msgid "nine" +msgstr "nou" -#: contrib/localflavor/jp/jp_prefectures.py:17 -msgid "Kanagawa" -msgstr "Kanagawa" +#: contrib/redirects/models.py:7 +msgid "redirect from" +msgstr "redreçar des de" -#: contrib/localflavor/jp/jp_prefectures.py:18 -msgid "Yamanashi" -msgstr "Yamanashi" +#: 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/jp/jp_prefectures.py:19 -msgid "Nagano" -msgstr "Nagano" +#: contrib/redirects/models.py:9 +msgid "redirect to" +msgstr "redreçar a" -#: contrib/localflavor/jp/jp_prefectures.py:20 -msgid "Niigata" -msgstr "Niigata" +#: 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/localflavor/jp/jp_prefectures.py:21 -msgid "Toyama" -msgstr "Toyama" +#: contrib/redirects/models.py:13 +msgid "redirect" +msgstr "redreçament" -#: contrib/localflavor/jp/jp_prefectures.py:22 -msgid "Ishikawa" -msgstr "Ishikawa" +#: contrib/redirects/models.py:14 +msgid "redirects" +msgstr "redreçaments" -#: contrib/localflavor/jp/jp_prefectures.py:23 -msgid "Fukui" -msgstr "Fukui" +#: 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/localflavor/jp/jp_prefectures.py:24 -msgid "Gifu" -msgstr "Gifu" +#: contrib/flatpages/models.py:9 +msgid "title" +msgstr "tìtol" -#: contrib/localflavor/jp/jp_prefectures.py:25 -msgid "Shizuoka" -msgstr "Shizuoka" +#: contrib/flatpages/models.py:10 +msgid "content" +msgstr "contingut" -#: contrib/localflavor/jp/jp_prefectures.py:26 -msgid "Aichi" -msgstr "Aichi" +#: contrib/flatpages/models.py:11 +msgid "enable comments" +msgstr "habilitar comentaris" -#: contrib/localflavor/jp/jp_prefectures.py:27 -msgid "Mie" -msgstr "Mie" +#: contrib/flatpages/models.py:12 +msgid "template name" +msgstr "nom de la plantilla" -#: contrib/localflavor/jp/jp_prefectures.py:28 -msgid "Shiga" -msgstr "Shiga" +#: 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/localflavor/jp/jp_prefectures.py:29 -msgid "Kyoto" -msgstr "Kyoto" +#: contrib/flatpages/models.py:14 +msgid "registration required" +msgstr "s'ha de estar registrat" -#: contrib/localflavor/jp/jp_prefectures.py:30 -msgid "Osaka" -msgstr "Osaka" +#: 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/localflavor/jp/jp_prefectures.py:31 -msgid "Hyogo" -msgstr "Hyogo" +#: contrib/flatpages/models.py:18 +msgid "flat page" +msgstr "pàgina estàtica" -#: contrib/localflavor/jp/jp_prefectures.py:32 -msgid "Nara" -msgstr "Nara" +#: contrib/flatpages/models.py:19 +msgid "flat pages" +msgstr "pàgines estàtiques" -#: contrib/localflavor/jp/jp_prefectures.py:33 -msgid "Wakayama" -msgstr "Wakayama" +#: contrib/sites/models.py:10 +msgid "domain name" +msgstr "nom del domini" -#: contrib/localflavor/jp/jp_prefectures.py:34 -msgid "Tottori" -msgstr "Tottori" +#: contrib/sites/models.py:11 +msgid "display name" +msgstr "nom per mostrar" -#: contrib/localflavor/jp/jp_prefectures.py:35 -msgid "Shimane" -msgstr "Shimane" +#: contrib/sites/models.py:15 +msgid "site" +msgstr "lloc" -#: contrib/localflavor/jp/jp_prefectures.py:36 -msgid "Okayama" -msgstr "Okayama" +#: contrib/sites/models.py:16 +msgid "sites" +msgstr "llocs" -#: contrib/localflavor/jp/jp_prefectures.py:37 -msgid "Hiroshima" -msgstr "Hiroshima" +#: contrib/auth/views.py:40 +msgid "Logged out" +msgstr "Sessió finalitzada" -#: contrib/localflavor/jp/jp_prefectures.py:38 -msgid "Yamaguchi" -msgstr "Yamaguchi" +#: contrib/auth/models.py:44 contrib/auth/models.py:64 +msgid "name" +msgstr "nom" -#: contrib/localflavor/jp/jp_prefectures.py:39 -msgid "Tokushima" -msgstr "Tokushima" +#: contrib/auth/models.py:46 +msgid "codename" +msgstr "nom en clau" -#: contrib/localflavor/jp/jp_prefectures.py:40 -msgid "Kagawa" -msgstr "Kagawa" +#: contrib/auth/models.py:49 +msgid "permission" +msgstr "permís" -#: contrib/localflavor/jp/jp_prefectures.py:41 -msgid "Ehime" -msgstr "Ehime" +#: contrib/auth/models.py:50 contrib/auth/models.py:65 +msgid "permissions" +msgstr "permissos" -#: contrib/localflavor/jp/jp_prefectures.py:42 -msgid "Kochi" -msgstr "Kochi" +#: contrib/auth/models.py:68 +msgid "group" +msgstr "grup" -#: contrib/localflavor/jp/jp_prefectures.py:43 -msgid "Fukuoka" -msgstr "Fukuoka" +#: contrib/auth/models.py:69 contrib/auth/models.py:109 +msgid "groups" +msgstr "grups" -#: contrib/localflavor/jp/jp_prefectures.py:44 -msgid "Saga" -msgstr "Saga" +#: contrib/auth/models.py:99 +msgid "username" +msgstr "nom d'usuari" -#: contrib/localflavor/jp/jp_prefectures.py:45 -msgid "Nagasaki" -msgstr "Nagasaki" +#: contrib/auth/models.py:99 +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/localflavor/jp/jp_prefectures.py:46 -msgid "Kumamoto" -msgstr "Kumamoto" +#: contrib/auth/models.py:100 +msgid "first name" +msgstr "nom propi" -#: contrib/localflavor/jp/jp_prefectures.py:47 -msgid "Oita" -msgstr "Oita" +#: contrib/auth/models.py:101 +msgid "last name" +msgstr "cognoms" -#: contrib/localflavor/jp/jp_prefectures.py:48 -msgid "Miyazaki" -msgstr "Miyazaki" +#: contrib/auth/models.py:102 +msgid "e-mail address" +msgstr "adreça de correu electrònic" -#: contrib/localflavor/jp/jp_prefectures.py:49 -msgid "Kagoshima" -msgstr "Kagoshima" +#: contrib/auth/models.py:103 +msgid "password" +msgstr "contrasenya" -#: contrib/localflavor/jp/jp_prefectures.py:50 -msgid "Okinawa" -msgstr "Okinawa" +#: contrib/auth/models.py:103 +msgid "" +"Use '[algo]$[salt]$[hexdigest]' or use the change " +"password form." +msgstr "" +"Utilitzi '[algo]$[salt]$[hexdigest]' o el formulari de " +"canvi de contrasenya." -#: contrib/localflavor/it/forms.py:16 -msgid "Enter a valid zip code." -msgstr "Introdueixi un codi zip vàlid." +#: contrib/auth/models.py:104 +msgid "staff status" +msgstr "és membre del personal" -#: contrib/localflavor/it/forms.py:41 -msgid "Enter a valid Social Security number." -msgstr "Introdueixi un número valid de la Seguretat Social." +#: contrib/auth/models.py:104 +msgid "Designates whether the user can log into this admin site." +msgstr "Indica si l'usuari pot entrar en el lloc administratiu." -#: contrib/localflavor/it/forms.py:68 -msgid "Enter a valid VAT number." -msgstr "Introdueixi un número de IVA (VAT) vàlid." +#: contrib/auth/models.py:105 +msgid "active" +msgstr "actiu" -#: contrib/localflavor/de/forms.py:60 +#: contrib/auth/models.py:105 msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." +"Designates whether this user can log into the Django admin. Unselect this " +"instead of deleting accounts." 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" +"Designa si aquest usuari pot iniciar sessió a la interfície administrativa " +"Djano. Deselecciona-ho enlloc de esborrar comptes d'usuari." -#: contrib/localflavor/de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavaria" +#: contrib/auth/models.py:106 +msgid "superuser status" +msgstr "estat de superusuari" -#: contrib/localflavor/de/de_states.py:7 -msgid "Berlin" -msgstr "Berlin" +#: contrib/auth/models.py:106 +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/localflavor/de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" +#: contrib/auth/models.py:107 +msgid "last login" +msgstr "últim inici de sessió" -#: contrib/localflavor/de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" +#: contrib/auth/models.py:108 +msgid "date joined" +msgstr "data de creació" -#: contrib/localflavor/de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" +#: 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 "" +"Junt amb els permissos asignats manualment, aquest usuari tindrà, també, els " +"permissos dels grups dels que sigui membre." -#: contrib/localflavor/de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" +#: contrib/auth/models.py:111 +msgid "user permissions" +msgstr "permissos de l'usuari" -#: contrib/localflavor/de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" +#: contrib/auth/models.py:115 +msgid "user" +msgstr "usuari" -#: contrib/localflavor/de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Lower Saxony" +#: contrib/auth/models.py:116 +msgid "users" +msgstr "usuaris" -#: contrib/localflavor/de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "North Rhine-Westphalia" +#: contrib/auth/models.py:122 +msgid "Personal info" +msgstr "Informaciò personal" -#: contrib/localflavor/de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" +#: contrib/auth/models.py:123 +msgid "Permissions" +msgstr "permissos" -#: contrib/localflavor/de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" +#: contrib/auth/models.py:124 +msgid "Important dates" +msgstr "Dates importants" -#: contrib/localflavor/de/de_states.py:17 -msgid "Saxony" -msgstr "Saxony" +#: contrib/auth/models.py:125 +msgid "Groups" +msgstr "Grups" -#: contrib/localflavor/de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" +#: contrib/auth/models.py:269 +msgid "message" +msgstr "missatge" -#: contrib/localflavor/de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" +#: contrib/auth/models.py:282 +msgid "AnonymousUser" +msgstr "AnonymousUser" -#: contrib/localflavor/de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" +#: 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/localflavor/us/forms.py:18 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Introdueixi un codi zip en el format XXXXX o XXXXX-XXXX." +#: contrib/auth/forms.py:25 +msgid "A user with that username already exists." +msgstr "Ja existeix un usuari amb aquest nom." -#: contrib/localflavor/us/forms.py:51 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." +#: contrib/auth/forms.py:53 +msgid "" +"Your Web browser doesn't appear to have cookies enabled. Cookies are " +"required for logging in." msgstr "" -"Introdueixi un número vàlid de la Seguretat Social dels E.U.A. en el format " -"XXX-XX-XXXX." +"El seu navegador no sembla tenir les 'cookies' (galetes) activades. Aquestes " +"són necessàries per iniciar la sessió." -#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:15 -msgid "Enter a zip code in the format XXXX." -msgstr "Introdueixi un codi zip en el format XXXX." +#: contrib/auth/forms.py:62 +msgid "This account is inactive." +msgstr "Aquest compte està inactiu" -#: contrib/localflavor/ch/forms.py:90 +#: contrib/auth/forms.py:85 msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." +"That e-mail address doesn't have an associated user account. Are you sure " +"you've registered?" msgstr "" -"Introdueixi un número de identificació o de passaport Suïssos en els formats " -"1234567890 o X1234567<0." +"Aquesta adreça de correu no té associada cap compte d'usuari. Està segur de " +"que s'ha registrat?" + +#: contrib/auth/forms.py:117 +msgid "The two 'new password' fields didn't match." +msgstr "Els dos camps de nova contrasenya no coincideixen." + +#: 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/contenttypes/models.py:36 +msgid "python model class name" +msgstr "nom de la classe del model en python" + +#: contrib/contenttypes/models.py:39 +msgid "content type" +msgstr "tipus de contingut" + +#: contrib/contenttypes/models.py:40 +msgid "content types" +msgstr "tipus de continguts" #: contrib/localflavor/ch/ch_states.py:5 msgid "Aargau" @@ -1935,47 +1994,58 @@ msgstr "Zug" msgid "Zurich" msgstr "Zurich" -#: contrib/localflavor/au/forms.py:18 -msgid "Enter a 4 digit post code." -msgstr "Introdueixi un codi postal de 4 dígits." +#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:15 +msgid "Enter a zip code in the format XXXX." +msgstr "Introdueixi un codi zip en el format XXXX." -#: contrib/localflavor/is_/forms.py:16 +#: contrib/localflavor/ch/forms.py:90 msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." +"Enter a valid Swiss identity or passport card number in X1234567<0 or " +"1234567890 format." msgstr "" -"Introdueixi un número de identificació d'Islàndia. El format és XXXXXX-XXXX." +"Introdueixi un número de identificació o de passaport Suïssos en els formats " +"1234567890 o X1234567<0." -#: contrib/localflavor/is_/forms.py:30 -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." -#: contrib/localflavor/br/forms.py:18 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Introdueixi un codi zip en el format XXXXX-XXX." +#: contrib/localflavor/it/forms.py:41 +msgid "Enter a valid Social Security number." +msgstr "Introdueixi un número valid de la Seguretat Social." -#: contrib/localflavor/br/forms.py:30 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "El número de telèfon ha de ser en el format XX-XXXX-XXXX." +#: contrib/localflavor/it/forms.py:68 +msgid "Enter a valid VAT number." +msgstr "Introdueixi un número de IVA (VAT) vàlid." -#: contrib/localflavor/br/forms.py:72 -msgid "This field requires only numbers." -msgstr "Aquest camps requereix només números." +#: contrib/localflavor/uk/forms.py:18 +msgid "Enter a postcode. A space is required between the two postcode parts." +msgstr "" +"Introdueixi un codi postal. És necessari un espai entre les dues parts del " +"codi postal." -#: contrib/localflavor/br/forms.py:74 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Aquest camp requereix com a màxim 11 dígits o 14 caracters." +#: contrib/localflavor/us/forms.py:18 +msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." +msgstr "Introdueixi un codi zip en el format XXXXX o XXXXX-XXXX." -#: contrib/localflavor/br/forms.py:84 -msgid "Invalid CPF number." -msgstr "Número CPF invàlid." +#: contrib/localflavor/us/forms.py:51 +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/br/forms.py:106 -msgid "This field requires at least 14 digits" -msgstr "Aquest camp requereix almenys 14 dígits." +#: 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 "Introdueixi un codi zip en el format XXXXX." -#: contrib/localflavor/br/forms.py:116 -msgid "Invalid CNPJ number." -msgstr "Número CNPJ invàlid." +#: 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/no/forms.py:36 +msgid "Enter a valid Norwegian social security number." +msgstr "Introdueixi un número de la seguretat social Noruega vàlid." #: contrib/localflavor/cl/forms.py:21 msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X." @@ -1985,1014 +2055,980 @@ 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/no/forms.py:36 -msgid "Enter a valid Norwegian social security number." -msgstr "Introdueixi un número de la seguretat social Noruega vàlid." +#: contrib/localflavor/de/de_states.py:5 +msgid "Baden-Wuerttemberg" +msgstr "Baden-Wuerttemberg" -#: contrib/localflavor/uk/forms.py:18 -msgid "Enter a postcode. A space is required between the two postcode parts." -msgstr "" -"Introdueixi un codi postal. És necessari un espai entre les dues parts del " -"codi postal." +#: contrib/localflavor/de/de_states.py:6 +msgid "Bavaria" +msgstr "Bavaria" -#: contrib/sessions/models.py:68 -msgid "session key" -msgstr "clau de la sessió" +#: contrib/localflavor/de/de_states.py:7 +msgid "Berlin" +msgstr "Berlin" -#: contrib/sessions/models.py:69 -msgid "session data" -msgstr "dades de la sessió" +#: contrib/localflavor/de/de_states.py:8 +msgid "Brandenburg" +msgstr "Brandenburg" -#: contrib/sessions/models.py:70 -msgid "expire date" -msgstr "data de caducitat" +#: contrib/localflavor/de/de_states.py:9 +msgid "Bremen" +msgstr "Bremen" -#: contrib/sessions/models.py:74 -msgid "session" -msgstr "sessió" +#: contrib/localflavor/de/de_states.py:10 +msgid "Hamburg" +msgstr "Hamburg" -#: contrib/sessions/models.py:75 -msgid "sessions" -msgstr "sessions" +#: contrib/localflavor/de/de_states.py:11 +msgid "Hessen" +msgstr "Hessen" -#: 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/localflavor/de/de_states.py:12 +msgid "Mecklenburg-Western Pomerania" +msgstr "Mecklenburg-Western Pomerania" -#: contrib/flatpages/models.py:9 -msgid "title" -msgstr "tìtol" +#: contrib/localflavor/de/de_states.py:13 +msgid "Lower Saxony" +msgstr "Lower Saxony" -#: contrib/flatpages/models.py:10 -msgid "content" -msgstr "contingut" +#: contrib/localflavor/de/de_states.py:14 +msgid "North Rhine-Westphalia" +msgstr "North Rhine-Westphalia" -#: contrib/flatpages/models.py:11 -msgid "enable comments" -msgstr "habilitar comentaris" +#: contrib/localflavor/de/de_states.py:15 +msgid "Rhineland-Palatinate" +msgstr "Rhineland-Palatinate" -#: contrib/flatpages/models.py:12 -msgid "template name" -msgstr "nom de la plantilla" +#: contrib/localflavor/de/de_states.py:16 +msgid "Saarland" +msgstr "Saarland" -#: contrib/flatpages/models.py:13 -msgid "" -"Example: 'flatpages/contact_page.html'. If this isn't provided, the system " -"will use 'flatpages/default.html'." +#: 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:60 +msgid "" +"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " +"format." msgstr "" -"Exemple: 'flatpages/contact_page.html'. Si no el proporciona, el sistema " -"utilitzarà 'flatpages/defaula.htmlt'." +"Introdueixi un número de tarjeta d'identificació alemany vàlid en el format " +"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." -#: contrib/flatpages/models.py:14 -msgid "registration required" -msgstr "s'ha de estar registrat" +#: contrib/localflavor/au/forms.py:18 +msgid "Enter a 4 digit post code." +msgstr "Introdueixi un codi postal de 4 dígits." -#: 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/localflavor/jp/jp_prefectures.py:4 +msgid "Hokkaido" +msgstr "Hokkaido" -#: contrib/flatpages/models.py:18 -msgid "flat page" -msgstr "pàgina estàtica" +#: contrib/localflavor/jp/jp_prefectures.py:5 +msgid "Aomori" +msgstr "Aomori" -#: contrib/flatpages/models.py:19 -msgid "flat pages" -msgstr "pàgines estàtiques" +#: contrib/localflavor/jp/jp_prefectures.py:6 +msgid "Iwate" +msgstr "Iwate" -#: contrib/humanize/templatetags/humanize.py:17 -msgid "th" -msgstr "" +#: contrib/localflavor/jp/jp_prefectures.py:7 +msgid "Miyagi" +msgstr "Miyagi" -#: contrib/humanize/templatetags/humanize.py:17 -msgid "st" -msgstr "r" +#: contrib/localflavor/jp/jp_prefectures.py:8 +msgid "Akita" +msgstr "Akita" -#: contrib/humanize/templatetags/humanize.py:17 -msgid "nd" -msgstr "n" +#: contrib/localflavor/jp/jp_prefectures.py:9 +msgid "Yamagata" +msgstr "Yamagata" -#: contrib/humanize/templatetags/humanize.py:17 -msgid "rd" -msgstr "r" +#: contrib/localflavor/jp/jp_prefectures.py:10 +msgid "Fukushima" +msgstr "Fukushima" -#: contrib/humanize/templatetags/humanize.py:47 -#, python-format -msgid "%(value).1f million" -msgid_plural "%(value).1f million" -msgstr[0] "%(value).1f milió" -msgstr[1] "%(value).1f milions" +#: contrib/localflavor/jp/jp_prefectures.py:11 +msgid "Ibaraki" +msgstr "Ibaraki" -#: contrib/humanize/templatetags/humanize.py:50 -#, python-format -msgid "%(value).1f billion" -msgid_plural "%(value).1f billion" -msgstr[0] "%(value).1f bilió" -msgstr[1] "%(value).1f bilions" +#: contrib/localflavor/jp/jp_prefectures.py:12 +msgid "Tochigi" +msgstr "Tochigi" -#: contrib/humanize/templatetags/humanize.py:53 -#, python-format -msgid "%(value).1f trillion" -msgid_plural "%(value).1f trillion" -msgstr[0] "%(value).1f trilió" -msgstr[1] "%(value).1f trilions" +#: contrib/localflavor/jp/jp_prefectures.py:13 +msgid "Gunma" +msgstr "Gunma" -#: contrib/humanize/templatetags/humanize.py:68 -msgid "one" -msgstr "un" +#: contrib/localflavor/jp/jp_prefectures.py:14 +msgid "Saitama" +msgstr "Saitama" -#: contrib/humanize/templatetags/humanize.py:68 -msgid "two" -msgstr "dos" +#: contrib/localflavor/jp/jp_prefectures.py:15 +msgid "Chiba" +msgstr "Chiba" -#: contrib/humanize/templatetags/humanize.py:68 -msgid "three" -msgstr "tres" +#: contrib/localflavor/jp/jp_prefectures.py:16 +msgid "Tokyo" +msgstr "Tokyo" -#: contrib/humanize/templatetags/humanize.py:68 -msgid "four" -msgstr "cuatre" +#: contrib/localflavor/jp/jp_prefectures.py:17 +msgid "Kanagawa" +msgstr "Kanagawa" -#: contrib/humanize/templatetags/humanize.py:68 -msgid "five" -msgstr "cinc" +#: contrib/localflavor/jp/jp_prefectures.py:18 +msgid "Yamanashi" +msgstr "Yamanashi" -#: contrib/humanize/templatetags/humanize.py:68 -msgid "six" -msgstr "sis" +#: contrib/localflavor/jp/jp_prefectures.py:19 +msgid "Nagano" +msgstr "Nagano" -#: contrib/humanize/templatetags/humanize.py:68 -msgid "seven" -msgstr "set" +#: contrib/localflavor/jp/jp_prefectures.py:20 +msgid "Niigata" +msgstr "Niigata" -#: contrib/humanize/templatetags/humanize.py:68 -msgid "eight" -msgstr "vuit" +#: contrib/localflavor/jp/jp_prefectures.py:21 +msgid "Toyama" +msgstr "Toyama" -#: contrib/humanize/templatetags/humanize.py:68 -msgid "nine" -msgstr "nou" +#: contrib/localflavor/jp/jp_prefectures.py:22 +msgid "Ishikawa" +msgstr "Ishikawa" -#: contrib/contenttypes/models.py:36 -msgid "python model class name" -msgstr "nom de la classe del model en python" +#: contrib/localflavor/jp/jp_prefectures.py:23 +msgid "Fukui" +msgstr "Fukui" -#: contrib/contenttypes/models.py:39 -msgid "content type" -msgstr "tipus de contingut" +#: contrib/localflavor/jp/jp_prefectures.py:24 +msgid "Gifu" +msgstr "Gifu" -#: contrib/contenttypes/models.py:40 -msgid "content types" -msgstr "tipus de continguts" +#: contrib/localflavor/jp/jp_prefectures.py:25 +msgid "Shizuoka" +msgstr "Shizuoka" -#: contrib/sites/models.py:10 -msgid "domain name" -msgstr "nom del domini" +#: contrib/localflavor/jp/jp_prefectures.py:26 +msgid "Aichi" +msgstr "Aichi" -#: contrib/sites/models.py:11 -msgid "display name" -msgstr "nom per mostrar" +#: contrib/localflavor/jp/jp_prefectures.py:27 +msgid "Mie" +msgstr "Mie" -#: contrib/sites/models.py:15 -msgid "site" -msgstr "lloc" +#: contrib/localflavor/jp/jp_prefectures.py:28 +msgid "Shiga" +msgstr "Shiga" -#: contrib/sites/models.py:16 -msgid "sites" -msgstr "llocs" +#: contrib/localflavor/jp/jp_prefectures.py:29 +msgid "Kyoto" +msgstr "Kyoto" -#: 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/localflavor/jp/jp_prefectures.py:30 +msgid "Osaka" +msgstr "Osaka" -#: contrib/auth/forms.py:25 -msgid "A user with that username already exists." -msgstr "Ja existeix un usuari amb aquest nom." +#: contrib/localflavor/jp/jp_prefectures.py:31 +msgid "Hyogo" +msgstr "Hyogo" -#: 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/localflavor/jp/jp_prefectures.py:32 +msgid "Nara" +msgstr "Nara" -#: contrib/auth/forms.py:62 -msgid "This account is inactive." -msgstr "Aquest compte està inactiu" +#: contrib/localflavor/jp/jp_prefectures.py:33 +msgid "Wakayama" +msgstr "Wakayama" -#: 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/jp/jp_prefectures.py:34 +msgid "Tottori" +msgstr "Tottori" -#: contrib/auth/forms.py:117 -msgid "The two 'new password' fields didn't match." -msgstr "Els dos camps de nova contrasenya no coincideixen." +#: contrib/localflavor/jp/jp_prefectures.py:35 +msgid "Shimane" +msgstr "Shimane" -#: 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/localflavor/jp/jp_prefectures.py:36 +msgid "Okayama" +msgstr "Okayama" -#: contrib/auth/views.py:40 -msgid "Logged out" -msgstr "Sessió finalitzada" +#: contrib/localflavor/jp/jp_prefectures.py:37 +msgid "Hiroshima" +msgstr "Hiroshima" -#: contrib/auth/models.py:44 contrib/auth/models.py:64 -msgid "name" -msgstr "nom" +#: contrib/localflavor/jp/jp_prefectures.py:38 +msgid "Yamaguchi" +msgstr "Yamaguchi" -#: contrib/auth/models.py:46 -msgid "codename" -msgstr "nom en clau" +#: contrib/localflavor/jp/jp_prefectures.py:39 +msgid "Tokushima" +msgstr "Tokushima" -#: contrib/auth/models.py:49 -msgid "permission" -msgstr "permís" +#: contrib/localflavor/jp/jp_prefectures.py:40 +msgid "Kagawa" +msgstr "Kagawa" -#: contrib/auth/models.py:50 contrib/auth/models.py:65 -msgid "permissions" -msgstr "permissos" +#: contrib/localflavor/jp/jp_prefectures.py:41 +msgid "Ehime" +msgstr "Ehime" -#: contrib/auth/models.py:68 -msgid "group" -msgstr "grup" +#: contrib/localflavor/jp/jp_prefectures.py:42 +msgid "Kochi" +msgstr "Kochi" -#: contrib/auth/models.py:69 contrib/auth/models.py:109 -msgid "groups" -msgstr "grups" +#: contrib/localflavor/jp/jp_prefectures.py:43 +msgid "Fukuoka" +msgstr "Fukuoka" -#: contrib/auth/models.py:99 -msgid "username" -msgstr "nom d'usuari" +#: contrib/localflavor/jp/jp_prefectures.py:44 +msgid "Saga" +msgstr "Saga" -#: contrib/auth/models.py:99 -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/localflavor/jp/jp_prefectures.py:45 +msgid "Nagasaki" +msgstr "Nagasaki" -#: contrib/auth/models.py:100 -msgid "first name" -msgstr "nom propi" +#: contrib/localflavor/jp/jp_prefectures.py:46 +msgid "Kumamoto" +msgstr "Kumamoto" -#: contrib/auth/models.py:101 -msgid "last name" -msgstr "cognoms" +#: contrib/localflavor/jp/jp_prefectures.py:47 +msgid "Oita" +msgstr "Oita" -#: contrib/auth/models.py:102 -msgid "e-mail address" -msgstr "adreça de correu electrònic" +#: contrib/localflavor/jp/jp_prefectures.py:48 +msgid "Miyazaki" +msgstr "Miyazaki" -#: contrib/auth/models.py:103 -msgid "password" -msgstr "contrasenya" +#: contrib/localflavor/jp/jp_prefectures.py:49 +msgid "Kagoshima" +msgstr "Kagoshima" -#: contrib/auth/models.py:103 -msgid "" -"Use '[algo]$[salt]$[hexdigest]' or use the change " -"password form." -msgstr "" -"Utilitzi '[algo]$[salt]$[hexdigest]' o el formulari de " -"canvi de contrasenya." +#: contrib/localflavor/jp/jp_prefectures.py:50 +msgid "Okinawa" +msgstr "Okinawa" -#: contrib/auth/models.py:104 -msgid "staff status" -msgstr "és membre del personal" +#: contrib/localflavor/jp/forms.py:21 +msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." +msgstr "Introdueixi un codi postal en el format XXXXXXX o XX-XXXX." -#: contrib/auth/models.py:104 -msgid "Designates whether the user can log into this admin site." -msgstr "Indica si l'usuari pot entrar en el lloc administratiu." +#: contrib/localflavor/br/forms.py:18 +msgid "Enter a zip code in the format XXXXX-XXX." +msgstr "Introdueixi un codi zip en el format XXXXX-XXX." -#: contrib/auth/models.py:105 -msgid "active" -msgstr "actiu" +#: contrib/localflavor/br/forms.py:30 +msgid "Phone numbers must be in XX-XXXX-XXXX format." +msgstr "El número de telèfon ha de ser en el format XX-XXXX-XXXX." -#: contrib/auth/models.py:105 -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/localflavor/br/forms.py:72 +msgid "This field requires only numbers." +msgstr "Aquest camps requereix només números." -#: contrib/auth/models.py:106 -msgid "superuser status" -msgstr "estat de superusuari" +#: contrib/localflavor/br/forms.py:74 +msgid "This field requires at most 11 digits or 14 characters." +msgstr "Aquest camp requereix com a màxim 11 dígits o 14 caracters." -#: contrib/auth/models.py:106 -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/localflavor/br/forms.py:84 +msgid "Invalid CPF number." +msgstr "Número CPF invàlid." -#: contrib/auth/models.py:107 -msgid "last login" -msgstr "últim inici de sessió" +#: contrib/localflavor/br/forms.py:106 +msgid "This field requires at least 14 digits" +msgstr "Aquest camp requereix almenys 14 dígits." -#: contrib/auth/models.py:108 -msgid "date joined" -msgstr "data de creació" +#: contrib/localflavor/br/forms.py:116 +msgid "Invalid CNPJ number." +msgstr "Número CNPJ invàlid." -#: contrib/auth/models.py:110 +#: contrib/localflavor/is_/forms.py:16 msgid "" -"In addition to the permissions manually assigned, this user will also get " -"all permissions granted to each group he/she is in." +"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." msgstr "" -"Junt amb els permissos asignats manualment, aquest usuari tindrà, també, els " -"permissos dels grups dels que sigui membre." - -#: contrib/auth/models.py:111 -msgid "user permissions" -msgstr "permissos de l'usuari" - -#: contrib/auth/models.py:115 -msgid "user" -msgstr "usuari" +"Introdueixi un número de identificació d'Islàndia. El format és XXXXXX-XXXX." -#: contrib/auth/models.py:116 -msgid "users" -msgstr "usuaris" +#: contrib/localflavor/is_/forms.py:30 +msgid "The Icelandic identification number is not valid." +msgstr "El número de identificació d'Islàndia no és vàlid." -#: contrib/auth/models.py:122 -msgid "Personal info" -msgstr "Informaciò personal" +#: core/validators.py:65 +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/auth/models.py:123 -msgid "Permissions" -msgstr "permissos" +#: core/validators.py:69 +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/auth/models.py:124 -msgid "Important dates" -msgstr "Dates importants" +#: core/validators.py:73 +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/auth/models.py:125 -msgid "Groups" -msgstr "Grups" +#: core/validators.py:77 +msgid "Uppercase letters are not allowed here." +msgstr "No es permeten majúscules aquí." -#: contrib/auth/models.py:269 -msgid "message" -msgstr "missatge" +#: core/validators.py:81 +msgid "Lowercase letters are not allowed here." +msgstr "No es permeten minúscules aquí." -#: newforms/models.py:173 newforms/fields.py:366 -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." +#: core/validators.py:88 +msgid "Enter only digits separated by commas." +msgstr "Introdueixi només dígits separats per comes." -#: newforms/models.py:186 newforms/fields.py:82 newforms/fields.py:378 -#: newforms/fields.py:454 newforms/fields.py:465 -#: 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 "Aquest camp és obligatori." +#: core/validators.py:100 +msgid "Enter valid e-mail addresses separated by commas." +msgstr "Introdueixi adreces de correu electrònic vàlides separades per comes." -#: newforms/models.py:190 newforms/fields.py:382 newforms/fields.py:458 -msgid "Enter a list of values." -msgstr "Introdueixi una llista de valors." +#: core/validators.py:104 +msgid "Please enter a valid IP address." +msgstr "Per favor introdueixi una adreça IP vàlida." -#: newforms/models.py:196 newforms/fields.py:391 -#, 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." +#: core/validators.py:108 +msgid "Empty values are not allowed here." +msgstr "No s'admeten valor buits." -#: newforms/fields.py:105 newforms/fields.py:258 -#, python-format -msgid "Ensure this value has at most %d characters." -msgstr "Asseguris de que el seu texte té com a màxim %d caracters." +#: core/validators.py:112 +msgid "Non-numeric characters aren't allowed here." +msgstr "No s'admeten caracters no numèrics." -#: newforms/fields.py:107 newforms/fields.py:260 -#, python-format -msgid "Ensure this value has at least %d characters." -msgstr "Asseguris de que el seu texte té almenys %d caracters." +#: core/validators.py:116 +msgid "This value can't be comprised solely of digits." +msgstr "Aquest valor no pot contenir només dígits." -#: newforms/fields.py:130 core/validators.py:120 -msgid "Enter a whole number." -msgstr "Introdueixi un número sencer." +#: core/validators.py:125 +msgid "Only alphabetical characters are allowed here." +msgstr "Només s'admeted caracters alfabètics aquí." -#: newforms/fields.py:132 -#, python-format -msgid "Ensure this value is less than or equal to %s." -msgstr "Aquest valor ha de ser menor o igual a %s." +#: core/validators.py:140 +msgid "Year must be 1900 or later." +msgstr "L'any ha de ser posterior al 1900" -#: newforms/fields.py:134 +#: core/validators.py:144 #, 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:167 -msgid "Enter a valid date." -msgstr "Introdueixi una data vàlida." +msgid "Invalid date: %s" +msgstr "Data invàlida: %s" -#: newforms/fields.py:194 -msgid "Enter a valid time." -msgstr "Introdueixi una hora vàlida." +#: core/validators.py:149 db/models/fields/__init__.py:463 +msgid "Enter a valid date in YYYY-MM-DD format." +msgstr "Introdueixi una data vàlida en el forma AAAA-MM-DD." -#: newforms/fields.py:230 -msgid "Enter a valid date/time." -msgstr "Introdueixi una data/hora vàlides." +#: core/validators.py:154 +msgid "Enter a valid time in HH:MM format." +msgstr "Introdueixi una hora vàlida en el format HH:MM." -#: newforms/fields.py:244 -msgid "Enter a valid value." -msgstr "Introdueixi un valor vàlid." +#: core/validators.py:158 db/models/fields/__init__.py:532 +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." -#: newforms/fields.py:273 core/validators.py:162 -msgid "Enter a valid e-mail address." -msgstr "Introdueixi una adreça de correu vàlida." +#: core/validators.py:175 core/validators.py:453 oldforms/__init__.py:672 +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." -#: newforms/fields.py:291 newforms/fields.py:313 -msgid "Enter a valid URL." -msgstr "Introdueixi una URL vàlida." +#: core/validators.py:179 +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." -#: newforms/fields.py:315 -msgid "This URL appears to be a broken link." -msgstr "Aquesta URL sembla ser un enllaç trencat." +#: core/validators.py:186 +#, python-format +msgid "The URL %s does not point to a valid image." +msgstr "La URL %s no apunta una imatge vàlida." -#: db/models/manipulators.py:307 +#: core/validators.py:190 #, 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." +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." -#: db/models/fields/related.py:53 +#: core/validators.py:198 #, python-format -msgid "Please enter a valid %s." -msgstr "Si us plau, introdueixi un %s vàlid." +msgid "The URL %s does not point to a valid QuickTime video." +msgstr "La URL %s no apunta a un video QuickTime vàlid." -#: db/models/fields/related.py:642 -msgid "Separate multiple IDs with commas." -msgstr "Separi múltiples IDs amb comes." +#: core/validators.py:202 +msgid "A valid URL is required." +msgstr "Es precisa d'una URL vàlida." -#: db/models/fields/related.py:644 +#: core/validators.py:216 +#, python-format 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." +"Valid HTML is required. Specific errors are:\n" +"%s" +msgstr "" +"Es precisa HTML vàlid. Els errors específics sòn:\n" +"%s" -#: db/models/fields/related.py:691 +#: core/validators.py:223 #, 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 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." +msgid "Badly formed XML: %s" +msgstr "XML incorrectament formatejat: %s" -#: db/models/fields/__init__.py:42 +#: core/validators.py:240 #, 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:369 -msgid "This value must be an integer." -msgstr "Aquest valor ha de ser un enter." +msgid "Invalid URL: %s" +msgstr "URL invalida: %s" -#: db/models/fields/__init__.py:404 -msgid "This value must be either True or False." -msgstr "Aquest valor ha de ser True (Veritat) o False (Fals)" +#: core/validators.py:245 core/validators.py:247 +#, python-format +msgid "The URL %s is a broken link." +msgstr "La URL %sés un enllaç trencat." -#: db/models/fields/__init__.py:425 -msgid "This field cannot be null." -msgstr "Aquest camp no pot ser null (estar buit)." +#: core/validators.py:253 +msgid "Enter a valid U.S. state abbreviation." +msgstr "Introdueixi una abreviatura vàlida d'estat d'els E.U.A.." -#: db/models/fields/__init__.py:459 core/validators.py:148 -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:267 +#, 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." -#: db/models/fields/__init__.py:528 core/validators.py:157 -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:274 +#, python-format +msgid "This field must match the '%s' field." +msgstr "Aquest camp ha de concordar amb el camp '%s'." -#: db/models/fields/__init__.py:632 -msgid "Enter a valid filename." -msgstr "Introdueixi un nom de fitxer vàlid." +#: core/validators.py:293 +msgid "Please enter something for at least one field." +msgstr "Si us plau, introdueixi alguna cosa alemnys en un camp." -#: db/models/fields/__init__.py:753 -msgid "This value must be either None, True or False." -msgstr "Aquest valor ha de ser None (Cap), True (Veritat) o False (Fals)" +#: core/validators.py:302 core/validators.py:313 +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." -#: views/generic/create_update.py:43 +#: core/validators.py:321 #, python-format -msgid "The %(verbose_name)s was created successfully." -msgstr "El/La %(verbose_name)s s'ha creat amb èxit." +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" -#: views/generic/create_update.py:117 +#: core/validators.py:334 #, python-format -msgid "The %(verbose_name)s was updated successfully." -msgstr "El/La %(verbose_name)s s'ha actualtzat amb èxit." +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" -#: views/generic/create_update.py:184 -#, python-format -msgid "The %(verbose_name)s was deleted." -msgstr "El %(verbose_name)s s'ha eliminat." +#: core/validators.py:353 +msgid "Duplicate values are not allowed." +msgstr "No s'admeten valors duplicats." -#: oldforms/__init__.py:392 +#: core/validators.py:368 #, python-format -msgid "Ensure your text is less than %s character." -msgid_plural "Ensure your text is less than %s characters." -msgstr[0] "Asseguris de que el seu texte té menys de %s caracter." -msgstr[1] "Asseguris de que el seu texte té menys de %s caracters." - -#: oldforms/__init__.py:397 -msgid "Line breaks are not allowed here." -msgstr "No es permeten salts de línia." +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." -#: oldforms/__init__.py:498 oldforms/__init__.py:571 oldforms/__init__.py:610 +#: core/validators.py:370 #, python-format -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." +msgid "This value must be at least %s." +msgstr "Aquest valor ha de ser com a mínim %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 "" -"No s'ha enviat cap fitxer. Comprovi el tipus de codificació del formulari." +#: core/validators.py:372 +#, python-format +msgid "This value must be no more than %s." +msgstr "Aquest valor ha de ser com a màxim %s." -#: oldforms/__init__.py:674 -msgid "The submitted file is empty." -msgstr "El fitxer enviat està buit." +#: core/validators.py:408 +#, python-format +msgid "This value must be a power of %s." +msgstr "Aquest valor ha de ser una potència de %s." -#: oldforms/__init__.py:730 -msgid "Enter a whole number between -32,768 and 32,767." -msgstr "Introdueixi un número enter entre -32,768 i 32,767." +#: core/validators.py:417 +msgid "Please enter a valid decimal number." +msgstr "Si us plau, introdueixi un número decimal vàlid." -#: oldforms/__init__.py:740 -msgid "Enter a positive number." -msgstr "Introdueixi un número positiu." +#: core/validators.py:423 +#, 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 amb no més de %s digit." +msgstr[1] "" +"Si us plau, introdueixi un número decimal vàlid amb no més de %s digits." -#: oldforms/__init__.py:750 -msgid "Enter a whole number between 0 and 32,767." -msgstr "Introdueixi un número entre 0 i 32,767." +#: core/validators.py:426 +#, 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 amb la part entera amb com a " +"màxim %s dígit." +msgstr[1] "" +"Si us plau, introdueixi un número decimal vàlid amb la part entera amb com a " +"màxim %s dígits." -#: conf/global_settings.py:39 -msgid "Arabic" -msgstr "Arabic" +#: core/validators.py:429 +#, 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 amb no més de %s dígit en la " +"part decimal." +msgstr[1] "" +"Si us plau, introdueixi un número decimal vàlid amb no més de %s dígits en " +"la part decimal." -#: conf/global_settings.py:40 -msgid "Bengali" -msgstr "Bengalí" +#: core/validators.py:437 +msgid "Please enter a valid floating point number." +msgstr "Si us plau, introdueixi un número amb punt de coma flotant vàlid." -#: conf/global_settings.py:41 -msgid "Bulgarian" -msgstr "Bulgar" +#: core/validators.py:446 +#, 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." -#: conf/global_settings.py:42 -msgid "Catalan" -msgstr "Català" +#: core/validators.py:447 +#, 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." -#: conf/global_settings.py:43 -msgid "Czech" -msgstr "Txec" +#: core/validators.py:464 +msgid "The format for this field is wrong." +msgstr "El format per aquest camp és incorrecte." -#: conf/global_settings.py:44 -msgid "Welsh" -msgstr "Galès" +#: core/validators.py:479 +msgid "This field is invalid." +msgstr "El camp no és vàlid." -#: conf/global_settings.py:45 -msgid "Danish" -msgstr "Danès" +#: core/validators.py:515 +#, python-format +msgid "Could not retrieve anything from %s." +msgstr "No s'ha pogut obtenir res de %s." -#: conf/global_settings.py:46 -msgid "German" -msgstr "Alemany" +#: core/validators.py:518 +#, 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." -#: conf/global_settings.py:47 -msgid "Greek" -msgstr "Grec" +#: core/validators.py:551 +#, 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\".)" -#: conf/global_settings.py:48 -msgid "English" -msgstr "Anglès" +#: core/validators.py:555 +#, 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\".)" -#: conf/global_settings.py:49 -msgid "Spanish" -msgstr "Espanyol" +#: core/validators.py:560 +#, 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\".)" -#: conf/global_settings.py:50 -msgid "Argentinean Spanish" -msgstr "Castellà Argentí" +#: core/validators.py:565 +#, 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\".)" -#: conf/global_settings.py:51 -msgid "Finnish" -msgstr "Finlandès" +#: core/validators.py:569 +#, 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\".)" -#: conf/global_settings.py:52 -msgid "French" -msgstr "Francès" +#: core/validators.py:574 +#, 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\".)" -#: conf/global_settings.py:53 -msgid "Galician" -msgstr "Galleg" +#: utils/dates.py:6 +msgid "Monday" +msgstr "Dilluns" -#: conf/global_settings.py:54 -msgid "Hungarian" -msgstr "Húngar" +#: utils/dates.py:6 +msgid "Tuesday" +msgstr "Dimarts" -#: conf/global_settings.py:55 -msgid "Hebrew" -msgstr "Hebreu" +#: utils/dates.py:6 +msgid "Wednesday" +msgstr "Dimecres" -#: conf/global_settings.py:56 -msgid "Icelandic" -msgstr "Islandès" +#: utils/dates.py:6 +msgid "Thursday" +msgstr "Dijous" -#: conf/global_settings.py:57 -msgid "Italian" -msgstr "Italià" +#: utils/dates.py:6 +msgid "Friday" +msgstr "Divendres" -#: conf/global_settings.py:58 -msgid "Japanese" -msgstr "Japonès" +#: utils/dates.py:7 +msgid "Saturday" +msgstr "Dissabte" -#: conf/global_settings.py:59 -msgid "Korean" -msgstr "Coreà" +#: utils/dates.py:7 +msgid "Sunday" +msgstr "Diumenge" -#: conf/global_settings.py:60 -msgid "Kannada" -msgstr "" +#: utils/dates.py:14 +msgid "January" +msgstr "Gener" -#: conf/global_settings.py:61 -msgid "Latvian" -msgstr "" +#: utils/dates.py:14 +msgid "February" +msgstr "Febrer" -#: conf/global_settings.py:62 -msgid "Macedonian" -msgstr "Macedoni" +#: utils/dates.py:14 utils/dates.py:27 +msgid "March" +msgstr "Març" -#: conf/global_settings.py:63 -msgid "Dutch" -msgstr "Holandès" +#: utils/dates.py:14 utils/dates.py:27 +msgid "April" +msgstr "Abril" -#: conf/global_settings.py:64 -msgid "Norwegian" -msgstr "Norueg" +#: utils/dates.py:14 utils/dates.py:27 +msgid "May" +msgstr "Maig" -#: conf/global_settings.py:65 -msgid "Polish" -msgstr "Polac" +#: utils/dates.py:14 utils/dates.py:27 +msgid "June" +msgstr "Juny" -#: conf/global_settings.py:66 -msgid "Portugese" -msgstr "Portuguès" +#: utils/dates.py:15 utils/dates.py:27 +msgid "July" +msgstr "Juliol" -#: conf/global_settings.py:67 -msgid "Brazilian" -msgstr "Brasileny" +#: utils/dates.py:15 +msgid "August" +msgstr "Agost" -#: conf/global_settings.py:68 -msgid "Romanian" -msgstr "Rumanès" +#: utils/dates.py:15 +msgid "September" +msgstr "Setembre" -#: conf/global_settings.py:69 -msgid "Russian" -msgstr "Rús" +#: utils/dates.py:15 +msgid "October" +msgstr "Octubre" -#: conf/global_settings.py:70 -msgid "Slovak" -msgstr "Eslovac" +#: utils/dates.py:15 +msgid "November" +msgstr "Novembre" -#: conf/global_settings.py:71 -msgid "Slovenian" -msgstr "Esloveni" +#: utils/dates.py:16 +msgid "December" +msgstr "Desembre" -#: conf/global_settings.py:72 -msgid "Serbian" -msgstr "Serbi" +#: utils/dates.py:19 +msgid "jan" +msgstr "gen" -#: conf/global_settings.py:73 -msgid "Swedish" -msgstr "Suec" +#: utils/dates.py:19 +msgid "feb" +msgstr "feb" -#: conf/global_settings.py:74 -msgid "Tamil" -msgstr "" +#: utils/dates.py:19 +msgid "mar" +msgstr "mar" -#: conf/global_settings.py:75 -msgid "Telugu" -msgstr "" +#: utils/dates.py:19 +msgid "apr" +msgstr "abr" -#: conf/global_settings.py:76 -msgid "Turkish" -msgstr "Turc" +#: utils/dates.py:19 +msgid "may" +msgstr "mai" -#: conf/global_settings.py:77 -msgid "Ukrainian" -msgstr "Ucranià" +#: utils/dates.py:19 +msgid "jun" +msgstr "jun" -#: conf/global_settings.py:78 -msgid "Simplified Chinese" -msgstr "Xinés simplificat" +#: utils/dates.py:20 +msgid "jul" +msgstr "jul" -#: conf/global_settings.py:79 -msgid "Traditional Chinese" -msgstr "Xinés tradicional" +#: utils/dates.py:20 +msgid "aug" +msgstr "ago" -#: core/validators.py:64 -msgid "This value must contain only letters, numbers and underscores." -msgstr "Aquest valor ha de contenir només números, guions, i guions baixos." +#: utils/dates.py:20 +msgid "sep" +msgstr "set" -#: core/validators.py:68 -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 (/)." +#: utils/dates.py:20 +msgid "oct" +msgstr "oct" -#: core/validators.py:72 -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" +#: utils/dates.py:20 +msgid "nov" +msgstr "nov" -#: core/validators.py:76 -msgid "Uppercase letters are not allowed here." -msgstr "No es permeten majúscules aquí." +#: utils/dates.py:20 +msgid "dec" +msgstr "des" -#: core/validators.py:80 -msgid "Lowercase letters are not allowed here." -msgstr "No es permeten minúscules aquí." +#: utils/dates.py:27 +msgid "Jan." +msgstr "Gen." -#: core/validators.py:87 -msgid "Enter only digits separated by commas." -msgstr "Introdueixi només dígits separats per comes." +#: utils/dates.py:27 +msgid "Feb." +msgstr "Feb." -#: core/validators.py:99 -msgid "Enter valid e-mail addresses separated by commas." -msgstr "Introdueixi adreces de correu electrònic vàlides separades per comes." +#: utils/dates.py:28 +msgid "Aug." +msgstr "Ago." -#: core/validators.py:103 -msgid "Please enter a valid IP address." -msgstr "Per favor introdueixi una adreça IP vàlida." +#: utils/dates.py:28 +msgid "Sept." +msgstr "Set." -#: core/validators.py:107 -msgid "Empty values are not allowed here." -msgstr "No s'admeten valor buits." +#: utils/dates.py:28 +msgid "Oct." +msgstr "Oct." -#: core/validators.py:111 -msgid "Non-numeric characters aren't allowed here." -msgstr "No s'admeten caracters no numèrics." +#: utils/dates.py:28 +msgid "Nov." +msgstr "Nov." -#: core/validators.py:115 -msgid "This value can't be comprised solely of digits." -msgstr "Aquest valor no pot contenir només dígits." +#: utils/dates.py:28 +msgid "Dec." +msgstr "Des." -#: core/validators.py:124 -msgid "Only alphabetical characters are allowed here." -msgstr "Només s'admeted caracters alfabètics aquí." +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "any" +msgstr[1] "anys" -#: core/validators.py:139 -msgid "Year must be 1900 or later." -msgstr "L'any ha de ser posterior al 1900" +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "mes" +msgstr[1] "mesos" -#: core/validators.py:143 -#, python-format -msgid "Invalid date: %s" -msgstr "Data invàlida: %s" +#: utils/timesince.py:14 +msgid "week" +msgid_plural "weeks" +msgstr[0] "setmana" +msgstr[1] "setmanes" -#: core/validators.py:153 -msgid "Enter a valid time in HH:MM format." -msgstr "Introdueixi una hora vàlida en el format HH:MM." +#: utils/timesince.py:15 +msgid "day" +msgid_plural "days" +msgstr[0] "dia" +msgstr[1] "dies" -#: core/validators.py:178 -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." +#: utils/timesince.py:16 +msgid "hour" +msgid_plural "hours" +msgstr[0] "hora" +msgstr[1] "hores" -#: core/validators.py:185 +#: utils/timesince.py:17 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minut" +msgstr[1] "minuts" + +#: utils/timesince.py:40 #, python-format -msgid "The URL %s does not point to a valid image." -msgstr "La URL %s no apunta una imatge vàlida." +msgid "%d milliseconds" +msgstr "%d milisegons" -#: core/validators.py:189 +#: utils/timesince.py:41 #, 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." +msgid "%(number)d %(type)s" +msgstr "%(number)d %(type)s" -#: core/validators.py:197 +#: utils/timesince.py:47 #, 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." +msgid ", %(number)d %(type)s" +msgstr ", %(number)d %(type)s" -#: core/validators.py:201 -msgid "A valid URL is required." -msgstr "Es precisa d'una URL vàlida." +#: utils/dateformat.py:40 +msgid "p.m." +msgstr "p.m." -#: core/validators.py:215 -#, 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" +#: utils/dateformat.py:41 +msgid "a.m." +msgstr "a.m." -#: core/validators.py:222 -#, python-format -msgid "Badly formed XML: %s" -msgstr "XML incorrectament formatejat: %s" +#: utils/dateformat.py:46 +msgid "PM" +msgstr "PM" -#: core/validators.py:239 -#, python-format -msgid "Invalid URL: %s" -msgstr "URL invalida: %s" +#: utils/dateformat.py:47 +msgid "AM" +msgstr "AM" -#: core/validators.py:244 core/validators.py:246 -#, python-format -msgid "The URL %s is a broken link." -msgstr "La URL %sés un enllaç trencat." +#: utils/dateformat.py:95 +msgid "midnight" +msgstr "mitja nit" -#: core/validators.py:252 -msgid "Enter a valid U.S. state abbreviation." -msgstr "Introdueixi una abreviatura vàlida d'estat d'els E.U.A.." +#: utils/dateformat.py:97 +msgid "noon" +msgstr "mig dia" -#: core/validators.py:266 -#, python-format -msgid "Watch your mouth! The word %s is not allowed here." -msgid_plural "Watch your mouth! The words %s are not allowed here." -msgstr[0] "Vigili la seva boca! Aquí no admetem la paraula: %s." -msgstr[1] "Vigili la seva boca! Aquí no admetem les paraules: %s." +#: utils/translation/trans_real.py:358 +msgid "DATE_FORMAT" +msgstr "F j, Y" -#: core/validators.py:273 -#, python-format -msgid "This field must match the '%s' field." -msgstr "Aquest camp ha de concordar amb el camp '%s'." +#: utils/translation/trans_real.py:359 +msgid "DATETIME_FORMAT" +msgstr "F j, Y, H:i" -#: core/validators.py:292 -msgid "Please enter something for at least one field." -msgstr "Si us plau, introdueixi alguna cosa alemnys en un camp." +#: utils/translation/trans_real.py:360 +msgid "TIME_FORMAT" +msgstr "H:i" -#: core/validators.py:301 core/validators.py:312 -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." +#: utils/translation/trans_real.py:376 +msgid "YEAR_MONTH_FORMAT" +msgstr "j de/d' F del Y" -#: core/validators.py:320 -#, 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" +#: utils/translation/trans_real.py:377 +msgid "MONTH_DAY_FORMAT" +msgstr "j de/d' F del Y" -#: core/validators.py:333 +#: oldforms/__init__.py:392 #, 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" +msgid "Ensure your text is less than %s character." +msgid_plural "Ensure your text is less than %s characters." +msgstr[0] "Asseguris de que el seu texte té menys de %s caracter." +msgstr[1] "Asseguris de que el seu texte té menys de %s caracters." -#: core/validators.py:352 -msgid "Duplicate values are not allowed." -msgstr "No s'admeten valors duplicats." +#: oldforms/__init__.py:397 +msgid "Line breaks are not allowed here." +msgstr "No es permeten salts de línia." -#: core/validators.py:367 +#: oldforms/__init__.py:498 oldforms/__init__.py:571 oldforms/__init__.py:610 #, 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." +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." -#: core/validators.py:369 -#, python-format -msgid "This value must be at least %s." -msgstr "Aquest valor ha de ser com a mínim %s." +#: oldforms/__init__.py:674 +msgid "The submitted file is empty." +msgstr "El fitxer enviat està buit." -#: core/validators.py:371 -#, python-format -msgid "This value must be no more than %s." -msgstr "Aquest valor ha de ser com a màxim %s." +#: oldforms/__init__.py:730 +msgid "Enter a whole number between -32,768 and 32,767." +msgstr "Introdueixi un número enter entre -32,768 i 32,767." -#: core/validators.py:407 -#, python-format -msgid "This value must be a power of %s." -msgstr "Aquest valor ha de ser una potència de %s." +#: oldforms/__init__.py:740 +msgid "Enter a positive number." +msgstr "Introdueixi un número positiu." -#: core/validators.py:418 -msgid "Please enter a valid decimal number." -msgstr "Si us plau, introdueixi un número decimal vàlid." +#: oldforms/__init__.py:750 +msgid "Enter a whole number between 0 and 32,767." +msgstr "Introdueixi un número entre 0 i 32,767." -#: core/validators.py:422 +#: views/generic/create_update.py:43 #, 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 amb no més de %s digit." -msgstr[1] "" -"Si us plau, introdueixi un número decimal vàlid amb no més de %s digits." +msgid "The %(verbose_name)s was created successfully." +msgstr "El/La %(verbose_name)s s'ha creat amb èxit." -#: core/validators.py:425 +#: views/generic/create_update.py:117 #, 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 amb la part entera amb com a " -"màxim %s dígit." -msgstr[1] "" -"Si us plau, introdueixi un número decimal vàlid amb la part entera amb com a " -"màxim %s dígits." +msgid "The %(verbose_name)s was updated successfully." +msgstr "El/La %(verbose_name)s s'ha actualtzat amb èxit." -#: core/validators.py:428 +#: views/generic/create_update.py:184 #, 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 amb no més de %s dígit en la " -"part decimal." -msgstr[1] "" -"Si us plau, introdueixi un número decimal vàlid amb no més de %s dígits en " -"la part decimal." +msgid "The %(verbose_name)s was deleted." +msgstr "El %(verbose_name)s s'ha eliminat." -#: core/validators.py:438 +#: db/models/manipulators.py:307 #, 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." +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." -#: core/validators.py:439 +#: db/models/fields/__init__.py:46 #, 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." +msgid "%(optname)s with this %(fieldname)s already exists." +msgstr "Ja existeix %(optname)s amb auqest %(fieldname)s." -#: core/validators.py:456 -msgid "The format for this field is wrong." -msgstr "El format per aquest camp és incorrecte." +#: db/models/fields/__init__.py:373 +msgid "This value must be an integer." +msgstr "Aquest valor ha de ser un enter." -#: core/validators.py:471 -msgid "This field is invalid." -msgstr "El camp no és vàlid." +#: db/models/fields/__init__.py:408 +msgid "This value must be either True or False." +msgstr "Aquest valor ha de ser True (Veritat) o False (Fals)" -#: core/validators.py:507 -#, python-format -msgid "Could not retrieve anything from %s." -msgstr "No s'ha pogut obtenir res de %s." +#: db/models/fields/__init__.py:429 +msgid "This field cannot be null." +msgstr "Aquest camp no pot ser null (estar buit)." -#: core/validators.py:510 -#, 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." +#: db/models/fields/__init__.py:592 +msgid "This value must be a decimal number." +msgstr "Aquest valor ha de ser un número decimal." -#: core/validators.py:543 -#, 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\".)" +#: db/models/fields/__init__.py:695 +msgid "Enter a valid filename." +msgstr "Introdueixi un nom de fitxer vàlid." -#: 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 "" -"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\".)" +#: db/models/fields/__init__.py:818 +msgid "This value must be either None, True or False." +msgstr "Aquest valor ha de ser None (Cap), True (Veritat) o False (Fals)" -#: core/validators.py:552 +#: db/models/fields/related.py:53 #, 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\".)" +msgid "Please enter a valid %s." +msgstr "Si us plau, introdueixi un %s vàlid." -#: core/validators.py:557 -#, 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\".)" +#: db/models/fields/related.py:642 +msgid "Separate multiple IDs with commas." +msgstr "Separi múltiples IDs amb comes." -#: core/validators.py:561 -#, python-format +#: db/models/fields/related.py:644 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\".)" +"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." -#: core/validators.py:566 +#: db/models/fields/related.py:691 #, 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\".)" +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 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." diff --git a/django/conf/locale/ca/LC_MESSAGES/djangojs.mo b/django/conf/locale/ca/LC_MESSAGES/djangojs.mo index d12c8f8d7a..a5b908df1f 100644 Binary files a/django/conf/locale/ca/LC_MESSAGES/djangojs.mo and b/django/conf/locale/ca/LC_MESSAGES/djangojs.mo differ diff --git a/django/conf/locale/ca/LC_MESSAGES/djangojs.po b/django/conf/locale/ca/LC_MESSAGES/djangojs.po index ed7231988b..8167253005 100644 --- a/django/conf/locale/ca/LC_MESSAGES/djangojs.po +++ b/django/conf/locale/ca/LC_MESSAGES/djangojs.po @@ -113,8 +113,8 @@ msgstr "Demà" #: contrib/admin/media/js/admin/CollapsedFieldsets.js:34 #: contrib/admin/media/js/admin/CollapsedFieldsets.js:72 msgid "Show" -msgstr "" +msgstr "Mostrar" #: contrib/admin/media/js/admin/CollapsedFieldsets.js:63 msgid "Hide" -msgstr "" +msgstr "Ocultar" diff --git a/django/conf/locale/de/LC_MESSAGES/django.mo b/django/conf/locale/de/LC_MESSAGES/django.mo index 5f2eee4f33..d1981a679d 100644 Binary files a/django/conf/locale/de/LC_MESSAGES/django.mo and b/django/conf/locale/de/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/de/LC_MESSAGES/django.po b/django/conf/locale/de/LC_MESSAGES/django.po index 52b70bda00..3ccbefe249 100644 --- a/django/conf/locale/de/LC_MESSAGES/django.po +++ b/django/conf/locale/de/LC_MESSAGES/django.po @@ -481,8 +481,8 @@ msgid "" "database tables have been created, and make sure the database is readable by " "the appropriate user." msgstr "" -"Etwas stimmt nicht mit der Datenbankkonfiguration. Bitte sicherstellen, das " -"die richtigen Datenbanktabellen angelegt wurden und bitte sicherstellen, das " +"Etwas stimmt nicht mit der Datenbankkonfiguration. Bitte sicherstellen, dass " +"die richtigen Datenbanktabellen angelegt wurden und " "die Datenbank vom verwendeten Datenbankbenutzer auch lesbar ist." #: contrib/admin/templates/admin/login.html:17 diff --git a/django/conf/urls/defaults.py b/django/conf/urls/defaults.py index 1e87ea708a..26cdd3e1ff 100644 --- a/django/conf/urls/defaults.py +++ b/django/conf/urls/defaults.py @@ -1,4 +1,5 @@ from django.core.urlresolvers import RegexURLPattern, RegexURLResolver +from django.core.exceptions import ImproperlyConfigured __all__ = ['handler404', 'handler500', 'include', 'patterns', 'url'] @@ -22,7 +23,10 @@ def url(regex, view, kwargs=None, name=None, prefix=''): # For include(...) processing. return RegexURLResolver(regex, view[0], kwargs) else: - if prefix and isinstance(view, basestring): - view = prefix + '.' + view + if isinstance(view, basestring): + if not view: + raise ImproperlyConfigured('Empty URL pattern view name not permitted (for pattern %r)' % regex) + if prefix: + view = prefix + '.' + view return RegexURLPattern(regex, view, kwargs, name) diff --git a/django/core/context_processors.py b/django/core/context_processors.py index f4b288dfc4..3c826b1a7d 100644 --- a/django/core/context_processors.py +++ b/django/core/context_processors.py @@ -42,6 +42,13 @@ def i18n(request): return context_extras +def media(request): + """ + Adds media-related context variables to the context. + + """ + return {'MEDIA_URL': settings.MEDIA_URL} + def request(request): return {'request': request} diff --git a/django/core/management.py b/django/core/management.py index 1fe6ec6bd0..3d7f8431be 100644 --- a/django/core/management.py +++ b/django/core/management.py @@ -1197,7 +1197,7 @@ def validate(outfile=sys.stdout, silent_success=False): return outfile.write('%s error%s found.\n' % (num_errors, num_errors != 1 and 's' or '')) except ImproperlyConfigured: - outfile.write("Skipping validation because things aren't configured properly.") + outfile.write("Skipping validation because things aren't configured properly.\n") validate.args = '' def _check_for_validation_errors(app=None): diff --git a/django/core/serializers/python.py b/django/core/serializers/python.py index 66dbbff335..5fbb3163f7 100644 --- a/django/core/serializers/python.py +++ b/django/core/serializers/python.py @@ -37,7 +37,12 @@ class Serializer(base.Serializer): def handle_fk_field(self, obj, field): related = getattr(obj, field.name) if related is not None: - related = getattr(related, field.rel.field_name) + if field.rel.field_name == related._meta.pk.name: + # Related to remote object via primary key + related = related._get_pk_val() + else: + # Related to remote object via other field + related = getattr(related, field.rel.field_name) self._current[field.name] = related def handle_m2m_field(self, obj, field): diff --git a/django/core/serializers/xml_serializer.py b/django/core/serializers/xml_serializer.py index 633001f5f0..3e4a6f3e79 100644 --- a/django/core/serializers/xml_serializer.py +++ b/django/core/serializers/xml_serializer.py @@ -82,7 +82,13 @@ class Serializer(base.Serializer): self._start_relational_field(field) related = getattr(obj, field.name) if related is not None: - self.xml.characters(str(getattr(related, field.rel.field_name))) + if field.rel.field_name == related._meta.pk.name: + # Related to remote object via primary key + related = related._get_pk_val() + else: + # Related to remote object via other field + related = getattr(related, field.rel.field_name) + self.xml.characters(str(related)) else: self.xml.addQuickElement("None") self.xml.endElement("field") diff --git a/django/newforms/forms.py b/django/newforms/forms.py index 952f41a8c9..6ebebded4b 100644 --- a/django/newforms/forms.py +++ b/django/newforms/forms.py @@ -63,7 +63,7 @@ class BaseForm(StrAndUnicode): self.auto_id = auto_id self.prefix = prefix self.initial = initial or {} - self.__errors = None # Stores the errors after clean() has been called. + self._errors = None # Stores the errors after clean() has been called. # The base_fields class attribute is the *class-wide* definition of # fields. Because a particular *instance* of the class might want to @@ -87,12 +87,12 @@ class BaseForm(StrAndUnicode): raise KeyError('Key %r not found in Form' % name) return BoundField(self, field, name) - def _errors(self): + def _get_errors(self): "Returns an ErrorDict for self.data" - if self.__errors is None: + if self._errors is None: self.full_clean() - return self.__errors - errors = property(_errors) + return self._errors + errors = property(_get_errors) def is_valid(self): """ @@ -171,11 +171,11 @@ class BaseForm(StrAndUnicode): def full_clean(self): """ - Cleans all of self.data and populates self.__errors and self.cleaned_data. + Cleans all of self.data and populates self._errors and + self.cleaned_data. """ - errors = ErrorDict() + self._errors = ErrorDict() if not self.is_bound: # Stop further processing. - self.__errors = errors return self.cleaned_data = {} for name, field in self.fields.items(): @@ -188,16 +188,17 @@ class BaseForm(StrAndUnicode): self.cleaned_data[name] = value if hasattr(self, 'clean_%s' % name): value = getattr(self, 'clean_%s' % name)() - self.cleaned_data[name] = value + self.cleaned_data[name] = value except ValidationError, e: - errors[name] = e.messages + self._errors[name] = e.messages + if name in self.cleaned_data: + del self.cleaned_data[name] try: self.cleaned_data = self.clean() except ValidationError, e: - errors[NON_FIELD_ERRORS] = e.messages - if errors: + self._errors[NON_FIELD_ERRORS] = e.messages + if self._errors: delattr(self, 'cleaned_data') - self.__errors = errors def clean(self): """ diff --git a/django/test/utils.py b/django/test/utils.py index da339bb808..46de1a896c 100644 --- a/django/test/utils.py +++ b/django/test/utils.py @@ -73,6 +73,20 @@ def _set_autocommit(connection): elif hasattr(connection.connection, "set_isolation_level"): connection.connection.set_isolation_level(0) +def get_mysql_create_suffix(): + suffix = [] + if settings.TEST_DATABASE_CHARSET: + suffix.append('CHARACTER SET %s' % settings.TEST_DATABASE_CHARSET) + if settings.TEST_DATABASE_COLLATION: + suffix.append('COLLATE %s' % settings.TEST_DATABASE_COLLATION) + return ' '.join(suffix) + +def get_postgresql_create_suffix(): + assert settings.TEST_DATABASE_COLLATION is None, "PostgreSQL does not support collation setting at database creation time." + if settings.TEST_DATABASE_CHARSET: + return "WITH ENCODING '%s'" % settings.TEST_DATABASE_CHARSET + return '' + def create_test_db(verbosity=1, autoclobber=False): # If the database backend wants to create the test DB itself, let it creation_module = get_creation_module() @@ -87,6 +101,12 @@ def create_test_db(verbosity=1, autoclobber=False): if settings.DATABASE_ENGINE == "sqlite3": TEST_DATABASE_NAME = ":memory:" else: + suffix = { + 'postgresql': get_postgresql_create_suffix, + 'postgresql_psycopg2': get_postgresql_create_suffix, + 'mysql': get_mysql_create_suffix, + 'mysql_old': get_mysql_create_suffix, + }.get(settings.DATABASE_ENGINE, lambda: '')() if settings.TEST_DATABASE_NAME: TEST_DATABASE_NAME = settings.TEST_DATABASE_NAME else: @@ -98,7 +118,7 @@ def create_test_db(verbosity=1, autoclobber=False): cursor = connection.cursor() _set_autocommit(connection) try: - cursor.execute("CREATE DATABASE %s" % backend.quote_name(TEST_DATABASE_NAME)) + cursor.execute("CREATE DATABASE %s %s" % (backend.quote_name(TEST_DATABASE_NAME), suffix)) except Exception, e: sys.stderr.write("Got an error creating the test database: %s\n" % e) if not autoclobber: @@ -110,7 +130,7 @@ def create_test_db(verbosity=1, autoclobber=False): cursor.execute("DROP DATABASE %s" % backend.quote_name(TEST_DATABASE_NAME)) if verbosity >= 1: print "Creating test database..." - cursor.execute("CREATE DATABASE %s" % backend.quote_name(TEST_DATABASE_NAME)) + cursor.execute("CREATE DATABASE %s %s" % (backend.quote_name(TEST_DATABASE_NAME), suffix)) except Exception, e: sys.stderr.write("Got an error recreating the test database: %s\n" % e) sys.exit(2) diff --git a/django/utils/feedgenerator.py b/django/utils/feedgenerator.py index aa315b5292..2c82e9a37a 100644 --- a/django/utils/feedgenerator.py +++ b/django/utils/feedgenerator.py @@ -168,6 +168,8 @@ class Rss201rev2Feed(RssFeed): (item['author_email'], item['author_name'])) elif item["author_email"]: handler.addQuickElement(u"author", item["author_email"]) + elif item["author_name"]: + handler.addQuickElement(u"dc:creator", item["author_name"], {"xmlns:dc": u"http://purl.org/dc/elements/1.1/"}) if item['pubdate'] is not None: handler.addQuickElement(u"pubDate", rfc2822_date(item['pubdate']).decode('ascii')) diff --git a/docs/db-api.txt b/docs/db-api.txt index de612e0e3d..6f13b3a467 100644 --- a/docs/db-api.txt +++ b/docs/db-api.txt @@ -1748,7 +1748,8 @@ Shortcuts As you develop views, you will discover a number of common idioms in the way you use the database API. Django encodes some of these idioms as -shortcuts that can be used to simplify the process of writing views. +shortcuts that can be used to simplify the process of writing views. These +functions are in the ``django.shortcuts`` module. get_object_or_404() ------------------- diff --git a/docs/install.txt b/docs/install.txt index 153aa85859..7761a64e13 100644 --- a/docs/install.txt +++ b/docs/install.txt @@ -100,7 +100,9 @@ This file should also be located in your ``site-packages`` directory. * If you're using Windows: ``C:\Python2.X\lib\site-packages`` - * If you're using MacOSX: ``/Library/Python2.X/site-packages`` + * If you're using MacOSX: ``/Library/Python2.X/site-packages`` or + ``/Library/Frameworks/Python.framework/Versions/2.X/lib/python2.X/site-packages/`` + (in later releases). Install the Django code ======================= diff --git a/docs/model-api.txt b/docs/model-api.txt index 1b1b405d35..de765f3517 100644 --- a/docs/model-api.txt +++ b/docs/model-api.txt @@ -269,6 +269,13 @@ For example, say your ``MEDIA_ROOT`` is set to ``'/home/media'``, and upload a file on Jan. 15, 2007, it will be saved in the directory ``/home/media/photos/2007/01/15``. +If you want to retrieve the upload file's on-disk filename, or a URL that +refers to that file, or the file's size, you can use the +``get_FOO_filename()``, ``get_FOO_url()`` and ``get_FOO_size()`` methods. +They are all documented here__. + +__ ../db-api/#get-foo-filename + Note that whenever you deal with uploaded files, you should pay close attention to where you're uploading them and what type of files they are, to avoid security holes. *Validate all uploaded files* so that you're sure the files are @@ -338,9 +345,14 @@ image. Has two extra optional arguments, ``height_field`` and ``width_field``, which, if set, will be auto-populated with the height and width of the image each time a model instance is saved. +In addition to the special ``get_FOO_*`` methods that are available for +``FileField``, an ``ImageField`` also has ``get_FOO_height()`` and +``get_FOO_width()`` methods. These are documented elsewhere_. + Requires the `Python Imaging Library`_. .. _Python Imaging Library: http://www.pythonware.com/products/pil/ +.. _elsewhere: ../db-api/#get-foo-height-and-get-foo-width ``IntegerField`` ~~~~~~~~~~~~~~~~ @@ -463,8 +475,10 @@ If ``True``, Django will store empty values as ``NULL`` in the database. Default is ``False``. Note that empty string values will always get stored as empty strings, not -as ``NULL`` -- so use ``null=True`` for non-string fields such as integers, -booleans and dates. +as ``NULL``. Only use ``null=True`` for non-string fields such as integers, +booleans and dates. For both types of fields, you will also need to set +``blank=True`` if you wish to permit empty values in forms, as the ``null`` +parameter only affects database storage (see blank_, below). Avoid using ``null`` on string-based fields such as ``CharField`` and ``TextField`` unless you have an excellent reason. If a string-based field diff --git a/docs/modpython.txt b/docs/modpython.txt index 37909a09fd..43c5791be5 100644 --- a/docs/modpython.txt +++ b/docs/modpython.txt @@ -211,6 +211,41 @@ Here are two recommended approaches: 2. Or, copy the admin media files so that they live within your Apache document root. +Using eggs with mod_python +========================== + +If you installed Django from a Python egg_ or are using eggs in your Django +project, some extra configuration is required. Create an extra file in your +project (or somewhere else) that contains something like the following:: + + import os + os.environ['PYTHON_EGG_CACHE'] = '/some/directory' + +Here, ``/some/directory`` is a directory that the Apache webserver process can +write to. It will be used as the location for any unpacking of code the eggs +need to do. + +Then you have to tell mod_python to import this file before doing anything +else. This is done using the PythonImport_ directive to mod_python. You need +to ensure that you have specified the ``PythonInterpreter`` directive to +mod_python as described above__ (you need to do this even if you aren't +serving multiple installations in this case). Then add the ``PythonImport`` +line inside the ``Location`` or ``VirtualHost`` section. For example:: + + PythonInterpreter my_django + PythonImport /path/to/my/project/file.py my_django + +Note that you can use an absolute path here (or a normal dotted import path), +as described in the `mod_python manual`_. We use an absolute path in the +above example because if any Python path modifications are required to access +your project, they will not have been done at the time the ``PythonImport`` +line is processed. + +.. _Egg: http://peak.telecommunity.com/DevCenter/PythonEggs +.. _PythonImport: http://www.modpython.org/live/current/doc-html/dir-other-pimp.html +.. _mod_python manual: PythonImport_ +__ `Multiple Django installations on the same Apache`_ + Error handling ============== @@ -256,3 +291,5 @@ as necessary. .. _Expat Causing Apache Crash: http://www.dscpl.com.au/articles/modpython-006.html .. _mod_python FAQ entry: http://modpython.org/FAQ/faqw.py?req=show&file=faq02.013.htp .. _Getting mod_python Working: http://www.dscpl.com.au/articles/modpython-001.html + + diff --git a/docs/newforms.txt b/docs/newforms.txt index 7ec4e9560c..bb6c179648 100644 --- a/docs/newforms.txt +++ b/docs/newforms.txt @@ -686,13 +686,13 @@ For example::
    -
  • {{ form.sender.label }} {{ form.sender.label }}
  • +
  • {{ form.sender.label }} {{ form.sender }}
  • {{ form.sender.help_text }}
  • - {% if form.sender.errors %}
      {{ form.sender.errors }}{% endif %} + {% if form.sender.errors %}
        {{ form.sender.errors }}
      {% endif %} -
    • {{ form.subject.label }} {{ form.subject.label }}
    • +
    • {{ form.subject.label }} {{ form.subject }}
    • {{ form.subject.help_text }}
    • - {% if form.subject.errors %}
        {{ form.subject.errors }}{% endif %} + {% if form.subject.errors %}
          {{ form.subject.errors }}
        {% endif %} ...
      diff --git a/docs/settings.txt b/docs/settings.txt index 14888ba60c..f30de3b981 100644 --- a/docs/settings.txt +++ b/docs/settings.txt @@ -264,6 +264,11 @@ MySQL will connect via a Unix socket to the specified socket. For example:: If you're using MySQL and this value *doesn't* start with a forward slash, then this value is assumed to be the host. +If you're using PostgreSQL, an empty string means to use a Unix domain socket +for the connection, rather than a network connection to localhost. If you +explictly need to use a TCP/IP connection on the local machine with +PostgreSQL, specify ``localhost`` here. + DATABASE_NAME ------------- @@ -771,7 +776,8 @@ Default:: ("django.core.context_processors.auth", "django.core.context_processors.debug", - "django.core.context_processors.i18n") + "django.core.context_processors.i18n", + "django.core.context_processors.media") A tuple of callables that are used to populate the context in ``RequestContext``. These callables take a request object as their argument and return a dictionary @@ -820,26 +826,57 @@ misspelled) variables. See `How invalid variables are handled`_. .. _How invalid variables are handled: ../templates_python/#how-invalid-variables-are-handled -TEST_RUNNER ------------ +TEST_DATABASE_CHARSET +--------------------- -Default: ``'django.test.simple.run_tests'`` +**New in Django development version** -The name of the method to use for starting the test suite. See -`Testing Django Applications`_. +Default: ``None`` -.. _Testing Django Applications: ../testing/ +The character set encoding used to create the test database. The value of this +string is passed directly through to the database, so its format is +backend-specific. + +Supported for the PostgreSQL_ (``postgresql``, ``postgresql_psycopg2``) and MySQL_ (``mysql``, ``mysql_old``) backends. + +.. _PostgreSQL: http://www.postgresql.org/docs/8.2/static/multibyte.html +.. _MySQL: http://www.mysql.org/doc/refman/5.0/en/charset-database.html + +TEST_DATABASE_COLLATION +------------------------ + +**New in Django development version** + +Default: ``None`` + +The collation order to use when creating the test database. This value is +passed directly to the backend, so it's format is backend-specific. + +Only supported for ``mysql`` and ``mysql_old`` backends (see `section 10.3.2`_ +of the MySQL manual for details). + +.. _section 10.3.2: http://www.mysql.org/doc/refman/5.0/en/charset-database.html TEST_DATABASE_NAME ------------------ Default: ``None`` -The name of database to use when running the test suite. If a value of +The name of database to use when running the test suite. If a value of ``None`` is specified, the test database will use the name ``'test_' + settings.DATABASE_NAME``. See `Testing Django Applications`_. .. _Testing Django Applications: ../testing/ +TEST_RUNNER +----------- + +Default: ``'django.test.simple.run_tests'`` + +The name of the method to use for starting the test suite. See +`Testing Django Applications`_. + +.. _Testing Django Applications: ../testing/ + TIME_FORMAT ----------- diff --git a/docs/templates.txt b/docs/templates.txt index 2f9f769b96..a293bdcff2 100644 --- a/docs/templates.txt +++ b/docs/templates.txt @@ -112,7 +112,7 @@ know how to write Python code. Comments ======== -To comment-out part of a template, use the comment syntax: ``{# #}``. +To comment-out part of a line in a template, use the comment syntax: ``{# #}``. For example, this template would render as ``'hello'``:: @@ -122,6 +122,12 @@ A comment can contain any template code, invalid or not. For example:: {# {% if foo %}bar{% else %} #} +This syntax can only be used for single-line comments (no newlines are +permitted between the ``{#`` and ``#}`` delimiters). If you need to comment +out a multiline portion of the template, see the ``comment`` tag, below__. + +__ comment_ + Template inheritance ==================== @@ -843,10 +849,11 @@ The first argument is a path to a view function in the format should be comma-separated values that will be used as positional and keyword arguments in the URL. All arguments required by the URLconf should be present. -For example, suppose you have a view, ``app_name.client``, whose URLconf takes -a client ID. The URLconf line might look like this:: +For example, suppose you have a view, ``app_views.client``, whose URLconf +takes a client ID (here, ``client()`` is a method inside the views file +``app_views.py``). The URLconf line might look like this:: - ('^client/(\d+)/$', 'app_name.client') + ('^client/(\d+)/$', 'app_views.client') If this app's URLconf is included into the project's URLconf under a path such as this:: @@ -855,7 +862,7 @@ such as this:: ...then, in a template, you can create a link to this view like this:: - {% url app_name.client client.id %} + {% url app_views.client client.id %} The template tag will output the string ``/clients/client/123/``. diff --git a/docs/templates_python.txt b/docs/templates_python.txt index 08a287f572..aaf109b659 100644 --- a/docs/templates_python.txt +++ b/docs/templates_python.txt @@ -294,7 +294,8 @@ return a dictionary of items to be merged into the context. By default, ("django.core.context_processors.auth", "django.core.context_processors.debug", - "django.core.context_processors.i18n") + "django.core.context_processors.i18n", + "django.core.context_processors.media") Each processor is applied in order. That means, if one processor adds a variable to the context and a second processor adds a variable with the same @@ -390,6 +391,15 @@ See the `internationalization docs`_ for more. .. _LANGUAGE_CODE setting: ../settings/#language-code .. _internationalization docs: ../i18n/ +django.core.context_processors.media +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If ``TEMPLATE_CONTEXT_PROCESSORS`` contains this processors, every +``RequestContext`` will contain ``MEDIA_URL``, providing the +value of the `MEDIA_URL setting`_. + +.. _MEDIA_URL setting: ../settings/#media-url + django.core.context_processors.request ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/testing.txt b/docs/testing.txt index 92edf46e09..4a6d5694f5 100644 --- a/docs/testing.txt +++ b/docs/testing.txt @@ -4,7 +4,7 @@ Testing Django applications Automated testing is an extremely useful bug-killing tool for the modern Web developer. You can use a collection of tests -- a **test suite** -- to -to solve, or avoid, a number of problems: +solve, or avoid, a number of problems: * When you're writing new code, you can use tests to validate your code works as expected. @@ -571,6 +571,16 @@ database settings will the same as they would be for the project normally. If you wish to use a name other than the default for the test database, you can use the ``TEST_DATABASE_NAME`` setting to provide a name. + +**New in Django development version:** If you wish to have fine-grained +control over the character set encoding used in your database, you can control +this with the ``TEST_DATABASE_CHARSET`` setting. For MySQL users, you can also +control the particular collation used by the test database with the +``TEST_DATABASE_COLLATION`` setting. Refer to the settings_ documentation for +details of these advanced settings. + +.. _settings: ../settings/ + The test database is created by the user in the ``DATABASE_USER`` setting. This user needs to have sufficient privileges to create a new database on the system. diff --git a/docs/tutorial03.txt b/docs/tutorial03.txt index 8bb63791aa..41febe021d 100644 --- a/docs/tutorial03.txt +++ b/docs/tutorial03.txt @@ -60,9 +60,10 @@ arguments from the dictionary (an optional third item in the tuple). For more on ``HTTPRequest`` objects, see the `request and response documentation`_. For more details on URLconfs, see the `URLconf documentation`_. -When you ran ``python manage.py startproject mysite`` at the beginning of +When you ran ``python django-admin.py startproject mysite`` at the beginning of Tutorial 1, it created a default URLconf in ``mysite/urls.py``. It also -automatically set your ``ROOT_URLCONF`` setting to point at that file:: +automatically set your ``ROOT_URLCONF`` setting (in ``settings.py``) to point +at that file:: ROOT_URLCONF = 'mysite.urls' diff --git a/docs/tutorial04.txt b/docs/tutorial04.txt index 6fee842f8b..8aa9379c91 100644 --- a/docs/tutorial04.txt +++ b/docs/tutorial04.txt @@ -48,6 +48,7 @@ So let's create a ``vote()`` function in ``mysite/polls/views.py``:: from django.shortcuts import get_object_or_404, render_to_response from django.http import HttpResponseRedirect + from django.core.urlresolvers import reverse from mysite.polls.models import Choice, Poll # ... def vote(request, poll_id): @@ -66,7 +67,7 @@ So let's create a ``vote()`` function in ``mysite/polls/views.py``:: # Always return an HttpResponseRedirect after successfully dealing # with POST data. This prevents data from being posted twice if a # user hits the Back button. - return HttpResponseRedirect('/polls/%s/results/' % p.id) + return HttpResponseRedirect(reverse('results', args=(p.id,))) This code includes a few things we haven't covered yet in this tutorial: @@ -86,13 +87,28 @@ This code includes a few things we haven't covered yet in this tutorial: * After incrementing the choice count, the code returns an ``HttpResponseRedirect`` rather than a normal ``HttpResponse``. ``HttpResponseRedirect`` takes a single argument: the URL to which the - user will be redirected. You should leave off the "http://" and domain - name if you can. That helps your app become portable across domains. + user will be redirected (see the following point for how we construct + the URL in this case). As the Python comment above points out, you should always return an ``HttpResponseRedirect`` after successfully dealing with POST data. This tip isn't specific to Django; it's just good Web development practice. + * We are using the ``reverse()`` function in the ``HttpResponseRedirect`` + constructor in this example. This function helps avoid having to + hardcode a URL in the view function. It is given the name of the view + that we want to pass control to and the variable portion of the URL + pattern that points to that view. In this case, using the URLConf we set + up in Tutorial 3, this ``reverse()`` call will return a string like :: + + '/polls/3/results/' + + ... where the ``3`` is the value of ``p.id``. This redirected URL will + then call the ``'results'`` view to display the final page. + + For more information about ``reverse()``, see the `URL dispatcher`_ + documentation. + As mentioned in Tutorial 3, ``request`` is a ``HTTPRequest`` object. For more on ``HTTPRequest`` objects, see the `request and response documentation`_. @@ -121,6 +137,7 @@ results page that gets updated each time you vote. If you submit the form without having chosen a choice, you should see the error message. .. _request and response documentation: ../request_response/ +.. _URL dispatcher: ../url_dispatch#reverse Use generic views: Less code is better ====================================== @@ -256,4 +273,8 @@ installments: * Advanced admin features: Permissions * Advanced admin features: Custom JavaScript +In the meantime, you can read through the rest of the `Django documentation`_ +and start writing your own applications. + .. _Tutorial 3: ../tutorial03/ +.. _Django documentation: http://www.djangoproject.com/documentation/ diff --git a/docs/url_dispatch.txt b/docs/url_dispatch.txt index 39eed0625b..1a2efe605a 100644 --- a/docs/url_dispatch.txt +++ b/docs/url_dispatch.txt @@ -551,3 +551,37 @@ not restricted to valid Python names. Putting a prefix on your URL names, perhaps derived from the application name, will decrease the chances of collision. We recommend something like ``myapp-comment`` instead of ``comment``. + +Utility methods +=============== + +reverse() +--------- + +If you need to use something similar to the ``{% url %}`` template tag in your +code, Django provides the ``django.core.urlresolvers.reverse()``. The +``reverse()`` function has the following signature:: + + reverse(viewname, urlconf=None, args=None, kwargs=None) + +The view name is either the function name or the `URL pattern name`_. +Normally you will not need to worry about the ``urlconf`` parameter and will +only pass in the positional and keyword arguments to use in the url matching. +For example:: + + from django.core.urlresolvers import reverse + + def myview(request): + return HttpResponseRedirect(reverse('arch-summary', args=[1945])) + +.. _URL pattern name: `Naming URL patterns`_ + +permalink() +----------- + +The ``permalink()`` decorator is useful for writing short methods that return +a full URL path. For example, a model's ``get_absolute_url()`` method. Refer +to the `model API documentation`_ for more information about ``permalink()``. + +.. _model API documentation: ../model-api/#the-permalink-decorator + diff --git a/tests/regressiontests/forms/tests.py b/tests/regressiontests/forms/tests.py index ba5beed5e5..4844267b43 100644 --- a/tests/regressiontests/forms/tests.py +++ b/tests/regressiontests/forms/tests.py @@ -3655,6 +3655,25 @@ u' id="header"' u' class="news" title="Read this"' >>> flatatt({}) u'' + +#################################### +# Test accessing errors in clean() # +#################################### + +>>> class UserForm(Form): +... username = CharField(max_length=10) +... password = CharField(widget=PasswordInput) +... def clean(self): +... data = self.cleaned_data +... if not self.errors: +... data['username'] = data['username'].lower() +... return data + +>>> f = UserForm({'username': 'SirRobin', 'password': 'blue'}) +>>> f.is_valid() +True +>>> f.cleaned_data['username'] +u'sirrobin' """ __test__ = { diff --git a/tests/regressiontests/serializers_regress/models.py b/tests/regressiontests/serializers_regress/models.py index 999b79ccaf..3b9c228d4c 100644 --- a/tests/regressiontests/serializers_regress/models.py +++ b/tests/regressiontests/serializers_regress/models.py @@ -129,6 +129,9 @@ class M2MSelfData(models.Model): class FKDataToField(models.Model): data = models.ForeignKey(UniqueAnchor, null=True, to_field='data') +class FKDataToO2O(models.Model): + data = models.ForeignKey(O2OData, null=True) + # The following test classes are for validating the # deserialization of objects that use a user-defined # field as the primary key. diff --git a/tests/regressiontests/serializers_regress/tests.py b/tests/regressiontests/serializers_regress/tests.py index f7573e39c3..7a7b8bde1f 100644 --- a/tests/regressiontests/serializers_regress/tests.py +++ b/tests/regressiontests/serializers_regress/tests.py @@ -205,6 +205,8 @@ The end."""), (fk_obj, 451, FKDataToField, "UAnchor 2"), (fk_obj, 452, FKDataToField, None), + (fk_obj, 460, FKDataToO2O, 300), + (data_obj, 500, Anchor, "Anchor 3"), (data_obj, 501, Anchor, "Anchor 4"), (data_obj, 502, UniqueAnchor, "UAnchor 2"), -- cgit v1.2.1