From b0bbdc744d17565ae957ed9cad685c2dc47a3d84 Mon Sep 17 00:00:00 2001 From: Joseph Kocherhans Date: Thu, 1 Mar 2007 00:07:42 +0000 Subject: Merged to [4656] git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@4657 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- AUTHORS | 1 + django/conf/locale/it/LC_MESSAGES/django.mo | Bin 32320 -> 40468 bytes django/conf/locale/it/LC_MESSAGES/django.po | 3413 ++++++++++++++----------- django/conf/locale/it/LC_MESSAGES/djangojs.mo | Bin 1613 -> 1643 bytes django/conf/locale/it/LC_MESSAGES/djangojs.po | 96 +- django/contrib/admin/media/css/forms.css | 4 +- django/db/models/query.py | 38 +- django/utils/dateformat.py | 6 +- docs/authentication.txt | 2 +- docs/db-api.txt | 15 + docs/django-admin.txt | 2 +- docs/install.txt | 2 +- docs/settings.txt | 6 +- docs/templates.txt | 1 + extras/django_bash_completion | 24 +- tests/modeltests/select_related/__init__.py | 0 tests/modeltests/select_related/models.py | 152 ++ tests/regressiontests/bug639/tests.py | 9 +- tests/regressiontests/dateformat/tests.py | 2 + 19 files changed, 2167 insertions(+), 1606 deletions(-) create mode 100644 tests/modeltests/select_related/__init__.py create mode 100644 tests/modeltests/select_related/models.py 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 + Nicola Larosa Eugene Lazutkin Jeong-Min Lee Christopher Lenz diff --git a/django/conf/locale/it/LC_MESSAGES/django.mo b/django/conf/locale/it/LC_MESSAGES/django.mo index 6b7dd0f01f..584531c9b2 100644 Binary files a/django/conf/locale/it/LC_MESSAGES/django.mo and b/django/conf/locale/it/LC_MESSAGES/django.mo 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,1970 +1,2297 @@ +# 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 , 2006. -# -# +# Nicola 'tekNico' Larosa , 2007. +# Nicola Larosa , 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 \n" -"Language-Team: Italian \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 \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 -msgid "" -"Check this box if the comment is inappropriate. A \"This comment has been " -"removed\" message will be displayed instead." -msgstr "" -"Spunta la casella se il commento è inappropriato. Verrà sostituito con un " -"messaggio \"Questo commento è stato rimosso\"." +#: conf/global_settings.py:41 +msgid "Catalan" +msgstr "Catalano" -#: contrib/comments/models/comments.py:31 -msgid "Comment" -msgstr "Commento" +#: conf/global_settings.py:42 +msgid "Czech" +msgstr "Ceco" -#: contrib/comments/models/comments.py:32 -#: contrib/comments/models.py:91 -msgid "Comments" -msgstr "Commenti" +#: conf/global_settings.py:43 +msgid "Welsh" +msgstr "Gallese" -#: contrib/comments/models.py:131 contrib/comments/models.py:207 -msgid "Content object" -msgstr "Contenitore" +#: conf/global_settings.py:44 +msgid "Danish" +msgstr "Danese" -#: 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 "" -"Commento di %(user)s del %(date)s\n" -"\n" -"%(comment)s\n" -"\n" -"http://%(domain)s%(url)s" +#: conf/global_settings.py:45 +msgid "German" +msgstr "Tedesco" -#: contrib/comments/models.py:168 -msgid "person's name" -msgstr "nome della persona" +#: conf/global_settings.py:46 +msgid "Greek" +msgstr "Greco" -#: contrib/comments/models.py:171 -msgid "ip address" -msgstr "indirizzo IP" +#: conf/global_settings.py:47 +msgid "English" +msgstr "Inglese" -#: contrib/comments/models.py:173 -msgid "approved by staff" -msgstr "approvato dallo staff" +#: conf/global_settings.py:48 +msgid "Spanish" +msgstr "Spagnolo" -#: contrib/comments/models.py:176 -msgid "free comment" -msgstr "commento libero" +#: conf/global_settings.py:49 +msgid "Argentinean Spanish" +msgstr "Spagnolo argentino" -#: contrib/comments/models.py:177 -msgid "free comments" -msgstr "commenti liberi" +#: conf/global_settings.py:50 +msgid "Finnish" +msgstr "Finlandese" -#: contrib/comments/models.py:233 -msgid "score" -msgstr "punteggio" +#: conf/global_settings.py:51 +msgid "French" +msgstr "Francese" -#: contrib/comments/models.py:234 -msgid "score date" -msgstr "data punteggio" +#: conf/global_settings.py:52 +msgid "Galician" +msgstr "Galiziano" -#: contrib/comments/models.py:237 -msgid "karma score" -msgstr "livello karma" +#: conf/global_settings.py:53 +msgid "Hungarian" +msgstr "Ungherese" -#: contrib/comments/models.py:238 -msgid "karma scores" -msgstr "livelli karma" +#: conf/global_settings.py:54 +msgid "Hebrew" +msgstr "Ebraico" -#: contrib/comments/models.py:242 -#, python-format -msgid "%(score)d rating by %(user)s" -msgstr "valutazione: %(score)d da %(user)s" +#: conf/global_settings.py:55 +msgid "Icelandic" +msgstr "Islandese" -#: contrib/comments/models.py:258 -#, 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" +#: conf/global_settings.py:56 +msgid "Italian" +msgstr "Italiano" -#: contrib/comments/models.py:265 -msgid "flag date" -msgstr "data flag" +#: conf/global_settings.py:57 +msgid "Japanese" +msgstr "Giapponese" -#: contrib/comments/models.py:268 -msgid "user flag" -msgstr "flag utente" +#: conf/global_settings.py:58 +msgid "Kannada" +msgstr "Kannada" -#: contrib/comments/models.py:269 -msgid "user flags" -msgstr "flag utente" +#: conf/global_settings.py:59 +msgid "Latvian" +msgstr "Lettone" -#: contrib/comments/models.py:273 -#, python-format -msgid "Flag by %r" -msgstr "Flag da %r" +#: conf/global_settings.py:60 +msgid "Macedonian" +msgstr "Macedone" -#: contrib/comments/models/comments.py:278 -#: contrib/comments/models.py:278 -msgid "deletion date" -msgstr "data eliminazione" +#: conf/global_settings.py:61 +msgid "Dutch" +msgstr "Olandese" -#: contrib/comments/models.py:280 -msgid "moderator deletion" -msgstr "rimozione da moderatore" +#: conf/global_settings.py:62 +msgid "Norwegian" +msgstr "Norvegese" -#: contrib/comments/models.py:281 -msgid "moderator deletions" -msgstr "rimozioni da moderatore" +#: conf/global_settings.py:63 +msgid "Polish" +msgstr "Polacco" -#: contrib/comments/models.py:285 -#, python-format -msgid "Moderator deletion by %r" -msgstr "Rimozione da moderatore di %r" +#: conf/global_settings.py:64 +msgid "Brazilian" +msgstr "Brasiliano" -#: contrib/comments/views/karma.py:19 -msgid "Anonymous users cannot vote" -msgstr "Gli utenti anonimi non possono votare" +#: conf/global_settings.py:65 +msgid "Romanian" +msgstr "Rumeno" -#: contrib/comments/views/karma.py:23 -msgid "Invalid comment ID" -msgstr "ID commento non valido" +#: conf/global_settings.py:66 +msgid "Russian" +msgstr "Russo" -#: contrib/comments/views/karma.py:25 -msgid "No voting for yourself" -msgstr "Non votare per te stesso" +#: conf/global_settings.py:67 +msgid "Slovak" +msgstr "Slovacco" -#: contrib/comments/views/comments.py:28 -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" +#: conf/global_settings.py:68 +msgid "Slovenian" +msgstr "Sloveno" -#: contrib/comments/views/comments.py:112 -#, python-format -msgid "" -"This comment was posted by a user who has posted fewer than %(count)s " -"comment:\n" -"\n" -"%(text)s" -msgid_plural "" -"This comment was posted by a user who has posted fewer than %(count)s " -"comments:\n" -"\n" -"%(text)s" -msgstr[0] "" -"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" -"" +#: conf/global_settings.py:69 +msgid "Serbian" +msgstr "Serbo" -#: contrib/comments/views/comments.py:117 -#, python-format -msgid "" -"This comment was posted by a sketchy user:\n" -"\n" -"%(text)s" -msgstr "" -"Commento di un utente \"sketchy\":\n" -"\n" -"%(text)s" +#: conf/global_settings.py:70 +msgid "Swedish" +msgstr "Svedese" -#: contrib/comments/views/comments.py:189 -#: contrib/comments/views/comments.py:280 -msgid "Only POSTs are allowed" -msgstr "Sono ammessi solo POST" - -#: 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" - -#: 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/comments/views/comments.py:207 -#: 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 'anteprima' o 'invia'" - -#: 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/comments/templates/comments/form.html:6 -#: contrib/admin/templates/admin/login.html:20 -msgid "Password:" -msgstr "Password:" - -#: contrib/comments/templates/comments/form.html:6 -msgid "Forgotten your password?" -msgstr "Hai dimenticato la password?" +#: conf/global_settings.py:71 +msgid "Tamil" +msgstr "Tamil" -#: 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/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 "Opzionale" +#: conf/global_settings.py:72 +msgid "Turkish" +msgstr "Turco" -#: contrib/comments/templates/comments/form.html:23 -msgid "Post a photo" -msgstr "Invia una foto" +#: conf/global_settings.py:73 +msgid "Ukrainian" +msgstr "Ucraino" -#: contrib/comments/templates/comments/form.html:27 -#: contrib/comments/templates/comments/freeform.html:5 -msgid "Comment:" -msgstr "Commento:" +#: conf/global_settings.py:74 +msgid "Simplified Chinese" +msgstr "Cinese semplificato" -#: contrib/comments/templates/comments/form.html:32 -#: contrib/comments/templates/comments/freeform.html:9 -msgid "Preview comment" -msgstr "Anteprima commento" +#: conf/global_settings.py:75 +msgid "Traditional Chinese" +msgstr "Cinese tradizionale" -#: contrib/comments/templates/comments/freeform.html:4 -msgid "Your name:" -msgstr "Il tuo nome:" +#: core/validators.py:64 +msgid "This value must contain only letters, numbers and underscores." +msgstr "Questo valore può contenere solo lettere, cifre e sottolineature." -#: contrib/admin/filterspecs.py:40 -#, python-format +#: core/validators.py:68 msgid "" -"

By %s:

