summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Kocherhans <joseph@jkocherhans.com>2007-03-01 00:07:42 +0000
committerJoseph Kocherhans <joseph@jkocherhans.com>2007-03-01 00:07:42 +0000
commitb0bbdc744d17565ae957ed9cad685c2dc47a3d84 (patch)
tree58bebcadaf689113b128aa6e5a0f9f83fd426af7
parent811163d24e66d9c1ab9dbb6f69aa368d35a13df8 (diff)
Merged to [4656]
git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@4657 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--AUTHORS1
-rw-r--r--django/conf/locale/it/LC_MESSAGES/django.mobin32320 -> 40468 bytes
-rw-r--r--django/conf/locale/it/LC_MESSAGES/django.po2791
-rw-r--r--django/conf/locale/it/LC_MESSAGES/djangojs.mobin1613 -> 1643 bytes
-rw-r--r--django/conf/locale/it/LC_MESSAGES/djangojs.po96
-rw-r--r--django/contrib/admin/media/css/forms.css4
-rw-r--r--django/db/models/query.py38
-rw-r--r--django/utils/dateformat.py6
-rw-r--r--docs/authentication.txt2
-rw-r--r--docs/db-api.txt15
-rw-r--r--docs/django-admin.txt2
-rw-r--r--docs/install.txt2
-rw-r--r--docs/settings.txt6
-rw-r--r--docs/templates.txt1
-rw-r--r--extras/django_bash_completion24
-rw-r--r--tests/modeltests/select_related/__init__.py0
-rw-r--r--tests/modeltests/select_related/models.py152
-rw-r--r--tests/regressiontests/bug639/tests.py9
-rw-r--r--tests/regressiontests/dateformat/tests.py2
19 files changed, 1856 insertions, 1295 deletions
diff --git a/AUTHORS b/AUTHORS
index b4abfcf9cc..521a210900 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -118,6 +118,7 @@ answer newbie questions, and generally made Django that much better:
konrad@gwu.edu
lakin.wecker@gmail.com
Stuart Langridge <http://www.kryogenix.org/>
+ Nicola Larosa <nico@teknico.net>
Eugene Lazutkin <http://lazutkin.com/blog/>
Jeong-Min Lee <falsetru@gmail.com>
Christopher Lenz <http://www.cmlenz.net/>
diff --git a/django/conf/locale/it/LC_MESSAGES/django.mo b/django/conf/locale/it/LC_MESSAGES/django.mo
index 6b7dd0f01f..584531c9b2 100644
--- a/django/conf/locale/it/LC_MESSAGES/django.mo
+++ b/django/conf/locale/it/LC_MESSAGES/django.mo
Binary files differ
diff --git a/django/conf/locale/it/LC_MESSAGES/django.po b/django/conf/locale/it/LC_MESSAGES/django.po
index ecc1cfd159..94a83048be 100644
--- a/django/conf/locale/it/LC_MESSAGES/django.po
+++ b/django/conf/locale/it/LC_MESSAGES/django.po
@@ -1,356 +1,729 @@
+# translation of django.po to Italiano
# Italian translation of Django.
# Copyright (C) 2006 the Lawrence Journal-World
# This file is distributed under the same license as the Django package.
+#
# Carlo C8E Miron <carlo.miron AT gmail.com>, 2006.
-#
-#
+# Nicola 'tekNico' Larosa <nico AT tekNico.net>, 2007.
+# Nicola Larosa <nico@tekNico.net>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: Django pre-1.0\n"
+"Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-05-16 10:12+0200\n"
-"PO-Revision-Date: 2006-05-21 23:45+0200\n"
-"Last-Translator: Carlo C8E Miron <carlo.miron AT gmail.com>\n"
-"Language-Team: Italian <Django-I18N@googlegroups.com>\n"
+"POT-Creation-Date: 2007-02-26 20:44+0100\n"
+"PO-Revision-Date: 2007-02-27 20:06+0100\n"
+"Last-Translator: Nicola Larosa <nico@tekNico.net>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.2\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language-Team: Italiano\n"
-#: contrib/comments/models.py:67 contrib/comments/models.py:166
-msgid "object ID"
-msgstr "ID dell'oggetto"
+#: db/models/manipulators.py:307
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s·con questo·%(type)s·esiste già per questo·%(field)s."
-#: contrib/comments/models.py:68
-msgid "headline"
-msgstr "intestazione"
+#: db/models/manipulators.py:308 contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:337 contrib/admin/views/main.py:339
+msgid "and"
+msgstr "e"
-#: contrib/comments/models.py:69 contrib/comments/models.py:90
-#: contrib/comments/models.py:167
-msgid "comment"
-msgstr "commento"
+#: db/models/fields/related.py:53
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Inserire un %s valido."
-#: contrib/comments/models.py:70
-msgid "rating #1"
-msgstr "valutazione #1"
+#: db/models/fields/related.py:642
+msgid "Separate multiple IDs with commas."
+msgstr "Separare ID multipli con virgole."
-#: contrib/comments/models.py:71
-msgid "rating #2"
-msgstr "valutazione #2"
+#: db/models/fields/related.py:644
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Tenere premuto \"Control\", o \"Command\" su Mac, per selezionarne più di uno."
-#: contrib/comments/models.py:72
-msgid "rating #3"
-msgstr "valutazione #3"
+#: db/models/fields/related.py:691
+#, python-format
+msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
+msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
+msgstr[0] "Inserire un ID validi per %(self)s. Il valore %(value)r non è valido."
+msgstr[1] "Inserire un ID validi per %(self)s. I valori %(value)r non sono validi."
-#: contrib/comments/models.py:73
-msgid "rating #4"
-msgstr "valutazione #4"
+#: db/models/fields/__init__.py:42
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s·con questo·%(fieldname)s·esiste già."
-#: contrib/comments/models.py:74
-msgid "rating #5"
-msgstr "valutazione #5"
+#: db/models/fields/__init__.py:116 db/models/fields/__init__.py:273
+#: db/models/fields/__init__.py:609 db/models/fields/__init__.py:620
+#: oldforms/__init__.py:352 newforms/fields.py:78 newforms/fields.py:374
+#: newforms/fields.py:450 newforms/fields.py:461 newforms/models.py:177
+msgid "This field is required."
+msgstr "Questo campo è obbligatorio."
-#: contrib/comments/models.py:75
-msgid "rating #6"
-msgstr "valutazione #6"
+#: db/models/fields/__init__.py:366
+msgid "This value must be an integer."
+msgstr "Questo valore deve essere un intero."
-#: contrib/comments/models.py:76
-msgid "rating #7"
-msgstr "valutazione #7"
+#: db/models/fields/__init__.py:401
+msgid "This value must be either True or False."
+msgstr "Questo valore deve essere True o False."
-#: contrib/comments/models.py:77
-msgid "rating #8"
-msgstr "valutazione #8"
+#: db/models/fields/__init__.py:422
+msgid "This field cannot be null."
+msgstr "Questo campo non può essere nullo."
-#: contrib/comments/models.py:82
-msgid "is valid rating"
-msgstr "valutazione valida"
+#: db/models/fields/__init__.py:456 core/validators.py:147
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Inserire una data valida in formato AAAA-MM-GG."
-#: contrib/comments/models.py:83 contrib/comments/models.py:169
-msgid "date/time submitted"
-msgstr "data/ora di sottomissione"
+#: db/models/fields/__init__.py:525 core/validators.py:156
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Inserire una data/ora valida in formato AAAA-MM-GG OO:MM."
-#: contrib/comments/models.py:84 contrib/comments/models.py:170
-msgid "is public"
-msgstr "pubblico"
+#: db/models/fields/__init__.py:629
+msgid "Enter a valid filename."
+msgstr "Inserire un nome file valido."
-#: contrib/comments/models.py:85 contrib/admin/views/doc.py:289
-msgid "IP address"
-msgstr "indirizzo IP"
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "Arabo"
-#: contrib/comments/models.py:86
-msgid "is removed"
-msgstr "eliminato"
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "Bengali"
-#: contrib/comments/models.py:86
+#: conf/global_settings.py:41
+msgid "Catalan"
+msgstr "Catalano"
+
+#: conf/global_settings.py:42
+msgid "Czech"
+msgstr "Ceco"
+
+#: conf/global_settings.py:43
+msgid "Welsh"
+msgstr "Gallese"
+
+#: conf/global_settings.py:44
+msgid "Danish"
+msgstr "Danese"
+
+#: conf/global_settings.py:45
+msgid "German"
+msgstr "Tedesco"
+
+#: conf/global_settings.py:46
+msgid "Greek"
+msgstr "Greco"
+
+#: conf/global_settings.py:47
+msgid "English"
+msgstr "Inglese"
+
+#: conf/global_settings.py:48
+msgid "Spanish"
+msgstr "Spagnolo"
+
+#: conf/global_settings.py:49
+msgid "Argentinean Spanish"
+msgstr "Spagnolo argentino"
+
+#: conf/global_settings.py:50
+msgid "Finnish"
+msgstr "Finlandese"
+
+#: conf/global_settings.py:51
+msgid "French"
+msgstr "Francese"
+
+#: conf/global_settings.py:52
+msgid "Galician"
+msgstr "Galiziano"
+
+#: conf/global_settings.py:53
+msgid "Hungarian"
+msgstr "Ungherese"
+
+#: conf/global_settings.py:54
+msgid "Hebrew"
+msgstr "Ebraico"
+
+#: conf/global_settings.py:55
+msgid "Icelandic"
+msgstr "Islandese"
+
+#: conf/global_settings.py:56
+msgid "Italian"
+msgstr "Italiano"
+
+#: conf/global_settings.py:57
+msgid "Japanese"
+msgstr "Giapponese"
+
+#: conf/global_settings.py:58
+msgid "Kannada"
+msgstr "Kannada"
+
+#: conf/global_settings.py:59
+msgid "Latvian"
+msgstr "Lettone"
+
+#: conf/global_settings.py:60
+msgid "Macedonian"
+msgstr "Macedone"
+
+#: conf/global_settings.py:61
+msgid "Dutch"
+msgstr "Olandese"
+
+#: conf/global_settings.py:62
+msgid "Norwegian"
+msgstr "Norvegese"
+
+#: conf/global_settings.py:63
+msgid "Polish"
+msgstr "Polacco"
+
+#: conf/global_settings.py:64
+msgid "Brazilian"
+msgstr "Brasiliano"
+
+#: conf/global_settings.py:65
+msgid "Romanian"
+msgstr "Rumeno"
+
+#: conf/global_settings.py:66
+msgid "Russian"
+msgstr "Russo"
+
+#: conf/global_settings.py:67
+msgid "Slovak"
+msgstr "Slovacco"
+
+#: conf/global_settings.py:68
+msgid "Slovenian"
+msgstr "Sloveno"
+
+#: conf/global_settings.py:69
+msgid "Serbian"
+msgstr "Serbo"
+
+#: conf/global_settings.py:70
+msgid "Swedish"
+msgstr "Svedese"
+
+#: conf/global_settings.py:71
+msgid "Tamil"
+msgstr "Tamil"
+
+#: conf/global_settings.py:72
+msgid "Turkish"
+msgstr "Turco"
+
+#: conf/global_settings.py:73
+msgid "Ukrainian"
+msgstr "Ucraino"
+
+#: conf/global_settings.py:74
+msgid "Simplified Chinese"
+msgstr "Cinese semplificato"
+
+#: conf/global_settings.py:75
+msgid "Traditional Chinese"
+msgstr "Cinese tradizionale"
+
+#: core/validators.py:64
+msgid "This value must contain only letters, numbers and underscores."
+msgstr "Questo valore può contenere solo lettere, cifre e sottolineature."
+
+#: core/validators.py:68
msgid ""
-"Check this box if the comment is inappropriate. A \"This comment has been "
-"removed\" message will be displayed instead."
+"This value must contain only letters, numbers, underscores, dashes or "
+"slashes."
msgstr ""
-"Spunta la casella se il commento è inappropriato. Verrà sostituito con un "
-"messaggio \"Questo commento è stato rimosso\"."
+"Questo valore può contenere solo lettere, cifre, sottolineature, trattini e "
+"barre diagonali."
-#: contrib/comments/models/comments.py:31
-msgid "Comment"
-msgstr "Commento"
+#: core/validators.py:72
+msgid "This value must contain only letters, numbers, underscores or hyphens."
+msgstr "Questo valore può contenere solo lettere, cifre, sottolineature e trattini."
-#: contrib/comments/models/comments.py:32
-#: contrib/comments/models.py:91
-msgid "Comments"
-msgstr "Commenti"
+#: core/validators.py:76
+msgid "Uppercase letters are not allowed here."
+msgstr "Non sono ammesse lettere maiuscole."
-#: contrib/comments/models.py:131 contrib/comments/models.py:207
-msgid "Content object"
-msgstr "Contenitore"
+#: core/validators.py:80
+msgid "Lowercase letters are not allowed here."
+msgstr "Non sono ammesse lettere minuscole."
-#: contrib/comments/models.py:159
+#: core/validators.py:87
+msgid "Enter only digits separated by commas."
+msgstr "Inserire solo cifre separate da virgole."
+
+#: core/validators.py:99
+msgid "Enter valid e-mail addresses separated by commas."
+msgstr "Inserire indirizzi e-mail validi separati da virgole."
+
+#: core/validators.py:103
+msgid "Please enter a valid IP address."
+msgstr "Inserire un indirizzo IP valido."
+
+#: core/validators.py:107
+msgid "Empty values are not allowed here."
+msgstr "È necessario inserire un valore."
+
+#: core/validators.py:111
+msgid "Non-numeric characters aren't allowed here."
+msgstr "Sono ammessi soltanto caratteri numerici."
+
+#: core/validators.py:115
+msgid "This value can't be comprised solely of digits."
+msgstr "Questo valore non può essere composto solo da cifre."
+
+#: core/validators.py:120 newforms/fields.py:126
+msgid "Enter a whole number."
+msgstr "Inserire un numero intero."
+
+#: core/validators.py:124
+msgid "Only alphabetical characters are allowed here."
+msgstr "Sono ammessi solo caratteri alfabetici."
+
+#: core/validators.py:139
+msgid "Year must be 1900 or later."
+msgstr "L'anno deve essere 1900 o successivo."
+
+#: core/validators.py:143
#, python-format
+msgid "Invalid date: %s."
+msgstr "Data non valida: %s."
+
+#: core/validators.py:152
+msgid "Enter a valid time in HH:MM format."
+msgstr "Inserire un orario valido in formato OO:MM."
+
+#: core/validators.py:161 newforms/fields.py:269
+msgid "Enter a valid e-mail address."
+msgstr "Inserire un indirizzo e-mail valido."
+
+#: core/validators.py:173 core/validators.py:444 oldforms/__init__.py:667
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Non è stato inviato alcun file. Verificare il tipo di codifica della form."
+
+#: core/validators.py:177
msgid ""
-"Posted by %(user)s at %(date)s\n"
-"\n"
-"%(comment)s\n"
-"\n"
-"http://%(domain)s%(url)s"
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr "Caricare un'immagine valida. Il file caricato non è un'immagine o è corrotto."
+
+#: core/validators.py:184
+#, python-format
+msgid "The URL %s does not point to a valid image."
+msgstr "La URL %s non punta ad un'immagine valida."
+
+#: core/validators.py:188
+#, python-format
+msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
+msgstr "I numeri di telefono devono essere in formato XXX-XXX-XXXX. \"%s\" non è valido."
+
+#: core/validators.py:196
+#, python-format
+msgid "The URL %s does not point to a valid QuickTime video."
+msgstr "La URL %s non punta ad un video QuickTime valido."
+
+#: core/validators.py:200
+msgid "A valid URL is required."
+msgstr "Inserire una URL valida."
+
+#: core/validators.py:214
+#, python-format
+msgid ""
+"Valid HTML is required. Specific errors are:\n"
+"%s"
msgstr ""
-"Commento di %(user)s del %(date)s\n"
-"\n"
-"%(comment)s\n"
-"\n"
-"http://%(domain)s%(url)s"
+"È richiesto HTML valido. Gli errori sono i seguenti:\n"
+"%s"
-#: contrib/comments/models.py:168
-msgid "person's name"
-msgstr "nome della persona"
+#: core/validators.py:221
+#, python-format
+msgid "Badly formed XML: %s"
+msgstr "XML malformato: %s"
-#: contrib/comments/models.py:171
-msgid "ip address"
-msgstr "indirizzo IP"
+#: core/validators.py:238
+#, python-format
+msgid "Invalid URL: %s"
+msgstr "URL non valida: %s"
-#: contrib/comments/models.py:173
-msgid "approved by staff"
-msgstr "approvato dallo staff"
+#: core/validators.py:243 core/validators.py:245
+#, python-format
+msgid "The URL %s is a broken link."
+msgstr "La URL %s è un link non funzionante."
-#: contrib/comments/models.py:176
-msgid "free comment"
-msgstr "commento libero"
+#: core/validators.py:251
+msgid "Enter a valid U.S. state abbreviation."
+msgstr "Inserire un valido nome di stato USA abbreviato."
-#: contrib/comments/models.py:177
-msgid "free comments"
-msgstr "commenti liberi"
+#: core/validators.py:265
+#, 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] "Moderare i termini: la parola %s non è ammessa."
+msgstr[1] "Moderare i termini: le parole %s non sono ammesse."
-#: contrib/comments/models.py:233
-msgid "score"
-msgstr "punteggio"
+#: core/validators.py:272
+#, python-format
+msgid "This field must match the '%s' field."
+msgstr "Questo campo deve corrispondere al campo '%s'."
-#: contrib/comments/models.py:234
-msgid "score date"
-msgstr "data punteggio"
+#: core/validators.py:291
+msgid "Please enter something for at least one field."
+msgstr "Inserire qualcosa in almeno un campo."
-#: contrib/comments/models.py:237
-msgid "karma score"
-msgstr "livello karma"
+#: core/validators.py:300 core/validators.py:311
+msgid "Please enter both fields or leave them both empty."
+msgstr "Inserire entrambi i campi o lasciarli entrambi vuoti."
-#: contrib/comments/models.py:238
-msgid "karma scores"
-msgstr "livelli karma"
+#: core/validators.py:319
+#, python-format
+msgid "This field must be given if %(field)s is %(value)s"
+msgstr "Questo campo è obbligatorio se %(field)s è %(value)s"
-#: contrib/comments/models.py:242
+#: core/validators.py:332
#, python-format
-msgid "%(score)d rating by %(user)s"
-msgstr "valutazione: %(score)d da %(user)s"
+msgid "This field must be given if %(field)s is not %(value)s"
+msgstr "Questo campo è obbligatorio se %(field)s non è %(value)s"
-#: contrib/comments/models.py:258
+#: core/validators.py:351
+msgid "Duplicate values are not allowed."
+msgstr "Non sono ammessi valori duplicati."
+
+#: core/validators.py:366
#, python-format
-msgid ""
-"This comment was flagged by %(user)s:\n"
-"\n"
-"%(text)s"
-msgstr ""
-"Questo commento ha un flag di %(user)s:\n"
-"\n"
-"%(text)s"
+msgid "This value must be between %s and %s."
+msgstr "Questo valore deve essere compreso tra %s e %s."
-#: contrib/comments/models.py:265
-msgid "flag date"
-msgstr "data flag"
+#: core/validators.py:368
+#, python-format
+msgid "This value must be at least %s."
+msgstr "Questo valore deve essere almeno pari a %s."
-#: contrib/comments/models.py:268
-msgid "user flag"
-msgstr "flag utente"
+#: core/validators.py:370
+#, python-format
+msgid "This value must be no more than %s."
+msgstr "Questo valore non deve essere maggiore di %s."
-#: contrib/comments/models.py:269
-msgid "user flags"
-msgstr "flag utente"
+#: core/validators.py:406
+#, python-format
+msgid "This value must be a power of %s."
+msgstr "Questo valore deve essere una potenza di %s."
-#: contrib/comments/models.py:273
+#: core/validators.py:417
+msgid "Please enter a valid decimal number."
+msgstr "Inserire un numero decimale valido."
+
+#: core/validators.py:421
#, python-format
-msgid "Flag by %r"
-msgstr "Flag da %r"
+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] "Inserire un numero decimale con non più di %s cifra in totale."
+msgstr[1] "Inserire un numero decimale con non più di %s cifre in totale."
-#: contrib/comments/models/comments.py:278
-#: contrib/comments/models.py:278
-msgid "deletion date"
-msgstr "data eliminazione"
+#: core/validators.py:424
+#, 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] "Inserire un numero decimale la cui parte intera sia composta da non più di %s cifra."
+msgstr[1] "Inserire un numero decimale la cui parte intera sia composta da non più di %s cifre."
-#: contrib/comments/models.py:280
-msgid "moderator deletion"
-msgstr "rimozione da moderatore"
+#: core/validators.py:427
+#, 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] "Inserire un decimale con non più di %s cifra decimale."
+msgstr[1] "Inserire un decimale con non più di %s cifre decimali."
-#: contrib/comments/models.py:281
-msgid "moderator deletions"
-msgstr "rimozioni da moderatore"
+#: core/validators.py:437
+#, python-format
+msgid "Make sure your uploaded file is at least %s bytes big."
+msgstr "Verificare che il file caricato sia grande almeno %s byte."
-#: contrib/comments/models.py:285
+#: core/validators.py:438
#, python-format
-msgid "Moderator deletion by %r"
-msgstr "Rimozione da moderatore di %r"
+msgid "Make sure your uploaded file is at most %s bytes big."
+msgstr "Verificare che il file caricato non sia più grande di %s byte."
-#: contrib/comments/views/karma.py:19
-msgid "Anonymous users cannot vote"
-msgstr "Gli utenti anonimi non possono votare"
+#: core/validators.py:455
+msgid "The format for this field is wrong."
+msgstr "Il formato di questo campo non è valido."
-#: contrib/comments/views/karma.py:23
-msgid "Invalid comment ID"
-msgstr "ID commento non valido"
+#: core/validators.py:470
+msgid "This field is invalid."
+msgstr "Questo campo non è valido."
-#: contrib/comments/views/karma.py:25
-msgid "No voting for yourself"
-msgstr "Non votare per te stesso"
+#: core/validators.py:506
+#, python-format
+msgid "Could not retrieve anything from %s."
+msgstr "Impossibile recuperare alcunché da %s."
+
+#: core/validators.py:509
+#, python-format
+msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
+msgstr "La URL %(url)s ha restituito un header Content-Type non valido: '%(contenttype)s'."
+
+#: core/validators.py:542
+#, python-format
+msgid ""
+"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
+"\"%(start)s\".)"
+msgstr "Chiudere il tag %(tag)s a linea %(line)s. (La linea inizia con \"%(start)s\".)"
-#: contrib/comments/views/comments.py:28
+#: core/validators.py:546
+#, python-format
msgid ""
-"This rating is required because you've entered at least one other rating."
+"Some text starting on line %(line)s is not allowed in that context. (Line "
+"starts with \"%(start)s\".)"
msgstr ""
-"Questa valutazione è obbligatoria perché hai inserito almeno un'altra valutazione"
+"Il testo che comincia a linea %(line)s non e' ammesso in questo contesto. "
+"(La linea comincia con \"%(start)s\".)"
-#: contrib/comments/views/comments.py:112
+#: core/validators.py:551
#, python-format
msgid ""
-"This comment was posted by a user who has posted fewer than %(count)s "
-"comment:\n"
-"\n"
-"%(text)s"
-msgid_plural ""
-"This comment was posted by a user who has posted fewer than %(count)s "
-"comments:\n"
-"\n"
-"%(text)s"
-msgstr[0] ""
-"Commento di un utente autore di meno di %(count)s commento:\n"
-"\n"
-"%(text)s"
-msgstr[1] ""
-"Commento di un utente autore di meno di %(count)s commenti:\n"
-"\n"
-"%(text)s"
-""
+"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
+"(start)s\".)"
+msgstr "\"%(attr)s\" a linea %(line)s non è un attributo valido. (La linea comincia con \"%(start)s\".)"
-#: contrib/comments/views/comments.py:117
+#: core/validators.py:556
#, python-format
msgid ""
-"This comment was posted by a sketchy user:\n"
-"\n"
-"%(text)s"
+"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
+"(start)s\".)"
msgstr ""
-"Commento di un utente \"sketchy\":\n"
-"\n"
-"%(text)s"
+"\"<%(tag)s>\" a linea %(line)s non è un tag valido. (La linea comincia con \"%"
+"(start)s\".)"
-#: contrib/comments/views/comments.py:189
-#: contrib/comments/views/comments.py:280
-msgid "Only POSTs are allowed"
-msgstr "Sono ammessi solo POST"
+#: core/validators.py:560
+#, python-format
+msgid ""
+"A tag on line %(line)s is missing one or more required attributes. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"Un tag a linea %(line)s manca di uno o più attributi richiesti. (La linea "
+"comincia con \"%(start)s\".)"
-#: contrib/comments/views/comments.py:193
-#: contrib/comments/views/comments.py:284
-msgid "One or more of the required fields wasn't submitted"
-msgstr "Uno o più dei campi richiesti non sono stati sottomessi"
+#: core/validators.py:565
+#, python-format
+msgid ""
+"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
+"starts with \"%(start)s\".)"
+msgstr ""
+"L'attributo \"%(attr)s\" a linea %(line)s ha un valore non valido. (La "
+"linea comincia con \"%(start)s\".)"
-#: contrib/comments/views/comments.py:197
-#: contrib/comments/views/comments.py:286
-msgid "Somebody tampered with the comment form (security violation)"
-msgstr "Qualcuno ha alterato il modulo di commento (violazione di sicurezza)"
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "I due campi parola chiave non corrispondono."
-#: contrib/comments/views/comments.py:207
-#: contrib/comments/views/comments.py:292
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Un utente con questo nome·è già presente."
+
+#: contrib/auth/forms.py:53
msgid ""
-"The comment form had an invalid 'target' parameter -- the object ID was "
-"invalid"
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr "Il browser web sembra non avere i cookie abilitati. I cookie sono necessari per poter accedere."
+
+#: contrib/auth/forms.py:60 contrib/admin/views/decorators.py:10
+msgid ""
+"Please enter a correct username and password. Note that both fields are case-"
+"sensitive."
msgstr ""
-"Il modulo di commento ha un parametro 'target' non valido -- l'ID dell'oggetto non e` valido"
+"Inserire nome utente e password corretti. Entrambi i campi sono case "
+"sensitive."
-#: contrib/comments/views/comments.py:257
-#: contrib/comments/views/comments.py:321
-msgid "The comment form didn't provide either 'preview' or 'post'"
-msgstr "Il modulo di commento non fornisce 'anteprima' o 'invia'"
+#: contrib/auth/forms.py:62
+msgid "This account is inactive."
+msgstr "Questo account non è attivo."
-#: contrib/comments/templates/comments/form.html:6
-#: contrib/comments/templates/comments/form.html:8
-#: contrib/admin/templates/admin/login.html:17
-msgid "Username:"
-msgstr "Nome utente:"
+#: contrib/auth/forms.py:85
+msgid ""
+"That e-mail address doesn't have an associated user account. Are you sure "
+"you've registered?"
+msgstr "Questo indirizzo email non è associato ad alcun account utente. Sei sicuro di esserti registrato?"
-#: contrib/comments/templates/comments/form.html:6
-#: contrib/admin/templates/admin/login.html:20
-msgid "Password:"
-msgstr "Password:"
+#: contrib/auth/forms.py:117
+msgid "The two 'new password' fields didn't match."
+msgstr "I due campi 'nuova parola chiave' non corrispondono."
-#: contrib/comments/templates/comments/form.html:6
-msgid "Forgotten your password?"
-msgstr "Hai dimenticato la password?"
+#: contrib/auth/forms.py:124
+msgid "Your old password was entered incorrectly. Please enter it again."
+msgstr "La vecchia password non è stata inserita correttamente: va inserita di nuovo."
-#: contrib/comments/templates/comments/form.html:8
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/base.html:23
-#: contrib/admin/templates/admin/delete_confirmation.html:3
-#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/registration/password_change_done.html:3
-#: contrib/admin/templates/registration/password_change_form.html:3
-#: contrib/admin/templates/admin_doc/bookmarklets.html:4
-#: contrib/admin/templates/admin_doc/view_detail.html:4
-#: contrib/admin/templates/admin_doc/template_tag_index.html:5
-#: contrib/admin/templates/admin_doc/template_detail.html:4
-#: contrib/admin/templates/admin_doc/template_filter_index.html:5
-#: contrib/admin/templates/admin_doc/missing_docutils.html:4
-#: contrib/admin/templates/admin_doc/view_index.html:5
-#: contrib/admin/templates/admin_doc/model_detail.html:3
-#: contrib/admin/templates/admin_doc/index.html:4
-#: contrib/admin/templates/admin_doc/model_index.html:5
-msgid "Log out"
-msgstr "Esci"
+#: contrib/auth/models.py:38 contrib/auth/models.py:57
+msgid "name"
+msgstr "nome"
-#: contrib/comments/templates/comments/form.html:12
-msgid "Ratings"
-msgstr "Valutazioni"
+#: contrib/auth/models.py:40
+msgid "codename"
+msgstr "nome in codice"
-#: contrib/comments/templates/comments/form.html:12
-#: contrib/comments/templates/comments/form.html:23
-msgid "Required"
-msgstr "Obbligatorio"
+#: contrib/auth/models.py:42
+msgid "permission"
+msgstr "permesso"
-#: contrib/comments/templates/comments/form.html:12
-#: contrib/comments/templates/comments/form.html:23
-msgid "Optional"
-msgstr "Opzionale"
+#: contrib/auth/models.py:43 contrib/auth/models.py:58
+msgid "permissions"
+msgstr "permessi"
-#: contrib/comments/templates/comments/form.html:23
-msgid "Post a photo"
-msgstr "Invia una foto"
+#: contrib/auth/models.py:60
+msgid "group"
+msgstr "gruppo"
-#: contrib/comments/templates/comments/form.html:27
-#: contrib/comments/templates/comments/freeform.html:5
-msgid "Comment:"
-msgstr "Commento:"
+#: contrib/auth/models.py:61 contrib/auth/models.py:100
+msgid "groups"
+msgstr "gruppi"
-#: contrib/comments/templates/comments/form.html:32
-#: contrib/comments/templates/comments/freeform.html:9
-msgid "Preview comment"
-msgstr "Anteprima commento"
+#: contrib/auth/models.py:90
+msgid "username"
+msgstr "nome utente"
-#: contrib/comments/templates/comments/freeform.html:4
-msgid "Your name:"
-msgstr "Il tuo nome:"
+#: contrib/auth/models.py:90
+msgid ""
+"Required. 30 characters or fewer. Alphanumeric characters only (letters, "
+"digits and underscores)."
+msgstr "Obbligatorio. 30 caratteri o meno. Solo caratteri alfanumerici (lettere, cifre e sottolineature)."
+
+#: contrib/auth/models.py:91
+msgid "first name"
+msgstr "nome"
+
+#: contrib/auth/models.py:92
+msgid "last name"
+msgstr "cognome"
+
+#: contrib/auth/models.py:93
+msgid "e-mail address"
+msgstr "indirizzo e-mail"
+
+#: contrib/auth/models.py:94
+msgid "password"
+msgstr "parola chiave"
+
+#: contrib/auth/models.py:94
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+msgstr "Usare '[algo]$[salt]$[hexdigest]' oppure la maschera di <a href=\"password/\">cambio parola chiave</a>."
+
+#: contrib/auth/models.py:95
+msgid "staff status"
+msgstr "privilegi di staff"
+
+#: contrib/auth/models.py:95
+msgid "Designates whether the user can log into this admin site."
+msgstr "Indica se l'utente può accedere a questo sito di amministrazione."
+
+#: contrib/auth/models.py:96
+msgid "active"
+msgstr "attivo"
+
+#: contrib/auth/models.py:96
+msgid ""
+"Designates whether this user can log into the Django admin. Unselect this "
+"instead of deleting accounts."
+msgstr "Indica se l'utente può accedere all'amministrazione di Django. Deselezionare qui, piuttosto che cancellare gli account."
+
+#: contrib/auth/models.py:97
+msgid "superuser status"
+msgstr "privilegi di superutente"
+
+#: contrib/auth/models.py:97
+msgid ""
+"Designates that this user has all permissions without explicitly assigning "
+"them."
+msgstr "Indica che l'utente ha tutti i privilegi, senza che siano stati assegnati esplicitamente."
+
+#: contrib/auth/models.py:98
+msgid "last login"
+msgstr "ultimo accesso"
+
+#: contrib/auth/models.py:99
+msgid "date joined"
+msgstr "iscritto in data"
+
+#: contrib/auth/models.py:101
+msgid ""
+"In addition to the permissions manually assigned, this user will also get "
+"all permissions granted to each group he/she is in."
+msgstr ""
+"In aggiunta ai privilegi assegnati manualmente, l'utente riceverà anche tutti "
+"i privilegi assegnati ad ogni gruppo cui appartiene."
+
+#: contrib/auth/models.py:102
+msgid "user permissions"
+msgstr "privilegi utente"
+
+#: contrib/auth/models.py:105
+msgid "user"
+msgstr "utente"
+
+#: contrib/auth/models.py:106
+msgid "users"
+msgstr "utenti"
+
+#: contrib/auth/models.py:111
+msgid "Personal info"
+msgstr "Informazioni personali"
+
+#: contrib/auth/models.py:112
+msgid "Permissions"
+msgstr "Privilegi"
+
+#: contrib/auth/models.py:113
+msgid "Important dates"
+msgstr "Date importanti"
+
+#: contrib/auth/models.py:114
+msgid "Groups"
+msgstr "Gruppi"
+
+#: contrib/auth/models.py:258
+msgid "message"
+msgstr "messaggio"
+
+#: contrib/auth/views.py:39
+msgid "Logged out"
+msgstr "Accesso annullato"
+
+#: contrib/admin/models.py:16
+msgid "action time"
+msgstr "data azione"
+
+#: contrib/admin/models.py:19
+msgid "object id"
+msgstr "ID oggetto"
+
+#: contrib/admin/models.py:20
+msgid "object repr"
+msgstr "rappresentazione oggetto"
+
+#: contrib/admin/models.py:21
+msgid "action flag"
+msgstr "flag azione"
+
+#: contrib/admin/models.py:22
+msgid "change message"
+msgstr "messaggio di modifica"
+
+#: contrib/admin/models.py:25
+msgid "log entry"
+msgstr "voce di log"
+
+#: contrib/admin/models.py:26
+msgid "log entries"
+msgstr "voci di log"
#: contrib/admin/filterspecs.py:40
#, python-format
@@ -362,7 +735,7 @@ msgstr ""
"<ul>\n"
#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88
-#: contrib/admin/filterspecs.py:143
+#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169
msgid "All"
msgstr "Tutti"
@@ -386,469 +759,446 @@ msgstr "Questo mese"
msgid "This year"
msgstr "Quest'anno"
-#: contrib/admin/filterspecs.py:143
+#: contrib/admin/filterspecs.py:143 oldforms/__init__.py:572
+#: newforms/widgets.py:170
msgid "Yes"
msgstr "Sì"
-#: contrib/admin/filterspecs.py:143
+#: contrib/admin/filterspecs.py:143 oldforms/__init__.py:572
+#: newforms/widgets.py:170
msgid "No"
msgstr "No"
-#: contrib/admin/filterspecs.py:150
+#: contrib/admin/filterspecs.py:150 oldforms/__init__.py:572
+#: newforms/widgets.py:170
msgid "Unknown"
msgstr "Sconosciuto"
-#: contrib/admin/models.py:16
-msgid "action time"
-msgstr "data azione"
-
-#: contrib/admin/models.py:19
-msgid "object id"
-msgstr "ID dell'oggetto"
-
-#: contrib/admin/models.py:20
-msgid "object repr"
-msgstr "rappresentazione dell'oggetto"
-
-#: contrib/admin/models.py:21
-msgid "action flag"
-msgstr "flag azione"
-
-#: contrib/admin/models.py:22
-msgid "change message"
-msgstr "modifica messaggio"
-
-#: contrib/admin/models.py:25
-msgid "log entry"
-msgstr "voce di log"
-
-#: contrib/admin/models.py:26
-msgid "log entries"
-msgstr "voci di log"
-
-#: contrib/admin/templatetags/admin_list.py:228
-msgid "All dates"
-msgstr "Tutte le date"
-
-#: contrib/admin/views/decorators.py:9 contrib/auth/forms.py:36
-#: contrib/auth/forms.py:41
-msgid ""
-"Please enter a correct username and password. Note that both fields are case-"
-"sensitive."
-msgstr ""
-"Inserire nome utente e password corretti. Entrambi i campi sono case sensitive."
-
-#: contrib/admin/views/decorators.py:23
+#: contrib/admin/views/decorators.py:24
#: contrib/admin/templates/admin/login.html:25
msgid "Log in"
msgstr "Accedi"
-#: contrib/admin/views/decorators.py:61
+#: 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 ""
-"La sessione è scaduta, si prega di accedere nuovamente. I dati sono stati salvati."
+"La sessione è scaduta: occorre accedere nuovamente. I dati inseriti sono stati comunque"
+"salvati."
-#: contrib/admin/views/decorators.py:68
+#: 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 ""
-"Il browser non è configurato per accettare cookie. Abilitarli, ricaricare la pagina e provare di nuovo."
+msgstr "Il browser non sembra configurato per accettare i cookie. Una volta abilitati, ricaricare la pagina e riprovare."
-#: contrib/admin/views/decorators.py:82
+#: contrib/admin/views/decorators.py:83
msgid "Usernames cannot contain the '@' character."
-msgstr "Il nome utente non può contenere il carattere '@'."
+msgstr "I nomi utente non possono contenere il carattere '@'."
-#: contrib/admin/views/decorators.py:84
+#: contrib/admin/views/decorators.py:85
#, python-format
msgid "Your e-mail address is not your username. Try '%s' instead."
-msgstr "Il nome utente non è l'indirizzo e-mail. Provare con '%s'."
+msgstr "Il nome utente non è costituito dall'indirizzo e-mail. Provare con '%s'."
-#: contrib/admin/views/main.py:226
+#: contrib/admin/views/main.py:223
msgid "Site administration"
msgstr "Amministrazione sito"
-#: contrib/admin/views/main.py:410
+#: contrib/admin/views/main.py:257 contrib/admin/views/auth.py:19
#, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully."
-msgstr "L'oggetto %(name)s di tipo \"%(obj)s\" è stato aggiunto."
+msgstr "%(name)s \"%(obj)s\" è stato aggiunto correttamente."
-#: contrib/admin/views/main.py:264 contrib/admin/views/main.py:348
+#: contrib/admin/views/main.py:261 contrib/admin/views/main.py:347
+#: contrib/admin/views/auth.py:24
msgid "You may edit it again below."
-msgstr "Puoi modificarlo nuovamente qui sotto."
+msgstr "È possibile modificarlo nuovamente qui sotto."
-#: contrib/admin/views/main.py:272 contrib/admin/views/main.py:357
+#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356
#, python-format
msgid "You may add another %s below."
-msgstr "Puoi aggiungere un altro %s qui sotto."
+msgstr "È possibile aggiungere un altro %s qui sotto."
-#: contrib/admin/views/main.py:290
+#: contrib/admin/views/main.py:289
#, python-format
msgid "Add %s"
-msgstr "Aggiungi %s"
+msgstr "Aggiungere %s"
-#: contrib/admin/views/main.py:336
+#: contrib/admin/views/main.py:335
#, python-format
msgid "Added %s."
msgstr "Aggiunto %s"
-#: contrib/admin/views/main.py:336 contrib/admin/views/main.py:338
-#: contrib/admin/views/main.py:340
-msgid "and"
-msgstr "e"
-
-#: contrib/admin/views/main.py:338
+#: contrib/admin/views/main.py:337
#, python-format
msgid "Changed %s."
msgstr "Modificato %s."
-#: contrib/admin/views/main.py:340
+#: contrib/admin/views/main.py:339
#, python-format
msgid "Deleted %s."
-msgstr "Rimosso %s"
+msgstr "Cancellato %s"
-#: contrib/admin/views/main.py:343
+#: contrib/admin/views/main.py:342
msgid "No fields changed."
msgstr "Nessun campo modificato."
-#: contrib/admin/views/main.py:346
+#: contrib/admin/views/main.py:345
#, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully."
-msgstr "L'oggetto %(name)s di tipo \"%(obj)s\" è stato modificato."
+msgstr "%(name)s \"%(obj)s\" è stato modificato correttamente."
-#: contrib/admin/views/main.py:354
+#: contrib/admin/views/main.py:353
#, python-format
-msgid ""
-"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
-msgstr ""
-"L'oggetto %(name)s di tipo \"%(obj)s\" è stato aggiunto. Puoi modificarlo nuovamente qui sotto."
+msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
+msgstr "%(name)s \"%(obj)s\" è stato aggiunto correttamente. È possibile modificarlo nuovamente qui sotto."
-#: contrib/admin/views/main.py:392
+#: contrib/admin/views/main.py:391
#, python-format
msgid "Change %s"
-msgstr "Modifica %s"
+msgstr "Modificare %s"
-#: contrib/admin/views/main.py:470
+#: contrib/admin/views/main.py:476
#, python-format
msgid "One or more %(fieldname)s in %(name)s: %(obj)s"
msgstr "Uno o più %(fieldname)s in %(name)s: %(obj)s"
-#: contrib/admin/views/main.py:475
+#: contrib/admin/views/main.py:481
#, python-format
msgid "One or more %(fieldname)s in %(name)s:"
msgstr "Uno o più %(fieldname)s in %(name)s:"
-#: contrib/admin/views/main.py:508
+#: contrib/admin/views/main.py:514
#, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully."
-msgstr "L'oggetto %(name)s di tipo \"%(obj)s\" è stato rimosso."
+msgstr "%(name)s \"%(obj)s\" è stato cancellato correttamente."
-#: contrib/admin/views/main.py:511
+#: contrib/admin/views/main.py:517
msgid "Are you sure?"
msgstr "Sei sicuro?"
-#: contrib/admin/views/main.py:533
+#: contrib/admin/views/main.py:539
#, python-format
msgid "Change history: %s"
-msgstr "Storia delle modifiche: %s"
+msgstr "Tracciato delle modifiche: %s"
-#: contrib/admin/views/main.py:565
+#: contrib/admin/views/main.py:573
#, python-format
msgid "Select %s"
-msgstr "Selezionare %s"
+msgstr "Seleziona %s"
-#: contrib/admin/views/main.py:565
+#: contrib/admin/views/main.py:573
#, python-format
msgid "Select %s to change"
-msgstr "Selezionare %s per modificare"
+msgstr "Seleziona %s per modificare"
-#: contrib/admin/views/doc.py:277 contrib/admin/views/doc.py:286
-#: contrib/admin/views/doc.py:288 contrib/admin/views/doc.py:294
-#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:297
+#: contrib/admin/views/main.py:768
+msgid "Database error"
+msgstr "Errore nel database"
+
+#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48
+#: contrib/admin/views/doc.py:50
+msgid "tag:"
+msgstr "tag:"
+
+#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79
+#: contrib/admin/views/doc.py:81
+msgid "filter:"
+msgstr "filtro:"
+
+#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137
+#: contrib/admin/views/doc.py:139
+msgid "view:"
+msgstr "view:"
+
+#: contrib/admin/views/doc.py:164
+#, python-format
+msgid "App %r not found"
+msgstr "Appl. %r non trovata"
+
+#: contrib/admin/views/doc.py:171
+#, python-format
+msgid "Model %r not found in app %r"
+msgstr "Modello %r non trovato nell'appl. %r"
+
+#: contrib/admin/views/doc.py:183
+#, python-format
+msgid "the related `%s.%s` object"
+msgstr "l'oggetto `%s.%s` collegato"
+
+#: 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 "modello:"
+
+#: contrib/admin/views/doc.py:214
+#, python-format
+msgid "related `%s.%s` objects"
+msgstr "oggetti `%s.%s` collegati"
+
+#: contrib/admin/views/doc.py:219
+#, python-format
+msgid "all %s"
+msgstr "tutti %s"
+
+#: contrib/admin/views/doc.py:224
+#, python-format
+msgid "number of %s"
+msgstr "numero di %s"
+
+#: contrib/admin/views/doc.py:229
+#, python-format
+msgid "Fields on %s objects"
+msgstr "Campi sugli oggetti %s"
+
+#: 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 "Intero"
-#: contrib/admin/views/doc.py:278
+#: contrib/admin/views/doc.py:292
msgid "Boolean (Either True or False)"
msgstr "Booleano (True o False)"
-#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:296
+#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311
#, python-format
msgid "String (up to %(maxlength)s)"
-msgstr "Stringa (massimo %(maxlength)s caratteri)"
+msgstr "Stringa (fino a %(maxlength)s caratteri)"
-#: contrib/admin/views/doc.py:280
+#: contrib/admin/views/doc.py:294
msgid "Comma-separated integers"
msgstr "Interi separati da virgola"
-#: contrib/admin/views/doc.py:281
+#: contrib/admin/views/doc.py:295
msgid "Date (without time)"
msgstr "Data (senza orario)"
-#: contrib/admin/views/doc.py:282
+#: contrib/admin/views/doc.py:296
msgid "Date (with time)"
msgstr "Data (con orario)"
-#: contrib/admin/views/doc.py:283
+#: contrib/admin/views/doc.py:297
msgid "E-mail address"
msgstr "Indirizzo e-mail"
-#: contrib/admin/views/doc.py:284 contrib/admin/views/doc.py:287
+#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:302
msgid "File path"
msgstr "Percorso di file"
-#: contrib/admin/views/doc.py:285
+#: contrib/admin/views/doc.py:300
msgid "Decimal number"
msgstr "Numero decimale"
-#: contrib/admin/views/doc.py:291
+#: contrib/admin/views/doc.py:304 contrib/comments/models.py:85
+msgid "IP address"
+msgstr "indirizzo IP"
+
+#: contrib/admin/views/doc.py:306
msgid "Boolean (Either True, False or None)"
msgstr "Booleano (True, False o None)"
-#: contrib/admin/views/doc.py:292
+#: contrib/admin/views/doc.py:307
msgid "Relation to parent model"
-msgstr "Relazione a modello padre"
+msgstr "Collegamento a modello padre"
-#: contrib/admin/views/doc.py:293
+#: contrib/admin/views/doc.py:308
msgid "Phone number"
msgstr "Numero di telefono"
-#: contrib/admin/views/doc.py:263
-msgid "String (up to 50)"
-msgstr "Stringa (massimo 50 caratteri)"
-
-#: contrib/admin/views/doc.py:298
+#: contrib/admin/views/doc.py:313
msgid "Text"
msgstr "Testo"
-#: contrib/admin/views/doc.py:299
+#: contrib/admin/views/doc.py:314
msgid "Time"
-msgstr "Ora"
+msgstr "Orario"
-#: contrib/admin/views/doc.py:300 contrib/flatpages/models.py:7
+#: contrib/admin/views/doc.py:315 contrib/flatpages/models.py:7
msgid "URL"
msgstr "URL"
-#: contrib/admin/views/doc.py:301
+#: contrib/admin/views/doc.py:316
msgid "U.S. state (two uppercase letters)"
-msgstr "Stato americano (due lettere maiuscole)"
+msgstr "Stato USA (due lettere maiuscole)"
-#: contrib/admin/views/doc.py:302
+#: contrib/admin/views/doc.py:317
msgid "XML text"
msgstr "Testo XML"
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/base.html:23
+#: contrib/admin/views/doc.py:343
+#, python-format
+msgid "%s does not appear to be a urlpattern object"
+msgstr "%s non sembra essere un oggetto urlpattern"
+
+#: contrib/admin/views/auth.py:30
+msgid "Add user"
+msgstr "Aggiungi utente"
+
+#: contrib/admin/views/auth.py:57
+msgid "Password changed successfully."
+msgstr "La parola chiave è stata cambiata correttamente."
+
+#: contrib/admin/views/auth.py:64
+#, python-format
+msgid "Change password: %s"
+msgstr "Cambia la parola chiave: %s"
+
+#: contrib/admin/templatetags/admin_list.py:247
+msgid "All dates"
+msgstr "Tutte le date"
+
+#: contrib/admin/templates/admin/pagination.html:10
+msgid "Show all"
+msgstr "Mostra tutto"
+
#: contrib/admin/templates/admin/delete_confirmation.html:3
#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/registration/password_change_done.html:3
-#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
msgid "Documentation"
msgstr "Documentazione"
-#: contrib/admin/templates/admin/object_history.html:3
-#: contrib/admin/templates/admin/change_list.html:5
-#: contrib/admin/templates/admin/base.html:23
#: contrib/admin/templates/admin/delete_confirmation.html:3
#: contrib/admin/templates/admin/change_form.html:10
-#: contrib/admin/templates/registration/password_change_done.html:3
-#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
+#: contrib/admin/templates/admin/auth/user/change_password.html:15
+#: contrib/admin/templates/admin/auth/user/change_password.html:46
+#: contrib/admin/templates/admin_doc/template_filter_index.html:5
#: contrib/admin/templates/admin_doc/bookmarklets.html:4
-#: contrib/admin/templates/admin_doc/view_detail.html:4
#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_detail.html:3
+#: contrib/admin/templates/admin_doc/missing_docutils.html:4
#: contrib/admin/templates/admin_doc/template_detail.html:4
+#: contrib/admin/templates/admin_doc/view_index.html:5
+#: contrib/admin/templates/admin_doc/model_index.html:5
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+msgid "Change password"
+msgstr "Cambia la parola chiave"
+
+#: contrib/admin/templates/admin/delete_confirmation.html:3
+#: contrib/admin/templates/admin/change_form.html:10
+#: contrib/admin/templates/admin/change_list.html:5
+#: contrib/admin/templates/admin/object_history.html:3
+#: contrib/admin/templates/admin/base.html:25
+#: contrib/admin/templates/admin/auth/user/change_password.html:9
#: contrib/admin/templates/admin_doc/template_filter_index.html:5
+#: contrib/admin/templates/admin_doc/bookmarklets.html:4
+#: contrib/admin/templates/admin_doc/template_tag_index.html:5
+#: contrib/admin/templates/admin_doc/index.html:4
+#: contrib/admin/templates/admin_doc/model_detail.html:3
#: contrib/admin/templates/admin_doc/missing_docutils.html:4
+#: contrib/admin/templates/admin_doc/template_detail.html:4
#: contrib/admin/templates/admin_doc/view_index.html:5
-#: contrib/admin/templates/admin_doc/model_detail.html:3
-#: contrib/admin/templates/admin_doc/index.html:4
#: contrib/admin/templates/admin_doc/model_index.html:5
-msgid "Change password"
-msgstr "Modifica la password"
+#: contrib/admin/templates/admin_doc/view_detail.html:4
+#: contrib/admin/templates/registration/password_change_form.html:3
+#: contrib/admin/templates/registration/password_change_done.html:3
+#: contrib/comments/templates/comments/form.html:6
+msgid "Log out"
+msgstr "Esci"
-#: contrib/admin/templates/admin/object_history.html:5
-#: contrib/admin/templates/admin/500.html:4
-#: contrib/admin/templates/admin/change_list.html:6
-#: contrib/admin/templates/admin/base.html:28
#: contrib/admin/templates/admin/delete_confirmation.html:6
#: contrib/admin/templates/admin/change_form.html:13
-#: contrib/admin/templates/registration/password_change_done.html:4
+#: contrib/admin/templates/admin/change_list.html:6
+#: contrib/admin/templates/admin/object_history.html:5
+#: contrib/admin/templates/admin/500.html:4
+#: contrib/admin/templates/admin/invalid_setup.html:4
+#: contrib/admin/templates/admin/base.html:30
+#: contrib/admin/templates/admin/auth/user/change_password.html:12
+#: contrib/admin/templates/admin_doc/bookmarklets.html:3
#: contrib/admin/templates/registration/password_reset_form.html:4
#: contrib/admin/templates/registration/logged_out.html:4
#: contrib/admin/templates/registration/password_reset_done.html:4
#: contrib/admin/templates/registration/password_change_form.html:4
-#: contrib/admin/templates/admin_doc/bookmarklets.html:3
+#: contrib/admin/templates/registration/password_change_done.html:4
msgid "Home"
msgstr "Pagina iniziale"
-#: contrib/admin/templates/admin/object_history.html:5
-#: contrib/admin/templates/admin/change_form.html:20
-msgid "History"
-msgstr "Storia"
-
-#: contrib/admin/templates/admin/object_history.html:18
-msgid "Date/time"
-msgstr "Data/ora"
-
-#: contrib/admin/templates/admin/object_history.html:19
-msgid "User"
-msgstr "Utente"
-
-#: contrib/admin/templates/admin/object_history.html:20
-msgid "Action"
-msgstr "Azione"
-
-#: contrib/admin/templates/admin/object_history.html:26
-msgid "DATE_WITH_TIME_FULL"
-msgstr "j F Y, H:i"
-
-#: contrib/admin/templates/admin/object_history.html:36
-msgid ""
-"This object doesn't have a change history. It probably wasn't added via this "
-"admin site."
-msgstr ""
-"Questo oggetto non ha cambiamenti storicizzati. Probabilmente non è stato "
-"creato con questo sito di amministrazione."
-
-#: contrib/admin/templates/admin/base_site.html:4
-msgid "Django site admin"
-msgstr "Amministrazione sito Django"
-
-#: contrib/admin/templates/admin/base_site.html:7
-msgid "Django administration"
-msgstr "Amministrazione Django"
-
-#: contrib/admin/templates/admin/500.html:4
-msgid "Server error"
-msgstr "Errore del server"
-
-#: contrib/admin/templates/admin/500.html:6
-msgid "Server error (500)"
-msgstr "Errore del server (500)"
-
-#: contrib/admin/templates/admin/500.html:9
-msgid "Server Error <em>(500)</em>"
-msgstr "Errore del Server <em>(500)</em>"
-
-#: contrib/admin/templates/admin/500.html:10
-msgid ""
-"There's been an error. It's been reported to the site administrators via e-"
-"mail and should be fixed shortly. Thanks for your patience."
-msgstr ""
-"C'è stato un errore. E' stato riportato agli amministratori del sito via e-"
-"mail e verrà risolto a breve. Grazie per la pazienza."
-
-#: contrib/admin/templates/admin/404.html:4
-#: contrib/admin/templates/admin/404.html:8
-msgid "Page not found"
-msgstr "Pagina non trovata"
-
-#: contrib/admin/templates/admin/404.html:10
-msgid "We're sorry, but the requested page could not be found."
-msgstr "Spiacente, ma la pagina richiesta non esiste."
-
-#: contrib/admin/templates/admin/index.html:17
-#, python-format
-msgid "Models available in the %(name)s application."
-msgstr "Modelli disponibili nell'applicazione %(name)s."
-
-#: contrib/admin/templates/admin/index.html:28
-#: contrib/admin/templates/admin/change_form.html:15
-msgid "Add"
-msgstr "Aggiungi"
-
-#: contrib/admin/templates/admin/index.html:34
-msgid "Change"
-msgstr "Modifica"
-
-#: contrib/admin/templates/admin/index.html:44
-msgid "You don't have permission to edit anything."
-msgstr "Non hai i permessi di modificare nulla."
-
-#: contrib/admin/templates/admin/index.html:52
-msgid "Recent Actions"
-msgstr "Azioni Recenti"
-
-#: contrib/admin/templates/admin/index.html:53
-msgid "My Actions"
-msgstr "Azioni Proprie"
-
-#: contrib/admin/templates/admin/index.html:57
-msgid "None available"
-msgstr "Nessuna disponibile"
-
-#: contrib/admin/templates/admin/change_list.html:11
-#, python-format
-msgid "Add %(name)s"
-msgstr "Aggiungi %(name)s"
-
-#: contrib/admin/templates/admin/login.html:22
-msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
-msgstr "Hai <a href=\"/password_reset/\">dimenticato la tua password</a>?"
-
-#: contrib/admin/templates/admin/base.html:23
-msgid "Welcome,"
-msgstr "Benvenuto,"
-
#: contrib/admin/templates/admin/delete_confirmation.html:9
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Delete"
-msgstr "Elimina"
+msgstr "Cancella"
#: contrib/admin/templates/admin/delete_confirmation.html:14
#, python-format
msgid ""
-"Deleting the %(object_name)s '%(object)s' would result in deleting related "
-"objects, but your account doesn't have permission to delete the following "
-"types of objects:"
+"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 ""
-"La rimozione di %(object_name)s '%(object)s' causerebbe la cancellazione "
-"degli oggetti relazionati, ma il tuo account non ha i permessi per rimuovere "
-"i seguenti tipi di oggetti:"
+"La cancellazione di %(object_name)s '%(escaped_object)s' causerebbe la cancellazione "
+"di oggetti collegati, ma questo account non ha i permessi per cancellare gli oggetti dei seguenti tipi:"
#: contrib/admin/templates/admin/delete_confirmation.html:21
#, python-format
msgid ""
-"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
-"the following related items will be deleted:"
+"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? "
+"All of the following related items will be deleted:"
msgstr ""
-"Sei sicuro di voler rimuovere %(object_name)s \"%(object)s\"? I seguenti "
-"oggetti relazionati saranno rimossi:"
+"Sei sicuro di voler rimuovere %(object_name)s \"%(escaped_object)s\"? Tutti i seguenti "
+"oggetti collegati saranno cancellati:"
#: contrib/admin/templates/admin/delete_confirmation.html:26
msgid "Yes, I'm sure"
msgstr "Sì, sono sicuro"
-#: contrib/admin/templates/admin/filter.html:2
-#, python-format
-msgid " By %(title)s "
-msgstr " Per %(title)s "
+#: contrib/admin/templates/admin/404.html:4
+#: contrib/admin/templates/admin/404.html:8
+msgid "Page not found"
+msgstr "Pagina non trovata"
-#: contrib/admin/templates/admin/search_form.html:8
-msgid "Go"
-msgstr "Vai"
+#: contrib/admin/templates/admin/404.html:10
+msgid "We're sorry, but the requested page could not be found."
+msgstr "Spiacenti, ma la pagina richiesta non è stata trovata."
+
+#: contrib/admin/templates/admin/change_form.html:15
+#: contrib/admin/templates/admin/index.html:28
+msgid "Add"
+msgstr "Aggiungi"
#: contrib/admin/templates/admin/change_form.html:21
+#: contrib/admin/templates/admin/object_history.html:5
+msgid "History"
+msgstr "Storia"
+
+#: contrib/admin/templates/admin/change_form.html:22
msgid "View on site"
msgstr "Vedi sul sito"
-#: contrib/admin/templates/admin/change_form.html:30
+#: 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] "Correggere l'errore qui sotto."
msgstr[1] "Correggere gli errori qui sotto."
-#: contrib/admin/templates/admin/change_form.html:48
+#: contrib/admin/templates/admin/change_form.html:50
msgid "Ordering"
msgstr "Ordinamento"
-#: contrib/admin/templates/admin/change_form.html:51
+#: contrib/admin/templates/admin/change_form.html:53
msgid "Order:"
-msgstr "Ordinamento:"
+msgstr "Ordine:"
+
+#: contrib/admin/templates/admin/filter.html:2
+#, python-format
+msgid " By %(filter_title)s "
+msgstr " Per %(filter_title)s "
#: contrib/admin/templates/admin/submit_line.html:4
msgid "Save as new"
@@ -856,130 +1206,174 @@ msgstr "Salva come nuovo"
#: contrib/admin/templates/admin/submit_line.html:5
msgid "Save and add another"
-msgstr "Salva e crea nuovo"
+msgstr "Salva e aggiungi un altro"
#: contrib/admin/templates/admin/submit_line.html:6
msgid "Save and continue editing"
-msgstr "Salva e continua"
+msgstr "Salva e continua le modifiche"
#: contrib/admin/templates/admin/submit_line.html:7
msgid "Save"
msgstr "Salva"
-#: contrib/admin/templates/registration/password_change_done.html:4
-#: contrib/admin/templates/registration/password_change_form.html:4
-#: contrib/admin/templates/registration/password_change_form.html:6
-#: contrib/admin/templates/registration/password_change_form.html:10
-msgid "Password change"
-msgstr "Modifica la password"
+#: contrib/admin/templates/admin/change_list.html:12
+#, python-format
+msgid "Add %(name)s"
+msgstr "Aggiungi %(name)s"
-#: contrib/admin/templates/registration/password_change_done.html:6
-#: contrib/admin/templates/registration/password_change_done.html:10
-msgid "Password change successful"
-msgstr "La password è stata cambiata"
+#: contrib/admin/templates/admin/index.html:17
+#, python-format
+msgid "Models available in the %(name)s application."
+msgstr "Modelli disponibili nell'applicazione %(name)s."
-#: contrib/admin/templates/registration/password_change_done.html:12
-msgid "Your password was changed."
-msgstr "La tua password è stata modificata."
+#: contrib/admin/templates/admin/index.html:18
+#, python-format
+msgid "%(name)s"
+msgstr "%(name)s"
-#: 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 "Resetta la password"
+#: contrib/admin/templates/admin/index.html:34
+msgid "Change"
+msgstr "Modifica"
-#: 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 ""
-"Hai dimenticato la tua password? Inserisci il tuo indirizzo e-mail qui "
-"sotto, la tua password sarà resettata e te ne verrà spedita una nuova."
+#: contrib/admin/templates/admin/index.html:44
+msgid "You don't have permission to edit anything."
+msgstr "Non hai i privilegi per modificare alcunché."
-#: contrib/admin/templates/registration/password_reset_form.html:16
-msgid "E-mail address:"
-msgstr "Indirizzo e-mail:"
+#: contrib/admin/templates/admin/index.html:52
+msgid "Recent Actions"
+msgstr "Azioni Recenti"
-#: contrib/admin/templates/registration/password_reset_form.html:16
-msgid "Reset my password"
-msgstr "Resetta la mia password"
+#: contrib/admin/templates/admin/index.html:53
+msgid "My Actions"
+msgstr "Azioni Proprie"
-#: contrib/admin/templates/registration/logged_out.html:8
-msgid "Thanks for spending some quality time with the Web site today."
-msgstr "Grazie per aver speso il tuo tempo prezioso con questo sito."
+#: contrib/admin/templates/admin/index.html:57
+msgid "None available"
+msgstr "Nessuno disponibile"
-#: contrib/admin/templates/registration/logged_out.html:10
-msgid "Log in again"
-msgstr "Accedi di nuovo"
+#: contrib/admin/templates/admin/base_site.html:4
+msgid "Django site admin"
+msgstr "Amministrazione sito Django"
-#: contrib/admin/templates/registration/password_reset_done.html:6
-#: contrib/admin/templates/registration/password_reset_done.html:10
-msgid "Password reset successful"
-msgstr "Password resettata"
+#: contrib/admin/templates/admin/base_site.html:7
+msgid "Django administration"
+msgstr "Amministrazione Django"
-#: 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 ""
-"Ti abbiamo inviato la nuova password all'indirizzo e-mail da te selezionato. "
-"Dovresti riceverla a breve."
+#: contrib/admin/templates/admin/object_history.html:18
+msgid "Date/time"
+msgstr "Data/orario"
-#: contrib/admin/templates/registration/password_change_form.html:12
+#: contrib/admin/templates/admin/object_history.html:19
+msgid "User"
+msgstr "Utente"
+
+#: contrib/admin/templates/admin/object_history.html:20
+msgid "Action"
+msgstr "Azione"
+
+#: contrib/admin/templates/admin/object_history.html:26
+msgid "DATE_WITH_TIME_FULL"
+msgstr "j F Y, H:i"
+
+#: contrib/admin/templates/admin/object_history.html:36
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 ""
-"Inserisci la tua vecchia password, per ragioni di sicurezza, e poi la tua "
-"nuova password due volte per verificare che tu l'abbia scritta correttamente."
+"This object doesn't have a change history. It probably wasn't added via this "
+"admin site."
+msgstr "Questo oggetto non ha cambiamenti registrati. Probabilmente non è stato creato con questo sito di amministrazione."
-#: contrib/admin/templates/registration/password_change_form.html:17
-msgid "Old password:"
-msgstr "Vecchia password:"
+#: contrib/admin/templates/admin/500.html:4
+msgid "Server error"
+msgstr "Errore del server"
-#: contrib/admin/templates/registration/password_change_form.html:19
-msgid "New password:"
-msgstr "Nuova password:"
+#: contrib/admin/templates/admin/500.html:6
+msgid "Server error (500)"
+msgstr "Errore del server (500)"
-#: contrib/admin/templates/registration/password_change_form.html:21
-msgid "Confirm password:"
-msgstr "Conferma password:"
+#: contrib/admin/templates/admin/500.html:9
+msgid "Server Error <em>(500)</em>"
+msgstr "Errore del server <em>(500)</em>"
-#: contrib/admin/templates/registration/password_change_form.html:23
-msgid "Change my password"
-msgstr "Modifica la mia password"
+#: contrib/admin/templates/admin/500.html:10
+msgid ""
+"There's been an error. It's been reported to the site administrators via e-"
+"mail and should be fixed shortly. Thanks for your patience."
+msgstr "Si è verificato un errore. È stato riportato agli amministratori del sito via e-mail e verrà corretto a breve. Grazie per la tua pazienza."
-#: contrib/admin/templates/registration/password_reset_email.html:2
-msgid "You're receiving this e-mail because you requested a password reset"
-msgstr "Hai ricevuto questa e-mail perché hai chiesto di resettare la password"
+#: 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 "Ci sono problemi nell'installazione del database. Assicurarsi che le tabelle appropriate del database siano state create, e che il database sia leggibile dall'utente appropriato."
-#: contrib/admin/templates/registration/password_reset_email.html:3
+#: contrib/admin/templates/admin/search_form.html:8
+msgid "Go"
+msgstr "Vai"
+
+#: contrib/admin/templates/admin/search_form.html:10
#, python-format
-msgid "for your user account at %(site_name)s"
-msgstr "per il tuo account utente su %(site_name)s"
+msgid "1 result"
+msgid_plural "%(counter)s results"
+msgstr[0] "1 risultato"
+msgstr[1] "%(counter)s risultati"
-#: contrib/admin/templates/registration/password_reset_email.html:5
+#: contrib/admin/templates/admin/search_form.html:10
#, python-format
-msgid "Your new password is: %(new_password)s"
-msgstr "La tua nuova password è: %(new_password)s"
+msgid "%(full_result_count)s total"
+msgstr "%(full_result_count)s totali"
-#: contrib/admin/templates/registration/password_reset_email.html:7
-msgid "Feel free to change this password by going to this page:"
-msgstr "Puoi modificare la tua password su questa pagina:"
+#: contrib/admin/templates/admin/filters.html:4
+msgid "Filter"
+msgstr "Filtro"
-#: contrib/admin/templates/registration/password_reset_email.html:11
-msgid "Your username, in case you've forgotten:"
-msgstr "Il tuo nome utente, in caso tu l'abbia dimenticato:"
+#: contrib/admin/templates/admin/login.html:17
+#: contrib/comments/templates/comments/form.html:6
+#: contrib/comments/templates/comments/form.html:8
+msgid "Username:"
+msgstr "Nome utente:"
-#: contrib/admin/templates/registration/password_reset_email.html:13
-msgid "Thanks for using our site!"
-msgstr "Ti ringraziamo per l'utilizzo del nostro sito!"
+#: contrib/admin/templates/admin/login.html:20
+#: contrib/comments/templates/comments/form.html:8
+msgid "Password:"
+msgstr "Parola chiave:"
-#: contrib/admin/templates/registration/password_reset_email.html:15
+#: contrib/admin/templates/admin/login.html:22
+msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
+msgstr "Hai <a href=\"/password_reset/\">dimenticato la parola chiave</a>?"
+
+#: contrib/admin/templates/admin/base.html:25
+msgid "Welcome,"
+msgstr "Benvenuto,"
+
+#: 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 "Inserire innanzitutto nome utente e parola chiave. Si potrà quindi modificare le altre impostazioni dell'utente."
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:12
+msgid "Username"
+msgstr "Nome utente"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:18
+#: contrib/admin/templates/admin/auth/user/change_password.html:34
+msgid "Password"
+msgstr "Parola chiave"
+
+#: contrib/admin/templates/admin/auth/user/add_form.html:23
+#: contrib/admin/templates/admin/auth/user/change_password.html:39
+msgid "Password (again)"
+msgstr "Parola chiave (di nuovo)"
+
+#: 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 "Inserire la stessa parola chiave inserita sopra, come verifica."
+
+#: contrib/admin/templates/admin/auth/user/change_password.html:28
#, python-format
-msgid "The %(site_name)s team"
-msgstr "Il team di %(site_name)s"
+msgid "Enter a new password for the user <strong>%(username)s</strong>."
+msgstr "Inserire una nuova parola chiave per l'utente <strong>%(username)s</strong>."
#: contrib/admin/templates/admin_doc/bookmarklets.html:3
msgid "Bookmarklets"
@@ -1000,12 +1394,12 @@ msgid ""
"your computer is \"internal\").</p>\n"
msgstr ""
"\n"
-"<p class=\"help\">Per installare i bookmarklet, trascinare il link nella barra \n"
-"dei bookmark, o cliccare il link con il tasto destro e selezionare aggiungi ai \n"
-"bookmark. È possibile selezionare il bookmarklet da qualsiasi pagina del sito. \n"
-"Alcuni di questi bookmarklet richiedono l'utilizzo di un computer \"interno\" \n"
-"(chiedi al tuo amministratore di sistema se non sei sicuro che il tuo computer \n"
-"sia \"interno\").</p>\n"
+"<p class=\"help\">Per installare i bookmarklet, trascinare il link sulla barra \n"
+"dei bookmark, o cliccare il link con il tasto destro e aggiungerlo ai bookmark.\n"
+"Sarà quindi possibile selezionare un bookmarklet in qualsiasi pagina del sito.\n"
+"Si noti che alcuni di questi bookmarklet richiedono l'accesso al sito tramite un\n"
+"computer designato come \"interno\" (chiedere al proprio amministratore di \n"
+"sistema se non si è sicuri che il proprio computer sia \"interno\").</p>\n"
#: contrib/admin/templates/admin_doc/bookmarklets.html:19
msgid "Documentation for this page"
@@ -1016,7 +1410,8 @@ msgid ""
"Jumps you from any page to the documentation for the view that generates "
"that page."
msgstr ""
-"Ti porta da qualsiasi pagina alla documentazione della view che genera quella pagina."
+"Porta da qualsiasi pagina alla documentazione della view che genera "
+"quella pagina."
#: contrib/admin/templates/admin_doc/bookmarklets.html:22
msgid "Show object ID"
@@ -1026,8 +1421,7 @@ msgstr "Mostra l'ID dell'oggetto"
msgid ""
"Shows the content-type and unique ID for pages that represent a single "
"object."
-msgstr ""
-"Mostra il tipo di contenuto e l'ID univoco per pagine che rappresentano un singolo oggetto."
+msgstr "Mostra il content-type e l'ID univoco di pagine che rappresentano un singolo oggetto."
#: contrib/admin/templates/admin_doc/bookmarklets.html:25
msgid "Edit this object (current window)"
@@ -1035,7 +1429,7 @@ msgstr "Modifica quest'oggetto (nella finestra corrente)"
#: contrib/admin/templates/admin_doc/bookmarklets.html:26
msgid "Jumps to the admin page for pages that represent a single object."
-msgstr "Ti porta alla pagina amministrativa per pagine che rappresentano un oggetto singolo."
+msgstr "Porta alla pagina amministrativa di pagine che rappresentano un oggetto singolo."
#: contrib/admin/templates/admin_doc/bookmarklets.html:28
msgid "Edit this object (new window)"
@@ -1051,7 +1445,7 @@ msgstr "Data:"
#: contrib/admin/templates/widget/date_time.html:4
msgid "Time:"
-msgstr "Ora:"
+msgstr "Orario:"
#: contrib/admin/templates/widget/file.html:2
msgid "Currently:"
@@ -1061,41 +1455,134 @@ msgstr "Attualmente:"
msgid "Change:"
msgstr "Modifica:"
-#: contrib/redirects/models.py:7
-msgid "redirect from"
-msgstr "redirigi da"
+#: 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 "Reimposta la parola chiave"
-#: contrib/redirects/models.py:8
+#: contrib/admin/templates/registration/password_reset_form.html:12
msgid ""
-"This should be an absolute path, excluding the domain name. Example: '/"
-"events/search/'."
-msgstr ""
-"Un percorso assoluto, senza nome a dominio. Esempio: '/events/search/'."
+"Forgotten your password? Enter your e-mail address below, and we'll reset "
+"your password and e-mail the new one to you."
+msgstr "Dimenticata la parola chiave? Inserire il proprio indirizzo e-mail qui sotto: la parola chiave sarà reimpostata, e la nuova ti verrà inviata per e-mail."
-#: contrib/redirects/models.py:9
-msgid "redirect to"
-msgstr "redirigi verso"
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "E-mail address:"
+msgstr "Indirizzo e-mail:"
-#: contrib/redirects/models.py:10
+#: contrib/admin/templates/registration/password_reset_form.html:16
+msgid "Reset my password"
+msgstr "Reimposta la mia parola chiave"
+
+#: contrib/admin/templates/registration/password_reset_email.html:2
+msgid "You're receiving this e-mail because you requested a password reset"
+msgstr "Hai ricevuto questa e-mail perché hai chiesto di reimpostare la parola chiave"
+
+#: contrib/admin/templates/registration/password_reset_email.html:3
+#, python-format
+msgid "for your user account at %(site_name)s"
+msgstr "per il tuo account utente su %(site_name)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:5
+#, python-format
+msgid "Your new password is: %(new_password)s"
+msgstr "La tua nuova parola chiave è: %(new_password)s"
+
+#: contrib/admin/templates/registration/password_reset_email.html:7
+msgid "Feel free to change this password by going to this page:"
+msgstr "Puoi liberamente cambiare la tua parola chiave tramite questa pagina:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:11
+msgid "Your username, in case you've forgotten:"
+msgstr "Il tuo nome utente, in caso l'abbia dimenticato:"
+
+#: contrib/admin/templates/registration/password_reset_email.html:13
+msgid "Thanks for using our site!"
+msgstr "Grazie per aver usato il nostro sito!"
+
+#: contrib/admin/templates/registration/password_reset_email.html:15
+#, python-format
+msgid "The %(site_name)s team"
+msgstr "Il team di %(site_name)s"
+
+#: contrib/admin/templates/registration/logged_out.html:8
+msgid "Thanks for spending some quality time with the Web site today."
+msgstr "Grazie per aver speso il tuo tempo prezioso su questo sito oggi."
+
+#: contrib/admin/templates/registration/logged_out.html:10
+msgid "Log in again"
+msgstr "Accedi di nuovo"
+
+#: contrib/admin/templates/registration/password_reset_done.html:6
+#: contrib/admin/templates/registration/password_reset_done.html:10
+msgid "Password reset successful"
+msgstr "Parola chiave reimpostata correttamente"
+
+#: contrib/admin/templates/registration/password_reset_done.html:12
msgid ""
-"This can be either an absolute path (as above) or a full URL starting with "
-"'http://'."
-msgstr ""
-"Un percorso assoluto (come sopra) o un URL completo iniziante con 'http://'."
+"We've e-mailed a new password to the e-mail address you submitted. You "
+"should be receiving it shortly."
+msgstr "La nuova parola chiave è stata inviata all'indirizzo e-mail inserito. Arriverà a breve."
-#: contrib/redirects/models.py:12
-msgid "redirect"
-msgstr "redirigi"
+#: contrib/admin/templates/registration/password_change_form.html:4
+#: contrib/admin/templates/registration/password_change_form.html:6
+#: contrib/admin/templates/registration/password_change_form.html:10
+#: contrib/admin/templates/registration/password_change_done.html:4
+msgid "Password change"
+msgstr "Cambio di parola chiave"
-#: contrib/redirects/models.py:13
-msgid "redirects"
-msgstr "redirezioni"
+#: 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 "Inserire l'attuale parola chiave, per ragioni di sicurezza, e poi la nuova parola chiave due volte, per verificare di averla scritta correttamente."
+
+#: contrib/admin/templates/registration/password_change_form.html:17
+msgid "Old password:"
+msgstr "Parola chiave attuale:"
+
+#: contrib/admin/templates/registration/password_change_form.html:19
+msgid "New password:"
+msgstr "Nuova parola chiave:"
+
+#: contrib/admin/templates/registration/password_change_form.html:21
+msgid "Confirm password:"
+msgstr "Confermare la parola chiave:"
+
+#: contrib/admin/templates/registration/password_change_form.html:23
+msgid "Change my password"
+msgstr "Modifica la mia parola chiave"
+
+#: contrib/admin/templates/registration/password_change_done.html:6
+#: contrib/admin/templates/registration/password_change_done.html:10
+msgid "Password change successful"
+msgstr "Cambio di parola chiave avvenuto correttamente"
+
+#: contrib/admin/templates/registration/password_change_done.html:12
+msgid "Your password was changed."
+msgstr "La parola chiave è stata cambiata."
+
+#: contrib/sites/models.py:10
+msgid "domain name"
+msgstr "nome di dominio"
+
+#: contrib/sites/models.py:11
+msgid "display name"
+msgstr "nome visualizzato"
+
+#: contrib/sites/models.py:15
+msgid "site"
+msgstr "sito"
+
+#: contrib/sites/models.py:16
+msgid "sites"
+msgstr "siti"
#: contrib/flatpages/models.py:8
-msgid ""
-"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
-msgstr ""
-"Esempio: '/about/contact/'. Attenzione alla barra ('/') iniziale e finale."
+msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
+msgstr "Esempio: '/about/contact/'. Assicurarsi di inserire le barre diagonali iniziali e finali."
#: contrib/flatpages/models.py:9
msgid "title"
@@ -1115,11 +1602,9 @@ msgstr "nome modello"
#: contrib/flatpages/models.py:13
msgid ""
-"Example: 'flatpages/contact_page'. If this isn't provided, the system will "
-"use 'flatpages/default'."
-msgstr ""
-"Esempio: 'flatpages/contact_page'. Se non specificato, il sistema userà "
-"'flatpages/default'."
+"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
+"will use 'flatpages/default.html'."
+msgstr "Esempio: 'flatpages/contact_page.html'. Se non specificato, il sistema userà 'flatpages/default.html'."
#: contrib/flatpages/models.py:14
msgid "registration required"
@@ -1127,7 +1612,7 @@ msgstr "registrazione obbligatoria"
#: contrib/flatpages/models.py:14
msgid "If this is checked, only logged-in users will be able to view the page."
-msgstr "Se selezionata, solo gli utenti registrati potranno vedere la pagina."
+msgstr "Se selezionato, solo gli utenti che hanno effettuato l'accesso potranno vedere la pagina."
#: contrib/flatpages/models.py:18
msgid "flat page"
@@ -1137,184 +1622,409 @@ msgstr "pagina statica"
msgid "flat pages"
msgstr "pagine statiche"
-#: contrib/auth/models.py:13 contrib/auth/models.py:26
-msgid "name"
-msgstr "nome"
+#: contrib/redirects/models.py:7
+msgid "redirect from"
+msgstr "redirigi da"
-#: contrib/auth/models.py:15
-msgid "codename"
-msgstr "nome in codice"
+#: contrib/redirects/models.py:8
+msgid ""
+"This should be an absolute path, excluding the domain name. Example: '/"
+"events/search/'."
+msgstr "Deve essere un percorso assoluto, senza nome di dominio. Esempio: '/events/search/'."
-#: contrib/auth/models.py:17
-msgid "permission"
-msgstr "permesso"
+#: contrib/redirects/models.py:9
+msgid "redirect to"
+msgstr "redirigi verso"
-#: contrib/auth/models.py:18 contrib/auth/models.py:27
-msgid "permissions"
-msgstr "permessi"
+#: contrib/redirects/models.py:10
+msgid ""
+"This can be either an absolute path (as above) or a full URL starting with "
+"'http://'."
+msgstr "Può essere un percorso assoluto (come sopra) o una URL completa che inizia con 'http://'."
-#: contrib/auth/models.py:29
-msgid "group"
-msgstr "gruppo"
+#: contrib/redirects/models.py:13
+msgid "redirect"
+msgstr "redirezione"
-#: contrib/auth/models.py:30 contrib/auth/models.py:65
-msgid "groups"
-msgstr "gruppi"
+#: contrib/redirects/models.py:14
+msgid "redirects"
+msgstr "redirezioni"
-#: contrib/auth/models.py:55
-msgid "username"
-msgstr "nome utente"
+#: contrib/comments/models.py:67 contrib/comments/models.py:166
+msgid "object ID"
+msgstr "ID dell'oggetto"
-#: contrib/auth/models.py:56
-msgid "first name"
-msgstr "nome"
+#: contrib/comments/models.py:68
+msgid "headline"
+msgstr "intestazione"
-#: contrib/auth/models.py:57
-msgid "last name"
-msgstr "cognome"
+#: contrib/comments/models.py:69 contrib/comments/models.py:90
+#: contrib/comments/models.py:167
+msgid "comment"
+msgstr "commento"
-#: contrib/auth/models.py:58
-msgid "e-mail address"
-msgstr "indirizzo e-mail"
+#: contrib/comments/models.py:70
+msgid "rating #1"
+msgstr "valutazione #1"
-#: contrib/auth/models.py:59
-msgid "password"
-msgstr "password"
+#: contrib/comments/models.py:71
+msgid "rating #2"
+msgstr "valutazione #2"
-#: contrib/auth/models.py:59
-msgid "Use '[algo]$[salt]$[hexdigest]'"
-msgstr "Usare '[algo]$[salt]$[hexdigest]'"
+#: contrib/comments/models.py:72
+msgid "rating #3"
+msgstr "valutazione #3"
-#: contrib/auth/models.py:60
-msgid "staff status"
-msgstr "staff"
+#: contrib/comments/models.py:73
+msgid "rating #4"
+msgstr "valutazione #4"
-#: contrib/auth/models.py:60
-msgid "Designates whether the user can log into this admin site."
-msgstr "Autorizza l'utente ad accedere a questo sito di amministrazione."
+#: contrib/comments/models.py:74
+msgid "rating #5"
+msgstr "valutazione #5"
-#: contrib/auth/models.py:61
-msgid "active"
-msgstr "attivo"
+#: contrib/comments/models.py:75
+msgid "rating #6"
+msgstr "valutazione #6"
-#: contrib/auth/models.py:62
-msgid "superuser status"
-msgstr "superuser"
+#: contrib/comments/models.py:76
+msgid "rating #7"
+msgstr "valutazione #7"
-#: contrib/auth/models.py:63
-msgid "last login"
-msgstr "ultimo accesso"
+#: contrib/comments/models.py:77
+msgid "rating #8"
+msgstr "valutazione #8"
-#: contrib/auth/models.py:64
-msgid "date joined"
-msgstr "iscritto da"
+#: contrib/comments/models.py:82
+msgid "is valid rating"
+msgstr "è una valutazione valida"
-#: contrib/auth/models.py:66
+#: contrib/comments/models.py:83 contrib/comments/models.py:169
+msgid "date/time submitted"
+msgstr "data/orario di inserimento"
+
+#: contrib/comments/models.py:84 contrib/comments/models.py:170
+msgid "is public"
+msgstr "è pubblico"
+
+#: contrib/comments/models.py:86
+msgid "is removed"
+msgstr "è rimosso"
+
+#: contrib/comments/models.py:86
msgid ""
-"In addition to the permissions manually assigned, this user will also get "
-"all permissions granted to each group he/she is in."
+"Check this box if the comment is inappropriate. A \"This comment has been "
+"removed\" message will be displayed instead."
+msgstr "Spuntare la casella se il commento è inappropriato. Verrà sostituito dal messaggio \"Questo commento è stato rimosso\"."
+
+#: contrib/comments/models.py:91
+msgid "comments"
+msgstr "commenti"
+
+#: contrib/comments/models.py:131 contrib/comments/models.py:207
+msgid "Content object"
+msgstr "Oggetto con contenuto"
+
+#: contrib/comments/models.py:159
+#, python-format
+msgid ""
+"Posted by %(user)s at %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
msgstr ""
-"In aggiunta ai permessi assegnati manualmente, l'utente riceverà anche tutti "
-"i permessi assegnati ad ogni gruppo cui appartiene."
+"Inserito da %(user)s il %(date)s\n"
+"\n"
+"%(comment)s\n"
+"\n"
+"http://%(domain)s%(url)s"
-#: contrib/auth/models.py:67
-msgid "user permissions"
-msgstr "permessi utente"
+#: contrib/comments/models.py:168
+msgid "person's name"
+msgstr "nome della persona"
-#: contrib/auth/models.py:70
-msgid "user"
-msgstr "utente"
+#: contrib/comments/models.py:171
+msgid "ip address"
+msgstr "indirizzo IP"
-#: contrib/auth/models.py:71
-msgid "users"
-msgstr "utenti"
+#: contrib/comments/models.py:173
+msgid "approved by staff"
+msgstr "approvato dallo staff"
-#: contrib/auth/models.py:76
-msgid "Personal info"
-msgstr "Informazioni personali"
+#: contrib/comments/models.py:176
+msgid "free comment"
+msgstr "commento libero"
-#: contrib/auth/models.py:77
-msgid "Permissions"
-msgstr "Permessi"
+#: contrib/comments/models.py:177
+msgid "free comments"
+msgstr "commenti liberi"
-#: contrib/auth/models.py:78
-msgid "Important dates"
-msgstr "Date importanti"
+#: contrib/comments/models.py:233
+msgid "score"
+msgstr "punteggio"
-#: contrib/auth/models.py:79
-msgid "Groups"
-msgstr "Gruppi"
+#: contrib/comments/models.py:234
+msgid "score date"
+msgstr "data punteggio"
-#: contrib/auth/models.py:219
-msgid "message"
-msgstr "messaggio"
+#: contrib/comments/models.py:237
+msgid "karma score"
+msgstr "livello karma"
-#: contrib/auth/forms.py:30
+#: contrib/comments/models.py:238
+msgid "karma scores"
+msgstr "livelli karma"
+
+#: contrib/comments/models.py:242
+#, python-format
+msgid "%(score)d rating by %(user)s"
+msgstr "valutazione: %(score)d da %(user)s"
+
+#: contrib/comments/models.py:258
+#, python-format
msgid ""
-"Your Web browser doesn't appear to have cookies enabled. Cookies are "
-"required for logging in."
+"This comment was flagged by %(user)s:\n"
+"\n"
+"%(text)s"
msgstr ""
-"Il browser non ha i cookie abilitati. Per accedere, è necessario abilitarli."
+"A questo commento è stato apposto un flag da %(user)s:\n"
+"\n"
+"%(text)s"
-#: contrib/contenttypes/models.py:25
-msgid "python model class name"
-msgstr "nome della classe modello in python"
+#: contrib/comments/models.py:265
+msgid "flag date"
+msgstr "data flag"
-#: contrib/contenttypes/models.py:28
-msgid "content type"
-msgstr "tipo di contenuto"
+#: contrib/comments/models.py:268
+msgid "user flag"
+msgstr "flag utente"
-#: contrib/contenttypes/models.py:29
-msgid "content types"
-msgstr "tipo di contenuti"
+#: contrib/comments/models.py:269
+msgid "user flags"
+msgstr "flag utente"
+
+#: contrib/comments/models.py:273
+#, python-format
+msgid "Flag by %r"
+msgstr "Flag da %r"
+
+#: contrib/comments/models.py:278
+msgid "deletion date"
+msgstr "data cancellazione"
+
+#: contrib/comments/models.py:280
+msgid "moderator deletion"
+msgstr "cancellazione da moderatore"
+
+#: contrib/comments/models.py:281
+msgid "moderator deletions"
+msgstr "cancellazioni da moderatore"
+
+#: contrib/comments/models.py:285
+#, python-format
+msgid "Moderator deletion by %r"
+msgstr "Cancellazione da moderatore %r"
+
+#: contrib/comments/views/karma.py:19
+msgid "Anonymous users cannot vote"
+msgstr "Gli utenti anonimi non possono votare"
+
+#: contrib/comments/views/karma.py:23
+msgid "Invalid comment ID"
+msgstr "ID commento non valido"
+
+#: contrib/comments/views/karma.py:25
+msgid "No voting for yourself"
+msgstr "Impossibile votare per se stessi"
+
+#: contrib/comments/views/comments.py:27
+msgid "This rating is required because you've entered at least one other rating."
+msgstr "Questa valutazione è obbligatoria perché hai inserito almeno un'altra valutazione."
+
+#: contrib/comments/views/comments.py:111
+#, python-format
+msgid ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comment:\n"
+"\n"
+"%(text)s"
+msgid_plural ""
+"This comment was posted by a user who has posted fewer than %(count)s "
+"comments:\n"
+"\n"
+"%(text)s"
+msgstr[0] ""
+"Questo commento è stato inserito da un utente autore di meno di %(count)s commento:\n"
+"\n"
+"%(text)s"
+msgstr[1] ""
+"Questo commento è stato inserito da un utente autore di meno di %(count)s commenti:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:116
+#, python-format
+msgid ""
+"This comment was posted by a sketchy user:\n"
+"\n"
+"%(text)s"
+msgstr ""
+"Questo commento è stato inserito da un utente non confermato:\n"
+"\n"
+"%(text)s"
+
+#: contrib/comments/views/comments.py:188
+#: contrib/comments/views/comments.py:280
+msgid "Only POSTs are allowed"
+msgstr "Sono ammessi solo POST"
+
+#: contrib/comments/views/comments.py:192
+#: contrib/comments/views/comments.py:284
+msgid "One or more of the required fields wasn't submitted"
+msgstr "Uno o più campi richiesti non sono stati inseriti"
-#: contrib/sessions/models.py:35
+#: contrib/comments/views/comments.py:196
+#: contrib/comments/views/comments.py:286
+msgid "Somebody tampered with the comment form (security violation)"
+msgstr "Qualcuno ha alterato il modulo di commento (violazione di sicurezza)"
+
+#: contrib/comments/views/comments.py:206
+#: contrib/comments/views/comments.py:292
+msgid ""
+"The comment form had an invalid 'target' parameter -- the object ID was "
+"invalid"
+msgstr ""
+"Il modulo di commento ha un parametro 'target' non valido -- l'ID "
+"dell'oggetto non e` valido"
+
+#: contrib/comments/views/comments.py:257
+#: contrib/comments/views/comments.py:321
+msgid "The comment form didn't provide either 'preview' or 'post'"
+msgstr "Il modulo di commento non fornisce né 'anteprima' né 'invia'"
+
+#: contrib/comments/templates/comments/form.html:8
+msgid "Forgotten your password?"
+msgstr "Hai dimenticato la parola chiave?"
+
+#: contrib/comments/templates/comments/form.html:12
+msgid "Ratings"
+msgstr "Valutazioni"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Required"
+msgstr "Obbligatorio"
+
+#: contrib/comments/templates/comments/form.html:12
+#: contrib/comments/templates/comments/form.html:23
+msgid "Optional"
+msgstr "Facoltativo"
+
+#: contrib/comments/templates/comments/form.html:23
+msgid "Post a photo"
+msgstr "Invia una foto"
+
+#: contrib/comments/templates/comments/form.html:28
+#: contrib/comments/templates/comments/freeform.html:5
+msgid "Comment:"
+msgstr "Commento:"
+
+#: contrib/comments/templates/comments/form.html:35
+#: contrib/comments/templates/comments/freeform.html:10
+msgid "Preview comment"
+msgstr "Anteprima commento"
+
+#: contrib/comments/templates/comments/freeform.html:4
+msgid "Your name:"
+msgstr "Il suo nome:"
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr "Inserire un codice postale. È obbligatorio uno spazio tra le due parti del codice postale."
+
+#: contrib/localflavor/usa/forms.py:17
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Inserire un codice postale nel formato XXXXX o XXXXX-XXXX."
+
+#: contrib/sessions/models.py:51
msgid "session key"
msgstr "chiave di sessione"
-#: contrib/sessions/models.py:36
+#: contrib/sessions/models.py:52
msgid "session data"
msgstr "dati di sessione"
-#: contrib/sessions/models.py:37
+#: contrib/sessions/models.py:53
msgid "expire date"
msgstr "data di scadenza"
-#: contrib/sessions/models.py:41
+#: contrib/sessions/models.py:57
msgid "session"
msgstr "sessione"
-#: contrib/sessions/models.py:42
+#: contrib/sessions/models.py:58
msgid "sessions"
msgstr "sessioni"
-#: contrib/sites/models.py:10
-msgid "domain name"
-msgstr "nome a dominio"
+#: contrib/contenttypes/models.py:26
+msgid "python model class name"
+msgstr "nome della classe modello in Python"
-#: contrib/sites/models.py:11
-msgid "display name"
-msgstr "nome visualizzato"
+#: contrib/contenttypes/models.py:29
+msgid "content type"
+msgstr "content type"
-#: contrib/sites/models.py:15
-msgid "site"
-msgstr "sito"
+#: contrib/contenttypes/models.py:30
+msgid "content types"
+msgstr "content type"
-#: contrib/sites/models.py:16
-msgid "sites"
-msgstr "siti"
+#: oldforms/__init__.py:387
+#, python-format
+msgid "Ensure your text is less than %s character."
+msgid_plural "Ensure your text is less than %s characters."
+msgstr[0] "Assicurarsi che il testo sia più corto di %s carattere."
+msgstr[1] "Assicurarsi che il testo sia più corto di %s caratteri."
-#: utils/translation.py:360
-msgid "DATE_FORMAT"
-msgstr "j F Y"
+#: oldforms/__init__.py:392
+msgid "Line breaks are not allowed here."
+msgstr "Non sono ammessi a capo manuali."
-#: utils/translation.py:361
-msgid "DATETIME_FORMAT"
-msgstr "j F Y, H:i"
+#: oldforms/__init__.py:493 oldforms/__init__.py:566 oldforms/__init__.py:605
+#, python-format
+msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
+msgstr "Selezionare un'opzione valida; '%(data)s' non presente in %(choices)s."
-#: utils/translation.py:362
-msgid "TIME_FORMAT"
-msgstr "H:i"
+#: oldforms/__init__.py:669
+msgid "The submitted file is empty."
+msgstr "Il file inviato è vuoto."
+
+#: oldforms/__init__.py:725
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Inserire un numero intero compreso tra -32.768 e 32.767."
+
+#: oldforms/__init__.py:735
+msgid "Enter a positive number."
+msgstr "Inserire un numero positivo."
+
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Inserire un numero intero compreso tra 0 e 32.767."
+
+#: views/generic/create_update.py:43
+#, python-format
+msgid "The %(verbose_name)s was created successfully."
+msgstr "%(verbose_name)s è stato creato correttamente."
+
+#: views/generic/create_update.py:117
+#, python-format
+msgid "The %(verbose_name)s was updated successfully."
+msgstr "%(verbose_name)s è stato aggiornato correttamente."
+
+#: views/generic/create_update.py:184
+#, python-format
+msgid "The %(verbose_name)s was deleted."
+msgstr "%(verbose_name)s è stato cancellato."
#: utils/dates.py:6
msgid "Monday"
@@ -1504,467 +2214,84 @@ msgid_plural "minutes"
msgstr[0] "minuto"
msgstr[1] "minuti"
-#: conf/global_settings.py:37
-msgid "Bengali"
-msgstr "Bengali"
-
-#: conf/global_settings.py:38
-msgid "Czech"
-msgstr "Ceco"
-
-#: conf/global_settings.py:39
-msgid "Welsh"
-msgstr "Gallese"
-
-#: conf/global_settings.py:40
-msgid "Danish"
-msgstr "Danese"
-
-#: conf/global_settings.py:41
-msgid "German"
-msgstr "Tedesco"
-
-#: conf/global_settings.py:42
-msgid "Greek"
-msgstr "Greco"
-
-#: conf/global_settings.py:43
-msgid "English"
-msgstr "Inglese"
-
-#: conf/global_settings.py:44
-msgid "Spanish"
-msgstr "Spagnolo"
-
-#: conf/global_settings.py:45
-msgid "French"
-msgstr "Francese"
-
-#: conf/global_settings.py:46
-msgid "Galician"
-msgstr "Galiziano"
-
-#: conf/global_settings.py:47
-msgid "Hungarian"
-msgstr "Ungherese"
-
-#: conf/global_settings.py:48
-msgid "Hebrew"
-msgstr "Ebreo"
-
-#: conf/global_settings.py:49
-msgid "Icelandic"
-msgstr "Islandese"
-
-#: conf/global_settings.py:50
-msgid "Italian"
-msgstr "Italiano"
-
-#: conf/global_settings.py:51
-msgid "Japanese"
-msgstr "Giapponese"
-
-#: conf/global_settings.py:52
-msgid "Dutch"
-msgstr "Olandese"
-
-#: conf/global_settings.py:53
-msgid "Norwegian"
-msgstr "Norvegese"
-
-#: conf/global_settings.py:54
-msgid "Brazilian"
-msgstr "Brasiliano"
-
-#: conf/global_settings.py:55
-msgid "Romanian"
-msgstr "Rumeno"
-
-#: conf/global_settings.py:56
-msgid "Russian"
-msgstr "Russo"
-
-#: conf/global_settings.py:57
-msgid "Slovak"
-msgstr "Slovacco"
-
-#: conf/global_settings.py:58
-msgid "Slovenian"
-msgstr "Sloveno"
-
-#: conf/global_settings.py:59
-msgid "Serbian"
-msgstr "Serbo"
-
-#: conf/global_settings.py:60
-msgid "Swedish"
-msgstr "Svedese"
-
-#: conf/global_settings.py:61
-msgid "Ukrainian"
-msgstr "Ucraino"
-
-#: conf/global_settings.py:62
-msgid "Simplified Chinese"
-msgstr "Cinese semplificato"
-
-#: conf/global_settings.py:63
-msgid "Traditional Chinese"
-msgstr "Cinese tradizionale"
-
-#: core/validators.py:60
-msgid "This value must contain only letters, numbers and underscores."
-msgstr "Sono ammesse solo lettere, numeri e sottolineature ('_')."
-
-#: core/validators.py:64
-msgid ""
-"This value must contain only letters, numbers, underscores, dashes or "
-"slashes."
-msgstr "Sono ammesse solo lettere, numeri, sottolineature ('_'), trattini"
-"('-') e barre ('/')."
-
-#: core/validators.py:72
-msgid "Uppercase letters are not allowed here."
-msgstr "Non sono ammesse lettere maiuscole."
-
-#: core/validators.py:76
-msgid "Lowercase letters are not allowed here."
-msgstr "Non sono ammesse lettere minuscole."
-
-#: core/validators.py:83
-msgid "Enter only digits separated by commas."
-msgstr "Inserire solo numeri separati da virgole."
-
-#: core/validators.py:95
-msgid "Enter valid e-mail addresses separated by commas."
-msgstr "Inserire indirizzi e-mail validi separati da virgole."
-
-#: core/validators.py:99
-msgid "Please enter a valid IP address."
-msgstr "Inserire un indirizzo IP valido."
-
-#: core/validators.py:103
-msgid "Empty values are not allowed here."
-msgstr "E' necessario inserire un valore."
-
-#: core/validators.py:107
-msgid "Non-numeric characters aren't allowed here."
-msgstr "Sono ammessi soltanto caratteri numerici."
-
-#: core/validators.py:111
-msgid "This value can't be comprised solely of digits."
-msgstr "Il valore non può essere composto solo da cifre."
-
-#: core/validators.py:116
-msgid "Enter a whole number."
-msgstr "Inserire un numero."
-
-#: core/validators.py:120
-msgid "Only alphabetical characters are allowed here."
-msgstr "Sono ammessi solo caratteri alfabetici."
-
-#: core/validators.py:124
-msgid "Enter a valid date in YYYY-MM-DD format."
-msgstr "Inserire un data valida in formato AAAA-MM-GG."
-
-#: core/validators.py:128
-msgid "Enter a valid time in HH:MM format."
-msgstr "Inserire un orario valido in formato OO:MM."
-
-#: core/validators.py:132 db/models/fields/__init__.py:468
-msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
-msgstr "Inserire una data/ora in formato AAAA-MM-GG OO:MM."
-
-#: core/validators.py:136
-msgid "Enter a valid e-mail address."
-msgstr "Inserire un indirizzo e-mail valido."
-
-#: core/validators.py:148
-msgid ""
-"Upload a valid image. The file you uploaded was either not an image or a "
-"corrupted image."
-msgstr ""
-"Caricare un'immagine valida. Il file inserito non è un'immagine o è corrotto."
-
-#: core/validators.py:155
-#, python-format
-msgid "The URL %s does not point to a valid image."
-msgstr "L'URL %s non punta ad un'immagine valida."
-
-#: core/validators.py:159
-#, python-format
-msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
-msgstr ""
-"I numeri di telefono devono essere in formato XXX-XXX-XXXX. \"%s\" non è "
-"valido."
-
-#: core/validators.py:167
-#, python-format
-msgid "The URL %s does not point to a valid QuickTime video."
-msgstr "L'URL %s non punta ad un video QuickTime valido."
-
-#: core/validators.py:171
-msgid "A valid URL is required."
-msgstr "Inserire un URL valido."
-
-#: core/validators.py:185
-#, python-format
-msgid ""
-"Valid HTML is required. Specific errors are:\n"
-"%s"
-msgstr ""
-"E' richiesto HTML valido. Gli errori sono i seguenti:\n"
-"%s"
-
-#: core/validators.py:192
-#, python-format
-msgid "Badly formed XML: %s"
-msgstr "XML malformato: %s"
-
-#: core/validators.py:202
-#, python-format
-msgid "Invalid URL: %s"
-msgstr "URL non valida: %s"
-
-#: core/validators.py:206 core/validators.py:208
-#, python-format
-msgid "The URL %s is a broken link."
-msgstr "L'URL %s è un link rotto."
-
-#: core/validators.py:214
-msgid "Enter a valid U.S. state abbreviation."
-msgstr "Inserire un nome di stato americano abbreviato valido."
-
-#: core/validators.py:229
-#, 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] "Attenzione! La parola %s non è ammessa."
-msgstr[1] "Attenzione! Le parole %s non sono ammesse."
-
-#: core/validators.py:236
-#, python-format
-msgid "This field must match the '%s' field."
-msgstr "Questo campo deve corrispondere al campo '%s'."
-
-#: core/validators.py:255
-msgid "Please enter something for at least one field."
-msgstr "Inserire qualcosa in almeno un campo."
-
-#: core/validators.py:264 core/validators.py:275
-msgid "Please enter both fields or leave them both empty."
-msgstr "Inserire entrambi i campi o lasciarli entrambi vuoti."
-
-#: core/validators.py:282
-#, python-format
-msgid "This field must be given if %(field)s is %(value)s"
-msgstr "Il campo è obbligatorio se %(field)s è %(value)s"
-
-#: core/validators.py:294
-#, python-format
-msgid "This field must be given if %(field)s is not %(value)s"
-msgstr "Il campo è obbligatorio se %(field)s non è %(value)s"
-
-#: core/validators.py:313
-msgid "Duplicate values are not allowed."
-msgstr "Non sono ammessi valori duplicati."
-
-#: core/validators.py:336
-#, python-format
-msgid "This value must be a power of %s."
-msgstr "Il valore deve essere una potenza di %s."
-
-#: core/validators.py:347
-msgid "Please enter a valid decimal number."
-msgstr "Inserire un numero decimale valido."
-
-#: core/validators.py:349
-#, 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] "Inserire un numero decimale con non più di %s cifra."
-msgstr[1] "Inserire un numero decimale con non più di %s cifre totali."
-
-#: core/validators.py:352
-#, 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] "Inserire un decimale con non più di %s cifra decimale."
-msgstr[1] "Inserire un decimale con non più di %s cifre decimali."
-
-#: core/validators.py:362
-#, python-format
-msgid "Make sure your uploaded file is at least %s bytes big."
-msgstr "Verifica che il file inserito sia almeno di %s byte."
-
-#: core/validators.py:363
-#, python-format
-msgid "Make sure your uploaded file is at most %s bytes big."
-msgstr "Verifica che il file inserito sia al massimo %s byte."
-
-#: core/validators.py:376
-msgid "The format for this field is wrong."
-msgstr "Formato del file non valido."
-
-#: core/validators.py:391
-msgid "This field is invalid."
-msgstr "Il campo non è valido."
-
-#: core/validators.py:426
-#, python-format
-msgid "Could not retrieve anything from %s."
-msgstr "Impossibile recuperare alcunché da %s."
+#: utils/translation/trans_real.py:362
+msgid "DATE_FORMAT"
+msgstr "j F Y"
-#: core/validators.py:429
-#, python-format
-msgid ""
-"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
-msgstr ""
-"L'URL %(url)s restituisce un Content-Type header non valido '%(contenttype)s'."
+#: utils/translation/trans_real.py:363
+msgid "DATETIME_FORMAT"
+msgstr "j F Y, H:i"
-#: core/validators.py:462
-#, python-format
-msgid ""
-"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
-"\"%(start)s\".)"
-msgstr ""
-"Il tag %(tag)s alla linea %(line)s non è chiuso. (La linea comincia con \"%(start)s\".)"
+#: utils/translation/trans_real.py:364
+msgid "TIME_FORMAT"
+msgstr "H:i"
-#: core/validators.py:466
-#, python-format
-msgid ""
-"Some text starting on line %(line)s is not allowed in that context. (Line "
-"starts with \"%(start)s\".)"
-msgstr ""
-"Il testo che comincia a linea %(line)s non e' ammesso in questo contesto. "
-"(La linea comincia con \"%(start)s\".)"
+#: utils/translation/trans_real.py:380
+msgid "YEAR_MONTH_FORMAT"
+msgstr "Y F"
-#: core/validators.py:471
-#, python-format
-msgid ""
-"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
-"(start)s\".)"
-msgstr ""
-"\"%(attr)s\" alla linea %(line)s è un attributo invalido. (La linea comincia "
-"con \"%(start)s\".)"
+#: utils/translation/trans_real.py:381
+msgid "MONTH_DAY_FORMAT"
+msgstr "F j"
-#: core/validators.py:476
-#, python-format
-msgid ""
-"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
-"(start)s\".)"
-msgstr ""
-"\"<%(tag)s>\" alla linea %(line)s: tag non valido. (La linea comincia con \"%"
-"(start)s\".)"
+#: template/defaultfilters.py:490
+msgid "yes,no,maybe"
+msgstr "sì,no,forse"
-#: core/validators.py:480
+#: newforms/fields.py:101 newforms/fields.py:254
#, python-format
-msgid ""
-"A tag on line %(line)s is missing one or more required attributes. (Line "
-"starts with \"%(start)s\".)"
-msgstr ""
-"Un tag alla linea %(line)s manca di uno o più attributi richiesti. (La linea "
-"comincia con \"%(start)s\".)"
+msgid "Ensure this value has at most %d characters."
+msgstr "Assicurarsi che questo valore non contenga più di %d caratteri."
-#: core/validators.py:485
+#: newforms/fields.py:103 newforms/fields.py:256
#, python-format
-msgid ""
-"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
-"starts with \"%(start)s\".)"
-msgstr ""
-"L'attributo \"%(attr)s\" alla linea %(line)s ha un valore non valido. (La "
-"linea comincia con \"%(start)s\".)"
+msgid "Ensure this value has at least %d characters."
+msgstr "Assicurarsi che questo valore contenga almeno %d caratteri."
-#: db/models/manipulators.py:302
+#: newforms/fields.py:128
#, python-format
-msgid "%(object)s with this %(type)s already exists for the given %(field)s."
-msgstr "%(object)s·con questo·%(type)s·esistono già per questo·%(field)s."
+msgid "Ensure this value is less than or equal to %s."
+msgstr "Assicurarsi che questo valore sia minore o uguale a %s."
-#: core/meta/fields.py:60
-#: db/models/fields/__init__.py:40
+#: newforms/fields.py:130
#, python-format
-msgid "%(optname)s with this %(fieldname)s already exists."
-msgstr "%(optname)s·con questo·%(fieldname)s·esiste già."
+msgid "Ensure this value is greater than or equal to %s."
+msgstr "Assicurarsi che questo valore sia maggiore o uguale a %s."
-#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
-#: db/models/fields/__init__.py:542 db/models/fields/__init__.py:553
-#: forms/__init__.py:346
-msgid "This field is required."
-msgstr "Il campo è obbligatorio."
+#: newforms/fields.py:163
+msgid "Enter a valid date."
+msgstr "Inserire una data valida."
-#: db/models/fields/__init__.py:337
-msgid "This value must be an integer."
-msgstr "Il valore deve essere un intero."
+#: newforms/fields.py:190
+msgid "Enter a valid time."
+msgstr "Inserire un orario valido."
-#: db/models/fields/__init__.py:369
-msgid "This value must be either True or False."
-msgstr "Il valore deve essere True o False."
+#: newforms/fields.py:226
+msgid "Enter a valid date/time."
+msgstr "Inserire una coppia data/orario valida."
-#: db/models/fields/__init__.py:385
-msgid "This field cannot be null."
-msgstr "Il campo non può essere nullo."
+#: newforms/fields.py:240
+msgid "Enter a valid value."
+msgstr "Inserire un valore valido."
-#: db/models/fields/__init__.py:562
-msgid "Enter a valid filename."
-msgstr "Inserire un nome file valido."
+#: newforms/fields.py:287 newforms/fields.py:309
+msgid "Enter a valid URL."
+msgstr "Inserire una URL valida."
-#: db/models/fields/related.py:43
-#, python-format
-msgid "Please enter a valid %s."
-msgstr "Inserire un %s valido."
-
-#: db/models/fields/related.py:579
-msgid "Separate multiple IDs with commas."
-msgstr "Separa ID multipli con virgole."
-
-#: db/models/fields/related.py:581
-msgid ""
-"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
-msgstr " Premi \"Control\", o \"Command\" su Mac, per selezionarne più di uno."
-
-#: db/models/fields/related.py:625
-#, 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] "Inserire un ID valido per %(self)s. Il valore %(value)r non è valido."
-msgstr[1] "Inserire un ID valido per %(self)s. I valori %(value)r non sono validi."
+#: newforms/fields.py:311
+msgid "This URL appears to be a broken link."
+msgstr "Questa URL non sembra funzionare."
-#: forms/__init__.py:380
-#, python-format
-msgid "Ensure your text is less than %s character."
-msgid_plural "Ensure your text is less than %s characters."
-msgstr[0] "Assicurati che il testo sia più corto di %s carattere."
-msgstr[1] "Assicurati che il testo sia più corto di %s caratteri."
+#: newforms/fields.py:360 newforms/models.py:164
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Selezionare un'opzione valida. La scelta effettuata non compare tra quelle disponibili."
-#: forms/__init__.py:385
-msgid "Line breaks are not allowed here."
-msgstr "Non è ammesso andare a capo."
+#: newforms/fields.py:378 newforms/fields.py:454 newforms/models.py:181
+msgid "Enter a list of values."
+msgstr "Inserire una lista di valori."
-#: forms/__init__.py:480 forms/__init__.py:551 forms/__init__.py:589
+#: newforms/fields.py:387 newforms/models.py:187
#, python-format
-msgid "Select a valid choice; '%(data)s' is not in %(choices)s."
-msgstr "Selezionare un'opzione valida; '%(data)s' non presente in %(choices)s."
-
-#: forms/__init__.py:645
-msgid "The submitted file is empty."
-msgstr "Il file sottomesso è vuoto."
-
-#: forms/__init__.py:699
-msgid "Enter a whole number between -32,768 and 32,767."
-msgstr "Inserire un numero tra -32768 e 32767."
-
-#: forms/__init__.py:708
-msgid "Enter a positive number."
-msgstr "Inserire un numero positivo."
-
-#: forms/__init__.py:717
-msgid "Enter a whole number between 0 and 32,767."
-msgstr "Inserire un numero compreso tra 0 e 32767."
-
-#: template/defaultfilters.py:379
-msgid "yes,no,maybe"
-msgstr "sì,no,forse"
+msgid "Select a valid choice. %s is not one of the available choices."
+msgstr "Selezionare un'opzione valida;'%s non compare tra quelle disponibili."
diff --git a/django/conf/locale/it/LC_MESSAGES/djangojs.mo b/django/conf/locale/it/LC_MESSAGES/djangojs.mo
index 2df21b6558..c34009f148 100644
--- a/django/conf/locale/it/LC_MESSAGES/djangojs.mo
+++ b/django/conf/locale/it/LC_MESSAGES/djangojs.mo
Binary files differ
diff --git a/django/conf/locale/it/LC_MESSAGES/djangojs.po b/django/conf/locale/it/LC_MESSAGES/djangojs.po
index 4b68decff2..4f01cd04a0 100644
--- a/django/conf/locale/it/LC_MESSAGES/djangojs.po
+++ b/django/conf/locale/it/LC_MESSAGES/djangojs.po
@@ -1,20 +1,39 @@
+# translation of djangojs.po to Italiano
# Italian translation for the django-admin JS files
# Copyright (C) 2006 the Lawrence Journal-World
# This file is distributed under the same license as the Django package.
-# Carlo C8E Miron <carlo.miron AT gmail.com>, 2006.
#
+# Carlo C8E Miron <carlo.miron AT gmail.com>, 2006.
+# Nicola 'tekNico' Larosa <nico@tekNico.net>, 2007.
msgid ""
msgstr ""
-"Project-Id-Version: Django JavaScript 1.0\n"
+"Project-Id-Version: djangojs\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-12-09 11:51+0100\n"
-"PO-Revision-Date: 2005-12-04 21:47+0100\n"
-"Last-Translator: Carlo C8E Miron <carlo.miron AT gmail.com>\n"
-"Language-Team: Italian <Django-I18N@googlegroups.com>\n"
+"POT-Creation-Date: 2007-02-26 20:46+0100\n"
+"PO-Revision-Date: 2007-02-26 20:55+0100\n"
+"Last-Translator: Nicola Larosa <nico@tekNico.net>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: KBabel 1.11.2\n"
+
+#: contrib/admin/media/js/calendar.js:24
+#: contrib/admin/media/js/dateparse.js:32
+msgid ""
+"January February March April May June July August September October November "
+"December"
+msgstr ""
+"Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre "
+"Novembre Dicembre"
+
+#: contrib/admin/media/js/calendar.js:25
+msgid "S M T W T F S"
+msgstr "D L M M G V S"
+
+#: contrib/admin/media/js/dateparse.js:33
+msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
+msgstr "Domenica Lunedì Martedì Mercoledì Giovedì Venerdì Sabato"
#: contrib/admin/media/js/SelectFilter2.js:33
#, perl-format
@@ -23,7 +42,7 @@ msgstr "Disponibile %s"
#: contrib/admin/media/js/SelectFilter2.js:41
msgid "Choose all"
-msgstr "Seleziona tutto"
+msgstr "Scegli tutto"
#: contrib/admin/media/js/SelectFilter2.js:46
msgid "Add"
@@ -36,7 +55,7 @@ msgstr "Rimuovi"
#: contrib/admin/media/js/SelectFilter2.js:53
#, perl-format
msgid "Chosen %s"
-msgstr "Selezionato %s"
+msgstr "Scelto %s"
#: contrib/admin/media/js/SelectFilter2.js:54
msgid "Select your choice(s) and click "
@@ -46,66 +65,59 @@ msgstr "Seleziona le tue scelte e clicca "
msgid "Clear all"
msgstr "Cancella tutto"
-#: contrib/admin/media/js/dateparse.js:26
-#: contrib/admin/media/js/calendar.js:24
-msgid ""
-"January February March April May June July August September October November "
-"December"
-msgstr ""
-"Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre "
-"Novembre Dicembre"
-
-#: contrib/admin/media/js/dateparse.js:27
-msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
-msgstr "Domenica Lunedì Martedì Mercoledì Giovedì Venerdì Sabato"
-
-#: contrib/admin/media/js/calendar.js:25
-msgid "S M T W T F S"
-msgstr "D L M M G V S"
-
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
msgid "Now"
msgstr "Adesso"
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
msgid "Clock"
msgstr "Orologio"
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
msgid "Choose a time"
-msgstr "Seleziona un orario"
+msgstr "Scegli un orario"
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
msgid "Midnight"
msgstr "Mezzanotte"
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
msgid "6 a.m."
msgstr "6 del mattino"
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
msgid "Noon"
msgstr "Mezzogiorno"
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
msgid "Cancel"
msgstr "Annulla"
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
msgid "Today"
msgstr "Oggi"
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
msgid "Calendar"
msgstr "Calendario"
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
msgid "Yesterday"
msgstr "Ieri"
-#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
+#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
msgid "Tomorrow"
msgstr "Domani"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
+msgid "Show"
+msgstr "Mostra"
+
+#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
+msgid "Hide"
+msgstr "Nascondi"
+
diff --git a/django/contrib/admin/media/css/forms.css b/django/contrib/admin/media/css/forms.css
index b4885cefc8..0cfe2ff28e 100644
--- a/django/contrib/admin/media/css/forms.css
+++ b/django/contrib/admin/media/css/forms.css
@@ -9,7 +9,7 @@ form .form-row p { padding-left:0; font-size:11px; }
/* FORM LABELS */
form h4 { margin:0 !important; padding:0 !important; border:none !important; }
label { font-weight:normal !important; color:#666; font-size:12px; }
-/* label.inline { margin-left:20px; } */
+label.inline { margin-left:20px; }
.required label, label.required { font-weight:bold !important; color:#333 !important; }
/* RADIO BUTTONS */
@@ -20,7 +20,7 @@ form ul.inline li { float:left; padding-right:7px; }
/* ALIGNED FIELDSETS */
.aligned label { display:block; padding:0 1em 3px 0; float:left; width:8em; }
-/* .aligned label.inline { display:inline; float:none; } */
+.aligned label.inline { display:inline; float:none; }
.colMS .aligned .vLargeTextField, .colMS .aligned .vXMLLargeTextField { width:350px; }
form .aligned p, form .aligned ul { margin-left:7em; padding-left:30px; }
form .aligned table p { margin-left:0; padding-left:0; }
diff --git a/django/db/models/query.py b/django/db/models/query.py
index 5b2c18b25e..a03f4ecc1f 100644
--- a/django/db/models/query.py
+++ b/django/db/models/query.py
@@ -84,6 +84,7 @@ class QuerySet(object):
self._filters = Q()
self._order_by = None # Ordering, e.g. ('date', '-name'). If None, use model's ordering.
self._select_related = False # Whether to fill cache for related objects.
+ self._max_related_depth = 0 # Maximum "depth" for select_related
self._distinct = False # Whether the query should use SELECT DISTINCT.
self._select = {} # Dictionary of attname -> SQL.
self._where = [] # List of extra WHERE clauses to use.
@@ -186,7 +187,8 @@ class QuerySet(object):
raise StopIteration
for row in rows:
if fill_cache:
- obj, index_end = get_cached_row(self.model, row, 0)
+ obj, index_end = get_cached_row(klass=self.model, row=row,
+ index_start=0, max_depth=self._max_related_depth)
else:
obj = self.model(*row[:index_end])
for i, k in enumerate(extra_select):
@@ -394,9 +396,9 @@ class QuerySet(object):
else:
return self._filter_or_exclude(None, **filter_obj)
- def select_related(self, true_or_false=True):
+ def select_related(self, true_or_false=True, depth=0):
"Returns a new QuerySet instance with '_select_related' modified."
- return self._clone(_select_related=true_or_false)
+ return self._clone(_select_related=true_or_false, _max_related_depth=depth)
def order_by(self, *field_names):
"Returns a new QuerySet instance with the ordering changed."
@@ -430,6 +432,7 @@ class QuerySet(object):
c._filters = self._filters
c._order_by = self._order_by
c._select_related = self._select_related
+ c._max_related_depth = self._max_related_depth
c._distinct = self._distinct
c._select = self._select.copy()
c._where = self._where[:]
@@ -483,7 +486,10 @@ class QuerySet(object):
# Add additional tables and WHERE clauses based on select_related.
if self._select_related:
- fill_table_cache(opts, select, tables, where, opts.db_table, [opts.db_table])
+ fill_table_cache(opts, select, tables, where,
+ old_prefix=opts.db_table,
+ cache_tables_seen=[opts.db_table],
+ max_depth=self._max_related_depth)
# Add any additional SELECTs.
if self._select:
@@ -728,21 +734,33 @@ def get_where_clause(lookup_type, table_prefix, field_name, value):
return backend.get_fulltext_search_sql(table_prefix + field_name)
raise TypeError, "Got invalid lookup_type: %s" % repr(lookup_type)
-def get_cached_row(klass, row, index_start):
- "Helper function that recursively returns an object with cache filled"
+def get_cached_row(klass, row, index_start, max_depth=0, cur_depth=0):
+ """Helper function that recursively returns an object with cache filled"""
+
+ # If we've got a max_depth set and we've exceeded that depth, bail now.
+ if max_depth and cur_depth > max_depth:
+ return None
+
index_end = index_start + len(klass._meta.fields)
obj = klass(*row[index_start:index_end])
for f in klass._meta.fields:
if f.rel and not f.null:
- rel_obj, index_end = get_cached_row(f.rel.to, row, index_end)
- setattr(obj, f.get_cache_name(), rel_obj)
+ cached_row = get_cached_row(f.rel.to, row, index_end, max_depth, cur_depth+1)
+ if cached_row:
+ rel_obj, index_end = cached_row
+ setattr(obj, f.get_cache_name(), rel_obj)
return obj, index_end
-def fill_table_cache(opts, select, tables, where, old_prefix, cache_tables_seen):
+def fill_table_cache(opts, select, tables, where, old_prefix, cache_tables_seen, max_depth=0, cur_depth=0):
"""
Helper function that recursively populates the select, tables and where (in
place) for select_related queries.
"""
+
+ # If we've got a max_depth set and we've exceeded that depth, bail now.
+ if max_depth and cur_depth > max_depth:
+ return None
+
qn = backend.quote_name
for f in opts.fields:
if f.rel and not f.null:
@@ -757,7 +775,7 @@ def fill_table_cache(opts, select, tables, where, old_prefix, cache_tables_seen)
where.append('%s.%s = %s.%s' % \
(qn(old_prefix), qn(f.column), qn(db_table), qn(f.rel.get_related_field().column)))
select.extend(['%s.%s' % (qn(db_table), qn(f2.column)) for f2 in f.rel.to._meta.fields])
- fill_table_cache(f.rel.to._meta, select, tables, where, db_table, cache_tables_seen)
+ fill_table_cache(f.rel.to._meta, select, tables, where, db_table, cache_tables_seen, max_depth, cur_depth+1)
def parse_lookup(kwarg_items, opts):
# Helper function that handles converting API kwargs
diff --git a/django/utils/dateformat.py b/django/utils/dateformat.py
index 00eb9fe617..e3712175af 100644
--- a/django/utils/dateformat.py
+++ b/django/utils/dateformat.py
@@ -16,7 +16,7 @@ from django.utils.tzinfo import LocalTimezone
from calendar import isleap, monthrange
import re, time
-re_formatchars = re.compile(r'(?<!\\)([aABdDfFgGhHiIjlLmMnNOPrsStTUwWyYzZ])')
+re_formatchars = re.compile(r'(?<!\\)([aAbBdDfFgGhHiIjlLmMnNOPrsStTUwWyYzZ])')
re_escaped = re.compile(r'\\(.)')
class Formatter(object):
@@ -110,6 +110,10 @@ class DateFormat(TimeFormat):
if hasattr(self.data, 'hour') and not self.timezone:
self.timezone = LocalTimezone(dt)
+ def b(self):
+ "Month, textual, 3 letters, lowercase; e.g. 'jan'"
+ return MONTHS_3[self.data.month]
+
def d(self):
"Day of the month, 2 digits with leading zeros; i.e. '01' to '31'"
return '%02d' % self.data.day
diff --git a/docs/authentication.txt b/docs/authentication.txt
index 5186c5672c..aff336f67a 100644
--- a/docs/authentication.txt
+++ b/docs/authentication.txt
@@ -398,7 +398,7 @@ To do this, add the following line to your URLconf::
(r'^accounts/login/$', 'django.contrib.auth.views.login'),
-Here's what ``django.contrib.auth.views.login`` does::
+Here's what ``django.contrib.auth.views.login`` does:
* If called via ``GET``, it displays a login form that POSTs to the same
URL. More on this in a bit.
diff --git a/docs/db-api.txt b/docs/db-api.txt
index 3dc0efbabd..20a319740e 100644
--- a/docs/db-api.txt
+++ b/docs/db-api.txt
@@ -596,6 +596,21 @@ related ``Person`` *and* the related ``City``::
Note that ``select_related()`` does not follow foreign keys that have
``null=True``.
+Usually, using ``select_related()`` can vastly improve performance because your
+app can avoid many database calls. However, in situations with deeply nested
+sets of relationships ``select_related()`` can sometimes end up following "too
+many" relations, and can generate queries so large that they end up being slow.
+
+In these situations, you can use the ``depth`` argument to ``select_related()``
+to control how many "levels" of relations ``select_related()`` will actually
+follow::
+
+ b = Book.objects.select_related(depth=1).get(id=4)
+ p = b.author # Doesn't hit the database.
+ c = p.hometown # Requires a database call.
+
+The ``depth`` argument is new in the Django development version.
+
``extra(select=None, where=None, params=None, tables=None)``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/docs/django-admin.txt b/docs/django-admin.txt
index 96316702c8..368062468d 100644
--- a/docs/django-admin.txt
+++ b/docs/django-admin.txt
@@ -151,7 +151,7 @@ runfcgi [options]
-----------------
Starts a set of FastCGI processes suitable for use with any web server
which supports the FastCGI protocol. See the `FastCGI deployment
-documentation`- for details. Requires the Python FastCGI module from
+documentation`_ for details. Requires the Python FastCGI module from
`flup`_.
.. _FastCGI deployment documentation: ../fastcgi/
diff --git a/docs/install.txt b/docs/install.txt
index f73a734aba..3eede02af0 100644
--- a/docs/install.txt
+++ b/docs/install.txt
@@ -64,7 +64,7 @@ installed.
.. _PostgreSQL: http://www.postgresql.org/
.. _MySQL: http://www.mysql.com/
.. _Django's ticket system: http://code.djangoproject.com/report/1
-.. _psycopg: http://initd.org/projects/psycopg1
+.. _psycopg: http://initd.org/tracker/psycopg
.. _compiled Windows version: http://stickpeople.com/projects/python/win-psycopg/
.. _MySQLdb: http://sourceforge.net/projects/mysql-python
.. _SQLite: http://www.sqlite.org/
diff --git a/docs/settings.txt b/docs/settings.txt
index 3f928a2234..873b70a5e2 100644
--- a/docs/settings.txt
+++ b/docs/settings.txt
@@ -239,10 +239,10 @@ The cache key prefix that the cache middleware should use. See the
DATABASE_ENGINE
---------------
-Default: ``'postgresql'``
+Default: ``''`` (Empty string)
-Which database backend to use. Either ``'postgresql'``, ``'mysql'``,
-``'sqlite3'`` or ``'ado_mssql'``.
+Which database backend to use. Either ``'postgresql_psycopg2'``,
+``'postgresql'``, ``'mysql'``, ``'sqlite3'`` or ``'ado_mssql'``.
DATABASE_HOST
-------------
diff --git a/docs/templates.txt b/docs/templates.txt
index 5a007c13ae..d53270ac16 100644
--- a/docs/templates.txt
+++ b/docs/templates.txt
@@ -645,6 +645,7 @@ Available format strings:
output, because this includes periods
to match Associated Press style.)
A ``'AM'`` or ``'PM'``. ``'AM'``
+ b Month, textual, 3 letters, lowercase. ``'jan'``
B Not implemented.
d Day of the month, 2 digits with ``'01'`` to ``'31'``
leading zeros.
diff --git a/extras/django_bash_completion b/extras/django_bash_completion
index 79efc5b3b1..bd066ec08f 100644
--- a/extras/django_bash_completion
+++ b/extras/django_bash_completion
@@ -31,6 +31,9 @@
#
# To uninstall, just remove the line from your .bash_profile and .bashrc.
+# Enable extended pattern matching operators.
+shopt -s extglob
+
_django_completion()
{
local cur prev opts actions action_shell_opts action_runfcgi_opts
@@ -58,8 +61,13 @@ _django_completion()
||
# python manage.py, /some/path/python manage.py (if manage.py exists)
( ${COMP_CWORD} -eq 2 &&
- ( $( basename ${COMP_WORDS[0]} ) == python ) &&
+ ( $( basename ${COMP_WORDS[0]} ) == python?([1-9]\.[0-9]) ) &&
( $( basename ${COMP_WORDS[1]} ) == manage.py) &&
+ ( -r ${COMP_WORDS[1]} ) )
+ ||
+ ( ${COMP_CWORD} -eq 2 &&
+ ( $( basename ${COMP_WORDS[0]} ) == python?([1-9]\.[0-9]) ) &&
+ ( $( basename ${COMP_WORDS[1]} ) == django-admin.py) &&
( -r ${COMP_WORDS[1]} ) ) ]] ; then
case ${cur} in
@@ -135,3 +143,17 @@ _django_completion()
}
complete -F _django_completion django-admin.py manage.py
+
+# Support for multiple interpreters.
+unset pythons
+if command -v whereis &>/dev/null; then
+ python_interpreters=$(whereis -b python | cut -d " " -f 2-)
+ for python in $python_interpreters; do
+ pythons="${pythons} $(basename $python)"
+ done
+ pythons=$(echo $pythons | tr " " "\n" | sort -u | tr "\n" " ")
+else
+ pythons=python
+fi
+
+complete -F _django_completion -o default $pythons
diff --git a/tests/modeltests/select_related/__init__.py b/tests/modeltests/select_related/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/modeltests/select_related/__init__.py
diff --git a/tests/modeltests/select_related/models.py b/tests/modeltests/select_related/models.py
new file mode 100644
index 0000000000..8a19267870
--- /dev/null
+++ b/tests/modeltests/select_related/models.py
@@ -0,0 +1,152 @@
+"""
+XXX. Tests for ``select_related()``
+
+``select_related()`` follows all relationships and pre-caches any foreign key
+values so that complex trees can be fetched in a single query. However, this
+isn't always a good idea, so the ``depth`` argument control how many "levels"
+the select-related behavior will traverse.
+"""
+
+from django.db import models
+
+# Who remembers high school biology?
+
+class Domain(models.Model):
+ name = models.CharField(maxlength=50)
+ def __str__(self):
+ return self.name
+
+class Kingdom(models.Model):
+ name = models.CharField(maxlength=50)
+ domain = models.ForeignKey(Domain)
+ def __str__(self):
+ return self.name
+
+class Phylum(models.Model):
+ name = models.CharField(maxlength=50)
+ kingdom = models.ForeignKey(Kingdom)
+ def __str__(self):
+ return self.name
+
+class Klass(models.Model):
+ name = models.CharField(maxlength=50)
+ phylum = models.ForeignKey(Phylum)
+ def __str__(self):
+ return self.name
+
+class Order(models.Model):
+ name = models.CharField(maxlength=50)
+ klass = models.ForeignKey(Klass)
+ def __str__(self):
+ return self.name
+
+class Family(models.Model):
+ name = models.CharField(maxlength=50)
+ order = models.ForeignKey(Order)
+ def __str__(self):
+ return self.name
+
+class Genus(models.Model):
+ name = models.CharField(maxlength=50)
+ family = models.ForeignKey(Family)
+ def __str__(self):
+ return self.name
+
+class Species(models.Model):
+ name = models.CharField(maxlength=50)
+ genus = models.ForeignKey(Genus)
+ def __str__(self):
+ return self.name
+
+def create_tree(stringtree):
+ """Helper to create a complete tree"""
+ names = stringtree.split()
+ models = [Domain, Kingdom, Phylum, Klass, Order, Family, Genus, Species]
+ assert len(names) == len(models), (names, models)
+
+ parent = None
+ for name, model in zip(names, models):
+ try:
+ obj = model.objects.get(name=name)
+ except model.DoesNotExist:
+ obj = model(name=name)
+ if parent:
+ setattr(obj, parent.__class__.__name__.lower(), parent)
+ obj.save()
+ parent = obj
+
+__test__ = {'API_TESTS':"""
+
+# Set up.
+# The test runner sets settings.DEBUG to False, but we want to gather queries
+# so we'll set it to True here and reset it at the end of the test suite.
+>>> from django.conf import settings
+>>> settings.DEBUG = True
+
+>>> create_tree("Eukaryota Animalia Anthropoda Insecta Diptera Drosophilidae Drosophila melanogaster")
+>>> create_tree("Eukaryota Animalia Chordata Mammalia Primates Hominidae Homo sapiens")
+>>> create_tree("Eukaryota Plantae Magnoliophyta Magnoliopsida Fabales Fabaceae Pisum sativum")
+>>> create_tree("Eukaryota Fungi Basidiomycota Homobasidiomycatae Agaricales Amanitacae Amanita muscaria")
+
+>>> from django import db
+
+# Normally, accessing FKs doesn't fill in related objects:
+>>> db.reset_queries()
+>>> fly = Species.objects.get(name="melanogaster")
+>>> fly.genus.family.order.klass.phylum.kingdom.domain
+<Domain: Eukaryota>
+>>> len(db.connection.queries)
+8
+
+# However, a select_related() call will fill in those related objects without any extra queries:
+>>> db.reset_queries()
+>>> person = Species.objects.select_related().get(name="sapiens")
+>>> person.genus.family.order.klass.phylum.kingdom.domain
+<Domain: Eukaryota>
+>>> len(db.connection.queries)
+1
+
+# select_related() also of course applies to entire lists, not just items.
+# Without select_related()
+>>> db.reset_queries()
+>>> world = Species.objects.all()
+>>> [o.genus.family for o in world]
+[<Family: Drosophilidae>, <Family: Hominidae>, <Family: Fabaceae>, <Family: Amanitacae>]
+>>> len(db.connection.queries)
+9
+
+# With select_related():
+>>> db.reset_queries()
+>>> world = Species.objects.all().select_related()
+>>> [o.genus.family for o in world]
+[<Family: Drosophilidae>, <Family: Hominidae>, <Family: Fabaceae>, <Family: Amanitacae>]
+>>> len(db.connection.queries)
+1
+
+# The "depth" argument to select_related() will stop the descent at a particular level:
+>>> db.reset_queries()
+>>> pea = Species.objects.select_related(depth=1).get(name="sativum")
+>>> pea.genus.family.order.klass.phylum.kingdom.domain
+<Domain: Eukaryota>
+
+# Notice: one few query than above because of depth=1
+>>> len(db.connection.queries)
+7
+
+>>> db.reset_queries()
+>>> pea = Species.objects.select_related(depth=5).get(name="sativum")
+>>> pea.genus.family.order.klass.phylum.kingdom.domain
+<Domain: Eukaryota>
+>>> len(db.connection.queries)
+3
+
+>>> db.reset_queries()
+>>> world = Species.objects.all().select_related(depth=2)
+>>> [o.genus.family.order for o in world]
+[<Order: Diptera>, <Order: Primates>, <Order: Fabales>, <Order: Agaricales>]
+>>> len(db.connection.queries)
+5
+
+# Reset DEBUG to where we found it.
+>>> settings.DEBUG = False
+"""}
diff --git a/tests/regressiontests/bug639/tests.py b/tests/regressiontests/bug639/tests.py
index c05ef120e1..f9596d06cb 100644
--- a/tests/regressiontests/bug639/tests.py
+++ b/tests/regressiontests/bug639/tests.py
@@ -32,4 +32,11 @@ class Bug639Test(unittest.TestCase):
p = manip.save(qd)
# Check the savecount stored on the object (see the model)
- self.assertEqual(p._savecount, 1) \ No newline at end of file
+ self.assertEqual(p._savecount, 1)
+
+ def tearDown(self):
+ """
+ Make sure to delete the "uploaded" file to avoid clogging /tmp.
+ """
+ p = Photo.objects.get()
+ os.unlink(p.get_image_filename()) \ No newline at end of file
diff --git a/tests/regressiontests/dateformat/tests.py b/tests/regressiontests/dateformat/tests.py
index 6e28759a92..f9f84145c5 100644
--- a/tests/regressiontests/dateformat/tests.py
+++ b/tests/regressiontests/dateformat/tests.py
@@ -17,6 +17,8 @@ r"""
'07'
>>> format(my_birthday, 'M')
'Jul'
+>>> format(my_birthday, 'b')
+'jul'
>>> format(my_birthday, 'n')
'7'
>>> format(my_birthday, 'N')