From 4efe9675c5fd5a030737d957b3588184f06117fe Mon Sep 17 00:00:00 2001 From: Malcolm Tredinnick Date: Tue, 1 Apr 2008 00:28:15 +0000 Subject: [PATCH] queryset-refactor: Merged from trunk up to [7388]. git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7396 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/conf/global_settings.py | 4 +- django/conf/locale/ca/LC_MESSAGES/django.mo | Bin 66924 -> 67065 bytes django/conf/locale/ca/LC_MESSAGES/django.po | 1156 ++++++----- django/conf/locale/ca/LC_MESSAGES/djangojs.mo | Bin 1681 -> 1684 bytes django/conf/locale/ca/LC_MESSAGES/djangojs.po | 16 +- django/conf/locale/es/LC_MESSAGES/django.mo | Bin 61344 -> 62789 bytes django/conf/locale/es/LC_MESSAGES/django.po | 1743 +++++++++++------ django/conf/locale/es/LC_MESSAGES/djangojs.mo | Bin 1546 -> 1622 bytes django/conf/locale/es/LC_MESSAGES/djangojs.po | 12 +- django/conf/locale/pl/LC_MESSAGES/django.mo | Bin 66225 -> 66091 bytes django/conf/locale/pl/LC_MESSAGES/django.po | 303 +-- .../contrib/admin/templatetags/admin_list.py | 12 +- django/contrib/admin/views/main.py | 8 +- django/contrib/flatpages/models.py | 5 +- django/core/mail.py | 84 +- django/core/paginator.py | 2 +- django/db/backends/ado_mssql/__init__.py | 0 django/db/backends/ado_mssql/base.py | 112 -- django/db/backends/ado_mssql/client.py | 2 - django/db/backends/ado_mssql/creation.py | 25 - django/db/backends/ado_mssql/introspection.py | 13 - django/db/backends/mysql/base.py | 3 +- django/db/models/fields/related.py | 2 +- django/views/generic/list_detail.py | 4 +- django/views/i18n.py | 13 +- docs/Makefile | 68 + docs/authentication.txt | 19 +- docs/conf.py | 132 ++ docs/db-api.txt | 3 - docs/i18n.txt | 55 +- docs/index.txt | 128 ++ docs/install.txt | 8 +- docs/modelforms.txt | 2 +- docs/newforms.txt | 19 +- docs/request_response.txt | 27 +- docs/settings.txt | 2 +- docs/syndication_feeds.txt | 2 +- docs/testing.txt | 2 +- docs/tutorial04.txt | 15 +- docs/url_dispatch.txt | 2 +- tests/modeltests/or_lookups/models.py | 2 +- tests/regressiontests/forms/fields.py | 20 +- tests/regressiontests/model_regress/models.py | 17 + 43 files changed, 2561 insertions(+), 1481 deletions(-) delete mode 100644 django/db/backends/ado_mssql/__init__.py delete mode 100644 django/db/backends/ado_mssql/base.py delete mode 100644 django/db/backends/ado_mssql/client.py delete mode 100644 django/db/backends/ado_mssql/creation.py delete mode 100644 django/db/backends/ado_mssql/introspection.py create mode 100644 docs/Makefile create mode 100644 docs/conf.py create mode 100644 docs/index.txt diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 3917d40943..84b3f5796e 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -114,7 +114,7 @@ SERVER_EMAIL = 'root@localhost' SEND_BROKEN_LINK_EMAILS = False # Database connection info. -DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'. +DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. DATABASE_NAME = '' # Or path to database file if using sqlite3. DATABASE_USER = '' # Not used with sqlite3. DATABASE_PASSWORD = '' # Not used with sqlite3. @@ -287,7 +287,7 @@ SESSION_COOKIE_PATH = '/' # The path of the sessio SESSION_SAVE_EVERY_REQUEST = False # Whether to save the session data on every request. SESSION_EXPIRE_AT_BROWSER_CLOSE = False # Whether sessions expire when a user closes his browser. SESSION_ENGINE = 'django.contrib.sessions.backends.db' # The module to store session data -SESSION_FILE_PATH = None # Directory to store session files if using the file session module. If set to None the backend will use a sensible default. +SESSION_FILE_PATH = None # Directory to store session files if using the file session module. If None, the backend will use a sensible default. ######### # CACHE # diff --git a/django/conf/locale/ca/LC_MESSAGES/django.mo b/django/conf/locale/ca/LC_MESSAGES/django.mo index 436f3609ce9a29340cd042d74af6296e38c9e5e3..7be507d151532ac9c6f945466e6816764b3daa1e 100644 GIT binary patch delta 22947 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\n" -"Language-Team: \n" +"POT-Creation-Date: 2007-02-15 01:00+0200\n" +"PO-Revision-Date: 2008-03-29 01:37+0100\n" +"Last-Translator: Django Catalan Group \n" +"Language-Team: Catalan \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -24,7 +24,7 @@ msgstr "Bengalí" #: conf/global_settings.py:41 msgid "Bulgarian" -msgstr "Bulgar" +msgstr "Búlgar" #: conf/global_settings.py:42 msgid "Catalan" @@ -63,134 +63,143 @@ msgid "Argentinean Spanish" msgstr "Castellà Argentí" #: conf/global_settings.py:51 +#, fuzzy +msgid "Basque" +msgstr "Euskadi" + +#: conf/global_settings.py:52 msgid "Persian" msgstr "Persa" -#: conf/global_settings.py:52 +#: conf/global_settings.py:53 msgid "Finnish" msgstr "Finlandès" -#: conf/global_settings.py:53 +#: conf/global_settings.py:54 msgid "French" msgstr "Francès" -#: conf/global_settings.py:54 -msgid "Gaeilge" -msgstr "Gaeilge" - #: conf/global_settings.py:55 -msgid "Galician" -msgstr "Galleg" +msgid "Irish" +msgstr "Irlandès" #: conf/global_settings.py:56 +msgid "Galician" +msgstr "Gallec" + +#: conf/global_settings.py:57 msgid "Hungarian" msgstr "Húngar" -#: conf/global_settings.py:57 +#: conf/global_settings.py:58 msgid "Hebrew" msgstr "Hebreu" -#: conf/global_settings.py:58 +#: conf/global_settings.py:59 msgid "Croatian" msgstr "Croat" -#: conf/global_settings.py:59 +#: conf/global_settings.py:60 msgid "Icelandic" msgstr "Islandès" -#: conf/global_settings.py:60 +#: conf/global_settings.py:61 msgid "Italian" msgstr "Italià" -#: conf/global_settings.py:61 +#: conf/global_settings.py:62 msgid "Japanese" msgstr "Japonès" -#: conf/global_settings.py:62 +#: conf/global_settings.py:63 +msgid "Georgian" +msgstr "Georgià" + +#: conf/global_settings.py:64 msgid "Korean" msgstr "Coreà" -#: conf/global_settings.py:63 +#: conf/global_settings.py:65 msgid "Khmer" msgstr "Khmer" -#: conf/global_settings.py:64 +#: conf/global_settings.py:66 msgid "Kannada" msgstr "Canès" -#: conf/global_settings.py:65 +#: conf/global_settings.py:67 msgid "Latvian" msgstr "Letó" -#: conf/global_settings.py:66 +#: conf/global_settings.py:68 msgid "Macedonian" msgstr "Macedoni" -#: conf/global_settings.py:67 +#: conf/global_settings.py:69 msgid "Dutch" msgstr "Holandès" -#: conf/global_settings.py:68 +#: conf/global_settings.py:70 msgid "Norwegian" msgstr "Norueg" -#: conf/global_settings.py:69 +#: conf/global_settings.py:71 msgid "Polish" msgstr "Polac" -#: conf/global_settings.py:70 +#: conf/global_settings.py:72 msgid "Portugese" msgstr "Portuguès" -#: conf/global_settings.py:71 +#: conf/global_settings.py:73 msgid "Brazilian" msgstr "Brasileny" -#: conf/global_settings.py:72 +#: conf/global_settings.py:74 msgid "Romanian" msgstr "Rumanès" -#: conf/global_settings.py:73 +#: conf/global_settings.py:75 msgid "Russian" msgstr "Rús" -#: conf/global_settings.py:74 +#: conf/global_settings.py:76 msgid "Slovak" msgstr "Eslovac" -#: conf/global_settings.py:75 +#: conf/global_settings.py:77 msgid "Slovenian" msgstr "Esloveni" -#: conf/global_settings.py:76 +#: conf/global_settings.py:78 msgid "Serbian" msgstr "Serbi" -#: conf/global_settings.py:77 +#: conf/global_settings.py:79 msgid "Swedish" msgstr "Suec" -#: conf/global_settings.py:78 +#: conf/global_settings.py:80 msgid "Tamil" msgstr "Tàmil" -#: conf/global_settings.py:79 +#: conf/global_settings.py:81 msgid "Telugu" msgstr "Telugu" -#: conf/global_settings.py:80 +#: conf/global_settings.py:82 msgid "Turkish" msgstr "Turc" -#: conf/global_settings.py:81 +#: conf/global_settings.py:83 msgid "Ukrainian" msgstr "Ucranià" -#: conf/global_settings.py:82 +#: conf/global_settings.py:84 msgid "Simplified Chinese" msgstr "Xinés simplificat" -#: conf/global_settings.py:83 +#: conf/global_settings.py:85 msgid "Traditional Chinese" msgstr "Xinés tradicional" @@ -203,10 +212,8 @@ msgstr "" "

Per %s:

