diff --git a/AUTHORS b/AUTHORS index 56d5e49cb8..b20092eb54 100644 --- a/AUTHORS +++ b/AUTHORS @@ -68,7 +68,7 @@ answer newbie questions, and generally made Django that much better: Esdras Beleza Chris Bennett James Bennett - Ben + Ben Godfrey Arvis Bickovskis Paul Bissex Simon Blanchard @@ -78,7 +78,7 @@ answer newbie questions, and generally made Django that much better: brut.alll@gmail.com btoll@bestweb.net Jonathan Buchanan - Can Burak Çilingir + Juan Manuel Caicedo Trevor Caira Ricardo Javier Cárdenes Medina Graham Carlyle @@ -92,6 +92,7 @@ answer newbie questions, and generally made Django that much better: ivan.chelubeev@gmail.com Bryan Chow Michal Chruszcz + Can Burak Çilingir Ian Clelland Russell Cloran colin@owlfish.com diff --git a/django/conf/locale/ca/LC_MESSAGES/django.mo b/django/conf/locale/ca/LC_MESSAGES/django.mo index fe79085706..4f61dfbbcd 100644 Binary files a/django/conf/locale/ca/LC_MESSAGES/django.mo and b/django/conf/locale/ca/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/ca/LC_MESSAGES/django.po b/django/conf/locale/ca/LC_MESSAGES/django.po index 0b216f757c..36511eb58c 100644 --- a/django/conf/locale/ca/LC_MESSAGES/django.po +++ b/django/conf/locale/ca/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-02-15 00:00+0200\n" +"POT-Creation-Date: 2008-05-26 10:35+0200\n" "PO-Revision-Date: 2008-05-14 11:15+0200\n" "Last-Translator: Django Catalan Group \n" "Language-Team: Catalan \n" @@ -14,191 +14,191 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: conf/global_settings.py:39 +#: conf/global_settings.py:43 msgid "Arabic" msgstr "Arabic" -#: conf/global_settings.py:40 +#: conf/global_settings.py:44 msgid "Bengali" msgstr "Bengalí" -#: conf/global_settings.py:41 +#: conf/global_settings.py:45 msgid "Bulgarian" msgstr "Búlgar" -#: conf/global_settings.py:42 +#: conf/global_settings.py:46 msgid "Catalan" msgstr "Català" -#: conf/global_settings.py:43 +#: conf/global_settings.py:47 msgid "Czech" msgstr "Txec" -#: conf/global_settings.py:44 +#: conf/global_settings.py:48 msgid "Welsh" msgstr "Galès" -#: conf/global_settings.py:45 +#: conf/global_settings.py:49 msgid "Danish" msgstr "Danès" -#: conf/global_settings.py:46 +#: conf/global_settings.py:50 msgid "German" msgstr "Alemany" -#: conf/global_settings.py:47 +#: conf/global_settings.py:51 msgid "Greek" msgstr "Grec" -#: conf/global_settings.py:48 +#: conf/global_settings.py:52 msgid "English" msgstr "Anglès" -#: conf/global_settings.py:49 +#: conf/global_settings.py:53 msgid "Spanish" msgstr "Espanyol" -#: conf/global_settings.py:50 +#: conf/global_settings.py:54 msgid "Argentinean Spanish" msgstr "Castellà Argentí" -#: conf/global_settings.py:51 +#: conf/global_settings.py:55 msgid "Basque" msgstr "Euskera" -#: conf/global_settings.py:52 +#: conf/global_settings.py:56 msgid "Persian" msgstr "Persa" -#: conf/global_settings.py:53 +#: conf/global_settings.py:57 msgid "Finnish" msgstr "Finlandès" -#: conf/global_settings.py:54 +#: conf/global_settings.py:58 msgid "French" msgstr "Francès" -#: conf/global_settings.py:55 +#: conf/global_settings.py:59 msgid "Irish" msgstr "Irlandès" -#: conf/global_settings.py:56 +#: conf/global_settings.py:60 msgid "Galician" msgstr "Gallec" -#: conf/global_settings.py:57 +#: conf/global_settings.py:61 msgid "Hungarian" msgstr "Húngar" -#: conf/global_settings.py:58 +#: conf/global_settings.py:62 msgid "Hebrew" msgstr "Hebreu" -#: conf/global_settings.py:59 +#: conf/global_settings.py:63 msgid "Croatian" msgstr "Croat" -#: conf/global_settings.py:60 +#: conf/global_settings.py:64 msgid "Icelandic" msgstr "Islandès" -#: conf/global_settings.py:61 +#: conf/global_settings.py:65 msgid "Italian" msgstr "Italià" -#: conf/global_settings.py:62 +#: conf/global_settings.py:66 msgid "Japanese" msgstr "Japonès" -#: conf/global_settings.py:63 +#: conf/global_settings.py:67 msgid "Georgian" msgstr "Georgià" -#: conf/global_settings.py:64 +#: conf/global_settings.py:68 msgid "Korean" msgstr "Coreà" -#: conf/global_settings.py:65 +#: conf/global_settings.py:69 msgid "Khmer" msgstr "Khmer" -#: conf/global_settings.py:66 +#: conf/global_settings.py:70 msgid "Kannada" msgstr "Canès" -#: conf/global_settings.py:67 +#: conf/global_settings.py:71 msgid "Latvian" msgstr "Letó" -#: conf/global_settings.py:68 +#: conf/global_settings.py:72 msgid "Macedonian" msgstr "Macedoni" -#: conf/global_settings.py:69 +#: conf/global_settings.py:73 msgid "Dutch" msgstr "Holandès" -#: conf/global_settings.py:70 +#: conf/global_settings.py:74 msgid "Norwegian" msgstr "Norueg" -#: conf/global_settings.py:71 +#: conf/global_settings.py:75 msgid "Polish" msgstr "Polac" -#: conf/global_settings.py:72 +#: conf/global_settings.py:76 msgid "Portugese" msgstr "Portuguès" -#: conf/global_settings.py:73 +#: conf/global_settings.py:77 msgid "Brazilian Portuguese" msgstr "Portuguès de Brasil" -#: conf/global_settings.py:74 +#: conf/global_settings.py:78 msgid "Romanian" msgstr "Rumanès" -#: conf/global_settings.py:75 +#: conf/global_settings.py:79 msgid "Russian" msgstr "Rús" -#: conf/global_settings.py:76 +#: conf/global_settings.py:80 msgid "Slovak" msgstr "Eslovac" -#: conf/global_settings.py:77 +#: conf/global_settings.py:81 msgid "Slovenian" msgstr "Esloveni" -#: conf/global_settings.py:78 +#: conf/global_settings.py:82 msgid "Serbian" msgstr "Serbi" -#: conf/global_settings.py:79 +#: conf/global_settings.py:83 msgid "Swedish" msgstr "Suec" -#: conf/global_settings.py:80 +#: conf/global_settings.py:84 msgid "Tamil" msgstr "Tàmil" -#: conf/global_settings.py:81 +#: conf/global_settings.py:85 msgid "Telugu" msgstr "Telugu" -#: conf/global_settings.py:82 +#: conf/global_settings.py:86 msgid "Turkish" msgstr "Turc" -#: conf/global_settings.py:83 +#: conf/global_settings.py:87 msgid "Ukrainian" msgstr "Ucranià" -#: conf/global_settings.py:84 +#: conf/global_settings.py:88 msgid "Simplified Chinese" msgstr "Xinès simplificat" -#: conf/global_settings.py:85 +#: conf/global_settings.py:89 msgid "Traditional Chinese" msgstr "Xinès tradicional" @@ -829,17 +829,17 @@ msgstr "" "'cookies' (galetes). Si us plau, habiliteu les 'cookies', recarregueu " "aquesta pàgina i proveu-ho de nou. " -#: contrib/admin/views/decorators.py:90 -msgid "Usernames cannot contain the '@' character." -msgstr "Els noms d'usuari no poden contenir el caracter '@'." - -#: contrib/admin/views/decorators.py:92 +#: contrib/admin/views/decorators.py:89 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "" "La vostra adreça de correu no és el vostre nom d'usuari. Provi '%s' en tot " "cas." +#: contrib/admin/views/decorators.py:93 +msgid "Usernames cannot contain the '@' character." +msgstr "Els noms d'usuari no poden contenir el caracter '@'." + #: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50 #: contrib/admin/views/doc.py:52 msgid "tag:" @@ -4038,8 +4038,7 @@ msgstr "Aquesta URL sembla ser un enllaç trencat." #: newforms/fields.py:560 newforms/models.py:299 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "" -"Escolli una opció vàlida; Aquesta opció no és una de les opcions " -"disponibles." +"Escolli una opció vàlida; Aquesta opció no és una de les opcions disponibles." #: newforms/fields.py:599 #, python-format diff --git a/django/conf/locale/es/LC_MESSAGES/django.mo b/django/conf/locale/es/LC_MESSAGES/django.mo index 485a77160a..9437a3b483 100644 Binary files a/django/conf/locale/es/LC_MESSAGES/django.mo and b/django/conf/locale/es/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/es/LC_MESSAGES/django.po b/django/conf/locale/es/LC_MESSAGES/django.po index b1fab30ded..1bb9491696 100644 --- a/django/conf/locale/es/LC_MESSAGES/django.po +++ b/django/conf/locale/es/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-10-04 00:00+0200\n" +"POT-Creation-Date: 2008-05-26 10:38+0200\n" "PO-Revision-Date: 2008-03-30 01:04+0100\n" "Last-Translator: Django Spanish Group \n" "Language-Team: Spanish \n" @@ -14,191 +14,192 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: conf/global_settings.py:39 +#: conf/global_settings.py:43 msgid "Arabic" msgstr "Árabe" -#: conf/global_settings.py:40 +#: conf/global_settings.py:44 msgid "Bengali" msgstr "Bengalí" -#: conf/global_settings.py:41 +#: conf/global_settings.py:45 msgid "Bulgarian" msgstr "Búlgaro" -#: conf/global_settings.py:42 +#: conf/global_settings.py:46 msgid "Catalan" msgstr "Catalán" -#: conf/global_settings.py:43 +#: conf/global_settings.py:47 msgid "Czech" msgstr "Checo" -#: conf/global_settings.py:44 +#: conf/global_settings.py:48 msgid "Welsh" msgstr "Galés" -#: conf/global_settings.py:45 +#: conf/global_settings.py:49 msgid "Danish" msgstr "Danés" -#: conf/global_settings.py:46 +#: conf/global_settings.py:50 msgid "German" msgstr "Alemán" -#: conf/global_settings.py:47 +#: conf/global_settings.py:51 msgid "Greek" msgstr "Griego" -#: conf/global_settings.py:48 +#: conf/global_settings.py:52 msgid "English" msgstr "Inglés" -#: conf/global_settings.py:49 +#: conf/global_settings.py:53 msgid "Spanish" msgstr "Español" -#: conf/global_settings.py:50 +#: conf/global_settings.py:54 msgid "Argentinean Spanish" msgstr "Español Argentino" -#: conf/global_settings.py:51 +#: conf/global_settings.py:55 msgid "Basque" msgstr "Vasco" -#: conf/global_settings.py:52 +#: conf/global_settings.py:56 msgid "Persian" msgstr "Persa" -#: conf/global_settings.py:53 +#: conf/global_settings.py:57 msgid "Finnish" msgstr "Finés" -#: conf/global_settings.py:54 +#: conf/global_settings.py:58 msgid "French" msgstr "Francés" -#: conf/global_settings.py:55 +#: conf/global_settings.py:59 msgid "Irish" msgstr "Irlandés" -#: conf/global_settings.py:56 +#: conf/global_settings.py:60 msgid "Galician" msgstr "Gallego" -#: conf/global_settings.py:57 +#: conf/global_settings.py:61 msgid "Hungarian" msgstr "Húngaro" -#: conf/global_settings.py:58 +#: conf/global_settings.py:62 msgid "Hebrew" msgstr "Hebreo" -#: conf/global_settings.py:59 +#: conf/global_settings.py:63 msgid "Croatian" msgstr "Croata" -#: conf/global_settings.py:60 +#: conf/global_settings.py:64 msgid "Icelandic" msgstr "Islandés" -#: conf/global_settings.py:61 +#: conf/global_settings.py:65 msgid "Italian" msgstr "Italiano" -#: conf/global_settings.py:62 +#: conf/global_settings.py:66 msgid "Japanese" msgstr "Japonés" -#: conf/global_settings.py:63 +#: conf/global_settings.py:67 msgid "Georgian" msgstr "Georgiano" -#: conf/global_settings.py:64 +#: conf/global_settings.py:68 msgid "Korean" msgstr "Koreano" -#: conf/global_settings.py:65 +#: conf/global_settings.py:69 msgid "Khmer" msgstr "Khmer" -#: conf/global_settings.py:66 +#: conf/global_settings.py:70 msgid "Kannada" msgstr "Kannada" -#: conf/global_settings.py:67 +#: conf/global_settings.py:71 msgid "Latvian" msgstr "Latvio" -#: conf/global_settings.py:68 +#: conf/global_settings.py:72 msgid "Macedonian" msgstr "Macedonio" -#: conf/global_settings.py:69 +#: conf/global_settings.py:73 msgid "Dutch" msgstr "Alemán" -#: conf/global_settings.py:70 +#: conf/global_settings.py:74 msgid "Norwegian" msgstr "Noruego" -#: conf/global_settings.py:71 +#: conf/global_settings.py:75 msgid "Polish" msgstr "Polaco" -#: conf/global_settings.py:72 +#: conf/global_settings.py:76 msgid "Portugese" msgstr "Portugés" -#: conf/global_settings.py:73 -msgid "Brazilian" -msgstr "Brasileño" +#: conf/global_settings.py:77 +#, fuzzy +msgid "Brazilian Portuguese" +msgstr "Portugés" -#: conf/global_settings.py:74 +#: conf/global_settings.py:78 msgid "Romanian" msgstr "Rumano" -#: conf/global_settings.py:75 +#: conf/global_settings.py:79 msgid "Russian" msgstr "Ruso" -#: conf/global_settings.py:76 +#: conf/global_settings.py:80 msgid "Slovak" msgstr "Eslovaco" -#: conf/global_settings.py:77 +#: conf/global_settings.py:81 msgid "Slovenian" msgstr "Esloveno" -#: conf/global_settings.py:78 +#: conf/global_settings.py:82 msgid "Serbian" msgstr "Serbio" -#: conf/global_settings.py:79 +#: conf/global_settings.py:83 msgid "Swedish" msgstr "Sueco" -#: conf/global_settings.py:80 +#: conf/global_settings.py:84 msgid "Tamil" msgstr "Tamil" -#: conf/global_settings.py:81 +#: conf/global_settings.py:85 msgid "Telugu" msgstr "Telugu" -#: conf/global_settings.py:82 +#: conf/global_settings.py:86 msgid "Turkish" msgstr "Turco" -#: conf/global_settings.py:83 +#: conf/global_settings.py:87 msgid "Ukrainian" msgstr "Ucraniano" -#: conf/global_settings.py:84 +#: conf/global_settings.py:88 msgid "Simplified Chinese" msgstr "Chino simplificado" -#: conf/global_settings.py:85 +#: conf/global_settings.py:89 msgid "Traditional Chinese" msgstr "Chino tradicional" @@ -828,17 +829,17 @@ msgstr "" "Parece que su navegador no está configurado para aceptar cookies. Actívelas " "por favor, recargue esta página, e inténtelo de nuevo." -#: contrib/admin/views/decorators.py:90 -msgid "Usernames cannot contain the '@' character." -msgstr "Los nombres de usuario no pueden contener el carácter '@'." - -#: contrib/admin/views/decorators.py:92 +#: contrib/admin/views/decorators.py:89 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "" "Su dirección de correo no es su nombre de usuario. Pruebe con '%s' en su " "lugar." +#: contrib/admin/views/decorators.py:93 +msgid "Usernames cannot contain the '@' character." +msgstr "Los nombres de usuario no pueden contener el carácter '@'." + #: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50 #: contrib/admin/views/doc.py:52 msgid "tag:" @@ -962,7 +963,7 @@ msgstr "Texto" msgid "Time" msgstr "Hora" -#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:7 +#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:8 msgid "URL" msgstr "URL" @@ -1021,7 +1022,7 @@ msgstr "No ha cambiado ningún campo." #: contrib/admin/views/main.py:354 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." -msgstr "Se modificó con éxito el %(name)s \"%(obj)s." +msgstr "Se modificó con éxito el %(name)s \"%(obj)s\"." #: contrib/admin/views/main.py:362 #, python-format @@ -1069,7 +1070,7 @@ msgstr "Escoja %s" msgid "Select %s to change" msgstr "Escoja %s para modificar" -#: contrib/admin/views/main.py:784 +#: contrib/admin/views/main.py:765 msgid "Database error" msgstr "Error en la base de datos" @@ -1190,8 +1191,9 @@ msgid "active" msgstr "activo" #: contrib/auth/models.py:137 +#, fuzzy msgid "" -"Designates whether this user can log into the Django admin. Unselect this " +"Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." msgstr "" "Indica si el usuario puede entrar en este sitio de administración. Desmarque " @@ -1569,30 +1571,30 @@ msgstr "tipo de contenido" msgid "content types" msgstr "tipos de contenido" -#: contrib/flatpages/models.py:8 +#: contrib/flatpages/models.py:9 msgid "" "Example: '/about/contact/'. Make sure to have leading and trailing slashes." msgstr "" "Ejemplo: '/about/contact/'. Asegúrese de que pone barras al principio y al " "final." -#: contrib/flatpages/models.py:9 +#: contrib/flatpages/models.py:10 msgid "title" msgstr "título" -#: contrib/flatpages/models.py:10 +#: contrib/flatpages/models.py:11 msgid "content" msgstr "contenido" -#: contrib/flatpages/models.py:11 +#: contrib/flatpages/models.py:12 msgid "enable comments" msgstr "admitir comentarios" -#: contrib/flatpages/models.py:12 +#: contrib/flatpages/models.py:13 msgid "template name" msgstr "nombre de plantilla" -#: contrib/flatpages/models.py:13 +#: contrib/flatpages/models.py:14 msgid "" "Example: 'flatpages/contact_page.html'. If this isn't provided, the system " "will use 'flatpages/default.html'." @@ -1600,23 +1602,23 @@ msgstr "" "Ejemplo: 'flatpages/contact_page.html'. Si no es proporcionado, el sistema " "usará 'flatpages/default.html'." -#: contrib/flatpages/models.py:14 +#: contrib/flatpages/models.py:15 msgid "registration required" msgstr "debe estar registrado" -#: contrib/flatpages/models.py:14 +#: contrib/flatpages/models.py:15 msgid "If this is checked, only logged-in users will be able to view the page." msgstr "Si está marcado, sólo los usuarios registrados podrán ver la página." -#: contrib/flatpages/models.py:18 +#: contrib/flatpages/models.py:20 msgid "flat page" msgstr "página estática" -#: contrib/flatpages/models.py:19 +#: contrib/flatpages/models.py:21 msgid "flat pages" msgstr "páginas estáticas" -#: contrib/flatpages/models.py:24 +#: contrib/flatpages/models.py:27 msgid "Advanced options" msgstr "Opciones avanzadas" @@ -1770,8 +1772,8 @@ msgstr "Introduzca un código postal en el formato XXX XXX." #: contrib/localflavor/ca/forms.py:88 msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." msgstr "" -"Introduzca un Número del Seguro Social de Canada válido en el formato XXX-XXX-" -"XXX." +"Introduzca un Número del Seguro Social de Canada válido en el formato XXX-" +"XXX-XXX." #: contrib/localflavor/ch/ch_states.py:5 msgid "Aargau" @@ -3628,7 +3630,7 @@ msgstr "El año debe ser 1900 o posterior." msgid "Invalid date: %s" msgstr "Fecha no válida: %s" -#: core/validators.py:156 db/models/fields/__init__.py:527 +#: core/validators.py:156 db/models/fields/__init__.py:548 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Introduzca una fecha válida en formato AAAA-MM-DD." @@ -3636,7 +3638,7 @@ msgstr "Introduzca una fecha válida en formato AAAA-MM-DD." msgid "Enter a valid time in HH:MM format." msgstr "Introduzca una hora válida en formato HH:MM." -#: core/validators.py:165 db/models/fields/__init__.py:604 +#: core/validators.py:165 db/models/fields/__init__.py:625 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Introduzca una fecha/hora válida en formato AAAA-MM-DD HH:MM." @@ -3897,58 +3899,58 @@ msgstr "" msgid "%(object)s with this %(type)s already exists for the given %(field)s." msgstr "%(object)s de este %(type)s ya existen en este %(field)s." -#: db/models/fields/__init__.py:52 +#: db/models/fields/__init__.py:54 #, python-format msgid "%(optname)s with this %(fieldname)s already exists." msgstr "Ya existe %(optname)s con este %(fieldname)s." -#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:327 -#: db/models/fields/__init__.py:759 db/models/fields/__init__.py:770 +#: db/models/fields/__init__.py:179 db/models/fields/__init__.py:348 +#: db/models/fields/__init__.py:780 db/models/fields/__init__.py:791 #: newforms/fields.py:46 oldforms/__init__.py:374 msgid "This field is required." msgstr "Este campo es obligatorio." -#: db/models/fields/__init__.py:427 +#: db/models/fields/__init__.py:448 msgid "This value must be an integer." msgstr "Este valor debe ser un entero." -#: db/models/fields/__init__.py:466 +#: db/models/fields/__init__.py:487 msgid "This value must be either True or False." msgstr "Este valor debe ser Verdadero o Falso." -#: db/models/fields/__init__.py:490 +#: db/models/fields/__init__.py:511 msgid "This field cannot be null." msgstr "Este campo no puede estar vacío." -#: db/models/fields/__init__.py:668 +#: db/models/fields/__init__.py:689 msgid "This value must be a decimal number." msgstr "Este valor debe ser un entero." -#: db/models/fields/__init__.py:779 +#: db/models/fields/__init__.py:800 msgid "Enter a valid filename." msgstr "Introduzca un nombre de fichero válido" -#: db/models/fields/__init__.py:960 +#: db/models/fields/__init__.py:981 msgid "This value must be either None, True or False." msgstr "Este valor debe ser Verdadero o Falso." -#: db/models/fields/related.py:93 +#: db/models/fields/related.py:94 #, python-format msgid "Please enter a valid %s." msgstr "Por favor, introduzca un %s válido." -#: db/models/fields/related.py:701 +#: db/models/fields/related.py:721 msgid "Separate multiple IDs with commas." msgstr "Separe múltiples IDs con comas." -#: db/models/fields/related.py:703 +#: db/models/fields/related.py:723 msgid "" "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" "Mantenga presionado \"Control\", o \"Command\" en un Mac, para seleccionar " "más de uno." -#: db/models/fields/related.py:750 +#: db/models/fields/related.py:770 #, python-format msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid_plural "" @@ -4042,7 +4044,8 @@ msgstr "Escoja una opción válida. Esa opción no está entre las aceptadas." #: newforms/fields.py:599 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." -msgstr "Escoja una opción válida. %(value)s no es una de las opciones disponibles." +msgstr "" +"Escoja una opción válida. %(value)s no es una de las opciones disponibles." #: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:371 msgid "Enter a list of values." @@ -4404,6 +4407,9 @@ msgstr "Se actualizó con éxito el %(verbose_name)s." msgid "The %(verbose_name)s was deleted." msgstr "El %(verbose_name)s ha sido eliminado." +#~ msgid "Brazilian" +#~ msgstr "Brasileño" + #~ msgid "Gaeilge" #~ msgstr "Gaeilge" diff --git a/django/conf/locale/it/LC_MESSAGES/django.mo b/django/conf/locale/it/LC_MESSAGES/django.mo index 93fc7da545..683680bb7d 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 ebe0b5a45e..a8f02e4967 100644 --- a/django/conf/locale/it/LC_MESSAGES/django.po +++ b/django/conf/locale/it/LC_MESSAGES/django.po @@ -1,13 +1,12 @@ # translation of django.po to Italiano -# Nicola Larosa , 2008. # Italian translation of Django. # Copyright (C) 2006 the Lawrence Journal-World # This file is distributed under the same license as the Django package. msgid "" msgstr "" -"Project-Id-Version: django\n" +"Project-Id-Version: Django vSVN\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-05-18 18:39+0200\n" +"POT-Creation-Date: 2008-06-02 18:40+0200\n" "PO-Revision-Date: 2008-05-18 19:13+0200\n" "Last-Translator: Nicola Larosa \n" "Language-Team: Italiano\n" @@ -1710,7 +1709,7 @@ msgstr "Inserire un codice postale nel formato NNNN o ANNNNAAA." #: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23 #: contrib/localflavor/pe/forms.py:51 msgid "This field requires only numbers." -msgstr "In questo campo possono essere solo presenti numeri." +msgstr "Questo campo può contenere solo numeri." #: contrib/localflavor/ar/forms.py:50 msgid "This field requires 7 or 8 digits." @@ -2308,7 +2307,7 @@ msgstr "Inserire un codice postale valido." #: contrib/localflavor/it/forms.py:43 msgid "Enter a valid Social Security number." -msgstr "Inserire un numero di assistenza sociale valido." +msgstr "Inserire un numero di codice fiscale valido." #: contrib/localflavor/it/forms.py:68 msgid "Enter a valid VAT number." diff --git a/django/conf/locale/sv/LC_MESSAGES/django.mo b/django/conf/locale/sv/LC_MESSAGES/django.mo index 8a6dcb7f8b..acb08754a5 100644 Binary files a/django/conf/locale/sv/LC_MESSAGES/django.mo and b/django/conf/locale/sv/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/sv/LC_MESSAGES/django.po b/django/conf/locale/sv/LC_MESSAGES/django.po index 2154850aed..b6ef3c3a6d 100644 --- a/django/conf/locale/sv/LC_MESSAGES/django.po +++ b/django/conf/locale/sv/LC_MESSAGES/django.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-03-16 16:53+0100\n" -"PO-Revision-Date: 2008-03-02 00:49+0100\n" +"POT-Creation-Date: 2008-05-26 10:58+0200\n" +"PO-Revision-Date: 2008-05-26 11:15+0200\n" "Last-Translator: Ludvig Ericson \n" "Language-Team: Django I18N \n" "MIME-Version: 1.0\n" @@ -17,191 +17,191 @@ msgstr "" "X-Poedit-Language: Swedish\n" "X-Poedit-Country: SWEDEN\n" -#: conf/global_settings.py:39 +#: conf/global_settings.py:43 msgid "Arabic" msgstr "Arabiska" -#: conf/global_settings.py:40 +#: conf/global_settings.py:44 msgid "Bengali" msgstr "Bengaliska" -#: conf/global_settings.py:41 +#: conf/global_settings.py:45 msgid "Bulgarian" msgstr "Bulgariska" -#: conf/global_settings.py:42 +#: conf/global_settings.py:46 msgid "Catalan" msgstr "Katalanska" -#: conf/global_settings.py:43 +#: conf/global_settings.py:47 msgid "Czech" msgstr "Tjeckiska" -#: conf/global_settings.py:44 +#: conf/global_settings.py:48 msgid "Welsh" msgstr "Walesiska" -#: conf/global_settings.py:45 +#: conf/global_settings.py:49 msgid "Danish" msgstr "Danska" -#: conf/global_settings.py:46 +#: conf/global_settings.py:50 msgid "German" msgstr "Tyska" -#: conf/global_settings.py:47 +#: conf/global_settings.py:51 msgid "Greek" msgstr "Grekiska" -#: conf/global_settings.py:48 +#: conf/global_settings.py:52 msgid "English" msgstr "Engelska" -#: conf/global_settings.py:49 +#: conf/global_settings.py:53 msgid "Spanish" msgstr "Spanska" -#: conf/global_settings.py:50 +#: conf/global_settings.py:54 msgid "Argentinean Spanish" msgstr "Argentisk Spanska" -#: conf/global_settings.py:51 +#: conf/global_settings.py:55 msgid "Basque" msgstr "Baskiska" -#: conf/global_settings.py:52 +#: conf/global_settings.py:56 msgid "Persian" msgstr "Persiska" -#: conf/global_settings.py:53 +#: conf/global_settings.py:57 msgid "Finnish" msgstr "Finska" -#: conf/global_settings.py:54 +#: conf/global_settings.py:58 msgid "French" msgstr "Franska" -#: conf/global_settings.py:55 +#: conf/global_settings.py:59 msgid "Irish" msgstr "Irländska" -#: conf/global_settings.py:56 +#: conf/global_settings.py:60 msgid "Galician" msgstr "Galisiska" -#: conf/global_settings.py:57 +#: conf/global_settings.py:61 msgid "Hungarian" msgstr "Ungerska" -#: conf/global_settings.py:58 +#: conf/global_settings.py:62 msgid "Hebrew" msgstr "Hebreiska" -#: conf/global_settings.py:59 +#: conf/global_settings.py:63 msgid "Croatian" msgstr "Kroatiska" -#: conf/global_settings.py:60 +#: conf/global_settings.py:64 msgid "Icelandic" msgstr "Isländska" -#: conf/global_settings.py:61 +#: conf/global_settings.py:65 msgid "Italian" msgstr "Italienska" -#: conf/global_settings.py:62 +#: conf/global_settings.py:66 msgid "Japanese" msgstr "Japanska" -#: conf/global_settings.py:63 +#: conf/global_settings.py:67 msgid "Georgian" msgstr "Georgiska" -#: conf/global_settings.py:64 +#: conf/global_settings.py:68 msgid "Korean" msgstr "Koreanska" -#: conf/global_settings.py:65 +#: conf/global_settings.py:69 msgid "Khmer" msgstr "Khmer" -#: conf/global_settings.py:66 +#: conf/global_settings.py:70 msgid "Kannada" msgstr "Kannada" -#: conf/global_settings.py:67 +#: conf/global_settings.py:71 msgid "Latvian" msgstr "Lettiska" -#: conf/global_settings.py:68 +#: conf/global_settings.py:72 msgid "Macedonian" msgstr "Makedonska" -#: conf/global_settings.py:69 +#: conf/global_settings.py:73 msgid "Dutch" msgstr "Holländska" -#: conf/global_settings.py:70 +#: conf/global_settings.py:74 msgid "Norwegian" msgstr "Norska" -#: conf/global_settings.py:71 +#: conf/global_settings.py:75 msgid "Polish" msgstr "Polska" -#: conf/global_settings.py:72 +#: conf/global_settings.py:76 msgid "Portugese" msgstr "Portugisiska" -#: conf/global_settings.py:73 -msgid "Brazilian" -msgstr "Brasilianska" +#: conf/global_settings.py:77 +msgid "Brazilian Portuguese" +msgstr "Brasiliensk portugisiska" -#: conf/global_settings.py:74 +#: conf/global_settings.py:78 msgid "Romanian" msgstr "Rumänska" -#: conf/global_settings.py:75 +#: conf/global_settings.py:79 msgid "Russian" msgstr "Ryska" -#: conf/global_settings.py:76 +#: conf/global_settings.py:80 msgid "Slovak" msgstr "Slovakiska" -#: conf/global_settings.py:77 +#: conf/global_settings.py:81 msgid "Slovenian" msgstr "Slovenska" -#: conf/global_settings.py:78 +#: conf/global_settings.py:82 msgid "Serbian" msgstr "Serbiska" -#: conf/global_settings.py:79 +#: conf/global_settings.py:83 msgid "Swedish" msgstr "Svenska" -#: conf/global_settings.py:80 +#: conf/global_settings.py:84 msgid "Tamil" msgstr "Tamilska" -#: conf/global_settings.py:81 +#: conf/global_settings.py:85 msgid "Telugu" msgstr "Telugu" -#: conf/global_settings.py:82 +#: conf/global_settings.py:86 msgid "Turkish" msgstr "Turkiska" -#: conf/global_settings.py:83 +#: conf/global_settings.py:87 msgid "Ukrainian" msgstr "Ukrainska" -#: conf/global_settings.py:84 +#: conf/global_settings.py:88 msgid "Simplified Chinese" msgstr "Förenklad Kinesiska" -#: conf/global_settings.py:85 +#: conf/global_settings.py:89 msgid "Traditional Chinese" msgstr "Traditionell Kinesiska" @@ -504,8 +504,8 @@ msgid "" "This object doesn't have a change history. It probably wasn't added via this " "admin site." msgstr "" -"Detta objekt har ingen ändringshistorik. Det lades antagligen inte till " -"via denna administrationssida." +"Detta objekt har ingen ändringshistorik. Det lades antagligen inte till via " +"denna administrationssida." #: contrib/admin/templates/admin/pagination.html:10 msgid "Show all" @@ -729,8 +729,7 @@ msgstr "Ditt nya lösenord är: %(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 "" -"Du är välkommen att ändra detta lösenord genom att gå till denna sida:" +msgstr "Du är välkommen att ändra detta lösenord genom att gå till denna sida:" #: contrib/admin/templates/registration/password_reset_email.html:11 msgid "Your username, in case you've forgotten:" @@ -828,15 +827,15 @@ msgstr "" "Det verkar som att din webläsare inte är konfigurerad att acceptera cookies. " "Aktivera cookies, ladda om denna sida och försök igen." -#: contrib/admin/views/decorators.py:90 -msgid "Usernames cannot contain the '@' character." -msgstr "Användarnamn får inte innehålla '@'-tecknet." - -#: contrib/admin/views/decorators.py:92 +#: contrib/admin/views/decorators.py:89 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "Din e-postadress är inte ditt användarnamn. Försök med '%s' istället." +#: contrib/admin/views/decorators.py:93 +msgid "Usernames cannot contain the '@' character." +msgstr "Användarnamn får inte innehålla '@'-tecknet." + #: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50 #: contrib/admin/views/doc.py:52 msgid "tag:" @@ -960,7 +959,7 @@ msgstr "Text" msgid "Time" msgstr "Tid" -#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:7 +#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:8 msgid "URL" msgstr "URL" @@ -1067,7 +1066,7 @@ msgstr "Välj %s" msgid "Select %s to change" msgstr "Välj %s att ändra" -#: contrib/admin/views/main.py:784 +#: contrib/admin/views/main.py:765 msgid "Database error" msgstr "Databasfel" @@ -1186,11 +1185,11 @@ msgstr "aktiv" #: contrib/auth/models.py:137 msgid "" -"Designates whether this user can log into the Django admin. Unselect this " +"Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." msgstr "" -"Anger om användaren kan logga in till Django-adminsidan. Avmarkera denna " -"istället för att ta bort konton." +"Anger om användaren skall betraktas som aktiv. Avmarkera detta istället " +"för att ta bort konton." #: contrib/auth/models.py:138 msgid "superuser status" @@ -1322,8 +1321,8 @@ msgid "" "Check this box if the comment is inappropriate. A \"This comment has been " "removed\" message will be displayed instead." msgstr "" -"Bocka för denna ruta om kommentaren är olämplig. Ett \"Denna " -"kommentar har tagits bort\"-meddelande kommer visas istället." +"Bocka för denna ruta om kommentaren är olämplig. Ett \"Denna kommentar har " +"tagits bort\"-meddelande kommer visas istället." #: contrib/comments/models.py:96 msgid "comments" @@ -1488,13 +1487,13 @@ msgid_plural "" "\n" "%(text)s" msgstr[0] "" -"Denna kommentar postades av en användare som har postat färre än %(count)" -"s kommentar:\n" +"Denna kommentar postades av en användare som har postat färre än %(count)s " +"kommentar:\n" "\n" "%(text)s" msgstr[1] "" -"Denna kommentar postades av en användare som har postat färre än %(count)" -"s kommentarer:\n" +"Denna kommentar postades av en användare som har postat färre än %(count)s " +"kommentarer:\n" "\n" "%(text)s" @@ -1551,80 +1550,92 @@ msgstr "Ogiltigt kommentar-ID" msgid "No voting for yourself" msgstr "Du får inte rösta på dig själv" -#: contrib/contenttypes/models.py:37 +#: contrib/contenttypes/models.py:67 msgid "python model class name" msgstr "python klassnamn för modell" -#: contrib/contenttypes/models.py:40 +#: contrib/contenttypes/models.py:71 msgid "content type" msgstr "innehålls typ" -#: contrib/contenttypes/models.py:41 +#: contrib/contenttypes/models.py:72 msgid "content types" msgstr "innehålls typer" -#: contrib/flatpages/models.py:8 +#: contrib/flatpages/models.py:9 msgid "" "Example: '/about/contact/'. Make sure to have leading and trailing slashes." msgstr "" "Exempel: '/om/kontakt/'. Se till att ha inledande och avslutande snedstreck." -#: contrib/flatpages/models.py:9 +#: contrib/flatpages/models.py:10 msgid "title" msgstr "titel" -#: contrib/flatpages/models.py:10 +#: contrib/flatpages/models.py:11 msgid "content" msgstr "innehåll" -#: contrib/flatpages/models.py:11 +#: contrib/flatpages/models.py:12 msgid "enable comments" msgstr "aktivera kommentarer" -#: contrib/flatpages/models.py:12 +#: contrib/flatpages/models.py:13 msgid "template name" msgstr "mallnamn" -#: contrib/flatpages/models.py:13 +#: contrib/flatpages/models.py:14 msgid "" "Example: 'flatpages/contact_page.html'. If this isn't provided, the system " "will use 'flatpages/default.html'." msgstr "" -"Exempel: 'sidor/kontaktsida.html'. Om detta inte fylls i kommer systemet " -"att använda 'flatpages/default.html'." +"Exempel: 'sidor/kontaktsida.html'. Om detta inte fylls i kommer systemet att " +"använda 'flatpages/default.html'." -#: contrib/flatpages/models.py:14 +#: contrib/flatpages/models.py:15 msgid "registration required" msgstr "registrering krävs" -#: contrib/flatpages/models.py:14 +#: contrib/flatpages/models.py:15 msgid "If this is checked, only logged-in users will be able to view the page." -msgstr "" -"Om detta bockas för kommer endast inloggade användare kunna se sidan." +msgstr "Om detta bockas för kommer endast inloggade användare kunna se sidan." -#: contrib/flatpages/models.py:18 +#: contrib/flatpages/models.py:20 msgid "flat page" msgstr "statisk sida" -#: contrib/flatpages/models.py:19 +#: contrib/flatpages/models.py:21 msgid "flat pages" msgstr "statiska sidor" +#: contrib/flatpages/models.py:27 +msgid "Advanced options" +msgstr "Avancerade inställningar" + +# Setting these as fuzzy because they might not make sense in Swedish. Consider +# the code's usage of them. They turn numbers such as 1 in to 1st, which isn't +# how we do it in Swedish, we do it by textualizing the number: first, första. +# For the time being, we'll leave these as fuzzy, IMO. // toxik + #: contrib/humanize/templatetags/humanize.py:19 +#,fuzzy msgid "th" -msgstr "" +msgstr ":a" #: contrib/humanize/templatetags/humanize.py:19 +#,fuzzy msgid "st" -msgstr "" +msgstr ":a" #: contrib/humanize/templatetags/humanize.py:19 +#,fuzzy msgid "nd" -msgstr "" +msgstr ":e" #: contrib/humanize/templatetags/humanize.py:19 +#,fuzzy msgid "rd" -msgstr "" +msgstr ":e" #: contrib/humanize/templatetags/humanize.py:51 #, python-format @@ -3551,8 +3562,7 @@ msgstr "webbplatser" #: core/validators.py:72 msgid "This value must contain only letters, numbers and underscores." -msgstr "" -"Detta värde får endast innehålla bokstäver, siffror och understreck." +msgstr "Detta värde får endast innehålla bokstäver, siffror och understreck." #: core/validators.py:76 msgid "" @@ -3600,7 +3610,7 @@ msgstr "Icke-numeriska tecken är inte tillåtna här." msgid "This value can't be comprised solely of digits." msgstr "Detta värde kan inte enbart bestå av siffror." -#: core/validators.py:128 newforms/fields.py:151 +#: core/validators.py:128 newforms/fields.py:152 msgid "Enter a whole number." msgstr "Fyll i ett heltal." @@ -3617,7 +3627,7 @@ msgstr "Årtal måste vara 1900 eller senare." msgid "Invalid date: %s" msgstr "Ogiltigt datum: %s" -#: core/validators.py:156 db/models/fields/__init__.py:522 +#: core/validators.py:156 db/models/fields/__init__.py:548 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Fyll i ett giltigt datum med formatet ÅÅÅÅ-MM-DD." @@ -3625,20 +3635,20 @@ msgstr "Fyll i ett giltigt datum med formatet ÅÅÅÅ-MM-DD." msgid "Enter a valid time in HH:MM format." msgstr "Fyll i ett giltigt klockslag med formatet TT:MM." -#: core/validators.py:165 db/models/fields/__init__.py:599 +#: core/validators.py:165 db/models/fields/__init__.py:625 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Fyll i en giltig tidpunkt med formatet ÅÅÅÅ-MM-DD TT:MM." -#: core/validators.py:170 newforms/fields.py:402 +#: core/validators.py:170 newforms/fields.py:403 msgid "Enter a valid e-mail address." msgstr "Fyll i en giltig e-postadress." -#: core/validators.py:182 core/validators.py:474 newforms/fields.py:432 +#: core/validators.py:182 core/validators.py:474 newforms/fields.py:433 #: oldforms/__init__.py:687 msgid "No file was submitted. Check the encoding type on the form." msgstr "Ingen fil skickades. Kontrollera kodningnstypen i formuläret." -#: core/validators.py:193 newforms/fields.py:458 +#: core/validators.py:193 newforms/fields.py:459 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -3874,57 +3884,57 @@ msgstr "" msgid "%(object)s with this %(type)s already exists for the given %(field)s." msgstr "%(object)s med typen %(type)s finns redan för %(field)s." -#: db/models/fields/__init__.py:52 +#: db/models/fields/__init__.py:54 #, python-format msgid "%(optname)s with this %(fieldname)s already exists." msgstr "%(optname)s med detta %(fieldname)s finns redan." -#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:322 -#: db/models/fields/__init__.py:754 db/models/fields/__init__.py:765 -#: newforms/fields.py:45 oldforms/__init__.py:374 +#: db/models/fields/__init__.py:179 db/models/fields/__init__.py:348 +#: db/models/fields/__init__.py:780 db/models/fields/__init__.py:791 +#: newforms/fields.py:46 oldforms/__init__.py:374 msgid "This field is required." msgstr "Detta fält måste fyllas i." -#: db/models/fields/__init__.py:422 +#: db/models/fields/__init__.py:448 msgid "This value must be an integer." msgstr "Detta värde måste vara ett heltal." -#: db/models/fields/__init__.py:461 +#: db/models/fields/__init__.py:487 msgid "This value must be either True or False." msgstr "Detta värde måste vara antingen True eller False." -#: db/models/fields/__init__.py:485 +#: db/models/fields/__init__.py:511 msgid "This field cannot be null." msgstr "Detta fält får inte vara null." -#: db/models/fields/__init__.py:663 +#: db/models/fields/__init__.py:689 msgid "This value must be a decimal number." msgstr "Detta värde måste vara ett decimaltal." -#: db/models/fields/__init__.py:774 +#: db/models/fields/__init__.py:800 msgid "Enter a valid filename." msgstr "Fyll i ett giltigt filnamn." -#: db/models/fields/__init__.py:945 +#: db/models/fields/__init__.py:981 msgid "This value must be either None, True or False." msgstr "Detta värde måste vara antingen None, True eller False." -#: db/models/fields/related.py:93 +#: db/models/fields/related.py:94 #, python-format msgid "Please enter a valid %s." msgstr "Var god fyll i giltig %s." -#: db/models/fields/related.py:694 +#: db/models/fields/related.py:721 msgid "Separate multiple IDs with commas." msgstr "Separera flera ID-nummer med kommatecken." -#: db/models/fields/related.py:696 +#: db/models/fields/related.py:723 msgid "" "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" "Håll ner \"Control\" eller \"Command\" på en Mac för att välja fler än en." -#: db/models/fields/related.py:743 +#: db/models/fields/related.py:770 #, python-format msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid_plural "" @@ -3934,101 +3944,101 @@ msgstr[0] "" msgstr[1] "" "Var god och fyll giltiga %(self)s ID-nummer. Värdena %(value)r är ogiltiga." -#: newforms/fields.py:46 +#: newforms/fields.py:47 msgid "Enter a valid value." msgstr "Fyll i ett giltigt värde." -#: newforms/fields.py:123 +#: newforms/fields.py:124 #, python-format msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." msgstr "" "Kontrollera att detta värde har högst %(max)d tecken (det har %(length)d)." -#: newforms/fields.py:124 +#: newforms/fields.py:125 #, python-format msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." msgstr "" "Kontrollera att detta värde har minst %(min)d tecken (det har %(length)d)." -#: newforms/fields.py:152 newforms/fields.py:181 newforms/fields.py:210 +#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211 #, python-format msgid "Ensure this value is less than or equal to %s." msgstr "Kontrollera att detta värde är mindre eller lika med %s." -#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211 +#: newforms/fields.py:154 newforms/fields.py:183 newforms/fields.py:212 #, python-format msgid "Ensure this value is greater than or equal to %s." msgstr "Kontrollera att detta värde är mer eller lika med %s." -#: newforms/fields.py:180 newforms/fields.py:209 +#: newforms/fields.py:181 newforms/fields.py:210 msgid "Enter a number." msgstr "Fyll i ett tal." -#: newforms/fields.py:212 +#: newforms/fields.py:213 #, python-format msgid "Ensure that there are no more than %s digits in total." msgstr "Kontrollera att det inte finns mer än totalt %s siffror." -#: newforms/fields.py:213 +#: newforms/fields.py:214 #, python-format msgid "Ensure that there are no more than %s decimal places." msgstr "Kontrollera att det inte finns mer än %s decimaler." -#: newforms/fields.py:214 +#: newforms/fields.py:215 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Kontrollera att det inte finns mer än %s siffror före decimaltecknet." -#: newforms/fields.py:262 newforms/fields.py:723 +#: newforms/fields.py:263 newforms/fields.py:751 msgid "Enter a valid date." msgstr "Fyll i ett giltigt datum." -#: newforms/fields.py:295 newforms/fields.py:724 +#: newforms/fields.py:296 newforms/fields.py:752 msgid "Enter a valid time." msgstr "Fyll i en giltig tid." -#: newforms/fields.py:334 +#: newforms/fields.py:335 msgid "Enter a valid date/time." msgstr "Fyll i ett giltigt datum/tid." -#: newforms/fields.py:433 +#: newforms/fields.py:434 msgid "No file was submitted." msgstr "Ingen fil skickades." -#: newforms/fields.py:434 oldforms/__init__.py:689 +#: newforms/fields.py:435 oldforms/__init__.py:689 msgid "The submitted file is empty." msgstr "Den skickade filen är tom." -#: newforms/fields.py:496 +#: newforms/fields.py:497 msgid "Enter a valid URL." msgstr "Fyll i en giltig URL." -#: newforms/fields.py:497 +#: newforms/fields.py:498 msgid "This URL appears to be a broken link." msgstr "Denna URL verkar vara en trasig länk." -#: newforms/fields.py:559 newforms/models.py:300 +#: newforms/fields.py:560 newforms/models.py:299 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "" "Välj ett giltigt alternativ. Det valet finns inte bland tillgängliga " "alternativ." -#: newforms/fields.py:598 +#: newforms/fields.py:599 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "" "Välj ett giltigt alternativ. %(value)s finns inte bland tillgängliga " "alternativ." -#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:360 +#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:371 msgid "Enter a list of values." msgstr "Fyll i en lista med värden." -#: newforms/fields.py:752 +#: newforms/fields.py:780 msgid "Enter a valid IPv4 address." msgstr "Fyll i en giltig IPv4 adress." -#: newforms/models.py:361 +#: newforms/models.py:372 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "" @@ -4062,28 +4072,28 @@ msgstr "Fyll i ett positivt tal." msgid "Enter a whole number between 0 and 32,767." msgstr "Fyll i ett heltal mellan 0 och 32767." -#: template/defaultfilters.py:695 +#: template/defaultfilters.py:698 msgid "yes,no,maybe" msgstr "ja,nej,kanske" -#: template/defaultfilters.py:726 +#: template/defaultfilters.py:729 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" msgstr[0] "%(size)d byte" msgstr[1] "%(size)d byte" -#: template/defaultfilters.py:728 +#: template/defaultfilters.py:731 #, python-format msgid "%.1f KB" msgstr "%.1f KB" -#: template/defaultfilters.py:730 +#: template/defaultfilters.py:733 #, python-format msgid "%.1f MB" msgstr "%.1f MB" -#: template/defaultfilters.py:731 +#: template/defaultfilters.py:734 #, python-format msgid "%.1f GB" msgstr "%.1f GB" @@ -4381,5 +4391,8 @@ msgstr "%(verbose_name)s uppdaterades." msgid "The %(verbose_name)s was deleted." msgstr "%(verbose_name)s togs bort." +#~ msgid "Brazilian" +#~ msgstr "Brasilianska" + #~ msgid "Gaeilge" #~ msgstr "Gaeliska" diff --git a/django/core/management/commands/syncdb.py b/django/core/management/commands/syncdb.py index beb82f9d2e..ae92c053ca 100644 --- a/django/core/management/commands/syncdb.py +++ b/django/core/management/commands/syncdb.py @@ -21,7 +21,7 @@ class Command(NoArgsCommand): def handle_noargs(self, **options): from django.db import connection, transaction, models from django.conf import settings - from django.core.management.sql import table_list, installed_models, sql_model_create, sql_for_pending_references, many_to_many_sql_for_model, custom_sql_for_model, sql_indexes_for_model, emit_post_sync_signal + from django.core.management.sql import table_names, installed_models, sql_model_create, sql_for_pending_references, many_to_many_sql_for_model, custom_sql_for_model, sql_indexes_for_model, emit_post_sync_signal verbosity = int(options.get('verbosity', 1)) interactive = options.get('interactive') @@ -45,7 +45,7 @@ class Command(NoArgsCommand): table_name_converter = lambda x: x # Get a list of all existing database tables, so we know what needs to # be added. - tables = [table_name_converter(name) for name in table_list()] + tables = [table_name_converter(name) for name in table_names()] # Get a list of already installed *models* so that references work right. seen_models = installed_models(tables) diff --git a/django/core/management/sql.py b/django/core/management/sql.py index dcfe60e95b..e7a54acb6f 100644 --- a/django/core/management/sql.py +++ b/django/core/management/sql.py @@ -7,13 +7,13 @@ try: except NameError: from sets import Set as set # Python 2.3 fallback -def table_list(): +def table_names(): "Returns a list of all table names that exist in the database." from django.db import connection, get_introspection_module cursor = connection.cursor() - return get_introspection_module().get_table_list(cursor) + return set(get_introspection_module().get_table_list(cursor)) -def django_table_list(only_existing=False): +def django_table_names(only_existing=False): """ Returns a list of all table names that have associated Django models and are in INSTALLED_APPS. @@ -22,14 +22,13 @@ def django_table_list(only_existing=False): that actually exist in the database. """ from django.db import models - tables = [] + tables = set() for app in models.get_apps(): for model in models.get_models(app): - tables.append(model._meta.db_table) - tables.extend([f.m2m_db_table() for f in model._meta.local_many_to_many]) + tables.add(model._meta.db_table) + tables.update([f.m2m_db_table() for f in model._meta.local_many_to_many]) if only_existing: - existing = table_list() - tables = [t for t in tables if t in existing] + tables = [t for t in tables if t in table_names()] return tables def installed_models(table_list): @@ -82,7 +81,7 @@ def sql_create(app, style): # we can be conservative). app_models = models.get_models(app) final_output = [] - known_models = set([model for model in installed_models(table_list()) if model not in app_models]) + known_models = set([model for model in installed_models(table_names()) if model not in app_models]) pending_references = {} for model in app_models: @@ -214,9 +213,9 @@ def sql_flush(style, only_django=False): """ from django.db import connection if only_django: - tables = django_table_list() + tables = django_table_names() else: - tables = table_list() + tables = table_names() statements = connection.ops.sql_flush(style, tables, sequence_list()) return statements diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index 615335c30f..3253ea18e6 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -1,6 +1,6 @@ from django.db import connection, transaction from django.db.models import signals, get_model -from django.db.models.fields import AutoField, Field, IntegerField, PositiveIntegerField, PositiveSmallIntegerField, get_ul_class +from django.db.models.fields import AutoField, Field, IntegerField, PositiveIntegerField, PositiveSmallIntegerField, get_ul_class, FieldDoesNotExist from django.db.models.related import RelatedObject from django.db.models.query_utils import QueryWrapper from django.utils.text import capfirst @@ -165,7 +165,7 @@ class SingleRelatedObjectDescriptor(object): # SingleRelatedObjectDescriptor instance. def __init__(self, related): self.related = related - self.cache_name = '_%s_cache' % related.field.name + self.cache_name = '_%s_cache' % related.get_accessor_name() def __get__(self, instance, instance_type=None): if instance is None: diff --git a/django/db/transaction.py b/django/db/transaction.py index bb90713525..c0c3779f6a 100644 --- a/django/db/transaction.py +++ b/django/db/transaction.py @@ -16,6 +16,10 @@ try: import thread except ImportError: import dummy_thread as thread +try: + from functools import wraps +except ImportError: + from django.utils.functional import wraps # Python 2.3, 2.4 fallback. from django.db import connection from django.conf import settings @@ -177,7 +181,7 @@ def autocommit(func): return func(*args, **kw) finally: leave_transaction_management() - return _autocommit + return wraps(func)(_autocommit) def commit_on_success(func): """ @@ -202,7 +206,7 @@ def commit_on_success(func): return res finally: leave_transaction_management() - return _commit_on_success + return wraps(func)(_commit_on_success) def commit_manually(func): """ @@ -219,4 +223,4 @@ def commit_manually(func): finally: leave_transaction_management() - return _commit_manually + return wraps(func)(_commit_manually) diff --git a/django/template/defaulttags.py b/django/template/defaulttags.py index e5a8e6620b..cf3b35b4cc 100644 --- a/django/template/defaulttags.py +++ b/django/template/defaulttags.py @@ -515,7 +515,7 @@ debug = register.tag(debug) #@register.tag(name="filter") def do_filter(parser, token): """ - Filters the contents of the blog through variable filters. + Filters the contents of the block through variable filters. Filters can also be piped through each other, and they can have arguments -- just like in variable syntax. diff --git a/django/template/loader.py b/django/template/loader.py index 03e6f8d49d..1d7d945ef7 100644 --- a/django/template/loader.py +++ b/django/template/loader.py @@ -46,7 +46,7 @@ def find_template_source(name, dirs=None): # circular import errors. See Django ticket #1292. global template_source_loaders if template_source_loaders is None: - template_source_loaders = [] + loaders = [] for path in settings.TEMPLATE_LOADERS: i = path.rfind('.') module, attr = path[:i], path[i+1:] @@ -62,7 +62,8 @@ def find_template_source(name, dirs=None): import warnings warnings.warn("Your TEMPLATE_LOADERS setting includes %r, but your Python installation doesn't support that type of template loading. Consider removing that line from TEMPLATE_LOADERS." % path) else: - template_source_loaders.append(func) + loaders.append(func) + template_source_loaders = tuple(loaders) for loader in template_source_loaders: try: source, display_name = loader(name, dirs) diff --git a/django/template/loaders/eggs.py b/django/template/loaders/eggs.py index 0c68153917..946c2b4759 100644 --- a/django/template/loaders/eggs.py +++ b/django/template/loaders/eggs.py @@ -18,7 +18,7 @@ def load_template_source(template_name, template_dirs=None): pkg_name = 'templates/' + template_name for app in settings.INSTALLED_APPS: try: - return (resource_string(app, pkg_name), 'egg:%s:%s ' % (app, pkg_name)).decode(settings.FILE_CHARSET) + return (resource_string(app, pkg_name).decode(settings.FILE_CHARSET), 'egg:%s:%s' % (app, pkg_name)) except: pass raise TemplateDoesNotExist, template_name diff --git a/docs/db-api.txt b/docs/db-api.txt index 405ed87cef..a15c45d37b 100644 --- a/docs/db-api.txt +++ b/docs/db-api.txt @@ -1061,7 +1061,12 @@ they query the database each time they're called. Returns the object matching the given lookup parameters, which should be in the format described in `Field lookups`_. -``get()`` raises ``AssertionError`` if more than one object was found. +``get()`` raises ``MultipleObjectsReturned`` if more than one object was found. +The ``MultipleObjectsReturned`` exception is an attribute of the model class. +For example, the following will raise ``MultipleObjectsReturned`` if there +are more than one authors with the name of 'John':: + + Author.objects.get(name='John') # raises Author.MultipleObjectsReturned ``get()`` raises a ``DoesNotExist`` exception if an object wasn't found for the given parameters. The ``DoesNotExist`` exception is an attribute of the model diff --git a/docs/flatpages.txt b/docs/flatpages.txt index b6fa8e035f..a538217642 100644 --- a/docs/flatpages.txt +++ b/docs/flatpages.txt @@ -66,6 +66,17 @@ resort. For more on middleware, read the `middleware docs`_. +.. admonition:: Ensure that your 404 template works + + Note that the ``FlatpageFallbackMiddleware`` only steps in once + another view has successfully produced a 404 response. If another + view or middleware class attempts to produce a 404 but ends up + raising an exception instead (such as a ``TemplateDoesNotExist`` + exception if your site does not have an appropriate template to + use for HTTP 404 responses), the response will become an HTTP 500 + ("Internal Server Error") and the ``FlatpageFallbackMiddleware`` + will not attempt to serve a flat page. + .. _SITE_ID: ../settings/#site-id .. _RequestContext: ../templates_python/#subclassing-context-djangocontext .. _middleware docs: ../middleware/ diff --git a/docs/serialization.txt b/docs/serialization.txt index e901410f1c..8a672d8b8a 100644 --- a/docs/serialization.txt +++ b/docs/serialization.txt @@ -112,7 +112,7 @@ Django "ships" with a few included serializers: strings, etc.). Not really all that useful on its own, but used as a base for other serializers. - ``yaml`` Serializes to YAML (Yet Another Markup Lanuage). This + ``yaml`` Serializes to YAML (YAML Ain't a Markup Language). This serializer is only available if PyYAML_ is installed. ========== ============================================================== diff --git a/docs/url_dispatch.txt b/docs/url_dispatch.txt index 28f15289a9..7d67cd5b53 100644 --- a/docs/url_dispatch.txt +++ b/docs/url_dispatch.txt @@ -157,10 +157,10 @@ The URLconf searches against the requested URL, as a normal Python string. This does not include GET or POST parameters, or the domain name. For example, in a request to ``http://www.example.com/myapp/``, the URLconf -will look for ``/myapp/``. +will look for ``myapp/``. In a request to ``http://www.example.com/myapp/?page=3``, the URLconf will look -for ``/myapp/``. +for ``myapp/``. The URLconf doesn't look at the request method. In other words, all request methods -- ``POST``, ``GET``, ``HEAD``, etc. -- will be routed to the same diff --git a/tests/regressiontests/one_to_one_regress/models.py b/tests/regressiontests/one_to_one_regress/models.py index c5ffd3fb3c..c68fdfc780 100644 --- a/tests/regressiontests/one_to_one_regress/models.py +++ b/tests/regressiontests/one_to_one_regress/models.py @@ -15,6 +15,13 @@ class Restaurant(models.Model): def __unicode__(self): return u"%s the restaurant" % self.place.name +class Bar(models.Model): + place = models.OneToOneField(Place) + serves_cocktails = models.BooleanField() + + def __unicode__(self): + return u"%s the bar" % self.place.name + class Favorites(models.Model): name = models.CharField(max_length = 50) restaurants = models.ManyToManyField(Restaurant) @@ -34,4 +41,13 @@ __test__ = {'API_TESTS':""" >>> f.restaurants = [r] >>> f.restaurants.all() [] + +# Regression test for #7173: Check that the name of the cache for the +# reverse object is correct. +>>> b = Bar(place=p1, serves_cocktails=False) +>>> b.save() +>>> p1.restaurant + +>>> p1.bar + """} diff --git a/tests/regressiontests/templates/loaders.py b/tests/regressiontests/templates/loaders.py new file mode 100644 index 0000000000..82e3c622d1 --- /dev/null +++ b/tests/regressiontests/templates/loaders.py @@ -0,0 +1,92 @@ +# -*- coding: utf-8 -*- +""" +Test cases for the template loaders +""" + +from django.conf import settings + +if __name__ == '__main__': + settings.configure() + +import unittest +import sys +import pkg_resources +import imp +import StringIO + +from django.template import TemplateDoesNotExist +from django.template.loaders.eggs import load_template_source as lts_egg + +#Mock classes and objects for pkg_resources functions +class MockProvider(pkg_resources.NullProvider): + def __init__(self, module): + pkg_resources.NullProvider.__init__(self, module) + self.module = module + + def _has(self, path): + return path in self.module._resources + + def _isdir(self,path): + return False + + def get_resource_stream(self, manager, resource_name): + return self.module._resources[resource_name] + + def _get(self, path): + return self.module._resources[path].read() + +class MockLoader(object): pass + +def create_egg(name, resources): + """ + Creates a mock egg with a list of resources + + name: The name of the module + resources: A dictionary of resources. Keys are the names and values the the data. + """ + egg = imp.new_module(name) + egg.__loader__ = MockLoader() + egg._resources = resources + sys.modules[name] = egg + + +class EggLoader(unittest.TestCase): + def setUp(self): + pkg_resources._provider_factories[MockLoader] = MockProvider + + self.empty_egg = create_egg("egg_empty", {}) + self.egg_1 = create_egg("egg_1", { + 'templates/y.html' : StringIO.StringIO("y"), + 'templates/x.txt' : StringIO.StringIO("x"), + }) + self._old_installed_apps = settings.INSTALLED_APPS + settings.INSTALLED_APPS = [] + + def tearDown(self): + settings.INSTALLED_APPS = self._old_installed_apps + + def test_empty(self): + "Loading any template on an empty egg should fail" + settings.INSTALLED_APPS = ['egg_empty'] + self.assertRaises(TemplateDoesNotExist, lts_egg, "not-existing.html") + + def test_non_existing(self): + "Template loading fails if the template is not in the egg" + settings.INSTALLED_APPS = ['egg_1'] + self.assertRaises(TemplateDoesNotExist, lts_egg, "not-existing.html") + + def test_existing(self): + "A template can be loaded from an egg" + settings.INSTALLED_APPS = ['egg_1'] + contents, template_name = lts_egg("y.html") + self.assertEqual(contents, "y") + self.assertEqual(template_name, "egg:egg_1:templates/y.html") + + def test_not_installed(self): + "Loading an existent template from an egg not included in INSTALLED_APPS should fail" + settings.INSTALLED_APPS = [] + self.assertRaises(TemplateDoesNotExist, lts_egg, "y.html") + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/regressiontests/templates/tests.py b/tests/regressiontests/templates/tests.py index aef6f504b1..4effea55de 100644 --- a/tests/regressiontests/templates/tests.py +++ b/tests/regressiontests/templates/tests.py @@ -19,12 +19,15 @@ from django.utils.tzinfo import LocalTimezone from unicode import unicode_tests from context import context_tests + +from loaders import * + import filters # Some other tests we would like to run __test__ = { - 'unicode': unicode_tests, - 'context': context_tests, + 'unicode': unicode_tests, + 'context': context_tests } #################################