\n" -"
    \n" +"This value must contain only letters, numbers, underscores, dashes or " +"slashes." msgstr "" -"

    Da %s:

    \n" -"
      \n" - -#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88 -#: contrib/admin/filterspecs.py:143 -msgid "All" -msgstr "Tutti" +"Questo valore può contenere solo lettere, cifre, sottolineature, trattini e " +"barre diagonali." -#: contrib/admin/filterspecs.py:109 -msgid "Any date" -msgstr "Qualsiasi data" +#: 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/admin/filterspecs.py:110 -msgid "Today" -msgstr "Oggi" +#: core/validators.py:76 +msgid "Uppercase letters are not allowed here." +msgstr "Non sono ammesse lettere maiuscole." -#: contrib/admin/filterspecs.py:113 -msgid "Past 7 days" -msgstr "Ultimi 7 giorni" +#: core/validators.py:80 +msgid "Lowercase letters are not allowed here." +msgstr "Non sono ammesse lettere minuscole." -#: contrib/admin/filterspecs.py:115 -msgid "This month" -msgstr "Questo mese" +#: core/validators.py:87 +msgid "Enter only digits separated by commas." +msgstr "Inserire solo cifre separate da virgole." -#: contrib/admin/filterspecs.py:117 -msgid "This year" -msgstr "Quest'anno" +#: core/validators.py:99 +msgid "Enter valid e-mail addresses separated by commas." +msgstr "Inserire indirizzi e-mail validi separati da virgole." -#: contrib/admin/filterspecs.py:143 -msgid "Yes" -msgstr "Sì" +#: core/validators.py:103 +msgid "Please enter a valid IP address." +msgstr "Inserire un indirizzo IP valido." -#: contrib/admin/filterspecs.py:143 -msgid "No" -msgstr "No" +#: core/validators.py:107 +msgid "Empty values are not allowed here." +msgstr "È necessario inserire un valore." -#: contrib/admin/filterspecs.py:150 -msgid "Unknown" -msgstr "Sconosciuto" +#: core/validators.py:111 +msgid "Non-numeric characters aren't allowed here." +msgstr "Sono ammessi soltanto caratteri numerici." -#: contrib/admin/models.py:16 -msgid "action time" -msgstr "data azione" +#: core/validators.py:115 +msgid "This value can't be comprised solely of digits." +msgstr "Questo valore non può essere composto solo da cifre." -#: contrib/admin/models.py:19 -msgid "object id" -msgstr "ID dell'oggetto" +#: core/validators.py:120 newforms/fields.py:126 +msgid "Enter a whole number." +msgstr "Inserire un numero intero." -#: contrib/admin/models.py:20 -msgid "object repr" -msgstr "rappresentazione dell'oggetto" +#: core/validators.py:124 +msgid "Only alphabetical characters are allowed here." +msgstr "Sono ammessi solo caratteri alfabetici." -#: contrib/admin/models.py:21 -msgid "action flag" -msgstr "flag azione" +#: core/validators.py:139 +msgid "Year must be 1900 or later." +msgstr "L'anno deve essere 1900 o successivo." -#: contrib/admin/models.py:22 -msgid "change message" -msgstr "modifica messaggio" +#: core/validators.py:143 +#, python-format +msgid "Invalid date: %s." +msgstr "Data non valida: %s." -#: contrib/admin/models.py:25 -msgid "log entry" -msgstr "voce di log" +#: core/validators.py:152 +msgid "Enter a valid time in HH:MM format." +msgstr "Inserire un orario valido in formato OO:MM." -#: contrib/admin/models.py:26 -msgid "log entries" -msgstr "voci di log" +#: core/validators.py:161 newforms/fields.py:269 +msgid "Enter a valid e-mail address." +msgstr "Inserire un indirizzo e-mail valido." -#: contrib/admin/templatetags/admin_list.py:228 -msgid "All dates" -msgstr "Tutte le date" +#: 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." -#: contrib/admin/views/decorators.py:9 contrib/auth/forms.py:36 -#: contrib/auth/forms.py:41 +#: core/validators.py:177 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." +"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." -#: contrib/admin/views/decorators.py:23 -#: contrib/admin/templates/admin/login.html:25 -msgid "Log in" -msgstr "Accedi" +#: 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." -#: contrib/admin/views/decorators.py:61 -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." +#: 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." -#: contrib/admin/views/decorators.py:68 +#: core/validators.py:214 +#, python-format msgid "" -"Looks like your browser isn't configured to accept cookies. Please enable " -"cookies, reload this page, and try again." +"Valid HTML is required. Specific errors are:\n" +"%s" msgstr "" -"Il browser non è configurato per accettare cookie. Abilitarli, ricaricare la pagina e provare di nuovo." - -#: contrib/admin/views/decorators.py:82 -msgid "Usernames cannot contain the '@' character." -msgstr "Il nome utente non può contenere il carattere '@'." +"È richiesto HTML valido. Gli errori sono i seguenti:\n" +"%s" -#: contrib/admin/views/decorators.py:84 +#: core/validators.py:221 #, 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'." +msgid "Badly formed XML: %s" +msgstr "XML malformato: %s" -#: contrib/admin/views/main.py:226 -msgid "Site administration" -msgstr "Amministrazione sito" +#: core/validators.py:238 +#, python-format +msgid "Invalid URL: %s" +msgstr "URL non valida: %s" -#: contrib/admin/views/main.py:410 +#: core/validators.py:243 core/validators.py:245 #, python-format -msgid "The %(name)s \"%(obj)s\" was added successfully." -msgstr "L'oggetto %(name)s di tipo \"%(obj)s\" è stato aggiunto." +msgid "The URL %s is a broken link." +msgstr "La URL %s è un link non funzionante." -#: contrib/admin/views/main.py:264 contrib/admin/views/main.py:348 -msgid "You may edit it again below." -msgstr "Puoi modificarlo nuovamente qui sotto." +#: core/validators.py:251 +msgid "Enter a valid U.S. state abbreviation." +msgstr "Inserire un valido nome di stato USA abbreviato." -#: contrib/admin/views/main.py:272 contrib/admin/views/main.py:357 +#: core/validators.py:265 #, python-format -msgid "You may add another %s below." -msgstr "Puoi aggiungere un altro %s qui sotto." +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/admin/views/main.py:290 +#: core/validators.py:272 #, python-format -msgid "Add %s" -msgstr "Aggiungi %s" +msgid "This field must match the '%s' field." +msgstr "Questo campo deve corrispondere al campo '%s'." -#: contrib/admin/views/main.py:336 -#, python-format -msgid "Added %s." -msgstr "Aggiunto %s" +#: core/validators.py:291 +msgid "Please enter something for at least one field." +msgstr "Inserire qualcosa in almeno un campo." -#: contrib/admin/views/main.py:336 contrib/admin/views/main.py:338 -#: contrib/admin/views/main.py:340 -msgid "and" -msgstr "e" +#: 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/admin/views/main.py:338 +#: core/validators.py:319 #, python-format -msgid "Changed %s." -msgstr "Modificato %s." +msgid "This field must be given if %(field)s is %(value)s" +msgstr "Questo campo è obbligatorio se %(field)s è %(value)s" -#: contrib/admin/views/main.py:340 +#: core/validators.py:332 #, python-format -msgid "Deleted %s." -msgstr "Rimosso %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/admin/views/main.py:343 -msgid "No fields changed." -msgstr "Nessun campo modificato." +#: core/validators.py:351 +msgid "Duplicate values are not allowed." +msgstr "Non sono ammessi valori duplicati." -#: contrib/admin/views/main.py:346 +#: core/validators.py:366 #, python-format -msgid "The %(name)s \"%(obj)s\" was changed successfully." -msgstr "L'oggetto %(name)s di tipo \"%(obj)s\" è stato modificato." +msgid "This value must be between %s and %s." +msgstr "Questo valore deve essere compreso tra %s e %s." -#: contrib/admin/views/main.py:354 +#: core/validators.py:368 #, 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 "This value must be at least %s." +msgstr "Questo valore deve essere almeno pari a %s." -#: contrib/admin/views/main.py:392 +#: core/validators.py:370 #, python-format -msgid "Change %s" -msgstr "Modifica %s" +msgid "This value must be no more than %s." +msgstr "Questo valore non deve essere maggiore di %s." -#: contrib/admin/views/main.py:470 +#: core/validators.py:406 #, python-format -msgid "One or more %(fieldname)s in %(name)s: %(obj)s" -msgstr "Uno o più %(fieldname)s in %(name)s: %(obj)s" +msgid "This value must be a power of %s." +msgstr "Questo valore deve essere una potenza di %s." -#: contrib/admin/views/main.py:475 -#, python-format -msgid "One or more %(fieldname)s in %(name)s:" -msgstr "Uno o più %(fieldname)s in %(name)s:" +#: core/validators.py:417 +msgid "Please enter a valid decimal number." +msgstr "Inserire un numero decimale valido." -#: contrib/admin/views/main.py:508 +#: core/validators.py:421 #, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "L'oggetto %(name)s di tipo \"%(obj)s\" è stato rimosso." +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/admin/views/main.py:511 -msgid "Are you sure?" -msgstr "Sei sicuro?" +#: 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/admin/views/main.py:533 +#: core/validators.py:427 #, python-format -msgid "Change history: %s" -msgstr "Storia delle modifiche: %s" +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/admin/views/main.py:565 +#: core/validators.py:437 #, python-format -msgid "Select %s" -msgstr "Selezionare %s" +msgid "Make sure your uploaded file is at least %s bytes big." +msgstr "Verificare che il file caricato sia grande almeno %s byte." -#: contrib/admin/views/main.py:565 +#: core/validators.py:438 #, python-format -msgid "Select %s to change" -msgstr "Selezionare %s per modificare" +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/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 -msgid "Integer" -msgstr "Intero" +#: core/validators.py:455 +msgid "The format for this field is wrong." +msgstr "Il formato di questo campo non è valido." -#: contrib/admin/views/doc.py:278 -msgid "Boolean (Either True or False)" -msgstr "Booleano (True o False)" +#: core/validators.py:470 +msgid "This field is invalid." +msgstr "Questo campo non è valido." -#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:296 +#: core/validators.py:506 #, python-format -msgid "String (up to %(maxlength)s)" -msgstr "Stringa (massimo %(maxlength)s caratteri)" - -#: contrib/admin/views/doc.py:280 -msgid "Comma-separated integers" -msgstr "Interi separati da virgola" +msgid "Could not retrieve anything from %s." +msgstr "Impossibile recuperare alcunché da %s." -#: contrib/admin/views/doc.py:281 -msgid "Date (without time)" -msgstr "Data (senza orario)" +#: 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'." -#: contrib/admin/views/doc.py:282 -msgid "Date (with time)" -msgstr "Data (con orario)" +#: 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/admin/views/doc.py:283 -msgid "E-mail address" -msgstr "Indirizzo e-mail" +#: core/validators.py:546 +#, 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\".)" -#: contrib/admin/views/doc.py:284 contrib/admin/views/doc.py:287 -msgid "File path" -msgstr "Percorso di file" +#: core/validators.py:551 +#, python-format +msgid "" +"\"%(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/admin/views/doc.py:285 -msgid "Decimal number" -msgstr "Numero decimale" +#: core/validators.py:556 +#, python-format +msgid "" +"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" +"(start)s\".)" +msgstr "" +"\"<%(tag)s>\" a linea %(line)s non è un tag valido. (La linea comincia con \"%" +"(start)s\".)" -#: contrib/admin/views/doc.py:291 -msgid "Boolean (Either True, False or None)" -msgstr "Booleano (True, False o None)" +#: 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/admin/views/doc.py:292 -msgid "Relation to parent model" -msgstr "Relazione a modello padre" +#: 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/admin/views/doc.py:293 -msgid "Phone number" -msgstr "Numero di telefono" +#: 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/admin/views/doc.py:263 -msgid "String (up to 50)" -msgstr "Stringa (massimo 50 caratteri)" +#: contrib/auth/forms.py:25 +msgid "A user with that username already exists." +msgstr "Un utente con questo nome·è già presente." -#: contrib/admin/views/doc.py:298 -msgid "Text" -msgstr "Testo" +#: contrib/auth/forms.py:53 +msgid "" +"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/admin/views/doc.py:299 -msgid "Time" -msgstr "Ora" +#: 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 "" +"Inserire nome utente e password corretti. Entrambi i campi sono case " +"sensitive." -#: contrib/admin/views/doc.py:300 contrib/flatpages/models.py:7 -msgid "URL" -msgstr "URL" +#: contrib/auth/forms.py:62 +msgid "This account is inactive." +msgstr "Questo account non è attivo." -#: contrib/admin/views/doc.py:301 -msgid "U.S. state (two uppercase letters)" -msgstr "Stato americano (due lettere maiuscole)" +#: 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/admin/views/doc.py:302 -msgid "XML text" -msgstr "Testo XML" +#: contrib/auth/forms.py:117 +msgid "The two 'new password' fields didn't match." +msgstr "I due campi 'nuova parola chiave' non corrispondono." -#: 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:3 -msgid "Documentation" -msgstr "Documentazione" +#: 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/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 "Change password" -msgstr "Modifica la password" +#: contrib/auth/models.py:38 contrib/auth/models.py:57 +msgid "name" +msgstr "nome" -#: 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/registration/password_reset_form.html:4 -#: contrib/admin/templates/registration/logged_out.html:4 -#: contrib/admin/templates/registration/password_reset_done.html:4 -#: contrib/admin/templates/registration/password_change_form.html:4 -#: contrib/admin/templates/admin_doc/bookmarklets.html:3 -msgid "Home" -msgstr "Pagina iniziale" +#: contrib/auth/models.py:40 +msgid "codename" +msgstr "nome in codice" -#: contrib/admin/templates/admin/object_history.html:5 -#: contrib/admin/templates/admin/change_form.html:20 -msgid "History" -msgstr "Storia" +#: contrib/auth/models.py:42 +msgid "permission" +msgstr "permesso" -#: contrib/admin/templates/admin/object_history.html:18 -msgid "Date/time" -msgstr "Data/ora" +#: contrib/auth/models.py:43 contrib/auth/models.py:58 +msgid "permissions" +msgstr "permessi" -#: contrib/admin/templates/admin/object_history.html:19 -msgid "User" -msgstr "Utente" +#: contrib/auth/models.py:60 +msgid "group" +msgstr "gruppo" -#: contrib/admin/templates/admin/object_history.html:20 -msgid "Action" -msgstr "Azione" +#: contrib/auth/models.py:61 contrib/auth/models.py:100 +msgid "groups" +msgstr "gruppi" -#: contrib/admin/templates/admin/object_history.html:26 -msgid "DATE_WITH_TIME_FULL" -msgstr "j F Y, H:i" +#: contrib/auth/models.py:90 +msgid "username" +msgstr "nome utente" -#: contrib/admin/templates/admin/object_history.html:36 +#: contrib/auth/models.py:90 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" +"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/admin/templates/admin/base_site.html:7 -msgid "Django administration" -msgstr "Amministrazione Django" +#: contrib/auth/models.py:91 +msgid "first name" +msgstr "nome" -#: contrib/admin/templates/admin/500.html:4 -msgid "Server error" -msgstr "Errore del server" +#: contrib/auth/models.py:92 +msgid "last name" +msgstr "cognome" -#: contrib/admin/templates/admin/500.html:6 -msgid "Server error (500)" -msgstr "Errore del server (500)" +#: contrib/auth/models.py:93 +msgid "e-mail address" +msgstr "indirizzo e-mail" -#: contrib/admin/templates/admin/500.html:9 -msgid "Server Error (500)" -msgstr "Errore del Server (500)" +#: contrib/auth/models.py:94 +msgid "password" +msgstr "parola chiave" -#: contrib/admin/templates/admin/500.html:10 +#: contrib/auth/models.py:94 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." +"Use '[algo]$[salt]$[hexdigest]' or use the change " +"password form." +msgstr "Usare '[algo]$[salt]$[hexdigest]' oppure la maschera di cambio parola chiave." -#: contrib/admin/templates/admin/404.html:4 -#: contrib/admin/templates/admin/404.html:8 -msgid "Page not found" -msgstr "Pagina non trovata" +#: contrib/auth/models.py:95 +msgid "staff status" +msgstr "privilegi di staff" -#: 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/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/admin/templates/admin/index.html:17 -#, python-format -msgid "Models available in the %(name)s application." -msgstr "Modelli disponibili nell'applicazione %(name)s." +#: contrib/auth/models.py:96 +msgid "active" +msgstr "attivo" -#: contrib/admin/templates/admin/index.html:28 -#: contrib/admin/templates/admin/change_form.html:15 -msgid "Add" -msgstr "Aggiungi" +#: 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/admin/templates/admin/index.html:34 -msgid "Change" -msgstr "Modifica" +#: contrib/auth/models.py:97 +msgid "superuser status" +msgstr "privilegi di superutente" -#: 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/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/admin/templates/admin/index.html:52 -msgid "Recent Actions" -msgstr "Azioni Recenti" +#: contrib/auth/models.py:98 +msgid "last login" +msgstr "ultimo accesso" -#: contrib/admin/templates/admin/index.html:53 -msgid "My Actions" -msgstr "Azioni Proprie" +#: contrib/auth/models.py:99 +msgid "date joined" +msgstr "iscritto in data" -#: contrib/admin/templates/admin/index.html:57 -msgid "None available" -msgstr "Nessuna disponibile" +#: 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/admin/templates/admin/change_list.html:11 -#, python-format -msgid "Add %(name)s" -msgstr "Aggiungi %(name)s" +#: contrib/auth/models.py:102 +msgid "user permissions" +msgstr "privilegi utente" -#: contrib/admin/templates/admin/login.html:22 -msgid "Have you forgotten your password?" -msgstr "Hai dimenticato la tua password?" +#: contrib/auth/models.py:105 +msgid "user" +msgstr "utente" -#: contrib/admin/templates/admin/base.html:23 -msgid "Welcome," -msgstr "Benvenuto," +#: contrib/auth/models.py:106 +msgid "users" +msgstr "utenti" -#: contrib/admin/templates/admin/delete_confirmation.html:9 -#: contrib/admin/templates/admin/submit_line.html:3 -msgid "Delete" -msgstr "Elimina" +#: contrib/auth/models.py:111 +msgid "Personal info" +msgstr "Informazioni personali" -#: 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:" -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:" +#: contrib/auth/models.py:112 +msgid "Permissions" +msgstr "Privilegi" -#: 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:" -msgstr "" -"Sei sicuro di voler rimuovere %(object_name)s \"%(object)s\"? I seguenti " -"oggetti relazionati saranno rimossi:" +#: contrib/auth/models.py:113 +msgid "Important dates" +msgstr "Date importanti" -#: contrib/admin/templates/admin/delete_confirmation.html:26 -msgid "Yes, I'm sure" -msgstr "Sì, sono sicuro" +#: contrib/auth/models.py:114 +msgid "Groups" +msgstr "Gruppi" -#: contrib/admin/templates/admin/filter.html:2 -#, python-format -msgid " By %(title)s " -msgstr " Per %(title)s " +#: contrib/auth/models.py:258 +msgid "message" +msgstr "messaggio" -#: contrib/admin/templates/admin/search_form.html:8 -msgid "Go" -msgstr "Vai" +#: contrib/auth/views.py:39 +msgid "Logged out" +msgstr "Accesso annullato" -#: contrib/admin/templates/admin/change_form.html:21 -msgid "View on site" -msgstr "Vedi sul sito" +#: contrib/admin/models.py:16 +msgid "action time" +msgstr "data azione" -#: contrib/admin/templates/admin/change_form.html:30 -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/models.py:19 +msgid "object id" +msgstr "ID oggetto" -#: contrib/admin/templates/admin/change_form.html:48 -msgid "Ordering" -msgstr "Ordinamento" +#: contrib/admin/models.py:20 +msgid "object repr" +msgstr "rappresentazione oggetto" -#: contrib/admin/templates/admin/change_form.html:51 -msgid "Order:" -msgstr "Ordinamento:" +#: contrib/admin/models.py:21 +msgid "action flag" +msgstr "flag azione" -#: contrib/admin/templates/admin/submit_line.html:4 -msgid "Save as new" -msgstr "Salva come nuovo" +#: contrib/admin/models.py:22 +msgid "change message" +msgstr "messaggio di modifica" -#: contrib/admin/templates/admin/submit_line.html:5 -msgid "Save and add another" -msgstr "Salva e crea nuovo" +#: contrib/admin/models.py:25 +msgid "log entry" +msgstr "voce di log" -#: contrib/admin/templates/admin/submit_line.html:6 -msgid "Save and continue editing" -msgstr "Salva e continua" +#: contrib/admin/models.py:26 +msgid "log entries" +msgstr "voci di log" -#: contrib/admin/templates/admin/submit_line.html:7 -msgid "Save" -msgstr "Salva" +#: contrib/admin/filterspecs.py:40 +#, python-format +msgid "" +"

      By %s:

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

        Da %s:

        \n" +"
          \n" -#: 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/filterspecs.py:70 contrib/admin/filterspecs.py:88 +#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169 +msgid "All" +msgstr "Tutti" -#: 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/filterspecs.py:109 +msgid "Any date" +msgstr "Qualsiasi data" -#: contrib/admin/templates/registration/password_change_done.html:12 -msgid "Your password was changed." -msgstr "La tua password è stata modificata." +#: contrib/admin/filterspecs.py:110 +msgid "Today" +msgstr "Oggi" -#: 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/filterspecs.py:113 +msgid "Past 7 days" +msgstr "Ultimi 7 giorni" -#: 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/filterspecs.py:115 +msgid "This month" +msgstr "Questo mese" -#: contrib/admin/templates/registration/password_reset_form.html:16 -msgid "E-mail address:" -msgstr "Indirizzo e-mail:" +#: contrib/admin/filterspecs.py:117 +msgid "This year" +msgstr "Quest'anno" -#: contrib/admin/templates/registration/password_reset_form.html:16 -msgid "Reset my password" -msgstr "Resetta la mia password" +#: contrib/admin/filterspecs.py:143 oldforms/__init__.py:572 +#: newforms/widgets.py:170 +msgid "Yes" +msgstr "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 con questo sito." +#: contrib/admin/filterspecs.py:143 oldforms/__init__.py:572 +#: newforms/widgets.py:170 +msgid "No" +msgstr "No" -#: contrib/admin/templates/registration/logged_out.html:10 -msgid "Log in again" -msgstr "Accedi di nuovo" +#: contrib/admin/filterspecs.py:150 oldforms/__init__.py:572 +#: newforms/widgets.py:170 +msgid "Unknown" +msgstr "Sconosciuto" -#: 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/views/decorators.py:24 +#: contrib/admin/templates/admin/login.html:25 +msgid "Log in" +msgstr "Accedi" -#: contrib/admin/templates/registration/password_reset_done.html:12 +#: contrib/admin/views/decorators.py:62 msgid "" -"We've e-mailed a new password to the e-mail address you submitted. You " -"should be receiving it shortly." +"Please log in again, because your session has expired. Don't worry: Your " +"submission has been saved." msgstr "" -"Ti abbiamo inviato la nuova password all'indirizzo e-mail da te selezionato. " -"Dovresti riceverla a breve." +"La sessione è scaduta: occorre accedere nuovamente. I dati inseriti sono stati comunque" +"salvati." -#: contrib/admin/templates/registration/password_change_form.html:12 +#: contrib/admin/views/decorators.py:69 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." +"Looks like your browser isn't configured to accept cookies. Please enable " +"cookies, reload this page, and try again." +msgstr "Il browser non sembra configurato per accettare i cookie. Una volta abilitati, ricaricare la pagina e riprovare." -#: contrib/admin/templates/registration/password_change_form.html:17 -msgid "Old password:" -msgstr "Vecchia password:" +#: contrib/admin/views/decorators.py:83 +msgid "Usernames cannot contain the '@' character." +msgstr "I nomi utente non possono contenere il carattere '@'." -#: contrib/admin/templates/registration/password_change_form.html:19 -msgid "New password:" -msgstr "Nuova password:" +#: 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 è costituito dall'indirizzo e-mail. Provare con '%s'." -#: contrib/admin/templates/registration/password_change_form.html:21 -msgid "Confirm password:" -msgstr "Conferma password:" +#: contrib/admin/views/main.py:223 +msgid "Site administration" +msgstr "Amministrazione sito" -#: contrib/admin/templates/registration/password_change_form.html:23 -msgid "Change my password" -msgstr "Modifica la mia password" +#: contrib/admin/views/main.py:257 contrib/admin/views/auth.py:19 +#, python-format +msgid "The %(name)s \"%(obj)s\" was added successfully." +msgstr "%(name)s \"%(obj)s\" è stato aggiunto correttamente." -#: 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/views/main.py:261 contrib/admin/views/main.py:347 +#: contrib/admin/views/auth.py:24 +msgid "You may edit it again below." +msgstr "È possibile modificarlo nuovamente qui sotto." -#: contrib/admin/templates/registration/password_reset_email.html:3 +#: contrib/admin/views/main.py:271 contrib/admin/views/main.py:356 #, python-format -msgid "for your user account at %(site_name)s" -msgstr "per il tuo account utente su %(site_name)s" +msgid "You may add another %s below." +msgstr "È possibile aggiungere un altro %s qui sotto." -#: contrib/admin/templates/registration/password_reset_email.html:5 +#: contrib/admin/views/main.py:289 #, python-format -msgid "Your new password is: %(new_password)s" -msgstr "La tua nuova password è: %(new_password)s" +msgid "Add %s" +msgstr "Aggiungere %s" -#: 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/views/main.py:335 +#, python-format +msgid "Added %s." +msgstr "Aggiunto %s" -#: 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/views/main.py:337 +#, python-format +msgid "Changed %s." +msgstr "Modificato %s." -#: 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/views/main.py:339 +#, python-format +msgid "Deleted %s." +msgstr "Cancellato %s" -#: contrib/admin/templates/registration/password_reset_email.html:15 +#: contrib/admin/views/main.py:342 +msgid "No fields changed." +msgstr "Nessun campo modificato." + +#: contrib/admin/views/main.py:345 #, python-format -msgid "The %(site_name)s team" -msgstr "Il team di %(site_name)s" +msgid "The %(name)s \"%(obj)s\" was changed successfully." +msgstr "%(name)s \"%(obj)s\" è stato modificato correttamente." -#: contrib/admin/templates/admin_doc/bookmarklets.html:3 -msgid "Bookmarklets" -msgstr "Bookmarklet" +#: contrib/admin/views/main.py:353 +#, python-format +msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." +msgstr "%(name)s \"%(obj)s\" è stato aggiunto correttamente. È possibile modificarlo nuovamente qui sotto." -#: contrib/admin/templates/admin_doc/bookmarklets.html:5 -msgid "Documentation bookmarklets" -msgstr "Bookmarklet alla documentazione" +#: contrib/admin/views/main.py:391 +#, python-format +msgid "Change %s" +msgstr "Modificare %s" -#: contrib/admin/templates/admin_doc/bookmarklets.html:9 -msgid "" -"\n" -"

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

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

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

          \n" +#: 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/templates/admin_doc/bookmarklets.html:19 -msgid "Documentation for this page" -msgstr "Documentazione per questa pagina" +#: 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/templates/admin_doc/bookmarklets.html:20 -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." +#: contrib/admin/views/main.py:514 +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "%(name)s \"%(obj)s\" è stato cancellato correttamente." -#: contrib/admin/templates/admin_doc/bookmarklets.html:22 -msgid "Show object ID" -msgstr "Mostra l'ID dell'oggetto" +#: contrib/admin/views/main.py:517 +msgid "Are you sure?" +msgstr "Sei sicuro?" -#: contrib/admin/templates/admin_doc/bookmarklets.html:23 -msgid "" -"Shows the content-type and unique ID for pages that represent a single " -"object." -msgstr "" -"Mostra il tipo di contenuto e l'ID univoco per pagine che rappresentano un singolo oggetto." +#: contrib/admin/views/main.py:539 +#, python-format +msgid "Change history: %s" +msgstr "Tracciato delle modifiche: %s" -#: contrib/admin/templates/admin_doc/bookmarklets.html:25 -msgid "Edit this object (current window)" -msgstr "Modifica quest'oggetto (nella finestra corrente)" +#: contrib/admin/views/main.py:573 +#, python-format +msgid "Select %s" +msgstr "Seleziona %s" -#: 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." +#: contrib/admin/views/main.py:573 +#, python-format +msgid "Select %s to change" +msgstr "Seleziona %s per modificare" -#: contrib/admin/templates/admin_doc/bookmarklets.html:28 -msgid "Edit this object (new window)" -msgstr "Modifica quest'oggetto (in una nuova finestra)" +#: contrib/admin/views/main.py:768 +msgid "Database error" +msgstr "Errore nel database" -#: contrib/admin/templates/admin_doc/bookmarklets.html:29 -msgid "As above, but opens the admin page in a new window." -msgstr "Come sopra, ma apre la pagina di amministrazione in una nuova finestra." +#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48 +#: contrib/admin/views/doc.py:50 +msgid "tag:" +msgstr "tag:" -#: contrib/admin/templates/widget/date_time.html:3 -msgid "Date:" -msgstr "Data:" +#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79 +#: contrib/admin/views/doc.py:81 +msgid "filter:" +msgstr "filtro:" -#: contrib/admin/templates/widget/date_time.html:4 -msgid "Time:" -msgstr "Ora:" +#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137 +#: contrib/admin/views/doc.py:139 +msgid "view:" +msgstr "view:" -#: contrib/admin/templates/widget/file.html:2 -msgid "Currently:" -msgstr "Attualmente:" +#: contrib/admin/views/doc.py:164 +#, python-format +msgid "App %r not found" +msgstr "Appl. %r non trovata" -#: contrib/admin/templates/widget/file.html:3 -msgid "Change:" -msgstr "Modifica:" +#: 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/redirects/models.py:7 -msgid "redirect from" -msgstr "redirigi da" +#: contrib/admin/views/doc.py:183 +#, python-format +msgid "the related `%s.%s` object" +msgstr "l'oggetto `%s.%s` collegato" -#: contrib/redirects/models.py:8 -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/'." +#: 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/redirects/models.py:9 -msgid "redirect to" -msgstr "redirigi verso" +#: contrib/admin/views/doc.py:214 +#, python-format +msgid "related `%s.%s` objects" +msgstr "oggetti `%s.%s` collegati" -#: contrib/redirects/models.py:10 -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://'." +#: contrib/admin/views/doc.py:219 +#, python-format +msgid "all %s" +msgstr "tutti %s" -#: contrib/redirects/models.py:12 -msgid "redirect" -msgstr "redirigi" +#: contrib/admin/views/doc.py:224 +#, python-format +msgid "number of %s" +msgstr "numero di %s" -#: contrib/redirects/models.py:13 -msgid "redirects" -msgstr "redirezioni" +#: contrib/admin/views/doc.py:229 +#, python-format +msgid "Fields on %s objects" +msgstr "Campi sugli oggetti %s" -#: 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." +#: 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/flatpages/models.py:9 -msgid "title" -msgstr "titolo" +#: contrib/admin/views/doc.py:292 +msgid "Boolean (Either True or False)" +msgstr "Booleano (True o False)" -#: contrib/flatpages/models.py:10 -msgid "content" -msgstr "contenuto" +#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311 +#, python-format +msgid "String (up to %(maxlength)s)" +msgstr "Stringa (fino a %(maxlength)s caratteri)" -#: contrib/flatpages/models.py:11 -msgid "enable comments" -msgstr "abilita commenti" +#: contrib/admin/views/doc.py:294 +msgid "Comma-separated integers" +msgstr "Interi separati da virgola" -#: contrib/flatpages/models.py:12 -msgid "template name" -msgstr "nome modello" +#: contrib/admin/views/doc.py:295 +msgid "Date (without time)" +msgstr "Data (senza orario)" -#: 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'." +#: contrib/admin/views/doc.py:296 +msgid "Date (with time)" +msgstr "Data (con orario)" -#: contrib/flatpages/models.py:14 -msgid "registration required" -msgstr "registrazione obbligatoria" +#: contrib/admin/views/doc.py:297 +msgid "E-mail address" +msgstr "Indirizzo e-mail" -#: 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." +#: 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/flatpages/models.py:18 -msgid "flat page" -msgstr "pagina statica" +#: contrib/admin/views/doc.py:300 +msgid "Decimal number" +msgstr "Numero decimale" -#: contrib/flatpages/models.py:19 -msgid "flat pages" -msgstr "pagine statiche" +#: contrib/admin/views/doc.py:304 contrib/comments/models.py:85 +msgid "IP address" +msgstr "indirizzo IP" -#: contrib/auth/models.py:13 contrib/auth/models.py:26 -msgid "name" -msgstr "nome" +#: contrib/admin/views/doc.py:306 +msgid "Boolean (Either True, False or None)" +msgstr "Booleano (True, False o None)" -#: contrib/auth/models.py:15 -msgid "codename" -msgstr "nome in codice" +#: contrib/admin/views/doc.py:307 +msgid "Relation to parent model" +msgstr "Collegamento a modello padre" -#: contrib/auth/models.py:17 -msgid "permission" -msgstr "permesso" +#: contrib/admin/views/doc.py:308 +msgid "Phone number" +msgstr "Numero di telefono" -#: contrib/auth/models.py:18 contrib/auth/models.py:27 -msgid "permissions" -msgstr "permessi" +#: contrib/admin/views/doc.py:313 +msgid "Text" +msgstr "Testo" -#: contrib/auth/models.py:29 -msgid "group" -msgstr "gruppo" +#: contrib/admin/views/doc.py:314 +msgid "Time" +msgstr "Orario" -#: contrib/auth/models.py:30 contrib/auth/models.py:65 -msgid "groups" -msgstr "gruppi" +#: contrib/admin/views/doc.py:315 contrib/flatpages/models.py:7 +msgid "URL" +msgstr "URL" -#: contrib/auth/models.py:55 -msgid "username" -msgstr "nome utente" +#: contrib/admin/views/doc.py:316 +msgid "U.S. state (two uppercase letters)" +msgstr "Stato USA (due lettere maiuscole)" -#: contrib/auth/models.py:56 -msgid "first name" -msgstr "nome" +#: contrib/admin/views/doc.py:317 +msgid "XML text" +msgstr "Testo XML" -#: contrib/auth/models.py:57 -msgid "last name" -msgstr "cognome" +#: 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/auth/models.py:58 -msgid "e-mail address" -msgstr "indirizzo e-mail" +#: contrib/admin/views/auth.py:30 +msgid "Add user" +msgstr "Aggiungi utente" -#: contrib/auth/models.py:59 -msgid "password" -msgstr "password" +#: contrib/admin/views/auth.py:57 +msgid "Password changed successfully." +msgstr "La parola chiave è stata cambiata correttamente." -#: contrib/auth/models.py:59 -msgid "Use '[algo]$[salt]$[hexdigest]'" -msgstr "Usare '[algo]$[salt]$[hexdigest]'" +#: contrib/admin/views/auth.py:64 +#, python-format +msgid "Change password: %s" +msgstr "Cambia la parola chiave: %s" -#: contrib/auth/models.py:60 -msgid "staff status" -msgstr "staff" +#: contrib/admin/templatetags/admin_list.py:247 +msgid "All dates" +msgstr "Tutte le date" -#: 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/admin/templates/admin/pagination.html:10 +msgid "Show all" +msgstr "Mostra tutto" -#: contrib/auth/models.py:61 -msgid "active" -msgstr "attivo" +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +msgid "Documentation" +msgstr "Documentazione" -#: contrib/auth/models.py:62 -msgid "superuser status" -msgstr "superuser" +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/admin/auth/user/change_password.html:15 +#: contrib/admin/templates/admin/auth/user/change_password.html:46 +#: contrib/admin/templates/admin_doc/template_filter_index.html:5 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +#: contrib/admin/templates/admin_doc/template_tag_index.html:5 +#: contrib/admin/templates/admin_doc/index.html:4 +#: contrib/admin/templates/admin_doc/model_detail.html:3 +#: contrib/admin/templates/admin_doc/missing_docutils.html:4 +#: contrib/admin/templates/admin_doc/template_detail.html:4 +#: contrib/admin/templates/admin_doc/view_index.html:5 +#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/view_detail.html:4 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +msgid "Change password" +msgstr "Cambia la parola chiave" -#: contrib/auth/models.py:63 -msgid "last login" -msgstr "ultimo accesso" +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/admin_doc/template_filter_index.html:5 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +#: contrib/admin/templates/admin_doc/template_tag_index.html:5 +#: contrib/admin/templates/admin_doc/index.html:4 +#: contrib/admin/templates/admin_doc/model_detail.html:3 +#: contrib/admin/templates/admin_doc/missing_docutils.html:4 +#: contrib/admin/templates/admin_doc/template_detail.html:4 +#: contrib/admin/templates/admin_doc/view_index.html:5 +#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/view_detail.html:4 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/comments/templates/comments/form.html:6 +msgid "Log out" +msgstr "Esci" -#: contrib/auth/models.py:64 -msgid "date joined" -msgstr "iscritto da" +#: contrib/admin/templates/admin/delete_confirmation.html:6 +#: contrib/admin/templates/admin/change_form.html:13 +#: contrib/admin/templates/admin/change_list.html:6 +#: contrib/admin/templates/admin/object_history.html:5 +#: contrib/admin/templates/admin/500.html:4 +#: contrib/admin/templates/admin/invalid_setup.html:4 +#: contrib/admin/templates/admin/base.html:30 +#: contrib/admin/templates/admin/auth/user/change_password.html:12 +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admin/templates/registration/logged_out.html:4 +#: contrib/admin/templates/registration/password_reset_done.html:4 +#: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admin/templates/registration/password_change_done.html:4 +msgid "Home" +msgstr "Pagina iniziale" + +#: contrib/admin/templates/admin/delete_confirmation.html:9 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Delete" +msgstr "Cancella" -#: contrib/auth/models.py:66 +#: contrib/admin/templates/admin/delete_confirmation.html:14 +#, python-format msgid "" -"In addition to the permissions manually assigned, this user will also get " -"all permissions granted to each group he/she is in." +"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 "" -"In aggiunta ai permessi assegnati manualmente, l'utente riceverà anche tutti " -"i permessi assegnati ad ogni gruppo cui appartiene." +"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/auth/models.py:67 -msgid "user permissions" -msgstr "permessi utente" +#: contrib/admin/templates/admin/delete_confirmation.html:21 +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Sei sicuro di voler rimuovere %(object_name)s \"%(escaped_object)s\"? Tutti i seguenti " +"oggetti collegati saranno cancellati:" -#: contrib/auth/models.py:70 -msgid "user" -msgstr "utente" +#: contrib/admin/templates/admin/delete_confirmation.html:26 +msgid "Yes, I'm sure" +msgstr "Sì, sono sicuro" -#: contrib/auth/models.py:71 -msgid "users" -msgstr "utenti" +#: contrib/admin/templates/admin/404.html:4 +#: contrib/admin/templates/admin/404.html:8 +msgid "Page not found" +msgstr "Pagina non trovata" -#: contrib/auth/models.py:76 -msgid "Personal info" -msgstr "Informazioni personali" +#: 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/auth/models.py:77 -msgid "Permissions" -msgstr "Permessi" +#: contrib/admin/templates/admin/change_form.html:15 +#: contrib/admin/templates/admin/index.html:28 +msgid "Add" +msgstr "Aggiungi" -#: contrib/auth/models.py:78 -msgid "Important dates" -msgstr "Date importanti" +#: contrib/admin/templates/admin/change_form.html:21 +#: contrib/admin/templates/admin/object_history.html:5 +msgid "History" +msgstr "Storia" -#: contrib/auth/models.py:79 -msgid "Groups" -msgstr "Gruppi" +#: contrib/admin/templates/admin/change_form.html:22 +msgid "View on site" +msgstr "Vedi sul sito" -#: contrib/auth/models.py:219 -msgid "message" -msgstr "messaggio" +#: 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/auth/forms.py:30 -msgid "" -"Your Web browser doesn't appear to have cookies enabled. Cookies are " -"required for logging in." -msgstr "" -"Il browser non ha i cookie abilitati. Per accedere, è necessario abilitarli." +#: contrib/admin/templates/admin/change_form.html:50 +msgid "Ordering" +msgstr "Ordinamento" -#: contrib/contenttypes/models.py:25 -msgid "python model class name" -msgstr "nome della classe modello in python" +#: contrib/admin/templates/admin/change_form.html:53 +msgid "Order:" +msgstr "Ordine:" -#: contrib/contenttypes/models.py:28 -msgid "content type" -msgstr "tipo di contenuto" +#: contrib/admin/templates/admin/filter.html:2 +#, python-format +msgid " By %(filter_title)s " +msgstr " Per %(filter_title)s " -#: contrib/contenttypes/models.py:29 -msgid "content types" -msgstr "tipo di contenuti" +#: contrib/admin/templates/admin/submit_line.html:4 +msgid "Save as new" +msgstr "Salva come nuovo" -#: contrib/sessions/models.py:35 -msgid "session key" -msgstr "chiave di sessione" +#: contrib/admin/templates/admin/submit_line.html:5 +msgid "Save and add another" +msgstr "Salva e aggiungi un altro" -#: contrib/sessions/models.py:36 -msgid "session data" -msgstr "dati di sessione" +#: contrib/admin/templates/admin/submit_line.html:6 +msgid "Save and continue editing" +msgstr "Salva e continua le modifiche" -#: contrib/sessions/models.py:37 -msgid "expire date" -msgstr "data di scadenza" +#: contrib/admin/templates/admin/submit_line.html:7 +msgid "Save" +msgstr "Salva" -#: contrib/sessions/models.py:41 -msgid "session" -msgstr "sessione" +#: contrib/admin/templates/admin/change_list.html:12 +#, python-format +msgid "Add %(name)s" +msgstr "Aggiungi %(name)s" -#: contrib/sessions/models.py:42 -msgid "sessions" -msgstr "sessioni" +#: 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/sites/models.py:10 -msgid "domain name" -msgstr "nome a dominio" - -#: contrib/sites/models.py:11 -msgid "display name" -msgstr "nome visualizzato" +#: contrib/admin/templates/admin/index.html:18 +#, python-format +msgid "%(name)s" +msgstr "%(name)s" -#: contrib/sites/models.py:15 -msgid "site" -msgstr "sito" +#: contrib/admin/templates/admin/index.html:34 +msgid "Change" +msgstr "Modifica" -#: contrib/sites/models.py:16 -msgid "sites" -msgstr "siti" +#: contrib/admin/templates/admin/index.html:44 +msgid "You don't have permission to edit anything." +msgstr "Non hai i privilegi per modificare alcunché." -#: utils/translation.py:360 -msgid "DATE_FORMAT" -msgstr "j F Y" +#: contrib/admin/templates/admin/index.html:52 +msgid "Recent Actions" +msgstr "Azioni Recenti" -#: utils/translation.py:361 -msgid "DATETIME_FORMAT" -msgstr "j F Y, H:i" +#: contrib/admin/templates/admin/index.html:53 +msgid "My Actions" +msgstr "Azioni Proprie" -#: utils/translation.py:362 -msgid "TIME_FORMAT" -msgstr "H:i" +#: contrib/admin/templates/admin/index.html:57 +msgid "None available" +msgstr "Nessuno disponibile" -#: utils/dates.py:6 -msgid "Monday" -msgstr "Lunedì" +#: contrib/admin/templates/admin/base_site.html:4 +msgid "Django site admin" +msgstr "Amministrazione sito Django" -#: utils/dates.py:6 -msgid "Tuesday" -msgstr "Martedì" +#: contrib/admin/templates/admin/base_site.html:7 +msgid "Django administration" +msgstr "Amministrazione Django" -#: utils/dates.py:6 -msgid "Wednesday" -msgstr "Mercoledì" +#: contrib/admin/templates/admin/object_history.html:18 +msgid "Date/time" +msgstr "Data/orario" -#: utils/dates.py:6 -msgid "Thursday" -msgstr "Giovedì" +#: contrib/admin/templates/admin/object_history.html:19 +msgid "User" +msgstr "Utente" -#: utils/dates.py:6 -msgid "Friday" -msgstr "Venerdì" +#: contrib/admin/templates/admin/object_history.html:20 +msgid "Action" +msgstr "Azione" -#: utils/dates.py:7 -msgid "Saturday" -msgstr "Sabato" +#: contrib/admin/templates/admin/object_history.html:26 +msgid "DATE_WITH_TIME_FULL" +msgstr "j F Y, H:i" -#: utils/dates.py:7 -msgid "Sunday" -msgstr "Domenica" +#: 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 registrati. Probabilmente non è stato creato con questo sito di amministrazione." -#: utils/dates.py:14 -msgid "January" -msgstr "Gennaio" +#: contrib/admin/templates/admin/500.html:4 +msgid "Server error" +msgstr "Errore del server" -#: utils/dates.py:14 -msgid "February" -msgstr "Febbraio" +#: contrib/admin/templates/admin/500.html:6 +msgid "Server error (500)" +msgstr "Errore del server (500)" -#: utils/dates.py:14 utils/dates.py:27 -msgid "March" -msgstr "Marzo" +#: contrib/admin/templates/admin/500.html:9 +msgid "Server Error (500)" +msgstr "Errore del server (500)" -#: utils/dates.py:14 utils/dates.py:27 -msgid "April" -msgstr "Aprile" +#: 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." -#: utils/dates.py:14 utils/dates.py:27 -msgid "May" -msgstr "Maggio" +#: 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." -#: utils/dates.py:14 utils/dates.py:27 -msgid "June" -msgstr "Giugno" +#: contrib/admin/templates/admin/search_form.html:8 +msgid "Go" +msgstr "Vai" -#: utils/dates.py:15 utils/dates.py:27 -msgid "July" -msgstr "Luglio" +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "1 result" +msgid_plural "%(counter)s results" +msgstr[0] "1 risultato" +msgstr[1] "%(counter)s risultati" -#: utils/dates.py:15 -msgid "August" -msgstr "Agosto" +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s totali" -#: utils/dates.py:15 -msgid "September" -msgstr "Settembre" +#: contrib/admin/templates/admin/filters.html:4 +msgid "Filter" +msgstr "Filtro" -#: utils/dates.py:15 -msgid "October" -msgstr "Ottobre" +#: 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:" -#: utils/dates.py:15 -msgid "November" -msgstr "Novembre" +#: contrib/admin/templates/admin/login.html:20 +#: contrib/comments/templates/comments/form.html:8 +msgid "Password:" +msgstr "Parola chiave:" -#: utils/dates.py:16 -msgid "December" -msgstr "Dicembre" +#: contrib/admin/templates/admin/login.html:22 +msgid "Have you forgotten your password?" +msgstr "Hai dimenticato la parola chiave?" -#: utils/dates.py:19 -msgid "jan" -msgstr "gen" +#: contrib/admin/templates/admin/base.html:25 +msgid "Welcome," +msgstr "Benvenuto," -#: utils/dates.py:19 -msgid "feb" -msgstr "feb" +#: 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 "Enter a new password for the user %(username)s." +msgstr "Inserire una nuova parola chiave per l'utente %(username)s." -#: utils/dates.py:19 -msgid "mar" -msgstr "mar" +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +msgid "Bookmarklets" +msgstr "Bookmarklet" -#: utils/dates.py:19 -msgid "apr" -msgstr "apr" +#: contrib/admin/templates/admin_doc/bookmarklets.html:5 +msgid "Documentation bookmarklets" +msgstr "Bookmarklet alla documentazione" -#: utils/dates.py:19 -msgid "may" -msgstr "mag" +#: contrib/admin/templates/admin_doc/bookmarklets.html:9 +msgid "" +"\n" +"

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

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

          Per 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\").

          \n" -#: utils/dates.py:19 -msgid "jun" -msgstr "giu" +#: contrib/admin/templates/admin_doc/bookmarklets.html:19 +msgid "Documentation for this page" +msgstr "Documentazione per questa pagina" -#: utils/dates.py:20 -msgid "jul" -msgstr "lug" +#: contrib/admin/templates/admin_doc/bookmarklets.html:20 +msgid "" +"Jumps you from any page to the documentation for the view that generates " +"that page." +msgstr "" +"Porta da qualsiasi pagina alla documentazione della view che genera " +"quella pagina." -#: utils/dates.py:20 -msgid "aug" -msgstr "ago" +#: contrib/admin/templates/admin_doc/bookmarklets.html:22 +msgid "Show object ID" +msgstr "Mostra l'ID dell'oggetto" -#: utils/dates.py:20 -msgid "sep" -msgstr "set" +#: contrib/admin/templates/admin_doc/bookmarklets.html:23 +msgid "" +"Shows the content-type and unique ID for pages that represent a single " +"object." +msgstr "Mostra il content-type e l'ID univoco di pagine che rappresentano un singolo oggetto." -#: utils/dates.py:20 -msgid "oct" -msgstr "ott" +#: contrib/admin/templates/admin_doc/bookmarklets.html:25 +msgid "Edit this object (current window)" +msgstr "Modifica quest'oggetto (nella finestra corrente)" -#: utils/dates.py:20 -msgid "nov" -msgstr "nov" +#: contrib/admin/templates/admin_doc/bookmarklets.html:26 +msgid "Jumps to the admin page for pages that represent a single object." +msgstr "Porta alla pagina amministrativa di pagine che rappresentano un oggetto singolo." -#: utils/dates.py:20 -msgid "dec" -msgstr "dic" +#: contrib/admin/templates/admin_doc/bookmarklets.html:28 +msgid "Edit this object (new window)" +msgstr "Modifica quest'oggetto (in una nuova finestra)" -#: utils/dates.py:27 -msgid "Jan." -msgstr "Gen." +#: contrib/admin/templates/admin_doc/bookmarklets.html:29 +msgid "As above, but opens the admin page in a new window." +msgstr "Come sopra, ma apre la pagina di amministrazione in una nuova finestra." -#: utils/dates.py:27 -msgid "Feb." -msgstr "Feb." +#: contrib/admin/templates/widget/date_time.html:3 +msgid "Date:" +msgstr "Data:" -#: utils/dates.py:28 -msgid "Aug." -msgstr "Ago." +#: contrib/admin/templates/widget/date_time.html:4 +msgid "Time:" +msgstr "Orario:" -#: utils/dates.py:28 -msgid "Sept." -msgstr "Set." +#: contrib/admin/templates/widget/file.html:2 +msgid "Currently:" +msgstr "Attualmente:" -#: utils/dates.py:28 -msgid "Oct." -msgstr "Ott." +#: contrib/admin/templates/widget/file.html:3 +msgid "Change:" +msgstr "Modifica:" -#: utils/dates.py:28 -msgid "Nov." -msgstr "Nov." +#: 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" -#: utils/dates.py:28 -msgid "Dec." -msgstr "Dic." +#: 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 "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." -#: utils/timesince.py:12 -msgid "year" -msgid_plural "years" -msgstr[0] "anno" -msgstr[1] "anni" +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "E-mail address:" +msgstr "Indirizzo e-mail:" -#: utils/timesince.py:13 -msgid "month" -msgid_plural "months" -msgstr[0] "mese" -msgstr[1] "mesi" +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "Reset my password" +msgstr "Reimposta la mia parola chiave" -#: utils/timesince.py:14 -msgid "week" -msgid_plural "weeks" -msgstr[0] "settimana" -msgstr[1] "settimane" +#: 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 "" +"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/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/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/'. Assicurarsi di inserire le barre diagonali iniziali e finali." + +#: contrib/flatpages/models.py:9 +msgid "title" +msgstr "titolo" + +#: contrib/flatpages/models.py:10 +msgid "content" +msgstr "contenuto" + +#: contrib/flatpages/models.py:11 +msgid "enable comments" +msgstr "abilita commenti" + +#: contrib/flatpages/models.py:12 +msgid "template name" +msgstr "nome modello" + +#: contrib/flatpages/models.py:13 +msgid "" +"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" +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 selezionato, solo gli utenti che hanno effettuato l'accesso potranno vedere la pagina." + +#: contrib/flatpages/models.py:18 +msgid "flat page" +msgstr "pagina statica" + +#: contrib/flatpages/models.py:19 +msgid "flat pages" +msgstr "pagine statiche" + +#: contrib/redirects/models.py:7 +msgid "redirect from" +msgstr "redirigi da" + +#: 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/redirects/models.py:9 +msgid "redirect to" +msgstr "redirigi verso" + +#: 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/redirects/models.py:13 +msgid "redirect" +msgstr "redirezione" + +#: contrib/redirects/models.py:14 +msgid "redirects" +msgstr "redirezioni" + +#: contrib/comments/models.py:67 contrib/comments/models.py:166 +msgid "object ID" +msgstr "ID dell'oggetto" + +#: contrib/comments/models.py:68 +msgid "headline" +msgstr "intestazione" + +#: contrib/comments/models.py:69 contrib/comments/models.py:90 +#: contrib/comments/models.py:167 +msgid "comment" +msgstr "commento" + +#: contrib/comments/models.py:70 +msgid "rating #1" +msgstr "valutazione #1" + +#: contrib/comments/models.py:71 +msgid "rating #2" +msgstr "valutazione #2" + +#: contrib/comments/models.py:72 +msgid "rating #3" +msgstr "valutazione #3" + +#: contrib/comments/models.py:73 +msgid "rating #4" +msgstr "valutazione #4" + +#: contrib/comments/models.py:74 +msgid "rating #5" +msgstr "valutazione #5" + +#: contrib/comments/models.py:75 +msgid "rating #6" +msgstr "valutazione #6" + +#: contrib/comments/models.py:76 +msgid "rating #7" +msgstr "valutazione #7" + +#: contrib/comments/models.py:77 +msgid "rating #8" +msgstr "valutazione #8" + +#: contrib/comments/models.py:82 +msgid "is valid rating" +msgstr "è una valutazione valida" + +#: 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 "" +"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 "" +"Inserito da %(user)s il %(date)s\n" +"\n" +"%(comment)s\n" +"\n" +"http://%(domain)s%(url)s" + +#: contrib/comments/models.py:168 +msgid "person's name" +msgstr "nome della persona" + +#: contrib/comments/models.py:171 +msgid "ip address" +msgstr "indirizzo IP" + +#: contrib/comments/models.py:173 +msgid "approved by staff" +msgstr "approvato dallo staff" + +#: contrib/comments/models.py:176 +msgid "free comment" +msgstr "commento libero" + +#: contrib/comments/models.py:177 +msgid "free comments" +msgstr "commenti liberi" + +#: contrib/comments/models.py:233 +msgid "score" +msgstr "punteggio" + +#: contrib/comments/models.py:234 +msgid "score date" +msgstr "data punteggio" + +#: contrib/comments/models.py:237 +msgid "karma score" +msgstr "livello karma" + +#: 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 "" +"This comment was flagged by %(user)s:\n" +"\n" +"%(text)s" +msgstr "" +"A questo commento è stato apposto un flag da %(user)s:\n" +"\n" +"%(text)s" + +#: contrib/comments/models.py:265 +msgid "flag date" +msgstr "data flag" + +#: contrib/comments/models.py:268 +msgid "user flag" +msgstr "flag utente" + +#: 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" -#: utils/timesince.py:15 -msgid "day" -msgid_plural "days" -msgstr[0] "giorno" -msgstr[1] "giorni" +#: contrib/comments/views/karma.py:25 +msgid "No voting for yourself" +msgstr "Impossibile votare per se stessi" -#: utils/timesince.py:16 -msgid "hour" -msgid_plural "hours" -msgstr[0] "ora" -msgstr[1] "ore" +#: 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." -#: utils/timesince.py:17 -msgid "minute" -msgid_plural "minutes" -msgstr[0] "minuto" -msgstr[1] "minuti" +#: 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" -#: conf/global_settings.py:37 -msgid "Bengali" -msgstr "Bengali" +#: 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" -#: conf/global_settings.py:38 -msgid "Czech" -msgstr "Ceco" +#: contrib/comments/views/comments.py:188 +#: contrib/comments/views/comments.py:280 +msgid "Only POSTs are allowed" +msgstr "Sono ammessi solo POST" -#: conf/global_settings.py:39 -msgid "Welsh" -msgstr "Gallese" +#: 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" -#: conf/global_settings.py:40 -msgid "Danish" -msgstr "Danese" +#: 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)" -#: conf/global_settings.py:41 -msgid "German" -msgstr "Tedesco" +#: 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" -#: conf/global_settings.py:42 -msgid "Greek" -msgstr "Greco" +#: 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'" -#: conf/global_settings.py:43 -msgid "English" -msgstr "Inglese" +#: contrib/comments/templates/comments/form.html:8 +msgid "Forgotten your password?" +msgstr "Hai dimenticato la parola chiave?" -#: conf/global_settings.py:44 -msgid "Spanish" -msgstr "Spagnolo" +#: contrib/comments/templates/comments/form.html:12 +msgid "Ratings" +msgstr "Valutazioni" -#: conf/global_settings.py:45 -msgid "French" -msgstr "Francese" +#: contrib/comments/templates/comments/form.html:12 +#: contrib/comments/templates/comments/form.html:23 +msgid "Required" +msgstr "Obbligatorio" -#: conf/global_settings.py:46 -msgid "Galician" -msgstr "Galiziano" +#: contrib/comments/templates/comments/form.html:12 +#: contrib/comments/templates/comments/form.html:23 +msgid "Optional" +msgstr "Facoltativo" -#: conf/global_settings.py:47 -msgid "Hungarian" -msgstr "Ungherese" +#: contrib/comments/templates/comments/form.html:23 +msgid "Post a photo" +msgstr "Invia una foto" -#: conf/global_settings.py:48 -msgid "Hebrew" -msgstr "Ebreo" +#: contrib/comments/templates/comments/form.html:28 +#: contrib/comments/templates/comments/freeform.html:5 +msgid "Comment:" +msgstr "Commento:" -#: conf/global_settings.py:49 -msgid "Icelandic" -msgstr "Islandese" +#: contrib/comments/templates/comments/form.html:35 +#: contrib/comments/templates/comments/freeform.html:10 +msgid "Preview comment" +msgstr "Anteprima commento" -#: conf/global_settings.py:50 -msgid "Italian" -msgstr "Italiano" +#: contrib/comments/templates/comments/freeform.html:4 +msgid "Your name:" +msgstr "Il suo nome:" -#: conf/global_settings.py:51 -msgid "Japanese" -msgstr "Giapponese" +#: 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." -#: conf/global_settings.py:52 -msgid "Dutch" -msgstr "Olandese" +#: 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." -#: conf/global_settings.py:53 -msgid "Norwegian" -msgstr "Norvegese" +#: contrib/sessions/models.py:51 +msgid "session key" +msgstr "chiave di sessione" -#: conf/global_settings.py:54 -msgid "Brazilian" -msgstr "Brasiliano" +#: contrib/sessions/models.py:52 +msgid "session data" +msgstr "dati di sessione" -#: conf/global_settings.py:55 -msgid "Romanian" -msgstr "Rumeno" +#: contrib/sessions/models.py:53 +msgid "expire date" +msgstr "data di scadenza" -#: conf/global_settings.py:56 -msgid "Russian" -msgstr "Russo" +#: contrib/sessions/models.py:57 +msgid "session" +msgstr "sessione" -#: conf/global_settings.py:57 -msgid "Slovak" -msgstr "Slovacco" +#: contrib/sessions/models.py:58 +msgid "sessions" +msgstr "sessioni" -#: conf/global_settings.py:58 -msgid "Slovenian" -msgstr "Sloveno" +#: contrib/contenttypes/models.py:26 +msgid "python model class name" +msgstr "nome della classe modello in Python" -#: conf/global_settings.py:59 -msgid "Serbian" -msgstr "Serbo" +#: contrib/contenttypes/models.py:29 +msgid "content type" +msgstr "content type" -#: conf/global_settings.py:60 -msgid "Swedish" -msgstr "Svedese" +#: contrib/contenttypes/models.py:30 +msgid "content types" +msgstr "content type" -#: conf/global_settings.py:61 -msgid "Ukrainian" -msgstr "Ucraino" +#: 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." -#: conf/global_settings.py:62 -msgid "Simplified Chinese" -msgstr "Cinese semplificato" +#: oldforms/__init__.py:392 +msgid "Line breaks are not allowed here." +msgstr "Non sono ammessi a capo manuali." -#: conf/global_settings.py:63 -msgid "Traditional Chinese" -msgstr "Cinese tradizionale" +#: 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." -#: core/validators.py:60 -msgid "This value must contain only letters, numbers and underscores." -msgstr "Sono ammesse solo lettere, numeri e sottolineature ('_')." +#: oldforms/__init__.py:669 +msgid "The submitted file is empty." +msgstr "Il file inviato è vuoto." -#: 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 ('/')." +#: 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." -#: core/validators.py:72 -msgid "Uppercase letters are not allowed here." -msgstr "Non sono ammesse lettere maiuscole." +#: oldforms/__init__.py:735 +msgid "Enter a positive number." +msgstr "Inserire un numero positivo." -#: core/validators.py:76 -msgid "Lowercase letters are not allowed here." -msgstr "Non sono ammesse lettere minuscole." +#: 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." -#: core/validators.py:83 -msgid "Enter only digits separated by commas." -msgstr "Inserire solo numeri separati da virgole." +#: views/generic/create_update.py:43 +#, python-format +msgid "The %(verbose_name)s was created successfully." +msgstr "%(verbose_name)s è stato creato correttamente." -#: core/validators.py:95 -msgid "Enter valid e-mail addresses separated by commas." -msgstr "Inserire indirizzi e-mail validi separati da virgole." +#: views/generic/create_update.py:117 +#, python-format +msgid "The %(verbose_name)s was updated successfully." +msgstr "%(verbose_name)s è stato aggiornato correttamente." -#: core/validators.py:99 -msgid "Please enter a valid IP address." -msgstr "Inserire un indirizzo IP valido." +#: views/generic/create_update.py:184 +#, python-format +msgid "The %(verbose_name)s was deleted." +msgstr "%(verbose_name)s è stato cancellato." -#: core/validators.py:103 -msgid "Empty values are not allowed here." -msgstr "E' necessario inserire un valore." +#: utils/dates.py:6 +msgid "Monday" +msgstr "Lunedì" -#: core/validators.py:107 -msgid "Non-numeric characters aren't allowed here." -msgstr "Sono ammessi soltanto caratteri numerici." +#: utils/dates.py:6 +msgid "Tuesday" +msgstr "Martedì" -#: core/validators.py:111 -msgid "This value can't be comprised solely of digits." -msgstr "Il valore non può essere composto solo da cifre." +#: utils/dates.py:6 +msgid "Wednesday" +msgstr "Mercoledì" -#: core/validators.py:116 -msgid "Enter a whole number." -msgstr "Inserire un numero." +#: utils/dates.py:6 +msgid "Thursday" +msgstr "Giovedì" -#: core/validators.py:120 -msgid "Only alphabetical characters are allowed here." -msgstr "Sono ammessi solo caratteri alfabetici." +#: utils/dates.py:6 +msgid "Friday" +msgstr "Venerdì" -#: core/validators.py:124 -msgid "Enter a valid date in YYYY-MM-DD format." -msgstr "Inserire un data valida in formato AAAA-MM-GG." +#: utils/dates.py:7 +msgid "Saturday" +msgstr "Sabato" -#: core/validators.py:128 -msgid "Enter a valid time in HH:MM format." -msgstr "Inserire un orario valido in formato OO:MM." +#: utils/dates.py:7 +msgid "Sunday" +msgstr "Domenica" -#: 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." +#: utils/dates.py:14 +msgid "January" +msgstr "Gennaio" -#: core/validators.py:136 -msgid "Enter a valid e-mail address." -msgstr "Inserire un indirizzo e-mail valido." +#: utils/dates.py:14 +msgid "February" +msgstr "Febbraio" -#: 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." +#: utils/dates.py:14 utils/dates.py:27 +msgid "March" +msgstr "Marzo" + +#: utils/dates.py:14 utils/dates.py:27 +msgid "April" +msgstr "Aprile" -#: 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." +#: utils/dates.py:14 utils/dates.py:27 +msgid "May" +msgstr "Maggio" -#: 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." +#: utils/dates.py:14 utils/dates.py:27 +msgid "June" +msgstr "Giugno" -#: 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." +#: utils/dates.py:15 utils/dates.py:27 +msgid "July" +msgstr "Luglio" -#: core/validators.py:171 -msgid "A valid URL is required." -msgstr "Inserire un URL valido." +#: utils/dates.py:15 +msgid "August" +msgstr "Agosto" -#: 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" +#: utils/dates.py:15 +msgid "September" +msgstr "Settembre" -#: core/validators.py:192 -#, python-format -msgid "Badly formed XML: %s" -msgstr "XML malformato: %s" +#: utils/dates.py:15 +msgid "October" +msgstr "Ottobre" -#: core/validators.py:202 -#, python-format -msgid "Invalid URL: %s" -msgstr "URL non valida: %s" +#: utils/dates.py:15 +msgid "November" +msgstr "Novembre" -#: 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." +#: utils/dates.py:16 +msgid "December" +msgstr "Dicembre" -#: core/validators.py:214 -msgid "Enter a valid U.S. state abbreviation." -msgstr "Inserire un nome di stato americano abbreviato valido." +#: utils/dates.py:19 +msgid "jan" +msgstr "gen" -#: 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." +#: utils/dates.py:19 +msgid "feb" +msgstr "feb" -#: core/validators.py:236 -#, python-format -msgid "This field must match the '%s' field." -msgstr "Questo campo deve corrispondere al campo '%s'." +#: utils/dates.py:19 +msgid "mar" +msgstr "mar" -#: core/validators.py:255 -msgid "Please enter something for at least one field." -msgstr "Inserire qualcosa in almeno un campo." +#: utils/dates.py:19 +msgid "apr" +msgstr "apr" -#: 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." +#: utils/dates.py:19 +msgid "may" +msgstr "mag" -#: 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" +#: utils/dates.py:19 +msgid "jun" +msgstr "giu" -#: 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" +#: utils/dates.py:20 +msgid "jul" +msgstr "lug" -#: core/validators.py:313 -msgid "Duplicate values are not allowed." -msgstr "Non sono ammessi valori duplicati." +#: utils/dates.py:20 +msgid "aug" +msgstr "ago" -#: core/validators.py:336 -#, python-format -msgid "This value must be a power of %s." -msgstr "Il valore deve essere una potenza di %s." +#: utils/dates.py:20 +msgid "sep" +msgstr "set" -#: core/validators.py:347 -msgid "Please enter a valid decimal number." -msgstr "Inserire un numero decimale valido." +#: utils/dates.py:20 +msgid "oct" +msgstr "ott" -#: 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." +#: utils/dates.py:20 +msgid "nov" +msgstr "nov" -#: 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." +#: utils/dates.py:20 +msgid "dec" +msgstr "dic" -#: 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." +#: utils/dates.py:27 +msgid "Jan." +msgstr "Gen." -#: 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." +#: utils/dates.py:27 +msgid "Feb." +msgstr "Feb." -#: core/validators.py:376 -msgid "The format for this field is wrong." -msgstr "Formato del file non valido." +#: utils/dates.py:28 +msgid "Aug." +msgstr "Ago." -#: core/validators.py:391 -msgid "This field is invalid." -msgstr "Il campo non è valido." +#: utils/dates.py:28 +msgid "Sept." +msgstr "Set." -#: core/validators.py:426 -#, python-format -msgid "Could not retrieve anything from %s." -msgstr "Impossibile recuperare alcunché da %s." +#: utils/dates.py:28 +msgid "Oct." +msgstr "Ott." -#: 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/dates.py:28 +msgid "Nov." +msgstr "Nov." -#: 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/dates.py:28 +msgid "Dec." +msgstr "Dic." -#: 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/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "anno" +msgstr[1] "anni" -#: 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/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "mese" +msgstr[1] "mesi" -#: 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\".)" +#: utils/timesince.py:14 +msgid "week" +msgid_plural "weeks" +msgstr[0] "settimana" +msgstr[1] "settimane" -#: core/validators.py:480 -#, 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\".)" +#: utils/timesince.py:15 +msgid "day" +msgid_plural "days" +msgstr[0] "giorno" +msgstr[1] "giorni" -#: core/validators.py:485 -#, 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\".)" +#: utils/timesince.py:16 +msgid "hour" +msgid_plural "hours" +msgstr[0] "ora" +msgstr[1] "ore" -#: db/models/manipulators.py:302 -#, 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." +#: utils/timesince.py:17 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minuto" +msgstr[1] "minuti" -#: core/meta/fields.py:60 -#: db/models/fields/__init__.py:40 -#, python-format -msgid "%(optname)s with this %(fieldname)s already exists." -msgstr "%(optname)s·con questo·%(fieldname)s·esiste già." +#: utils/translation/trans_real.py:362 +msgid "DATE_FORMAT" +msgstr "j F Y" -#: 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." +#: utils/translation/trans_real.py:363 +msgid "DATETIME_FORMAT" +msgstr "j F Y, H:i" -#: db/models/fields/__init__.py:337 -msgid "This value must be an integer." -msgstr "Il valore deve essere un intero." +#: utils/translation/trans_real.py:364 +msgid "TIME_FORMAT" +msgstr "H:i" -#: db/models/fields/__init__.py:369 -msgid "This value must be either True or False." -msgstr "Il valore deve essere True o False." +#: utils/translation/trans_real.py:380 +msgid "YEAR_MONTH_FORMAT" +msgstr "Y F" -#: db/models/fields/__init__.py:385 -msgid "This field cannot be null." -msgstr "Il campo non può essere nullo." +#: utils/translation/trans_real.py:381 +msgid "MONTH_DAY_FORMAT" +msgstr "F j" -#: db/models/fields/__init__.py:562 -msgid "Enter a valid filename." -msgstr "Inserire un nome file valido." +#: template/defaultfilters.py:490 +msgid "yes,no,maybe" +msgstr "sì,no,forse" -#: db/models/fields/related.py:43 +#: newforms/fields.py:101 newforms/fields.py:254 #, 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." +msgid "Ensure this value has at most %d characters." +msgstr "Assicurarsi che questo valore non contenga più di %d caratteri." -#: 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." +#: newforms/fields.py:103 newforms/fields.py:256 +#, python-format +msgid "Ensure this value has at least %d characters." +msgstr "Assicurarsi che questo valore contenga almeno %d caratteri." -#: db/models/fields/related.py:625 +#: newforms/fields.py:128 #, 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." +msgid "Ensure this value is less than or equal to %s." +msgstr "Assicurarsi che questo valore sia minore o uguale a %s." -#: forms/__init__.py:380 +#: newforms/fields.py:130 #, 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." +msgid "Ensure this value is greater than or equal to %s." +msgstr "Assicurarsi che questo valore sia maggiore o uguale a %s." -#: forms/__init__.py:385 -msgid "Line breaks are not allowed here." -msgstr "Non è ammesso andare a capo." +#: newforms/fields.py:163 +msgid "Enter a valid date." +msgstr "Inserire una data valida." -#: forms/__init__.py:480 forms/__init__.py:551 forms/__init__.py:589 -#, 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." +#: newforms/fields.py:190 +msgid "Enter a valid time." +msgstr "Inserire un orario valido." -#: forms/__init__.py:645 -msgid "The submitted file is empty." -msgstr "Il file sottomesso è vuoto." +#: newforms/fields.py:226 +msgid "Enter a valid date/time." +msgstr "Inserire una coppia data/orario valida." -#: forms/__init__.py:699 -msgid "Enter a whole number between -32,768 and 32,767." -msgstr "Inserire un numero tra -32768 e 32767." +#: newforms/fields.py:240 +msgid "Enter a valid value." +msgstr "Inserire un valore valido." -#: forms/__init__.py:708 -msgid "Enter a positive number." -msgstr "Inserire un numero positivo." +#: newforms/fields.py:287 newforms/fields.py:309 +msgid "Enter a valid URL." +msgstr "Inserire una URL valida." -#: forms/__init__.py:717 -msgid "Enter a whole number between 0 and 32,767." -msgstr "Inserire un numero compreso tra 0 e 32767." +#: newforms/fields.py:311 +msgid "This URL appears to be a broken link." +msgstr "Questa URL non sembra funzionare." -#: template/defaultfilters.py:379 -msgid "yes,no,maybe" -msgstr "sì,no,forse" +#: 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." + +#: newforms/fields.py:378 newforms/fields.py:454 newforms/models.py:181 +msgid "Enter a list of values." +msgstr "Inserire una lista di valori." + +#: newforms/fields.py:387 newforms/models.py:187 +#, python-format +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 Binary files a/django/conf/locale/it/LC_MESSAGES/djangojs.mo and b/django/conf/locale/it/LC_MESSAGES/djangojs.mo 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 , 2006. # +# Carlo C8E Miron , 2006. +# Nicola 'tekNico' Larosa , 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 \n" -"Language-Team: Italian \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 \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'(?/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 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 + +>>> 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 + +>>> 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] +[, , , ] +>>> len(db.connection.queries) +9 + +# With select_related(): +>>> db.reset_queries() +>>> world = Species.objects.all().select_related() +>>> [o.genus.family for o in world] +[, , , ] +>>> 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 + + +# 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 + +>>> len(db.connection.queries) +3 + +>>> db.reset_queries() +>>> world = Species.objects.all().select_related(depth=2) +>>> [o.genus.family.order for o in world] +[, , , ] +>>> 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') -- cgit v1.3