\n" "
    \n" -#: contrib/admin/filterspecs.py:74 -#: contrib/admin/filterspecs.py:92 -#: contrib/admin/filterspecs.py:147 -#: contrib/admin/filterspecs.py:173 +#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92 +#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173 msgid "All" msgstr "Tots" @@ -230,20 +237,17 @@ msgstr "Aquest mes" msgid "This year" msgstr "Aquest any" -#: contrib/admin/filterspecs.py:147 -#: newforms/widgets.py:231 +#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231 #: oldforms/__init__.py:592 msgid "Yes" msgstr "Si" -#: contrib/admin/filterspecs.py:147 -#: newforms/widgets.py:231 +#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231 #: oldforms/__init__.py:592 msgid "No" msgstr "No" -#: contrib/admin/filterspecs.py:154 -#: newforms/widgets.py:231 +#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231 #: oldforms/__init__.py:592 msgid "Unknown" msgstr "Desconegut" @@ -283,7 +287,7 @@ msgstr "No s'ha pogut trobar la pàgina" #: contrib/admin/templates/admin/404.html:10 msgid "We're sorry, but the requested page could not be found." -msgstr "Ho sentim, però no s'ha pogut trobar la pàgina solicitada" +msgstr "Ho sentim, però no s'ha pogut trobar la pàgina sol·licitada" #: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/base.html:37 @@ -315,8 +319,12 @@ msgid "Server Error (500)" msgstr "Error del servidor (500)" #: contrib/admin/templates/admin/500.html:10 -msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience." -msgstr "Hi ha hagut un error. S'ha informat als administradors del lloc per correu electrònic y hauria d'arreglar-se en breu. Gràcies per la seva paciència." +msgid "" +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." +msgstr "" +"Ha ocorregut un error. S'ha informat als administradors del lloc per correu " +"electrònic y hauria d'arreglar-se en breu. Gràcies per la vostra paciència." #: contrib/admin/templates/admin/base.html:26 msgid "Welcome," @@ -344,7 +352,7 @@ msgstr "Lloc administratiu de Django" #: contrib/admin/templates/admin/base_site.html:7 msgid "Django administration" -msgstr "Adminisitració de Django" +msgstr "Administració de Django" #: contrib/admin/templates/admin/change_form.html:14 #: contrib/admin/templates/admin/index.html:28 @@ -364,8 +372,8 @@ msgstr "Veure en el lloc" #: contrib/admin/templates/admin/auth/user/change_password.html:23 msgid "Please correct the error below." msgid_plural "Please correct the errors below." -msgstr[0] "Si us plau, corregeixi l'error mostrat abaix." -msgstr[1] "Si us plau, corregeixi els errors mostrats abaix." +msgstr[0] "Si us plau, corregiu l'error mostrat a baix." +msgstr[1] "Si us plau, corregiu els errors mostrats a baix." #: contrib/admin/templates/admin/change_form.html:49 msgid "Ordering" @@ -387,13 +395,23 @@ msgstr "Eliminar" #: contrib/admin/templates/admin/delete_confirmation.html:13 #, python-format -msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:" -msgstr "Eliminar el/la %(object_name)s '%(escaped_object)s' provocaria l'eliminació d'objectes relacionats, però el seu compte no te permisos per a esborrar els tipus d'objecte següents:" +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Eliminar el/la %(object_name)s '%(escaped_object)s' provocaria l'eliminació " +"d'objectes relacionats, però el vostre compte no te permissos per a esborrar els " +"tipus d'objecte següents:" #: contrib/admin/templates/admin/delete_confirmation.html:20 #, python-format -msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:" -msgstr "Està segur de voler esborrar els/les %(object_name)s \"%(escaped_object)s\"? S'esborraran els següents elements relacionats:" +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Està segur de voler esborrar els/les %(object_name)s \"%(escaped_object)s\"? " +"S'esborraran els següents elements relacionats:" #: contrib/admin/templates/admin/delete_confirmation.html:25 msgid "Yes, I'm sure" @@ -411,7 +429,7 @@ msgstr "Filtre" #: contrib/admin/templates/admin/index.html:17 #, python-format msgid "Models available in the %(name)s application." -msgstr "Models disponibles en la aplicació %(name)s." +msgstr "Models disponibles en l'aplicació %(name)s." #: contrib/admin/templates/admin/index.html:18 #, python-format @@ -424,7 +442,7 @@ msgstr "Modificar" #: contrib/admin/templates/admin/index.html:44 msgid "You don't have permission to edit anything." -msgstr "No té permís per editar res." +msgstr "No teniu permís per editar res." #: contrib/admin/templates/admin/index.html:52 msgid "Recent Actions" @@ -439,8 +457,14 @@ msgid "None available" msgstr "Cap disponible" #: contrib/admin/templates/admin/invalid_setup.html:8 -msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user." -msgstr "Alguna cosa està malament en la instal·lació de la teva base de dades. Assegurat de que s'han creat les taules, i de que la base de dades és llegible per l'usuari apropiat." +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Alguna cosa està malament en la instal·lació de la vostra base de dades. " +"Assegureu-vos de que s'han creat les taules, i de que la base de dades és " +"llegible per l'usuari apropiat." #: contrib/admin/templates/admin/login.html:17 #: contrib/comments/templates/comments/form.html:6 @@ -454,7 +478,7 @@ msgid "Password:" msgstr "Contrasenya:" #: contrib/admin/templates/admin/login.html:25 -#: contrib/admin/views/decorators.py:25 +#: contrib/admin/views/decorators.py:31 msgid "Log in" msgstr "Iniciar sessió" @@ -475,8 +499,12 @@ msgid "DATE_WITH_TIME_FULL" msgstr "F j, Y, H:i " #: contrib/admin/templates/admin/object_history.html:35 -msgid "This object doesn't have a change history. It probably wasn't added via this admin site." -msgstr "Aquest objecte no te historial de canvis. Probablement no va ser afegit utilitzant aquest lloc administratiu." +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Aquest objecte no té historial de canvis. Probablement no va ser afegit " +"utilitzant aquest lloc administratiu." #: contrib/admin/templates/admin/pagination.html:10 msgid "Show all" @@ -515,8 +543,12 @@ msgid "Save" msgstr "Desar" #: contrib/admin/templates/admin/auth/user/add_form.html:6 -msgid "First, enter a username and password. Then, you'll be able to edit more user options." -msgstr "Primer, entri un usuari i una contrasenya. Després podrà editar més opcions del usuari." +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Primer, entri un usuari i una contrasenya. Després podrà editar més opcions " +"de l'usuari." #: contrib/admin/templates/admin/auth/user/add_form.html:12 msgid "Username" @@ -535,12 +567,12 @@ msgstr "Contrasenya (de nou)" #: contrib/admin/templates/admin/auth/user/add_form.html:24 #: contrib/admin/templates/admin/auth/user/change_password.html:39 msgid "Enter the same password as above, for verification." -msgstr "Introdueixi la mateixa contrasenya que a sobre, per a verificació." +msgstr "Introduïu la mateixa contrasenya de dalt, per fer-ne la verificació." #: contrib/admin/templates/admin/auth/user/change_password.html:27 #, python-format msgid "Enter a new password for the user %(username)s." -msgstr "Introdueixi una contrasenya per l'usuari %(username)s" +msgstr "Introduïu una contrasenya per l'usuari %(username)s" #: contrib/admin/templates/admin_doc/bookmarklets.html:3 msgid "Bookmarklets" @@ -561,28 +593,38 @@ msgid "" "your computer is \"internal\").

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

    Per a instalar 'bookmarklets', arrosegui l'enllaç a la seva barra de\n" -"marcadors, o faci click amb el botò dret en l'enllaç i afegeixi'l als marcadors.\n" +"

    Per a instal·lar 'bookmarklets', arrosegui l'enllaç a la " +"seva barra de\n" +"marcadors, o faci click amb el botò dret en l'enllaç i afegeixi'l als " +"marcadors.\n" "Ara pot escollir el 'bookmarklet' des de qualsevol pàgina del lloc.\n" "Observi que alguns d'aquests 'bookmarklets' precisen que estigui veient\n" "el lloc des de un ordinador senyalat com a \"intern\" (parli\n" -"amb el seu administrador de sistemes si no està segur de la condició del seu).

    \n" +"amb el seu administrador de sistemes si no està segur de la condició del " +"seu).

    \n" #: contrib/admin/templates/admin_doc/bookmarklets.html:18 msgid "Documentation for this page" msgstr "Documentació d'aquesta pàgina" #: contrib/admin/templates/admin_doc/bookmarklets.html:19 -msgid "Jumps you from any page to the documentation for the view that generates that page." -msgstr "El porta des de qualsevol pàgina de la documentació a la vista que la genera." +msgid "" +"Jumps you from any page to the documentation for the view that generates " +"that page." +msgstr "" +"El porta des de qualsevol pàgina de la documentació a la vista que la genera." #: contrib/admin/templates/admin_doc/bookmarklets.html:21 msgid "Show object ID" msgstr "Mostra el ID de l'objecte" #: contrib/admin/templates/admin_doc/bookmarklets.html:22 -msgid "Shows the content-type and unique ID for pages that represent a single object." -msgstr "Mostra el 'content-type' (tipus de contingut) i el ID inequívoc de les pàgines que representen un únic objecte." +msgid "" +"Shows the content-type and unique ID for pages that represent a single " +"object." +msgstr "" +"Mostra el 'content-type' (tipus de contingut) i el ID inequívoc de les " +"pàgines que representen un únic objecte." #: contrib/admin/templates/admin_doc/bookmarklets.html:24 msgid "Edit this object (current window)" @@ -590,7 +632,9 @@ msgstr "Editar aquest objecte (finestra actual)" #: contrib/admin/templates/admin_doc/bookmarklets.html:25 msgid "Jumps to the admin page for pages that represent a single object." -msgstr "El porta a la pàgina d'administració de pàgines que representen un únic objecte." +msgstr "" +"El porta a la pàgina d'administració de pàgines que representen un únic " +"objecte." #: contrib/admin/templates/admin_doc/bookmarklets.html:27 msgid "Edit this object (new window)" @@ -602,7 +646,7 @@ msgstr "Com abans, però obre la pàgina d'administració en una nova finestra." #: contrib/admin/templates/registration/logged_out.html:8 msgid "Thanks for spending some quality time with the Web site today." -msgstr "Gràcies per emprar algun temps de cualitat amb el lloc web avui." +msgstr "Gràcies per destinar el vostre temps en el web durant el dia d'avui." #: contrib/admin/templates/registration/logged_out.html:10 msgid "Log in again" @@ -618,15 +662,20 @@ msgstr "Canvi de clau" #: contrib/admin/templates/registration/password_change_done.html:5 #: contrib/admin/templates/registration/password_change_done.html:9 msgid "Password change successful" -msgstr "Canvi de clau exitò" +msgstr "Canvi de clau exitòs" #: contrib/admin/templates/registration/password_change_done.html:11 msgid "Your password was changed." msgstr "La seva clau ha estat canviada." #: contrib/admin/templates/registration/password_change_form.html:11 -msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." -msgstr "Si us plau, introdueixi la seva contrasenya antiga, per seguretat, i tot seguit introdueixi la seva nova contrasenya dues vegades per verificar que l'ha escrit correctament." +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Si us plau, introdueixi la seva contrasenya antiga, per seguretat, i tot " +"seguit introdueixi la seva contrasenya nova dues vegades per verificar que " +"l'ha escrit correctament." #: contrib/admin/templates/registration/password_change_form.html:16 msgid "Old password:" @@ -654,15 +703,21 @@ msgstr "Restablir contrasenya" #: contrib/admin/templates/registration/password_reset_done.html:6 #: contrib/admin/templates/registration/password_reset_done.html:10 msgid "Password reset successful" -msgstr "Contrasenya restaber-ta amb èxit" +msgstr "Restabliment de contrasenya exitòs" #: contrib/admin/templates/registration/password_reset_done.html:12 -msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly." -msgstr "Li hem enviat una contrasenya nova a l'adreça de correu electrònic que ens ha indicat. L'hauria de rebre en breu." +msgid "" +"We've e-mailed a new password to the e-mail address you submitted. You " +"should be receiving it shortly." +msgstr "" +"Li hem enviat una contrasenya nova a l'adreça de correu electrònic que ens " +"ha indicat. L'hauria de rebre en breu." #: contrib/admin/templates/registration/password_reset_email.html:2 msgid "You're receiving this e-mail because you requested a password reset" -msgstr "Està rebent aquest missatge degut a que va solicitar un restabliment de contrasenya." +msgstr "" +"Està rebent aquest missatge degut a que va solicitar un restabliment de " +"contrasenya." #: contrib/admin/templates/registration/password_reset_email.html:3 #, python-format @@ -692,8 +747,12 @@ msgid "The %(site_name)s team" msgstr "L'equip de %(site_name)s" #: contrib/admin/templates/registration/password_reset_form.html:12 -msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you." -msgstr "Ha oblidat la seva contrasenya? Introdueixi la seva adreça de correu electrònic i crearem una nova que li enviarem per correu." +msgid "" +"Forgotten your password? Enter your e-mail address below, and we'll reset " +"your password and e-mail the new one to you." +msgstr "" +"Ha oblidat la seva contrasenya? Introdueixi la seva adreça de correu " +"electrònic i en crearem una de nova que li enviarem per correu." #: contrib/admin/templates/registration/password_reset_form.html:16 msgid "E-mail address:" @@ -723,14 +782,12 @@ msgstr "Modificar:" msgid "All dates" msgstr "Totes les dates" -#: contrib/admin/views/auth.py:20 -#: contrib/admin/views/main.py:267 +#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." msgstr "El/la %(name)s \"%(obj)s\".ha estat agregat/da amb èxit." -#: contrib/admin/views/auth.py:25 -#: contrib/admin/views/main.py:271 +#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271 #: contrib/admin/views/main.py:356 msgid "You may edit it again below." msgstr "Pot editar-lo de nou abaix." @@ -741,49 +798,59 @@ msgstr "Afegir usuari" #: contrib/admin/views/auth.py:58 msgid "Password changed successfully." -msgstr "Canvi de clau exitós" +msgstr "Clau cambiada exitosament" #: contrib/admin/views/auth.py:65 #, python-format msgid "Change password: %s" msgstr "Canviar clau: %s" -#: contrib/admin/views/decorators.py:11 -#: contrib/auth/forms.py:60 -msgid "Please enter a correct username and password. Note that both fields are case-sensitive." -msgstr "Si us plau, introdueixi un nom d'usuari i contrasenya vàlids. Tingui en compte que tots dos camps son sensibles a majúscules i minúscules." +#: contrib/admin/views/decorators.py:17 contrib/auth/forms.py:60 +msgid "" +"Please enter a correct username and password. Note that both fields are case-" +"sensitive." +msgstr "" +"Si us plau, introdueixi un nom d'usuari i contrasenya vàlids. Tingui en " +"compte que tots dos camps son sensibles a majúscules i minúscules." -#: contrib/admin/views/decorators.py:63 -msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved." -msgstr "Si us plau, identifiquis de nou doncs la seva sessió ha expirat. No es preocupi, el seu enviament està emmagatzemat." +#: contrib/admin/views/decorators.py:69 +msgid "" +"Please log in again, because your session has expired. Don't worry: Your " +"submission has been saved." +msgstr "" +"Si us plau, identifiquis de nou doncs la seva sessió ha expirat. No es " +"preocupi, el seu enviament està emmagatzemat." -#: contrib/admin/views/decorators.py:70 -msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again." -msgstr "Sembla ser que el seu navegador no està configurat per acceptar 'cookies' (galetes). Si us plau, habiliti les 'cookies', recarregui aquesta pàgina i provi-ho de nou. " +#: contrib/admin/views/decorators.py:76 +msgid "" +"Looks like your browser isn't configured to accept cookies. Please enable " +"cookies, reload this page, and try again." +msgstr "" +"Sembla ser que el seu navegador no està configurat per acceptar " +"'cookies' (galetes). Si us plau, habiliti les 'cookies', recarregui aquesta " +"pàgina i provi-ho de nou. " -#: contrib/admin/views/decorators.py:84 +#: 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:86 +#: contrib/admin/views/decorators.py:92 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." -msgstr "La seva adreça de correu no és el seu nom d'usuari. Provi '%s' en tot cas." +msgstr "" +"La seva adreça de correu no és el seu nom d'usuari. Provi '%s' en tot cas." -#: contrib/admin/views/doc.py:48 -#: contrib/admin/views/doc.py:50 +#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50 #: contrib/admin/views/doc.py:52 msgid "tag:" msgstr "etiqueta:" -#: contrib/admin/views/doc.py:79 -#: contrib/admin/views/doc.py:81 +#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81 #: contrib/admin/views/doc.py:83 msgid "filter:" msgstr "filtre:" -#: contrib/admin/views/doc.py:137 -#: contrib/admin/views/doc.py:139 +#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139 #: contrib/admin/views/doc.py:141 msgid "view:" msgstr "vista:" @@ -791,7 +858,7 @@ msgstr "vista:" #: contrib/admin/views/doc.py:166 #, python-format msgid "App %r not found" -msgstr "La aplicació %r no s'ha pogut trobar" +msgstr "No s'ha pogut trobar l'aplicació %r" #: contrib/admin/views/doc.py:173 #, python-format @@ -801,12 +868,10 @@ msgstr "El model %(name)r no s'ha trobat en la aplicació %(label)r" #: contrib/admin/views/doc.py:185 #, python-format msgid "the related `%(label)s.%(type)s` object" -msgstr "el objecte relacionat `%(label)s.%(type)s`" +msgstr "l'objecte relacionat `%(label)s.%(type)s`" -#: contrib/admin/views/doc.py:185 -#: contrib/admin/views/doc.py:207 -#: contrib/admin/views/doc.py:221 -#: contrib/admin/views/doc.py:226 +#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207 +#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226 msgid "model:" msgstr "model:" @@ -830,12 +895,9 @@ msgstr "nombre de %s" msgid "Fields on %s objects" msgstr "Camps en objectes %s" -#: contrib/admin/views/doc.py:293 -#: contrib/admin/views/doc.py:304 -#: contrib/admin/views/doc.py:306 -#: contrib/admin/views/doc.py:312 -#: contrib/admin/views/doc.py:313 -#: contrib/admin/views/doc.py:315 +#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304 +#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312 +#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315 msgid "Integer" msgstr "Enter" @@ -843,8 +905,7 @@ msgstr "Enter" msgid "Boolean (Either True or False)" msgstr "Booleà (Verdader o Fals)" -#: contrib/admin/views/doc.py:295 -#: contrib/admin/views/doc.py:314 +#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314 #, python-format msgid "String (up to %(max_length)s)" msgstr "Cadena (de fins a %(max_length)s)" @@ -869,8 +930,7 @@ msgstr "Número decimal" msgid "E-mail address" msgstr "Adreça de correu electrònic" -#: contrib/admin/views/doc.py:301 -#: contrib/admin/views/doc.py:302 +#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302 #: contrib/admin/views/doc.py:305 msgid "File path" msgstr "Ruta del fitxer" @@ -879,8 +939,7 @@ msgstr "Ruta del fitxer" msgid "Floating point number" msgstr "Número amb punt de coma flotant" -#: contrib/admin/views/doc.py:307 -#: contrib/comments/models.py:85 +#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89 msgid "IP address" msgstr "Adreça IP" @@ -904,8 +963,7 @@ msgstr "Texte" 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:7 msgid "URL" msgstr "URL" @@ -915,7 +973,7 @@ msgstr "Estat dels E.U.A. (dos lletres majúscules)" #: contrib/admin/views/doc.py:320 msgid "XML text" -msgstr "Texte XML" +msgstr "Text XML" #: contrib/admin/views/doc.py:346 #, python-format @@ -926,8 +984,7 @@ msgstr "%s no sembla ser un objecte 'urlpattern'" msgid "Site administration" msgstr "Lloc administratiu" -#: contrib/admin/views/main.py:280 -#: contrib/admin/views/main.py:365 +#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365 #, python-format msgid "You may add another %s below." msgstr "Pot afegir un altre %s a baix." @@ -942,10 +999,8 @@ msgstr "Afegir %s" msgid "Added %s." msgstr "Agregat %s." -#: contrib/admin/views/main.py:344 -#: contrib/admin/views/main.py:346 -#: contrib/admin/views/main.py:348 -#: core/validators.py:283 +#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346 +#: contrib/admin/views/main.py:348 core/validators.py:283 #: db/models/manipulators.py:309 msgid "and" msgstr "i" @@ -967,12 +1022,14 @@ msgstr "Cap camp canviat." #: contrib/admin/views/main.py:354 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." -msgstr "S'ha modificat amb èxist el/la %(name)s \"%(obj)s." +msgstr "S'ha modificat exitosament el/la %(name)s \"%(obj)s." #: contrib/admin/views/main.py:362 #, python-format -msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." -msgstr "S'ha agregat amb èxit el/la %(name)s \"%(obj)s\". Pot editar-lo de nou abaix." +msgid "" +"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." +msgstr "" +"S'ha agregat exitosament el/la %(name)s \"%(obj)s\". Pot editar-lo de nou abaix." #: contrib/admin/views/main.py:400 #, python-format @@ -996,7 +1053,7 @@ msgstr "El/la %(name)s \"%(obj)s\".ha estat eliminat amb èxit." #: contrib/admin/views/main.py:527 msgid "Are you sure?" -msgstr "Està segur?" +msgstr "Esteu segurs?" #: contrib/admin/views/main.py:549 #, python-format @@ -1017,8 +1074,7 @@ msgstr "Seleccioni %s per modificar" msgid "Database error" msgstr "Error de/en la base de dades" -#: contrib/auth/forms.py:17 -#: contrib/auth/forms.py:138 +#: contrib/auth/forms.py:17 contrib/auth/forms.py:138 msgid "The two password fields didn't match." msgstr "Els dos camps de contrasenya no coincideixen." @@ -1027,16 +1083,24 @@ msgid "A user with that username already exists." msgstr "Ja existeix un usuari amb aquest nom." #: contrib/auth/forms.py:53 -msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in." -msgstr "El seu navegador no sembla tenir les 'cookies' (galetes) activades. Aquestes són necessàries per iniciar la sessió." +msgid "" +"Your Web browser doesn't appear to have cookies enabled. Cookies are " +"required for logging in." +msgstr "" +"El seu navegador no sembla tenir les 'cookies' (galetes) activades. Aquestes " +"són necessàries per iniciar la sessió." #: contrib/auth/forms.py:62 msgid "This account is inactive." msgstr "Aquest compte està inactiu" #: contrib/auth/forms.py:84 -msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?" -msgstr "Aquesta adreça de correu no té associada cap compte d'usuari. Està segur de que s'ha registrat?" +msgid "" +"That e-mail address doesn't have an associated user account. Are you sure " +"you've registered?" +msgstr "" +"Aquesta adreça de correu no té associada cap compte d'usuari. Està segur de " +"que s'ha registrat?" #: contrib/auth/forms.py:107 #, python-format @@ -1049,10 +1113,10 @@ msgstr "Els dos camps de nova contrasenya no coincideixen." #: contrib/auth/forms.py:124 msgid "Your old password was entered incorrectly. Please enter it again." -msgstr "La seva antiga contrasenya no és correcte. Si el plau, introdueixi-la de nou." +msgstr "" +"La seva antiga contrasenya no és correcte. Si el plau, introdueixi-la de nou." -#: contrib/auth/models.py:73 -#: contrib/auth/models.py:93 +#: contrib/auth/models.py:73 contrib/auth/models.py:93 msgid "name" msgstr "nom" @@ -1064,8 +1128,7 @@ msgstr "nom en clau" msgid "permission" msgstr "permís" -#: contrib/auth/models.py:79 -#: contrib/auth/models.py:94 +#: contrib/auth/models.py:79 contrib/auth/models.py:94 msgid "permissions" msgstr "permissos" @@ -1073,8 +1136,7 @@ msgstr "permissos" msgid "group" msgstr "grup" -#: contrib/auth/models.py:98 -#: contrib/auth/models.py:141 +#: contrib/auth/models.py:98 contrib/auth/models.py:141 msgid "groups" msgstr "grups" @@ -1083,8 +1145,12 @@ msgid "username" msgstr "nom d'usuari" #: contrib/auth/models.py:131 -msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)." -msgstr "Requerit. 30 o menys caracters. Només caracters alfanumèrics (lletres, dígits i guions baixos)." +msgid "" +"Required. 30 characters or fewer. Alphanumeric characters only (letters, " +"digits and underscores)." +msgstr "" +"Obligatori. 30 o menys caracters. Només caracters alfanumèrics (lletres, " +"dígits i guions baixos)." #: contrib/auth/models.py:132 msgid "first name" @@ -1103,8 +1169,12 @@ msgid "password" msgstr "contrasenya" #: contrib/auth/models.py:135 -msgid "Use '[algo]$[salt]$[hexdigest]' or use the change password form." -msgstr "Utilitzi '[algo]$[salt]$[hexdigest]' o el formulari de canvi de contrasenya." +msgid "" +"Use '[algo]$[salt]$[hexdigest]' or use the change " +"password form." +msgstr "" +"Utilitzi '[algo]$[salt]$[hexdigest]' o el formulari de " +"canvi de contrasenya." #: contrib/auth/models.py:136 msgid "staff status" @@ -1119,16 +1189,24 @@ msgid "active" msgstr "actiu" #: contrib/auth/models.py:137 -msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts." -msgstr "Designa si aquest usuari pot iniciar sessió a la interfície administrativa Djano. Deselecciona-ho enlloc de esborrar comptes d'usuari." +msgid "" +"Designates whether this user can log into the Django admin. Unselect this " +"instead of deleting accounts." +msgstr "" +"Designa si aquest usuari pot iniciar sessió a la interfície administrativa " +"Djano. Deseleccioni-ho enlloc d'esborrar comptes d'usuari." #: contrib/auth/models.py:138 msgid "superuser status" msgstr "estat de superusuari" #: contrib/auth/models.py:138 -msgid "Designates that this user has all permissions without explicitly assigning them." -msgstr "Designa que aquest usuari té tots els permisos sense assignar-los explícitament." +msgid "" +"Designates that this user has all permissions without explicitly assigning " +"them." +msgstr "" +"Designa que aquest usuari té tots els permissos sense assignar-los " +"explícitament." #: contrib/auth/models.py:139 msgid "last login" @@ -1139,8 +1217,12 @@ msgid "date joined" msgstr "data de creació" #: contrib/auth/models.py:142 -msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in." -msgstr "Junt amb els permissos asignats manualment, aquest usuari tindrà, també, els permissos dels grups dels que sigui membre." +msgid "" +"In addition to the permissions manually assigned, this user will also get " +"all permissions granted to each group he/she is in." +msgstr "" +"Junt amb els permissos asignats manualment, aquest usuari tindrà, també, els " +"permissos dels grups dels que sigui membre." #: contrib/auth/models.py:143 msgid "user permissions" @@ -1156,7 +1238,7 @@ msgstr "usuaris" #: contrib/auth/models.py:154 msgid "Personal info" -msgstr "Informaciò personal" +msgstr "Informació personal" #: contrib/auth/models.py:155 msgid "Permissions" @@ -1178,85 +1260,84 @@ msgstr "missatge" msgid "Logged out" msgstr "Sessió finalitzada" -#: contrib/comments/models.py:67 -#: contrib/comments/models.py:169 +#: contrib/comments/models.py:71 contrib/comments/models.py:176 msgid "object ID" msgstr "ID de l'objecte" -#: contrib/comments/models.py:68 +#: contrib/comments/models.py:72 msgid "headline" msgstr "encapçalament" -#: contrib/comments/models.py:69 -#: contrib/comments/models.py:90 -#: contrib/comments/models.py:170 +#: contrib/comments/models.py:73 contrib/comments/models.py:95 +#: contrib/comments/models.py:177 msgid "comment" msgstr "comentari" -#: contrib/comments/models.py:70 +#: contrib/comments/models.py:74 msgid "rating #1" msgstr "qualificació #1" -#: contrib/comments/models.py:71 +#: contrib/comments/models.py:75 msgid "rating #2" msgstr "qualificació #2" -#: contrib/comments/models.py:72 +#: contrib/comments/models.py:76 msgid "rating #3" msgstr "qualificació #3" -#: contrib/comments/models.py:73 +#: contrib/comments/models.py:77 msgid "rating #4" msgstr "qualificació #4" -#: contrib/comments/models.py:74 +#: contrib/comments/models.py:78 msgid "rating #5" msgstr "qualificació #5" -#: contrib/comments/models.py:75 +#: contrib/comments/models.py:79 msgid "rating #6" msgstr "qualificació #6" -#: contrib/comments/models.py:76 +#: contrib/comments/models.py:80 msgid "rating #7" msgstr "qualificació #7" -#: contrib/comments/models.py:77 +#: contrib/comments/models.py:81 msgid "rating #8" msgstr "qualificació #8" -#: contrib/comments/models.py:82 +#: contrib/comments/models.py:86 msgid "is valid rating" msgstr "és qualificació vàlida" -#: contrib/comments/models.py:83 -#: contrib/comments/models.py:172 +#: contrib/comments/models.py:87 contrib/comments/models.py:179 msgid "date/time submitted" msgstr "data/hora d'enviament" -#: contrib/comments/models.py:84 -#: contrib/comments/models.py:173 +#: contrib/comments/models.py:88 contrib/comments/models.py:180 msgid "is public" msgstr "és públic" -#: contrib/comments/models.py:86 +#: contrib/comments/models.py:90 msgid "is removed" msgstr "està eliminat" -#: 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 "Marqui aquesta caixa si el comentari no és apropiat. En lloc seu es mostrarà \"Aquest comentari ha estat eliminat\" " +#: contrib/comments/models.py:90 +msgid "" +"Check this box if the comment is inappropriate. A \"This comment has been " +"removed\" message will be displayed instead." +msgstr "" +"Marqui aquesta caixa si el comentari no és apropiat. En lloc seu es mostrarà " +"\"Aquest comentari ha estat eliminat\" " -#: contrib/comments/models.py:91 +#: contrib/comments/models.py:96 msgid "comments" msgstr "comentaris" -#: contrib/comments/models.py:134 -#: contrib/comments/models.py:213 +#: contrib/comments/models.py:140 contrib/comments/models.py:222 msgid "Content object" msgstr "Objecte Contingut" -#: contrib/comments/models.py:162 +#: contrib/comments/models.py:168 #, python-format msgid "" "Posted by %(user)s at %(date)s\n" @@ -1271,48 +1352,48 @@ msgstr "" "\n" "http://%(domain)s%(url)s" -#: contrib/comments/models.py:171 +#: contrib/comments/models.py:178 msgid "person's name" msgstr "nom de la persona" -#: contrib/comments/models.py:174 +#: contrib/comments/models.py:181 msgid "ip address" msgstr "adreça ip" -#: contrib/comments/models.py:176 +#: contrib/comments/models.py:183 msgid "approved by staff" msgstr "aprovat per el \"staff\"" -#: contrib/comments/models.py:179 +#: contrib/comments/models.py:187 msgid "free comment" msgstr "comentari lliure" -#: contrib/comments/models.py:180 +#: contrib/comments/models.py:188 msgid "free comments" msgstr "comentaris lliures" -#: contrib/comments/models.py:239 +#: contrib/comments/models.py:250 msgid "score" msgstr "puntuació" -#: contrib/comments/models.py:240 +#: contrib/comments/models.py:251 msgid "score date" msgstr "data de la puntuació" -#: contrib/comments/models.py:243 +#: contrib/comments/models.py:255 msgid "karma score" msgstr "puntuació de karma" -#: contrib/comments/models.py:244 +#: contrib/comments/models.py:256 msgid "karma scores" msgstr "punts de karma" -#: contrib/comments/models.py:248 +#: contrib/comments/models.py:260 #, python-format msgid "%(score)d rating by %(user)s" msgstr "%(score)d punt/s per %(user)s" -#: contrib/comments/models.py:264 +#: contrib/comments/models.py:277 #, python-format msgid "" "This comment was flagged by %(user)s:\n" @@ -1323,36 +1404,36 @@ msgstr "" "\n" "%(text)s" -#: contrib/comments/models.py:271 +#: contrib/comments/models.py:285 msgid "flag date" msgstr "data de la marca" -#: contrib/comments/models.py:274 +#: contrib/comments/models.py:289 msgid "user flag" msgstr "marca d'usuari" -#: contrib/comments/models.py:275 +#: contrib/comments/models.py:290 msgid "user flags" msgstr "marques d'usuari" -#: contrib/comments/models.py:279 +#: contrib/comments/models.py:294 #, python-format msgid "Flag by %r" msgstr "Marca de %r" -#: contrib/comments/models.py:284 +#: contrib/comments/models.py:300 msgid "deletion date" msgstr "data d'eliminació" -#: contrib/comments/models.py:286 +#: contrib/comments/models.py:303 msgid "moderator deletion" msgstr "eliminació del moderador" -#: contrib/comments/models.py:287 +#: contrib/comments/models.py:304 msgid "moderator deletions" msgstr "eliminacions del moderador" -#: contrib/comments/models.py:291 +#: contrib/comments/models.py:308 #, python-format msgid "Moderator deletion by %r" msgstr "eliminació del moderador per %r" @@ -1368,7 +1449,7 @@ msgstr "Qualificacions" #: contrib/comments/templates/comments/form.html:12 #: contrib/comments/templates/comments/form.html:23 msgid "Required" -msgstr "Requerit" +msgstr "Obligatori" #: contrib/comments/templates/comments/form.html:12 #: contrib/comments/templates/comments/form.html:23 @@ -1394,25 +1475,30 @@ msgid "Your name:" msgstr "El seu nom:" #: contrib/comments/views/comments.py:28 -msgid "This rating is required because you've entered at least one other rating." +msgid "" +"This rating is required because you've entered at least one other rating." msgstr "Es precisa aquesta puntuació perquè has introduït almenys un altre." #: 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" +"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" +"This comment was posted by a user who has posted fewer than %(count)s " +"comments:\n" "\n" "%(text)s" msgstr[0] "" -"Aquest comentari ha estat publicat per un usuari que ha publicat menys de %(count)s comentari:\n" +"Aquest comentari va ser enviat per un usuari que ha enviat menys de %" +"(count)s comentari:\n" "\n" "%(text)s" msgstr[1] "" -"Aquest comentari ha estat publicat per un usuari que ha publicat menys de %(count)s comentaris:\n" +"Aquest comentari va ser enviat per un usuari que ha enviat menys de %" +"(count)s comentaris:\n" "\n" "%(text)s" @@ -1430,27 +1516,33 @@ msgstr "" #: contrib/comments/views/comments.py:190 #: contrib/comments/views/comments.py:283 msgid "Only POSTs are allowed" -msgstr "Només s'admed POST" +msgstr "Només s'admet POST" #: contrib/comments/views/comments.py:194 #: contrib/comments/views/comments.py:287 msgid "One or more of the required fields wasn't submitted" -msgstr "Un o més dels caps requerits no ha estat sotmès" +msgstr "Un o més dels caps obligatoris no ha estat sotmès" #: contrib/comments/views/comments.py:198 #: contrib/comments/views/comments.py:289 msgid "Somebody tampered with the comment form (security violation)" -msgstr "Algú està jugant amb el formulari de comentaris (violació de seguretat)" +msgstr "" +"Algú està jugant amb el formulari de comentaris (violació de seguretat)" #: contrib/comments/views/comments.py:208 #: contrib/comments/views/comments.py:295 -msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid" -msgstr "El formulari de comentaris tenia un paràmetre 'target' invàlid -- el ID del objecte era invàlid" +msgid "" +"The comment form had an invalid 'target' parameter -- the object ID was " +"invalid" +msgstr "" +"El formulari de comentaris tenia un paràmetre 'target' invàlid -- el ID del " +"objecte era invàlid" #: contrib/comments/views/comments.py:259 #: contrib/comments/views/comments.py:324 msgid "The comment form didn't provide either 'preview' or 'post'" -msgstr "El formulari del comentari no ha proveït ni 'previsualitzar' ni 'enviar'" +msgstr "" +"El formulari del comentari no ha proveït ni 'previsualitzar' ni 'enviar'" #: contrib/comments/views/karma.py:21 msgid "Anonymous users cannot vote" @@ -1464,25 +1556,28 @@ msgstr "ID del comentari invàlid" msgid "No voting for yourself" msgstr "No pots votar-te a tu mateix" -#: contrib/contenttypes/models.py:37 +#: contrib/contenttypes/models.py:67 msgid "python model class name" msgstr "nom de la classe del model en python" -#: contrib/contenttypes/models.py:40 +#: contrib/contenttypes/models.py:71 msgid "content type" msgstr "tipus de contingut" -#: contrib/contenttypes/models.py:41 +#: contrib/contenttypes/models.py:72 msgid "content types" msgstr "tipus de continguts" #: contrib/flatpages/models.py:8 -msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes." -msgstr "Exemple: '/about/contact/'. Asseguri's de posar les barres al principi i al final." +msgid "" +"Example: '/about/contact/'. Make sure to have leading and trailing slashes." +msgstr "" +"Exemple: '/about/contact/'. Asseguri's de posar les barres al principi i al " +"final." #: contrib/flatpages/models.py:9 msgid "title" -msgstr "tìtol" +msgstr "títol" #: contrib/flatpages/models.py:10 msgid "content" @@ -1497,12 +1592,16 @@ msgid "template name" msgstr "nom de la plantilla" #: contrib/flatpages/models.py:13 -msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'." -msgstr "Exemple: 'flatpages/contact_page.html'. Si no el proporciona, el sistema utilitzarà 'flatpages/defaula.htmlt'." +msgid "" +"Example: 'flatpages/contact_page.html'. If this isn't provided, the system " +"will use 'flatpages/default.html'." +msgstr "" +"Exemple: 'flatpages/contact_page.html'. Si no es proporciona, el sistema " +"utilitzarà 'flatpages/default.htmlt'." #: contrib/flatpages/models.py:14 msgid "registration required" -msgstr "s'ha de estar registrat" +msgstr "cal estar registrat" #: contrib/flatpages/models.py:14 msgid "If this is checked, only logged-in users will be able to view the page." @@ -1516,112 +1615,111 @@ msgstr "pàgina estàtica" msgid "flat pages" msgstr "pàgines estàtiques" -#: contrib/humanize/templatetags/humanize.py:20 +#: contrib/humanize/templatetags/humanize.py:19 msgid "th" msgstr "rt" -#: contrib/humanize/templatetags/humanize.py:20 +#: contrib/humanize/templatetags/humanize.py:19 msgid "st" msgstr "r" -#: contrib/humanize/templatetags/humanize.py:20 +#: contrib/humanize/templatetags/humanize.py:19 msgid "nd" msgstr "n" -#: contrib/humanize/templatetags/humanize.py:20 +#: contrib/humanize/templatetags/humanize.py:19 msgid "rd" msgstr "r" -#: contrib/humanize/templatetags/humanize.py:52 +#: contrib/humanize/templatetags/humanize.py:51 #, python-format msgid "%(value).1f million" msgid_plural "%(value).1f million" msgstr[0] "%(value).1f milió" msgstr[1] "%(value).1f milions" -#: contrib/humanize/templatetags/humanize.py:55 +#: contrib/humanize/templatetags/humanize.py:54 #, python-format msgid "%(value).1f billion" msgid_plural "%(value).1f billion" msgstr[0] "%(value).1f bilió" msgstr[1] "%(value).1f bilions" -#: contrib/humanize/templatetags/humanize.py:58 +#: contrib/humanize/templatetags/humanize.py:57 #, python-format msgid "%(value).1f trillion" msgid_plural "%(value).1f trillion" msgstr[0] "%(value).1f trilió" msgstr[1] "%(value).1f trilions" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "one" msgstr "un" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "two" msgstr "dos" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "three" msgstr "tres" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "four" -msgstr "cuatre" +msgstr "quatre" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "five" msgstr "cinc" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "six" msgstr "sis" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "seven" msgstr "set" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "eight" msgstr "vuit" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "nine" msgstr "nou" -#: contrib/humanize/templatetags/humanize.py:94 +#: contrib/humanize/templatetags/humanize.py:93 msgid "today" msgstr "avui" -#: contrib/humanize/templatetags/humanize.py:96 +#: contrib/humanize/templatetags/humanize.py:95 msgid "tomorrow" msgstr "demà" -#: contrib/humanize/templatetags/humanize.py:98 +#: contrib/humanize/templatetags/humanize.py:97 msgid "yesterday" msgstr "ahir" -#: contrib/localflavor/ar/forms.py:28 +#: contrib/localflavor/ar/forms.py:27 msgid "Enter a postal code in the format NNNN or ANNNNAAA." msgstr "Introdueixi un codi postal en el format NNNN o ANNNNAAA." -#: contrib/localflavor/ar/forms.py:50 -#: contrib/localflavor/br/forms.py:96 -#: contrib/localflavor/br/forms.py:135 -#: contrib/localflavor/pe/forms.py:23 +#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96 +#: 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 "Aquest camps requereix només números." +msgstr "Aquest camp precisa només números." -#: contrib/localflavor/ar/forms.py:51 +#: contrib/localflavor/ar/forms.py:50 msgid "This field requires 7 or 8 digits." -msgstr "Aquest camp requereix 7 o 8 dígits." +msgstr "Aquest camp precisa 7 o 8 dígits." + +#: contrib/localflavor/ar/forms.py:79 +msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." +msgstr "" +"Introdueixi un número CUIT vàlid en el format XX-XXXXXXXX-X o XXXXXXXXXXXX." #: contrib/localflavor/ar/forms.py:80 -msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Introdueixi un número CUIT vàlid en el format XX-XXXXXXXX-X o XXXXXXXXXXXX." - -#: contrib/localflavor/ar/forms.py:81 msgid "Invalid CUIT." msgstr "Invàlid CUIT." @@ -1635,11 +1733,15 @@ msgstr "Introdueixi un codi zip en el format XXXXX-XXX." #: contrib/localflavor/br/forms.py:30 msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "El número de telèfon ha de ser en el format XX-XXXX-XXXX." +msgstr "El número de telèfon ha de estar en el format XX-XXXX-XXXX." #: contrib/localflavor/br/forms.py:58 -msgid "Select a valid brazilian state. That state is not one of the available states." -msgstr "Seleccioni un estat brasiler vàlid. Aquest estat no és un dels estats disponibles." +msgid "" +"Select a valid brazilian state. That state is not one of the available " +"states." +msgstr "" +"Seleccioni un estat brasiler vàlid. Aquest estat no és un dels estats " +"disponibles." #: contrib/localflavor/br/forms.py:94 msgid "Invalid CPF number." @@ -1647,7 +1749,7 @@ msgstr "Número CPF invàlid." #: contrib/localflavor/br/forms.py:95 msgid "This field requires at most 11 digits or 14 characters." -msgstr "Aquest camp requereix com a màxim 11 dígits o 14 caracters." +msgstr "Aquest camp precisa com a màxim 11 dígits o 14 caracters." #: contrib/localflavor/br/forms.py:134 msgid "Invalid CNPJ number." @@ -1655,15 +1757,17 @@ msgstr "Número CNPJ invàlid." #: contrib/localflavor/br/forms.py:136 msgid "This field requires at least 14 digits" -msgstr "Aquest camp requereix almenys 14 dígits." +msgstr "Aquest camp precisa almenys 14 dígits." #: contrib/localflavor/ca/forms.py:17 msgid "Enter a postal code in the format XXX XXX." msgstr "Introdueixi un codi postal en el format XXX XXX." #: contrib/localflavor/ca/forms.py:88 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format." -msgstr "Introdueixi un número vàlid de la Seguretat Social de Canadà en el format XXX-XXX-XXXX." +msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." +msgstr "" +"Introdueixi un número vàlid de la Assegurança Social de Canadà en el format " +"XXX-XXX-XXX." #: contrib/localflavor/ch/ch_states.py:5 msgid "Aargau" @@ -1671,31 +1775,31 @@ msgstr "Argau" #: contrib/localflavor/ch/ch_states.py:6 msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" +msgstr "Appenzell Inner-Rhoden" #: contrib/localflavor/ch/ch_states.py:7 msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" +msgstr "Appenzell Ausser-Rhoden" #: contrib/localflavor/ch/ch_states.py:8 msgid "Basel-Stadt" -msgstr "Basel-Stadt" +msgstr "Basel-Ciutat" #: contrib/localflavor/ch/ch_states.py:9 msgid "Basel-Land" -msgstr "Basel-Land" +msgstr "Basel-Camp" #: contrib/localflavor/ch/ch_states.py:10 msgid "Berne" -msgstr "Berne" +msgstr "Berna" #: contrib/localflavor/ch/ch_states.py:11 msgid "Fribourg" -msgstr "Fribourg" +msgstr "Friburg" #: contrib/localflavor/ch/ch_states.py:12 msgid "Geneva" -msgstr "Geneva" +msgstr "Ginebra" #: contrib/localflavor/ch/ch_states.py:13 msgid "Glarus" @@ -1711,7 +1815,7 @@ msgstr "Jura" #: contrib/localflavor/ch/ch_states.py:16 msgid "Lucerne" -msgstr "Lucerne" +msgstr "Lucerna" #: contrib/localflavor/ch/ch_states.py:17 msgid "Neuchatel" @@ -1767,16 +1871,19 @@ msgstr "Zug" #: contrib/localflavor/ch/ch_states.py:30 msgid "Zurich" -msgstr "Zurich" +msgstr "Zuric" -#: contrib/localflavor/ch/forms.py:16 -#: contrib/localflavor/no/forms.py:12 +#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12 msgid "Enter a zip code in the format XXXX." msgstr "Introdueixi un codi zip en el format XXXX." #: contrib/localflavor/ch/forms.py:64 -msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format." -msgstr "Introdueixi un número de identificació o de passaport Suïssos en els formats 1234567890 o X1234567<0." +msgid "" +"Enter a valid Swiss identity or passport card number in X1234567<0 or " +"1234567890 format." +msgstr "" +"Introdueixi un número d'identificació o de passaport Suïssos en els formats " +"1234567890 o X1234567<0." #: contrib/localflavor/cl/forms.py:29 msgid "Enter a valid Chilean RUT." @@ -1792,15 +1899,15 @@ msgstr "El RUT Xilè no és vàlid." #: contrib/localflavor/de/de_states.py:5 msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" +msgstr "Baden-Württemberg" #: contrib/localflavor/de/de_states.py:6 msgid "Bavaria" -msgstr "Bavaria" +msgstr "Baviera" #: contrib/localflavor/de/de_states.py:7 msgid "Berlin" -msgstr "Berlin" +msgstr "Berlín" #: contrib/localflavor/de/de_states.py:8 msgid "Brandenburg" @@ -1820,19 +1927,19 @@ msgstr "Hessen" #: contrib/localflavor/de/de_states.py:12 msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" +msgstr "Mecklenburg-Pomerània Occidental" #: contrib/localflavor/de/de_states.py:13 msgid "Lower Saxony" -msgstr "Lower Saxony" +msgstr "Baixa Saxònia" #: contrib/localflavor/de/de_states.py:14 msgid "North Rhine-Westphalia" -msgstr "North Rhine-Westphalia" +msgstr "Renània del Nord-Westfàlia" #: contrib/localflavor/de/de_states.py:15 msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" +msgstr "Renània-Palatinat" #: contrib/localflavor/de/de_states.py:16 msgid "Saarland" @@ -1840,29 +1947,32 @@ msgstr "Saarland" #: contrib/localflavor/de/de_states.py:17 msgid "Saxony" -msgstr "Saxony" +msgstr "Saxònia" #: contrib/localflavor/de/de_states.py:18 msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" +msgstr "Saxònia-Anhalt" #: contrib/localflavor/de/de_states.py:19 msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" +msgstr "Slesvig-Holstein" #: contrib/localflavor/de/de_states.py:20 msgid "Thuringia" -msgstr "Thuringia" +msgstr "Turíngia" -#: contrib/localflavor/de/forms.py:14 -#: contrib/localflavor/fi/forms.py:12 +#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12 #: contrib/localflavor/fr/forms.py:15 msgid "Enter a zip code in the format XXXXX." msgstr "Introdueixi un codi zip en el format XXXXX." #: contrib/localflavor/de/forms.py:41 -msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format." -msgstr "Introdueixi un número de tarjeta d'identificació alemany vàlid en el format XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." +msgid "" +"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " +"format." +msgstr "" +"Introdueixi un número de tarjeta d'identificació alemany vàlid en el format " +"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." #: contrib/localflavor/es/es_provinces.py:5 msgid "Arava" @@ -2136,8 +2246,12 @@ msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." msgstr "Introdueixi un codi postal en rang i format 01XXX - 52XXX." #: contrib/localflavor/es/forms.py:39 -msgid "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX." -msgstr "Introdueixi un número de telèfon vàlid en un dels formats 6XXXXXXXX, 8XXXXXXXX o 9XXXXXXXX." +msgid "" +"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " +"9XXXXXXXX." +msgstr "" +"Introdueixi un número de telèfon vàlid en un dels formats 6XXXXXXXX, " +"8XXXXXXXX o 9XXXXXXXX." #: contrib/localflavor/es/forms.py:66 msgid "Please enter a valid NIF, NIE, or CIF." @@ -2160,8 +2274,11 @@ msgid "Invalid checksum for CIF." msgstr "Validació invàlida del CIF." #: contrib/localflavor/es/forms.py:142 -msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "Introdueixi un número de compte bancari vàlid en el format XXXX-XXXX-XX-XXXXXXXXXX." +msgid "" +"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." +msgstr "" +"Introdueixi un número de compte bancari vàlid en el format XXXX-XXXX-XX-" +"XXXXXXXXXX." #: contrib/localflavor/es/forms.py:143 msgid "Invalid checksum for bank account number." @@ -2176,8 +2293,10 @@ msgid "Enter a zip code in the format XXXXXXX." msgstr "Introdueixi un codi zip en el format XXXXXXX." #: contrib/localflavor/is_/forms.py:17 -msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Introdueixi un número de identificació d'Islàndia. El format és XXXXXX-XXXX." +msgid "" +"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." +msgstr "" +"Introdueixi un número de identificació d'Islàndia. El format és XXXXXX-XXXX." #: contrib/localflavor/is_/forms.py:18 msgid "The Icelandic identification number is not valid." @@ -2195,7 +2314,7 @@ msgstr "Introdueixi un número valid de la Seguretat Social." msgid "Enter a valid VAT number." msgstr "Introdueixi un número de IVA (VAT) vàlid." -#: contrib/localflavor/jp/forms.py:19 +#: contrib/localflavor/jp/forms.py:17 msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." msgstr "Introdueixi un codi postal en el format XXXXXXX o XX-XXXX." @@ -2393,11 +2512,11 @@ msgstr "Aguascalientes" #: contrib/localflavor/mx/mx_states.py:13 msgid "Baja California" -msgstr "Baja California" +msgstr "Baixa California" #: contrib/localflavor/mx/mx_states.py:14 msgid "Baja California Sur" -msgstr "Baja California Sur" +msgstr "Baixa California Sud" #: contrib/localflavor/mx/mx_states.py:15 msgid "Campeche" @@ -2421,7 +2540,7 @@ msgstr "Colima" #: contrib/localflavor/mx/mx_states.py:20 msgid "Distrito Federal" -msgstr "Distrito Federal" +msgstr "Districte Federal" #: contrib/localflavor/mx/mx_states.py:21 msgid "Durango" @@ -2445,7 +2564,7 @@ msgstr "Jalisco" #: contrib/localflavor/mx/mx_states.py:26 msgid "Estado de México" -msgstr "Estado de México" +msgstr "Estat de Mèxic" #: contrib/localflavor/mx/mx_states.py:27 msgid "Michoacán" @@ -2517,15 +2636,15 @@ msgstr "Zacatecas" #: contrib/localflavor/nl/forms.py:21 msgid "Enter a valid postal code" -msgstr "Introdueixi un codi postal vàlid." +msgstr "Introduïu un codi postal vàlid." #: contrib/localflavor/nl/forms.py:52 msgid "Enter a valid phone number" -msgstr "Introdueixi un número de telèfon vàlid." +msgstr "Introduïu un número de telèfon vàlid." #: contrib/localflavor/nl/forms.py:78 msgid "Enter a valid SoFi number" -msgstr "Introdueixi un número SoFi vàlid." +msgstr "Introduïu un número SoFi vàlid." #: contrib/localflavor/nl/nl_provinces.py:4 msgid "Drente" @@ -2577,15 +2696,15 @@ msgstr "Zuid-Holland" #: contrib/localflavor/no/forms.py:33 msgid "Enter a valid Norwegian social security number." -msgstr "Introdueixi un número de la seguretat social Noruega vàlid." +msgstr "Introduïu un número de la seguretat social Noruega vàlid." #: contrib/localflavor/pe/forms.py:24 msgid "This field requires 8 digits." -msgstr "Aquest camp requereix 8 dígits." +msgstr "Aquest camp precisa 8 dígits." #: contrib/localflavor/pe/forms.py:52 msgid "This field requires 11 digits." -msgstr "Aquest camp requereix 11 dígits." +msgstr "Aquest camp precisa 11 dígits." #: contrib/localflavor/pl/forms.py:39 msgid "National Identification Number consists of 11 digits." @@ -2596,7 +2715,8 @@ msgid "Wrong checksum for the National Identification Number." msgstr "Validació invàlida del número d'identificació nacional." #: contrib/localflavor/pl/forms.py:72 -msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." +msgid "" +"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." msgstr "Introdueixi un número NIP en el format XXX-XXX-XX-XX o XX-XX-XXX-XXX." #: contrib/localflavor/pl/forms.py:73 @@ -2605,7 +2725,8 @@ msgstr "Validació invàlida del número tributari (NIP)." #: contrib/localflavor/pl/forms.py:112 msgid "National Business Register Number (REGON) consists of 7 or 9 digits." -msgstr "El número nacional de registre de negocis (REGON) consisteix en 7 o 9 dígits." +msgstr "" +"El número nacional de registre de negocis (REGON) consisteix en 7 o 9 dígits." #: contrib/localflavor/pl/forms.py:113 msgid "Wrong checksum for the National Business Register Number (REGON)." @@ -2613,7 +2734,7 @@ msgstr "Validació invàlida del número nacional de registre de negocis." #: contrib/localflavor/pl/forms.py:156 msgid "Enter a postal code in the format XX-XXX." -msgstr "Introdueixi un codi postal en el format XX-XXX." +msgstr "Introduïu un codi postal en el format XX-XXX." #: contrib/localflavor/pl/pl_voivodeships.py:8 msgid "Lower Silesia" @@ -2681,7 +2802,7 @@ msgstr "West Pomerania" #: contrib/localflavor/sk/forms.py:30 msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Introdueixi un codi postal en el format XXXXX or XXX XX." +msgstr "Introduïu un codi postal en el format XXXXX or XXX XX." #: contrib/localflavor/sk/sk_districts.py:8 msgid "Banska Bystrica" @@ -3033,7 +3154,7 @@ msgstr "Regió de Zilina" #: contrib/localflavor/uk/forms.py:21 msgid "Enter a valid postcode." -msgstr "Introdueixi un codi postal vàlid." +msgstr "Introdueix un codi postal vàlid." #: contrib/localflavor/uk/uk_regions.py:11 msgid "Bedfordshire" @@ -3204,10 +3325,13 @@ msgid "County Armagh" msgstr "County Armagh" #: contrib/localflavor/uk/uk_regions.py:57 -#: contrib/localflavor/uk/uk_regions.py:58 msgid "County Down" msgstr "County Down" +#: contrib/localflavor/uk/uk_regions.py:58 +msgid "County Fermanagh" +msgstr "Comptat de Fermanagh" + #: contrib/localflavor/uk/uk_regions.py:59 msgid "County Londonderry" msgstr "County Londonderry" @@ -3242,11 +3366,11 @@ msgstr "Powys" #: contrib/localflavor/uk/uk_regions.py:70 msgid "South Glamorgan" -msgstr "South Glamorgan" +msgstr "Glamorgan Sud" #: contrib/localflavor/uk/uk_regions.py:71 msgid "West Glamorgan" -msgstr "West Glamorgan" +msgstr "Glamorgan Oest" #: contrib/localflavor/uk/uk_regions.py:75 msgid "Borders" @@ -3254,7 +3378,7 @@ msgstr "Borders" #: contrib/localflavor/uk/uk_regions.py:76 msgid "Central Scotland" -msgstr "Central Scotland" +msgstr "Escòcia central" #: contrib/localflavor/uk/uk_regions.py:77 msgid "Dumfries and Galloway" @@ -3298,19 +3422,19 @@ msgstr "Western Isles" #: contrib/localflavor/uk/uk_regions.py:90 msgid "England" -msgstr "England" +msgstr "Anglaterra" #: contrib/localflavor/uk/uk_regions.py:91 msgid "Northern Ireland" -msgstr "Northern Ireland" +msgstr "Irlanda del Nord" #: contrib/localflavor/uk/uk_regions.py:92 msgid "Scotland" -msgstr "Scotland" +msgstr "Escòcia" #: contrib/localflavor/uk/uk_regions.py:93 msgid "Wales" -msgstr "Wales" +msgstr "Gal·les" #: contrib/localflavor/us/forms.py:16 msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." @@ -3318,7 +3442,9 @@ msgstr "Introdueixi un codi zip en el format XXXXX o XXXXX-XXXX." #: contrib/localflavor/us/forms.py:54 msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Introdueixi un número vàlid de la Seguretat Social dels E.U.A. en el format XXX-XX-XXXX." +msgstr "" +"Introdueixi un número vàlid de la Seguretat Social dels E.U.A. en el format " +"XXX-XX-XXXX." #: contrib/localflavor/za/forms.py:20 msgid "Enter a valid South African ID number" @@ -3330,11 +3456,11 @@ msgstr "Introdueixi un codi postal Sud Africà vàlid." #: contrib/localflavor/za/za_provinces.py:4 msgid "Eastern Cape" -msgstr "Eastern Cape" +msgstr "Cap Oriental" #: contrib/localflavor/za/za_provinces.py:5 msgid "Free State" -msgstr "Free State" +msgstr "Estat lliure" #: contrib/localflavor/za/za_provinces.py:6 msgid "Gauteng" @@ -3354,31 +3480,39 @@ msgstr "Mpumalanga" #: contrib/localflavor/za/za_provinces.py:10 msgid "Northern Cape" -msgstr "Northern Cape" +msgstr "Cap Nord" #: contrib/localflavor/za/za_provinces.py:11 msgid "North West" -msgstr "North West" +msgstr "Cap Oest" #: contrib/localflavor/za/za_provinces.py:12 msgid "Western Cape" -msgstr "Western Cape" +msgstr "Cap Occidental" #: contrib/redirects/models.py:7 msgid "redirect from" msgstr "redreçar des de" #: contrib/redirects/models.py:8 -msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'." -msgstr "Aquesta ruta hauria de ser el camí absolut, excloent-ne el nom del domini. Exemple '/events/search/'." +msgid "" +"This should be an absolute path, excluding the domain name. Example: '/" +"events/search/'." +msgstr "" +"Aquesta ruta hauria de ser el camí absolut, excloent-ne el nom del domini. " +"Exemple '/events/search/'." #: contrib/redirects/models.py:9 msgid "redirect to" msgstr "redreçar a" #: contrib/redirects/models.py:10 -msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'." -msgstr "Això pot ser bé una ruta absoluta (com abans) o una URL completa que comenci per http:// ." +msgid "" +"This can be either an absolute path (as above) or a full URL starting with " +"'http://'." +msgstr "" +"Això pot ser bé una ruta absoluta (com adalt) o una URL completa que comenci " +"per http:// ." #: contrib/redirects/models.py:13 msgid "redirect" @@ -3388,23 +3522,23 @@ msgstr "redreçament" msgid "redirects" msgstr "redreçaments" -#: contrib/sessions/models.py:46 +#: contrib/sessions/models.py:41 msgid "session key" msgstr "clau de la sessió" -#: contrib/sessions/models.py:47 +#: contrib/sessions/models.py:42 msgid "session data" msgstr "dades de la sessió" -#: contrib/sessions/models.py:48 +#: contrib/sessions/models.py:43 msgid "expire date" msgstr "data de caducitat" -#: contrib/sessions/models.py:53 +#: contrib/sessions/models.py:48 msgid "session" msgstr "sessió" -#: contrib/sessions/models.py:54 +#: contrib/sessions/models.py:49 msgid "sessions" msgstr "sessions" @@ -3426,15 +3560,20 @@ msgstr "llocs" #: core/validators.py:72 msgid "This value must contain only letters, numbers and underscores." -msgstr "Aquest valor ha de contenir només números, guions, i guions baixos." +msgstr "Aquest valor ha de contenir només lletres, números i guions baixos." #: core/validators.py:76 -msgid "This value must contain only letters, numbers, underscores, dashes or slashes." -msgstr "Aquest valor ha de contenir només lletres, números, guions, guions baixos, i barres (/)." +msgid "" +"This value must contain only letters, numbers, underscores, dashes or " +"slashes." +msgstr "" +"Aquest valor ha de contenir només lletres, números, guions baixos, guions i " +"barres (/)." #: core/validators.py:80 msgid "This value must contain only letters, numbers, underscores or hyphens." -msgstr "Aquest valor ha de contenir només lletres, números, guions o guions baixos" +msgstr "" +"Aquest valor ha de contenir només lletres, números, guions o guions baixos" #: core/validators.py:84 msgid "Uppercase letters are not allowed here." @@ -3454,7 +3593,7 @@ msgstr "Introdueixi adreces de correu electrònic vàlides separades per comes." #: core/validators.py:111 msgid "Please enter a valid IP address." -msgstr "Per favor introdueixi una adreça IP vàlida." +msgstr "Si el plau, introdueixi una adreça IP vàlida." #: core/validators.py:115 msgid "Empty values are not allowed here." @@ -3468,14 +3607,13 @@ msgstr "No s'admeten caracters no numèrics." msgid "This value can't be comprised solely of digits." msgstr "Aquest valor no pot contenir només dígits." -#: core/validators.py:128 -#: newforms/fields.py:151 +#: core/validators.py:128 newforms/fields.py:152 msgid "Enter a whole number." msgstr "Introdueixi un número sencer." #: core/validators.py:132 msgid "Only alphabetical characters are allowed here." -msgstr "Només s'admeted caracters alfabètics aquí." +msgstr "Només s'admeten caracters alfabètics aquí." #: core/validators.py:147 msgid "Year must be 1900 or later." @@ -3486,8 +3624,7 @@ msgstr "L'any ha de ser posterior al 1900" msgid "Invalid date: %s" msgstr "Data invàlida: %s" -#: core/validators.py:156 -#: db/models/fields/__init__.py:509 +#: core/validators.py:156 db/models/fields/__init__.py:527 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Introdueixi una data vàlida en el forma AAAA-MM-DD." @@ -3495,27 +3632,27 @@ msgstr "Introdueixi una data vàlida en el forma AAAA-MM-DD." msgid "Enter a valid time in HH:MM format." msgstr "Introdueixi una hora vàlida en el format HH:MM." -#: core/validators.py:165 -#: db/models/fields/__init__.py:583 +#: core/validators.py:165 db/models/fields/__init__.py:604 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Introdueixi un data/hora vàlida en format YYYY-MM-DD HH:MM." -#: core/validators.py:170 -#: newforms/fields.py:402 +#: core/validators.py:170 newforms/fields.py:403 msgid "Enter a valid e-mail address." msgstr "Introdueixi una adreça de correu vàlida." -#: core/validators.py:182 -#: core/validators.py:474 -#: newforms/fields.py: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 "No s'ha enviat cap fitxer. Comprovi el tipus de codificació del formulari." +msgstr "" +"No s'ha enviat cap fitxer. Comprovi el tipus de codificació del formulari." -#: core/validators.py:193 -#: newforms/fields.py:456 -msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image." -msgstr "Envii una imatge vàilda. El fitxer que ha enviat no era una imatge o estaba corrupte." +#: core/validators.py:193 newforms/fields.py:459 +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Envii una imatge vàlida. El fitxer que ha enviat no era una imatge o estaba " +"corrupte." #: core/validators.py:200 #, python-format @@ -3525,7 +3662,9 @@ msgstr "La URL %s no apunta una imatge vàlida." #: core/validators.py:204 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." -msgstr "El números de telèfon han de guardar-se en el format XXX-XXX-XXXX. \"%s\" no és vàlid." +msgstr "" +"Els números de telèfon han de guardar-se en el format XXX-XXX-XXXX. \"%s\" no " +"és vàlid." #: core/validators.py:212 #, python-format @@ -3534,7 +3673,7 @@ msgstr "La URL %s no apunta a un video QuickTime vàlid." #: core/validators.py:216 msgid "A valid URL is required." -msgstr "Es precisa d'una URL vàlida." +msgstr "Es precisa una URL vàlida." #: core/validators.py:230 #, python-format @@ -3542,7 +3681,7 @@ msgid "" "Valid HTML is required. Specific errors are:\n" "%s" msgstr "" -"Es precisa HTML vàlid. Els errors específics sòn:\n" +"Es precisa HTML vàlid. Els errors específics són:\n" "%s" #: core/validators.py:237 @@ -3555,22 +3694,21 @@ msgstr "XML incorrectament formatejat: %s" msgid "Invalid URL: %s" msgstr "URL invalida: %s" -#: core/validators.py:259 -#: core/validators.py:261 +#: core/validators.py:259 core/validators.py:261 #, python-format msgid "The URL %s is a broken link." msgstr "La URL %sés un enllaç trencat." #: core/validators.py:267 msgid "Enter a valid U.S. state abbreviation." -msgstr "Introdueixi una abreviatura vàlida d'estat d'els E.U.A.." +msgstr "Introdueixi una abreviatura vàlida d'estat dels E.U.A.." #: core/validators.py:281 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." -msgstr[0] "Vigili la seva boca! Aquí no admetem la paraula: %s." -msgstr[1] "Vigili la seva boca! Aquí no admetem les paraules: %s." +msgstr[0] "Vigili amb el llenguatge! Aquí no s'admet la paraula: %s." +msgstr[1] "Vigili amb el llenguatge! Aquí no s'admeten les paraules: %s." #: core/validators.py:288 #, python-format @@ -3581,20 +3719,19 @@ msgstr "Aquest camp ha de concordar amb el camp '%s'." msgid "Please enter something for at least one field." msgstr "Si us plau, introdueixi alguna cosa alemnys en un camp." -#: core/validators.py:316 -#: core/validators.py:327 +#: core/validators.py:316 core/validators.py:327 msgid "Please enter both fields or leave them both empty." msgstr "Si us plau, ompli els dos camps o deixi'ls tots dos en blanc." #: core/validators.py:335 #, python-format msgid "This field must be given if %(field)s is %(value)s" -msgstr "S'ha de proporcionar aquest camps si %(field)s és %(value)s" +msgstr "S'ha de proporcionar aquest camp si %(field)s és %(value)s" #: core/validators.py:348 #, python-format msgid "This field must be given if %(field)s is not %(value)s" -msgstr "S'ha de proporcionar aquest camps si %(field)s no és %(value)s" +msgstr "S'ha de proporcionar aquest camp si %(field)s no és %(value)s" #: core/validators.py:367 msgid "Duplicate values are not allowed." @@ -3603,7 +3740,7 @@ msgstr "No s'admeten valors duplicats." #: core/validators.py:382 #, python-format msgid "This value must be between %(lower)s and %(upper)s." -msgstr "Aquest valor ha de estar comprés entre %(lower)s i %(upper)s." +msgstr "Aquest valor ha d'estar comprès entre %(lower)s i %(upper)s." #: core/validators.py:384 #, python-format @@ -3627,23 +3764,37 @@ msgstr "Si us plau, introdueixi un número decimal vàlid." #: core/validators.py:444 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." -msgid_plural "Please enter a valid decimal number with at most %s total digits." -msgstr[0] "Si us plau, introdueixi un número decimal vàlid de com a màxim %s digit." -msgstr[1] "Si us plau, introdueixi un número decimal vàlid de com a màxim %s digits." +msgid_plural "" +"Please enter a valid decimal number with at most %s total digits." +msgstr[0] "" +"Si us plau, introdueixi un número decimal vàlid de com a màxim %s digit." +msgstr[1] "" +"Si us plau, introdueixi un número decimal vàlid de com a màxim %s digits." #: core/validators.py:447 #, python-format -msgid "Please enter a valid decimal number with a whole part of at most %s digit." -msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits." -msgstr[0] "Si us plau, introdueixi un número decimal vàlid que la seva part sencera sigui de com a màxim %s digit." -msgstr[1] "Si us plau, introdueixi un número decimal vàlid que la seva part sencera sigui de com a màxim %s digits." +msgid "" +"Please enter a valid decimal number with a whole part of at most %s digit." +msgid_plural "" +"Please enter a valid decimal number with a whole part of at most %s digits." +msgstr[0] "" +"Si us plau, introdueixi un número decimal vàlid que la seva part sencera " +"sigui de com a màxim %s digit." +msgstr[1] "" +"Si us plau, introdueixi un número decimal vàlid que la seva part sencera " +"sigui de com a màxim %s digits." #: core/validators.py:450 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." -msgid_plural "Please enter a valid decimal number with at most %s decimal places." -msgstr[0] "Si us plau, introdueixi un número decimal vàlid de com a màxim %s posició decimal." -msgstr[1] "Si us plau, introdueixi un número decimal vàlid de com a màxim %s posicions decimals." +msgid_plural "" +"Please enter a valid decimal number with at most %s decimal places." +msgstr[0] "" +"Si us plau, introdueixi un número decimal vàlid de com a màxim %s posició " +"decimal." +msgstr[1] "" +"Si us plau, introdueixi un número decimal vàlid de com a màxim %s posicions " +"decimals." #: core/validators.py:458 msgid "Please enter a valid floating point number." @@ -3674,38 +3825,65 @@ msgstr "No s'ha pogut obtenir res de %s." #: core/validators.py:539 #, python-format -msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." -msgstr "La URL %(url)s ha va tornar la capcelera Content-Type '%(contenttype)s', que no és vàlida." +msgid "" +"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." +msgstr "" +"La URL %(url)s ha va tornar la capcelera Content-Type '%(contenttype)s', que " +"no és vàlida." #: core/validators.py:572 #, python-format -msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)" -msgstr "Si us plau, tanqui l'etiqueta %(tag)s des de la línia %(line)s. (La línia comença amb \"%(start)s\".)" +msgid "" +"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " +"\"%(start)s\".)" +msgstr "" +"Si us plau, tanqui l'etiqueta %(tag)s des de la línia %(line)s. (La línia " +"comença amb \"%(start)s\".)" #: core/validators.py:576 #, python-format -msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)" -msgstr "Part del text que comença en la línia %(line)s no està permès en aquest context. (La línia comença per \"%(start)s\".)" +msgid "" +"Some text starting on line %(line)s is not allowed in that context. (Line " +"starts with \"%(start)s\".)" +msgstr "" +"Part del text que comença en la línia %(line)s no està permès en aquest " +"context. (La línia comença per \"%(start)s\".)" #: core/validators.py:581 #, python-format -msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)" -msgstr "El \"%(attr)s\" de la línia %(line)s no és un atribut vàlid. (La línia comença per \"%(start)s\".)" +msgid "" +"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" +"(start)s\".)" +msgstr "" +"El \"%(attr)s\" de la línia %(line)s no és un atribut vàlid. (La línia " +"comença per \"%(start)s\".)" #: core/validators.py:586 #, python-format -msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)" -msgstr "La \"<%(tag)s>\" de la línia %(line)s no és una etiqueta vàlida. (La línia comença per \"%(start)s\".)" +msgid "" +"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" +"(start)s\".)" +msgstr "" +"La \"<%(tag)s>\" de la línia %(line)s no és una etiqueta vàlida. (La línia " +"comença per \"%(start)s\".)" #: core/validators.py:590 #, python-format -msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)" -msgstr "Una etiqueta de la línia %(line)s li falta un o més atributs requerits.(La línia comença per \"%(start)s\".)" +msgid "" +"A tag on line %(line)s is missing one or more required attributes. (Line " +"starts with \"%(start)s\".)" +msgstr "" +"Una etiqueta de la línia %(line)s li falta un o més atributs requerits.(La " +"línia comença per \"%(start)s\".)" #: core/validators.py:595 #, python-format -msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)" -msgstr "L'atribut \"%(attr)s\" de la línia %(line)s té un valor que no és vàlid. (La línia comença per \"%(start)s\".)" +msgid "" +"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " +"starts with \"%(start)s\".)" +msgstr "" +"L'atribut \"%(attr)s\" de la línia %(line)s té un valor que no és vàlid. (La " +"línia comença per \"%(start)s\".)" #: db/models/manipulators.py:308 #, python-format @@ -3715,161 +3893,158 @@ msgstr "Ja existeix un %(object)s del tipus %(type)s amb aquest %(field)s." #: db/models/fields/__init__.py:52 #, python-format msgid "%(optname)s with this %(fieldname)s already exists." -msgstr "Ja existeix %(optname)s amb auqest %(fieldname)s." +msgstr "Ja existeix %(optname)s amb aquest %(fieldname)s." -#: db/models/fields/__init__.py:161 -#: db/models/fields/__init__.py:318 -#: db/models/fields/__init__.py:735 -#: db/models/fields/__init__.py:746 -#: newforms/fields.py:45 -#: oldforms/__init__.py:374 +#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:327 +#: db/models/fields/__init__.py:759 db/models/fields/__init__.py:770 +#: newforms/fields.py:46 oldforms/__init__.py:374 msgid "This field is required." msgstr "Aquest camp és obligatori." -#: db/models/fields/__init__.py:418 +#: db/models/fields/__init__.py:427 msgid "This value must be an integer." -msgstr "Aquest valor ha de ser un enter." +msgstr "Aquest valor ha de ser un enter." -#: db/models/fields/__init__.py:454 +#: db/models/fields/__init__.py:466 msgid "This value must be either True or False." msgstr "Aquest valor ha de ser True (Veritat) o False (Fals)" -#: db/models/fields/__init__.py:475 +#: db/models/fields/__init__.py:490 msgid "This field cannot be null." msgstr "Aquest camp no pot ser null (estar buit)." -#: db/models/fields/__init__.py:644 +#: db/models/fields/__init__.py:668 msgid "This value must be a decimal number." msgstr "Aquest valor ha de ser un número decimal." -#: db/models/fields/__init__.py:755 +#: db/models/fields/__init__.py:779 msgid "Enter a valid filename." msgstr "Introdueixi un nom de fitxer vàlid." -#: db/models/fields/__init__.py:904 +#: db/models/fields/__init__.py:960 msgid "This value must be either None, True or False." msgstr "Aquest valor ha de ser None (Cap), True (Veritat) o False (Fals)" -#: db/models/fields/related.py:55 +#: db/models/fields/related.py:93 #, python-format msgid "Please enter a valid %s." msgstr "Si us plau, introdueixi un %s vàlid." -#: db/models/fields/related.py:658 +#: db/models/fields/related.py:701 msgid "Separate multiple IDs with commas." msgstr "Separi múltiples IDs amb comes." -#: db/models/fields/related.py:660 -msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +#: db/models/fields/related.py:703 +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "Premi \"Control\" o \"Command\" en un Mac per escollir més d'un." -#: db/models/fields/related.py:707 +#: db/models/fields/related.py:750 #, python-format msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." -msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid." -msgstr[0] "Si us plau, introdueixi els IDs de %(self)s vàlids. El valor %(value)r és invàlid." -msgstr[1] "Si us plau, introdueixi IDs de %(self)s vàlids. Els valors %(value)r són invàlids." +msgid_plural "" +"Please enter valid %(self)s IDs. The values %(value)r are invalid." +msgstr[0] "" +"Si us plau, introdueixi els IDs de %(self)s vàlids. El valor %(value)r és " +"invàlid." +msgstr[1] "" +"Si us plau, introdueixi IDs de %(self)s vàlids. Els valors %(value)r són " +"invàlids." -#: newforms/fields.py:46 +#: newforms/fields.py:47 msgid "Enter a valid value." msgstr "Introdueixi un valor vàlid." -#: newforms/fields.py:123 -#, python-format -msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." -msgstr "Asseguris de que el valor té com a màxim %(max)d caràcters (en té %(length)d)." - #: newforms/fields.py:124 #, python-format -msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." -msgstr "Asseguris de que el valor té com a mínim %(min)d caràcters (en té %(length)d)." +msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." +msgstr "" +"Asseguris de que el valor té com a màxim %(max)d caràcters (en té %(length)" +"d)." -#: newforms/fields.py:152 -#: newforms/fields.py:181 -#: newforms/fields.py:210 +#: newforms/fields.py:125 +#, python-format +msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." +msgstr "" +"Asseguris de que el valor té com a mínim %(min)d caràcters (en té %(length)" +"d)." + +#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211 #, python-format msgid "Ensure this value is less than or equal to %s." msgstr "Aquest valor ha de ser menor o igual a %s." -#: newforms/fields.py:153 -#: newforms/fields.py: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 "Asseguris de que aquest valor sigui superior o igual a %s." -#: newforms/fields.py:180 -#: newforms/fields.py:209 +#: newforms/fields.py:181 newforms/fields.py:210 msgid "Enter a number." msgstr "Introdueixi un número." -#: newforms/fields.py:212 +#: newforms/fields.py:213 #, python-format msgid "Ensure that there are no more than %s digits in total." msgstr "Asseguris de que no hi ha més de %s dígits en total." -#: newforms/fields.py:213 +#: newforms/fields.py:214 #, python-format msgid "Ensure that there are no more than %s decimal places." msgstr "Asseguris de que no hi ha més de %s decimals." -#: newforms/fields.py:214 +#: newforms/fields.py:215 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Asseguris de que no hia ha més de %s dígits decimals." -#: newforms/fields.py:262 -#: newforms/fields.py:719 +#: newforms/fields.py:263 newforms/fields.py:751 msgid "Enter a valid date." msgstr "Introdueixi una data vàlida." -#: newforms/fields.py:295 -#: newforms/fields.py:720 +#: newforms/fields.py:296 newforms/fields.py:752 msgid "Enter a valid time." msgstr "Introdueixi una hora vàlida." -#: newforms/fields.py:334 +#: newforms/fields.py:335 msgid "Enter a valid date/time." msgstr "Introdueixi una data/hora vàlides." -#: newforms/fields.py:433 +#: newforms/fields.py:434 msgid "No file was submitted." msgstr "No s'ha enviat cap fitxer." -#: newforms/fields.py:434 -#: oldforms/__init__.py:689 +#: newforms/fields.py:435 oldforms/__init__.py:689 msgid "The submitted file is empty." msgstr "El fitxer enviat està buit." -#: newforms/fields.py:492 +#: newforms/fields.py:497 msgid "Enter a valid URL." msgstr "Introdueixi una URL vàlida." -#: newforms/fields.py:493 +#: newforms/fields.py:498 msgid "This URL appears to be a broken link." msgstr "Aquesta URL sembla ser un enllaç trencat." -#: newforms/fields.py:555 -#: newforms/models.py:317 +#: newforms/fields.py:560 newforms/models.py:299 msgid "Select a valid choice. That choice is not one of the available choices." -msgstr "Esculli una opció vàlida; Aquesta opció no és una de les opcions disponibles." +msgstr "" +"Esculli una opció vàlida; Aquesta opció no és una de les opcions disponibles." -#: newforms/fields.py:594 +#: newforms/fields.py:599 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "Esculli una opció vàlida. %(value)s no és una de les opcions vàlides." -#: newforms/fields.py:595 -#: newforms/fields.py:657 -#: newforms/models.py:377 +#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:371 msgid "Enter a list of values." msgstr "Introdueixi una llista de valors." -#: newforms/fields.py:748 +#: newforms/fields.py:780 msgid "Enter a valid IPv4 address." msgstr "Introdueixi una adreça IPv4 vàlida." -#: newforms/models.py:378 +#: newforms/models.py:372 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Esculli una opció vàlida; %s' no és una de les opcions vàlides." @@ -3885,9 +4060,7 @@ msgstr[1] "Asseguris de que el seu texte té menys de %s caracters." msgid "Line breaks are not allowed here." msgstr "No es permeten salts de línia." -#: oldforms/__init__.py:512 -#: oldforms/__init__.py:586 -#: oldforms/__init__.py:625 +#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625 #, python-format msgid "Select a valid choice; '%(data)s' is not in %(choices)s." msgstr "Esculli una opció vàlida; %(data)s' no està dintre de %(choices)s." @@ -3904,28 +4077,28 @@ msgstr "Introdueixi un número positiu." msgid "Enter a whole number between 0 and 32,767." msgstr "Introdueixi un número entre 0 i 32,767." -#: template/defaultfilters.py:683 +#: template/defaultfilters.py:698 msgid "yes,no,maybe" msgstr "si,no,potser" -#: template/defaultfilters.py:714 +#: template/defaultfilters.py:729 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" msgstr[0] "%(size)d byte" msgstr[1] "%(size)d bytes" -#: template/defaultfilters.py:716 +#: template/defaultfilters.py:731 #, python-format msgid "%.1f KB" msgstr "%.1f KB" -#: template/defaultfilters.py:718 +#: template/defaultfilters.py:733 #, python-format msgid "%.1f MB" msgstr "%.1f MB" -#: template/defaultfilters.py:719 +#: template/defaultfilters.py:734 #, python-format msgid "%.1f GB" msgstr "%.1f GB" @@ -3988,11 +4161,11 @@ msgstr "Dl" #: utils/dates.py:10 msgid "Tue" -msgstr "Dt" +msgstr "Dm" #: utils/dates.py:10 msgid "Wed" -msgstr "Dc" +msgstr "Dmx" #: utils/dates.py:10 msgid "Thu" @@ -4004,7 +4177,7 @@ msgstr "Dv" #: utils/dates.py:11 msgid "Sat" -msgstr "Db" +msgstr "Ds" #: utils/dates.py:11 msgid "Sun" @@ -4018,28 +4191,23 @@ msgstr "Gener" msgid "February" msgstr "Febrer" -#: utils/dates.py:18 -#: utils/dates.py:31 +#: utils/dates.py:18 utils/dates.py:31 msgid "March" msgstr "Març" -#: utils/dates.py:18 -#: utils/dates.py:31 +#: utils/dates.py:18 utils/dates.py:31 msgid "April" msgstr "Abril" -#: utils/dates.py:18 -#: utils/dates.py:31 +#: utils/dates.py:18 utils/dates.py:31 msgid "May" msgstr "Maig" -#: utils/dates.py:18 -#: utils/dates.py:31 +#: utils/dates.py:18 utils/dates.py:31 msgid "June" msgstr "Juny" -#: utils/dates.py:19 -#: utils/dates.py:31 +#: utils/dates.py:19 utils/dates.py:31 msgid "July" msgstr "Juliol" @@ -4193,23 +4361,23 @@ msgstr "%(number)d %(type)s" msgid ", %(number)d %(type)s" msgstr ", %(number)d %(type)s" -#: utils/translation/trans_real.py:399 +#: utils/translation/trans_real.py:403 msgid "DATE_FORMAT" msgstr "F j, Y" -#: utils/translation/trans_real.py:400 +#: utils/translation/trans_real.py:404 msgid "DATETIME_FORMAT" msgstr "F j, Y, H:i" -#: utils/translation/trans_real.py:401 +#: utils/translation/trans_real.py:405 msgid "TIME_FORMAT" msgstr "H:i" -#: utils/translation/trans_real.py:417 +#: utils/translation/trans_real.py:421 msgid "YEAR_MONTH_FORMAT" msgstr "j de/d' F del Y" -#: utils/translation/trans_real.py:418 +#: utils/translation/trans_real.py:422 msgid "MONTH_DAY_FORMAT" msgstr "j de/d' F del Y" @@ -4228,9 +4396,11 @@ msgstr "El/La %(verbose_name)s s'ha actualtzat amb èxit." msgid "The %(verbose_name)s was deleted." msgstr "El %(verbose_name)s s'ha eliminat." +#~ msgid "Gaeilge" +#~ msgstr "Gaeilge" + #~ msgid "" #~ "Enter a postcode. A space is required between the two postcode parts." #~ msgstr "" #~ "Introdueixi un codi postal. És necessari un espai entre les dues parts " #~ "del codi postal." - diff --git a/django/conf/locale/ca/LC_MESSAGES/djangojs.mo b/django/conf/locale/ca/LC_MESSAGES/djangojs.mo index 6f3c9f2a5ae0152a23fbed6f548de0a86751e482..0df69aeb94e59626151b54bcea407675817c193f 100644 GIT binary patch delta 362 zcmX}lF-yZh7zW@=n_6wHND;(EZY;=!OEg$w2>}%?7z8O@^@!n6lAI*zT!$ib(oz?H zN5MZ+M`t$&H{aCa^zgoS-}g-#uZ@?F;YcIosZ7WUA*5dUvk5nlciD7I(fNPLl5maTfzWD7H|P@Y;gguvp;1BX|yVID+^} z#>@OXd(+ybn#D|;a?{~_Ixp`I_nBo=v+dXid)(x_b|JEy^-_^!k;ql*(35+SNJWoD zE+Uc8vs4WpXy@Eh316b&;+P$IB%s`6#(@a1iN|NknOv z{tPMj2mBd|;Oyq$s&8tS^Y9+d$IyDR9^dc!24i`Nv027grTp(QTtZ%h^Kb($z-_n! zTT?r55&0ah!Yf#Tw{Q;T@C-h{;?5^5{(M2aWZz}ho-F*JQA6VwZo(R-iUa$w1&^Q! z`w$~6pXU4V$Y{(|>$c}|(eS, 2007. msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-05-20 18:25+0200\n" -"PO-Revision-Date: 2008-01-22 19:39+0100\n" -"Last-Translator: Marc Garcia \n" -"Language-Team: español \n" +"POT-Creation-Date: 2007-02-15 01:00+0200\n" +"PO-Revision-Date: 2008-03-25 18:54+0100\n" +"Last-Translator: Django Catalan Group \n" +"Language-Team: Catalan \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11.4\n" +"X-Generator: VIM 7.1\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: contrib/admin/media/js/SelectFilter2.js:33 diff --git a/django/conf/locale/es/LC_MESSAGES/django.mo b/django/conf/locale/es/LC_MESSAGES/django.mo index bb4c6ff9c89f99616bad9f9a1305c6778722aa1c..485a77160a9f192f81193aac886ab579b0e25283 100644 GIT binary patch delta 20940 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 delta 19755 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 diff --git a/django/conf/locale/es/LC_MESSAGES/django.po b/django/conf/locale/es/LC_MESSAGES/django.po index 04c7c76e3b..b1fab30ded 100644 --- a/django/conf/locale/es/LC_MESSAGES/django.po +++ b/django/conf/locale/es/LC_MESSAGES/django.po @@ -1,15 +1,14 @@ -# translation of django.po to Castellano -# This file is distributed under the same license as the PACKAGE package. -# Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER. -# +# Spanish translation for the django project +# Copyright (C) 2008, The Django Project +# This file is distributed under the same license as the django package. msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-10-20 14:55+0200\n" -"PO-Revision-Date: 2007-10-20 15:38+0100\n" -"Last-Translator: Marc Garcia \n" -"Language-Team: Castellano \n" +"POT-Creation-Date: 2005-10-04 00:00+0200\n" +"PO-Revision-Date: 2008-03-30 01:04+0100\n" +"Last-Translator: Django Spanish Group \n" +"Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -64,138 +63,146 @@ msgid "Argentinean Spanish" msgstr "Español Argentino" #: conf/global_settings.py:51 +msgid "Basque" +msgstr "Vasco" + +#: conf/global_settings.py:52 msgid "Persian" msgstr "Persa" -#: conf/global_settings.py:52 +#: conf/global_settings.py:53 msgid "Finnish" msgstr "Finés" -#: conf/global_settings.py:53 +#: conf/global_settings.py:54 msgid "French" msgstr "Francés" -#: conf/global_settings.py:54 -msgid "Gaeilge" -msgstr "Gaeilge" - #: conf/global_settings.py:55 +msgid "Irish" +msgstr "Irlandés" + +#: conf/global_settings.py:56 msgid "Galician" msgstr "Gallego" -#: conf/global_settings.py:56 +#: conf/global_settings.py:57 msgid "Hungarian" msgstr "Húngaro" -#: conf/global_settings.py:57 +#: conf/global_settings.py:58 msgid "Hebrew" msgstr "Hebreo" -#: conf/global_settings.py:58 +#: conf/global_settings.py:59 msgid "Croatian" msgstr "Croata" -#: conf/global_settings.py:59 +#: conf/global_settings.py:60 msgid "Icelandic" msgstr "Islandés" -#: conf/global_settings.py:60 +#: conf/global_settings.py:61 msgid "Italian" msgstr "Italiano" -#: conf/global_settings.py:61 +#: conf/global_settings.py:62 msgid "Japanese" msgstr "Japonés" -#: conf/global_settings.py:62 +#: conf/global_settings.py:63 +msgid "Georgian" +msgstr "Georgiano" + +#: conf/global_settings.py:64 msgid "Korean" msgstr "Koreano" -#: conf/global_settings.py:63 +#: conf/global_settings.py:65 msgid "Khmer" msgstr "Khmer" -#: conf/global_settings.py:64 +#: conf/global_settings.py:66 msgid "Kannada" msgstr "Kannada" -#: conf/global_settings.py:65 +#: conf/global_settings.py:67 msgid "Latvian" msgstr "Latvio" -#: conf/global_settings.py:66 +#: conf/global_settings.py:68 msgid "Macedonian" msgstr "Macedonio" -#: conf/global_settings.py:67 +#: conf/global_settings.py:69 msgid "Dutch" msgstr "Alemán" -#: conf/global_settings.py:68 +#: conf/global_settings.py:70 msgid "Norwegian" msgstr "Noruego" -#: conf/global_settings.py:69 +#: conf/global_settings.py:71 msgid "Polish" msgstr "Polaco" -#: conf/global_settings.py:70 +#: conf/global_settings.py:72 msgid "Portugese" msgstr "Portugés" -#: conf/global_settings.py:71 +#: conf/global_settings.py:73 msgid "Brazilian" msgstr "Brasileño" -#: conf/global_settings.py:72 +#: conf/global_settings.py:74 msgid "Romanian" msgstr "Rumano" -#: conf/global_settings.py:73 +#: conf/global_settings.py:75 msgid "Russian" msgstr "Ruso" -#: conf/global_settings.py:74 +#: conf/global_settings.py:76 msgid "Slovak" msgstr "Eslovaco" -#: conf/global_settings.py:75 +#: conf/global_settings.py:77 msgid "Slovenian" msgstr "Esloveno" -#: conf/global_settings.py:76 +#: conf/global_settings.py:78 msgid "Serbian" msgstr "Serbio" -#: conf/global_settings.py:77 +#: conf/global_settings.py:79 msgid "Swedish" msgstr "Sueco" -#: conf/global_settings.py:78 +#: conf/global_settings.py:80 msgid "Tamil" msgstr "Tamil" -#: conf/global_settings.py:79 +#: conf/global_settings.py:81 msgid "Telugu" msgstr "Telugu" -#: conf/global_settings.py:80 +#: conf/global_settings.py:82 msgid "Turkish" msgstr "Turco" -#: conf/global_settings.py:81 +#: conf/global_settings.py:83 msgid "Ukrainian" msgstr "Ucraniano" -#: conf/global_settings.py:82 +#: conf/global_settings.py:84 msgid "Simplified Chinese" msgstr "Chino simplificado" -#: conf/global_settings.py:83 +#: conf/global_settings.py:85 msgid "Traditional Chinese" msgstr "Chino tradicional" -#: contrib/admin/filterspecs.py:42 +#: contrib/admin/filterspecs.py:44 #, python-format msgid "" "

    By %s:

    \n" @@ -204,76 +211,71 @@ msgstr "" "

    Por %s:

    \n" "
      \n" -#: contrib/admin/filterspecs.py:72 -#: contrib/admin/filterspecs.py:90 -#: contrib/admin/filterspecs.py:145 -#: contrib/admin/filterspecs.py:171 +#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:92 +#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173 msgid "All" msgstr "Todo" -#: contrib/admin/filterspecs.py:111 +#: contrib/admin/filterspecs.py:113 msgid "Any date" msgstr "Cualquier fecha" -#: contrib/admin/filterspecs.py:112 +#: contrib/admin/filterspecs.py:114 msgid "Today" msgstr "Hoy" -#: contrib/admin/filterspecs.py:115 +#: contrib/admin/filterspecs.py:117 msgid "Past 7 days" msgstr "Últimos 7 días" -#: contrib/admin/filterspecs.py:117 +#: contrib/admin/filterspecs.py:119 msgid "This month" msgstr "Este mes" -#: contrib/admin/filterspecs.py:119 +#: contrib/admin/filterspecs.py:121 msgid "This year" msgstr "Este año" -#: contrib/admin/filterspecs.py:145 -#: newforms/widgets.py:205 -#: oldforms/__init__.py:591 +#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231 +#: oldforms/__init__.py:592 msgid "Yes" msgstr "Sí" -#: contrib/admin/filterspecs.py:145 -#: newforms/widgets.py:205 -#: oldforms/__init__.py:591 +#: contrib/admin/filterspecs.py:147 newforms/widgets.py:231 +#: oldforms/__init__.py:592 msgid "No" msgstr "No" -#: contrib/admin/filterspecs.py:152 -#: newforms/widgets.py:205 -#: oldforms/__init__.py:591 +#: contrib/admin/filterspecs.py:154 newforms/widgets.py:231 +#: oldforms/__init__.py:592 msgid "Unknown" msgstr "Desconocido" -#: contrib/admin/models.py:17 +#: contrib/admin/models.py:18 msgid "action time" msgstr "hora de acción" -#: contrib/admin/models.py:20 +#: contrib/admin/models.py:21 msgid "object id" msgstr "id de objeto" -#: contrib/admin/models.py:21 +#: contrib/admin/models.py:22 msgid "object repr" msgstr "repr de objeto" -#: contrib/admin/models.py:22 +#: contrib/admin/models.py:23 msgid "action flag" msgstr "marca de acción" -#: contrib/admin/models.py:23 +#: contrib/admin/models.py:24 msgid "change message" msgstr "mensaje de cambio" -#: contrib/admin/models.py:26 +#: contrib/admin/models.py:27 msgid "log entry" msgstr "entrada de registro" -#: contrib/admin/models.py:27 +#: contrib/admin/models.py:28 msgid "log entries" msgstr "entradas de registro" @@ -316,8 +318,13 @@ msgid "Server Error (500)" msgstr "Error de servidor (500)" #: contrib/admin/templates/admin/500.html:10 -msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience." -msgstr "Ha ocurrido un error. Se ha informado a los administradores del sitio mediante correo electrónico y debería arreglarse en breve. Gracias por su paciencia." +msgid "" +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." +msgstr "" +"Ha ocurrido un error. Se ha informado a los administradores del sitio " +"mediante correo electrónico y debería arreglarse en breve. Gracias por su " +"paciencia." #: contrib/admin/templates/admin/base.html:26 msgid "Welcome," @@ -388,13 +395,23 @@ msgstr "Eliminar" #: contrib/admin/templates/admin/delete_confirmation.html:13 #, python-format -msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:" -msgstr "Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación de objetos relacionados, pero su cuenta no tiene permiso para borrar los siguientes tipos de objetos:" +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Eliminar el %(object_name)s '%(escaped_object)s' provocaría la eliminación " +"de objetos relacionados, pero su cuenta no tiene permiso para borrar los " +"siguientes tipos de objetos:" #: contrib/admin/templates/admin/delete_confirmation.html:20 #, python-format -msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:" -msgstr "¿Está seguro de que quiere borrar los %(object_name)s \"%(escaped_object)s\"? Se borrarán los siguientes objetos relacionados:" +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"¿Está seguro de que quiere borrar los %(object_name)s \"%(escaped_object)s" +"\"? Se borrarán los siguientes objetos relacionados:" #: contrib/admin/templates/admin/delete_confirmation.html:25 msgid "Yes, I'm sure" @@ -440,8 +457,14 @@ msgid "None available" msgstr "Ninguno disponible" #: contrib/admin/templates/admin/invalid_setup.html:8 -msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user." -msgstr "Algo va mal con la instalación de la base de datos. Asegúrate que las tablas necesarias han sido creadas, y que la base de datos puede ser leída por el usuario apropiado." +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" +"Algo va mal con la instalación de la base de datos. Asegúrate que las tablas " +"necesarias han sido creadas, y que la base de datos puede ser leída por el " +"usuario apropiado." #: contrib/admin/templates/admin/login.html:17 #: contrib/comments/templates/comments/form.html:6 @@ -455,7 +478,7 @@ msgid "Password:" msgstr "Clave:" #: contrib/admin/templates/admin/login.html:25 -#: contrib/admin/views/decorators.py:24 +#: contrib/admin/views/decorators.py:31 msgid "Log in" msgstr "Identificarse" @@ -476,8 +499,12 @@ msgid "DATE_WITH_TIME_FULL" msgstr "j M Y P" #: contrib/admin/templates/admin/object_history.html:35 -msgid "This object doesn't have a change history. It probably wasn't added via this admin site." -msgstr "Este objeto no tiene histórico de cambios. Probablemente no fue añadido usando este sitio de administración." +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Este objeto no tiene histórico de cambios. Probablemente no fue añadido " +"usando este sitio de administración." #: contrib/admin/templates/admin/pagination.html:10 msgid "Show all" @@ -516,8 +543,12 @@ msgid "Save" msgstr "Grabar" #: contrib/admin/templates/admin/auth/user/add_form.html:6 -msgid "First, enter a username and password. Then, you'll be able to edit more user options." -msgstr "Primero introduzca un nombre de usuario y una contraseña. Luego podrá editar el resto de opciones del usuario." +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" +"Primero introduzca un nombre de usuario y una contraseña. Luego podrá editar " +"el resto de opciones del usuario." #: contrib/admin/templates/admin/auth/user/add_form.html:12 msgid "Username" @@ -541,7 +572,9 @@ msgstr "Introduzca la misma contraseña que arriba, para verificación" #: contrib/admin/templates/admin/auth/user/change_password.html:27 #, python-format msgid "Enter a new password for the user %(username)s." -msgstr "Introduzca una nueva contraseña para el usuario %(username)s." +msgstr "" +"Introduzca una nueva contraseña para el usuario %(username)s." #: contrib/admin/templates/admin_doc/bookmarklets.html:3 msgid "Bookmarklets" @@ -563,27 +596,36 @@ msgid "" msgstr "" "\n" "

      Para instalar bookmarklets, arrastre el enlace a su barra\n" -"de favoritos, o pulse con el botón derecho el enlace y añádalo a sus favoritos.\n" +"de favoritos, o pulse con el botón derecho el enlace y añádalo a sus " +"favoritos.\n" "Ahora puede escoger el bookmarklet desde cualquier página en el sitio.\n" "Observer que algunos de estos bookmarklets precisan que esté viendo\n" "el sitio desde un computador señalado como \"interno\" (hable\n" -"con su administrador de sistemas si no está seguro de si el suyo lo es).

      \n" +"con su administrador de sistemas si no está seguro de si el suyo lo es).\n" #: contrib/admin/templates/admin_doc/bookmarklets.html:18 msgid "Documentation for this page" msgstr "Documentación de esta página" #: contrib/admin/templates/admin_doc/bookmarklets.html:19 -msgid "Jumps you from any page to the documentation for the view that generates that page." -msgstr "Le lleva desde cualquier página a la documentación de la vista que la genera." +msgid "" +"Jumps you from any page to the documentation for the view that generates " +"that page." +msgstr "" +"Le lleva desde cualquier página a la documentación de la vista que la genera." #: contrib/admin/templates/admin_doc/bookmarklets.html:21 msgid "Show object ID" msgstr "Mostrar ID de objeto" #: contrib/admin/templates/admin_doc/bookmarklets.html:22 -msgid "Shows the content-type and unique ID for pages that represent a single object." -msgstr "Muestra el tipo de contenido e ID unívoco de las páginas que representan un único objeto." +msgid "" +"Shows the content-type and unique ID for pages that represent a single " +"object." +msgstr "" +"Muestra el tipo de contenido e ID unívoco de las páginas que representan un " +"único objeto." #: contrib/admin/templates/admin_doc/bookmarklets.html:24 msgid "Edit this object (current window)" @@ -591,7 +633,9 @@ msgstr "Editar este objeto (ventana actual)" #: contrib/admin/templates/admin_doc/bookmarklets.html:25 msgid "Jumps to the admin page for pages that represent a single object." -msgstr "Le lleva a la página de administración de páginas que representan un único objeto." +msgstr "" +"Le lleva a la página de administración de páginas que representan un único " +"objeto." #: contrib/admin/templates/admin_doc/bookmarklets.html:27 msgid "Edit this object (new window)" @@ -599,7 +643,8 @@ msgstr "Editar este objeto (nueva ventana)" #: contrib/admin/templates/admin_doc/bookmarklets.html:28 msgid "As above, but opens the admin page in a new window." -msgstr "Como antes, pero abre la página de administración en una nueva ventana." +msgstr "" +"Como antes, pero abre la página de administración en una nueva ventana." #: contrib/admin/templates/registration/logged_out.html:8 msgid "Thanks for spending some quality time with the Web site today." @@ -626,8 +671,12 @@ msgid "Your password was changed." msgstr "Su clave ha sido cambiada." #: contrib/admin/templates/registration/password_change_form.html:11 -msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." -msgstr "Por favor, introduzca su clave antigua, por seguridad, y después introduzca la nueva clave dos veces para verificar que la ha escrito correctamente." +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Por favor, introduzca su clave antigua, por seguridad, y después introduzca " +"la nueva clave dos veces para verificar que la ha escrito correctamente." #: contrib/admin/templates/registration/password_change_form.html:16 msgid "Old password:" @@ -658,8 +707,12 @@ msgid "Password reset successful" msgstr "Recuperación de clave exitosa" #: contrib/admin/templates/registration/password_reset_done.html:12 -msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly." -msgstr "Le hemos enviado una clave nueva a la dirección que ha suministrado. Debería recibirla en breve." +msgid "" +"We've e-mailed a new password to the e-mail address you submitted. You " +"should be receiving it shortly." +msgstr "" +"Le hemos enviado una clave nueva a la dirección que ha suministrado. Debería " +"recibirla en breve." #: contrib/admin/templates/registration/password_reset_email.html:2 msgid "You're receiving this e-mail because you requested a password reset" @@ -693,8 +746,12 @@ msgid "The %(site_name)s team" msgstr "El equipo de %(site_name)s" #: contrib/admin/templates/registration/password_reset_form.html:12 -msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you." -msgstr "¿Ha olvidado su clave? Introduzca su dirección de correo electrónico, y crearemos una nueva que le enviaremos por correo." +msgid "" +"Forgotten your password? Enter your e-mail address below, and we'll reset " +"your password and e-mail the new one to you." +msgstr "" +"¿Ha olvidado su clave? Introduzca su dirección de correo electrónico, y " +"crearemos una nueva que le enviaremos por correo." #: contrib/admin/templates/registration/password_reset_form.html:16 msgid "E-mail address:" @@ -720,19 +777,17 @@ msgstr "Actualmente:" msgid "Change:" msgstr "Modificar:" -#: contrib/admin/templatetags/admin_list.py:254 +#: contrib/admin/templatetags/admin_list.py:257 msgid "All dates" msgstr "Todas las fechas" -#: contrib/admin/views/auth.py:20 -#: contrib/admin/views/main.py:264 +#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:267 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." msgstr "Se añadió con éxito el %(name)s \"%(obj)s\"." -#: contrib/admin/views/auth.py:25 -#: contrib/admin/views/main.py:268 -#: contrib/admin/views/main.py:354 +#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:271 +#: contrib/admin/views/main.py:356 msgid "You may edit it again below." msgstr "Puede editarlo de nuevo abajo." @@ -749,277 +804,276 @@ msgstr "La clave se ha cambiado exitosamente." msgid "Change password: %s" msgstr "Cambiar clave: %s" -#: contrib/admin/views/decorators.py:10 -#: contrib/auth/forms.py:60 -msgid "Please enter a correct username and password. Note that both fields are case-sensitive." -msgstr "Por favor, introduzca un correcto nombre de usuario y contraseña. Note que ambos campos son sensibles a mayúsculas/minúsculas." - -#: contrib/admin/views/decorators.py:62 -msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved." -msgstr "Por favor, identifíquese de nuevo, porque su sesión ha caducado. No se preocupe: se ha guardado su envío." +#: contrib/admin/views/decorators.py:17 contrib/auth/forms.py:60 +msgid "" +"Please enter a correct username and password. Note that both fields are case-" +"sensitive." +msgstr "" +"Por favor, introduzca un correcto nombre de usuario y contraseña. Note que " +"ambos campos son sensibles a mayúsculas/minúsculas." #: contrib/admin/views/decorators.py:69 -msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again." -msgstr "Parece que su navegador no está configurado para aceptar cookies. Actívelas por favor, recargue esta página, e inténtelo de nuevo." +msgid "" +"Please log in again, because your session has expired. Don't worry: Your " +"submission has been saved." +msgstr "" +"Por favor, identifíquese de nuevo, porque su sesión ha caducado. No se " +"preocupe: se ha guardado su envío." -#: contrib/admin/views/decorators.py:83 +#: contrib/admin/views/decorators.py:76 +msgid "" +"Looks like your browser isn't configured to accept cookies. Please enable " +"cookies, reload this page, and try again." +msgstr "" +"Parece que su navegador no está configurado para aceptar cookies. Actívelas " +"por favor, recargue esta página, e inténtelo de nuevo." + +#: contrib/admin/views/decorators.py:90 msgid "Usernames cannot contain the '@' character." msgstr "Los nombres de usuario no pueden contener el carácter '@'." -#: contrib/admin/views/decorators.py:85 +#: contrib/admin/views/decorators.py:92 #, 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." +msgstr "" +"Su dirección de correo no es su nombre de usuario. Pruebe con '%s' en su " +"lugar." -#: contrib/admin/views/doc.py:47 -#: contrib/admin/views/doc.py:49 -#: contrib/admin/views/doc.py:51 +#: contrib/admin/views/doc.py:48 contrib/admin/views/doc.py:50 +#: contrib/admin/views/doc.py:52 msgid "tag:" msgstr "etiqueta:" -#: contrib/admin/views/doc.py:78 -#: contrib/admin/views/doc.py:80 -#: contrib/admin/views/doc.py:82 +#: contrib/admin/views/doc.py:79 contrib/admin/views/doc.py:81 +#: contrib/admin/views/doc.py:83 msgid "filter:" msgstr "filtro:" -#: contrib/admin/views/doc.py:136 -#: contrib/admin/views/doc.py:138 -#: contrib/admin/views/doc.py:140 +#: contrib/admin/views/doc.py:137 contrib/admin/views/doc.py:139 +#: contrib/admin/views/doc.py:141 msgid "view:" msgstr "vista:" -#: contrib/admin/views/doc.py:165 +#: contrib/admin/views/doc.py:166 #, python-format msgid "App %r not found" msgstr "Aplicación %r no encontrada" -#: contrib/admin/views/doc.py:172 +#: contrib/admin/views/doc.py:173 #, python-format msgid "Model %(name)r not found in app %(label)r" msgstr "El modelo %(name)s no se ha encontrado en la aplicación %(label)r" -#: contrib/admin/views/doc.py:184 +#: contrib/admin/views/doc.py:185 #, python-format msgid "the related `%(label)s.%(type)s` object" msgstr "el objeto relacionado`%(label)s.%(type)s` " -#: contrib/admin/views/doc.py:184 -#: contrib/admin/views/doc.py:206 -#: contrib/admin/views/doc.py:220 -#: contrib/admin/views/doc.py:225 +#: contrib/admin/views/doc.py:185 contrib/admin/views/doc.py:207 +#: contrib/admin/views/doc.py:221 contrib/admin/views/doc.py:226 msgid "model:" msgstr "modelo:" -#: contrib/admin/views/doc.py:215 +#: contrib/admin/views/doc.py:216 #, python-format msgid "related `%(label)s.%(name)s` objects" msgstr "los objetos relacionados `%(label)s.%(name)s`" -#: contrib/admin/views/doc.py:220 +#: contrib/admin/views/doc.py:221 #, python-format msgid "all %s" msgstr "todo %s" -#: contrib/admin/views/doc.py:225 +#: contrib/admin/views/doc.py:226 #, python-format msgid "number of %s" msgstr "número de %s" -#: contrib/admin/views/doc.py:230 +#: contrib/admin/views/doc.py:231 #, python-format msgid "Fields on %s objects" msgstr "Campos en %s objetos" -#: contrib/admin/views/doc.py:292 -#: contrib/admin/views/doc.py:303 -#: contrib/admin/views/doc.py:305 -#: contrib/admin/views/doc.py:311 -#: contrib/admin/views/doc.py:312 -#: contrib/admin/views/doc.py:314 +#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:304 +#: contrib/admin/views/doc.py:306 contrib/admin/views/doc.py:312 +#: contrib/admin/views/doc.py:313 contrib/admin/views/doc.py:315 msgid "Integer" msgstr "Entero" -#: contrib/admin/views/doc.py:293 +#: contrib/admin/views/doc.py:294 msgid "Boolean (Either True or False)" msgstr "Booleano (Verdadero o Falso)" -#: contrib/admin/views/doc.py:294 -#: contrib/admin/views/doc.py:313 +#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:314 #, python-format msgid "String (up to %(max_length)s)" msgstr "Cadena (máximo %(max_length)s)" -#: contrib/admin/views/doc.py:295 +#: contrib/admin/views/doc.py:296 msgid "Comma-separated integers" msgstr "Enteros separados por comas" -#: contrib/admin/views/doc.py:296 +#: contrib/admin/views/doc.py:297 msgid "Date (without time)" msgstr "Fecha (sin hora)" -#: contrib/admin/views/doc.py:297 +#: contrib/admin/views/doc.py:298 msgid "Date (with time)" msgstr "Fecha (con hora)" -#: contrib/admin/views/doc.py:298 +#: contrib/admin/views/doc.py:299 msgid "Decimal number" msgstr "Número decimal" -#: contrib/admin/views/doc.py:299 +#: contrib/admin/views/doc.py:300 msgid "E-mail address" msgstr "Dirección de correo electrónico" -#: contrib/admin/views/doc.py:300 -#: contrib/admin/views/doc.py:301 -#: contrib/admin/views/doc.py:304 +#: contrib/admin/views/doc.py:301 contrib/admin/views/doc.py:302 +#: contrib/admin/views/doc.py:305 msgid "File path" msgstr "Ruta de fichero" -#: contrib/admin/views/doc.py:302 +#: contrib/admin/views/doc.py:303 msgid "Floating point number" msgstr "Número decimal" -#: contrib/admin/views/doc.py:306 -#: contrib/comments/models.py:85 +#: contrib/admin/views/doc.py:307 contrib/comments/models.py:89 msgid "IP address" msgstr "Dirección IP" -#: contrib/admin/views/doc.py:308 +#: contrib/admin/views/doc.py:309 msgid "Boolean (Either True, False or None)" msgstr "Booleano (Verdadero, Falso o Nulo)" -#: contrib/admin/views/doc.py:309 +#: contrib/admin/views/doc.py:310 msgid "Relation to parent model" msgstr "Relación con el modelo padre" -#: contrib/admin/views/doc.py:310 +#: contrib/admin/views/doc.py:311 msgid "Phone number" msgstr "Número de teléfono" -#: contrib/admin/views/doc.py:315 +#: contrib/admin/views/doc.py:316 msgid "Text" msgstr "Texto" -#: contrib/admin/views/doc.py:316 +#: contrib/admin/views/doc.py:317 msgid "Time" msgstr "Hora" -#: contrib/admin/views/doc.py:317 -#: contrib/flatpages/models.py:7 +#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:7 msgid "URL" msgstr "URL" -#: contrib/admin/views/doc.py:318 +#: contrib/admin/views/doc.py:319 msgid "U.S. state (two uppercase letters)" msgstr "Estado de los EEUU (dos letras mayúsculas)" -#: contrib/admin/views/doc.py:319 +#: contrib/admin/views/doc.py:320 msgid "XML text" msgstr "Texto XML" -#: contrib/admin/views/doc.py:345 +#: contrib/admin/views/doc.py:346 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s no parece ser un objeto urlpattern" -#: contrib/admin/views/main.py:230 +#: contrib/admin/views/main.py:233 msgid "Site administration" msgstr "Sitio administrativo" -#: contrib/admin/views/main.py:278 -#: contrib/admin/views/main.py:363 +#: contrib/admin/views/main.py:280 contrib/admin/views/main.py:365 #, python-format msgid "You may add another %s below." msgstr "Puede agregar otro %s abajo." -#: contrib/admin/views/main.py:296 +#: contrib/admin/views/main.py:298 #, python-format msgid "Add %s" msgstr "Agregar %s" -#: contrib/admin/views/main.py:342 +#: contrib/admin/views/main.py:344 #, python-format msgid "Added %s." msgstr "Agregado %s." -#: contrib/admin/views/main.py:342 -#: contrib/admin/views/main.py:344 -#: contrib/admin/views/main.py:346 -#: core/validators.py:283 +#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346 +#: contrib/admin/views/main.py:348 core/validators.py:283 #: db/models/manipulators.py:309 msgid "and" msgstr "y" -#: contrib/admin/views/main.py:344 +#: contrib/admin/views/main.py:346 #, python-format msgid "Changed %s." msgstr "Modificado %s." -#: contrib/admin/views/main.py:346 +#: contrib/admin/views/main.py:348 #, python-format msgid "Deleted %s." msgstr "Borrado %s." -#: contrib/admin/views/main.py:349 +#: contrib/admin/views/main.py:351 msgid "No fields changed." msgstr "No ha cambiado ningún campo." -#: contrib/admin/views/main.py:352 +#: 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." -#: contrib/admin/views/main.py:360 +#: contrib/admin/views/main.py:362 #, python-format -msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." -msgstr "Se agregó con éxito el %(name)s \"%(obj)s. Puede editarlo de nuevo abajo." +msgid "" +"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." +msgstr "" +"Se agregó con éxito el %(name)s \"%(obj)s. Puede editarlo de nuevo abajo." -#: contrib/admin/views/main.py:398 +#: contrib/admin/views/main.py:400 #, python-format msgid "Change %s" msgstr "Modificar %s" -#: contrib/admin/views/main.py:483 +#: contrib/admin/views/main.py:487 #, python-format msgid "One or more %(fieldname)s in %(name)s: %(obj)s" msgstr "Uno o más %(fieldname)s en %(name)s: %(obj)s" -#: contrib/admin/views/main.py:488 +#: contrib/admin/views/main.py:492 #, python-format msgid "One or more %(fieldname)s in %(name)s:" msgstr "Uno o más %(fieldname)s en %(name)s:" -#: contrib/admin/views/main.py:520 +#: contrib/admin/views/main.py:524 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "Se eliminó con éxito el %(name)s \"%(obj)s\"." -#: contrib/admin/views/main.py:523 +#: contrib/admin/views/main.py:527 msgid "Are you sure?" msgstr "¿Está seguro?" -#: contrib/admin/views/main.py:545 +#: contrib/admin/views/main.py:549 #, python-format msgid "Change history: %s" msgstr "Modificar histórico: %s" -#: contrib/admin/views/main.py:579 +#: contrib/admin/views/main.py:583 #, python-format msgid "Select %s" msgstr "Escoja %s" -#: contrib/admin/views/main.py:579 +#: contrib/admin/views/main.py:583 #, python-format msgid "Select %s to change" msgstr "Escoja %s para modificar" -#: contrib/admin/views/main.py:780 +#: contrib/admin/views/main.py:784 msgid "Database error" msgstr "Error en la base de datos" -#: contrib/auth/forms.py:17 -#: contrib/auth/forms.py:138 +#: contrib/auth/forms.py:17 contrib/auth/forms.py:138 msgid "The two password fields didn't match." msgstr "Las dos contraseñas no coinciden." @@ -1028,27 +1082,42 @@ msgid "A user with that username already exists." msgstr "Ya existe un usuario con este nombre." #: contrib/auth/forms.py:53 -msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in." -msgstr "Tu navegador de internet parece no tener las cookies habilitadas. Las cookies se necesitan para poder ingresar." +msgid "" +"Your Web browser doesn't appear to have cookies enabled. Cookies are " +"required for logging in." +msgstr "" +"Tu navegador de internet parece no tener las cookies habilitadas. Las " +"cookies se necesitan para poder ingresar." #: contrib/auth/forms.py:62 msgid "This account is inactive." msgstr "Esta cuenta está inactiva." #: contrib/auth/forms.py:84 -msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?" -msgstr "Esta dirección de correo electrónico no tiene una cuenta de usuario asociada. ¿Está seguro de que se ha registrado?" +msgid "" +"That e-mail address doesn't have an associated user account. Are you sure " +"you've registered?" +msgstr "" +"Esta dirección de correo electrónico no tiene una cuenta de usuario " +"asociada. ¿Está seguro de que se ha registrado?" + +#: contrib/auth/forms.py:107 +#, python-format +msgid "Password reset on %s" +msgstr "Clave restablecida en %s" #: contrib/auth/forms.py:117 msgid "The two 'new password' fields didn't match." -msgstr "Las contraseñas introducidas en los campos 'nueva contraseña' no coinciden." +msgstr "" +"Las contraseñas introducidas en los campos 'nueva contraseña' no coinciden." #: contrib/auth/forms.py:124 msgid "Your old password was entered incorrectly. Please enter it again." -msgstr "Tu contraseña antigua es incorrecta. Por favor, vuelve a introducirla correctamente." +msgstr "" +"Tu contraseña antigua es incorrecta. Por favor, vuelve a introducirla " +"correctamente." -#: contrib/auth/models.py:73 -#: contrib/auth/models.py:93 +#: contrib/auth/models.py:73 contrib/auth/models.py:93 msgid "name" msgstr "nombre" @@ -1060,8 +1129,7 @@ msgstr "nombre en código" msgid "permission" msgstr "permiso" -#: contrib/auth/models.py:79 -#: contrib/auth/models.py:94 +#: contrib/auth/models.py:79 contrib/auth/models.py:94 msgid "permissions" msgstr "permisos" @@ -1069,8 +1137,7 @@ msgstr "permisos" msgid "group" msgstr "grupo" -#: contrib/auth/models.py:98 -#: contrib/auth/models.py:141 +#: contrib/auth/models.py:98 contrib/auth/models.py:141 msgid "groups" msgstr "grupos" @@ -1079,8 +1146,12 @@ msgid "username" msgstr "nombre de usuario" #: contrib/auth/models.py:131 -msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)." -msgstr "Requerido. 30 caracteres o menos. Sólo caracteres alfanuméricos (letras, dígitos y guiones bajos)." +msgid "" +"Required. 30 characters or fewer. Alphanumeric characters only (letters, " +"digits and underscores)." +msgstr "" +"Requerido. 30 caracteres o menos. Sólo caracteres alfanuméricos (letras, " +"dígitos y guiones bajos)." #: contrib/auth/models.py:132 msgid "first name" @@ -1099,8 +1170,12 @@ msgid "password" msgstr "clave" #: contrib/auth/models.py:135 -msgid "Use '[algo]$[salt]$[hexdigest]' or use the change password form." -msgstr "Use'[algo]$[sal]$[hash hexadecimal]' o use el formulario para cambiar la contraseña." +msgid "" +"Use '[algo]$[salt]$[hexdigest]' or use the change " +"password form." +msgstr "" +"Use'[algo]$[sal]$[hash hexadecimal]' o use el " +"formulario para cambiar la contraseña." #: contrib/auth/models.py:136 msgid "staff status" @@ -1115,16 +1190,24 @@ msgid "active" msgstr "activo" #: contrib/auth/models.py:137 -msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts." -msgstr "Indica si el usuario puede entrar en este sitio de administración. Desmarque esto en lugar de borrar la cuenta." +msgid "" +"Designates whether this user can log into the Django admin. Unselect this " +"instead of deleting accounts." +msgstr "" +"Indica si el usuario puede entrar en este sitio de administración. Desmarque " +"esto en lugar de borrar la cuenta." #: contrib/auth/models.py:138 msgid "superuser status" msgstr "es superusuario" #: contrib/auth/models.py:138 -msgid "Designates that this user has all permissions without explicitly assigning them." -msgstr "Indica que este usuario tiene todos los permisos sin asignárselos explícitamente." +msgid "" +"Designates that this user has all permissions without explicitly assigning " +"them." +msgstr "" +"Indica que este usuario tiene todos los permisos sin asignárselos " +"explícitamente." #: contrib/auth/models.py:139 msgid "last login" @@ -1135,8 +1218,12 @@ msgid "date joined" msgstr "fecha de creación" #: contrib/auth/models.py:142 -msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in." -msgstr "Además de los permisos asignados manualmente, este usuario también tendrá todos los permisos de los grupos en los que esté." +msgid "" +"In addition to the permissions manually assigned, this user will also get " +"all permissions granted to each group he/she is in." +msgstr "" +"Además de los permisos asignados manualmente, este usuario también tendrá " +"todos los permisos de los grupos en los que esté." #: contrib/auth/models.py:143 msgid "user permissions" @@ -1174,85 +1261,84 @@ msgstr "mensaje" msgid "Logged out" msgstr "Sesión terminada" -#: contrib/comments/models.py:67 -#: contrib/comments/models.py:169 +#: contrib/comments/models.py:71 contrib/comments/models.py:176 msgid "object ID" msgstr "ID de objeto" -#: contrib/comments/models.py:68 +#: contrib/comments/models.py:72 msgid "headline" msgstr "encabezado" -#: contrib/comments/models.py:69 -#: contrib/comments/models.py:90 -#: contrib/comments/models.py:170 +#: contrib/comments/models.py:73 contrib/comments/models.py:95 +#: contrib/comments/models.py:177 msgid "comment" msgstr "comentario" -#: contrib/comments/models.py:70 +#: contrib/comments/models.py:74 msgid "rating #1" msgstr "calificación 1" -#: contrib/comments/models.py:71 +#: contrib/comments/models.py:75 msgid "rating #2" msgstr "calificación 2" -#: contrib/comments/models.py:72 +#: contrib/comments/models.py:76 msgid "rating #3" msgstr "calificación 3" -#: contrib/comments/models.py:73 +#: contrib/comments/models.py:77 msgid "rating #4" msgstr "calificación 4" -#: contrib/comments/models.py:74 +#: contrib/comments/models.py:78 msgid "rating #5" msgstr "calificación 5" -#: contrib/comments/models.py:75 +#: contrib/comments/models.py:79 msgid "rating #6" msgstr "calificación 6" -#: contrib/comments/models.py:76 +#: contrib/comments/models.py:80 msgid "rating #7" msgstr "calificación 7" -#: contrib/comments/models.py:77 +#: contrib/comments/models.py:81 msgid "rating #8" msgstr "calificación 8" -#: contrib/comments/models.py:82 +#: contrib/comments/models.py:86 msgid "is valid rating" msgstr "es calificación válida" -#: contrib/comments/models.py:83 -#: contrib/comments/models.py:172 +#: contrib/comments/models.py:87 contrib/comments/models.py:179 msgid "date/time submitted" msgstr "fecha/hora de envío" -#: contrib/comments/models.py:84 -#: contrib/comments/models.py:173 +#: contrib/comments/models.py:88 contrib/comments/models.py:180 msgid "is public" msgstr "es público" -#: contrib/comments/models.py:86 +#: contrib/comments/models.py:90 msgid "is removed" msgstr "está eliminado" -#: 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 "Marque esta caja si el comentario es inapropiado. En su lugar se mostrará \"Este comentario ha sido eliminado\"." +#: contrib/comments/models.py:90 +msgid "" +"Check this box if the comment is inappropriate. A \"This comment has been " +"removed\" message will be displayed instead." +msgstr "" +"Marque esta caja si el comentario es inapropiado. En su lugar se mostrará " +"\"Este comentario ha sido eliminado\"." -#: contrib/comments/models.py:91 +#: contrib/comments/models.py:96 msgid "comments" msgstr "comentarios" -#: contrib/comments/models.py:134 -#: contrib/comments/models.py:213 +#: contrib/comments/models.py:140 contrib/comments/models.py:222 msgid "Content object" msgstr "Objeto contenido" -#: contrib/comments/models.py:162 +#: contrib/comments/models.py:168 #, python-format msgid "" "Posted by %(user)s at %(date)s\n" @@ -1267,48 +1353,48 @@ msgstr "" "\n" "http://%(domain)s%(url)s" -#: contrib/comments/models.py:171 +#: contrib/comments/models.py:178 msgid "person's name" msgstr "nombre de la persona" -#: contrib/comments/models.py:174 +#: contrib/comments/models.py:181 msgid "ip address" msgstr "dirección ip" -#: contrib/comments/models.py:176 +#: contrib/comments/models.py:183 msgid "approved by staff" msgstr "aprobado por el staff" -#: contrib/comments/models.py:179 +#: contrib/comments/models.py:187 msgid "free comment" msgstr "comentario libre" -#: contrib/comments/models.py:180 +#: contrib/comments/models.py:188 msgid "free comments" msgstr "comentarios libres" -#: contrib/comments/models.py:239 +#: contrib/comments/models.py:250 msgid "score" msgstr "puntuación" -#: contrib/comments/models.py:240 +#: contrib/comments/models.py:251 msgid "score date" msgstr "fecha de la puntuación" -#: contrib/comments/models.py:243 +#: contrib/comments/models.py:255 msgid "karma score" msgstr "punto karma" -#: contrib/comments/models.py:244 +#: contrib/comments/models.py:256 msgid "karma scores" msgstr "puntos karma" -#: contrib/comments/models.py:248 +#: contrib/comments/models.py:260 #, python-format msgid "%(score)d rating by %(user)s" msgstr "puntuado %(score)d por %(user)s" -#: contrib/comments/models.py:264 +#: contrib/comments/models.py:277 #, python-format msgid "" "This comment was flagged by %(user)s:\n" @@ -1319,36 +1405,36 @@ msgstr "" "\n" "%(text)s" -#: contrib/comments/models.py:271 +#: contrib/comments/models.py:285 msgid "flag date" msgstr "fecha de la marca" -#: contrib/comments/models.py:274 +#: contrib/comments/models.py:289 msgid "user flag" msgstr "marca de usuario" -#: contrib/comments/models.py:275 +#: contrib/comments/models.py:290 msgid "user flags" msgstr "marcas de usuario" -#: contrib/comments/models.py:279 +#: contrib/comments/models.py:294 #, python-format msgid "Flag by %r" msgstr "Marca de %r" -#: contrib/comments/models.py:284 +#: contrib/comments/models.py:300 msgid "deletion date" msgstr "fecha de eliminación" -#: contrib/comments/models.py:286 +#: contrib/comments/models.py:303 msgid "moderator deletion" msgstr "eliminación de moderador" -#: contrib/comments/models.py:287 +#: contrib/comments/models.py:304 msgid "moderator deletions" msgstr "eliminaciones de moderador" -#: contrib/comments/models.py:291 +#: contrib/comments/models.py:308 #, python-format msgid "Moderator deletion by %r" msgstr "Eliminación del moderador %r" @@ -1390,25 +1476,30 @@ msgid "Your name:" msgstr "Tu nombre:" #: contrib/comments/views/comments.py:28 -msgid "This rating is required because you've entered at least one other rating." +msgid "" +"This rating is required because you've entered at least one other rating." msgstr "Se precisa esta puntuación porque ha introducido al menos otra más." #: contrib/comments/views/comments.py:112 #, python-format msgid "" -"This comment was posted by a user who has posted fewer than %(count)s comment:\n" +"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" +"This comment was posted by a user who has posted fewer than %(count)s " +"comments:\n" "\n" "%(text)s" msgstr[0] "" -"Este comentario lo envió un usuario que ha enviado menos de %(count)s comentario:\n" +"Este comentario lo envió un usuario que ha enviado menos de %(count)s " +"comentario:\n" "\n" "%(text)s" msgstr[1] "" -"Este comentario lo envió un usuario que ha enviado menos de %(count)s comentarios:\n" +"Este comentario lo envió un usuario que ha enviado menos de %(count)s " +"comentarios:\n" "\n" "%(text)s" @@ -1436,12 +1527,18 @@ msgstr "No se proporcionó uno o más de los siguientes campos requeridos" #: contrib/comments/views/comments.py:198 #: contrib/comments/views/comments.py:289 msgid "Somebody tampered with the comment form (security violation)" -msgstr "Alguien está jugando con el formulario de comentarios (violación de seguridad)" +msgstr "" +"Alguien está jugando con el formulario de comentarios (violación de " +"seguridad)" #: contrib/comments/views/comments.py:208 #: contrib/comments/views/comments.py:295 -msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid" -msgstr "El formulario de comentarios tiene un parámetro 'target' no válido (el ID de objeto era inválido)" +msgid "" +"The comment form had an invalid 'target' parameter -- the object ID was " +"invalid" +msgstr "" +"El formulario de comentarios tiene un parámetro 'target' no válido (el ID de " +"objeto era inválido)" #: contrib/comments/views/comments.py:259 #: contrib/comments/views/comments.py:324 @@ -1460,21 +1557,24 @@ msgstr "ID de comentario no válido" msgid "No voting for yourself" msgstr "No puedes votarte tú mismo" -#: contrib/contenttypes/models.py:37 +#: contrib/contenttypes/models.py:67 msgid "python model class name" msgstr "nombre de módulo python" -#: contrib/contenttypes/models.py:40 +#: contrib/contenttypes/models.py:71 msgid "content type" msgstr "tipo de contenido" -#: contrib/contenttypes/models.py:41 +#: contrib/contenttypes/models.py:72 msgid "content types" msgstr "tipos de contenido" #: contrib/flatpages/models.py:8 -msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes." -msgstr "Ejemplo: '/about/contact/'. Asegúrese de que pone barras al principio y al final." +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 msgid "title" @@ -1493,8 +1593,12 @@ msgid "template name" msgstr "nombre de plantilla" #: contrib/flatpages/models.py:13 -msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'." -msgstr "Ejemplo: 'flatpages/contact_page.html'. Si no es proporcionado, el sistema usará 'flatpages/default.html'." +msgid "" +"Example: 'flatpages/contact_page.html'. If this isn't provided, the system " +"will use 'flatpages/default.html'." +msgstr "" +"Ejemplo: 'flatpages/contact_page.html'. Si no es proporcionado, el sistema " +"usará 'flatpages/default.html'." #: contrib/flatpages/models.py:14 msgid "registration required" @@ -1512,154 +1616,162 @@ msgstr "página estática" msgid "flat pages" msgstr "páginas estáticas" -#: contrib/humanize/templatetags/humanize.py:20 +#: contrib/flatpages/models.py:24 +msgid "Advanced options" +msgstr "Opciones avanzadas" + +#: contrib/humanize/templatetags/humanize.py:19 msgid "th" msgstr "th" -#: contrib/humanize/templatetags/humanize.py:20 +#: contrib/humanize/templatetags/humanize.py:19 msgid "st" msgstr "st" -#: contrib/humanize/templatetags/humanize.py:20 +#: contrib/humanize/templatetags/humanize.py:19 msgid "nd" msgstr "nd" -#: contrib/humanize/templatetags/humanize.py:20 +#: contrib/humanize/templatetags/humanize.py:19 msgid "rd" msgstr "rd" -#: contrib/humanize/templatetags/humanize.py:50 +#: contrib/humanize/templatetags/humanize.py:51 #, python-format msgid "%(value).1f million" msgid_plural "%(value).1f million" msgstr[0] "%(value).1f millón" msgstr[1] "%(value).1f millión" -#: contrib/humanize/templatetags/humanize.py:53 +#: contrib/humanize/templatetags/humanize.py:54 #, python-format msgid "%(value).1f billion" msgid_plural "%(value).1f billion" msgstr[0] "%(value).1f billión" msgstr[1] "%(value).1f billión" -#: contrib/humanize/templatetags/humanize.py:56 +#: contrib/humanize/templatetags/humanize.py:57 #, python-format msgid "%(value).1f trillion" msgid_plural "%(value).1f trillion" msgstr[0] "%(value).1f trillión" msgstr[1] "%(value).1f trillión" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "one" msgstr "uno" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "two" msgstr "dos" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "three" msgstr "tres" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "four" msgstr "cuatro" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "five" msgstr "cinco" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "six" msgstr "seis" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "seven" msgstr "siete" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "eight" msgstr "ocho" -#: contrib/humanize/templatetags/humanize.py:71 +#: contrib/humanize/templatetags/humanize.py:73 msgid "nine" msgstr "nueve" -#: contrib/humanize/templatetags/humanize.py:90 +#: contrib/humanize/templatetags/humanize.py:93 msgid "today" msgstr "hoy" -#: contrib/humanize/templatetags/humanize.py:92 +#: contrib/humanize/templatetags/humanize.py:95 msgid "tomorrow" msgstr "mañana" -#: contrib/humanize/templatetags/humanize.py:94 +#: contrib/humanize/templatetags/humanize.py:97 msgid "yesterday" msgstr "ayer" -#: contrib/localflavor/ar/forms.py:30 -#: contrib/localflavor/ar/forms.py:38 +#: contrib/localflavor/ar/forms.py:27 msgid "Enter a postal code in the format NNNN or ANNNNAAA." msgstr "Introduzca un código postal en el formato NNNN or ANNNNAAA." -#: contrib/localflavor/ar/forms.py:61 -#: contrib/localflavor/br/forms.py:103 -#: contrib/localflavor/pe/forms.py:34 -#: contrib/localflavor/pe/forms.py:57 +#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96 +#: 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 "Este campo sólo acepta números." -#: contrib/localflavor/ar/forms.py:64 +#: contrib/localflavor/ar/forms.py:50 msgid "This field requires 7 or 8 digits." msgstr "Este campo necesita 7 o 8 dígitos." -#: contrib/localflavor/ar/forms.py:75 +#: contrib/localflavor/ar/forms.py:79 msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." msgstr "Introduzca un CUIT válido en el formato XX-XXXXXXXX-X or XXXXXXXXXXXX." -#: contrib/localflavor/ar/forms.py:88 +#: contrib/localflavor/ar/forms.py:80 msgid "Invalid CUIT." msgstr "CUIT inválido." -#: contrib/localflavor/au/forms.py:18 +#: contrib/localflavor/au/forms.py:16 msgid "Enter a 4 digit post code." msgstr "Introduzca un código postal de 4 dígitos." -#: contrib/localflavor/br/forms.py:23 +#: contrib/localflavor/br/forms.py:21 msgid "Enter a zip code in the format XXXXX-XXX." msgstr "Introduzca un código postal en el formato XXXX-XXXX." -#: contrib/localflavor/br/forms.py:35 +#: contrib/localflavor/br/forms.py:30 msgid "Phone numbers must be in XX-XXXX-XXXX format." msgstr "Los números de teléfono deben tener el formato XXX-XXX-XXXX." -#: contrib/localflavor/br/forms.py:68 -msgid "Select a valid brazilian state. That state is not one of the available states." -msgstr "Seleccione un estado brasileño válido. Este estado no es uno de los estados disponibles." +#: contrib/localflavor/br/forms.py:58 +msgid "" +"Select a valid brazilian state. That state is not one of the available " +"states." +msgstr "" +"Seleccione un estado brasileño válido. Este estado no es uno de los estados " +"disponibles." -#: contrib/localflavor/br/forms.py:105 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Este campo necesita al menos 11 o 14 caracteres" - -#: contrib/localflavor/br/forms.py:115 +#: contrib/localflavor/br/forms.py:94 msgid "Invalid CPF number." msgstr "Número CPF inválido." -#: contrib/localflavor/br/forms.py:137 -msgid "This field requires at least 14 digits" -msgstr "Este campo necesita 14 dígitos como máximo" +#: contrib/localflavor/br/forms.py:95 +msgid "This field requires at most 11 digits or 14 characters." +msgstr "Este campo necesita al menos 11 o 14 caracteres" -#: contrib/localflavor/br/forms.py:147 +#: contrib/localflavor/br/forms.py:134 msgid "Invalid CNPJ number." msgstr "Número CNPJ inválido" -#: contrib/localflavor/ca/forms.py:19 +#: contrib/localflavor/br/forms.py:136 +msgid "This field requires at least 14 digits" +msgstr "Este campo necesita 14 dígitos como máximo" + +#: contrib/localflavor/ca/forms.py:17 msgid "Enter a postal code in the format XXX XXX." msgstr "Introduzca un código postal en el formato XXX XXX." -#: contrib/localflavor/ca/forms.py:81 -msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format." -msgstr "Introduzca un Número Seguro Social de Canada válido en el formato XXX-XXX-XXXX." +#: 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." #: contrib/localflavor/ch/ch_states.py:5 msgid "Aargau" @@ -1765,96 +1877,106 @@ msgstr "Zug" msgid "Zurich" msgstr "Zurich" -#: contrib/localflavor/ch/forms.py:18 -#: contrib/localflavor/no/forms.py:14 +#: contrib/localflavor/ch/forms.py:16 contrib/localflavor/no/forms.py:12 msgid "Enter a zip code in the format XXXX." msgstr "Introduzca un código postal en el formato XXXX." -#: contrib/localflavor/ch/forms.py:90 -msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format." -msgstr "Introduzca una identificación suiza válida o un número de pasaporte en el formato X1234567<0 or 1234567890." +#: contrib/localflavor/ch/forms.py:64 +msgid "" +"Enter a valid Swiss identity or passport card number in X1234567<0 or " +"1234567890 format." +msgstr "" +"Introduzca una identificación suiza válida o un número de pasaporte en el " +"formato X1234567<0 or 1234567890." -#: contrib/localflavor/cl/forms.py:32 -msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X." +#: contrib/localflavor/cl/forms.py:29 +msgid "Enter a valid Chilean RUT." +msgstr "Introduzca un RUT chileno válido" + +#: contrib/localflavor/cl/forms.py:30 +msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." msgstr "Introduzca un RUT chileno válido. El formato es XX.XXX.XXX-X." -#: contrib/localflavor/cl/forms.py:37 -msgid "Enter valid a Chilean RUT" -msgstr "Introduzca un RUT chileno válido" +#: contrib/localflavor/cl/forms.py:31 +msgid "The Chilean RUT is not valid." +msgstr "El RUT chileno no es válido." #: contrib/localflavor/de/de_states.py:5 msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" +msgstr "" #: contrib/localflavor/de/de_states.py:6 msgid "Bavaria" -msgstr "Bavaria" +msgstr "" #: contrib/localflavor/de/de_states.py:7 msgid "Berlin" -msgstr "Berlín" +msgstr "" #: contrib/localflavor/de/de_states.py:8 msgid "Brandenburg" -msgstr "Brandenburg" +msgstr "" #: contrib/localflavor/de/de_states.py:9 msgid "Bremen" -msgstr "Bremen" +msgstr "" #: contrib/localflavor/de/de_states.py:10 msgid "Hamburg" -msgstr "Hamburg" +msgstr "" #: contrib/localflavor/de/de_states.py:11 msgid "Hessen" -msgstr "Hessen" +msgstr "" #: contrib/localflavor/de/de_states.py:12 msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" +msgstr "" #: contrib/localflavor/de/de_states.py:13 msgid "Lower Saxony" -msgstr "Lower Saxony" +msgstr "" #: contrib/localflavor/de/de_states.py:14 msgid "North Rhine-Westphalia" -msgstr "North Rhine-Westphalia" +msgstr "" #: contrib/localflavor/de/de_states.py:15 msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" +msgstr "" #: contrib/localflavor/de/de_states.py:16 msgid "Saarland" -msgstr "Saarland" +msgstr "" #: contrib/localflavor/de/de_states.py:17 msgid "Saxony" -msgstr "Saxony" +msgstr "" #: contrib/localflavor/de/de_states.py:18 msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" +msgstr "" #: contrib/localflavor/de/de_states.py:19 msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" +msgstr "" #: contrib/localflavor/de/de_states.py:20 msgid "Thuringia" -msgstr "Thuringia" +msgstr "" -#: contrib/localflavor/de/forms.py:16 -#: contrib/localflavor/fi/forms.py:14 -#: contrib/localflavor/fr/forms.py:17 +#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12 +#: contrib/localflavor/fr/forms.py:15 msgid "Enter a zip code in the format XXXXX." msgstr "Introduzca un código postal en el formato XXXXX." -#: contrib/localflavor/de/forms.py:60 -msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format." -msgstr "Introduzca un número de tarjeta de identidad de Alemania válida en el formato XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." +#: contrib/localflavor/de/forms.py:41 +msgid "" +"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " +"format." +msgstr "" +"Introduzca un número de tarjeta de identidad de Alemania válida en el " +"formato XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." #: contrib/localflavor/es/es_provinces.py:5 msgid "Arava" @@ -2123,63 +2245,73 @@ msgstr "Comunidad Foral de Navarra" msgid "Valencian Community" msgstr "Comunidad Valenciana" -#: contrib/localflavor/es/forms.py:22 +#: contrib/localflavor/es/forms.py:19 msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." msgstr "Introduzca un código postal en el rango y formato 01XXX - 52XXX." #: contrib/localflavor/es/forms.py:39 -msgid "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX." -msgstr "Introduzca un número de teléfono válido en el formato 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX." +msgid "" +"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " +"9XXXXXXXX." +msgstr "" +"Introduzca un número de teléfono válido en el formato 6XXXXXXXX, 8XXXXXXXX " +"or 9XXXXXXXX." -#: contrib/localflavor/es/forms.py:73 -#: contrib/localflavor/es/forms.py:108 -#: db/models/fields/related.py:55 -#, python-format -msgid "Please enter a valid %s." -msgstr "Por favor, introduzca un %s válido." +#: contrib/localflavor/es/forms.py:66 +msgid "Please enter a valid NIF, NIE, or CIF." +msgstr "Por favor introduzca un NIF, NIE o CIF válido." -#: contrib/localflavor/es/forms.py:91 +#: contrib/localflavor/es/forms.py:67 +msgid "Please enter a valid NIF or NIE." +msgstr "Por favor, introduzca un NIF o NIE válido." + +#: contrib/localflavor/es/forms.py:68 msgid "Invalid checksum for NIF." msgstr "El NIF es incorrecto." -#: contrib/localflavor/es/forms.py:97 +#: contrib/localflavor/es/forms.py:69 msgid "Invalid checksum for NIE." msgstr "El NIE es incorrecto." -#: contrib/localflavor/es/forms.py:106 +#: contrib/localflavor/es/forms.py:70 msgid "Invalid checksum for CIF." msgstr "El CIF es incorrecto." -#: contrib/localflavor/es/forms.py:136 -msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "Introduzca un número de cuenta bancaria en el formato XXXX-XXXX-XX-XXXXXXXXXX." +#: contrib/localflavor/es/forms.py:142 +msgid "" +"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." +msgstr "" +"Introduzca un número de cuenta bancaria en el formato XXXX-XXXX-XX-" +"XXXXXXXXXX." -#: contrib/localflavor/es/forms.py:150 +#: contrib/localflavor/es/forms.py:143 msgid "Invalid checksum for bank account number." msgstr "El número de cuenta bancaria es incorrecto." -#: contrib/localflavor/fi/forms.py:40 -#: contrib/localflavor/fi/forms.py:45 +#: contrib/localflavor/fi/forms.py:28 msgid "Enter a valid Finnish social security number." msgstr "Introduzca un número de seguro social finlandés válido." -#: contrib/localflavor/in_/forms.py:16 +#: contrib/localflavor/in_/forms.py:14 msgid "Enter a zip code in the format XXXXXXX." msgstr "Introduzca un código postal en el formato XXXXXXX." #: contrib/localflavor/is_/forms.py:17 -msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Introduzca un número de identificación de Islandia válido. El formato es XXXXXX-XXXX." +msgid "" +"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." +msgstr "" +"Introduzca un número de identificación de Islandia válido. El formato es " +"XXXXXX-XXXX." -#: contrib/localflavor/is_/forms.py:31 +#: contrib/localflavor/is_/forms.py:18 msgid "The Icelandic identification number is not valid." msgstr "El número de identificación de Islandia no es válido." -#: contrib/localflavor/it/forms.py:16 +#: contrib/localflavor/it/forms.py:14 msgid "Enter a valid zip code." msgstr "Introduzca un código postal válido." -#: contrib/localflavor/it/forms.py:41 +#: contrib/localflavor/it/forms.py:43 msgid "Enter a valid Social Security number." msgstr "Introduzca un número de Seguro Social válido." @@ -2187,7 +2319,7 @@ msgstr "Introduzca un número de Seguro Social válido." msgid "Enter a valid VAT number." msgstr "Introduzca un número VAT válido." -#: contrib/localflavor/jp/forms.py:21 +#: contrib/localflavor/jp/forms.py:17 msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." msgstr "Introduzca un código postal en el formato XXXXX o XXXX-XXXX." @@ -2379,15 +2511,143 @@ msgstr "Kagoshima" msgid "Okinawa" msgstr "Okinawa" -#: contrib/localflavor/nl/forms.py:25 +#: contrib/localflavor/mx/mx_states.py:12 +msgid "Aguascalientes" +msgstr "Aguascalientes" + +#: contrib/localflavor/mx/mx_states.py:13 +msgid "Baja California" +msgstr "Baja California" + +#: contrib/localflavor/mx/mx_states.py:14 +msgid "Baja California Sur" +msgstr "Baja California Sur" + +#: contrib/localflavor/mx/mx_states.py:15 +msgid "Campeche" +msgstr "Campeche" + +#: contrib/localflavor/mx/mx_states.py:16 +msgid "Chihuahua" +msgstr "Chihuahua" + +#: contrib/localflavor/mx/mx_states.py:17 +msgid "Chiapas" +msgstr "Chiapas" + +#: contrib/localflavor/mx/mx_states.py:18 +msgid "Coahuila" +msgstr "Coahuila" + +#: contrib/localflavor/mx/mx_states.py:19 +msgid "Colima" +msgstr "Colima" + +#: contrib/localflavor/mx/mx_states.py:20 +msgid "Distrito Federal" +msgstr "Distrito Federal" + +#: contrib/localflavor/mx/mx_states.py:21 +msgid "Durango" +msgstr "Durango" + +#: contrib/localflavor/mx/mx_states.py:22 +msgid "Guerrero" +msgstr "Guerrero" + +#: contrib/localflavor/mx/mx_states.py:23 +msgid "Guanajuato" +msgstr "Guanajuato" + +#: contrib/localflavor/mx/mx_states.py:24 +msgid "Hidalgo" +msgstr "Hidalgo" + +#: contrib/localflavor/mx/mx_states.py:25 +msgid "Jalisco" +msgstr "Jalisco" + +#: contrib/localflavor/mx/mx_states.py:26 +msgid "Estado de México" +msgstr "Estado de México" + +#: contrib/localflavor/mx/mx_states.py:27 +msgid "Michoacán" +msgstr "Michoacán" + +#: contrib/localflavor/mx/mx_states.py:28 +msgid "Morelos" +msgstr "Morelos" + +#: contrib/localflavor/mx/mx_states.py:29 +msgid "Nayarit" +msgstr "Nayarit" + +#: contrib/localflavor/mx/mx_states.py:30 +msgid "Nuevo León" +msgstr "Nuevo León" + +#: contrib/localflavor/mx/mx_states.py:31 +msgid "Oaxaca" +msgstr "Oaxaca" + +#: contrib/localflavor/mx/mx_states.py:32 +msgid "Puebla" +msgstr "Puebla" + +#: contrib/localflavor/mx/mx_states.py:33 +msgid "Querétaro" +msgstr "Querétaro" + +#: contrib/localflavor/mx/mx_states.py:34 +msgid "Quintana Roo" +msgstr "Quintana Roo" + +#: contrib/localflavor/mx/mx_states.py:35 +msgid "Sinaloa" +msgstr "Sinaloa" + +#: contrib/localflavor/mx/mx_states.py:36 +msgid "San Luis Potosí" +msgstr "San Luis Potosí" + +#: contrib/localflavor/mx/mx_states.py:37 +msgid "Sonora" +msgstr "Sonora" + +#: contrib/localflavor/mx/mx_states.py:38 +msgid "Tabasco" +msgstr "Tabasco" + +#: contrib/localflavor/mx/mx_states.py:39 +msgid "Tamaulipas" +msgstr "Tamaulipas" + +#: contrib/localflavor/mx/mx_states.py:40 +msgid "Tlaxcala" +msgstr "Tlaxcala" + +#: contrib/localflavor/mx/mx_states.py:41 +msgid "Veracruz" +msgstr "Veracruz" + +#: contrib/localflavor/mx/mx_states.py:42 +msgid "Yucatán" +msgstr "Yucatán" + +#: contrib/localflavor/mx/mx_states.py:43 +msgid "Zacatecas" +msgstr "Zacatecas" + +#: contrib/localflavor/nl/forms.py:21 msgid "Enter a valid postal code" msgstr "Introduzca un código postal válido" -#: contrib/localflavor/nl/forms.py:53 +#: contrib/localflavor/nl/forms.py:52 msgid "Enter a valid phone number" msgstr "Introduzca un número de teléfono válido" -#: contrib/localflavor/nl/forms.py:76 +#: contrib/localflavor/nl/forms.py:78 msgid "Enter a valid SoFi number" msgstr "Introduzca un número SoFi válido" @@ -2439,43 +2699,47 @@ msgstr "Zeeland" msgid "Zuid-Holland" msgstr "Zuid-Holland" -#: contrib/localflavor/no/forms.py:35 +#: contrib/localflavor/no/forms.py:33 msgid "Enter a valid Norwegian social security number." msgstr "Introduzca un número de seguro social de Noruega válido." -#: contrib/localflavor/pe/forms.py:36 +#: contrib/localflavor/pe/forms.py:24 msgid "This field requires 8 digits." msgstr "Este campo necesita 8 dígitos." -#: contrib/localflavor/pe/forms.py:59 +#: contrib/localflavor/pe/forms.py:52 msgid "This field requires 11 digits." msgstr "Este campo necesita 11 dígitos." -#: contrib/localflavor/pl/forms.py:41 +#: contrib/localflavor/pl/forms.py:39 msgid "National Identification Number consists of 11 digits." msgstr "Número de Identificación Nacional consiste en 11 dígitos" -#: contrib/localflavor/pl/forms.py:47 +#: contrib/localflavor/pl/forms.py:40 msgid "Wrong checksum for the National Identification Number." msgstr "El Número de Identificación Nacional es incorrecto." #: contrib/localflavor/pl/forms.py:72 -msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." -msgstr "Introduzca un número de impuesto (NIP) en el formato XXX-XXX-XX-XX or XX-XX-XXX-XXX." +msgid "" +"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." +msgstr "" +"Introduzca un número de impuesto (NIP) en el formato XXX-XXX-XX-XX or XX-XX-" +"XXX-XXX." -#: contrib/localflavor/pl/forms.py:78 +#: contrib/localflavor/pl/forms.py:73 msgid "Wrong checksum for the Tax Number (NIP)." msgstr "El Número de Identificación Tributaria (NIP) es incorrecto." -#: contrib/localflavor/pl/forms.py:107 +#: contrib/localflavor/pl/forms.py:112 msgid "National Business Register Number (REGON) consists of 7 or 9 digits." -msgstr "El Número Nacional de Registro de Negocios (REGON) consiste en 11 dígitos" +msgstr "" +"El Número Nacional de Registro de Negocios (REGON) consiste en 11 dígitos" #: contrib/localflavor/pl/forms.py:113 msgid "Wrong checksum for the National Business Register Number (REGON)." msgstr "El Número Nacional de Registro de Negocios (REGON) es incorrecto." -#: contrib/localflavor/pl/forms.py:148 +#: contrib/localflavor/pl/forms.py:156 msgid "Enter a postal code in the format XX-XXX." msgstr "Introduzca un código postal en el formato XX-XXX." @@ -2543,7 +2807,7 @@ msgstr "Greater Poland" msgid "West Pomerania" msgstr "West Pomerania" -#: contrib/localflavor/sk/forms.py:32 +#: contrib/localflavor/sk/forms.py:30 msgid "Enter a postal code in the format XXXXX or XXX XX." msgstr "Introduzca un código postal en el formato XXXXX o XXX XX." @@ -2895,33 +3159,366 @@ msgstr "Región de Trnava" msgid "Zilina region" msgstr "Región de Zilina" -#: contrib/localflavor/uk/forms.py:18 -msgid "Enter a postcode. A space is required between the two postcode parts." -msgstr "Introduzca un código postal. Se necesita un espacio entre las dos partes del código." +#: contrib/localflavor/uk/forms.py:21 +msgid "Enter a valid postcode." +msgstr "Introduzca un código postal válido" -#: contrib/localflavor/us/forms.py:18 +#: contrib/localflavor/uk/uk_regions.py:11 +msgid "Bedfordshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:12 +msgid "Buckinghamshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:14 +msgid "Cheshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:15 +msgid "Cornwall and Isles of Scilly" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:16 +msgid "Cumbria" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:17 +msgid "Derbyshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:18 +msgid "Devon" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:19 +msgid "Dorset" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:20 +msgid "Durham" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:21 +msgid "East Sussex" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:22 +msgid "Essex" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:23 +msgid "Gloucestershire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:24 +msgid "Greater London" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:25 +msgid "Greater Manchester" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:26 +msgid "Hampshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:27 +msgid "Hertfordshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:28 +msgid "Kent" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:29 +msgid "Lancashire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:30 +msgid "Leicestershire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:31 +msgid "Lincolnshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:32 +msgid "Merseyside" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:33 +msgid "Norfolk" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:34 +msgid "North Yorkshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:35 +msgid "Northamptonshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:36 +msgid "Northumberland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:37 +msgid "Nottinghamshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:38 +msgid "Oxfordshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:39 +msgid "Shropshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:40 +msgid "Somerset" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:41 +msgid "South Yorkshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:42 +msgid "Staffordshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:43 +msgid "Suffolk" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:44 +msgid "Surrey" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:45 +msgid "Tyne and Wear" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:46 +msgid "Warwickshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:47 +msgid "West Midlands" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:48 +msgid "West Sussex" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:49 +msgid "West Yorkshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:50 +msgid "Wiltshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:51 +msgid "Worcestershire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:55 +msgid "County Antrim" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:56 +msgid "County Armagh" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:57 +msgid "County Down" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:58 +msgid "County Fermanagh" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:59 +msgid "County Londonderry" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:60 +msgid "County Tyrone" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:64 +msgid "Clwyd" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:65 +msgid "Dyfed" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:66 +msgid "Gwent" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:67 +msgid "Gwynedd" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:68 +msgid "Mid Glamorgan" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:69 +msgid "Powys" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:70 +msgid "South Glamorgan" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:71 +msgid "West Glamorgan" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:75 +msgid "Borders" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:76 +msgid "Central Scotland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:77 +msgid "Dumfries and Galloway" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:78 +msgid "Fife" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:79 +msgid "Grampian" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:80 +msgid "Highland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:81 +msgid "Lothian" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:82 +msgid "Orkney Islands" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:83 +msgid "Shetland Islands" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:84 +msgid "Strathclyde" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:85 +msgid "Tayside" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:86 +msgid "Western Isles" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:90 +msgid "England" +msgstr "Inglaterra" + +#: contrib/localflavor/uk/uk_regions.py:91 +msgid "Northern Ireland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:92 +msgid "Scotland" +msgstr "Escocia" + +#: contrib/localflavor/uk/uk_regions.py:93 +msgid "Wales" +msgstr "Gales" + +#: contrib/localflavor/us/forms.py:16 msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." msgstr "Introduzca un código postal en el formato XXXXX o XXXX-XXXX." -#: contrib/localflavor/us/forms.py:51 +#: contrib/localflavor/us/forms.py:54 msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Introduzca un Número Seguro Social de EEUU válido en el formato XXX-XX-XXXX" +msgstr "" +"Introduzca un Número Seguro Social de EEUU válido en el formato XXX-XX-XXXX" + +#: contrib/localflavor/za/forms.py:20 +msgid "Enter a valid South African ID number" +msgstr "Introduzca un ID Sur Africano válido" + +#: contrib/localflavor/za/forms.py:54 +msgid "Enter a valid South African postal code" +msgstr "Introduzca un código postal Sur Africano válido" + +#: contrib/localflavor/za/za_provinces.py:4 +msgid "Eastern Cape" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:5 +msgid "Free State" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:6 +msgid "Gauteng" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:7 +msgid "KwaZulu-Natal" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:8 +msgid "Limpopo" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:9 +msgid "Mpumalanga" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:10 +msgid "Northern Cape" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:11 +msgid "North West" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:12 +msgid "Western Cape" +msgstr "" #: contrib/redirects/models.py:7 msgid "redirect from" msgstr "redirigir desde" #: contrib/redirects/models.py:8 -msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'." -msgstr "Esta ruta debería ser absoluta, excluyendo el nombre de dominio. Ejeplo: '/events/search/'." +msgid "" +"This should be an absolute path, excluding the domain name. Example: '/" +"events/search/'." +msgstr "" +"Esta ruta debería ser absoluta, excluyendo el nombre de dominio. Ejeplo: '/" +"events/search/'." #: contrib/redirects/models.py:9 msgid "redirect to" msgstr "redirigir a" #: contrib/redirects/models.py:10 -msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'." -msgstr "Esto puede ser bien una ruta absoluta (como antes) o una URL completa que empiece con 'http://'." +msgid "" +"This can be either an absolute path (as above) or a full URL starting with " +"'http://'." +msgstr "" +"Esto puede ser bien una ruta absoluta (como antes) o una URL completa que " +"empiece con 'http://'." #: contrib/redirects/models.py:13 msgid "redirect" @@ -2931,23 +3528,23 @@ msgstr "redirección" msgid "redirects" msgstr "redirecciones" -#: contrib/sessions/models.py:80 +#: contrib/sessions/models.py:41 msgid "session key" msgstr "clave de sesión" -#: contrib/sessions/models.py:81 +#: contrib/sessions/models.py:42 msgid "session data" msgstr "datos de sesión" -#: contrib/sessions/models.py:82 +#: contrib/sessions/models.py:43 msgid "expire date" msgstr "fecha de caducidad" -#: contrib/sessions/models.py:87 +#: contrib/sessions/models.py:48 msgid "session" msgstr "sesión" -#: contrib/sessions/models.py:88 +#: contrib/sessions/models.py:49 msgid "sessions" msgstr "sesiones" @@ -2972,8 +3569,11 @@ msgid "This value must contain only letters, numbers and underscores." msgstr "Este valor debe contener sólo letras, números y guiones bajos." #: core/validators.py:76 -msgid "This value must contain only letters, numbers, underscores, dashes or slashes." -msgstr "Este valor debe contener letras, números, guiones bajos o barras solamente." +msgid "" +"This value must contain only letters, numbers, underscores, dashes or " +"slashes." +msgstr "" +"Este valor debe contener letras, números, guiones bajos o barras solamente." #: core/validators.py:80 msgid "This value must contain only letters, numbers, underscores or hyphens." @@ -3011,8 +3611,7 @@ msgstr "No se admiten caracteres no numéricos." msgid "This value can't be comprised solely of digits." msgstr "Este valor no puede comprender sólo dígitos." -#: core/validators.py:128 -#: newforms/fields.py:149 +#: core/validators.py:128 newforms/fields.py:152 msgid "Enter a whole number." msgstr "Introduzca un número entero." @@ -3029,8 +3628,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:505 +#: core/validators.py:156 db/models/fields/__init__.py:527 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Introduzca una fecha válida en formato AAAA-MM-DD." @@ -3038,27 +3636,28 @@ 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:579 +#: core/validators.py:165 db/models/fields/__init__.py:604 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Introduzca una fecha/hora válida en formato AAAA-MM-DD HH:MM." -#: core/validators.py:170 -#: newforms/fields.py:343 +#: core/validators.py:170 newforms/fields.py:403 msgid "Enter a valid e-mail address." msgstr "Introduzca una dirección de correo electrónico válida" -#: core/validators.py:182 -#: core/validators.py:474 -#: newforms/fields.py:377 -#: oldforms/__init__.py:686 +#: 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 "No se ha enviado ningún fichero. Compruebe el tipo de codificación en el formulario." +msgstr "" +"No se ha enviado ningún fichero. Compruebe el tipo de codificación en el " +"formulario." -#: core/validators.py:193 -#: newforms/fields.py:405 -msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image." -msgstr "Envíe una imagen válida. El fichero que ha enviado no era una imagen o se trataba de una imagen corrupta." +#: core/validators.py:193 newforms/fields.py:459 +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Envíe una imagen válida. El fichero que ha enviado no era una imagen o se " +"trataba de una imagen corrupta." #: core/validators.py:200 #, python-format @@ -3068,7 +3667,9 @@ msgstr "La URL %s no apunta a una imagen válida." #: core/validators.py:204 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." -msgstr "Los números de teléfono deben guardar el formato XXX-XXX-XXXX. \"%s\" no es válido." +msgstr "" +"Los números de teléfono deben guardar el formato XXX-XXX-XXXX. \"%s\" no es " +"válido." #: core/validators.py:212 #, python-format @@ -3098,8 +3699,7 @@ msgstr "XML mal formado: %s" msgid "Invalid URL: %s" msgstr "URL no válida: %s" -#: core/validators.py:259 -#: core/validators.py:261 +#: core/validators.py:259 core/validators.py:261 #, python-format msgid "The URL %s is a broken link." msgstr "La URL %s es un enlace roto." @@ -3124,8 +3724,7 @@ msgstr "Este campo debe concordar con el campo '%s'." msgid "Please enter something for at least one field." msgstr "Por favor, introduzca algo en al menos un campo." -#: core/validators.py:316 -#: core/validators.py:327 +#: core/validators.py:316 core/validators.py:327 msgid "Please enter both fields or leave them both empty." msgstr "Por favor, rellene ambos campos o deje ambos vacíos." @@ -3170,23 +3769,39 @@ msgstr "Por favor, introduzca un número decimal válido." #: core/validators.py:444 #, python-format msgid "Please enter a valid decimal number with at most %s total digit." -msgid_plural "Please enter a valid decimal number with at most %s total digits." -msgstr[0] "Por favor, introduzca un número decimal válido con a lo más %s dígito en total." -msgstr[1] "Por favor, introduzca un número decimal válido con a lo más %s dígitos en total." +msgid_plural "" +"Please enter a valid decimal number with at most %s total digits." +msgstr[0] "" +"Por favor, introduzca un número decimal válido con a lo más %s dígito en " +"total." +msgstr[1] "" +"Por favor, introduzca un número decimal válido con a lo más %s dígitos en " +"total." #: core/validators.py:447 #, python-format -msgid "Please enter a valid decimal number with a whole part of at most %s digit." -msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits." -msgstr[0] "Por favor, introduzca un número decimal válido con a lo más %s dígito en su parte entera." -msgstr[1] "Por favor, introduzca un número decimal válido con a lo más %s dígitos en su parte entera." +msgid "" +"Please enter a valid decimal number with a whole part of at most %s digit." +msgid_plural "" +"Please enter a valid decimal number with a whole part of at most %s digits." +msgstr[0] "" +"Por favor, introduzca un número decimal válido con a lo más %s dígito en su " +"parte entera." +msgstr[1] "" +"Por favor, introduzca un número decimal válido con a lo más %s dígitos en su " +"parte entera." #: core/validators.py:450 #, python-format msgid "Please enter a valid decimal number with at most %s decimal place." -msgid_plural "Please enter a valid decimal number with at most %s decimal places." -msgstr[0] "Por favor, introduzca un número decimal válido con a lo más %s dígito decimal." -msgstr[1] "Por favor, introduzca un número decimal válido con a lo más %s dígitos decimales." +msgid_plural "" +"Please enter a valid decimal number with at most %s decimal places." +msgstr[0] "" +"Por favor, introduzca un número decimal válido con a lo más %s dígito " +"decimal." +msgstr[1] "" +"Por favor, introduzca un número decimal válido con a lo más %s dígitos " +"decimales." #: core/validators.py:458 msgid "Please enter a valid floating point number." @@ -3217,38 +3832,65 @@ msgstr "No pude obtener nada de %s." #: core/validators.py:539 #, python-format -msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." -msgstr "La URL %(url)s devolvió la cabecera Content-Type '%(contenttype)s', que no es válida." +msgid "" +"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." +msgstr "" +"La URL %(url)s devolvió la cabecera Content-Type '%(contenttype)s', que no " +"es válida." #: core/validators.py:572 #, python-format -msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)" -msgstr "Por favor, cierre la etiqueta %(tag)s de la línea %(line)s. (La línea empieza por \"%(start)s\".)" +msgid "" +"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " +"\"%(start)s\".)" +msgstr "" +"Por favor, cierre la etiqueta %(tag)s de la línea %(line)s. (La línea " +"empieza por \"%(start)s\".)" #: core/validators.py:576 #, python-format -msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)" -msgstr "Parte del texto que comienza en la línea %(line)s no está permitido en ese contexto. (La línea empieza por \"%(start)s\".)" +msgid "" +"Some text starting on line %(line)s is not allowed in that context. (Line " +"starts with \"%(start)s\".)" +msgstr "" +"Parte del texto que comienza en la línea %(line)s no está permitido en ese " +"contexto. (La línea empieza por \"%(start)s\".)" #: core/validators.py:581 #, python-format -msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)" -msgstr "El \"%(attr)s\" de la línea %(line)s no es un atributo válido. (La línea empieza por \"%(start)s\".)" +msgid "" +"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" +"(start)s\".)" +msgstr "" +"El \"%(attr)s\" de la línea %(line)s no es un atributo válido. (La línea " +"empieza por \"%(start)s\".)" #: core/validators.py:586 #, python-format -msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)" -msgstr "La \"<%(tag)s>\" de la línea %(line)s no es una etiqueta válida. (La línea empieza por \"%(start)s\".)" +msgid "" +"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" +"(start)s\".)" +msgstr "" +"La \"<%(tag)s>\" de la línea %(line)s no es una etiqueta válida. (La línea " +"empieza por \"%(start)s\".)" #: core/validators.py:590 #, python-format -msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)" -msgstr "A una etiqueta de la línea %(line)s le faltan uno o más atributos requeridos. (La línea empieza por \"%(start)s\".)" +msgid "" +"A tag on line %(line)s is missing one or more required attributes. (Line " +"starts with \"%(start)s\".)" +msgstr "" +"A una etiqueta de la línea %(line)s le faltan uno o más atributos " +"requeridos. (La línea empieza por \"%(start)s\".)" #: core/validators.py:595 #, python-format -msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)" -msgstr "El atributo \"%(attr)s\" de la línea %(line)s tiene un valor que no es válido. (La línea empieza por \"%(start)s\".)" +msgid "" +"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " +"starts with \"%(start)s\".)" +msgstr "" +"El atributo \"%(attr)s\" de la línea %(line)s tiene un valor que no es " +"válido. (La línea empieza por \"%(start)s\".)" #: db/models/manipulators.py:308 #, python-format @@ -3260,211 +3902,211 @@ msgstr "%(object)s de este %(type)s ya existen en este %(field)s." msgid "%(optname)s with this %(fieldname)s already exists." msgstr "Ya existe %(optname)s con este %(fieldname)s." -#: db/models/fields/__init__.py:159 -#: db/models/fields/__init__.py:316 -#: db/models/fields/__init__.py:731 -#: db/models/fields/__init__.py:742 -#: newforms/fields.py:93 -#: newforms/fields.py:513 -#: newforms/fields.py:589 -#: newforms/fields.py:600 -#: newforms/models.py:193 -#: oldforms/__init__.py:373 +#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:327 +#: db/models/fields/__init__.py:759 db/models/fields/__init__.py:770 +#: newforms/fields.py:46 oldforms/__init__.py:374 msgid "This field is required." msgstr "Este campo es obligatorio." -#: db/models/fields/__init__.py:414 +#: db/models/fields/__init__.py:427 msgid "This value must be an integer." msgstr "Este valor debe ser un entero." -#: db/models/fields/__init__.py:450 +#: db/models/fields/__init__.py:466 msgid "This value must be either True or False." msgstr "Este valor debe ser Verdadero o Falso." -#: db/models/fields/__init__.py:471 +#: db/models/fields/__init__.py:490 msgid "This field cannot be null." msgstr "Este campo no puede estar vacío." -#: db/models/fields/__init__.py:640 +#: db/models/fields/__init__.py:668 msgid "This value must be a decimal number." msgstr "Este valor debe ser un entero." -#: db/models/fields/__init__.py:751 +#: db/models/fields/__init__.py:779 msgid "Enter a valid filename." msgstr "Introduzca un nombre de fichero válido" -#: db/models/fields/__init__.py:900 +#: db/models/fields/__init__.py:960 msgid "This value must be either None, True or False." msgstr "Este valor debe ser Verdadero o Falso." -#: db/models/fields/related.py:658 +#: db/models/fields/related.py:93 +#, python-format +msgid "Please enter a valid %s." +msgstr "Por favor, introduzca un %s válido." + +#: db/models/fields/related.py:701 msgid "Separate multiple IDs with commas." msgstr "Separe múltiples IDs con comas." -#: db/models/fields/related.py:660 -msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "Mantenga presionado \"Control\", o \"Command\" en un Mac, para seleccionar más de uno." +#: db/models/fields/related.py:703 +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" +"Mantenga presionado \"Control\", o \"Command\" en un Mac, para seleccionar " +"más de uno." -#: db/models/fields/related.py:707 +#: db/models/fields/related.py:750 #, python-format msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." -msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid." -msgstr[0] "Por favor, introduzca IDs de %(self)s válidos. El valor %(value)r no es válido." -msgstr[1] "Por favor, introduzca IDs de %(self)s válidos. Los valores %(value)r no son válidos." +msgid_plural "" +"Please enter valid %(self)s IDs. The values %(value)r are invalid." +msgstr[0] "" +"Por favor, introduzca IDs de %(self)s válidos. El valor %(value)r no es " +"válido." +msgstr[1] "" +"Por favor, introduzca IDs de %(self)s válidos. Los valores %(value)r no son " +"válidos." -#: newforms/fields.py:123 +#: newforms/fields.py:47 +msgid "Enter a valid value." +msgstr "Introduzca un valor correcto." + +#: newforms/fields.py:124 #, python-format msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." -msgstr "Asegúrese de que su texto tiene a lo más %(max)d caracteres (actualmente tiene %(length)d)." +msgstr "" +"Asegúrese de que su texto tiene a lo más %(max)d caracteres (actualmente " +"tiene %(length)d)." #: newforms/fields.py:125 #, python-format msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." -msgstr "Asegúrese de que su texto tiene al menos %(min)d caracteres (actualmente tiene %(length)d)." +msgstr "" +"Asegúrese de que su texto tiene al menos %(min)d caracteres (actualmente " +"tiene %(length)d)." -#: newforms/fields.py:151 -#: newforms/fields.py:174 -#: newforms/fields.py:204 +#: 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 "Asegúrese de que este valor es menor o igual a %s." -#: newforms/fields.py:153 -#: newforms/fields.py:176 -#: newforms/fields.py:206 +#: 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 "Asegúrese de que este valor es mayor o igual a %s." -#: newforms/fields.py:172 -#: newforms/fields.py:199 +#: newforms/fields.py:181 newforms/fields.py:210 msgid "Enter a number." msgstr "Introduzca un número." -#: newforms/fields.py:208 +#: newforms/fields.py:213 #, python-format msgid "Ensure that there are no more than %s digits in total." msgstr "Asegúrese de que no hay más de %s dígitos en total." -#: newforms/fields.py:210 +#: newforms/fields.py:214 #, python-format msgid "Ensure that there are no more than %s decimal places." msgstr "Asegúrese de que no hay más de %s decimales." -#: newforms/fields.py:212 +#: newforms/fields.py:215 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Asegúrese de que no hay más de %s dígitos antes del punto decimal." -#: newforms/fields.py:245 -#: newforms/fields.py:633 +#: newforms/fields.py:263 newforms/fields.py:751 msgid "Enter a valid date." msgstr "Introduzca una fecha válida." -#: newforms/fields.py:272 -#: newforms/fields.py:635 +#: newforms/fields.py:296 newforms/fields.py:752 msgid "Enter a valid time." msgstr "Introduzca una hora válida." -#: newforms/fields.py:308 +#: newforms/fields.py:335 msgid "Enter a valid date/time." msgstr "Introduzca una fecha/hora válida." -#: newforms/fields.py:321 -msgid "Enter a valid value." -msgstr "Introduzca un valor correcto." - -#: newforms/fields.py:379 +#: newforms/fields.py:434 msgid "No file was submitted." msgstr "No se ha enviado ningún fichero" -#: newforms/fields.py:381 -#: oldforms/__init__.py:688 +#: newforms/fields.py:435 oldforms/__init__.py:689 msgid "The submitted file is empty." msgstr "El fichero enviado está vacío." -#: newforms/fields.py:419 -#: newforms/fields.py:444 +#: newforms/fields.py:497 msgid "Enter a valid URL." msgstr "Introduzca una URL válida." -#: newforms/fields.py:446 +#: newforms/fields.py:498 msgid "This URL appears to be a broken link." msgstr "La URL parece ser un enlace roto." -#: newforms/fields.py:501 -#: newforms/models.py:180 +#: newforms/fields.py:560 newforms/models.py:299 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "Escoja una opción válida. Esa opción no está entre las aceptadas." -#: newforms/fields.py:517 -#: newforms/fields.py:593 -#: newforms/models.py:197 +#: 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." + +#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:371 msgid "Enter a list of values." msgstr "Introduzca una lista de valores." -#: newforms/fields.py:523 -#: newforms/models.py:203 +#: newforms/fields.py:780 +msgid "Enter a valid IPv4 address." +msgstr "Introduzca una dirección IPv4 válida." + +#: newforms/models.py:372 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Escoja una opción válida; '%s' no es una de las opciones disponibles." -#: newforms/fields.py:644 -msgid "Enter a valid IPv4 address." -msgstr "Introduzca una dirección IPv4 válida." - -#: oldforms/__init__.py:408 +#: oldforms/__init__.py:409 #, python-format msgid "Ensure your text is less than %s character." msgid_plural "Ensure your text is less than %s characters." msgstr[0] "Asegúrese de que su texto tiene menos de %s carácter." msgstr[1] "Asegúrese de que su texto tiene menos de %s caracteres." -#: oldforms/__init__.py:413 +#: oldforms/__init__.py:414 msgid "Line breaks are not allowed here." msgstr "No se permiten saltos de línea." -#: oldforms/__init__.py:511 -#: oldforms/__init__.py:585 -#: oldforms/__init__.py:624 +#: oldforms/__init__.py:512 oldforms/__init__.py:586 oldforms/__init__.py:625 #, python-format msgid "Select a valid choice; '%(data)s' is not in %(choices)s." msgstr "Escoja una opción válida; '%(data)s' no está en %(choices)s." -#: oldforms/__init__.py:744 +#: oldforms/__init__.py:745 msgid "Enter a whole number between -32,768 and 32,767." msgstr "Introduzca un número entero entre -32,768 y 32,767." -#: oldforms/__init__.py:754 +#: oldforms/__init__.py:755 msgid "Enter a positive number." msgstr "Introduzca un número positivo." -#: oldforms/__init__.py:764 +#: oldforms/__init__.py:765 msgid "Enter a whole number between 0 and 32,767." msgstr "Introduzca un número entero entre 0 y 32,767." -#: template/defaultfilters.py:541 +#: template/defaultfilters.py:698 msgid "yes,no,maybe" msgstr "sí,no,tal vez" -#: template/defaultfilters.py:570 +#: template/defaultfilters.py:729 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" msgstr[0] "%(size)d byte" msgstr[1] "%(size)d bytes" -#: template/defaultfilters.py:572 +#: template/defaultfilters.py:731 #, python-format msgid "%.1f KB" msgstr "%.1f KB" -#: template/defaultfilters.py:574 +#: template/defaultfilters.py:733 #, python-format msgid "%.1f MB" msgstr "%.1f MB" -#: template/defaultfilters.py:575 +#: template/defaultfilters.py:734 #, python-format msgid "%.1f GB" msgstr "%.1f GB" @@ -3557,28 +4199,23 @@ msgstr "Enero" msgid "February" msgstr "Febrero" -#: utils/dates.py:18 -#: utils/dates.py:31 +#: utils/dates.py:18 utils/dates.py:31 msgid "March" msgstr "Marzo" -#: utils/dates.py:18 -#: utils/dates.py:31 +#: utils/dates.py:18 utils/dates.py:31 msgid "April" msgstr "Abril" -#: utils/dates.py:18 -#: utils/dates.py:31 +#: utils/dates.py:18 utils/dates.py:31 msgid "May" msgstr "Mayo" -#: utils/dates.py:18 -#: utils/dates.py:31 +#: utils/dates.py:18 utils/dates.py:31 msgid "June" msgstr "Junio" -#: utils/dates.py:19 -#: utils/dates.py:31 +#: utils/dates.py:19 utils/dates.py:31 msgid "July" msgstr "Julio" @@ -3732,23 +4369,23 @@ msgstr "%(number)d %(type)s" msgid ", %(number)d %(type)s" msgstr ", %(number)d %(type)s" -#: utils/translation/trans_real.py:391 +#: utils/translation/trans_real.py:403 msgid "DATE_FORMAT" msgstr "j N Y" -#: utils/translation/trans_real.py:392 +#: utils/translation/trans_real.py:404 msgid "DATETIME_FORMAT" msgstr "j N Y P" -#: utils/translation/trans_real.py:393 +#: utils/translation/trans_real.py:405 msgid "TIME_FORMAT" msgstr "P" -#: utils/translation/trans_real.py:409 +#: utils/translation/trans_real.py:421 msgid "YEAR_MONTH_FORMAT" msgstr "F Y" -#: utils/translation/trans_real.py:410 +#: utils/translation/trans_real.py:422 msgid "MONTH_DAY_FORMAT" msgstr "j \\de F" @@ -3767,3 +4404,11 @@ 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 "Gaeilge" +#~ msgstr "Gaeilge" + +#~ msgid "" +#~ "Enter a postcode. A space is required between the two postcode parts." +#~ msgstr "" +#~ "Introduzca un código postal. Se necesita un espacio entre las dos partes " +#~ "del código." diff --git a/django/conf/locale/es/LC_MESSAGES/djangojs.mo b/django/conf/locale/es/LC_MESSAGES/djangojs.mo index fa886fba26abaceba9d378fdfc2a7dff6b7d31d9..b42ebb3c784771b5c0637ae91675fdc5d695b8cc 100644 GIT binary patch delta 370 zcmZ9`Jxc>Y5C-5m^I?ohh@ItHhm|>#3*j)qLJ`p>m?GFMdaRLTH{2z4x)fG|Res0y z)>c-MO0*G6|AFAU5d?){A7*xEc5X|{(%s9f?-9*2M0p~5%Mz`_4_JYpun50k0TyyU z^(|OMF5o8gVHvg|f=+R`_g&bB7tqZ~;Rbww2zty>XZ7I|GB;oeci=m8i{!CY6ILL0 zq$B9+ClEVPH(hwaS~ZY9OKu3}kh#Wt_ph1lSxa(V*4Y(>Nb>^ek3gCgNdE`YAoZ+3P6UwV1JWRK(t$K5kS+q!K*UhP%3ue!unEWm z8PEl!6@l~&APsWJE+B0Nqz?gUpc@%}LdE|AX`meptea;tnlcHP>l&Er8k#5=8e5qF z*`|~4F-tfg3mO6i4Gg$^5{pZ8Ly8jfigOZ6@{6n#yz-0EQx)73v-0y4Y|=rL1DMnU Lif?XWxxxql6JRi= diff --git a/django/conf/locale/es/LC_MESSAGES/djangojs.po b/django/conf/locale/es/LC_MESSAGES/djangojs.po index f85ea6dcb6..4ad90fadd3 100644 --- a/django/conf/locale/es/LC_MESSAGES/djangojs.po +++ b/django/conf/locale/es/LC_MESSAGES/djangojs.po @@ -1,14 +1,14 @@ # Spanish translation for the django-admin JS files. -# Copyright (C) -# This file is distributed under the same license as the PACKAGE package. -# +# Copyright (C) 2008, The Django Project +# This file is distributed under the same license as the django package. msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-07-14 13:47-0500\n" -"PO-Revision-Date: 2007-07-14 13:41-0500\n" -"Last-Translator: Jorge Gajon \n" +"POT-Creation-Date: 2005-10-04 00:00+0200\n" +"PO-Revision-Date: 2008-03-30 00:54+0100\n" +"Last-Translator: Django Spanish Group \n" +"Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" diff --git a/django/conf/locale/pl/LC_MESSAGES/django.mo b/django/conf/locale/pl/LC_MESSAGES/django.mo index 6677af06741df46bc70fc0bd6e4916ba1ec7369e..f47adbd8134f71058757e58dfc2dd354f7fbd235 100644 GIT binary patch delta 20967 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 CSJpcK delta 21099 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 diff --git a/django/conf/locale/pl/LC_MESSAGES/django.po b/django/conf/locale/pl/LC_MESSAGES/django.po index c33afac470..d18ab7c5fa 100644 --- a/django/conf/locale/pl/LC_MESSAGES/django.po +++ b/django/conf/locale/pl/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-02-25 12:45+0100\n" +"POT-Creation-Date: 2008-03-29 20:56+0100\n" "PO-Revision-Date: 2008-02-25 15:53+0100\n" "Last-Translator: Łukasz Czyżykowki \n" "Language-Team: Polish \n" @@ -65,134 +65,142 @@ msgid "Argentinean Spanish" msgstr "Hiszpański argentyński" #: conf/global_settings.py:51 +msgid "Basque" +msgstr "Baskijski" + +#: conf/global_settings.py:52 msgid "Persian" msgstr "Perski" -#: conf/global_settings.py:52 +#: conf/global_settings.py:53 msgid "Finnish" msgstr "Fiński" -#: conf/global_settings.py:53 +#: conf/global_settings.py:54 msgid "French" msgstr "Francuski" -#: conf/global_settings.py:54 -msgid "Gaeilge" -msgstr "Gaelicki" - #: conf/global_settings.py:55 +msgid "Irish" +msgstr "Irlandzki" + +#: conf/global_settings.py:56 msgid "Galician" msgstr "Galicyjski" -#: conf/global_settings.py:56 +#: conf/global_settings.py:57 msgid "Hungarian" msgstr "Węgierski" -#: conf/global_settings.py:57 +#: conf/global_settings.py:58 msgid "Hebrew" msgstr "Hebrajski" -#: conf/global_settings.py:58 +#: conf/global_settings.py:59 msgid "Croatian" msgstr "Horwacki" -#: conf/global_settings.py:59 +#: conf/global_settings.py:60 msgid "Icelandic" msgstr "Islandzki" -#: conf/global_settings.py:60 +#: conf/global_settings.py:61 msgid "Italian" msgstr "Włoski" -#: conf/global_settings.py:61 +#: conf/global_settings.py:62 msgid "Japanese" msgstr "Japoński" -#: conf/global_settings.py:62 +#: conf/global_settings.py:63 +msgid "Georgian" +msgstr "Gruziński" + +#: conf/global_settings.py:64 msgid "Korean" msgstr "Koreański" -#: conf/global_settings.py:63 +#: conf/global_settings.py:65 msgid "Khmer" msgstr "Khmerski" -#: conf/global_settings.py:64 +#: conf/global_settings.py:66 msgid "Kannada" msgstr "Kannada" -#: conf/global_settings.py:65 +#: conf/global_settings.py:67 msgid "Latvian" msgstr "Łotewski" -#: conf/global_settings.py:66 +#: conf/global_settings.py:68 msgid "Macedonian" msgstr "Macedoński" -#: conf/global_settings.py:67 +#: conf/global_settings.py:69 msgid "Dutch" msgstr "Holenderski" -#: conf/global_settings.py:68 +#: conf/global_settings.py:70 msgid "Norwegian" msgstr "Norweski" -#: conf/global_settings.py:69 +#: conf/global_settings.py:71 msgid "Polish" msgstr "Polski" -#: conf/global_settings.py:70 +#: conf/global_settings.py:72 msgid "Portugese" msgstr "Portugalski" -#: conf/global_settings.py:71 +#: conf/global_settings.py:73 msgid "Brazilian" msgstr "Brazylijski" -#: conf/global_settings.py:72 +#: conf/global_settings.py:74 msgid "Romanian" msgstr "Rumuński" -#: conf/global_settings.py:73 +#: conf/global_settings.py:75 msgid "Russian" msgstr "Rosyjski" -#: conf/global_settings.py:74 +#: conf/global_settings.py:76 msgid "Slovak" msgstr "Słowacki" -#: conf/global_settings.py:75 +#: conf/global_settings.py:77 msgid "Slovenian" msgstr "Słoweński" -#: conf/global_settings.py:76 +#: conf/global_settings.py:78 msgid "Serbian" msgstr "Serbski" -#: conf/global_settings.py:77 +#: conf/global_settings.py:79 msgid "Swedish" msgstr "Szwedzki" -#: conf/global_settings.py:78 +#: conf/global_settings.py:80 msgid "Tamil" msgstr "Tamilski" -#: conf/global_settings.py:79 +#: conf/global_settings.py:81 msgid "Telugu" msgstr "Telugu" -#: conf/global_settings.py:80 +#: conf/global_settings.py:82 msgid "Turkish" msgstr "Turecki" -#: conf/global_settings.py:81 +#: conf/global_settings.py:83 msgid "Ukrainian" msgstr "Ukraiński" -#: conf/global_settings.py:82 +#: conf/global_settings.py:84 msgid "Simplified Chinese" msgstr "Uproszczony chiński" -#: conf/global_settings.py:83 +#: conf/global_settings.py:85 msgid "Traditional Chinese" msgstr "Chiński tradycyjny" @@ -472,7 +480,7 @@ msgid "Password:" msgstr "Hasło:" #: contrib/admin/templates/admin/login.html:25 -#: contrib/admin/views/decorators.py:25 +#: contrib/admin/views/decorators.py:31 msgid "Log in" msgstr "Zaloguj się" @@ -791,7 +799,7 @@ msgstr "Hasło zostało zmienione pomyślnie." msgid "Change password: %s" msgstr "Zmień hasło: %s" -#: contrib/admin/views/decorators.py:11 contrib/auth/forms.py:60 +#: contrib/admin/views/decorators.py:17 contrib/auth/forms.py:60 msgid "" "Please enter a correct username and password. Note that both fields are case-" "sensitive." @@ -799,7 +807,7 @@ msgstr "" "Proszę wpisać poprawną nazwę użytkownika i hasło. Uwaga: wielkość liter ma " "znaczenie." -#: contrib/admin/views/decorators.py:63 +#: contrib/admin/views/decorators.py:69 msgid "" "Please log in again, because your session has expired. Don't worry: Your " "submission has been saved." @@ -807,7 +815,7 @@ msgstr "" "Zaloguj się ponownie. Twoja sesja wygasła lecz twoje zgłoszenie zostało " "zapisane." -#: contrib/admin/views/decorators.py:70 +#: contrib/admin/views/decorators.py:76 msgid "" "Looks like your browser isn't configured to accept cookies. Please enable " "cookies, reload this page, and try again." @@ -815,11 +823,11 @@ msgstr "" "Twoja przeglądarka nie chce akceptować ciasteczek. Zmień jej ustawienia i " "spróbuj ponownie." -#: contrib/admin/views/decorators.py:84 +#: contrib/admin/views/decorators.py:90 msgid "Usernames cannot contain the '@' character." msgstr "Nazwy użytkowników nie mogą zawierać znaków '@'." -#: contrib/admin/views/decorators.py:86 +#: contrib/admin/views/decorators.py:92 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "Twój adres e-mail to nie jest twój login. Spróbuj '%s'." @@ -947,7 +955,7 @@ msgstr "Tekst" msgid "Time" msgstr "Czas" -#: 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" @@ -1542,42 +1550,42 @@ msgstr "Błędny ID komentarza" msgid "No voting for yourself" msgstr "Nie można głosować na siebie" -#: contrib/contenttypes/models.py:37 +#: contrib/contenttypes/models.py:67 msgid "python model class name" msgstr "nazwa pythonowa modelu klasy" -#: contrib/contenttypes/models.py:40 +#: contrib/contenttypes/models.py:71 msgid "content type" msgstr "typ zawartości" -#: contrib/contenttypes/models.py:41 +#: contrib/contenttypes/models.py:72 msgid "content types" msgstr "typy zawartości" -#: contrib/flatpages/models.py:8 +#: contrib/flatpages/models.py:9 msgid "" "Example: '/about/contact/'. Make sure to have leading and trailing slashes." msgstr "" "Przykład: '/about/contact/'. Upewnij się że wpisałeś otwierający i " "zamykający ukośnik." -#: contrib/flatpages/models.py:9 +#: contrib/flatpages/models.py:10 msgid "title" msgstr "tytuł" -#: contrib/flatpages/models.py:10 +#: contrib/flatpages/models.py:11 msgid "content" msgstr "zawartość" -#: contrib/flatpages/models.py:11 +#: contrib/flatpages/models.py:12 msgid "enable comments" msgstr "włącz komentarze" -#: contrib/flatpages/models.py:12 +#: contrib/flatpages/models.py:13 msgid "template name" msgstr "nazwa szablonu" -#: 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'." @@ -1585,40 +1593,44 @@ msgstr "" "Przykład: 'flatpages/contact_page.html'. Jeżeli nie zostanie podane, system " "użyje 'flatpages/default.html'." -#: contrib/flatpages/models.py:14 +#: contrib/flatpages/models.py:15 msgid "registration required" msgstr "wymagana rejestracja" -#: 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 "" "Jeżeli zaznaczone - tylko zalogowani użytkownicy będą mogli zobaczyć stronę." -#: contrib/flatpages/models.py:18 +#: contrib/flatpages/models.py:20 msgid "flat page" msgstr "strona statyczna" -#: contrib/flatpages/models.py:19 +#: contrib/flatpages/models.py:21 msgid "flat pages" msgstr "strony statyczne" -#: contrib/humanize/templatetags/humanize.py:20 +#: contrib/flatpages/models.py:27 +msgid "Advanced options" +msgstr "Opcje zaawansowane" + +#: contrib/humanize/templatetags/humanize.py:19 msgid "th" msgstr "-y" -#: contrib/humanize/templatetags/humanize.py:20 +#: contrib/humanize/templatetags/humanize.py:19 msgid "st" msgstr "-szy" -#: contrib/humanize/templatetags/humanize.py:20 +#: contrib/humanize/templatetags/humanize.py:19 msgid "nd" msgstr "-gi" -#: contrib/humanize/templatetags/humanize.py:20 +#: contrib/humanize/templatetags/humanize.py:19 msgid "rd" msgstr "-ci" -#: contrib/humanize/templatetags/humanize.py:52 +#: contrib/humanize/templatetags/humanize.py:51 #, python-format msgid "%(value).1f million" msgid_plural "%(value).1f million" @@ -1626,7 +1638,7 @@ msgstr[0] "%(value).1f milion" msgstr[1] "%(value).1f miliony" msgstr[2] "%(value).1f milionów" -#: contrib/humanize/templatetags/humanize.py:55 +#: contrib/humanize/templatetags/humanize.py:54 #, python-format msgid "%(value).1f billion" msgid_plural "%(value).1f billion" @@ -1634,7 +1646,7 @@ msgstr[0] "%(value).1f miliard" msgstr[1] "%(value).1f miliardy" msgstr[2] "%(value).1f miliardów" -#: contrib/humanize/templatetags/humanize.py:58 +#: contrib/humanize/templatetags/humanize.py:57 #, python-format msgid "%(value).1f trillion" msgid_plural "%(value).1f trillion" @@ -1642,73 +1654,73 @@ msgstr[0] "%(value).1f bilion" msgstr[1] "%(value).1f biliony" msgstr[2] "%(value).1f bilionów" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "one" msgstr "jeden" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "two" msgstr "dwa" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "three" msgstr "trzy" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "four" msgstr "cztery" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "five" msgstr "pięć" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "six" msgstr "sześć" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "seven" msgstr "siedem" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "eight" msgstr "osiem" -#: contrib/humanize/templatetags/humanize.py:74 +#: contrib/humanize/templatetags/humanize.py:73 msgid "nine" msgstr "dziewięć" -#: contrib/humanize/templatetags/humanize.py:94 +#: contrib/humanize/templatetags/humanize.py:93 msgid "today" msgstr "dzisiaj" -#: contrib/humanize/templatetags/humanize.py:96 +#: contrib/humanize/templatetags/humanize.py:95 msgid "tomorrow" msgstr "jutro" -#: contrib/humanize/templatetags/humanize.py:98 +#: contrib/humanize/templatetags/humanize.py:97 msgid "yesterday" msgstr "wczoraj" -#: contrib/localflavor/ar/forms.py:28 +#: contrib/localflavor/ar/forms.py:27 msgid "Enter a postal code in the format NNNN or ANNNNAAA." msgstr "Wpisz kod pocztowy w formacie NNNN lub ANNNNAAA." -#: contrib/localflavor/ar/forms.py:50 contrib/localflavor/br/forms.py:96 +#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96 #: 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 "To pole może zawierać jedynie liczby." -#: contrib/localflavor/ar/forms.py:51 +#: contrib/localflavor/ar/forms.py:50 msgid "This field requires 7 or 8 digits." msgstr "To pole musi zawierać 7 lub 8 cyfr." -#: contrib/localflavor/ar/forms.py:80 +#: contrib/localflavor/ar/forms.py:79 msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." msgstr "Podaj poprawny numer CUIT w formacie XX-XXXXXXXX-X lub XXXXXXXXXXXX." -#: contrib/localflavor/ar/forms.py:81 +#: contrib/localflavor/ar/forms.py:80 msgid "Invalid CUIT." msgstr "Niepoprawny CUIT" @@ -2300,7 +2312,7 @@ msgstr "Wpisz poprawny numer ubezpieczenia socjalnego." msgid "Enter a valid VAT number." msgstr "Wpisz poprawny numer VAT." -#: contrib/localflavor/jp/forms.py:19 +#: contrib/localflavor/jp/forms.py:17 msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." msgstr "Wpisz kod pocztowy w formacie XXXXXXX lub XXX-XXXX." @@ -2549,11 +2561,13 @@ msgid "Jalisco" msgstr "Jalisco" #: contrib/localflavor/mx/mx_states.py:26 -msgid "Estado de México" +#, fuzzy +msgid "Estado de México" msgstr "Meksyk (stan)" #: contrib/localflavor/mx/mx_states.py:27 -msgid "Michoacán" +#, fuzzy +msgid "Michoacán" msgstr "Michocan" #: contrib/localflavor/mx/mx_states.py:28 @@ -2565,7 +2579,8 @@ msgid "Nayarit" msgstr "Nayarit" #: contrib/localflavor/mx/mx_states.py:30 -msgid "Nuevo León" +#, fuzzy +msgid "Nuevo León" msgstr "Nuevo Leon" #: contrib/localflavor/mx/mx_states.py:31 @@ -2577,7 +2592,8 @@ msgid "Puebla" msgstr "Puebla" #: contrib/localflavor/mx/mx_states.py:33 -msgid "Querétaro" +#, fuzzy +msgid "Querétaro" msgstr "Queretaro" #: contrib/localflavor/mx/mx_states.py:34 @@ -2589,7 +2605,8 @@ msgid "Sinaloa" msgstr "Sinaloa" #: contrib/localflavor/mx/mx_states.py:36 -msgid "San Luis Potosí" +#, fuzzy +msgid "San Luis Potosí" msgstr "San Luis Potasi" #: contrib/localflavor/mx/mx_states.py:37 @@ -2613,7 +2630,8 @@ msgid "Veracruz" msgstr "Veracruz" #: contrib/localflavor/mx/mx_states.py:42 -msgid "Yucatán" +#, fuzzy +msgid "Yucatán" msgstr "Jukatan" #: contrib/localflavor/mx/mx_states.py:43 @@ -3501,23 +3519,23 @@ msgstr "przekieruj" msgid "redirects" msgstr "przekierowania" -#: contrib/sessions/models.py:46 +#: contrib/sessions/models.py:41 msgid "session key" msgstr "klucz sesji" -#: contrib/sessions/models.py:47 +#: contrib/sessions/models.py:42 msgid "session data" msgstr "data sesji" -#: contrib/sessions/models.py:48 +#: contrib/sessions/models.py:43 msgid "expire date" msgstr "data wygaśnięcia sesji" -#: contrib/sessions/models.py:53 +#: contrib/sessions/models.py:48 msgid "session" msgstr "sesja" -#: contrib/sessions/models.py:54 +#: contrib/sessions/models.py:49 msgid "sessions" msgstr "sesje" @@ -3585,7 +3603,7 @@ msgstr "Tu mogą być tylko cyfry." msgid "This value can't be comprised solely of digits." msgstr "To pole nie może zawierać jedynie cyfr." -#: core/validators.py:128 newforms/fields.py:151 +#: core/validators.py:128 newforms/fields.py:152 msgid "Enter a whole number." msgstr "Wpisz liczbę całkowitą." @@ -3602,7 +3620,7 @@ msgstr "Rok nie może być wcześniejszy niż 1900." msgid "Invalid date: %s" msgstr "Niepoprawna data: %s" -#: core/validators.py:156 db/models/fields/__init__.py:509 +#: core/validators.py:156 db/models/fields/__init__.py:527 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Proszę wpisać poprawną datę w formacie RRRR-MM-DD." @@ -3610,20 +3628,20 @@ msgstr "Proszę wpisać poprawną datę w formacie RRRR-MM-DD." msgid "Enter a valid time in HH:MM format." msgstr "Proszę wpisać poprawną godzinę w formacie HH:MM." -#: core/validators.py:165 db/models/fields/__init__.py:583 +#: core/validators.py:165 db/models/fields/__init__.py:604 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgstr "Wprowadź poprawną datę i godzinę w formacie RRRR-MM-DD GG: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 "Wprowadź poprawny adres e-mail." -#: 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 "Nie wysłano żadnego pliku. Sprawdź typ kodowania formularza." -#: 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." @@ -3879,54 +3897,54 @@ msgstr "%(object)s z %(type)s już istnieje dla %(field)s." msgid "%(optname)s with this %(fieldname)s already exists." msgstr "Już istnieje %(optname)s z %(fieldname)s." -#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:318 -#: db/models/fields/__init__.py:735 db/models/fields/__init__.py:746 -#: newforms/fields.py:45 oldforms/__init__.py:374 +#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:327 +#: db/models/fields/__init__.py:759 db/models/fields/__init__.py:770 +#: newforms/fields.py:46 oldforms/__init__.py:374 msgid "This field is required." msgstr "To pole jest wymagane." -#: db/models/fields/__init__.py:418 +#: db/models/fields/__init__.py:427 msgid "This value must be an integer." msgstr "Ta wartość musi być liczbą całkowitą." -#: db/models/fields/__init__.py:454 +#: db/models/fields/__init__.py:466 msgid "This value must be either True or False." msgstr "Ta wartość musi być logiczna (True, False - prawda lub fałsz)." -#: db/models/fields/__init__.py:475 +#: db/models/fields/__init__.py:490 msgid "This field cannot be null." msgstr "To pole nie może być puste." -#: db/models/fields/__init__.py:644 +#: db/models/fields/__init__.py:668 msgid "This value must be a decimal number." msgstr "Ta wartość musi być liczbą dziesiętną." -#: db/models/fields/__init__.py:755 +#: db/models/fields/__init__.py:779 msgid "Enter a valid filename." msgstr "Wpisz poprawną nazwę pliku." -#: db/models/fields/__init__.py:908 +#: db/models/fields/__init__.py:960 msgid "This value must be either None, True or False." msgstr "" "Ta wartość musi być jedną z None (żadne), True (prawda) lub False (fałsz)." -#: db/models/fields/related.py:55 +#: db/models/fields/related.py:93 #, python-format msgid "Please enter a valid %s." msgstr "Proszę wpisać poprawne %s." -#: db/models/fields/related.py:658 +#: db/models/fields/related.py:701 msgid "Separate multiple IDs with commas." msgstr "Oddziel identyfikatory przecinkami." -#: db/models/fields/related.py:660 +#: db/models/fields/related.py:703 msgid "" "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" "Przytrzymaj wciśnięty klawisz \"Ctrl\" lub \"Command\" na Mac'u aby " "zaznaczyć więcej niż jeden wybór." -#: db/models/fields/related.py:707 +#: db/models/fields/related.py:750 #, python-format msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid_plural "" @@ -3941,100 +3959,100 @@ msgstr[2] "" "Proszę podać poprawne identyfikatory %(self)s. Wartości %(value)r są " "niepoprawne." -#: newforms/fields.py:46 +#: newforms/fields.py:47 msgid "Enter a valid value." msgstr "Wpisz poprawną wartość." -#: 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 "" "Upewnij się, że ta wartość ma co najwyżej %(max)d znaków (ma długość %" "(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 "" "Upewnij się, że ta wartość ma co najmniej %(min)d znaków (ma długość %" "(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 "Upewnij się, że ta wartość jest mniejsza lub równa %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 "Upewnij się, że ta wartość jest większa lub równa %s." -#: newforms/fields.py:180 newforms/fields.py:209 +#: newforms/fields.py:181 newforms/fields.py:210 msgid "Enter a number." msgstr "Wpisz liczbę." -#: newforms/fields.py:212 +#: newforms/fields.py:213 #, python-format msgid "Ensure that there are no more than %s digits in total." msgstr "Upewnij się, że jest nie więcej niż %s cyfr." -#: newforms/fields.py:213 +#: newforms/fields.py:214 #, python-format msgid "Ensure that there are no more than %s decimal places." msgstr "Upewnij się, że jest nie więcej niż %s miejsc po przecinku." -#: 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 "Upewnij się, że jest nie więcej niż %s miejsc przed przecinkiem." -#: newforms/fields.py:262 newforms/fields.py:723 +#: newforms/fields.py:263 newforms/fields.py:751 msgid "Enter a valid date." msgstr "Wpisz poprawną datę." -#: newforms/fields.py:295 newforms/fields.py:724 +#: newforms/fields.py:296 newforms/fields.py:752 msgid "Enter a valid time." msgstr "Wpisz poprawną godzinę." -#: newforms/fields.py:334 +#: newforms/fields.py:335 msgid "Enter a valid date/time." msgstr "Wpisz poprawną datę/godzinę." -#: newforms/fields.py:433 +#: newforms/fields.py:434 msgid "No file was submitted." msgstr "Żaden plik nie został przesłany." -#: newforms/fields.py:434 oldforms/__init__.py:689 +#: newforms/fields.py:435 oldforms/__init__.py:689 msgid "The submitted file is empty." msgstr "Wysłany plik jest pusty." -#: newforms/fields.py:496 +#: newforms/fields.py:497 msgid "Enter a valid URL." msgstr "Wpisz poprawny URL." -#: newforms/fields.py:497 +#: newforms/fields.py:498 msgid "This URL appears to be a broken link." msgstr "Ten odnośnik jest nieprawidłowy." -#: newforms/fields.py:559 newforms/models.py:317 +#: newforms/fields.py:560 newforms/models.py:299 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "Wybierz poprawną wartość. Podana nie jest jednym z dostępnych wyborów." -#: 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 "" "Wybierz poprawną wartość. %(value)s nie jest jednym z dostępnych wyborów." -#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:377 +#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:371 msgid "Enter a list of values." msgstr "Podaj listę wartości." -#: newforms/fields.py:752 +#: newforms/fields.py:780 msgid "Enter a valid IPv4 address." msgstr "Wprowadź poprawny adres IPv4." -#: newforms/models.py:378 +#: newforms/models.py:372 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Wybierz poprawną wartość. %s nie jest jednym z dostępnych wyborów." @@ -4068,11 +4086,11 @@ msgstr "Proszę wpisać liczbę dodatnią." msgid "Enter a whole number between 0 and 32,767." msgstr "Proszę wpisać liczbę całkowitą z zakresu od 0 do 32 767" -#: template/defaultfilters.py:691 +#: template/defaultfilters.py:698 msgid "yes,no,maybe" msgstr "tak,nie,może" -#: template/defaultfilters.py:722 +#: template/defaultfilters.py:729 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" @@ -4080,17 +4098,17 @@ msgstr[0] "%(size)d bajt" msgstr[1] "%(size)d bajty" msgstr[2] "%(size)d bajtów" -#: template/defaultfilters.py:724 +#: template/defaultfilters.py:731 #, python-format msgid "%.1f KB" msgstr "%.1f KB" -#: template/defaultfilters.py:726 +#: template/defaultfilters.py:733 #, python-format msgid "%.1f MB" msgstr "%.1f MB" -#: template/defaultfilters.py:727 +#: template/defaultfilters.py:734 #, python-format msgid "%.1f GB" msgstr "%.1f GB" @@ -4359,23 +4377,23 @@ msgstr "%(number)d %(type)s" msgid ", %(number)d %(type)s" msgstr ", %(number)d %(type)s" -#: utils/translation/trans_real.py:404 +#: utils/translation/trans_real.py:403 msgid "DATE_FORMAT" msgstr "Y-m-d" -#: utils/translation/trans_real.py:405 +#: utils/translation/trans_real.py:404 msgid "DATETIME_FORMAT" msgstr "Y-m-d H:i:s" -#: utils/translation/trans_real.py:406 +#: utils/translation/trans_real.py:405 msgid "TIME_FORMAT" msgstr "H:i:s" -#: utils/translation/trans_real.py:422 +#: utils/translation/trans_real.py:421 msgid "YEAR_MONTH_FORMAT" msgstr "Y-m" -#: utils/translation/trans_real.py:423 +#: utils/translation/trans_real.py:422 msgid "MONTH_DAY_FORMAT" msgstr "m-d" @@ -4394,6 +4412,9 @@ msgstr "%(verbose_name)s zostało pomyślnie zmienione." msgid "The %(verbose_name)s was deleted." msgstr "%(verbose_name)s zostało usunięte." +#~ msgid "Gaeilge" +#~ msgstr "Gaelicki" + #~ msgid "" #~ "Enter a postcode. A space is required between the two postcode parts." #~ msgstr "" diff --git a/django/contrib/admin/templatetags/admin_list.py b/django/contrib/admin/templatetags/admin_list.py index e45b6ed0bb..6db59ea338 100644 --- a/django/contrib/admin/templatetags/admin_list.py +++ b/django/contrib/admin/templatetags/admin_list.py @@ -22,7 +22,7 @@ def paginator_number(cl,i): elif i == cl.page_num: return mark_safe(u'%d ' % (i+1)) else: - return mark_safe(u'%d ' % (cl.get_query_string({PAGE_VAR: i}), (i == cl.paginator.pages-1 and ' class="end"' or ''), i+1)) + return mark_safe(u'%d ' % (cl.get_query_string({PAGE_VAR: i}), (i == cl.paginator.num_pages-1 and ' class="end"' or ''), i+1)) paginator_number = register.simple_tag(paginator_number) def pagination(cl): @@ -37,8 +37,8 @@ def pagination(cl): # If there are 10 or fewer pages, display links to every page. # Otherwise, do some fancy - if paginator.pages <= 10: - page_range = range(paginator.pages) + if paginator.num_pages <= 10: + page_range = range(paginator.num_pages) else: # Insert "smart" pagination links, so that there are always ON_ENDS # links at either end of the list of pages, and there are always @@ -50,12 +50,12 @@ def pagination(cl): page_range.extend(range(page_num - ON_EACH_SIDE, page_num + 1)) else: page_range.extend(range(0, page_num + 1)) - if page_num < (paginator.pages - ON_EACH_SIDE - ON_ENDS - 1): + if page_num < (paginator.num_pages - ON_EACH_SIDE - ON_ENDS - 1): page_range.extend(range(page_num + 1, page_num + ON_EACH_SIDE + 1)) page_range.append(DOT) - page_range.extend(range(paginator.pages - ON_ENDS, paginator.pages)) + page_range.extend(range(paginator.num_pages - ON_ENDS, paginator.num_pages)) else: - page_range.extend(range(page_num + 1, paginator.pages)) + page_range.extend(range(page_num + 1, paginator.num_pages)) need_show_all_link = cl.can_show_all and not cl.show_all and cl.multi_page return { diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py index 1e66b56e0f..084a2f67cb 100644 --- a/django/contrib/admin/views/main.py +++ b/django/contrib/admin/views/main.py @@ -5,7 +5,7 @@ from django.contrib.admin.views.decorators import staff_member_required from django.views.decorators.cache import never_cache from django.contrib.contenttypes.models import ContentType from django.core.exceptions import ImproperlyConfigured, ObjectDoesNotExist, PermissionDenied -from django.core.paginator import ObjectPaginator, InvalidPage +from django.core.paginator import QuerySetPaginator, InvalidPage from django.shortcuts import get_object_or_404, render_to_response from django.db import models from django.db.models.query import QuerySet @@ -611,11 +611,11 @@ class ChangeList(object): return mark_safe('?' + '&'.join([u'%s=%s' % (k, v) for k, v in p.items()]).replace(' ', '%20')) def get_results(self, request): - paginator = ObjectPaginator(self.query_set, self.lookup_opts.admin.list_per_page) + paginator = QuerySetPaginator(self.query_set, self.lookup_opts.admin.list_per_page) # Get the number of objects, with admin filters applied. try: - result_count = paginator.hits + result_count = paginator.count # Naked except! Because we don't have any other way of validating # "params". They might be invalid if the keyword arguments are # incorrect, or if the values are not in the correct type (which would @@ -640,7 +640,7 @@ class ChangeList(object): result_list = list(self.query_set) else: try: - result_list = paginator.get_page(self.page_num) + result_list = paginator.page(self.page_num+1).object_list except InvalidPage: result_list = () diff --git a/django/contrib/flatpages/models.py b/django/contrib/flatpages/models.py index 36327c80c3..190ffbd8b3 100644 --- a/django/contrib/flatpages/models.py +++ b/django/contrib/flatpages/models.py @@ -3,6 +3,7 @@ from django.db import models from django.contrib.sites.models import Site from django.utils.translation import ugettext_lazy as _ + class FlatPage(models.Model): url = models.CharField(_('URL'), max_length=100, validator_list=[validators.isAlphaNumericURL], db_index=True, help_text=_("Example: '/about/contact/'. Make sure to have leading and trailing slashes.")) @@ -13,15 +14,17 @@ class FlatPage(models.Model): help_text=_("Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'.")) registration_required = models.BooleanField(_('registration required'), help_text=_("If this is checked, only logged-in users will be able to view the page.")) sites = models.ManyToManyField(Site) + class Meta: db_table = 'django_flatpage' verbose_name = _('flat page') verbose_name_plural = _('flat pages') ordering = ('url',) + class Admin: fields = ( (None, {'fields': ('url', 'title', 'content', 'sites')}), - ('Advanced options', {'classes': 'collapse', 'fields': ('enable_comments', 'registration_required', 'template_name')}), + (_('Advanced options'), {'classes': 'collapse', 'fields': ('enable_comments', 'registration_required', 'template_name')}), ) list_filter = ('sites',) search_fields = ('url', 'title') diff --git a/django/core/mail.py b/django/core/mail.py index 72343cb4df..bf48dcb882 100644 --- a/django/core/mail.py +++ b/django/core/mail.py @@ -2,20 +2,21 @@ Tools for sending email. """ -from django.conf import settings -from django.utils.encoding import smart_str, force_unicode -from email import Charset, Encoders -from email.MIMEText import MIMEText -from email.MIMEMultipart import MIMEMultipart -from email.MIMEBase import MIMEBase -from email.Header import Header -from email.Utils import formatdate, parseaddr, formataddr import mimetypes import os import smtplib import socket import time import random +from email import Charset, Encoders +from email.MIMEText import MIMEText +from email.MIMEMultipart import MIMEMultipart +from email.MIMEBase import MIMEBase +from email.Header import Header +from email.Utils import formatdate, parseaddr, formataddr + +from django.conf import settings +from django.utils.encoding import smart_str, force_unicode # Don't BASE64-encode UTF-8 messages so that we avoid unwanted attention from # some spam filters. @@ -38,8 +39,9 @@ class CachedDnsName(object): DNS_NAME = CachedDnsName() -# Copied from Python standard library and modified to used the cached hostname -# for performance. +# Copied from Python standard library, with the following modifications: +# * Used cached hostname for performance. +# * Added try/except to support lack of getpid() in Jython (#5496). def make_msgid(idstring=None): """Returns a string suitable for RFC 2822 compliant Message-ID, e.g: @@ -53,7 +55,7 @@ def make_msgid(idstring=None): try: pid = os.getpid() except AttributeError: - # Not getpid() in Jython, for example. + # No getpid() in Jython, for example. pid = 1 randint = random.randrange(100000) if idstring is None: @@ -68,7 +70,7 @@ class BadHeaderError(ValueError): pass def forbid_multi_line_headers(name, val): - "Forbids multi-line headers, to prevent header injection." + """Forbids multi-line headers, to prevent header injection.""" if '\n' in val or '\r' in val: raise BadHeaderError("Header values can't contain newlines (got %r for header %r)" % (val, name)) try: @@ -101,7 +103,7 @@ class SMTPConnection(object): """ def __init__(self, host=None, port=None, username=None, password=None, - use_tls=None, fail_silently=False): + use_tls=None, fail_silently=False): self.host = host or settings.EMAIL_HOST self.port = port or settings.EMAIL_PORT self.username = username or settings.EMAIL_HOST_USER @@ -112,14 +114,17 @@ class SMTPConnection(object): def open(self): """ - Ensure we have a connection to the email server. Returns whether or not - a new connection was required. + Ensures we have a connection to the email server. Returns whether or + not a new connection was required (True or False). """ if self.connection: # Nothing to do if the connection is already open. return False try: - self.connection = smtplib.SMTP(self.host, self.port) + # If local_hostname is not specified, socket.getfqdn() gets used. + # For performance, we use the cached FQDN for local_hostname. + self.connection = smtplib.SMTP(self.host, self.port, + local_hostname=DNS_NAME.get_fqdn()) if self.use_tls: self.connection.ehlo() self.connection.starttls() @@ -132,7 +137,7 @@ class SMTPConnection(object): raise def close(self): - """Close the connection to the email server.""" + """Closes the connection to the email server.""" try: try: self.connection.quit() @@ -149,7 +154,7 @@ class SMTPConnection(object): def send_messages(self, email_messages): """ - Send one or more EmailMessage objects and return the number of email + Sends one or more EmailMessage objects and returns the number of email messages sent. """ if not email_messages: @@ -192,7 +197,7 @@ class EmailMessage(object): def __init__(self, subject='', body='', from_email=None, to=None, bcc=None, connection=None, attachments=None, headers=None): """ - Initialise a single email message (which can be sent to multiple + Initialize a single email message (which can be sent to multiple recipients). All strings used to create the message can be unicode strings (or UTF-8 @@ -221,7 +226,8 @@ class EmailMessage(object): def message(self): encoding = self.encoding or settings.DEFAULT_CHARSET - msg = SafeMIMEText(smart_str(self.body, settings.DEFAULT_CHARSET), self.content_subtype, encoding) + msg = SafeMIMEText(smart_str(self.body, settings.DEFAULT_CHARSET), + self.content_subtype, encoding) if self.attachments: body_msg = msg msg = SafeMIMEMultipart(_subtype=self.multipart_subtype) @@ -237,8 +243,6 @@ class EmailMessage(object): msg['To'] = ', '.join(self.to) msg['Date'] = formatdate() msg['Message-ID'] = make_msgid() - if self.bcc: - msg['Bcc'] = ', '.join(self.bcc) for name, value in self.extra_headers.items(): msg[name] = value return msg @@ -251,7 +255,7 @@ class EmailMessage(object): return self.to + self.bcc def send(self, fail_silently=False): - """Send the email message.""" + """Sends the email message.""" return self.get_connection(fail_silently).send_messages([self]) def attach(self, filename=None, content=None, mimetype=None): @@ -278,7 +282,7 @@ class EmailMessage(object): def _create_attachment(self, filename, content, mimetype=None): """ - Convert the filename, content, mimetype triple into a MIME attachment + Converts the filename, content, mimetype triple into a MIME attachment object. """ if mimetype is None: @@ -295,7 +299,8 @@ class EmailMessage(object): attachment.set_payload(content) Encoders.encode_base64(attachment) if filename: - attachment.add_header('Content-Disposition', 'attachment', filename=filename) + attachment.add_header('Content-Disposition', 'attachment', + filename=filename) return attachment class EmailMultiAlternatives(EmailMessage): @@ -310,7 +315,8 @@ class EmailMultiAlternatives(EmailMessage): """Attach an alternative content representation.""" self.attach(content=content, mimetype=mimetype) -def send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=None, auth_password=None): +def send_mail(subject, message, from_email, recipient_list, + fail_silently=False, auth_user=None, auth_password=None): """ Easy wrapper for sending a single message to a recipient list. All members of the recipient list will see the other recipients in the 'To' field. @@ -322,10 +328,12 @@ def send_mail(subject, message, from_email, recipient_list, fail_silently=False, functionality should use the EmailMessage class directly. """ connection = SMTPConnection(username=auth_user, password=auth_password, - fail_silently=fail_silently) - return EmailMessage(subject, message, from_email, recipient_list, connection=connection).send() + fail_silently=fail_silently) + return EmailMessage(subject, message, from_email, recipient_list, + connection=connection).send() -def send_mass_mail(datatuple, fail_silently=False, auth_user=None, auth_password=None): +def send_mass_mail(datatuple, fail_silently=False, auth_user=None, + auth_password=None): """ Given a datatuple of (subject, message, from_email, recipient_list), sends each message to each recipient list. Returns the number of e-mails sent. @@ -339,19 +347,19 @@ def send_mass_mail(datatuple, fail_silently=False, auth_user=None, auth_password functionality should use the EmailMessage class directly. """ connection = SMTPConnection(username=auth_user, password=auth_password, - fail_silently=fail_silently) - messages = [EmailMessage(subject, message, sender, recipient) for subject, message, sender, recipient in datatuple] + fail_silently=fail_silently) + messages = [EmailMessage(subject, message, sender, recipient) + for subject, message, sender, recipient in datatuple] return connection.send_messages(messages) def mail_admins(subject, message, fail_silently=False): - "Sends a message to the admins, as defined by the ADMINS setting." + """Sends a message to the admins, as defined by the ADMINS setting.""" EmailMessage(settings.EMAIL_SUBJECT_PREFIX + subject, message, - settings.SERVER_EMAIL, [a[1] for a in - settings.ADMINS]).send(fail_silently=fail_silently) + settings.SERVER_EMAIL, [a[1] for a in settings.ADMINS] + ).send(fail_silently=fail_silently) def mail_managers(subject, message, fail_silently=False): - "Sends a message to the managers, as defined by the MANAGERS setting." + """Sends a message to the managers, as defined by the MANAGERS setting.""" EmailMessage(settings.EMAIL_SUBJECT_PREFIX + subject, message, - settings.SERVER_EMAIL, [a[1] for a in - settings.MANAGERS]).send(fail_silently=fail_silently) - + settings.SERVER_EMAIL, [a[1] for a in settings.MANAGERS] + ).send(fail_silently=fail_silently) diff --git a/django/core/paginator.py b/django/core/paginator.py index dabd20dfc0..04cc4bf481 100644 --- a/django/core/paginator.py +++ b/django/core/paginator.py @@ -173,7 +173,7 @@ class ObjectPaginator(Paginator): if self._count is None: try: self._count = self.object_list.count() - except AttributeError: + except TypeError: self._count = len(self.object_list) return self._count count = property(_get_count) diff --git a/django/db/backends/ado_mssql/__init__.py b/django/db/backends/ado_mssql/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/django/db/backends/ado_mssql/base.py b/django/db/backends/ado_mssql/base.py deleted file mode 100644 index 07ce02d591..0000000000 --- a/django/db/backends/ado_mssql/base.py +++ /dev/null @@ -1,112 +0,0 @@ -""" -ADO MSSQL database backend for Django. - -Requires adodbapi 2.0.1: http://adodbapi.sourceforge.net/ -""" - -from django.db.backends import BaseDatabaseWrapper, BaseDatabaseFeatures, BaseDatabaseOperations, util -try: - import adodbapi as Database -except ImportError, e: - from django.core.exceptions import ImproperlyConfigured - raise ImproperlyConfigured("Error loading adodbapi module: %s" % e) -import datetime -try: - import mx -except ImportError: - mx = None - -DatabaseError = Database.DatabaseError -IntegrityError = Database.IntegrityError - -# We need to use a special Cursor class because adodbapi expects question-mark -# param style, but Django expects "%s". This cursor converts question marks to -# format-string style. -class Cursor(Database.Cursor): - def executeHelper(self, operation, isStoredProcedureCall, parameters=None): - if parameters is not None and "%s" in operation: - operation = operation.replace("%s", "?") - Database.Cursor.executeHelper(self, operation, isStoredProcedureCall, parameters) - -class Connection(Database.Connection): - def cursor(self): - return Cursor(self) -Database.Connection = Connection - -origCVtoP = Database.convertVariantToPython -def variantToPython(variant, adType): - if type(variant) == bool and adType == 11: - return variant # bool not 1/0 - res = origCVtoP(variant, adType) - if mx is not None and type(res) == mx.DateTime.mxDateTime.DateTimeType: - # Convert ms.DateTime objects to Python datetime.datetime objects. - tv = list(res.tuple()[:7]) - tv[-2] = int(tv[-2]) - return datetime.datetime(*tuple(tv)) - if type(res) == float and str(res)[-2:] == ".0": - return int(res) # If float but int, then int. - return res -Database.convertVariantToPython = variantToPython - -class DatabaseFeatures(BaseDatabaseFeatures): - supports_tablespaces = True - -class DatabaseOperations(BaseDatabaseOperations): - def date_extract_sql(self, lookup_type, field_name): - return "DATEPART(%s, %s)" % (lookup_type, field_name) - - def date_trunc_sql(self, lookup_type, field_name): - if lookup_type == 'year': - return "Convert(datetime, Convert(varchar, DATEPART(year, %s)) + '/01/01')" % field_name - if lookup_type == 'month': - return "Convert(datetime, Convert(varchar, DATEPART(year, %s)) + '/' + Convert(varchar, DATEPART(month, %s)) + '/01')" % (field_name, field_name) - if lookup_type == 'day': - return "Convert(datetime, Convert(varchar(12), %s))" % field_name - - def deferrable_sql(self): - return " DEFERRABLE INITIALLY DEFERRED" - - def last_insert_id(self, cursor, table_name, pk_name): - cursor.execute("SELECT %s FROM %s WHERE %s = @@IDENTITY" % (pk_name, table_name, pk_name)) - return cursor.fetchone()[0] - - def quote_name(self, name): - if name.startswith('[') and name.endswith(']'): - return name # Quoting once is enough. - return '[%s]' % name - - def random_function_sql(self): - return 'RAND()' - - def tablespace_sql(self, tablespace, inline=False): - return "ON %s" % self.quote_name(tablespace) - -class DatabaseWrapper(BaseDatabaseWrapper): - features = DatabaseFeatures() - ops = DatabaseOperations() - operators = { - 'exact': '= %s', - 'iexact': 'LIKE %s', - 'contains': 'LIKE %s', - 'icontains': 'LIKE %s', - 'gt': '> %s', - 'gte': '>= %s', - 'lt': '< %s', - 'lte': '<= %s', - 'startswith': 'LIKE %s', - 'endswith': 'LIKE %s', - 'istartswith': 'LIKE %s', - 'iendswith': 'LIKE %s', - } - - def _cursor(self, settings): - if self.connection is None: - if settings.DATABASE_NAME == '' or settings.DATABASE_USER == '': - from django.core.exceptions import ImproperlyConfigured - raise ImproperlyConfigured("You need to specify both DATABASE_NAME and DATABASE_USER in your Django settings file.") - if not settings.DATABASE_HOST: - settings.DATABASE_HOST = "127.0.0.1" - # TODO: Handle DATABASE_PORT. - conn_string = "PROVIDER=SQLOLEDB;DATA SOURCE=%s;UID=%s;PWD=%s;DATABASE=%s" % (settings.DATABASE_HOST, settings.DATABASE_USER, settings.DATABASE_PASSWORD, settings.DATABASE_NAME) - self.connection = Database.connect(conn_string) - return self.connection.cursor() diff --git a/django/db/backends/ado_mssql/client.py b/django/db/backends/ado_mssql/client.py deleted file mode 100644 index 5c197cafa4..0000000000 --- a/django/db/backends/ado_mssql/client.py +++ /dev/null @@ -1,2 +0,0 @@ -def runshell(): - raise NotImplementedError diff --git a/django/db/backends/ado_mssql/creation.py b/django/db/backends/ado_mssql/creation.py deleted file mode 100644 index d4ba8f2897..0000000000 --- a/django/db/backends/ado_mssql/creation.py +++ /dev/null @@ -1,25 +0,0 @@ -DATA_TYPES = { - 'AutoField': 'int IDENTITY (1, 1)', - 'BooleanField': 'bit', - 'CharField': 'varchar(%(max_length)s)', - 'CommaSeparatedIntegerField': 'varchar(%(max_length)s)', - 'DateField': 'smalldatetime', - 'DateTimeField': 'smalldatetime', - 'DecimalField': 'numeric(%(max_digits)s, %(decimal_places)s)', - 'FileField': 'varchar(%(max_length)s)', - 'FilePathField': 'varchar(%(max_length)s)', - 'FloatField': 'double precision', - 'ImageField': 'varchar(%(max_length)s)', - 'IntegerField': 'int', - 'IPAddressField': 'char(15)', - 'NullBooleanField': 'bit', - 'OneToOneField': 'int', - 'PhoneNumberField': 'varchar(20)', - 'PositiveIntegerField': 'int CONSTRAINT [CK_int_pos_%(column)s] CHECK ([%(column)s] > 0)', - 'PositiveSmallIntegerField': 'smallint CONSTRAINT [CK_smallint_pos_%(column)s] CHECK ([%(column)s] > 0)', - 'SlugField': 'varchar(%(max_length)s)', - 'SmallIntegerField': 'smallint', - 'TextField': 'text', - 'TimeField': 'time', - 'USStateField': 'varchar(2)', -} diff --git a/django/db/backends/ado_mssql/introspection.py b/django/db/backends/ado_mssql/introspection.py deleted file mode 100644 index b125cc995f..0000000000 --- a/django/db/backends/ado_mssql/introspection.py +++ /dev/null @@ -1,13 +0,0 @@ -def get_table_list(cursor): - raise NotImplementedError - -def get_table_description(cursor, table_name): - raise NotImplementedError - -def get_relations(cursor, table_name): - raise NotImplementedError - -def get_indexes(cursor, table_name): - raise NotImplementedError - -DATA_TYPES_REVERSE = {} diff --git a/django/db/backends/mysql/base.py b/django/db/backends/mysql/base.py index cfc07d6008..17aa6f13bf 100644 --- a/django/db/backends/mysql/base.py +++ b/django/db/backends/mysql/base.py @@ -17,7 +17,8 @@ except ImportError, e: version = Database.version_info if (version < (1,2,1) or (version[:3] == (1, 2, 1) and (len(version) < 5 or version[3] != 'final' or version[4] < 2))): - raise ImportError("MySQLdb-1.2.1p2 or newer is required; you have %s" % Database.__version__) + from django.core.exceptions import ImproperlyConfigured + raise ImproperlyConfigured("MySQLdb-1.2.1p2 or newer is required; you have %s" % Database.__version__) from MySQLdb.converters import conversions from MySQLdb.constants import FIELD_TYPE diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index f2254d7373..6629289b05 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -581,7 +581,7 @@ class ForeignKey(RelatedField, Field): if 'edit_inline_type' in kwargs: import warnings - warnings.warn("edit_inline_type is deprecated. Use edit_inline instead.") + warnings.warn("edit_inline_type is deprecated. Use edit_inline instead.", DeprecationWarning) kwargs['edit_inline'] = kwargs.pop('edit_inline_type') kwargs['rel'] = rel_class(to, to_field, diff --git a/django/views/generic/list_detail.py b/django/views/generic/list_detail.py index cb9b014eb5..ea77d46300 100644 --- a/django/views/generic/list_detail.py +++ b/django/views/generic/list_detail.py @@ -74,8 +74,8 @@ def object_list(request, queryset, paginate_by=None, page=None, 'page': page_obj.number, 'next': page_obj.next_page_number(), 'previous': page_obj.previous_page_number(), - 'last_on_page': page_obj.start_index(), - 'first_on_page': page_obj.end_index(), + 'first_on_page': page_obj.start_index(), + 'last_on_page': page_obj.end_index(), 'pages': paginator.num_pages, 'hits': paginator.count, 'page_range': paginator.page_range, diff --git a/django/views/i18n.py b/django/views/i18n.py index e420e3d7f7..e141c1d967 100644 --- a/django/views/i18n.py +++ b/django/views/i18n.py @@ -82,6 +82,17 @@ function interpolate(fmt, obj, named) { } """ +PluralIdx = r""" +function pluralidx(n) { + var v=%s; + if (typeof(v) == 'boolean') { + return v ? 1 : 0; + } else { + return v; + } +} +""" + def null_javascript_catalog(request, domain=None, packages=None): """ Returns "identity" versions of the JavaScript i18n functions -- i.e., @@ -154,7 +165,7 @@ def javascript_catalog(request, domain='djangojs', packages=None): # this should actually be a compiled function of a typical plural-form: # Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2; plural = [el.strip() for el in plural.split(';') if el.strip().startswith('plural=')][0].split('=',1)[1] - src.append('function pluralidx(n) {\n return %s;\n}\n' % plural) + src.append(PluralIdx % plural) else: src.append(SimplePlural) csrc = [] diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000000..f79d4299d5 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,68 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d _build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html web htmlhelp latex changes linkcheck + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " web to make files usable by Sphinx.web" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " changes to make an overview over all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + +clean: + -rm -rf _build/* + +html: + mkdir -p _build/html _build/doctrees + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) _build/html + @echo + @echo "Build finished. The HTML pages are in _build/html." + +web: + mkdir -p _build/web _build/doctrees + $(SPHINXBUILD) -b web $(ALLSPHINXOPTS) _build/web + @echo + @echo "Build finished; now you can run" + @echo " python -m sphinx.web _build/web" + @echo "to start the server." + +htmlhelp: + mkdir -p _build/htmlhelp _build/doctrees + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) _build/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in _build/htmlhelp." + +latex: + mkdir -p _build/latex _build/doctrees + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex + @echo + @echo "Build finished; the LaTeX files are in _build/latex." + @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ + "run these through (pdf)latex." + +changes: + mkdir -p _build/changes _build/doctrees + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) _build/changes + @echo + @echo "The overview file is in _build/changes." + +linkcheck: + mkdir -p _build/linkcheck _build/doctrees + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) _build/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in _build/linkcheck/output.txt." diff --git a/docs/authentication.txt b/docs/authentication.txt index 9167458db2..79eaf673e7 100644 --- a/docs/authentication.txt +++ b/docs/authentication.txt @@ -819,16 +819,17 @@ Django developers are currently discussing. Default permissions ------------------- -Three basic permissions -- add, change and delete -- are automatically created -for each Django model that has a ``class Admin`` set. Behind the scenes, these -permissions are added to the ``auth_permission`` database table when you run -``manage.py syncdb``. +When ``django.contrib.auth`` is listed in your ``INSTALLED_APPS`` +setting, it will ensure that three default permissions -- add, change +and delete -- are created for each Django model defined in one of your +installed applications. -Note that if your model doesn't have ``class Admin`` set when you run -``syncdb``, the permissions won't be created. If you initialize your database -and add ``class Admin`` to models after the fact, you'll need to run -``manage.py syncdb`` again. It will create any missing permissions for -all of your installed apps. +These permissions will be created when you run ``manage.py syncdb``; +the first time you run ``syncdb`` after adding ``django.contrib.auth`` +to ``INSTALLED_APPS``, the default permissions will be created for all +previously-installed models, as well as for any new models being +installed at that time. Afterward, it will create default permissions +for new models each time you run ``manage.py syncdb``. Custom permissions ------------------ diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000000..0ced57d57b --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,132 @@ +# -*- coding: utf-8 -*- +# +# Django documentation build configuration file, created by +# sphinx-quickstart on Thu Mar 27 09:06:53 2008. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# The contents of this file are pickled, so don't put values in the namespace +# that aren't pickleable (module imports are okay, they're removed automatically). +# +# All configuration values have a default value; values that are commented out +# serve to show the default value. + +import sys + +# If your extensions are in another directory, add it here. +#sys.path.append('some/directory') + +# General configuration +# --------------------- + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +#extensions = [] + +# Add any paths that contain templates here, relative to this directory. +templates_path = [] + +# The suffix of source filenames. +source_suffix = '.txt' + +# The master toctree document. +master_doc = 'index' + +# General substitutions. +project = 'Django' +copyright = '2008, Django Software Foundation' + +# The default replacements for |version| and |release|, also used in various +# other places throughout the built documents. +# +# The short X.Y version. +version = 'SVN' +# The full version, including alpha/beta/rc tags. +release = version + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +today_fmt = '%B %d, %Y' + +# List of documents that shouldn't be included in the build. +#unused_docs = [] + +# If true, '()' will be appended to :func: etc. cross-reference text. +add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +add_module_names = False + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + + +# Options for HTML output +# ----------------------- + +# The style sheet to use for HTML and HTML Help pages. A file of that name +# must exist either in Sphinx' static/ path, or in one of the custom paths +# given in html_static_path. +html_style = 'default.css' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = [] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +html_use_smartypants = True + +# Content template for the index page. +#html_index = '' + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_use_modindex = True + +# If true, the reST sources are included in the HTML build as _sources/. +html_copy_source = True + +# Output file base name for HTML help builder. +htmlhelp_basename = 'Djangodoc' + + +# Options for LaTeX output +# ------------------------ + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, document class [howto/manual]). +#latex_documents = [] + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_use_modindex = True diff --git a/docs/db-api.txt b/docs/db-api.txt index dcd648be1c..23fa205b39 100644 --- a/docs/db-api.txt +++ b/docs/db-api.txt @@ -1476,9 +1476,6 @@ SQL equivalents:: Using raw strings (e.g., ``r'foo'`` instead of ``'foo'``) for passing in the regular expression syntax is recommended. -Regular expression matching is not supported on the ``ado_mssql`` backend. -It will raise a ``NotImplementedError`` at runtime. - iregex ~~~~~~ diff --git a/docs/i18n.txt b/docs/i18n.txt index 8da19cd242..d6c86e1c9d 100644 --- a/docs/i18n.txt +++ b/docs/i18n.txt @@ -338,7 +338,7 @@ Django offers many utility functions (particularly in ``django.utils``) that take a string as their first argument and do something to that string. These functions are used by template filters as well as directly in other code. -If you write your own similar functions and deal with translations, you'll +If you write your own similar functions and deal with translations, you'll face the problem of what to do when the first argument is a lazy translation object. You don't want to convert it to a string immediately, because you might be using this function outside of a view (and hence the current thread's locale @@ -789,7 +789,7 @@ JavaScript that uses strings from different applications. You can make the view dynamic by putting the packages into the URL pattern:: urlpatterns = patterns('', - (r'^jsi18n/(?P\S+?)/$, 'django.views.i18n.javascript_catalog'), + (r'^jsi18n/(?P\S+?)/$', 'django.views.i18n.javascript_catalog'), ) With this, you specify the packages as a list of package names delimited by '+' @@ -811,24 +811,47 @@ interface to access it:: document.write(gettext('this is to be translated')); -There even is a ``ungettext`` interface and a string interpolation function:: +There is also an ``ngettext`` interface:: - d = { - count: 10 - }; - s = interpolate(ungettext('this is %(count)s object', 'this are %(count)s objects', d.count), d); + var object_cnt = 1 // or 0, or 2, or 3, ... + s = ngettext('literal for the singular case', + 'literal for the plural case', object_cnt); -The ``interpolate`` function supports both positional interpolation and named -interpolation. So the above could have been written as:: +and even a string interpolation function:: - s = interpolate(ungettext('this is %s object', 'this are %s objects', 11), [11]); + function interpolate(fmt, obj, named); -The interpolation syntax is borrowed from Python. You shouldn't go over the top -with string interpolation, though: this is still JavaScript, so the code will -have to do repeated regular-expression substitutions. This isn't as fast as -string interpolation in Python, so keep it to those cases where you really -need it (for example, in conjunction with ``ungettext`` to produce proper -pluralizations). +The interpolation syntax is borrowed from Python, so the ``interpolate`` +function supports both positional and named interpolation: + + * Positional interpolation: ``obj`` contains a JavaScript Array object + whose elements values are then sequentially interpolated in their + corresponding ``fmt`` placeholders in the same order they appear. + For example:: + + fmts = ngettext('There is %s object. Remaining: %s', + 'There are %s objects. Remaining: %s', 11); + s = interpolate(fmts, [11, 20]); + // s is 'There are 11 objects. Remaining: 20' + + * Named interpolation: This mode is selected by passing the optional + boolean ``named`` parameter as true. ``obj`` contains a JavaScript + object or associative array. For example:: + + d = { + count: 10 + total: 50 + }; + + fmts = ngettext('Total: %(total)s, there is %(count)s object', + 'there are %(count)s of a total of %(total)s objects', d.count); + s = interpolate(fmts, d, true); + +You shouldn't go over the top with string interpolation, though: this is still +JavaScript, so the code has to make repeated regular-expression substitutions. +This isn't as fast as string interpolation in Python, so keep it to those +cases where you really need it (for example, in conjunction with ``ngettext`` +to produce proper pluralizations). Creating JavaScript translation catalogs ---------------------------------------- diff --git a/docs/index.txt b/docs/index.txt new file mode 100644 index 0000000000..385ada455c --- /dev/null +++ b/docs/index.txt @@ -0,0 +1,128 @@ +==================== +Django Documentation +==================== + +The essential documentation +=========================== + +If you're new to Django, make sure to read the following documentation in +order.. The rest (in the "reference" section below) can be ready in any order as +you need various functionality. + +.. toctree:: + :maxdepth: 1 + + overview + install + tutorial01 + tutorial02 + tutorial03 + tutorial04 + faq + documentation + +Reference +========= + +.. toctree:: + :maxdepth: 1 + + django-admin + model-api + db-api + transactions + templates + templates_python + newforms + modelforms + testing + sessions + cache + settings + url_dispatch + request_response + generic_views + authentication + shortcuts + unicode + pagination + serialization + i18n + middleware + custom_model_fields + databases + +``django.contrib`` add-ons +-------------------------- + +.. toctree:: + :maxdepth: 1 + + add_ons + contenttypes + csrf + databrowse + flatpages + form_preview + form_wizard + localflavor + redirects + sites + sitemaps + syndication_feeds + webdesign + +Deployment +---------- + +.. toctree:: + :maxdepth: 1 + + modpython + fastcgi + +Solving specific problems +------------------------- + +.. toctree:: + :maxdepth: 1 + + apache_auth + static_files + email + legacy_databases + outputting_pdf + outputting_csv + +Et cetera +--------- + +.. toctree:: + :maxdepth: 1 + + design_philosophies + contributing + admin_css + api_stability + +Release notes +------------- + +.. toctree:: + :maxdepth: 1 + + release_notes_0.96 + release_notes_0.95 + +Also see the list of `backwards-incompatible changes`__ for changes made between +releases. + +__ http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/docs/install.txt b/docs/install.txt index 341c4280e8..bfe85fff8a 100644 --- a/docs/install.txt +++ b/docs/install.txt @@ -172,11 +172,11 @@ Installing the development version If you decide to use the latest development version of Django, you'll want to pay close attention to `the development timeline`_, and you'll want to keep an eye on `the list of - backwards-incompatible changes`_; this will help you stay on top + backwards-incompatible changes`_. This will help you stay on top of any new features you might want to use, as well as any changes - you'll need to make to your code when updating your copy of Django - (for stable releases, any necessary changes are documented in the - release notes). + you'll need to make to your code when updating your copy of Django. + (For stable releases, any necessary changes are documented in the + release notes.) .. _the development timeline: http://code.djangoproject.com/timeline .. _the list of backwards-incompatible changes: http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges diff --git a/docs/modelforms.txt b/docs/modelforms.txt index 05f9b1b3d4..554aeb7ea0 100644 --- a/docs/modelforms.txt +++ b/docs/modelforms.txt @@ -236,7 +236,7 @@ works exactly the same way as any other ``newforms`` form. For example, the ``is_valid()`` method is used to check for validity, the ``is_multipart()`` method is used to determine whether a form requires multipart file upload (and hence whether ``request.FILES`` must be -passed to the form), etc.; see `the standard newforms documentation`_ +passed to the form), etc. See `the standard newforms documentation`_ for more information. .. _the standard newforms documentation: ../newforms/ diff --git a/docs/newforms.txt b/docs/newforms.txt index 533ff75185..d07f7f9dc3 100644 --- a/docs/newforms.txt +++ b/docs/newforms.txt @@ -1549,12 +1549,14 @@ additional required argument: ``ModelChoiceField`` ~~~~~~~~~~~~~~~~~~~~ -Allows the selection of a single model object, suitable for representing a -foreign key. The method receives an object as an argument and must return a -string to represent it. +Allows the selection of a single model object, suitable for +representing a foreign key. -The labels for the choice field call the ``__unicode__`` method of the model to -generate string representations. To provide custom labels, subclass ``ModelChoiceField`` and override ``label_for_model``:: +The ``__unicode__`` method of the model will be called to generate +string representations of the objects for use in the field's choices; +to provide customized representations, subclass ``ModelChoiceField`` +and override ``label_for_model``. This method will receive model +object, and should return a string suitable for representing it:: class MyModelChoiceField(ModelChoiceField): def label_from_instance(self, obj): @@ -1563,9 +1565,10 @@ generate string representations. To provide custom labels, subclass ``ModelChoic ``ModelMultipleChoiceField`` ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Allows the selection of one or more model objects, suitable for representing a -many-to-many relation. As with ``ModelChoiceField``, you can use -``label_from_instance`` to customize the object labels. +Allows the selection of one or more model objects, suitable for +representing a many-to-many relation. As with ``ModelChoiceField``, +you can use ``label_from_instance`` to customize the object +representations. Creating custom fields ---------------------- diff --git a/docs/request_response.txt b/docs/request_response.txt index 0e0f046a2d..a4f03b9185 100644 --- a/docs/request_response.txt +++ b/docs/request_response.txt @@ -143,14 +143,13 @@ All attributes except ``session`` should be considered read-only. ``urlconf`` Not defined by Django itself, but will be read if other code - (e.g., a custom middleware class) sets it; when present, this will - be used as the root URLConf for the current request, overriding + (e.g., a custom middleware class) sets it. When present, this will + be used as the root URLconf for the current request, overriding the ``ROOT_URLCONF`` setting. See `How Django processes a request`_ for details. .. _How Django processes a request: ../url_dispatch/#how-django-processes-a-request - Methods ------- @@ -202,19 +201,19 @@ Methods ``is_ajax()`` **New in Django development version** - Returns ``True`` if the request was made via an XMLHttpRequest by checking - the ``HTTP_X_REQUESTED_WITH`` header for the string *'XMLHttpRequest'*. The - following major Javascript libraries all send this header: + Returns ``True`` if the request was made via an ``XMLHttpRequest``, by checking + the ``HTTP_X_REQUESTED_WITH`` header for the string ``'XMLHttpRequest'``. The + following major JavaScript libraries all send this header: - * jQuery - * Dojo - * MochiKit - * MooTools - * Prototype - * YUI + * jQuery + * Dojo + * MochiKit + * MooTools + * Prototype + * YUI - If you write your own XMLHttpRequest call (on the browser side), you will - have to set this header manually to use this method. + If you write your own XMLHttpRequest call (on the browser side), you'll + have to set this header manually if you want ``is_ajax()`` to work. QueryDict objects ----------------- diff --git a/docs/settings.txt b/docs/settings.txt index fb2e04f1ea..5aee19102b 100644 --- a/docs/settings.txt +++ b/docs/settings.txt @@ -279,7 +279,7 @@ Default: ``''`` (Empty string) The database backend to use. The build-in database backends are ``'postgresql_psycopg2'``, ``'postgresql'``, ``'mysql'``, ``'mysql_old'``, -``'sqlite3'``, ``'oracle'``, or ``'ado_mssql'``. +``'sqlite3'`` and ``'oracle'``. In the Django development version, you can use a database backend that doesn't ship with Django by setting ``DATABASE_ENGINE`` to a fully-qualified path (i.e. diff --git a/docs/syndication_feeds.txt b/docs/syndication_feeds.txt index f86acfe54d..6a603c4e54 100644 --- a/docs/syndication_feeds.txt +++ b/docs/syndication_feeds.txt @@ -250,7 +250,7 @@ request to the URL ``/rss/beats/0613/``: will be an empty list. In our example, ``len(bits) != 1`` and an ``ObjectDoesNotExist`` exception will be raised, so ``/rss/beats/`` will generate a 404 page. But you can handle this case however you like. For - example you could generate a combined feed for all beats. + example, you could generate a combined feed for all beats. * To generate the feed's ````, ``<link>`` and ``<description>``, Django uses the ``title()``, ``link()`` and ``description()`` methods. In diff --git a/docs/testing.txt b/docs/testing.txt index 54b8ba9ae6..0ff3cce3d9 100644 --- a/docs/testing.txt +++ b/docs/testing.txt @@ -80,7 +80,7 @@ read Python's official documentation for the details. .. admonition:: What's a **docstring**? A good explanation of docstrings (and some guidelines for using them - effectively) can be found in :PEP:`257`: + effectively) can be found in :pep:`257`: A docstring is a string literal that occurs as the first statement in a module, function, class, or method definition. Such a docstring diff --git a/docs/tutorial04.txt b/docs/tutorial04.txt index 473fba1ef8..8f23fdd9e6 100644 --- a/docs/tutorial04.txt +++ b/docs/tutorial04.txt @@ -37,9 +37,9 @@ A quick rundown: form will alter data server-side. Whenever you create a form that alters data server-side, use ``method="post"``. This tip isn't specific to Django; it's just good Web development practice. - + * ``forloop.counter`` indicates how many times the ``for`` tag has - gone through its loop; for more information, see `the + gone through its loop. For more information, see `the documentation for the "for" tag`_. .. _the documentation for the "for" tag: ../templates/#for @@ -247,8 +247,8 @@ template. Note that we use ``dict()`` to return an altered dictionary in place. which is "lazy" and doesn't hit your database until it absolutely has to. By the time the database query happens, the ``object_detail`` generic view will have narrowed its scope down to a single object, so the eventual query will - only select one row from the database. - + only select one row from the database. + If you'd like to know more about how that works, The Django database API documentation `explains the lazy nature of QuerySet objects`_. @@ -266,9 +266,8 @@ from ``polls/views.py``. We don't need them anymore -- they have been replaced by generic views. The ``vote()`` view is still required. However, it must be modified to match -the new templates and context variables. Change the template call from -``polls/detail.html`` to ``polls/poll_detail.html``, and pass ``object`` in the -context instead of ``poll``. +the new context variables. In the ``render_to_repsonse()`` call, rename the +``poll`` context variable to ``object``. The last thing to do is fix the URL handling to account for the use of generic views. In the vote view above, we used the ``reverse()`` function to avoid @@ -276,7 +275,7 @@ hard-coding our URLs. Now that we've switched to a generic view, we'll need to change the ``reverse()`` call to point back to our new generic view. We can't simply use the view function anymore -- generic views can be (and are) used multiple times -- but we can use the name we've given:: - + return HttpResponseRedirect(reverse('poll_results', args=(p.id,))) Run the server, and use your new polling app based on generic views. diff --git a/docs/url_dispatch.txt b/docs/url_dispatch.txt index 053ee954a3..28f15289a9 100644 --- a/docs/url_dispatch.txt +++ b/docs/url_dispatch.txt @@ -32,7 +32,7 @@ How Django processes a request When a user requests a page from your Django-powered site, this is the algorithm the system follows to determine which Python code to execute: - 1. Django determines the root URLConf module to use; ordinarily + 1. Django determines the root URLconf module to use. Ordinarily, this is the value of the ``ROOT_URLCONF`` setting in your `settings file`_, but if the incoming ``HttpRequest`` object has an attribute called ``urlconf``, its value will be used in diff --git a/tests/modeltests/or_lookups/models.py b/tests/modeltests/or_lookups/models.py index 38339c0685..c779e19e37 100644 --- a/tests/modeltests/or_lookups/models.py +++ b/tests/modeltests/or_lookups/models.py @@ -103,7 +103,7 @@ __test__ = {'API_TESTS':""" >>> Article.objects.filter(Q(pk=1) & (~Q(pk=2) | Q(pk=3))) [<Article: Hello>] -# Try some arg queries with operations other than get_list +# Try some arg queries with operations other than filter. >>> Article.objects.get(Q(headline__startswith='Hello'), Q(headline__contains='bye')) <Article: Hello and goodbye> diff --git a/tests/regressiontests/forms/fields.py b/tests/regressiontests/forms/fields.py index 9421d8c005..f3b6a96a1e 100644 --- a/tests/regressiontests/forms/fields.py +++ b/tests/regressiontests/forms/fields.py @@ -1135,29 +1135,39 @@ u'' # FilePathField ############################################################### +>>> def fix_os_paths(x): +... if isinstance(x, basestring): +... return x.replace('\\', '/') +... elif isinstance(x, tuple): +... return tuple(fix_os_paths(list(x))) +... elif isinstance(x, list): +... return [fix_os_paths(y) for y in x] +... else: +... return x +... >>> import os >>> from django import newforms as forms >>> path = forms.__file__ >>> path = os.path.dirname(path) + '/' ->>> path +>>> fix_os_paths(path) '.../django/newforms/' >>> f = forms.FilePathField(path=path) >>> f.choices.sort() ->>> f.choices +>>> fix_os_paths(f.choices) [('.../django/newforms/__init__.py', '__init__.py'), ('.../django/newforms/__init__.pyc', '__init__.pyc'), ('.../django/newforms/fields.py', 'fields.py'), ('.../django/newforms/fields.pyc', 'fields.pyc'), ('.../django/newforms/forms.py', 'forms.py'), ('.../django/newforms/forms.pyc', 'forms.pyc'), ('.../django/newforms/models.py', 'models.py'), ('.../django/newforms/models.pyc', 'models.pyc'), ('.../django/newforms/util.py', 'util.py'), ('.../django/newforms/util.pyc', 'util.pyc'), ('.../django/newforms/widgets.py', 'widgets.py'), ('.../django/newforms/widgets.pyc', 'widgets.pyc')] >>> f.clean('fields.py') Traceback (most recent call last): ... ValidationError: [u'Select a valid choice. That choice is not one of the available choices.'] ->>> f.clean(path + 'fields.py') +>>> fix_os_paths(f.clean(path + 'fields.py')) u'.../django/newforms/fields.py' >>> f = forms.FilePathField(path=path, match='^.*?\.py$') >>> f.choices.sort() ->>> f.choices +>>> fix_os_paths(f.choices) [('.../django/newforms/__init__.py', '__init__.py'), ('.../django/newforms/fields.py', 'fields.py'), ('.../django/newforms/forms.py', 'forms.py'), ('.../django/newforms/models.py', 'models.py'), ('.../django/newforms/util.py', 'util.py'), ('.../django/newforms/widgets.py', 'widgets.py')] >>> f = forms.FilePathField(path=path, recursive=True, match='^.*?\.py$') >>> f.choices.sort() ->>> f.choices +>>> fix_os_paths(f.choices) [('.../django/newforms/__init__.py', '__init__.py'), ('.../django/newforms/extras/__init__.py', 'extras/__init__.py'), ('.../django/newforms/extras/widgets.py', 'extras/widgets.py'), ('.../django/newforms/fields.py', 'fields.py'), ('.../django/newforms/forms.py', 'forms.py'), ('.../django/newforms/models.py', 'models.py'), ('.../django/newforms/util.py', 'util.py'), ('.../django/newforms/widgets.py', 'widgets.py')] # SplitDateTimeField ########################################################## diff --git a/tests/regressiontests/model_regress/models.py b/tests/regressiontests/model_regress/models.py index 02e73a5aa9..2252531564 100644 --- a/tests/regressiontests/model_regress/models.py +++ b/tests/regressiontests/model_regress/models.py @@ -26,6 +26,9 @@ class Movie(models.Model): movie_id = models.AutoField(primary_key=True) name = models.CharField(max_length=60) +class Party(models.Model): + when = models.DateField() + __test__ = {'API_TESTS': """ (NOTE: Part of the regression test here is merely parsing the model declaration. The verbose_name, in particular, did not always work.) @@ -51,5 +54,19 @@ u'' >>> len(a4.article_text) 5000 +# #659 regression test +>>> import datetime +>>> p = Party.objects.create(when = datetime.datetime(1999, 12, 31)) +>>> p = Party.objects.create(when = datetime.datetime(1998, 12, 31)) +>>> p = Party.objects.create(when = datetime.datetime(1999, 1, 1)) +>>> [p.when for p in Party.objects.filter(when__month = 2)] +[] +>>> [p.when for p in Party.objects.filter(when__month = 1)] +[datetime.date(1999, 1, 1)] +>>> [p.when for p in Party.objects.filter(when__month = 12)] +[datetime.date(1999, 12, 31), datetime.date(1998, 12, 31)] +>>> [p.when for p in Party.objects.filter(when__year = 1998)] +[datetime.date(1998, 12, 31)] + """ }