From ca33d307dee3cf68cc9cd2ccfae00c7ff23ea890 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty Date: Sat, 15 Sep 2007 21:57:25 +0000 Subject: [PATCH] queryset-refactor: Merged to [6300] git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6340 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- AUTHORS | 8 + django/conf/__init__.py | 1 + django/conf/global_settings.py | 1 + django/conf/locale/ca/LC_MESSAGES/django.mo | Bin 49588 -> 56726 bytes django/conf/locale/ca/LC_MESSAGES/django.po | 4605 +++++++++-------- django/conf/locale/es/LC_MESSAGES/django.mo | Bin 55091 -> 56661 bytes django/conf/locale/es/LC_MESSAGES/django.po | 4561 ++++++++-------- django/conf/locale/fi/LC_MESSAGES/django.mo | Bin 34867 -> 49408 bytes django/conf/locale/fi/LC_MESSAGES/django.po | 4323 +++++++++++----- django/conf/locale/ga/LC_MESSAGES/django.mo | Bin 0 -> 379 bytes django/conf/locale/ga/LC_MESSAGES/django.po | 3443 ++++++++++++ django/conf/locale/ga/LC_MESSAGES/djangojs.mo | Bin 0 -> 383 bytes django/conf/locale/ga/LC_MESSAGES/djangojs.po | 116 + .../contrib/admin/media/js/SelectFilter2.js | 2 +- django/contrib/admin/views/doc.py | 4 +- django/contrib/auth/models.py | 10 +- django/contrib/auth/tests.py | 9 +- django/contrib/contenttypes/management.py | 33 +- django/contrib/contenttypes/models.py | 2 +- django/contrib/localflavor/pe/__init__.py | 0 django/contrib/localflavor/pe/forms.py | 61 + .../contrib/localflavor/pe/pe_department.py | 35 + django/contrib/sessions/models.py | 7 +- django/contrib/sites/models.py | 3 +- django/core/handlers/base.py | 4 +- django/core/mail.py | 6 +- django/core/management/base.py | 10 +- django/core/management/commands/syncdb.py | 14 +- django/core/management/sql.py | 2 +- django/core/serializers/__init__.py | 6 +- django/core/serializers/python.py | 9 +- django/core/validators.py | 17 +- django/db/models/base.py | 4 +- django/db/models/fields/__init__.py | 10 + django/db/models/manager.py | 4 + django/db/models/manipulators.py | 3 +- django/http/__init__.py | 30 +- django/middleware/common.py | 4 +- django/newforms/fields.py | 8 +- django/newforms/forms.py | 10 + django/newforms/util.py | 11 +- django/newforms/widgets.py | 2 + django/shortcuts/__init__.py | 1 - django/template/__init__.py | 27 +- django/template/defaulttags.py | 2 +- django/utils/datastructures.py | 16 +- django/utils/dateformat.py | 13 +- django/utils/encoding.py | 2 +- django/utils/feedgenerator.py | 1 + django/utils/functional.py | 7 + django/utils/translation/trans_real.py | 2 + django/views/generic/simple.py | 3 +- docs/authentication.txt | 9 +- docs/contributing.txt | 29 +- docs/databases.txt | 2 +- docs/db-api.txt | 3 + docs/fastcgi.txt | 5 +- docs/generic_views.txt | 7 +- docs/i18n.txt | 142 +- docs/install.txt | 11 + docs/newforms.txt | 21 + docs/templates.txt | 6 + docs/testing.txt | 14 +- docs/tutorial01.txt | 2 +- tests/modeltests/fixtures/models.py | 2 +- tests/modeltests/serializers/models.py | 52 +- tests/modeltests/signals/__init__.py | 0 tests/modeltests/signals/models.py | 85 + tests/regressiontests/forms/models.py | 21 + tests/regressiontests/forms/regressions.py | 6 + tests/regressiontests/forms/tests.py | 33 + 71 files changed, 11937 insertions(+), 5965 deletions(-) create mode 100644 django/conf/locale/ga/LC_MESSAGES/django.mo create mode 100644 django/conf/locale/ga/LC_MESSAGES/django.po create mode 100644 django/conf/locale/ga/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/ga/LC_MESSAGES/djangojs.po create mode 100644 django/contrib/localflavor/pe/__init__.py create mode 100644 django/contrib/localflavor/pe/forms.py create mode 100644 django/contrib/localflavor/pe/pe_department.py create mode 100644 tests/modeltests/signals/__init__.py create mode 100644 tests/modeltests/signals/models.py diff --git a/AUTHORS b/AUTHORS index ecdb98f91e..1e30399735 100644 --- a/AUTHORS +++ b/AUTHORS @@ -149,6 +149,7 @@ answer newbie questions, and generally made Django that much better: Sung-Jin Hong Richard House Robert Rock Howard + Rob Hudson Jason Huggins Hyun Mi Ae Tom Insam @@ -182,6 +183,7 @@ answer newbie questions, and generally made Django that much better: lakin.wecker@gmail.com Nick Lane Stuart Langridge + Paul Lanier Nicola Larosa Eugene Lazutkin Jeong-Min Lee @@ -195,6 +197,7 @@ answer newbie questions, and generally made Django that much better: Martin Maney masonsimon+django@gmail.com Manuzhai + Petr Marhoun Petar Marić Nuno Mariz Marijn Vriens @@ -263,9 +266,11 @@ answer newbie questions, and generally made Django that much better: Jozko Skrablin SmileyChris smurf@smurf.noris.de + Vsevolod Solovyov sopel Leo Soto Wiliam Alves de Souza + Bjørn Stabell Georgi Stanojevski Vasiliy Stavenko Thomas Steinacher @@ -282,6 +287,7 @@ answer newbie questions, and generally made Django that much better: Frank Tegtmeyer thebjorn Zach Thompson + Michael Thornhill Deepak Thukral tibimicu@gmax.net tobias@neuyork.de @@ -295,10 +301,12 @@ answer newbie questions, and generally made Django that much better: Amit Upadhyay Geert Vanderkelen viestards.lists@gmail.com + George Vilches Vlado Milton Waddams wam-djangobug@wamber.net wangchun + Filip Wasilewski Dan Watson Chris Wesseling James Wheare diff --git a/django/conf/__init__.py b/django/conf/__init__.py index f28da2d764..f19e509ea3 100644 --- a/django/conf/__init__.py +++ b/django/conf/__init__.py @@ -112,6 +112,7 @@ class Settings(object): # Move the time zone info into os.environ. See ticket #2315 for why # we don't do this unconditionally (breaks Windows). os.environ['TZ'] = self.TIME_ZONE + time.tzset() def get_all_members(self): return dir(self) diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 414d6a7f12..c8420f3307 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -51,6 +51,7 @@ LANGUAGES = ( ('fa', gettext_noop('Persian')), ('fi', gettext_noop('Finnish')), ('fr', gettext_noop('French')), + ('ga', gettext_noop('Gaeilge')), ('gl', gettext_noop('Galician')), ('hu', gettext_noop('Hungarian')), ('he', gettext_noop('Hebrew')), diff --git a/django/conf/locale/ca/LC_MESSAGES/django.mo b/django/conf/locale/ca/LC_MESSAGES/django.mo index 82cd1bee4b19873f2f65e8448edc30f6625d8c2f..28bc60a75894e67ad30e93b703fe52a50dbf1cb5 100644 GIT binary patch delta 21924 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 diff --git a/django/conf/locale/ca/LC_MESSAGES/django.po b/django/conf/locale/ca/LC_MESSAGES/django.po index 451c60e2db..fe2836ff89 100644 --- a/django/conf/locale/ca/LC_MESSAGES/django.po +++ b/django/conf/locale/ca/LC_MESSAGES/django.po @@ -5,147 +5,99 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-06-25 17:31+0200\n" -"PO-Revision-Date: 2007-06-25 17:47+0200\n" -"Last-Translator: Marc Fargas \n" +"POT-Creation-Date: 2007-09-14 12:38+0200\n" +"PO-Revision-Date: 2007-09-14 14:21+0100\n" +"Last-Translator: Marc Garcia \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: template/defaultfilters.py:491 -msgid "yes,no,maybe" -msgstr "si,no,potser" - -#: template/defaultfilters.py:520 +#: db/models/manipulators.py:309 #, python-format -msgid "%(size)d byte" -msgid_plural "%(size)d bytes" -msgstr[0] "%(size)d byte" -msgstr[1] "%(size)d bytes" +msgid "%(object)s with this %(type)s already exists for the given %(field)s." +msgstr "Ja existeix un %(object)s del tipus %(type)s amb aquest %(field)s." -#: template/defaultfilters.py:522 +#: db/models/manipulators.py:310 +#: core/validators.py:283 +#: contrib/admin/views/main.py:342 +#: contrib/admin/views/main.py:344 +#: contrib/admin/views/main.py:346 +msgid "and" +msgstr "i" + +#: db/models/fields/related.py:55 #, python-format -msgid "%.1f KB" -msgstr "%.1f KB" +msgid "Please enter a valid %s." +msgstr "Si us plau, introdueixi un %s vàlid." -#: template/defaultfilters.py:524 +#: db/models/fields/related.py:658 +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." +msgstr "Premi \"Control\" o \"Command\" en un Mac per escollir més d'un." + +#: db/models/fields/related.py:707 #, python-format -msgid "%.1f MB" -msgstr "%.1f MB" +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." -#: template/defaultfilters.py:525 +#: db/models/fields/__init__.py:52 #, python-format -msgid "%.1f GB" -msgstr "%.1f GB" +msgid "%(optname)s with this %(fieldname)s already exists." +msgstr "Ja existeix %(optname)s amb auqest %(fieldname)s." -#: newforms/models.py:172 newforms/fields.py:432 -msgid "Select a valid choice. That choice is not one of the available choices." -msgstr "" -"Esculli una opció vàlida; Aquesta opció no és una de les opcions disponibles." - -#: newforms/models.py:185 newforms/fields.py:87 newforms/fields.py:444 -#: newforms/fields.py:522 newforms/fields.py:533 oldforms/__init__.py:357 -#: db/models/fields/__init__.py:126 db/models/fields/__init__.py:283 -#: db/models/fields/__init__.py:680 db/models/fields/__init__.py:691 +#: db/models/fields/__init__.py:159 +#: db/models/fields/__init__.py:316 +#: db/models/fields/__init__.py:724 +#: db/models/fields/__init__.py:735 +#: oldforms/__init__.py:373 +#: newforms/fields.py:93 +#: newforms/fields.py:509 +#: newforms/fields.py:585 +#: newforms/fields.py:596 +#: newforms/models.py:193 msgid "This field is required." msgstr "Aquest camp és obligatori." -#: newforms/models.py:189 newforms/fields.py:448 newforms/fields.py:526 -msgid "Enter a list of values." -msgstr "Introdueixi una llista de valors." +#: db/models/fields/__init__.py:414 +msgid "This value must be an integer." +msgstr "Aquest valor ha de ser un enter." -#: newforms/models.py:195 newforms/fields.py:457 -#, python-format -msgid "Select a valid choice. %s is not one of the available choices." -msgstr "Esculli una opció vàlida; %s' no és una de les opcions vàlides." +#: db/models/fields/__init__.py:449 +msgid "This value must be either True or False." +msgstr "Aquest valor ha de ser True (Veritat) o False (Fals)" -#: newforms/widgets.py:181 contrib/admin/filterspecs.py:150 -#: oldforms/__init__.py:577 -msgid "Unknown" -msgstr "Desconegut" +#: db/models/fields/__init__.py:470 +msgid "This field cannot be null." +msgstr "Aquest camp no pot ser null (estar buit)." -#: newforms/widgets.py:181 contrib/admin/filterspecs.py:143 -#: oldforms/__init__.py:577 -msgid "Yes" -msgstr "Si" +#: db/models/fields/__init__.py:504 +#: core/validators.py:156 +msgid "Enter a valid date in YYYY-MM-DD format." +msgstr "Introdueixi una data vàlida en el forma AAAA-MM-DD." -#: newforms/widgets.py:181 contrib/admin/filterspecs.py:143 -#: oldforms/__init__.py:577 -msgid "No" -msgstr "No" +#: db/models/fields/__init__.py:573 +#: core/validators.py:165 +msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." +msgstr "Introdueixi un data/hora vàlida en format YYYY-MM-DD HH:MM." -#: newforms/fields.py:110 newforms/fields.py:324 -#, python-format -msgid "Ensure this value has at most %d characters." -msgstr "Asseguris de que el seu texte té com a màxim %d caracters." +#: db/models/fields/__init__.py:634 +msgid "This value must be a decimal number." +msgstr "Aquest valor ha de ser un número decimal." -#: newforms/fields.py:112 newforms/fields.py:326 -#, python-format -msgid "Ensure this value has at least %d characters." -msgstr "Asseguris de que el seu texte té almenys %d caracters." +#: db/models/fields/__init__.py:744 +msgid "Enter a valid filename." +msgstr "Introdueixi un nom de fitxer vàlid." -#: newforms/fields.py:135 core/validators.py:121 -msgid "Enter a whole number." -msgstr "Introdueixi un número sencer." - -#: newforms/fields.py:137 newforms/fields.py:160 newforms/fields.py:192 -#, python-format -msgid "Ensure this value is less than or equal to %s." -msgstr "Aquest valor ha de ser menor o igual a %s." - -#: newforms/fields.py:139 newforms/fields.py:162 newforms/fields.py:194 -#, python-format -msgid "Ensure this value is greater than or equal to %s." -msgstr "Asseguris de que aquest valor sigui superior o igual a %s." - -#: newforms/fields.py:158 newforms/fields.py:186 -msgid "Enter a number." -msgstr "Introdueixi un número." - -#: newforms/fields.py:196 -#, python-format -msgid "Ensure that there are no more than %s digits in total." -msgstr "Asseguris de que no hi ha més de %s dígits en total." - -#: newforms/fields.py:198 -#, python-format -msgid "Ensure that there are no more than %s decimal places." -msgstr "Asseguris de que no hi ha més de %s decimals." - -#: newforms/fields.py:200 -#, python-format -msgid "Ensure that there are no more than %s digits before the decimal point." -msgstr "Asseguris de que no hia ha més de %s dígits decimals." - -#: newforms/fields.py:233 newforms/fields.py:566 -msgid "Enter a valid date." -msgstr "Introdueixi una data vàlida." - -#: newforms/fields.py:260 newforms/fields.py:568 -msgid "Enter a valid time." -msgstr "Introdueixi una hora vàlida." - -#: newforms/fields.py:296 -msgid "Enter a valid date/time." -msgstr "Introdueixi una data/hora vàlides." - -#: newforms/fields.py:310 -msgid "Enter a valid value." -msgstr "Introdueixi un valor vàlid." - -#: newforms/fields.py:339 core/validators.py:163 -msgid "Enter a valid e-mail address." -msgstr "Introdueixi una adreça de correu vàlida." - -#: newforms/fields.py:357 newforms/fields.py:379 -msgid "Enter a valid URL." -msgstr "Introdueixi una URL vàlida." - -#: newforms/fields.py:381 -msgid "This URL appears to be a broken link." -msgstr "Aquesta URL sembla ser un enllaç trencat." +#: db/models/fields/__init__.py:887 +msgid "This value must be either None, True or False." +msgstr "Aquest valor ha de ser None (Cap), True (Veritat) o False (Fals)" #: conf/global_settings.py:39 msgid "Arabic" @@ -220,102 +172,1561 @@ msgid "Hebrew" msgstr "Hebreu" #: conf/global_settings.py:57 +msgid "Croatian" +msgstr "Croat" + +#: conf/global_settings.py:58 msgid "Icelandic" msgstr "Islandès" -#: conf/global_settings.py:58 +#: conf/global_settings.py:59 msgid "Italian" msgstr "Italià" -#: conf/global_settings.py:59 +#: conf/global_settings.py:60 msgid "Japanese" msgstr "Japonès" -#: conf/global_settings.py:60 +#: conf/global_settings.py:61 msgid "Korean" msgstr "Coreà" -#: conf/global_settings.py:61 +#: conf/global_settings.py:62 +msgid "Khmer" +msgstr "Khmer" + +#: conf/global_settings.py:63 msgid "Kannada" msgstr "Canès" -#: conf/global_settings.py:62 +#: conf/global_settings.py:64 msgid "Latvian" msgstr "Letó" -#: conf/global_settings.py:63 +#: conf/global_settings.py:65 msgid "Macedonian" msgstr "Macedoni" -#: conf/global_settings.py:64 +#: conf/global_settings.py:66 msgid "Dutch" msgstr "Holandès" -#: conf/global_settings.py:65 +#: conf/global_settings.py:67 msgid "Norwegian" msgstr "Norueg" -#: conf/global_settings.py:66 +#: conf/global_settings.py:68 msgid "Polish" msgstr "Polac" -#: conf/global_settings.py:67 +#: conf/global_settings.py:69 msgid "Portugese" msgstr "Portuguès" -#: conf/global_settings.py:68 +#: conf/global_settings.py:70 msgid "Brazilian" msgstr "Brasileny" -#: conf/global_settings.py:69 +#: conf/global_settings.py:71 msgid "Romanian" msgstr "Rumanès" -#: conf/global_settings.py:70 +#: conf/global_settings.py:72 msgid "Russian" msgstr "Rús" -#: conf/global_settings.py:71 +#: conf/global_settings.py:73 msgid "Slovak" msgstr "Eslovac" -#: conf/global_settings.py:72 +#: conf/global_settings.py:74 msgid "Slovenian" msgstr "Esloveni" -#: conf/global_settings.py:73 +#: conf/global_settings.py:75 msgid "Serbian" msgstr "Serbi" -#: conf/global_settings.py:74 +#: conf/global_settings.py:76 msgid "Swedish" msgstr "Suec" -#: conf/global_settings.py:75 +#: conf/global_settings.py:77 msgid "Tamil" msgstr "Tàmil" -#: conf/global_settings.py:76 +#: conf/global_settings.py:78 msgid "Telugu" msgstr "Telugu" -#: conf/global_settings.py:77 +#: conf/global_settings.py:79 msgid "Turkish" msgstr "Turc" -#: conf/global_settings.py:78 +#: conf/global_settings.py:80 msgid "Ukrainian" msgstr "Ucranià" -#: conf/global_settings.py:79 +#: conf/global_settings.py:81 msgid "Simplified Chinese" msgstr "Xinés simplificat" -#: conf/global_settings.py:80 +#: conf/global_settings.py:82 msgid "Traditional Chinese" msgstr "Xinés tradicional" -#: contrib/comments/models.py:67 contrib/comments/models.py:166 +#: 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." + +#: 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 (/)." + +#: 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" + +#: core/validators.py:84 +msgid "Uppercase letters are not allowed here." +msgstr "No es permeten majúscules aquí." + +#: core/validators.py:88 +msgid "Lowercase letters are not allowed here." +msgstr "No es permeten minúscules aquí." + +#: core/validators.py:95 +msgid "Enter only digits separated by commas." +msgstr "Introdueixi només dígits separats per comes." + +#: core/validators.py:107 +msgid "Enter valid e-mail addresses separated by commas." +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." + +#: core/validators.py:115 +msgid "Empty values are not allowed here." +msgstr "No s'admeten valor buits." + +#: core/validators.py:119 +msgid "Non-numeric characters aren't allowed here." +msgstr "No s'admeten caracters no numèrics." + +#: core/validators.py:123 +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:149 +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í." + +#: core/validators.py:147 +msgid "Year must be 1900 or later." +msgstr "L'any ha de ser posterior al 1900" + +#: core/validators.py:151 +#, python-format +msgid "Invalid date: %s" +msgstr "Data invàlida: %s" + +#: core/validators.py:161 +msgid "Enter a valid time in HH:MM format." +msgstr "Introdueixi una hora vàlida en el format HH:MM." + +#: core/validators.py:170 +#: newforms/fields.py:343 +msgid "Enter a valid e-mail address." +msgstr "Introdueixi una adreça de correu vàlida." + +#: core/validators.py:182 +#: core/validators.py:469 +#: oldforms/__init__.py:686 +#: newforms/fields.py:377 +msgid "No file was submitted. Check the encoding type on the form." +msgstr "No s'ha enviat cap fitxer. Comprovi el tipus de codificació del formulari." + +#: core/validators.py:193 +#: newforms/fields.py:405 +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:200 +#, python-format +msgid "The URL %s does not point to a valid image." +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." + +#: core/validators.py:212 +#, python-format +msgid "The URL %s does not point to a valid QuickTime video." +msgstr "La URL %s no apunta a un video QuickTime vàlid." + +#: core/validators.py:216 +msgid "A valid URL is required." +msgstr "Es precisa d'una URL vàlida." + +#: core/validators.py:230 +#, python-format +msgid "" +"Valid HTML is required. Specific errors are:\n" +"%s" +msgstr "" +"Es precisa HTML vàlid. Els errors específics sòn:\n" +"%s" + +#: core/validators.py:237 +#, python-format +msgid "Badly formed XML: %s" +msgstr "XML incorrectament formatejat: %s" + +#: core/validators.py:254 +#, python-format +msgid "Invalid URL: %s" +msgstr "URL invalida: %s" + +#: 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.." + +#: 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." + +#: core/validators.py:288 +#, python-format +msgid "This field must match the '%s' field." +msgstr "Aquest camp ha de concordar amb el camp '%s'." + +#: core/validators.py:307 +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 +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" + +#: 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" + +#: core/validators.py:367 +msgid "Duplicate values are not allowed." +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." + +#: core/validators.py:384 +#, python-format +msgid "This value must be at least %s." +msgstr "Aquest valor ha de ser com a mínim %s." + +#: core/validators.py:386 +#, python-format +msgid "This value must be no more than %s." +msgstr "Aquest valor ha de ser com a màxim %s." + +#: core/validators.py:422 +#, python-format +msgid "This value must be a power of %s." +msgstr "Aquest valor ha de ser una potència de %s." + +#: core/validators.py:432 +msgid "Please enter a valid decimal number." +msgstr "Si us plau, introdueixi un número decimal vàlid." + +#: core/validators.py:439 +#, 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." + +#: core/validators.py:442 +#, 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." + +#: core/validators.py:445 +#, 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." + +#: core/validators.py:453 +msgid "Please enter a valid floating point number." +msgstr "Si us plau, introdueixi un número amb punt de coma flotant vàlid." + +#: core/validators.py:462 +#, python-format +msgid "Make sure your uploaded file is at least %s bytes big." +msgstr "Asseguris de que el fitxer que ha enviat té, com a mínim, %s bytes." + +#: core/validators.py:463 +#, python-format +msgid "Make sure your uploaded file is at most %s bytes big." +msgstr "Asseguris de que el fitxer que ha enviat té, com a màxim %s bytes." + +#: core/validators.py:480 +msgid "The format for this field is wrong." +msgstr "El format per aquest camp és incorrecte." + +#: core/validators.py:495 +msgid "This field is invalid." +msgstr "El camp no és vàlid." + +#: core/validators.py:531 +#, python-format +msgid "Could not retrieve anything from %s." +msgstr "No s'ha pogut obtenir res de %s." + +#: core/validators.py:534 +#, 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." + +#: core/validators.py:567 +#, 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\".)" + +#: core/validators.py:571 +#, 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\".)" + +#: core/validators.py:576 +#, 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\".)" + +#: core/validators.py:581 +#, 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\".)" + +#: core/validators.py:585 +#, 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\".)" + +#: core/validators.py:590 +#, 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\".)" + +#: contrib/auth/forms.py:17 +#: contrib/auth/forms.py:138 +msgid "The two password fields didn't match." +msgstr "Els dos camps de contrasenya no coincideixen." + +#: contrib/auth/forms.py:25 +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ó." + +#: contrib/auth/forms.py:60 +#: contrib/admin/views/decorators.py:10 +msgid "Please enter a correct username and password. Note that both fields are case-sensitive." +msgstr "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/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?" + +#: contrib/auth/forms.py:117 +msgid "The two 'new password' fields didn't match." +msgstr "Els dos camps de nova contrasenya no coincideixen." + +#: contrib/auth/forms.py:124 +msgid "Your old password was entered incorrectly. Please enter it again." +msgstr "La seva antiga contrasenya no és correcte. Si el plau, introdueixi-la de nou." + +#: contrib/auth/models.py:53 +#: contrib/auth/models.py:73 +msgid "name" +msgstr "nom" + +#: contrib/auth/models.py:55 +msgid "codename" +msgstr "nom en clau" + +#: contrib/auth/models.py:58 +msgid "permission" +msgstr "permís" + +#: contrib/auth/models.py:59 +#: contrib/auth/models.py:74 +msgid "permissions" +msgstr "permissos" + +#: contrib/auth/models.py:77 +msgid "group" +msgstr "grup" + +#: contrib/auth/models.py:78 +#: contrib/auth/models.py:121 +msgid "groups" +msgstr "grups" + +#: contrib/auth/models.py:111 +msgid "username" +msgstr "nom d'usuari" + +#: contrib/auth/models.py:111 +msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)." +msgstr "Requerit. 30 o menys caracters. Només caracters alfanumèrics (lletres, dígits i guions baixos)." + +#: contrib/auth/models.py:112 +msgid "first name" +msgstr "nom propi" + +#: contrib/auth/models.py:113 +msgid "last name" +msgstr "cognoms" + +#: contrib/auth/models.py:114 +msgid "e-mail address" +msgstr "adreça de correu electrònic" + +#: contrib/auth/models.py:115 +msgid "password" +msgstr "contrasenya" + +#: contrib/auth/models.py:115 +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:116 +msgid "staff status" +msgstr "és membre del personal" + +#: contrib/auth/models.py:116 +msgid "Designates whether the user can log into this admin site." +msgstr "Indica si l'usuari pot entrar en el lloc administratiu." + +#: contrib/auth/models.py:117 +msgid "active" +msgstr "actiu" + +#: contrib/auth/models.py:117 +msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts." +msgstr "Designa si aquest usuari pot iniciar sessió a la interfície administrativa Djano. Deselecciona-ho enlloc de esborrar comptes d'usuari." + +#: contrib/auth/models.py:118 +msgid "superuser status" +msgstr "estat de superusuari" + +#: contrib/auth/models.py:118 +msgid "Designates that this user has all permissions without explicitly assigning them." +msgstr "Designa que aquest usuari té tots els permisos sense assignar-los explícitament." + +#: contrib/auth/models.py:119 +msgid "last login" +msgstr "últim inici de sessió" + +#: contrib/auth/models.py:120 +msgid "date joined" +msgstr "data de creació" + +#: contrib/auth/models.py:122 +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:123 +msgid "user permissions" +msgstr "permissos de l'usuari" + +#: contrib/auth/models.py:127 +msgid "user" +msgstr "usuari" + +#: contrib/auth/models.py:128 +msgid "users" +msgstr "usuaris" + +#: contrib/auth/models.py:134 +msgid "Personal info" +msgstr "Informaciò personal" + +#: contrib/auth/models.py:135 +msgid "Permissions" +msgstr "permissos" + +#: contrib/auth/models.py:136 +msgid "Important dates" +msgstr "Dates importants" + +#: contrib/auth/models.py:137 +msgid "Groups" +msgstr "Grups" + +#: contrib/auth/models.py:288 +msgid "message" +msgstr "missatge" + +#: contrib/auth/views.py:47 +msgid "Logged out" +msgstr "Sessió finalitzada" + +#: contrib/admin/models.py:17 +msgid "action time" +msgstr "moment de l'acció" + +#: contrib/admin/models.py:20 +msgid "object id" +msgstr "id del objecte" + +#: contrib/admin/models.py:21 +msgid "object repr" +msgstr "'repr' de l'objecte" + +#: contrib/admin/models.py:22 +msgid "action flag" +msgstr "marca de l'acció" + +#: contrib/admin/models.py:23 +msgid "change message" +msgstr "missatge del canvi" + +#: contrib/admin/models.py:26 +msgid "log entry" +msgstr "entrada del registre" + +#: contrib/admin/models.py:27 +msgid "log entries" +msgstr "entrades del registre" + +#: contrib/admin/filterspecs.py:42 +#, python-format +msgid "" +"

By %s:

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

    Per %s:

    \n" +"
      \n" + +#: contrib/admin/filterspecs.py:72 +#: contrib/admin/filterspecs.py:90 +#: contrib/admin/filterspecs.py:145 +#: contrib/admin/filterspecs.py:171 +msgid "All" +msgstr "Tots" + +#: contrib/admin/filterspecs.py:111 +msgid "Any date" +msgstr "Qualsevol data" + +#: contrib/admin/filterspecs.py:112 +msgid "Today" +msgstr "Avui" + +#: contrib/admin/filterspecs.py:115 +msgid "Past 7 days" +msgstr "Últims 7 dies" + +#: contrib/admin/filterspecs.py:117 +msgid "This month" +msgstr "Aquest mes" + +#: contrib/admin/filterspecs.py:119 +msgid "This year" +msgstr "Aquest any" + +#: contrib/admin/filterspecs.py:145 +#: oldforms/__init__.py:591 +#: newforms/widgets.py:188 +msgid "Yes" +msgstr "Si" + +#: contrib/admin/filterspecs.py:145 +#: oldforms/__init__.py:591 +#: newforms/widgets.py:188 +msgid "No" +msgstr "No" + +#: contrib/admin/filterspecs.py:152 +#: oldforms/__init__.py:591 +#: newforms/widgets.py:188 +msgid "Unknown" +msgstr "Desconegut" + +#: contrib/admin/views/decorators.py:24 +#: contrib/admin/templates/admin/login.html:25 +msgid "Log in" +msgstr "Iniciar sessió" + +#: contrib/admin/views/decorators.py:62 +msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved." +msgstr "Si us plau, identifiquis de nou doncs la seva sessió ha expirat. No es preocupi, el seu enviament està emmagatzemat." + +#: contrib/admin/views/decorators.py:69 +msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again." +msgstr "Sembla ser que el seu navegador no està configurat per acceptar 'cookies' (galetes). Si us plau, habiliti les 'cookies', recarregui aquesta pàgina i provi-ho de nou. " + +#: contrib/admin/views/decorators.py:83 +msgid "Usernames cannot contain the '@' character." +msgstr "Els noms d'usuari no poden contenir el caracter '@'." + +#: contrib/admin/views/decorators.py:85 +#, python-format +msgid "Your e-mail address is not your username. Try '%s' instead." +msgstr "La seva adreça de correu no és el seu nom d'usuari. Provi '%s' en tot cas." + +#: contrib/admin/views/main.py:230 +msgid "Site administration" +msgstr "Lloc administratiu" + +#: contrib/admin/views/main.py:264 +#: contrib/admin/views/auth.py:20 +#, 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/main.py:268 +#: contrib/admin/views/main.py:354 +#: contrib/admin/views/auth.py:25 +msgid "You may edit it again below." +msgstr "Pot editar-lo de nou abaix." + +#: contrib/admin/views/main.py:278 +#: contrib/admin/views/main.py:363 +#, python-format +msgid "You may add another %s below." +msgstr "Pot afegir un altre %s a baix." + +#: contrib/admin/views/main.py:296 +#, python-format +msgid "Add %s" +msgstr "Afegir %s" + +#: contrib/admin/views/main.py:342 +#, python-format +msgid "Added %s." +msgstr "Agregat %s." + +#: contrib/admin/views/main.py:344 +#, python-format +msgid "Changed %s." +msgstr "Modificat %s." + +#: contrib/admin/views/main.py:346 +#, python-format +msgid "Deleted %s." +msgstr "Eliminat %s." + +#: contrib/admin/views/main.py:349 +msgid "No fields changed." +msgstr "Cap camp canviat." + +#: contrib/admin/views/main.py:352 +#, python-format +msgid "The %(name)s \"%(obj)s\" was changed successfully." +msgstr "S'ha modificat amb èxist el/la %(name)s \"%(obj)s." + +#: contrib/admin/views/main.py:360 +#, 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." + +#: contrib/admin/views/main.py:398 +#, python-format +msgid "Change %s" +msgstr "Modificar %s" + +#: contrib/admin/views/main.py:483 +#, python-format +msgid "One or more %(fieldname)s in %(name)s: %(obj)s" +msgstr "Un o més %(fieldname)s en %(name)s: %(obj)s" + +#: contrib/admin/views/main.py:488 +#, python-format +msgid "One or more %(fieldname)s in %(name)s:" +msgstr "Un o més %(fieldname)s en %(name)s:" + +#: contrib/admin/views/main.py:520 +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "El/la %(name)s \"%(obj)s\".ha estat eliminat amb èxit." + +#: contrib/admin/views/main.py:523 +msgid "Are you sure?" +msgstr "Està segur?" + +#: contrib/admin/views/main.py:545 +#, python-format +msgid "Change history: %s" +msgstr "Modificar històric: %s" + +#: contrib/admin/views/main.py:579 +#, python-format +msgid "Select %s" +msgstr "Seleccioni %s" + +#: contrib/admin/views/main.py:579 +#, python-format +msgid "Select %s to change" +msgstr "Seleccioni %s per modificar" + +#: contrib/admin/views/main.py:780 +msgid "Database error" +msgstr "Error de/en la base de dades" + +#: contrib/admin/views/doc.py:47 +#: contrib/admin/views/doc.py:49 +#: contrib/admin/views/doc.py:51 +msgid "tag:" +msgstr "etiqueta:" + +#: contrib/admin/views/doc.py:78 +#: contrib/admin/views/doc.py:80 +#: contrib/admin/views/doc.py:82 +msgid "filter:" +msgstr "filtre:" + +#: contrib/admin/views/doc.py:136 +#: contrib/admin/views/doc.py:138 +#: contrib/admin/views/doc.py:140 +msgid "view:" +msgstr "vista:" + +#: contrib/admin/views/doc.py:165 +#, python-format +msgid "App %r not found" +msgstr "La aplicació %r no s'ha pogut trobar" + +#: contrib/admin/views/doc.py:172 +#, python-format +msgid "Model %(name)r not found in app %(label)r" +msgstr "El model %(name)r no s'ha trobat en la aplicació %(label)r" + +#: contrib/admin/views/doc.py:184 +#, python-format +msgid "the related `%(label)s.%(type)s` object" +msgstr "el objecte relacionat `%(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 +msgid "model:" +msgstr "model:" + +#: contrib/admin/views/doc.py:215 +#, python-format +msgid "related `%(label)s.%(name)s` objects" +msgstr "objectes relacionats `%(label)s.%(name)s`" + +#: contrib/admin/views/doc.py:220 +#, python-format +msgid "all %s" +msgstr "tots %s" + +#: contrib/admin/views/doc.py:225 +#, python-format +msgid "number of %s" +msgstr "nombre de %s" + +#: contrib/admin/views/doc.py:230 +#, python-format +msgid "Fields on %s objects" +msgstr "Camps en objectes %s" + +#: 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 +msgid "Integer" +msgstr "Enter" + +#: contrib/admin/views/doc.py:293 +msgid "Boolean (Either True or False)" +msgstr "Booleà (Verdader o Fals)" + +#: contrib/admin/views/doc.py:294 +#: contrib/admin/views/doc.py:313 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Cadena (de fins a %(max_length)s)" + +#: contrib/admin/views/doc.py:295 +msgid "Comma-separated integers" +msgstr "Enters separats per comes" + +#: contrib/admin/views/doc.py:296 +msgid "Date (without time)" +msgstr "Data (sense hora)" + +#: contrib/admin/views/doc.py:297 +msgid "Date (with time)" +msgstr "Data (amb hora)" + +#: contrib/admin/views/doc.py:298 +msgid "Decimal number" +msgstr "Número decimal" + +#: contrib/admin/views/doc.py:299 +msgid "E-mail address" +msgstr "Adreça de correu electrònic" + +#: contrib/admin/views/doc.py:300 +#: contrib/admin/views/doc.py:301 +#: contrib/admin/views/doc.py:304 +msgid "File path" +msgstr "Ruta del fitxer" + +#: contrib/admin/views/doc.py:302 +msgid "Floating point number" +msgstr "Número amb punt de coma flotant" + +#: contrib/admin/views/doc.py:306 +#: contrib/comments/models.py:85 +msgid "IP address" +msgstr "Adreça IP" + +#: contrib/admin/views/doc.py:308 +msgid "Boolean (Either True, False or None)" +msgstr "Booleà (Verdader, Fals o 'None' (cap))" + +#: contrib/admin/views/doc.py:309 +msgid "Relation to parent model" +msgstr "Relació amb el model pare" + +#: contrib/admin/views/doc.py:310 +msgid "Phone number" +msgstr "Número de telèfon" + +#: contrib/admin/views/doc.py:315 +msgid "Text" +msgstr "Texte" + +#: contrib/admin/views/doc.py:316 +msgid "Time" +msgstr "Hora" + +#: contrib/admin/views/doc.py:317 +#: contrib/flatpages/models.py:7 +msgid "URL" +msgstr "URL" + +#: contrib/admin/views/doc.py:318 +msgid "U.S. state (two uppercase letters)" +msgstr "Estat dels E.U.A. (dos lletres majúscules)" + +#: contrib/admin/views/doc.py:319 +msgid "XML text" +msgstr "Texte XML" + +#: contrib/admin/views/doc.py:345 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "%s no sembla ser un objecte 'urlpattern'" + +#: contrib/admin/views/auth.py:31 +msgid "Add user" +msgstr "Afegir usuari" + +#: contrib/admin/views/auth.py:58 +msgid "Password changed successfully." +msgstr "Canvi de clau exitós" + +#: contrib/admin/views/auth.py:65 +#, python-format +msgid "Change password: %s" +msgstr "Canviar clau: %s" + +#: contrib/admin/templatetags/admin_list.py:254 +msgid "All dates" +msgstr "Totes les dates" + +#: contrib/admin/templates/admin/pagination.html:10 +msgid "Show all" +msgstr "Mostrar tots" + +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +msgid "Documentation" +msgstr "Documentació" + +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/admin/auth/user/change_password.html:15 +#: contrib/admin/templates/admin/auth/user/change_password.html:46 +#: contrib/admin/templates/admin_doc/template_filter_index.html:5 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +#: contrib/admin/templates/admin_doc/template_tag_index.html:5 +#: contrib/admin/templates/admin_doc/index.html:4 +#: contrib/admin/templates/admin_doc/model_detail.html:3 +#: contrib/admin/templates/admin_doc/missing_docutils.html:4 +#: contrib/admin/templates/admin_doc/template_detail.html:4 +#: contrib/admin/templates/admin_doc/view_index.html:5 +#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/view_detail.html:4 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +msgid "Change password" +msgstr "Canviar clau" + +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/admin_doc/template_filter_index.html:5 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +#: contrib/admin/templates/admin_doc/template_tag_index.html:5 +#: contrib/admin/templates/admin_doc/index.html:4 +#: contrib/admin/templates/admin_doc/model_detail.html:3 +#: contrib/admin/templates/admin_doc/missing_docutils.html:4 +#: contrib/admin/templates/admin_doc/template_detail.html:4 +#: contrib/admin/templates/admin_doc/view_index.html:5 +#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/view_detail.html:4 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/comments/templates/comments/form.html:6 +msgid "Log out" +msgstr "Finalitzar sessió" + +#: contrib/admin/templates/admin/delete_confirmation.html:6 +#: contrib/admin/templates/admin/change_form.html:13 +#: contrib/admin/templates/admin/change_list.html:6 +#: contrib/admin/templates/admin/object_history.html:5 +#: contrib/admin/templates/admin/500.html:4 +#: contrib/admin/templates/admin/invalid_setup.html:4 +#: contrib/admin/templates/admin/base.html:30 +#: contrib/admin/templates/admin/auth/user/change_password.html:12 +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admin/templates/registration/logged_out.html:4 +#: contrib/admin/templates/registration/password_reset_done.html:4 +#: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admin/templates/registration/password_change_done.html:4 +msgid "Home" +msgstr "Inici" + +#: contrib/admin/templates/admin/delete_confirmation.html:9 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Delete" +msgstr "Eliminar" + +#: contrib/admin/templates/admin/delete_confirmation.html:14 +#, python-format +msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:" +msgstr "Eliminar el/la %(object_name)s '%(escaped_object)s' provocaria l'eliminació d'objectes relacionats, però el seu compte no te permisos per a esborrar els tipus d'objecte següents:" + +#: contrib/admin/templates/admin/delete_confirmation.html:21 +#, python-format +msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:" +msgstr "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:26 +msgid "Yes, I'm sure" +msgstr "Si, estic segur" + +#: contrib/admin/templates/admin/404.html:4 +#: contrib/admin/templates/admin/404.html:8 +msgid "Page not found" +msgstr "No s'ha pogut trobar la pàgina" + +#: contrib/admin/templates/admin/404.html:10 +msgid "We're sorry, but the requested page could not be found." +msgstr "Ho sentim, però no s'ha pogut trobar la pàgina solicitada" + +#: contrib/admin/templates/admin/change_form.html:15 +#: contrib/admin/templates/admin/index.html:28 +msgid "Add" +msgstr "Afegir" + +#: contrib/admin/templates/admin/change_form.html:21 +#: contrib/admin/templates/admin/object_history.html:5 +msgid "History" +msgstr "Històric" + +#: contrib/admin/templates/admin/change_form.html:22 +msgid "View on site" +msgstr "Veure en el lloc" + +#: contrib/admin/templates/admin/change_form.html:32 +#: contrib/admin/templates/admin/auth/user/change_password.html:24 +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Si us plau, corregeixi l'error mostrat abaix." +msgstr[1] "Si us plau, corregeixi els errors mostrats abaix." + +#: contrib/admin/templates/admin/change_form.html:50 +msgid "Ordering" +msgstr "Ordre" + +#: contrib/admin/templates/admin/change_form.html:53 +msgid "Order:" +msgstr "Ordre:" + +#: contrib/admin/templates/admin/filter.html:2 +#, python-format +msgid " By %(filter_title)s " +msgstr "Per %(filter_title)s " + +#: contrib/admin/templates/admin/submit_line.html:4 +msgid "Save as new" +msgstr "Desar com a nou" + +#: contrib/admin/templates/admin/submit_line.html:5 +msgid "Save and add another" +msgstr "Desar i afegir-ne un de nou" + +#: contrib/admin/templates/admin/submit_line.html:6 +msgid "Save and continue editing" +msgstr "Desar i continuar editant" + +#: contrib/admin/templates/admin/submit_line.html:7 +msgid "Save" +msgstr "Desar" + +#: contrib/admin/templates/admin/change_list.html:12 +#, python-format +msgid "Add %(name)s" +msgstr "Afegir %(name)s" + +#: contrib/admin/templates/admin/index.html:17 +#, python-format +msgid "Models available in the %(name)s application." +msgstr "Models disponibles en la aplicació %(name)s." + +#: contrib/admin/templates/admin/index.html:18 +#, python-format +msgid "%(name)s" +msgstr "%(name)s" + +#: contrib/admin/templates/admin/index.html:34 +msgid "Change" +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." + +#: contrib/admin/templates/admin/index.html:52 +msgid "Recent Actions" +msgstr "Accions recents" + +#: contrib/admin/templates/admin/index.html:53 +msgid "My Actions" +msgstr "Les meves accions" + +#: contrib/admin/templates/admin/index.html:57 +msgid "None available" +msgstr "Cap disponible" + +#: contrib/admin/templates/admin/base_site.html:4 +msgid "Django site admin" +msgstr "Lloc administratiu de Django" + +#: contrib/admin/templates/admin/base_site.html:7 +msgid "Django administration" +msgstr "Adminsitració de Django" + +#: contrib/admin/templates/admin/object_history.html:18 +msgid "Date/time" +msgstr "Data/hora" + +#: contrib/admin/templates/admin/object_history.html:19 +msgid "User" +msgstr "Usuari" + +#: contrib/admin/templates/admin/object_history.html:20 +msgid "Action" +msgstr "Acció" + +#: contrib/admin/templates/admin/object_history.html:26 +msgid "DATE_WITH_TIME_FULL" +msgstr "F j, Y, H:i " + +#: contrib/admin/templates/admin/object_history.html:36 +msgid "This object doesn't have a change history. It probably wasn't added via this admin site." +msgstr "Aquest objecte no te historial de canvis. Probablement no va ser afegit utilitzant aquest lloc administratiu." + +#: contrib/admin/templates/admin/500.html:4 +msgid "Server error" +msgstr "Error del servidor" + +#: contrib/admin/templates/admin/500.html:6 +msgid "Server error (500)" +msgstr "Error del servidor (500)" + +#: contrib/admin/templates/admin/500.html:9 +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." + +#: contrib/admin/templates/admin/invalid_setup.html:8 +msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user." +msgstr "Alguna cosa està malament en la instal·lació de la teva base de dades. Assegurat de que s'han creat les taules, i de que la base de dades és llegible per l'usuari apropiat." + +#: contrib/admin/templates/admin/search_form.html:8 +msgid "Go" +msgstr "Cercar" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "1 result" +msgid_plural "%(counter)s results" +msgstr[0] "1 resultat" +msgstr[1] "%(counter)s resultats" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s en total" + +#: contrib/admin/templates/admin/filters.html:4 +msgid "Filter" +msgstr "Filtre" + +#: contrib/admin/templates/admin/login.html:17 +#: contrib/comments/templates/comments/form.html:6 +#: contrib/comments/templates/comments/form.html:8 +msgid "Username:" +msgstr "Usuari:" + +#: contrib/admin/templates/admin/login.html:20 +#: contrib/comments/templates/comments/form.html:8 +msgid "Password:" +msgstr "Contrasenya:" + +#: contrib/admin/templates/admin/base.html:25 +msgid "Welcome," +msgstr "Benvingut," + +#: contrib/admin/templates/admin/auth/user/add_form.html:6 +msgid "First, enter a username and password. Then, you'll be able to edit more user options." +msgstr "Primer, entri un usuari i una contrasenya. Després podrà editar més opcions del usuari." + +#: contrib/admin/templates/admin/auth/user/add_form.html:12 +msgid "Username" +msgstr "Usuari" + +#: contrib/admin/templates/admin/auth/user/add_form.html:18 +#: contrib/admin/templates/admin/auth/user/change_password.html:34 +msgid "Password" +msgstr "Contrasenya" + +#: contrib/admin/templates/admin/auth/user/add_form.html:23 +#: contrib/admin/templates/admin/auth/user/change_password.html:39 +msgid "Password (again)" +msgstr "Contrasenya (de nou)" + +#: contrib/admin/templates/admin/auth/user/add_form.html:24 +#: contrib/admin/templates/admin/auth/user/change_password.html:40 +msgid "Enter the same password as above, for verification." +msgstr "Introdueixi la mateixa contrasenya que a sobre, per a verificació." + +#: contrib/admin/templates/admin/auth/user/change_password.html:28 +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Introdueixi una contrasenya per l'usuari %(username)s" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +msgid "Bookmarklets" +msgstr "'Bookmarklets'" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:5 +msgid "Documentation bookmarklets" +msgstr "'Bookmarklets' de documentació" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:9 +msgid "" +"\n" +"

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

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

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

      \n" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:19 +msgid "Documentation for this page" +msgstr "Documentació d'aquesta pàgina" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:20 +msgid "Jumps you from any page to the documentation for the view that generates that page." +msgstr "El porta des de qualsevol pàgina de la documentació a la vista que la genera." + +#: contrib/admin/templates/admin_doc/bookmarklets.html:22 +msgid "Show object ID" +msgstr "Mostra el ID de l'objecte" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:23 +msgid "Shows the content-type and unique ID for pages that represent a single object." +msgstr "Mostra el 'content-type' (tipus de contingut) i el ID inequívoc de les pàgines que representen un únic objecte." + +#: contrib/admin/templates/admin_doc/bookmarklets.html:25 +msgid "Edit this object (current window)" +msgstr "Editar aquest objecte (finestra actual)" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:26 +msgid "Jumps to the admin page for pages that represent a single object." +msgstr "El porta a la pàgina d'administració de pàgines que representen un únic objecte." + +#: contrib/admin/templates/admin_doc/bookmarklets.html:28 +msgid "Edit this object (new window)" +msgstr "Editar aquest objecte (nova finestra)" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:29 +msgid "As above, but opens the admin page in a new window." +msgstr "Com abans, però obre la pàgina d'administració en una nova finestra." + +#: contrib/admin/templates/widget/date_time.html:3 +msgid "Date:" +msgstr "Data:" + +#: contrib/admin/templates/widget/date_time.html:4 +msgid "Time:" +msgstr "Hora:" + +#: contrib/admin/templates/widget/file.html:2 +msgid "Currently:" +msgstr "Actualment:" + +#: contrib/admin/templates/widget/file.html:3 +msgid "Change:" +msgstr "Modificar:" + +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:6 +#: contrib/admin/templates/registration/password_reset_form.html:10 +#: contrib/admin/templates/registration/password_reset_done.html:4 +msgid "Password reset" +msgstr "Restablir contrasenya" + +#: contrib/admin/templates/registration/password_reset_form.html:12 +msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you." +msgstr "Ha oblidat la seva contrasenya? Introdueixi la seva adreça de correu electrònic i crearem una nova que li enviarem per correu." + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "E-mail address:" +msgstr "Adreça de correu electrònic:" + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "Reset my password" +msgstr "Restablir la meva contrasenya" + +#: contrib/admin/templates/registration/password_reset_email.html:2 +msgid "You're receiving this e-mail because you requested a password reset" +msgstr "Està rebent aquest missatge degut a que va solicitar un restabliment de contrasenya." + +#: contrib/admin/templates/registration/password_reset_email.html:3 +#, python-format +msgid "for your user account at %(site_name)s" +msgstr "del seu compte d'usuari a %(site_name)s." + +#: contrib/admin/templates/registration/password_reset_email.html:5 +#, python-format +msgid "Your new password is: %(new_password)s" +msgstr "La seva nova contrasenya és: %(new_password)s" + +#: contrib/admin/templates/registration/password_reset_email.html:7 +msgid "Feel free to change this password by going to this page:" +msgstr "Sentis lliure de canviar-la en aquesta pàgina:" + +#: contrib/admin/templates/registration/password_reset_email.html:11 +msgid "Your username, in case you've forgotten:" +msgstr "El seu nom d'usuari, en cas d'haver-lo oblidat:" + +#: contrib/admin/templates/registration/password_reset_email.html:13 +msgid "Thanks for using our site!" +msgstr "Gràcies per fer us del nostre lloc!" + +#: contrib/admin/templates/registration/password_reset_email.html:15 +#, python-format +msgid "The %(site_name)s team" +msgstr "L'equip de %(site_name)s" + +#: contrib/admin/templates/registration/logged_out.html:8 +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Gràcies per emprar algun temps de cualitat amb el lloc web avui." + +#: contrib/admin/templates/registration/logged_out.html:10 +msgid "Log in again" +msgstr "Iniciar sessió de nou" + +#: contrib/admin/templates/registration/password_reset_done.html:6 +#: contrib/admin/templates/registration/password_reset_done.html:10 +msgid "Password reset successful" +msgstr "Contrasenya restaber-ta amb èxit" + +#: contrib/admin/templates/registration/password_reset_done.html:12 +msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly." +msgstr "Li hem enviat una contrasenya nova a l'adreça de correu electrònic que ens ha indicat. L'hauria de rebre en breu." + +#: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admin/templates/registration/password_change_form.html:6 +#: contrib/admin/templates/registration/password_change_form.html:10 +#: contrib/admin/templates/registration/password_change_done.html:4 +msgid "Password change" +msgstr "Canvi de clau" + +#: contrib/admin/templates/registration/password_change_form.html:12 +msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." +msgstr "Si us plau, introdueixi la seva contrasenya antiga, per seguretat, i tot seguit introdueixi la seva nova contrasenya dues vegades per verificar que l'ha escrit correctament." + +#: contrib/admin/templates/registration/password_change_form.html:17 +msgid "Old password:" +msgstr "Contrasenya antiga:" + +#: contrib/admin/templates/registration/password_change_form.html:19 +msgid "New password:" +msgstr "Contrasenya nova:" + +#: contrib/admin/templates/registration/password_change_form.html:21 +msgid "Confirm password:" +msgstr "Confirmar contrasenya:" + +#: contrib/admin/templates/registration/password_change_form.html:23 +msgid "Change my password" +msgstr "Canviar la meva clau:" + +#: contrib/admin/templates/registration/password_change_done.html:6 +#: contrib/admin/templates/registration/password_change_done.html:10 +msgid "Password change successful" +msgstr "Canvi de clau exitò" + +#: contrib/admin/templates/registration/password_change_done.html:12 +msgid "Your password was changed." +msgstr "La seva clau ha estat canviada." + +#: contrib/sites/models.py:33 +msgid "domain name" +msgstr "nom del domini" + +#: contrib/sites/models.py:34 +msgid "display name" +msgstr "nom per mostrar" + +#: contrib/sites/models.py:38 +msgid "site" +msgstr "lloc" + +#: contrib/sites/models.py:39 +msgid "sites" +msgstr "llocs" + +#: contrib/humanize/templatetags/humanize.py:20 +msgid "th" +msgstr "rt" + +#: contrib/humanize/templatetags/humanize.py:20 +msgid "st" +msgstr "r" + +#: contrib/humanize/templatetags/humanize.py:20 +msgid "nd" +msgstr "n" + +#: contrib/humanize/templatetags/humanize.py:20 +msgid "rd" +msgstr "r" + +#: contrib/humanize/templatetags/humanize.py:50 +#, 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:53 +#, 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:56 +#, 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:71 +msgid "one" +msgstr "un" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "two" +msgstr "dos" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "three" +msgstr "tres" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "four" +msgstr "cuatre" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "five" +msgstr "cinc" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "six" +msgstr "sis" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "seven" +msgstr "set" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "eight" +msgstr "vuit" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "nine" +msgstr "nou" + +#: contrib/humanize/templatetags/humanize.py:90 +msgid "today" +msgstr "avui" + +#: contrib/humanize/templatetags/humanize.py:92 +msgid "tomorrow" +msgstr "demà" + +#: contrib/humanize/templatetags/humanize.py:94 +msgid "yesterday" +msgstr "ahir" + +#: contrib/flatpages/models.py:8 +msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes." +msgstr "Exemple: '/about/contact/'. Asseguri's de posar les barres al principi i al final." + +#: contrib/flatpages/models.py:9 +msgid "title" +msgstr "tìtol" + +#: contrib/flatpages/models.py:10 +msgid "content" +msgstr "contingut" + +#: contrib/flatpages/models.py:11 +msgid "enable comments" +msgstr "habilitar comentaris" + +#: contrib/flatpages/models.py:12 +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'." + +#: contrib/flatpages/models.py:14 +msgid "registration required" +msgstr "s'ha de estar registrat" + +#: contrib/flatpages/models.py:14 +msgid "If this is checked, only logged-in users will be able to view the page." +msgstr "Si està marcat, només els usuaris registrats podran veure la pàgina." + +#: contrib/flatpages/models.py:18 +msgid "flat page" +msgstr "pàgina estàtica" + +#: contrib/flatpages/models.py:19 +msgid "flat pages" +msgstr "pàgines estàtiques" + +#: contrib/redirects/models.py:7 +msgid "redirect from" +msgstr "redreçar des de" + +#: contrib/redirects/models.py:8 +msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'." +msgstr "Aquesta ruta hauria de ser el camí absolut, excloent-ne el nom del domini. Exemple '/events/search/'." + +#: contrib/redirects/models.py:9 +msgid "redirect to" +msgstr "redreçar a" + +#: contrib/redirects/models.py:10 +msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'." +msgstr "Això pot ser bé una ruta absoluta (com abans) o una URL completa que comenci per http:// ." + +#: contrib/redirects/models.py:13 +msgid "redirect" +msgstr "redreçament" + +#: contrib/redirects/models.py:14 +msgid "redirects" +msgstr "redreçaments" + +#: contrib/comments/models.py:67 +#: contrib/comments/models.py:169 msgid "object ID" msgstr "ID de l'objecte" @@ -323,8 +1734,9 @@ msgstr "ID de l'objecte" msgid "headline" msgstr "encapçalament" -#: contrib/comments/models.py:69 contrib/comments/models.py:90 -#: contrib/comments/models.py:167 +#: contrib/comments/models.py:69 +#: contrib/comments/models.py:90 +#: contrib/comments/models.py:170 msgid "comment" msgstr "comentari" @@ -364,39 +1776,34 @@ msgstr "qualificació #8" msgid "is valid rating" msgstr "és qualificació vàlida" -#: contrib/comments/models.py:83 contrib/comments/models.py:169 +#: contrib/comments/models.py:83 +#: contrib/comments/models.py:172 msgid "date/time submitted" msgstr "data/hora d'enviament" -#: contrib/comments/models.py:84 contrib/comments/models.py:170 +#: contrib/comments/models.py:84 +#: contrib/comments/models.py:173 msgid "is public" msgstr "és públic" -#: contrib/comments/models.py:85 contrib/admin/views/doc.py:305 -msgid "IP address" -msgstr "Adreça IP" - #: contrib/comments/models.py:86 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\" " +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 msgid "comments" msgstr "comentaris" -#: contrib/comments/models.py:131 contrib/comments/models.py:207 +#: contrib/comments/models.py:134 +#: contrib/comments/models.py:213 msgid "Content object" msgstr "Objecte Contingut" -#: contrib/comments/models.py:159 +#: contrib/comments/models.py:162 #, python-format msgid "" "Posted by %(user)s at %(date)s\n" @@ -411,48 +1818,48 @@ msgstr "" "\n" "http://%(domain)s%(url)s" -#: contrib/comments/models.py:168 +#: contrib/comments/models.py:171 msgid "person's name" msgstr "nom de la persona" -#: contrib/comments/models.py:171 +#: contrib/comments/models.py:174 msgid "ip address" msgstr "adreça ip" -#: contrib/comments/models.py:173 +#: contrib/comments/models.py:176 msgid "approved by staff" msgstr "aprovat per el \"staff\"" -#: contrib/comments/models.py:176 +#: contrib/comments/models.py:179 msgid "free comment" msgstr "comentari lliure" -#: contrib/comments/models.py:177 +#: contrib/comments/models.py:180 msgid "free comments" msgstr "comentaris lliures" -#: contrib/comments/models.py:233 +#: contrib/comments/models.py:239 msgid "score" msgstr "puntuació" -#: contrib/comments/models.py:234 +#: contrib/comments/models.py:240 msgid "score date" msgstr "data de la puntuació" -#: contrib/comments/models.py:237 +#: contrib/comments/models.py:243 msgid "karma score" msgstr "puntuació de karma" -#: contrib/comments/models.py:238 +#: contrib/comments/models.py:244 msgid "karma scores" msgstr "punts de karma" -#: contrib/comments/models.py:242 +#: contrib/comments/models.py:248 #, python-format msgid "%(score)d rating by %(user)s" msgstr "%(score)d punt/s per %(user)s" -#: contrib/comments/models.py:258 +#: contrib/comments/models.py:264 #, python-format msgid "" "This comment was flagged by %(user)s:\n" @@ -463,86 +1870,110 @@ msgstr "" "\n" "%(text)s" -#: contrib/comments/models.py:265 +#: contrib/comments/models.py:271 msgid "flag date" msgstr "data de la marca" -#: contrib/comments/models.py:268 +#: contrib/comments/models.py:274 msgid "user flag" msgstr "marca d'usuari" -#: contrib/comments/models.py:269 +#: contrib/comments/models.py:275 msgid "user flags" msgstr "marques d'usuari" -#: contrib/comments/models.py:273 +#: contrib/comments/models.py:279 #, python-format msgid "Flag by %r" msgstr "Marca de %r" -#: contrib/comments/models.py:278 +#: contrib/comments/models.py:284 msgid "deletion date" msgstr "data d'eliminació" -#: contrib/comments/models.py:280 +#: contrib/comments/models.py:286 msgid "moderator deletion" msgstr "eliminació del moderador" -#: contrib/comments/models.py:281 +#: contrib/comments/models.py:287 msgid "moderator deletions" msgstr "eliminacions del moderador" -#: contrib/comments/models.py:285 +#: contrib/comments/models.py:291 #, python-format msgid "Moderator deletion by %r" msgstr "eliminació del moderador per %r" -#: contrib/comments/templates/comments/freeform.html:4 -msgid "Your name:" -msgstr "El seu nom:" +#: contrib/comments/views/karma.py:20 +msgid "Anonymous users cannot vote" +msgstr "Els usuaris anònims no poden votar" -#: contrib/comments/templates/comments/freeform.html:5 -#: contrib/comments/templates/comments/form.html:28 -msgid "Comment:" -msgstr "Comentari:" +#: contrib/comments/views/karma.py:24 +msgid "Invalid comment ID" +msgstr "ID del comentari invàlid" -#: contrib/comments/templates/comments/freeform.html:10 -#: contrib/comments/templates/comments/form.html:35 -msgid "Preview comment" -msgstr "Previsualitzar comentari" +#: contrib/comments/views/karma.py:26 +msgid "No voting for yourself" +msgstr "No pots votar-te a tu mateix" -#: contrib/comments/templates/comments/form.html:6 -#: contrib/comments/templates/comments/form.html:8 -#: contrib/admin/templates/admin/login.html:17 -msgid "Username:" -msgstr "Usuari:" +#: contrib/comments/views/comments.py:28 +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/templates/comments/form.html:6 -#: contrib/admin/templates/admin/object_history.html:3 -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: contrib/admin/templates/admin/change_form.html:10 -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/base.html:25 -#: contrib/admin/templates/admin/auth/user/change_password.html:9 -#: contrib/admin/templates/registration/password_change_form.html:3 -#: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/admin_doc/bookmarklets.html:4 -#: contrib/admin/templates/admin_doc/template_tag_index.html:5 -#: contrib/admin/templates/admin_doc/view_detail.html:4 -#: contrib/admin/templates/admin_doc/missing_docutils.html:4 -#: contrib/admin/templates/admin_doc/model_index.html:5 -#: contrib/admin/templates/admin_doc/index.html:4 -#: contrib/admin/templates/admin_doc/template_filter_index.html:5 -#: contrib/admin/templates/admin_doc/model_detail.html:3 -#: contrib/admin/templates/admin_doc/template_detail.html:4 -#: contrib/admin/templates/admin_doc/view_index.html:5 -msgid "Log out" -msgstr "Finalitzar sessió" +#: contrib/comments/views/comments.py:112 +#, python-format +msgid "" +"This comment was posted by a user who has posted fewer than %(count)s comment:\n" +"\n" +"%(text)s" +msgid_plural "" +"This comment was posted by a user who has posted fewer than %(count)s comments:\n" +"\n" +"%(text)s" +msgstr[0] "" +"Aquest comentari ha estat publicat per un usuari que ha publicat 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" +"\n" +"%(text)s" -#: contrib/comments/templates/comments/form.html:8 -#: contrib/admin/templates/admin/login.html:20 -msgid "Password:" -msgstr "Contrasenya:" +#: contrib/comments/views/comments.py:117 +#, python-format +msgid "" +"This comment was posted by a sketchy user:\n" +"\n" +"%(text)s" +msgstr "" +"Aquest comentari va ser publicat per un usuari incomplet\n" +"\n" +"%(text)s" + +#: contrib/comments/views/comments.py:189 +#: contrib/comments/views/comments.py:281 +msgid "Only POSTs are allowed" +msgstr "Només s'admed POST" + +#: contrib/comments/views/comments.py:193 +#: contrib/comments/views/comments.py:285 +msgid "One or more of the required fields wasn't submitted" +msgstr "Un o més dels caps requerits no ha estat sotmès" + +#: contrib/comments/views/comments.py:197 +#: contrib/comments/views/comments.py:287 +msgid "Somebody tampered with the comment form (security violation)" +msgstr "Algú està jugant amb el formulari de comentaris (violació de seguretat)" + +#: contrib/comments/views/comments.py:207 +#: contrib/comments/views/comments.py:293 +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:258 +#: contrib/comments/views/comments.py:322 +msgid "The comment form didn't provide either 'preview' or 'post'" +msgstr "El formulari del comentari no ha proveït ni 'previsualitzar' ni 'enviar'" #: contrib/comments/templates/comments/form.html:8 msgid "Forgotten your password?" @@ -566,1329 +1997,82 @@ msgstr "Opcional" msgid "Post a photo" msgstr "Enviar una fotografia" -#: contrib/comments/views/comments.py:27 -msgid "" -"This rating is required because you've entered at least one other rating." -msgstr "Es precisa aquesta puntuació perquè has introduït almenys un altre." - -#: contrib/comments/views/comments.py:111 -#, python-format -msgid "" -"This comment was posted by a user who has posted fewer than %(count)s " -"comment:\n" -"\n" -"%(text)s" -"This comment was posted by a user who has posted fewer than %(count)s " -"comments:\n" -"\n" -"%(text)s" -msgstr "" -"Aquest comentari el va enviar un usuari que ha enviat menys de %(count)s " -"comentari:\n" -"\n" -"%(text)s" -"Aquest comentari el va enviar un usuari que ha enviat menys de %(count)s " -"comentaris:\n" -"\n" -"%(text)s" - -#: contrib/comments/views/comments.py:116 -#, python-format -msgid "" -"This comment was posted by a sketchy user:\n" -"\n" -"%(text)s" -msgstr "" -"Aquest comentari va ser publicat per un usuari incomplet\n" -"\n" -"%(text)s" - -#: contrib/comments/views/comments.py:188 -#: contrib/comments/views/comments.py:280 -msgid "Only POSTs are allowed" -msgstr "Només s'admed POST" - -#: contrib/comments/views/comments.py:192 -#: contrib/comments/views/comments.py:284 -msgid "One or more of the required fields wasn't submitted" -msgstr "Un o més dels caps requerits no ha estat sotmès" - -#: contrib/comments/views/comments.py:196 -#: contrib/comments/views/comments.py:286 -msgid "Somebody tampered with the comment form (security violation)" -msgstr "" -"Algú està jugant amb el formulari de comentaris (violació de seguretat)" - -#: contrib/comments/views/comments.py:206 -#: contrib/comments/views/comments.py:292 -msgid "" -"The comment form had an invalid 'target' parameter -- the object ID was " -"invalid" -msgstr "" -"El formulari de comentaris tenia un paràmetre 'target' invàlid -- el ID del " -"objecte era invàlid" - -#: contrib/comments/views/comments.py:257 -#: contrib/comments/views/comments.py:321 -msgid "The comment form didn't provide either 'preview' or 'post'" -msgstr "" -"El formulari del comentari no ha proveït ni 'previsualitzar' ni 'enviar'" - -#: contrib/comments/views/karma.py:19 -msgid "Anonymous users cannot vote" -msgstr "Els usuaris anònims no poden votar" - -#: contrib/comments/views/karma.py:23 -msgid "Invalid comment ID" -msgstr "ID del comentari invàlid" - -#: contrib/comments/views/karma.py:25 -msgid "No voting for yourself" -msgstr "No pots votar-te a tu mateix" - -#: contrib/admin/models.py:16 -msgid "action time" -msgstr "moment de l'acció" - -#: contrib/admin/models.py:19 -msgid "object id" -msgstr "id del objecte" - -#: contrib/admin/models.py:20 -msgid "object repr" -msgstr "'repr' de l'objecte" - -#: contrib/admin/models.py:21 -msgid "action flag" -msgstr "marca de l'acció" - -#: contrib/admin/models.py:22 -msgid "change message" -msgstr "missatge del canvi" - -#: contrib/admin/models.py:25 -msgid "log entry" -msgstr "entrada del registre" - -#: contrib/admin/models.py:26 -msgid "log entries" -msgstr "entrades del registre" - -#: contrib/admin/filterspecs.py:40 -#, python-format -msgid "" -"

      By %s:

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

        Per %s:

        \n" -"
          \n" - -#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88 -#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169 -msgid "All" -msgstr "Tots" - -#: contrib/admin/filterspecs.py:109 -msgid "Any date" -msgstr "Qualsevol data" - -#: contrib/admin/filterspecs.py:110 -msgid "Today" -msgstr "Avui" - -#: contrib/admin/filterspecs.py:113 -msgid "Past 7 days" -msgstr "Últims 7 dies" - -#: contrib/admin/filterspecs.py:115 -msgid "This month" -msgstr "Aquest mes" - -#: contrib/admin/filterspecs.py:117 -msgid "This year" -msgstr "Aquest any" - -#: contrib/admin/templatetags/admin_list.py:249 -msgid "All dates" -msgstr "Totes les dates" - -#: contrib/admin/templates/admin/object_history.html:3 -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: contrib/admin/templates/admin/change_form.html:10 -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/base.html:25 -#: contrib/admin/templates/admin/auth/user/change_password.html:9 -#: contrib/admin/templates/registration/password_change_form.html:3 -#: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/admin_doc/bookmarklets.html:3 -msgid "Documentation" -msgstr "Documentació" - -#: contrib/admin/templates/admin/object_history.html:3 -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: contrib/admin/templates/admin/change_form.html:10 -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/base.html:25 -#: contrib/admin/templates/admin/auth/user/change_password.html:9 -#: contrib/admin/templates/admin/auth/user/change_password.html:15 -#: contrib/admin/templates/admin/auth/user/change_password.html:46 -#: contrib/admin/templates/registration/password_change_form.html:3 -#: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/admin_doc/bookmarklets.html:4 -#: contrib/admin/templates/admin_doc/template_tag_index.html:5 -#: contrib/admin/templates/admin_doc/view_detail.html:4 -#: contrib/admin/templates/admin_doc/missing_docutils.html:4 -#: contrib/admin/templates/admin_doc/model_index.html:5 -#: contrib/admin/templates/admin_doc/index.html:4 -#: contrib/admin/templates/admin_doc/template_filter_index.html:5 -#: contrib/admin/templates/admin_doc/model_detail.html:3 -#: contrib/admin/templates/admin_doc/template_detail.html:4 -#: contrib/admin/templates/admin_doc/view_index.html:5 -msgid "Change password" -msgstr "Canviar clau" - -#: contrib/admin/templates/admin/object_history.html:5 -#: contrib/admin/templates/admin/invalid_setup.html:4 -#: contrib/admin/templates/admin/delete_confirmation.html:6 -#: contrib/admin/templates/admin/change_form.html:13 -#: contrib/admin/templates/admin/500.html:4 -#: contrib/admin/templates/admin/change_list.html:6 -#: contrib/admin/templates/admin/base.html:30 -#: contrib/admin/templates/admin/auth/user/change_password.html:12 -#: contrib/admin/templates/registration/logged_out.html:4 -#: contrib/admin/templates/registration/password_change_form.html:4 -#: contrib/admin/templates/registration/password_reset_done.html:4 -#: contrib/admin/templates/registration/password_change_done.html:4 -#: contrib/admin/templates/registration/password_reset_form.html:4 -#: contrib/admin/templates/admin_doc/bookmarklets.html:3 -msgid "Home" -msgstr "Inici" - -#: contrib/admin/templates/admin/object_history.html:5 -#: contrib/admin/templates/admin/change_form.html:21 -msgid "History" -msgstr "Històric" - -#: contrib/admin/templates/admin/object_history.html:18 -msgid "Date/time" -msgstr "Data/hora" - -#: contrib/admin/templates/admin/object_history.html:19 -msgid "User" -msgstr "Usuari" - -#: contrib/admin/templates/admin/object_history.html:20 -msgid "Action" -msgstr "Acció" - -#: contrib/admin/templates/admin/object_history.html:26 -msgid "DATE_WITH_TIME_FULL" -msgstr "F j, Y, H:i " - -#: contrib/admin/templates/admin/object_history.html:36 -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Aquest objecte no te historial de canvis. Probablement no va ser afegit " -"utilitzant aquest lloc administratiu." - -#: contrib/admin/templates/admin/invalid_setup.html:8 -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Alguna cosa està malament en la instal·lació de la teva base de dades. " -"Assegurat de que s'han creat les taules, i de que la base de dades és " -"llegible per l'usuari apropiat." - -#: contrib/admin/templates/admin/search_form.html:8 -msgid "Go" -msgstr "Cercar" - -#: contrib/admin/templates/admin/search_form.html:10 -#, python-format -msgid "1 result" -msgid_plural "%(counter)s results" -msgstr[0] "1 resultat" -msgstr[1] "%(counter)s resultats" - -#: contrib/admin/templates/admin/search_form.html:10 -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s en total" - -#: contrib/admin/templates/admin/delete_confirmation.html:9 -#: contrib/admin/templates/admin/submit_line.html:3 -msgid "Delete" -msgstr "Eliminar" - -#: contrib/admin/templates/admin/delete_confirmation.html:14 -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Eliminar el/la %(object_name)s '%(escaped_object)s' provocaria l'eliminació " -"d'objectes relacionats, però el seu compte no te permisos per a esborrar els " -"tipus d'objecte següents:" - -#: contrib/admin/templates/admin/delete_confirmation.html:21 -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"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:26 -msgid "Yes, I'm sure" -msgstr "Si, estic segur" - -#: contrib/admin/templates/admin/pagination.html:10 -msgid "Show all" -msgstr "Mostrar tots" - -#: contrib/admin/templates/admin/login.html:25 -#: contrib/admin/views/decorators.py:24 -msgid "Log in" -msgstr "Iniciar sessió" - -#: contrib/admin/templates/admin/change_form.html:15 -#: contrib/admin/templates/admin/index.html:28 -msgid "Add" -msgstr "Afegir" - -#: contrib/admin/templates/admin/change_form.html:22 -msgid "View on site" -msgstr "Veure en el lloc" - -#: contrib/admin/templates/admin/change_form.html:32 -#: contrib/admin/templates/admin/auth/user/change_password.html:24 -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Si us plau, corregeixi l'error mostrat abaix." -msgstr[1] "Si us plau, corregeixi els errors mostrats abaix." - -#: contrib/admin/templates/admin/change_form.html:50 -msgid "Ordering" -msgstr "Ordre" - -#: contrib/admin/templates/admin/change_form.html:53 -msgid "Order:" -msgstr "Ordre:" - -#: contrib/admin/templates/admin/index.html:17 -#, python-format -msgid "Models available in the %(name)s application." -msgstr "Models disponibles en la aplicació %(name)s." - -#: contrib/admin/templates/admin/index.html:18 -#, python-format -msgid "%(name)s" -msgstr "%(name)s" - -#: contrib/admin/templates/admin/index.html:34 -msgid "Change" -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." - -#: contrib/admin/templates/admin/index.html:52 -msgid "Recent Actions" -msgstr "Accions recents" - -#: contrib/admin/templates/admin/index.html:53 -msgid "My Actions" -msgstr "Les meves accions" - -#: contrib/admin/templates/admin/index.html:57 -msgid "None available" -msgstr "Cap disponible" - -#: contrib/admin/templates/admin/500.html:4 -msgid "Server error" -msgstr "Error del servidor" - -#: contrib/admin/templates/admin/500.html:6 -msgid "Server error (500)" -msgstr "Error del servidor (500)" - -#: contrib/admin/templates/admin/500.html:9 -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." - -#: contrib/admin/templates/admin/change_list.html:12 -#, python-format -msgid "Add %(name)s" -msgstr "Afegir %(name)s" - -#: contrib/admin/templates/admin/base.html:25 -msgid "Welcome," -msgstr "Benvingut," - -#: contrib/admin/templates/admin/base_site.html:4 -msgid "Django site admin" -msgstr "Lloc administratiu de Django" - -#: contrib/admin/templates/admin/base_site.html:7 -msgid "Django administration" -msgstr "Adminsitració de Django" - -#: contrib/admin/templates/admin/filters.html:4 -msgid "Filter" -msgstr "Filtre" - -#: contrib/admin/templates/admin/submit_line.html:4 -msgid "Save as new" -msgstr "Desar com a nou" - -#: contrib/admin/templates/admin/submit_line.html:5 -msgid "Save and add another" -msgstr "Desar i afegir-ne un de nou" - -#: contrib/admin/templates/admin/submit_line.html:6 -msgid "Save and continue editing" -msgstr "Desar i continuar editant" - -#: contrib/admin/templates/admin/submit_line.html:7 -msgid "Save" -msgstr "Desar" - -#: contrib/admin/templates/admin/404.html:4 -#: contrib/admin/templates/admin/404.html:8 -msgid "Page not found" -msgstr "No s'ha pogut trobar la pàgina" - -#: contrib/admin/templates/admin/404.html:10 -msgid "We're sorry, but the requested page could not be found." -msgstr "Ho sentim, però no s'ha pogut trobar la pàgina solicitada" - -#: contrib/admin/templates/admin/filter.html:2 -#, python-format -msgid " By %(filter_title)s " -msgstr "Per %(filter_title)s " - -#: contrib/admin/templates/admin/auth/user/add_form.html:6 -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Primer, entri un usuari i una contrasenya. Després podrà editar més opcions " -"del usuari." - -#: contrib/admin/templates/admin/auth/user/add_form.html:12 -msgid "Username" -msgstr "Usuari" - -#: contrib/admin/templates/admin/auth/user/add_form.html:18 -#: contrib/admin/templates/admin/auth/user/change_password.html:34 -msgid "Password" -msgstr "Contrasenya" - -#: contrib/admin/templates/admin/auth/user/add_form.html:23 -#: contrib/admin/templates/admin/auth/user/change_password.html:39 -msgid "Password (again)" -msgstr "Contrasenya (de nou)" - -#: contrib/admin/templates/admin/auth/user/add_form.html:24 -#: contrib/admin/templates/admin/auth/user/change_password.html:40 -msgid "Enter the same password as above, for verification." -msgstr "Introdueixi la mateixa contrasenya que a sobre, per a verificació." - -#: contrib/admin/templates/admin/auth/user/change_password.html:28 -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "Introdueixi una contrasenya per l'usuari %(username)s" - -#: contrib/admin/templates/widget/date_time.html:3 -msgid "Date:" -msgstr "Data:" - -#: contrib/admin/templates/widget/date_time.html:4 -msgid "Time:" -msgstr "Hora:" - -#: contrib/admin/templates/widget/file.html:2 -msgid "Currently:" -msgstr "Actualment:" - -#: contrib/admin/templates/widget/file.html:3 -msgid "Change:" -msgstr "Modificar:" - -#: contrib/admin/templates/registration/logged_out.html:8 -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Gràcies per emprar algun temps de cualitat amb el lloc web avui." - -#: contrib/admin/templates/registration/logged_out.html:10 -msgid "Log in again" -msgstr "Iniciar sessió de nou" - -#: contrib/admin/templates/registration/password_change_form.html:4 -#: contrib/admin/templates/registration/password_change_form.html:6 -#: contrib/admin/templates/registration/password_change_form.html:10 -#: contrib/admin/templates/registration/password_change_done.html:4 -msgid "Password change" -msgstr "Canvi de clau" - -#: contrib/admin/templates/registration/password_change_form.html:12 -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Si us plau, introdueixi la seva contrasenya antiga, per seguretat, i tot " -"seguit introdueixi la seva nova contrasenya dues vegades per verificar que " -"l'ha escrit correctament." - -#: contrib/admin/templates/registration/password_change_form.html:17 -msgid "Old password:" -msgstr "Contrasenya antiga:" - -#: contrib/admin/templates/registration/password_change_form.html:19 -msgid "New password:" -msgstr "Contrasenya nova:" - -#: contrib/admin/templates/registration/password_change_form.html:21 -msgid "Confirm password:" -msgstr "Confirmar contrasenya:" - -#: contrib/admin/templates/registration/password_change_form.html:23 -msgid "Change my password" -msgstr "Canviar la meva clau:" - -#: contrib/admin/templates/registration/password_reset_done.html:4 -#: contrib/admin/templates/registration/password_reset_form.html:4 -#: contrib/admin/templates/registration/password_reset_form.html:6 -#: contrib/admin/templates/registration/password_reset_form.html:10 -msgid "Password reset" -msgstr "Restablir contrasenya" - -#: contrib/admin/templates/registration/password_reset_done.html:6 -#: contrib/admin/templates/registration/password_reset_done.html:10 -msgid "Password reset successful" -msgstr "Contrasenya restaber-ta amb èxit" - -#: contrib/admin/templates/registration/password_reset_done.html:12 -msgid "" -"We've e-mailed a new password to the e-mail address you submitted. You " -"should be receiving it shortly." -msgstr "" -"Li hem enviat una contrasenya nova a l'adreça de correu electrònic que ens " -"ha indicat. L'hauria de rebre en breu." - -#: contrib/admin/templates/registration/password_change_done.html:6 -#: contrib/admin/templates/registration/password_change_done.html:10 -msgid "Password change successful" -msgstr "Canvi de clau exitò" - -#: contrib/admin/templates/registration/password_change_done.html:12 -msgid "Your password was changed." -msgstr "La seva clau ha estat canviada." - -#: contrib/admin/templates/registration/password_reset_email.html:2 -msgid "You're receiving this e-mail because you requested a password reset" -msgstr "" -"Està rebent aquest missatge degut a que va solicitar un restabliment de " -"contrasenya." - -#: contrib/admin/templates/registration/password_reset_email.html:3 -#, python-format -msgid "for your user account at %(site_name)s" -msgstr "del seu compte d'usuari a %(site_name)s." - -#: contrib/admin/templates/registration/password_reset_email.html:5 -#, python-format -msgid "Your new password is: %(new_password)s" -msgstr "La seva nova contrasenya és: %(new_password)s" - -#: contrib/admin/templates/registration/password_reset_email.html:7 -msgid "Feel free to change this password by going to this page:" -msgstr "Sentis lliure de canviar-la en aquesta pàgina:" - -#: contrib/admin/templates/registration/password_reset_email.html:11 -msgid "Your username, in case you've forgotten:" -msgstr "El seu nom d'usuari, en cas d'haver-lo oblidat:" - -#: contrib/admin/templates/registration/password_reset_email.html:13 -msgid "Thanks for using our site!" -msgstr "Gràcies per fer us del nostre lloc!" - -#: contrib/admin/templates/registration/password_reset_email.html:15 -#, python-format -msgid "The %(site_name)s team" -msgstr "L'equip de %(site_name)s" - -#: contrib/admin/templates/registration/password_reset_form.html:12 -msgid "" -"Forgotten your password? Enter your e-mail address below, and we'll reset " -"your password and e-mail the new one to you." -msgstr "" -"Ha oblidat la seva contrasenya? Introdueixi la seva adreça de correu " -"electrònic i crearem una nova que li enviarem per correu." - -#: contrib/admin/templates/registration/password_reset_form.html:16 -msgid "E-mail address:" -msgstr "Adreça de correu electrònic:" - -#: contrib/admin/templates/registration/password_reset_form.html:16 -msgid "Reset my password" -msgstr "Restablir la meva contrasenya" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:3 -msgid "Bookmarklets" -msgstr "'Bookmarklets'" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:5 -msgid "Documentation bookmarklets" -msgstr "'Bookmarklets' de documentació" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:9 -msgid "" -"\n" -"

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

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

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

          \n" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:19 -msgid "Documentation for this page" -msgstr "Documentació d'aquesta pàgina" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:20 -msgid "" -"Jumps you from any page to the documentation for the view that generates " -"that page." -msgstr "" -"El porta des de qualsevol pàgina de la documentació a la vista que la genera." - -#: contrib/admin/templates/admin_doc/bookmarklets.html:22 -msgid "Show object ID" -msgstr "Mostra el ID de l'objecte" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:23 -msgid "" -"Shows the content-type and unique ID for pages that represent a single " -"object." -msgstr "" -"Mostra el 'content-type' (tipus de contingut) i el ID inequívoc de les " -"pàgines que representen un únic objecte." - -#: contrib/admin/templates/admin_doc/bookmarklets.html:25 -msgid "Edit this object (current window)" -msgstr "Editar aquest objecte (finestra actual)" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:26 -msgid "Jumps to the admin page for pages that represent a single object." -msgstr "" -"El porta a la pàgina d'administració de pàgines que representen un únic " -"objecte." - -#: contrib/admin/templates/admin_doc/bookmarklets.html:28 -msgid "Edit this object (new window)" -msgstr "Editar aquest objecte (nova finestra)" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:29 -msgid "As above, but opens the admin page in a new window." -msgstr "Com abans, però obre la pàgina d'administració en una nova finestra." - -#: contrib/admin/views/auth.py:19 contrib/admin/views/main.py:262 -#, python-format -msgid "The %(name)s \"%(obj)s\" was added successfully." -msgstr "El/la %(name)s \"%(obj)s\".ha estat agregat/da amb èxit." - -#: contrib/admin/views/auth.py:24 contrib/admin/views/main.py:266 -#: contrib/admin/views/main.py:352 -msgid "You may edit it again below." -msgstr "Pot editar-lo de nou abaix." - -#: contrib/admin/views/auth.py:30 -msgid "Add user" -msgstr "Afegir usuari" - -#: contrib/admin/views/auth.py:57 -msgid "Password changed successfully." -msgstr "Canvi de clau exitós" - -#: contrib/admin/views/auth.py:64 -#, python-format -msgid "Change password: %s" -msgstr "Canviar clau: %s" - -#: contrib/admin/views/main.py:228 -msgid "Site administration" -msgstr "Lloc administratiu" - -#: contrib/admin/views/main.py:276 contrib/admin/views/main.py:361 -#, python-format -msgid "You may add another %s below." -msgstr "Pot afegir un altre %s a baix." - -#: contrib/admin/views/main.py:294 -#, python-format -msgid "Add %s" -msgstr "Afegir %s" - -#: contrib/admin/views/main.py:340 -#, python-format -msgid "Added %s." -msgstr "Agregat %s." - -#: contrib/admin/views/main.py:340 contrib/admin/views/main.py:342 -#: contrib/admin/views/main.py:344 db/models/manipulators.py:308 -msgid "and" -msgstr "i" - -#: contrib/admin/views/main.py:342 -#, python-format -msgid "Changed %s." -msgstr "Modificat %s." - -#: contrib/admin/views/main.py:344 -#, python-format -msgid "Deleted %s." -msgstr "Eliminat %s." - -#: contrib/admin/views/main.py:347 -msgid "No fields changed." -msgstr "Cap camp canviat." - -#: contrib/admin/views/main.py:350 -#, python-format -msgid "The %(name)s \"%(obj)s\" was changed successfully." -msgstr "S'ha modificat amb èxist el/la %(name)s \"%(obj)s." - -#: contrib/admin/views/main.py:358 -#, 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." - -#: contrib/admin/views/main.py:396 -#, python-format -msgid "Change %s" -msgstr "Modificar %s" - -#: contrib/admin/views/main.py:481 -#, python-format -msgid "One or more %(fieldname)s in %(name)s: %(obj)s" -msgstr "Un o més %(fieldname)s en %(name)s: %(obj)s" - -#: contrib/admin/views/main.py:486 -#, python-format -msgid "One or more %(fieldname)s in %(name)s:" -msgstr "Un o més %(fieldname)s en %(name)s:" - -#: contrib/admin/views/main.py:518 -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "El/la %(name)s \"%(obj)s\".ha estat eliminat amb èxit." - -#: contrib/admin/views/main.py:521 -msgid "Are you sure?" -msgstr "Està segur?" - -#: contrib/admin/views/main.py:543 -#, python-format -msgid "Change history: %s" -msgstr "Modificar històric: %s" - -#: contrib/admin/views/main.py:577 -#, python-format -msgid "Select %s" -msgstr "Seleccioni %s" - -#: contrib/admin/views/main.py:577 -#, python-format -msgid "Select %s to change" -msgstr "Seleccioni %s per modificar" - -#: contrib/admin/views/main.py:772 -msgid "Database error" -msgstr "Error de/en la base de dades" - -#: contrib/admin/views/doc.py:46 contrib/admin/views/doc.py:48 -#: contrib/admin/views/doc.py:50 -msgid "tag:" -msgstr "etiqueta:" - -#: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79 -#: contrib/admin/views/doc.py:81 -msgid "filter:" -msgstr "filtre:" - -#: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137 -#: contrib/admin/views/doc.py:139 -msgid "view:" -msgstr "vista:" - -#: contrib/admin/views/doc.py:164 -#, python-format -msgid "App %r not found" -msgstr "La aplicació %r no s'ha pogut trobar" - -#: contrib/admin/views/doc.py:171 -#, python-format -msgid "Model %(name)r not found in app %(label)r" -msgstr "El model %(name)r no s'ha trobat en la aplicació %(label)r" - -#: contrib/admin/views/doc.py:183 -#, python-format -msgid "the related `%(label)s.%(type)s` object" -msgstr "el objecte relacionat `%(label)s.%(type)s`" - -#: contrib/admin/views/doc.py:183 contrib/admin/views/doc.py:205 -#: contrib/admin/views/doc.py:219 contrib/admin/views/doc.py:224 -msgid "model:" -msgstr "model:" - -#: contrib/admin/views/doc.py:214 -#, python-format -msgid "related `%(label)s.%(name)s` objects" -msgstr "objectes relacionats `%(label)s.%(name)s`" - -#: contrib/admin/views/doc.py:219 -#, python-format -msgid "all %s" -msgstr "tots %s" - -#: contrib/admin/views/doc.py:224 -#, python-format -msgid "number of %s" -msgstr "nombre de %s" - -#: contrib/admin/views/doc.py:229 -#, python-format -msgid "Fields on %s objects" -msgstr "Camps en objectes %s" - -#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:302 -#: contrib/admin/views/doc.py:304 contrib/admin/views/doc.py:310 -#: contrib/admin/views/doc.py:311 contrib/admin/views/doc.py:313 -msgid "Integer" -msgstr "Enter" - -#: contrib/admin/views/doc.py:292 -msgid "Boolean (Either True or False)" -msgstr "Booleà (Verdader o Fals)" - -#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:312 -#, python-format -msgid "String (up to %(maxlength)s)" -msgstr "Cadena (fins a %(maxlength)s)" - -#: contrib/admin/views/doc.py:294 -msgid "Comma-separated integers" -msgstr "Enters separats per comes" - -#: contrib/admin/views/doc.py:295 -msgid "Date (without time)" -msgstr "Data (sense hora)" - -#: contrib/admin/views/doc.py:296 -msgid "Date (with time)" -msgstr "Data (amb hora)" - -#: contrib/admin/views/doc.py:297 -msgid "Decimal number" -msgstr "Número decimal" - -#: contrib/admin/views/doc.py:298 -msgid "E-mail address" -msgstr "Adreça de correu electrònic" - -#: contrib/admin/views/doc.py:299 contrib/admin/views/doc.py:300 -#: contrib/admin/views/doc.py:303 -msgid "File path" -msgstr "Ruta del fitxer" - -#: contrib/admin/views/doc.py:301 -msgid "Floating point number" -msgstr "Número amb punt de coma flotant" - -#: contrib/admin/views/doc.py:307 -msgid "Boolean (Either True, False or None)" -msgstr "Booleà (Verdader, Fals o 'None' (cap))" - -#: contrib/admin/views/doc.py:308 -msgid "Relation to parent model" -msgstr "Relació amb el model pare" - -#: contrib/admin/views/doc.py:309 -msgid "Phone number" -msgstr "Número de telèfon" - -#: contrib/admin/views/doc.py:314 -msgid "Text" -msgstr "Texte" - -#: contrib/admin/views/doc.py:315 -msgid "Time" -msgstr "Hora" - -#: contrib/admin/views/doc.py:316 contrib/flatpages/models.py:7 -msgid "URL" -msgstr "URL" - -#: contrib/admin/views/doc.py:317 -msgid "U.S. state (two uppercase letters)" -msgstr "Estat dels E.U.A. (dos lletres majúscules)" - -#: contrib/admin/views/doc.py:318 -msgid "XML text" -msgstr "Texte XML" - -#: contrib/admin/views/doc.py:344 -#, python-format -msgid "%s does not appear to be a urlpattern object" -msgstr "%s no sembla ser un objecte 'urlpattern'" - -#: contrib/admin/views/decorators.py:10 contrib/auth/forms.py:60 -msgid "" -"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:62 -msgid "" -"Please log in again, because your session has expired. Don't worry: Your " -"submission has been saved." -msgstr "" -"Si us plau, identifiquis de nou doncs la seva sessió ha expirat. No es " -"preocupi, el seu enviament està emmagatzemat." - -#: contrib/admin/views/decorators.py:69 -msgid "" -"Looks like your browser isn't configured to accept cookies. Please enable " -"cookies, reload this page, and try again." -msgstr "" -"Sembla ser que el seu navegador no està configurat per acceptar " -"'cookies' (galetes). Si us plau, habiliti les 'cookies', recarregui aquesta " -"pàgina i provi-ho de nou. " - -#: contrib/admin/views/decorators.py:83 -msgid "Usernames cannot contain the '@' character." -msgstr "Els noms d'usuari no poden contenir el caracter '@'." - -#: contrib/admin/views/decorators.py:85 -#, python-format -msgid "Your e-mail address is not your username. Try '%s' instead." -msgstr "" -"La seva adreça de correu no és el seu nom d'usuari. Provi '%s' en tot cas." - -#: contrib/sessions/models.py:68 -msgid "session key" -msgstr "clau de la sessió" - -#: contrib/sessions/models.py:69 -msgid "session data" -msgstr "dades de la sessió" - -#: contrib/sessions/models.py:70 -msgid "expire date" -msgstr "data de caducitat" - -#: contrib/sessions/models.py:74 -msgid "session" -msgstr "sessió" - -#: contrib/sessions/models.py:75 -msgid "sessions" -msgstr "sessions" - -#: contrib/humanize/templatetags/humanize.py:17 -msgid "th" -msgstr "rt" - -#: contrib/humanize/templatetags/humanize.py:17 -msgid "st" -msgstr "r" - -#: contrib/humanize/templatetags/humanize.py:17 -msgid "nd" -msgstr "n" - -#: contrib/humanize/templatetags/humanize.py:17 -msgid "rd" -msgstr "r" - -#: contrib/humanize/templatetags/humanize.py:47 -#, python-format -msgid "%(value).1f million" -msgid_plural "%(value).1f million" -msgstr[0] "%(value).1f milió" -msgstr[1] "%(value).1f milions" - -#: contrib/humanize/templatetags/humanize.py:50 -#, python-format -msgid "%(value).1f billion" -msgid_plural "%(value).1f billion" -msgstr[0] "%(value).1f bilió" -msgstr[1] "%(value).1f bilions" - -#: contrib/humanize/templatetags/humanize.py:53 -#, python-format -msgid "%(value).1f trillion" -msgid_plural "%(value).1f trillion" -msgstr[0] "%(value).1f trilió" -msgstr[1] "%(value).1f trilions" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "one" -msgstr "un" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "two" -msgstr "dos" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "three" -msgstr "tres" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "four" -msgstr "cuatre" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "five" -msgstr "cinc" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "six" -msgstr "sis" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "seven" -msgstr "set" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "eight" -msgstr "vuit" - -#: contrib/humanize/templatetags/humanize.py:68 -msgid "nine" -msgstr "nou" - -#: contrib/redirects/models.py:7 -msgid "redirect from" -msgstr "redreçar des de" - -#: contrib/redirects/models.py:8 -msgid "" -"This should be an absolute path, excluding the domain name. Example: '/" -"events/search/'." -msgstr "" -"Aquesta ruta hauria de ser el camí absolut, excloent-ne el nom del domini. " -"Exemple '/events/search/'." - -#: contrib/redirects/models.py:9 -msgid "redirect to" -msgstr "redreçar a" - -#: contrib/redirects/models.py:10 -msgid "" -"This can be either an absolute path (as above) or a full URL starting with " -"'http://'." -msgstr "" -"Això pot ser bé una ruta absoluta (com abans) o una URL completa que comenci " -"per http:// ." - -#: contrib/redirects/models.py:13 -msgid "redirect" -msgstr "redreçament" - -#: contrib/redirects/models.py:14 -msgid "redirects" -msgstr "redreçaments" - -#: contrib/flatpages/models.py:8 -msgid "" -"Example: '/about/contact/'. Make sure to have leading and trailing slashes." -msgstr "" -"Exemple: '/about/contact/'. Asseguri's de posar les barres al principi i al " -"final." - -#: contrib/flatpages/models.py:9 -msgid "title" -msgstr "tìtol" - -#: contrib/flatpages/models.py:10 -msgid "content" -msgstr "contingut" - -#: contrib/flatpages/models.py:11 -msgid "enable comments" -msgstr "habilitar comentaris" - -#: contrib/flatpages/models.py:12 -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'." - -#: contrib/flatpages/models.py:14 -msgid "registration required" -msgstr "s'ha de estar registrat" - -#: contrib/flatpages/models.py:14 -msgid "If this is checked, only logged-in users will be able to view the page." -msgstr "Si està marcat, només els usuaris registrats podran veure la pàgina." - -#: contrib/flatpages/models.py:18 -msgid "flat page" -msgstr "pàgina estàtica" - -#: contrib/flatpages/models.py:19 -msgid "flat pages" -msgstr "pàgines estàtiques" - -#: contrib/sites/models.py:10 -msgid "domain name" -msgstr "nom del domini" - -#: contrib/sites/models.py:11 -msgid "display name" -msgstr "nom per mostrar" - -#: contrib/sites/models.py:15 -msgid "site" -msgstr "lloc" - -#: contrib/sites/models.py:16 -msgid "sites" -msgstr "llocs" - -#: contrib/auth/views.py:40 -msgid "Logged out" -msgstr "Sessió finalitzada" - -#: contrib/auth/models.py:49 contrib/auth/models.py:69 -msgid "name" -msgstr "nom" - -#: contrib/auth/models.py:51 -msgid "codename" -msgstr "nom en clau" - -#: contrib/auth/models.py:54 -msgid "permission" -msgstr "permís" - -#: contrib/auth/models.py:55 contrib/auth/models.py:70 -msgid "permissions" -msgstr "permissos" - -#: contrib/auth/models.py:73 -msgid "group" -msgstr "grup" - -#: contrib/auth/models.py:74 contrib/auth/models.py:114 -msgid "groups" -msgstr "grups" - -#: contrib/auth/models.py:104 -msgid "username" -msgstr "nom d'usuari" - -#: contrib/auth/models.py:104 -msgid "" -"Required. 30 characters or fewer. Alphanumeric characters only (letters, " -"digits and underscores)." -msgstr "" -"Requerit. 30 o menys caracters. Només caracters alfanumèrics (lletres, " -"dígits i guions baixos)." - -#: contrib/auth/models.py:105 -msgid "first name" -msgstr "nom propi" - -#: contrib/auth/models.py:106 -msgid "last name" -msgstr "cognoms" - -#: contrib/auth/models.py:107 -msgid "e-mail address" -msgstr "adreça de correu electrònic" - -#: contrib/auth/models.py:108 -msgid "password" -msgstr "contrasenya" - -#: contrib/auth/models.py:108 -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:109 -msgid "staff status" -msgstr "és membre del personal" - -#: contrib/auth/models.py:109 -msgid "Designates whether the user can log into this admin site." -msgstr "Indica si l'usuari pot entrar en el lloc administratiu." - -#: contrib/auth/models.py:110 -msgid "active" -msgstr "actiu" - -#: contrib/auth/models.py:110 -msgid "" -"Designates whether this user can log into the Django admin. Unselect this " -"instead of deleting accounts." -msgstr "" -"Designa si aquest usuari pot iniciar sessió a la interfície administrativa " -"Djano. Deselecciona-ho enlloc de esborrar comptes d'usuari." - -#: contrib/auth/models.py:111 -msgid "superuser status" -msgstr "estat de superusuari" - -#: contrib/auth/models.py:111 -msgid "" -"Designates that this user has all permissions without explicitly assigning " -"them." -msgstr "" -"Designa que aquest usuari té tots els permisos sense assignar-los " -"explícitament." - -#: contrib/auth/models.py:112 -msgid "last login" -msgstr "últim inici de sessió" - -#: contrib/auth/models.py:113 -msgid "date joined" -msgstr "data de creació" - -#: contrib/auth/models.py:115 -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:116 -msgid "user permissions" -msgstr "permissos de l'usuari" - -#: contrib/auth/models.py:120 -msgid "user" -msgstr "usuari" - -#: contrib/auth/models.py:121 -msgid "users" -msgstr "usuaris" - -#: contrib/auth/models.py:127 -msgid "Personal info" -msgstr "Informaciò personal" - -#: contrib/auth/models.py:128 -msgid "Permissions" -msgstr "permissos" - -#: contrib/auth/models.py:129 -msgid "Important dates" -msgstr "Dates importants" - -#: contrib/auth/models.py:130 -msgid "Groups" -msgstr "Grups" - -#: contrib/auth/models.py:273 -msgid "message" -msgstr "missatge" - -#: contrib/auth/models.py:286 -msgid "AnonymousUser" -msgstr "AnonymousUser" - -#: contrib/auth/forms.py:17 contrib/auth/forms.py:138 -msgid "The two password fields didn't match." -msgstr "Els dos camps de contrasenya no coincideixen." - -#: contrib/auth/forms.py:25 -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ó." - -#: 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?" - -#: contrib/auth/forms.py:117 -msgid "The two 'new password' fields didn't match." -msgstr "Els dos camps de nova contrasenya no coincideixen." - -#: contrib/auth/forms.py:124 -msgid "Your old password was entered incorrectly. Please enter it again." -msgstr "" -"La seva antiga contrasenya no és correcte. Si el plau, introdueixi-la de nou." - -#: contrib/contenttypes/models.py:36 -msgid "python model class name" -msgstr "nom de la classe del model en python" - -#: contrib/contenttypes/models.py:39 -msgid "content type" -msgstr "tipus de contingut" - -#: contrib/contenttypes/models.py:40 -msgid "content types" -msgstr "tipus de continguts" +#: contrib/comments/templates/comments/form.html:28 +#: contrib/comments/templates/comments/freeform.html:5 +msgid "Comment:" +msgstr "Comentari:" + +#: contrib/comments/templates/comments/form.html:35 +#: contrib/comments/templates/comments/freeform.html:10 +msgid "Preview comment" +msgstr "Previsualitzar comentari" + +#: contrib/comments/templates/comments/freeform.html:4 +msgid "Your name:" +msgstr "El seu nom:" + +#: contrib/localflavor/ar/forms.py:30 +#: contrib/localflavor/ar/forms.py:38 +msgid "Enter a postal code in the format NNNN or ANNNNAAA." +msgstr "Introdueixi un codi postal en el format NNNN or ANNNNAAA." + +#: contrib/localflavor/ar/forms.py:61 +#: contrib/localflavor/br/forms.py:103 +msgid "This field requires only numbers." +msgstr "Aquest camps requereix només números." + +#: contrib/localflavor/ar/forms.py:64 +msgid "This field requires 7 or 8 digits." +msgstr "Aquest camp requereix 7 o 8 dígits." + +#: contrib/localflavor/ar/forms.py:75 +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:88 +msgid "Invalid CUIT." +msgstr "Invàlid CUIT." + +#: contrib/localflavor/au/forms.py:18 +msgid "Enter a 4 digit post code." +msgstr "Introdueixi un codi postal de 4 dígits." + +#: contrib/localflavor/br/forms.py:23 +msgid "Enter a zip code in the format XXXXX-XXX." +msgstr "Introdueixi un codi zip en el format XXXXX-XXX." + +#: contrib/localflavor/br/forms.py:35 +msgid "Phone numbers must be in XX-XXXX-XXXX format." +msgstr "El número de telèfon ha de ser en el format XX-XXXX-XXXX." + +#: contrib/localflavor/br/forms.py:68 +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:105 +msgid "This field requires at most 11 digits or 14 characters." +msgstr "Aquest camp requereix com a màxim 11 dígits o 14 caracters." + +#: contrib/localflavor/br/forms.py:115 +msgid "Invalid CPF number." +msgstr "Número CPF invàlid." + +#: contrib/localflavor/br/forms.py:137 +msgid "This field requires at least 14 digits" +msgstr "Aquest camp requereix almenys 14 dígits." + +#: contrib/localflavor/br/forms.py:147 +msgid "Invalid CNPJ number." +msgstr "Número CNPJ invàlid." + +#: contrib/localflavor/ch/forms.py:18 +#: contrib/localflavor/no/forms.py:14 +msgid "Enter a zip code in the format XXXX." +msgstr "Introdueixi un codi zip en el format XXXX." + +#: contrib/localflavor/ch/forms.py:90 +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." #: contrib/localflavor/ch/ch_states.py:5 msgid "Aargau" @@ -1994,66 +2178,23 @@ msgstr "Zug" msgid "Zurich" msgstr "Zurich" -#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:15 -msgid "Enter a zip code in the format XXXX." -msgstr "Introdueixi un codi zip en el format XXXX." +#: contrib/localflavor/cl/forms.py:32 +msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X." +msgstr "Introdueixi un RUT Xilè vàlid. El format és XX.XXX.XXX-X" -#: contrib/localflavor/ch/forms.py:90 -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." +#: contrib/localflavor/cl/forms.py:37 +msgid "Enter valid a Chilean RUT" +msgstr "Introdueixi un RUT Xilè vàlid." -#: contrib/localflavor/it/forms.py:16 -msgid "Enter a valid zip code." -msgstr "Introdueixi un codi zip vàlid." - -#: contrib/localflavor/it/forms.py:41 -msgid "Enter a valid Social Security number." -msgstr "Introdueixi un número valid de la Seguretat Social." - -#: contrib/localflavor/it/forms.py:68 -msgid "Enter a valid VAT number." -msgstr "Introdueixi un número de IVA (VAT) vàlid." - -#: contrib/localflavor/uk/forms.py:18 -msgid "Enter a postcode. A space is required between the two postcode parts." -msgstr "" -"Introdueixi un codi postal. És necessari un espai entre les dues parts del " -"codi postal." - -#: contrib/localflavor/us/forms.py:18 -msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Introdueixi un codi zip en el format XXXXX o XXXXX-XXXX." - -#: contrib/localflavor/us/forms.py:51 -msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Introdueixi un número vàlid de la Seguretat Social dels E.U.A. en el format " -"XXX-XX-XXXX." - -#: contrib/localflavor/fi/forms.py:14 contrib/localflavor/de/forms.py:16 +#: contrib/localflavor/de/forms.py:16 +#: contrib/localflavor/fi/forms.py:14 #: contrib/localflavor/fr/forms.py:17 msgid "Enter a zip code in the format XXXXX." msgstr "Introdueixi un codi zip en el format XXXXX." -#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45 -msgid "Enter a valid Finnish social security number." -msgstr "Introdueixi un número vàlid de la seguretat social finlandesa." - -#: contrib/localflavor/no/forms.py:36 -msgid "Enter a valid Norwegian social security number." -msgstr "Introdueixi un número de la seguretat social Noruega vàlid." - -#: contrib/localflavor/cl/forms.py:21 -msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Introdueixi un RUT Xilè vàlid. El format és XX.XXX.XXX-X" - -#: contrib/localflavor/cl/forms.py:26 -msgid "Enter valid a Chilean RUT" -msgstr "Introdueixi un RUT Xilè vàlid." +#: contrib/localflavor/de/forms.py:60 +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/de/de_states.py:5 msgid "Baden-Wuerttemberg" @@ -2119,17 +2260,26 @@ msgstr "Schleswig-Holstein" msgid "Thuringia" msgstr "Thuringia" -#: contrib/localflavor/de/forms.py:60 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Introdueixi un número de tarjeta d'identificació alemany vàlid en el format " -"XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." +#: contrib/localflavor/fi/forms.py:40 +#: contrib/localflavor/fi/forms.py:45 +msgid "Enter a valid Finnish social security number." +msgstr "Introdueixi un número vàlid de la seguretat social finlandesa." -#: contrib/localflavor/au/forms.py:18 -msgid "Enter a 4 digit post code." -msgstr "Introdueixi un codi postal de 4 dígits." +#: contrib/localflavor/it/forms.py:16 +msgid "Enter a valid zip code." +msgstr "Introdueixi un codi zip vàlid." + +#: contrib/localflavor/it/forms.py:41 +msgid "Enter a valid Social Security number." +msgstr "Introdueixi un número valid de la Seguretat Social." + +#: contrib/localflavor/it/forms.py:68 +msgid "Enter a valid VAT number." +msgstr "Introdueixi un número de IVA (VAT) vàlid." + +#: contrib/localflavor/jp/forms.py:21 +msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." +msgstr "Introdueixi un codi postal en el format XXXXXXX o XX-XXXX." #: contrib/localflavor/jp/jp_prefectures.py:4 msgid "Hokkaido" @@ -2319,359 +2469,607 @@ msgstr "Kagoshima" msgid "Okinawa" msgstr "Okinawa" -#: contrib/localflavor/jp/forms.py:21 -msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Introdueixi un codi postal en el format XXXXXXX o XX-XXXX." +#: contrib/localflavor/nl/forms.py:25 +msgid "Enter a valid postal code" +msgstr "Introdueixi un codi postal vàlid." -#: contrib/localflavor/br/forms.py:18 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Introdueixi un codi zip en el format XXXXX-XXX." +#: contrib/localflavor/nl/forms.py:53 +msgid "Enter a valid phone number" +msgstr "Introdueixi un número de telèfon vàlid." -#: contrib/localflavor/br/forms.py:30 -msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "El número de telèfon ha de ser en el format XX-XXXX-XXXX." +#: contrib/localflavor/nl/forms.py:76 +msgid "Enter a valid SoFi number" +msgstr "Introdueixi un número SoFi vàlid." -#: contrib/localflavor/br/forms.py:72 -msgid "This field requires only numbers." -msgstr "Aquest camps requereix només números." +#: contrib/localflavor/nl/nl_provinces.py:4 +msgid "Drente" +msgstr "Drente" -#: contrib/localflavor/br/forms.py:74 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Aquest camp requereix com a màxim 11 dígits o 14 caracters." +#: contrib/localflavor/nl/nl_provinces.py:5 +msgid "Flevoland" +msgstr "Flevoland" -#: contrib/localflavor/br/forms.py:84 -msgid "Invalid CPF number." -msgstr "Número CPF invàlid." +#: contrib/localflavor/nl/nl_provinces.py:6 +msgid "Friesland" +msgstr "Friesland" -#: contrib/localflavor/br/forms.py:106 -msgid "This field requires at least 14 digits" -msgstr "Aquest camp requereix almenys 14 dígits." +#: contrib/localflavor/nl/nl_provinces.py:7 +msgid "Gelderland" +msgstr "Gelderland" -#: contrib/localflavor/br/forms.py:116 -msgid "Invalid CNPJ number." -msgstr "Número CNPJ invàlid." +#: contrib/localflavor/nl/nl_provinces.py:8 +msgid "Groningen" +msgstr "Groningen" -#: contrib/localflavor/is_/forms.py:16 -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/nl/nl_provinces.py:9 +msgid "Limburg" +msgstr "Limburg" -#: contrib/localflavor/is_/forms.py:30 +#: contrib/localflavor/nl/nl_provinces.py:10 +msgid "Noord-Brabant" +msgstr "Noord-Brabant" + +#: contrib/localflavor/nl/nl_provinces.py:11 +msgid "Noord-Holland" +msgstr "Noord-Holland" + +#: contrib/localflavor/nl/nl_provinces.py:12 +msgid "Overijssel" +msgstr "Overijssel" + +#: contrib/localflavor/nl/nl_provinces.py:13 +msgid "Utrecht" +msgstr "Utrecht" + +#: contrib/localflavor/nl/nl_provinces.py:14 +msgid "Zeeland" +msgstr "Zeeland" + +#: contrib/localflavor/nl/nl_provinces.py:15 +msgid "Zuid-Holland" +msgstr "Zuid-Holland" + +#: contrib/localflavor/no/forms.py:35 +msgid "Enter a valid Norwegian social security number." +msgstr "Introdueixi un número de la seguretat social Noruega vàlid." + +#: contrib/localflavor/pl/forms.py:53 +msgid "National Identification Number consists of 11 digits." +msgstr "El número d'identidicació nacional està compost de 11 digits." + +#: contrib/localflavor/pl/forms.py:59 +msgid "Wrong checksum for the National Identification Number." +msgstr "Validació invàlida del número d'identificació nacional." + +#: contrib/localflavor/pl/forms.py:71 +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:82 +msgid "Enter a postal code in the format XX-XXX." +msgstr "Introdueixi un codi postal en el format XX-XXX." + +#: contrib/localflavor/pl/pl_voivodeships.py:8 +msgid "Lower Silesia" +msgstr "Lower Silesia" + +#: contrib/localflavor/pl/pl_voivodeships.py:9 +msgid "Kuyavia-Pomerania" +msgstr "Kuyavia-Pomerania" + +#: contrib/localflavor/pl/pl_voivodeships.py:10 +msgid "Lublin" +msgstr "Lublin" + +#: contrib/localflavor/pl/pl_voivodeships.py:11 +msgid "Lubusz" +msgstr "Lubusz" + +#: contrib/localflavor/pl/pl_voivodeships.py:12 +msgid "Lodz" +msgstr "Lodz" + +#: contrib/localflavor/pl/pl_voivodeships.py:13 +msgid "Lesser Poland" +msgstr "Lesser Poland" + +#: contrib/localflavor/pl/pl_voivodeships.py:14 +msgid "Masovia" +msgstr "Masovia" + +#: contrib/localflavor/pl/pl_voivodeships.py:15 +msgid "Opole" +msgstr "Opole" + +#: contrib/localflavor/pl/pl_voivodeships.py:16 +msgid "Subcarpatia" +msgstr "Subcarpatia" + +#: contrib/localflavor/pl/pl_voivodeships.py:17 +msgid "Podlasie" +msgstr "Podlasie" + +#: contrib/localflavor/pl/pl_voivodeships.py:18 +msgid "Pomerania" +msgstr "Pomerania" + +#: contrib/localflavor/pl/pl_voivodeships.py:19 +msgid "Silesia" +msgstr "Silesia" + +#: contrib/localflavor/pl/pl_voivodeships.py:20 +msgid "Swietokrzyskie" +msgstr "Swietokrzyskie" + +#: contrib/localflavor/pl/pl_voivodeships.py:21 +msgid "Warmia-Masuria" +msgstr "Warmia-Masuria" + +#: contrib/localflavor/pl/pl_voivodeships.py:22 +msgid "Greater Poland" +msgstr "Greater Poland" + +#: contrib/localflavor/pl/pl_voivodeships.py:23 +msgid "West Pomerania" +msgstr "West Pomerania" + +#: contrib/localflavor/sk/forms.py:32 +msgid "Enter a postal code in the format XXXXX or XXX XX." +msgstr "Introdueixi un codi postal en el format XXXXX or XXX XX." + +#: contrib/localflavor/sk/sk_districts.py:8 +msgid "Banska Bystrica" +msgstr "Banska Bystrica" + +#: contrib/localflavor/sk/sk_districts.py:9 +msgid "Banska Stiavnica" +msgstr "Banska Stiavnica" + +#: contrib/localflavor/sk/sk_districts.py:10 +msgid "Bardejov" +msgstr "Bardejov" + +#: contrib/localflavor/sk/sk_districts.py:11 +msgid "Banovce nad Bebravou" +msgstr "Banovce nad Bebravou" + +#: contrib/localflavor/sk/sk_districts.py:12 +msgid "Brezno" +msgstr "Brezno" + +#: contrib/localflavor/sk/sk_districts.py:13 +msgid "Bratislava I" +msgstr "Bratislava I" + +#: contrib/localflavor/sk/sk_districts.py:14 +msgid "Bratislava II" +msgstr "Bratislava II" + +#: contrib/localflavor/sk/sk_districts.py:15 +msgid "Bratislava III" +msgstr "Bratislava III" + +#: contrib/localflavor/sk/sk_districts.py:16 +msgid "Bratislava IV" +msgstr "Bratislava IV" + +#: contrib/localflavor/sk/sk_districts.py:17 +msgid "Bratislava V" +msgstr "Bratislava V" + +#: contrib/localflavor/sk/sk_districts.py:18 +msgid "Bytca" +msgstr "Bytca" + +#: contrib/localflavor/sk/sk_districts.py:19 +msgid "Cadca" +msgstr "Cadca" + +#: contrib/localflavor/sk/sk_districts.py:20 +msgid "Detva" +msgstr "Detva" + +#: contrib/localflavor/sk/sk_districts.py:21 +msgid "Dolny Kubin" +msgstr "Dolny Kubin" + +#: contrib/localflavor/sk/sk_districts.py:22 +msgid "Dunajska Streda" +msgstr "Dunajska Streda" + +#: contrib/localflavor/sk/sk_districts.py:23 +msgid "Galanta" +msgstr "Galanta" + +#: contrib/localflavor/sk/sk_districts.py:24 +msgid "Gelnica" +msgstr "Gelnica" + +#: contrib/localflavor/sk/sk_districts.py:25 +msgid "Hlohovec" +msgstr "Hlohovec" + +#: contrib/localflavor/sk/sk_districts.py:26 +msgid "Humenne" +msgstr "Humenne" + +#: contrib/localflavor/sk/sk_districts.py:27 +msgid "Ilava" +msgstr "Ilava" + +#: contrib/localflavor/sk/sk_districts.py:28 +msgid "Kezmarok" +msgstr "Kezmarok" + +#: contrib/localflavor/sk/sk_districts.py:29 +msgid "Komarno" +msgstr "Komarno" + +#: contrib/localflavor/sk/sk_districts.py:30 +msgid "Kosice I" +msgstr "Kosice I" + +#: contrib/localflavor/sk/sk_districts.py:31 +msgid "Kosice II" +msgstr "Kosice II" + +#: contrib/localflavor/sk/sk_districts.py:32 +msgid "Kosice III" +msgstr "Kosice III" + +#: contrib/localflavor/sk/sk_districts.py:33 +msgid "Kosice IV" +msgstr "Kosice IV" + +#: contrib/localflavor/sk/sk_districts.py:34 +msgid "Kosice - okolie" +msgstr "Kosice - okolie" + +#: contrib/localflavor/sk/sk_districts.py:35 +msgid "Krupina" +msgstr "Krupina" + +#: contrib/localflavor/sk/sk_districts.py:36 +msgid "Kysucke Nove Mesto" +msgstr "Kysucke Nove Mesto" + +#: contrib/localflavor/sk/sk_districts.py:37 +msgid "Levice" +msgstr "Levice" + +#: contrib/localflavor/sk/sk_districts.py:38 +msgid "Levoca" +msgstr "Levoca" + +#: contrib/localflavor/sk/sk_districts.py:39 +msgid "Liptovsky Mikulas" +msgstr "Liptovsky Mikulas" + +#: contrib/localflavor/sk/sk_districts.py:40 +msgid "Lucenec" +msgstr "Lucenec" + +#: contrib/localflavor/sk/sk_districts.py:41 +msgid "Malacky" +msgstr "Malacky" + +#: contrib/localflavor/sk/sk_districts.py:42 +msgid "Martin" +msgstr "Martin" + +#: contrib/localflavor/sk/sk_districts.py:43 +msgid "Medzilaborce" +msgstr "Medzilaborce" + +#: contrib/localflavor/sk/sk_districts.py:44 +msgid "Michalovce" +msgstr "Michalovce" + +#: contrib/localflavor/sk/sk_districts.py:45 +msgid "Myjava" +msgstr "Myjava" + +#: contrib/localflavor/sk/sk_districts.py:46 +msgid "Namestovo" +msgstr "Namestovo" + +#: contrib/localflavor/sk/sk_districts.py:47 +msgid "Nitra" +msgstr "Nitra" + +#: contrib/localflavor/sk/sk_districts.py:48 +msgid "Nove Mesto nad Vahom" +msgstr "Nove Mesto nad Vahom" + +#: contrib/localflavor/sk/sk_districts.py:49 +msgid "Nove Zamky" +msgstr "Nove Zamky" + +#: contrib/localflavor/sk/sk_districts.py:50 +msgid "Partizanske" +msgstr "Partizanske" + +#: contrib/localflavor/sk/sk_districts.py:51 +msgid "Pezinok" +msgstr "Pezinok" + +#: contrib/localflavor/sk/sk_districts.py:52 +msgid "Piestany" +msgstr "Piestany" + +#: contrib/localflavor/sk/sk_districts.py:53 +msgid "Poltar" +msgstr "Poltar" + +#: contrib/localflavor/sk/sk_districts.py:54 +msgid "Poprad" +msgstr "Poprad" + +#: contrib/localflavor/sk/sk_districts.py:55 +msgid "Povazska Bystrica" +msgstr "Povazska Bystrica" + +#: contrib/localflavor/sk/sk_districts.py:56 +msgid "Presov" +msgstr "Presov" + +#: contrib/localflavor/sk/sk_districts.py:57 +msgid "Prievidza" +msgstr "Prievidza" + +#: contrib/localflavor/sk/sk_districts.py:58 +msgid "Puchov" +msgstr "Puchov" + +#: contrib/localflavor/sk/sk_districts.py:59 +msgid "Revuca" +msgstr "Revuca" + +#: contrib/localflavor/sk/sk_districts.py:60 +msgid "Rimavska Sobota" +msgstr "Rimavska Sobota" + +#: contrib/localflavor/sk/sk_districts.py:61 +msgid "Roznava" +msgstr "Roznava" + +#: contrib/localflavor/sk/sk_districts.py:62 +msgid "Ruzomberok" +msgstr "Ruzomberok" + +#: contrib/localflavor/sk/sk_districts.py:63 +msgid "Sabinov" +msgstr "Sabinov" + +#: contrib/localflavor/sk/sk_districts.py:64 +msgid "Senec" +msgstr "Senec" + +#: contrib/localflavor/sk/sk_districts.py:65 +msgid "Senica" +msgstr "Senica" + +#: contrib/localflavor/sk/sk_districts.py:66 +msgid "Skalica" +msgstr "Skalica" + +#: contrib/localflavor/sk/sk_districts.py:67 +msgid "Snina" +msgstr "Snina" + +#: contrib/localflavor/sk/sk_districts.py:68 +msgid "Sobrance" +msgstr "Sobrance" + +#: contrib/localflavor/sk/sk_districts.py:69 +msgid "Spisska Nova Ves" +msgstr "Spisska Nova Ves" + +#: contrib/localflavor/sk/sk_districts.py:70 +msgid "Stara Lubovna" +msgstr "Stara Lubovna" + +#: contrib/localflavor/sk/sk_districts.py:71 +msgid "Stropkov" +msgstr "Stropkov" + +#: contrib/localflavor/sk/sk_districts.py:72 +msgid "Svidnik" +msgstr "Svidnik" + +#: contrib/localflavor/sk/sk_districts.py:73 +msgid "Sala" +msgstr "Sala" + +#: contrib/localflavor/sk/sk_districts.py:74 +msgid "Topolcany" +msgstr "Topolcany" + +#: contrib/localflavor/sk/sk_districts.py:75 +msgid "Trebisov" +msgstr "Trebisov" + +#: contrib/localflavor/sk/sk_districts.py:76 +msgid "Trencin" +msgstr "Trencin" + +#: contrib/localflavor/sk/sk_districts.py:77 +msgid "Trnava" +msgstr "Trnava" + +#: contrib/localflavor/sk/sk_districts.py:78 +msgid "Turcianske Teplice" +msgstr "Turcianske Teplice" + +#: contrib/localflavor/sk/sk_districts.py:79 +msgid "Tvrdosin" +msgstr "Tvrdosin" + +#: contrib/localflavor/sk/sk_districts.py:80 +msgid "Velky Krtis" +msgstr "Velky Krtis" + +#: contrib/localflavor/sk/sk_districts.py:81 +msgid "Vranov nad Toplou" +msgstr "Vranov nad Toplou" + +#: contrib/localflavor/sk/sk_districts.py:82 +msgid "Zlate Moravce" +msgstr "Zlate Moravce" + +#: contrib/localflavor/sk/sk_districts.py:83 +msgid "Zvolen" +msgstr "Zvolen" + +#: contrib/localflavor/sk/sk_districts.py:84 +msgid "Zarnovica" +msgstr "Zarnovica" + +#: contrib/localflavor/sk/sk_districts.py:85 +msgid "Ziar nad Hronom" +msgstr "Ziar nad Hronom" + +#: contrib/localflavor/sk/sk_districts.py:86 +msgid "Zilina" +msgstr "Zilina" + +#: contrib/localflavor/sk/sk_regions.py:8 +msgid "Banska Bystrica region" +msgstr "Regió de Banska Bystrica" + +#: contrib/localflavor/sk/sk_regions.py:9 +msgid "Bratislava region" +msgstr "Regió de Bratislava" + +#: contrib/localflavor/sk/sk_regions.py:10 +msgid "Kosice region" +msgstr "Regió de Kosice" + +#: contrib/localflavor/sk/sk_regions.py:11 +msgid "Nitra region" +msgstr "Regió de Nitra" + +#: contrib/localflavor/sk/sk_regions.py:12 +msgid "Presov region" +msgstr "Regió de Presov" + +#: contrib/localflavor/sk/sk_regions.py:13 +msgid "Trencin region" +msgstr "Regió de Trencin" + +#: contrib/localflavor/sk/sk_regions.py:14 +msgid "Trnava region" +msgstr "Regió de Trnava" + +#: contrib/localflavor/sk/sk_regions.py:15 +msgid "Zilina region" +msgstr "Regió de Zilina" + +#: contrib/localflavor/uk/forms.py:18 +msgid "Enter a postcode. A space is required between the two postcode parts." +msgstr "Introdueixi un codi postal. És necessari un espai entre les dues parts del codi postal." + +#: contrib/localflavor/us/forms.py:18 +msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." +msgstr "Introdueixi un codi zip en el format XXXXX o XXXXX-XXXX." + +#: contrib/localflavor/us/forms.py:51 +msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." +msgstr "Introdueixi un número vàlid de la Seguretat Social dels E.U.A. en el format XXX-XX-XXXX." + +#: contrib/localflavor/in_/forms.py:16 +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." + +#: contrib/localflavor/is_/forms.py:31 msgid "The Icelandic identification number is not valid." msgstr "El número de identificació d'Islàndia no és vàlid." -#: core/validators.py:65 -msgid "This value must contain only letters, numbers and underscores." -msgstr "Aquest valor ha de contenir només números, guions, i guions baixos." +#: contrib/sessions/models.py:68 +msgid "session key" +msgstr "clau de la sessió" -#: core/validators.py:69 -msgid "" -"This value must contain only letters, numbers, underscores, dashes or " -"slashes." -msgstr "" -"Aquest valor ha de contenir només lletres, números, guions, guions baixos, i " -"barres (/)." +#: contrib/sessions/models.py:69 +msgid "session data" +msgstr "dades de la sessió" -#: core/validators.py:73 -msgid "This value must contain only letters, numbers, underscores or hyphens." -msgstr "" -"Aquest valor ha de contenir només lletres, números, guions o guions baixos" +#: contrib/sessions/models.py:70 +msgid "expire date" +msgstr "data de caducitat" -#: core/validators.py:77 -msgid "Uppercase letters are not allowed here." -msgstr "No es permeten majúscules aquí." +#: contrib/sessions/models.py:74 +msgid "session" +msgstr "sessió" -#: core/validators.py:81 -msgid "Lowercase letters are not allowed here." -msgstr "No es permeten minúscules aquí." +#: contrib/sessions/models.py:75 +msgid "sessions" +msgstr "sessions" -#: core/validators.py:88 -msgid "Enter only digits separated by commas." -msgstr "Introdueixi només dígits separats per comes." +#: contrib/contenttypes/models.py:37 +msgid "python model class name" +msgstr "nom de la classe del model en python" -#: core/validators.py:100 -msgid "Enter valid e-mail addresses separated by commas." -msgstr "Introdueixi adreces de correu electrònic vàlides separades per comes." +#: contrib/contenttypes/models.py:40 +msgid "content type" +msgstr "tipus de contingut" -#: core/validators.py:104 -msgid "Please enter a valid IP address." -msgstr "Per favor introdueixi una adreça IP vàlida." +#: contrib/contenttypes/models.py:41 +msgid "content types" +msgstr "tipus de continguts" -#: core/validators.py:108 -msgid "Empty values are not allowed here." -msgstr "No s'admeten valor buits." - -#: core/validators.py:112 -msgid "Non-numeric characters aren't allowed here." -msgstr "No s'admeten caracters no numèrics." - -#: core/validators.py:116 -msgid "This value can't be comprised solely of digits." -msgstr "Aquest valor no pot contenir només dígits." - -#: core/validators.py:125 -msgid "Only alphabetical characters are allowed here." -msgstr "Només s'admeted caracters alfabètics aquí." - -#: core/validators.py:140 -msgid "Year must be 1900 or later." -msgstr "L'any ha de ser posterior al 1900" - -#: core/validators.py:144 +#: oldforms/__init__.py:408 #, python-format -msgid "Invalid date: %s" -msgstr "Data invàlida: %s" +msgid "Ensure your text is less than %s character." +msgid_plural "Ensure your text is less than %s characters." +msgstr[0] "Asseguris de que el seu texte té menys de %s caracter." +msgstr[1] "Asseguris de que el seu texte té menys de %s caracters." -#: core/validators.py:149 db/models/fields/__init__.py:468 -msgid "Enter a valid date in YYYY-MM-DD format." -msgstr "Introdueixi una data vàlida en el forma AAAA-MM-DD." +#: oldforms/__init__.py:413 +msgid "Line breaks are not allowed here." +msgstr "No es permeten salts de línia." -#: core/validators.py:154 -msgid "Enter a valid time in HH:MM format." -msgstr "Introdueixi una hora vàlida en el format HH:MM." - -#: core/validators.py:158 db/models/fields/__init__.py:537 -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:175 core/validators.py:453 oldforms/__init__.py:672 -msgid "No file was submitted. Check the encoding type on the form." -msgstr "" -"No s'ha enviat cap fitxer. Comprovi el tipus de codificació del formulari." - -#: core/validators.py:179 -msgid "" -"Upload a valid image. The file you uploaded was either not an image or a " -"corrupted image." -msgstr "" -"Envii una imatge vàilda. El fitxer que ha enviat no era una imatge o estaba " -"corrupte." - -#: core/validators.py:186 +#: oldforms/__init__.py:511 +#: oldforms/__init__.py:585 +#: oldforms/__init__.py:624 #, python-format -msgid "The URL %s does not point to a valid image." -msgstr "La URL %s no apunta una imatge vàlida." +msgid "Select a valid choice; '%(data)s' is not in %(choices)s." +msgstr "Esculli una opció vàlida; %(data)s' no està dintre de %(choices)s." -#: core/validators.py:190 +#: oldforms/__init__.py:688 +#: newforms/fields.py:381 +msgid "The submitted file is empty." +msgstr "El fitxer enviat està buit." + +#: oldforms/__init__.py:744 +msgid "Enter a whole number between -32,768 and 32,767." +msgstr "Introdueixi un número enter entre -32,768 i 32,767." + +#: oldforms/__init__.py:754 +msgid "Enter a positive number." +msgstr "Introdueixi un número positiu." + +#: oldforms/__init__.py:764 +msgid "Enter a whole number between 0 and 32,767." +msgstr "Introdueixi un número entre 0 i 32,767." + +#: views/generic/create_update.py:43 #, python-format -msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." -msgstr "" -"El números de telèfon han de guardar-se en el format XXX-XXX-XXXX. \"%s\" no " -"és vàlid." +msgid "The %(verbose_name)s was created successfully." +msgstr "El/La %(verbose_name)s s'ha creat amb èxit." -#: core/validators.py:198 +#: views/generic/create_update.py:117 #, python-format -msgid "The URL %s does not point to a valid QuickTime video." -msgstr "La URL %s no apunta a un video QuickTime vàlid." +msgid "The %(verbose_name)s was updated successfully." +msgstr "El/La %(verbose_name)s s'ha actualtzat amb èxit." -#: core/validators.py:202 -msgid "A valid URL is required." -msgstr "Es precisa d'una URL vàlida." - -#: core/validators.py:216 +#: views/generic/create_update.py:184 #, python-format -msgid "" -"Valid HTML is required. Specific errors are:\n" -"%s" -msgstr "" -"Es precisa HTML vàlid. Els errors específics sòn:\n" -"%s" - -#: core/validators.py:223 -#, python-format -msgid "Badly formed XML: %s" -msgstr "XML incorrectament formatejat: %s" - -#: core/validators.py:240 -#, python-format -msgid "Invalid URL: %s" -msgstr "URL invalida: %s" - -#: core/validators.py:245 core/validators.py:247 -#, python-format -msgid "The URL %s is a broken link." -msgstr "La URL %sés un enllaç trencat." - -#: core/validators.py:253 -msgid "Enter a valid U.S. state abbreviation." -msgstr "Introdueixi una abreviatura vàlida d'estat d'els E.U.A.." - -#: core/validators.py:267 -#, python-format -msgid "Watch your mouth! The word %s is not allowed here." -msgid_plural "Watch your mouth! The words %s are not allowed here." -msgstr[0] "Vigili la seva boca! Aquí no admetem la paraula: %s." -msgstr[1] "Vigili la seva boca! Aquí no admetem les paraules: %s." - -#: core/validators.py:274 -#, python-format -msgid "This field must match the '%s' field." -msgstr "Aquest camp ha de concordar amb el camp '%s'." - -#: core/validators.py:293 -msgid "Please enter something for at least one field." -msgstr "Si us plau, introdueixi alguna cosa alemnys en un camp." - -#: core/validators.py:302 core/validators.py:313 -msgid "Please enter both fields or leave them both empty." -msgstr "Si us plau, ompli els dos camps o deixi'ls tots dos en blanc." - -#: core/validators.py:321 -#, 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" - -#: core/validators.py:334 -#, 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" - -#: core/validators.py:353 -msgid "Duplicate values are not allowed." -msgstr "No s'admeten valors duplicats." - -#: core/validators.py:368 -#, 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." - -#: core/validators.py:370 -#, python-format -msgid "This value must be at least %s." -msgstr "Aquest valor ha de ser com a mínim %s." - -#: core/validators.py:372 -#, python-format -msgid "This value must be no more than %s." -msgstr "Aquest valor ha de ser com a màxim %s." - -#: core/validators.py:408 -#, python-format -msgid "This value must be a power of %s." -msgstr "Aquest valor ha de ser una potència de %s." - -#: core/validators.py:417 -msgid "Please enter a valid decimal number." -msgstr "Si us plau, introdueixi un número decimal vàlid." - -#: core/validators.py:423 -#, python-format -msgid "Please enter a valid decimal number with at most %s total digit." -"Please enter a valid decimal number with at most %s total digits." -msgstr "" -"Si us plau, introdueixi un número decimal vàlid amb no més de %s digit." -"Si us plau, introdueixi un número decimal vàlid amb no més de %s digits." - -#: core/validators.py:426 -#, python-format -msgid "" -"Please enter a valid decimal number with a whole part of at most %s digit." -"Please enter a valid decimal number with a whole part of at most %s digits." -msgstr "" -"Si us plau, introdueixi un número decimal vàlid amb la part entera amb com a " -"màxim %s dígit." -"Si us plau, introdueixi un número decimal vàlid amb la part entera amb com a " -"màxim %s dígits." - -#: core/validators.py:429 -#, python-format -msgid "Please enter a valid decimal number with at most %s decimal place." -"Please enter a valid decimal number with at most %s decimal places." -msgstr "" -"Si us plau, introdueixi un número decimal vàlid amb no més de %s dígit en la " -"part decimal." -"Si us plau, introdueixi un número decimal vàlid amb no més de %s dígits en " -"la part decimal." - -#: core/validators.py:437 -msgid "Please enter a valid floating point number." -msgstr "Si us plau, introdueixi un número amb punt de coma flotant vàlid." - -#: core/validators.py:446 -#, python-format -msgid "Make sure your uploaded file is at least %s bytes big." -msgstr "Asseguris de que el fitxer que ha enviat té, com a mínim, %s bytes." - -#: core/validators.py:447 -#, python-format -msgid "Make sure your uploaded file is at most %s bytes big." -msgstr "Asseguris de que el fitxer que ha enviat té, com a màxim %s bytes." - -#: core/validators.py:464 -msgid "The format for this field is wrong." -msgstr "El format per aquest camp és incorrecte." - -#: core/validators.py:479 -msgid "This field is invalid." -msgstr "El camp no és vàlid." - -#: core/validators.py:515 -#, python-format -msgid "Could not retrieve anything from %s." -msgstr "No s'ha pogut obtenir res de %s." - -#: core/validators.py:518 -#, python-format -msgid "" -"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." -msgstr "" -"La URL %(url)s ha va tornar la capcelera Content-Type '%(contenttype)s', que " -"no és vàlida." - -#: core/validators.py:551 -#, python-format -msgid "" -"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " -"\"%(start)s\".)" -msgstr "" -"Si us plau, tanqui l'etiqueta %(tag)s des de la línia %(line)s. (La línia " -"comença amb \"%(start)s\".)" - -#: core/validators.py:555 -#, python-format -msgid "" -"Some text starting on line %(line)s is not allowed in that context. (Line " -"starts with \"%(start)s\".)" -msgstr "" -"Part del text que comença en la línia %(line)s no està permès en aquest " -"context. (La línia comença per \"%(start)s\".)" - -#: core/validators.py:560 -#, python-format -msgid "" -"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" -"(start)s\".)" -msgstr "" -"El \"%(attr)s\" de la línia %(line)s no és un atribut vàlid. (La línia " -"comença per \"%(start)s\".)" - -#: core/validators.py:565 -#, python-format -msgid "" -"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" -"(start)s\".)" -msgstr "" -"La \"<%(tag)s>\" de la línia %(line)s no és una etiqueta vàlida. (La línia " -"comença per \"%(start)s\".)" - -#: core/validators.py:569 -#, python-format -msgid "" -"A tag on line %(line)s is missing one or more required attributes. (Line " -"starts with \"%(start)s\".)" -msgstr "" -"Una etiqueta de la línia %(line)s li falta un o més atributs requerits.(La " -"línia comença per \"%(start)s\".)" - -#: core/validators.py:574 -#, python-format -msgid "" -"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " -"starts with \"%(start)s\".)" -msgstr "" -"L'atribut \"%(attr)s\" de la línia %(line)s té un valor que no és vàlid. (La " -"línia comença per \"%(start)s\".)" +msgid "The %(verbose_name)s was deleted." +msgstr "El %(verbose_name)s s'ha eliminat." #: utils/dates.py:6 msgid "Monday" @@ -2701,130 +3099,167 @@ msgstr "Dissabte" msgid "Sunday" msgstr "Diumenge" -#: utils/dates.py:14 +#: utils/dates.py:10 +msgid "Mon" +msgstr "Dl" + +#: utils/dates.py:10 +msgid "Tue" +msgstr "Dt" + +#: utils/dates.py:10 +msgid "Wed" +msgstr "Dc" + +#: utils/dates.py:10 +msgid "Thu" +msgstr "Dj" + +#: utils/dates.py:10 +msgid "Fri" +msgstr "Dv" + +#: utils/dates.py:11 +msgid "Sat" +msgstr "Db" + +#: utils/dates.py:11 +msgid "Sun" +msgstr "Dg" + +#: utils/dates.py:18 msgid "January" msgstr "Gener" -#: utils/dates.py:14 +#: utils/dates.py:18 msgid "February" msgstr "Febrer" -#: utils/dates.py:14 utils/dates.py:27 +#: utils/dates.py:18 +#: utils/dates.py:31 msgid "March" msgstr "Març" -#: utils/dates.py:14 utils/dates.py:27 +#: utils/dates.py:18 +#: utils/dates.py:31 msgid "April" msgstr "Abril" -#: utils/dates.py:14 utils/dates.py:27 +#: utils/dates.py:18 +#: utils/dates.py:31 msgid "May" msgstr "Maig" -#: utils/dates.py:14 utils/dates.py:27 +#: utils/dates.py:18 +#: utils/dates.py:31 msgid "June" msgstr "Juny" -#: utils/dates.py:15 utils/dates.py:27 +#: utils/dates.py:19 +#: utils/dates.py:31 msgid "July" msgstr "Juliol" -#: utils/dates.py:15 +#: utils/dates.py:19 msgid "August" msgstr "Agost" -#: utils/dates.py:15 +#: utils/dates.py:19 msgid "September" msgstr "Setembre" -#: utils/dates.py:15 +#: utils/dates.py:19 msgid "October" msgstr "Octubre" -#: utils/dates.py:15 +#: utils/dates.py:19 msgid "November" msgstr "Novembre" -#: utils/dates.py:16 +#: utils/dates.py:20 msgid "December" msgstr "Desembre" -#: utils/dates.py:19 +#: utils/dates.py:23 msgid "jan" msgstr "gen" -#: utils/dates.py:19 +#: utils/dates.py:23 msgid "feb" msgstr "feb" -#: utils/dates.py:19 +#: utils/dates.py:23 msgid "mar" msgstr "mar" -#: utils/dates.py:19 +#: utils/dates.py:23 msgid "apr" msgstr "abr" -#: utils/dates.py:19 +#: utils/dates.py:23 msgid "may" msgstr "mai" -#: utils/dates.py:19 +#: utils/dates.py:23 msgid "jun" msgstr "jun" -#: utils/dates.py:20 +#: utils/dates.py:24 msgid "jul" msgstr "jul" -#: utils/dates.py:20 +#: utils/dates.py:24 msgid "aug" msgstr "ago" -#: utils/dates.py:20 +#: utils/dates.py:24 msgid "sep" msgstr "set" -#: utils/dates.py:20 +#: utils/dates.py:24 msgid "oct" msgstr "oct" -#: utils/dates.py:20 +#: utils/dates.py:24 msgid "nov" msgstr "nov" -#: utils/dates.py:20 +#: utils/dates.py:24 msgid "dec" msgstr "des" -#: utils/dates.py:27 +#: utils/dates.py:31 msgid "Jan." msgstr "Gen." -#: utils/dates.py:27 +#: utils/dates.py:31 msgid "Feb." msgstr "Feb." -#: utils/dates.py:28 +#: utils/dates.py:32 msgid "Aug." msgstr "Ago." -#: utils/dates.py:28 +#: utils/dates.py:32 msgid "Sept." msgstr "Set." -#: utils/dates.py:28 +#: utils/dates.py:32 msgid "Oct." msgstr "Oct." -#: utils/dates.py:28 +#: utils/dates.py:32 msgid "Nov." msgstr "Nov." -#: utils/dates.py:28 +#: utils/dates.py:32 msgid "Dec." msgstr "Des." +#: utils/text.py:127 +msgid "or" +msgstr "o" + #: utils/timesince.py:12 msgid "year" msgid_plural "years" @@ -2861,167 +3296,211 @@ msgid_plural "minutes" msgstr[0] "minut" msgstr[1] "minuts" -#: utils/timesince.py:40 -#, python-format -msgid "%d milliseconds" -msgstr "%d milisegons" - -#: utils/timesince.py:41 +#: utils/timesince.py:39 #, python-format msgid "%(number)d %(type)s" msgstr "%(number)d %(type)s" -#: utils/timesince.py:47 +#: utils/timesince.py:45 #, python-format msgid ", %(number)d %(type)s" msgstr ", %(number)d %(type)s" -#: utils/dateformat.py:40 +#: utils/dateformat.py:41 msgid "p.m." msgstr "p.m." -#: utils/dateformat.py:41 +#: utils/dateformat.py:42 msgid "a.m." msgstr "a.m." -#: utils/dateformat.py:46 +#: utils/dateformat.py:47 msgid "PM" msgstr "PM" -#: utils/dateformat.py:47 +#: utils/dateformat.py:48 msgid "AM" msgstr "AM" -#: utils/dateformat.py:95 +#: utils/dateformat.py:97 msgid "midnight" msgstr "mitja nit" -#: utils/dateformat.py:97 +#: utils/dateformat.py:99 msgid "noon" msgstr "mig dia" -#: utils/translation/trans_real.py:358 +#: utils/translation/trans_real.py:391 msgid "DATE_FORMAT" msgstr "F j, Y" -#: utils/translation/trans_real.py:359 +#: utils/translation/trans_real.py:392 msgid "DATETIME_FORMAT" msgstr "F j, Y, H:i" -#: utils/translation/trans_real.py:360 +#: utils/translation/trans_real.py:393 msgid "TIME_FORMAT" msgstr "H:i" -#: utils/translation/trans_real.py:376 +#: utils/translation/trans_real.py:409 msgid "YEAR_MONTH_FORMAT" msgstr "j de/d' F del Y" -#: utils/translation/trans_real.py:377 +#: utils/translation/trans_real.py:410 msgid "MONTH_DAY_FORMAT" msgstr "j de/d' F del Y" -#: oldforms/__init__.py:392 +#: template/defaultfilters.py:532 +msgid "yes,no,maybe" +msgstr "si,no,potser" + +#: template/defaultfilters.py:561 #, python-format -msgid "Ensure your text is less than %s character." -msgid_plural "Ensure your text is less than %s characters." -msgstr[0] "Asseguris de que el seu texte té menys de %s caracter." -msgstr[1] "Asseguris de que el seu texte té menys de %s caracters." +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "%(size)d byte" +msgstr[1] "%(size)d bytes" -#: oldforms/__init__.py:397 -msgid "Line breaks are not allowed here." -msgstr "No es permeten salts de línia." - -#: oldforms/__init__.py:498 oldforms/__init__.py:571 oldforms/__init__.py:610 +#: template/defaultfilters.py:563 #, python-format -msgid "Select a valid choice; '%(data)s' is not in %(choices)s." -msgstr "Esculli una opció vàlida; %(data)s' no està dintre de %(choices)s." +msgid "%.1f KB" +msgstr "%.1f KB" -#: oldforms/__init__.py:674 -msgid "The submitted file is empty." -msgstr "El fitxer enviat està buit." - -#: oldforms/__init__.py:730 -msgid "Enter a whole number between -32,768 and 32,767." -msgstr "Introdueixi un número enter entre -32,768 i 32,767." - -#: oldforms/__init__.py:740 -msgid "Enter a positive number." -msgstr "Introdueixi un número positiu." - -#: oldforms/__init__.py:750 -msgid "Enter a whole number between 0 and 32,767." -msgstr "Introdueixi un número entre 0 i 32,767." - -#: views/generic/create_update.py:43 +#: template/defaultfilters.py:565 #, python-format -msgid "The %(verbose_name)s was created successfully." -msgstr "El/La %(verbose_name)s s'ha creat amb èxit." +msgid "%.1f MB" +msgstr "%.1f MB" -#: views/generic/create_update.py:117 +#: template/defaultfilters.py:566 #, python-format -msgid "The %(verbose_name)s was updated successfully." -msgstr "El/La %(verbose_name)s s'ha actualtzat amb èxit." +msgid "%.1f GB" +msgstr "%.1f GB" -#: views/generic/create_update.py:184 +#: newforms/fields.py:123 #, python-format -msgid "The %(verbose_name)s was deleted." -msgstr "El %(verbose_name)s s'ha eliminat." +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)." -#: db/models/manipulators.py:307 +#: newforms/fields.py:125 #, python-format -msgid "%(object)s with this %(type)s already exists for the given %(field)s." -msgstr "Ja existeix un %(object)s del tipus %(type)s amb aquest %(field)s." +msgid "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)." -#: db/models/fields/__init__.py:46 +#: newforms/fields.py:151 +#: newforms/fields.py:174 +#: newforms/fields.py:204 #, python-format -msgid "%(optname)s with this %(fieldname)s already exists." -msgstr "Ja existeix %(optname)s amb auqest %(fieldname)s." +msgid "Ensure this value is less than or equal to %s." +msgstr "Aquest valor ha de ser menor o igual a %s." -#: db/models/fields/__init__.py:378 -msgid "This value must be an integer." -msgstr "Aquest valor ha de ser un enter." - -#: db/models/fields/__init__.py:413 -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:434 -msgid "This field cannot be null." -msgstr "Aquest camp no pot ser null (estar buit)." - -#: db/models/fields/__init__.py:597 -msgid "This value must be a decimal number." -msgstr "Aquest valor ha de ser un número decimal." - -#: db/models/fields/__init__.py:700 -msgid "Enter a valid filename." -msgstr "Introdueixi un nom de fitxer vàlid." - -#: db/models/fields/__init__.py:824 -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:54 +#: newforms/fields.py:153 +#: newforms/fields.py:176 +#: newforms/fields.py:206 #, python-format -msgid "Please enter a valid %s." -msgstr "Si us plau, introdueixi un %s vàlid." +msgid "Ensure this value is greater than or equal to %s." +msgstr "Asseguris de que aquest valor sigui superior o igual a %s." -#: db/models/fields/related.py:640 -msgid "Separate multiple IDs with commas." -msgstr "Separi múltiples IDs amb comes." +#: newforms/fields.py:172 +#: newforms/fields.py:199 +msgid "Enter a number." +msgstr "Introdueixi un número." -#: db/models/fields/related.py:642 -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:689 +#: newforms/fields.py:208 #, python-format -msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." -"Please enter valid %(self)s IDs. The values %(value)r are invalid." -msgstr "" -"Si us plau, introdueixi IDs de %(self)s vàlids. El valor %(value)r és " -"invàlid." -"Si us plau, introdueixi IDs de %(self)s vàlids. Els valors %(value)r són " -"invàlids." +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:210 +#, 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:212 +#, 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:245 +#: newforms/fields.py:629 +msgid "Enter a valid date." +msgstr "Introdueixi una data vàlida." + +#: newforms/fields.py:272 +#: newforms/fields.py:631 +msgid "Enter a valid time." +msgstr "Introdueixi una hora vàlida." + +#: newforms/fields.py:308 +msgid "Enter a valid date/time." +msgstr "Introdueixi una data/hora vàlides." + +#: newforms/fields.py:321 +msgid "Enter a valid value." +msgstr "Introdueixi un valor vàlid." + +#: newforms/fields.py:379 +msgid "No file was submitted." +msgstr "No s'ha enviat cap fitxer." + +#: newforms/fields.py:419 +#: newforms/fields.py:444 +msgid "Enter a valid URL." +msgstr "Introdueixi una URL vàlida." + +#: newforms/fields.py:446 +msgid "This URL appears to be a broken link." +msgstr "Aquesta URL sembla ser un enllaç trencat." + +#: newforms/fields.py:497 +#: newforms/models.py:180 +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." + +#: newforms/fields.py:513 +#: newforms/fields.py:589 +#: newforms/models.py:197 +msgid "Enter a list of values." +msgstr "Introdueixi una llista de valors." + +#: newforms/fields.py:519 +#: newforms/models.py:203 +#, 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." + +#~ msgid "" +#~ "This comment was posted by a user who has posted fewer than %(count)s " +#~ "comment:\n" +#~ "\n" +#~ "%(text)sThis comment was posted by a user who has posted fewer than %" +#~ "(count)s comments:\n" +#~ "\n" +#~ "%(text)s" +#~ msgstr "" +#~ "Aquest comentari el va enviar un usuari que ha enviat menys de %(count)s " +#~ "comentari:\n" +#~ "\n" +#~ "%(text)sAquest comentari el va enviar un usuari que ha enviat menys de %" +#~ "(count)s comentaris:\n" +#~ "\n" +#~ "%(text)s" +#~ msgid "AnonymousUser" +#~ msgstr "AnonymousUser" +#~ msgid "" +#~ "Please enter a valid decimal number with a whole part of at most %s digit." +#~ "Please enter a valid decimal number with a whole part of at most %s " +#~ "digits." +#~ msgstr "" +#~ "Si us plau, introdueixi un número decimal vàlid amb la part entera amb " +#~ "com a màxim %s dígit.Si us plau, introdueixi un número decimal vàlid amb " +#~ "la part entera amb com a màxim %s dígits." +#~ msgid "" +#~ "Please enter a valid decimal number with at most %s decimal place.Please " +#~ "enter a valid decimal number with at most %s decimal places." +#~ msgstr "" +#~ "Si us plau, introdueixi un número decimal vàlid amb no més de %s dígit en " +#~ "la part decimal.Si us plau, introdueixi un número decimal vàlid amb no " +#~ "més de %s dígits en la part decimal." +#~ msgid "%d milliseconds" +#~ msgstr "%d milisegons" diff --git a/django/conf/locale/es/LC_MESSAGES/django.mo b/django/conf/locale/es/LC_MESSAGES/django.mo index 3a6f037fefce93ef279ac8eee6f6885f93bdfc6b..28d389b404e5c3fb8400593485d4b41fa7b02ff9 100644 GIT binary patch delta 17716 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 T4!`=yDQx-Z3EX=8+1&pHAj?YD delta 16470 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 bct@XU65u^|X_uCgGi~{`81K1jGXwq){7&R9 diff --git a/django/conf/locale/es/LC_MESSAGES/django.po b/django/conf/locale/es/LC_MESSAGES/django.po index fa04f8fe4c..bf6d4ed6ae 100644 --- a/django/conf/locale/es/LC_MESSAGES/django.po +++ b/django/conf/locale/es/LC_MESSAGES/django.po @@ -6,70 +6,28 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-08-30 23:46-0400\n" -"PO-Revision-Date: 2007-07-14 13:00-0500\n" -"Last-Translator: Mario Gonzalez \n" +"POT-Creation-Date: 2007-09-14 12:41+0200\n" +"PO-Revision-Date: 2007-09-14 14:32+0100\n" +"Last-Translator: Marc Garcia \n" "Language-Team: Castellano \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: db/models/manipulators.py:309 #, python-format msgid "%(object)s with this %(type)s already exists for the given %(field)s." msgstr "%(object)s de este %(type)s ya existen en este %(field)s." -#: db/models/manipulators.py:310 contrib/admin/views/main.py:342 -#: contrib/admin/views/main.py:344 contrib/admin/views/main.py:346 -#: core/validators.py:275 +#: db/models/manipulators.py:310 +#: core/validators.py:283 +#: contrib/admin/views/main.py:342 +#: contrib/admin/views/main.py:344 +#: contrib/admin/views/main.py:346 msgid "and" msgstr "y" -#: db/models/fields/__init__.py:49 -#, python-format -msgid "%(optname)s with this %(fieldname)s already exists." -msgstr "Ya existe %(optname)s con este %(fieldname)s." - -#: db/models/fields/__init__.py:156 db/models/fields/__init__.py:313 -#: db/models/fields/__init__.py:721 db/models/fields/__init__.py:732 -#: newforms/fields.py:92 newforms/fields.py:490 newforms/fields.py:566 -#: newforms/fields.py:577 newforms/models.py:193 oldforms/__init__.py:373 -msgid "This field is required." -msgstr "Este campo es obligatorio." - -#: db/models/fields/__init__.py:411 -msgid "This value must be an integer." -msgstr "Este valor debe ser un entero." - -#: db/models/fields/__init__.py:446 -msgid "This value must be either True or False." -msgstr "Este valor debe ser Verdadero o Falso." - -#: db/models/fields/__init__.py:467 -msgid "This field cannot be null." -msgstr "Este campo no puede estar vacío." - -#: db/models/fields/__init__.py:501 core/validators.py:155 -msgid "Enter a valid date in YYYY-MM-DD format." -msgstr "Introduzca una fecha válida en formato AAAA-MM-DD." - -#: db/models/fields/__init__.py:570 core/validators.py:164 -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." - -#: db/models/fields/__init__.py:631 -msgid "This value must be a decimal number." -msgstr "Este valor debe ser un entero." - -#: db/models/fields/__init__.py:741 -msgid "Enter a valid filename." -msgstr "Introduzca un nombre de fichero válido" - -#: db/models/fields/__init__.py:883 -msgid "This value must be either None, True or False." -msgstr "Este valor debe ser Verdadero o Falso." - #: db/models/fields/related.py:55 #, python-format msgid "Please enter a valid %s." @@ -80,23 +38,67 @@ 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." +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 #, 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." + +#: db/models/fields/__init__.py:52 +#, python-format +msgid "%(optname)s with this %(fieldname)s already exists." +msgstr "Ya existe %(optname)s con este %(fieldname)s." + +#: db/models/fields/__init__.py:159 +#: db/models/fields/__init__.py:316 +#: db/models/fields/__init__.py:724 +#: db/models/fields/__init__.py:735 +#: oldforms/__init__.py:373 +#: newforms/fields.py:93 +#: newforms/fields.py:509 +#: newforms/fields.py:585 +#: newforms/fields.py:596 +#: newforms/models.py:193 +msgid "This field is required." +msgstr "Este campo es obligatorio." + +#: db/models/fields/__init__.py:414 +msgid "This value must be an integer." +msgstr "Este valor debe ser un entero." + +#: db/models/fields/__init__.py:449 +msgid "This value must be either True or False." +msgstr "Este valor debe ser Verdadero o Falso." + +#: db/models/fields/__init__.py:470 +msgid "This field cannot be null." +msgstr "Este campo no puede estar vacío." + +#: db/models/fields/__init__.py:504 +#: core/validators.py:156 +msgid "Enter a valid date in YYYY-MM-DD format." +msgstr "Introduzca una fecha válida en formato AAAA-MM-DD." + +#: db/models/fields/__init__.py:573 +#: core/validators.py:165 +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." + +#: db/models/fields/__init__.py:634 +msgid "This value must be a decimal number." +msgstr "Este valor debe ser un entero." + +#: db/models/fields/__init__.py:744 +msgid "Enter a valid filename." +msgstr "Introduzca un nombre de fichero válido" + +#: db/models/fields/__init__.py:887 +msgid "This value must be either None, True or False." +msgstr "Este valor debe ser Verdadero o Falso." #: conf/global_settings.py:39 msgid "Arabic" @@ -191,511 +193,1389 @@ msgid "Korean" msgstr "Koreano" #: conf/global_settings.py:62 +msgid "Khmer" +msgstr "Khmer" + +#: conf/global_settings.py:63 msgid "Kannada" msgstr "Kannada" -#: conf/global_settings.py:63 +#: conf/global_settings.py:64 msgid "Latvian" msgstr "Latvio" -#: conf/global_settings.py:64 +#: conf/global_settings.py:65 msgid "Macedonian" msgstr "Macedonio" -#: conf/global_settings.py:65 +#: conf/global_settings.py:66 msgid "Dutch" msgstr "Alemán" -#: conf/global_settings.py:66 +#: conf/global_settings.py:67 msgid "Norwegian" msgstr "Noruego" -#: conf/global_settings.py:67 +#: conf/global_settings.py:68 msgid "Polish" msgstr "Polaco" -#: conf/global_settings.py:68 +#: conf/global_settings.py:69 msgid "Portugese" msgstr "Portugés" -#: conf/global_settings.py:69 +#: conf/global_settings.py:70 msgid "Brazilian" msgstr "Brasileño" -#: conf/global_settings.py:70 +#: conf/global_settings.py:71 msgid "Romanian" msgstr "Rumano" -#: conf/global_settings.py:71 +#: conf/global_settings.py:72 msgid "Russian" msgstr "Ruso" -#: conf/global_settings.py:72 +#: conf/global_settings.py:73 msgid "Slovak" msgstr "Eslovaco" -#: conf/global_settings.py:73 +#: conf/global_settings.py:74 msgid "Slovenian" msgstr "Esloveno" -#: conf/global_settings.py:74 +#: conf/global_settings.py:75 msgid "Serbian" msgstr "Serbio" -#: conf/global_settings.py:75 +#: conf/global_settings.py:76 msgid "Swedish" msgstr "Sueco" -#: conf/global_settings.py:76 +#: conf/global_settings.py:77 msgid "Tamil" msgstr "Tamil" -#: conf/global_settings.py:77 +#: conf/global_settings.py:78 msgid "Telugu" msgstr "Telugu" -#: conf/global_settings.py:78 +#: conf/global_settings.py:79 msgid "Turkish" msgstr "Turco" -#: conf/global_settings.py:79 +#: conf/global_settings.py:80 msgid "Ukrainian" msgstr "Ucraniano" -#: conf/global_settings.py:80 +#: conf/global_settings.py:81 msgid "Simplified Chinese" msgstr "Chino simplificado" -#: conf/global_settings.py:81 +#: conf/global_settings.py:82 msgid "Traditional Chinese" msgstr "Chino tradicional" -#: views/generic/create_update.py:43 -#, python-format -msgid "The %(verbose_name)s was created successfully." -msgstr "El %(verbose_name)s se ha creado correctamente." +#: core/validators.py:72 +msgid "This value must contain only letters, numbers and underscores." +msgstr "Este valor debe contener sólo letras, números y guiones bajos." -#: views/generic/create_update.py:117 -#, python-format -msgid "The %(verbose_name)s was updated successfully." -msgstr "Se actualizó con éxito el %(verbose_name)s." +#: 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." -#: views/generic/create_update.py:184 -#, python-format -msgid "The %(verbose_name)s was deleted." -msgstr "El %(verbose_name)s ha sido eliminado." +#: core/validators.py:80 +msgid "This value must contain only letters, numbers, underscores or hyphens." +msgstr "Este valor debe contener sólo letras, números, guiones bajos o medios." -#: utils/dates.py:6 -msgid "Monday" -msgstr "Lunes" +#: core/validators.py:84 +msgid "Uppercase letters are not allowed here." +msgstr "No se admiten letras mayúsculas." -#: utils/dates.py:6 -msgid "Tuesday" -msgstr "Martes" +#: core/validators.py:88 +msgid "Lowercase letters are not allowed here." +msgstr "No se admiten letras minúsculas." -#: utils/dates.py:6 -msgid "Wednesday" -msgstr "Miércoles" +#: core/validators.py:95 +msgid "Enter only digits separated by commas." +msgstr "Introduzca sólo dígitos separados por comas." -#: utils/dates.py:6 -msgid "Thursday" -msgstr "Jueves" +#: core/validators.py:107 +msgid "Enter valid e-mail addresses separated by commas." +msgstr "Introduzca direcciones de correo válidas separadas por comas." -#: utils/dates.py:6 -msgid "Friday" -msgstr "Viernes" +#: core/validators.py:111 +msgid "Please enter a valid IP address." +msgstr "Por favor introduzca una dirección IP válida." -#: utils/dates.py:7 -msgid "Saturday" -msgstr "Sábado" +#: core/validators.py:115 +msgid "Empty values are not allowed here." +msgstr "No se admiten valores vacíos." -#: utils/dates.py:7 -msgid "Sunday" -msgstr "Domingo" +#: core/validators.py:119 +msgid "Non-numeric characters aren't allowed here." +msgstr "No se admiten caracteres no numéricos." -#: utils/dates.py:10 -msgid "Mon" -msgstr "Lun" +#: core/validators.py:123 +msgid "This value can't be comprised solely of digits." +msgstr "Este valor no puede comprender sólo dígitos." -#: utils/dates.py:10 -msgid "Tue" -msgstr "Mar" - -#: utils/dates.py:10 -msgid "Wed" -msgstr "Mie" - -#: utils/dates.py:10 -msgid "Thu" -msgstr "Jue" - -#: utils/dates.py:10 -msgid "Fri" -msgstr "Vie" - -#: utils/dates.py:11 -msgid "Sat" -msgstr "Sab" - -#: utils/dates.py:11 -msgid "Sun" -msgstr "Dom" - -#: utils/dates.py:18 -msgid "January" -msgstr "Enero" - -#: utils/dates.py:18 -msgid "February" -msgstr "Febrero" - -#: utils/dates.py:18 utils/dates.py:31 -msgid "March" -msgstr "Marzo" - -#: utils/dates.py:18 utils/dates.py:31 -msgid "April" -msgstr "Abril" - -#: utils/dates.py:18 utils/dates.py:31 -msgid "May" -msgstr "Mayo" - -#: utils/dates.py:18 utils/dates.py:31 -msgid "June" -msgstr "Junio" - -#: utils/dates.py:19 utils/dates.py:31 -msgid "July" -msgstr "Julio" - -#: utils/dates.py:19 -msgid "August" -msgstr "Agosto" - -#: utils/dates.py:19 -msgid "September" -msgstr "Septiembre" - -#: utils/dates.py:19 -msgid "October" -msgstr "Octubre" - -#: utils/dates.py:19 -msgid "November" -msgstr "Noviembre" - -#: utils/dates.py:20 -msgid "December" -msgstr "Diciembre" - -#: utils/dates.py:23 -msgid "jan" -msgstr "ene" - -#: utils/dates.py:23 -msgid "feb" -msgstr "feb" - -#: utils/dates.py:23 -msgid "mar" -msgstr "mar" - -#: utils/dates.py:23 -msgid "apr" -msgstr "abr" - -#: utils/dates.py:23 -msgid "may" -msgstr "may" - -#: utils/dates.py:23 -msgid "jun" -msgstr "jun" - -#: utils/dates.py:24 -msgid "jul" -msgstr "jul" - -#: utils/dates.py:24 -msgid "aug" -msgstr "ago" - -#: utils/dates.py:24 -msgid "sep" -msgstr "sep" - -#: utils/dates.py:24 -msgid "oct" -msgstr "oct" - -#: utils/dates.py:24 -msgid "nov" -msgstr "nov" - -#: utils/dates.py:24 -msgid "dec" -msgstr "dic" - -#: utils/dates.py:31 -msgid "Jan." -msgstr "Ene." - -#: utils/dates.py:31 -msgid "Feb." -msgstr "Feb." - -#: utils/dates.py:32 -msgid "Aug." -msgstr "Ago." - -#: utils/dates.py:32 -msgid "Sept." -msgstr "Sept." - -#: utils/dates.py:32 -msgid "Oct." -msgstr "Oct." - -#: utils/dates.py:32 -msgid "Nov." -msgstr "Nov." - -#: utils/dates.py:32 -msgid "Dec." -msgstr "Dic." - -#: utils/timesince.py:12 -msgid "year" -msgid_plural "years" -msgstr[0] "año" -msgstr[1] "años" - -#: utils/timesince.py:13 -msgid "month" -msgid_plural "months" -msgstr[0] "mes" -msgstr[1] "meses" - -#: utils/timesince.py:14 -msgid "week" -msgid_plural "weeks" -msgstr[0] "semana" -msgstr[1] "semanas" - -#: utils/timesince.py:15 -msgid "day" -msgid_plural "days" -msgstr[0] "día" -msgstr[1] "días" - -#: utils/timesince.py:16 -msgid "hour" -msgid_plural "hours" -msgstr[0] "hora" -msgstr[1] "horas" - -#: utils/timesince.py:17 -msgid "minute" -msgid_plural "minutes" -msgstr[0] "minuto" -msgstr[1] "minutos" - -#: utils/timesince.py:39 -#, python-format -msgid "%(number)d %(type)s" -msgstr "%(number)d %(type)s" - -#: utils/timesince.py:45 -#, python-format -msgid ", %(number)d %(type)s" -msgstr ", %(number)d %(type)s" - -#: utils/text.py:127 -msgid "or" -msgstr "o" - -#: utils/dateformat.py:41 -msgid "p.m." -msgstr "p.m" - -#: utils/dateformat.py:42 -msgid "a.m." -msgstr "a.m" - -#: utils/dateformat.py:47 -msgid "PM" -msgstr "PM" - -#: utils/dateformat.py:48 -msgid "AM" -msgstr "AM" - -#: utils/dateformat.py:97 -msgid "midnight" -msgstr "media noche" - -#: utils/dateformat.py:99 -msgid "noon" -msgstr "medio día" - -#: utils/translation/trans_real.py:391 -msgid "DATE_FORMAT" -msgstr "j N Y" - -#: utils/translation/trans_real.py:392 -msgid "DATETIME_FORMAT" -msgstr "j N Y P" - -#: utils/translation/trans_real.py:393 -msgid "TIME_FORMAT" -msgstr "P" - -#: utils/translation/trans_real.py:409 -msgid "YEAR_MONTH_FORMAT" -msgstr "F Y" - -#: utils/translation/trans_real.py:410 -msgid "MONTH_DAY_FORMAT" -msgstr "j \\de F" - -#: newforms/fields.py:116 -#, 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)." - -#: newforms/fields.py:118 -#, 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)." - -#: newforms/fields.py:142 core/validators.py:127 +#: core/validators.py:128 +#: newforms/fields.py:149 msgid "Enter a whole number." msgstr "Introduzca un número entero." -#: newforms/fields.py:144 newforms/fields.py:167 newforms/fields.py:197 +#: core/validators.py:132 +msgid "Only alphabetical characters are allowed here." +msgstr "Sólo se admiten caracteres alfabéticos." + +#: core/validators.py:147 +msgid "Year must be 1900 or later." +msgstr "El año debe ser 1900 o posterior." + +#: core/validators.py:151 #, 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." +msgid "Invalid date: %s" +msgstr "Fecha no válida: %s" -#: newforms/fields.py:146 newforms/fields.py:169 newforms/fields.py:199 -#, 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." +#: core/validators.py:161 +msgid "Enter a valid time in HH:MM format." +msgstr "Introduzca una hora válida en formato HH:MM." -#: newforms/fields.py:165 newforms/fields.py:192 -msgid "Enter a number." -msgstr "Introduzca un número." - -#: newforms/fields.py:201 -#, 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:203 -#, 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:205 -#, 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:238 newforms/fields.py:610 -msgid "Enter a valid date." -msgstr "Introduzca una fecha válida." - -#: newforms/fields.py:265 newforms/fields.py:612 -msgid "Enter a valid time." -msgstr "Introduzca una hora válida." - -#: newforms/fields.py:301 -msgid "Enter a valid date/time." -msgstr "Introduzca una fecha/hora válida." - -#: newforms/fields.py:314 -msgid "Enter a valid value." -msgstr "Introduzca un valor correcto." - -#: newforms/fields.py:336 core/validators.py:169 +#: core/validators.py:170 +#: newforms/fields.py:343 msgid "Enter a valid e-mail address." msgstr "Introduzca una dirección de correo electrónico válida" -#: newforms/fields.py:376 oldforms/__init__.py:686 core/validators.py:181 -#: core/validators.py:461 +#: core/validators.py:182 +#: core/validators.py:469 +#: oldforms/__init__.py:686 +#: newforms/fields.py:377 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." -#: newforms/fields.py:378 -msgid "No file was submitted." -msgstr "No se ha enviado ningún fichero" +#: 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." -#: newforms/fields.py:380 oldforms/__init__.py:688 -msgid "The submitted file is empty." -msgstr "El fichero enviado está vacío." - -#: newforms/fields.py:397 core/validators.py:185 -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." - -#: newforms/fields.py:403 newforms/fields.py:425 -msgid "Enter a valid URL." -msgstr "Introduzca una URL válida." - -#: newforms/fields.py:427 -msgid "This URL appears to be a broken link." -msgstr "La URL parece ser un enlace roto." - -#: newforms/fields.py:478 newforms/models.py:180 -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:494 newforms/fields.py:570 newforms/models.py:197 -msgid "Enter a list of values." -msgstr "Introduzca una lista de valores." - -#: newforms/fields.py:500 newforms/models.py:203 +#: core/validators.py:200 #, 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." +msgid "The URL %s does not point to a valid image." +msgstr "La URL %s no apunta a una imagen válida." -#: newforms/widgets.py:188 contrib/admin/filterspecs.py:152 -#: oldforms/__init__.py:591 -msgid "Unknown" -msgstr "Desconocido" +#: 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." -#: newforms/widgets.py:188 contrib/admin/filterspecs.py:145 +#: core/validators.py:212 +#, python-format +msgid "The URL %s does not point to a valid QuickTime video." +msgstr "La URL %s no apunta a un vídeo QuickTime válido." + +#: core/validators.py:216 +msgid "A valid URL is required." +msgstr "Se precisa una URL válida." + +#: core/validators.py:230 +#, python-format +msgid "" +"Valid HTML is required. Specific errors are:\n" +"%s" +msgstr "" +"Se precisa HTML válido. Los errores específicos son:\n" +"%s" + +#: core/validators.py:237 +#, python-format +msgid "Badly formed XML: %s" +msgstr "XML mal formado: %s" + +#: core/validators.py:254 +#, python-format +msgid "Invalid URL: %s" +msgstr "URL no válida: %s" + +#: 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." + +#: core/validators.py:267 +msgid "Enter a valid U.S. state abbreviation." +msgstr "Introduzca una abreviatura válida de estado de los EEUU." + +#: 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] "¡Cuida tu vocabulario! Aquí no admitimos la palabra %s." +msgstr[1] "¡Cuida tu vocabulario! Aquí no admitimos las palabras %s." + +#: core/validators.py:288 +#, python-format +msgid "This field must match the '%s' field." +msgstr "Este campo debe concordar con el campo '%s'." + +#: core/validators.py:307 +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 +msgid "Please enter both fields or leave them both empty." +msgstr "Por favor, rellene ambos campos o deje ambos vacíos." + +#: core/validators.py:335 +#, python-format +msgid "This field must be given if %(field)s is %(value)s" +msgstr "Se debe proporcionar este campo si %(field)s es %(value)s" + +#: core/validators.py:348 +#, python-format +msgid "This field must be given if %(field)s is not %(value)s" +msgstr "Se debe proporcionar este campo si %(field)s no es %(value)s" + +#: core/validators.py:367 +msgid "Duplicate values are not allowed." +msgstr "No se admiten valores duplicados." + +#: core/validators.py:382 +#, python-format +msgid "This value must be between %(lower)s and %(upper)s." +msgstr "Este valor debe estar entre %(lower)s y %(upper)s." + +#: core/validators.py:384 +#, python-format +msgid "This value must be at least %s." +msgstr "Este valor debe ser como mínimo %s." + +#: core/validators.py:386 +#, python-format +msgid "This value must be no more than %s." +msgstr "Este valor no debe ser mayor que %s." + +#: core/validators.py:422 +#, python-format +msgid "This value must be a power of %s." +msgstr "Este valor debe ser una potencia de %s." + +#: core/validators.py:432 +msgid "Please enter a valid decimal number." +msgstr "Por favor, introduzca un número decimal válido." + +#: core/validators.py:439 +#, 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." + +#: core/validators.py:442 +#, 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." + +#: core/validators.py:445 +#, 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." + +#: core/validators.py:453 +msgid "Please enter a valid floating point number." +msgstr "Por favor, introduzca un número decimal válido." + +#: core/validators.py:462 +#, python-format +msgid "Make sure your uploaded file is at least %s bytes big." +msgstr "Asegúrese de que el fichero que envía tiene al menos %s bytes." + +#: core/validators.py:463 +#, python-format +msgid "Make sure your uploaded file is at most %s bytes big." +msgstr "Asegúrese de que el fichero que envía tiene como máximo %s bytes." + +#: core/validators.py:480 +msgid "The format for this field is wrong." +msgstr "El formato de este campo es incorrecto." + +#: core/validators.py:495 +msgid "This field is invalid." +msgstr "Este campo no es válido." + +#: core/validators.py:531 +#, python-format +msgid "Could not retrieve anything from %s." +msgstr "No pude obtener nada de %s." + +#: core/validators.py:534 +#, 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." + +#: core/validators.py:567 +#, 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\".)" + +#: core/validators.py:571 +#, 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\".)" + +#: core/validators.py:576 +#, 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\".)" + +#: core/validators.py:581 +#, 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\".)" + +#: core/validators.py:585 +#, 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\".)" + +#: core/validators.py:590 +#, 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\".)" + +#: 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." + +#: contrib/auth/forms.py:25 +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." + +#: contrib/auth/forms.py:60 +#: contrib/admin/views/decorators.py:10 +msgid "Please enter a correct username and password. Note that both fields are case-sensitive." +msgstr "Por favor, introduzca un correcto nombre de usuario y contraseña. Note que ambos campos son sensibles a mayúsculas/minúsculas." + +#: 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?" + +#: 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." + +#: 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." + +#: contrib/auth/models.py:53 +#: contrib/auth/models.py:73 +msgid "name" +msgstr "nombre" + +#: contrib/auth/models.py:55 +msgid "codename" +msgstr "nombre en código" + +#: contrib/auth/models.py:58 +msgid "permission" +msgstr "permiso" + +#: contrib/auth/models.py:59 +#: contrib/auth/models.py:74 +msgid "permissions" +msgstr "permisos" + +#: contrib/auth/models.py:77 +msgid "group" +msgstr "grupo" + +#: contrib/auth/models.py:78 +#: contrib/auth/models.py:121 +msgid "groups" +msgstr "grupos" + +#: contrib/auth/models.py:111 +msgid "username" +msgstr "nombre de usuario" + +#: contrib/auth/models.py:111 +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:112 +msgid "first name" +msgstr "nombre" + +#: contrib/auth/models.py:113 +msgid "last name" +msgstr "apellidos" + +#: contrib/auth/models.py:114 +msgid "e-mail address" +msgstr "dirección de correo" + +#: contrib/auth/models.py:115 +msgid "password" +msgstr "clave" + +#: contrib/auth/models.py:115 +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:116 +msgid "staff status" +msgstr "es staff" + +#: contrib/auth/models.py:116 +msgid "Designates whether the user can log into this admin site." +msgstr "Indica si el usuario puede entrar en este sitio de administración." + +#: contrib/auth/models.py:117 +msgid "active" +msgstr "activo" + +#: contrib/auth/models.py:117 +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:118 +msgid "superuser status" +msgstr "es superusuario" + +#: contrib/auth/models.py:118 +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:119 +msgid "last login" +msgstr "Último registro" + +#: contrib/auth/models.py:120 +msgid "date joined" +msgstr "fecha de creación" + +#: contrib/auth/models.py:122 +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:123 +msgid "user permissions" +msgstr "permisos" + +#: contrib/auth/models.py:127 +msgid "user" +msgstr "usuario" + +#: contrib/auth/models.py:128 +msgid "users" +msgstr "usuarios" + +#: contrib/auth/models.py:134 +msgid "Personal info" +msgstr "Información personal" + +#: contrib/auth/models.py:135 +msgid "Permissions" +msgstr "Permisos" + +#: contrib/auth/models.py:136 +msgid "Important dates" +msgstr "Fechas importantes" + +#: contrib/auth/models.py:137 +msgid "Groups" +msgstr "Grupos" + +#: contrib/auth/models.py:288 +msgid "message" +msgstr "mensaje" + +#: contrib/auth/views.py:47 +msgid "Logged out" +msgstr "Sesión terminada" + +#: contrib/admin/models.py:17 +msgid "action time" +msgstr "hora de acción" + +#: contrib/admin/models.py:20 +msgid "object id" +msgstr "id de objeto" + +#: contrib/admin/models.py:21 +msgid "object repr" +msgstr "repr de objeto" + +#: contrib/admin/models.py:22 +msgid "action flag" +msgstr "marca de acción" + +#: contrib/admin/models.py:23 +msgid "change message" +msgstr "mensaje de cambio" + +#: contrib/admin/models.py:26 +msgid "log entry" +msgstr "entrada de registro" + +#: contrib/admin/models.py:27 +msgid "log entries" +msgstr "entradas de registro" + +#: contrib/admin/filterspecs.py:42 +#, python-format +msgid "" +"

          By %s:

          \n" +"
            \n" +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 +msgid "All" +msgstr "Todo" + +#: contrib/admin/filterspecs.py:111 +msgid "Any date" +msgstr "Cualquier fecha" + +#: contrib/admin/filterspecs.py:112 +msgid "Today" +msgstr "Hoy" + +#: contrib/admin/filterspecs.py:115 +msgid "Past 7 days" +msgstr "Últimos 7 días" + +#: contrib/admin/filterspecs.py:117 +msgid "This month" +msgstr "Este mes" + +#: contrib/admin/filterspecs.py:119 +msgid "This year" +msgstr "Este año" + +#: contrib/admin/filterspecs.py:145 #: oldforms/__init__.py:591 +#: newforms/widgets.py:188 msgid "Yes" msgstr "Sí" -#: newforms/widgets.py:188 contrib/admin/filterspecs.py:145 +#: contrib/admin/filterspecs.py:145 #: oldforms/__init__.py:591 +#: newforms/widgets.py:188 msgid "No" msgstr "No" -#: contrib/contenttypes/models.py:37 -msgid "python model class name" -msgstr "nombre de módulo python" +#: contrib/admin/filterspecs.py:152 +#: oldforms/__init__.py:591 +#: newforms/widgets.py:188 +msgid "Unknown" +msgstr "Desconocido" -#: contrib/contenttypes/models.py:40 -msgid "content type" -msgstr "tipo de contenido" +#: contrib/admin/views/decorators.py:24 +#: contrib/admin/templates/admin/login.html:25 +msgid "Log in" +msgstr "Identificarse" -#: contrib/contenttypes/models.py:41 -msgid "content types" -msgstr "tipos de contenido" +#: 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: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." + +#: contrib/admin/views/decorators.py:83 +msgid "Usernames cannot contain the '@' character." +msgstr "Los nombres de usuario no pueden contener el carácter '@'." + +#: contrib/admin/views/decorators.py:85 +#, python-format +msgid "Your e-mail address is not your username. Try '%s' instead." +msgstr "Su dirección de correo no es su nombre de usuario. Pruebe con '%s' en su lugar." + +#: contrib/admin/views/main.py:230 +msgid "Site administration" +msgstr "Sitio administrativo" + +#: contrib/admin/views/main.py:264 +#: contrib/admin/views/auth.py:20 +#, 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/main.py:268 +#: contrib/admin/views/main.py:354 +#: contrib/admin/views/auth.py:25 +msgid "You may edit it again below." +msgstr "Puede editarlo de nuevo abajo." + +#: contrib/admin/views/main.py:278 +#: contrib/admin/views/main.py:363 +#, python-format +msgid "You may add another %s below." +msgstr "Puede agregar otro %s abajo." + +#: contrib/admin/views/main.py:296 +#, python-format +msgid "Add %s" +msgstr "Agregar %s" + +#: contrib/admin/views/main.py:342 +#, python-format +msgid "Added %s." +msgstr "Agregado %s." + +#: contrib/admin/views/main.py:344 +#, python-format +msgid "Changed %s." +msgstr "Modificado %s." + +#: contrib/admin/views/main.py:346 +#, python-format +msgid "Deleted %s." +msgstr "Borrado %s." + +#: contrib/admin/views/main.py:349 +msgid "No fields changed." +msgstr "No ha cambiado ningún campo." + +#: contrib/admin/views/main.py:352 +#, 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 +#, 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." + +#: contrib/admin/views/main.py:398 +#, python-format +msgid "Change %s" +msgstr "Modificar %s" + +#: contrib/admin/views/main.py:483 +#, 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 +#, 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 +#, 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 +msgid "Are you sure?" +msgstr "¿Está seguro?" + +#: contrib/admin/views/main.py:545 +#, python-format +msgid "Change history: %s" +msgstr "Modificar histórico: %s" + +#: contrib/admin/views/main.py:579 +#, python-format +msgid "Select %s" +msgstr "Escoja %s" + +#: contrib/admin/views/main.py:579 +#, python-format +msgid "Select %s to change" +msgstr "Escoja %s para modificar" + +#: contrib/admin/views/main.py:780 +msgid "Database error" +msgstr "Erorr en la base de datos" + +#: contrib/admin/views/doc.py:47 +#: contrib/admin/views/doc.py:49 +#: contrib/admin/views/doc.py:51 +msgid "tag:" +msgstr "etiqueta:" + +#: contrib/admin/views/doc.py:78 +#: contrib/admin/views/doc.py:80 +#: contrib/admin/views/doc.py:82 +msgid "filter:" +msgstr "filtro:" + +#: contrib/admin/views/doc.py:136 +#: contrib/admin/views/doc.py:138 +#: contrib/admin/views/doc.py:140 +msgid "view:" +msgstr "vista:" + +#: contrib/admin/views/doc.py:165 +#, python-format +msgid "App %r not found" +msgstr "Aplicación %r no encontrada" + +#: contrib/admin/views/doc.py:172 +#, 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 +#, 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 +msgid "model:" +msgstr "modelo:" + +#: contrib/admin/views/doc.py:215 +#, python-format +msgid "related `%(label)s.%(name)s` objects" +msgstr "los objetos relacionados `%(label)s.%(name)s`" + +#: contrib/admin/views/doc.py:220 +#, python-format +msgid "all %s" +msgstr "todo %s" + +#: contrib/admin/views/doc.py:225 +#, python-format +msgid "number of %s" +msgstr "número de %s" + +#: contrib/admin/views/doc.py:230 +#, 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 +msgid "Integer" +msgstr "Entero" + +#: contrib/admin/views/doc.py:293 +msgid "Boolean (Either True or False)" +msgstr "Booleano (Verdadero o Falso)" + +#: contrib/admin/views/doc.py:294 +#: contrib/admin/views/doc.py:313 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Cadena (máximo %(max_length)s)" + +#: contrib/admin/views/doc.py:295 +msgid "Comma-separated integers" +msgstr "Enteros separados por comas" + +#: contrib/admin/views/doc.py:296 +msgid "Date (without time)" +msgstr "Fecha (sin hora)" + +#: contrib/admin/views/doc.py:297 +msgid "Date (with time)" +msgstr "Fecha (con hora)" + +#: contrib/admin/views/doc.py:298 +msgid "Decimal number" +msgstr "Número decimal" + +#: contrib/admin/views/doc.py:299 +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 +msgid "File path" +msgstr "Ruta de fichero" + +#: contrib/admin/views/doc.py:302 +msgid "Floating point number" +msgstr "Número decimal" + +#: contrib/admin/views/doc.py:306 +#: contrib/comments/models.py:85 +msgid "IP address" +msgstr "Dirección IP" + +#: contrib/admin/views/doc.py:308 +msgid "Boolean (Either True, False or None)" +msgstr "Booleano (Verdadero, Falso o Nulo)" + +#: contrib/admin/views/doc.py:309 +msgid "Relation to parent model" +msgstr "Relación con el modelo padre" + +#: contrib/admin/views/doc.py:310 +msgid "Phone number" +msgstr "Número de teléfono" + +#: contrib/admin/views/doc.py:315 +msgid "Text" +msgstr "Texto" + +#: contrib/admin/views/doc.py:316 +msgid "Time" +msgstr "Hora" + +#: contrib/admin/views/doc.py:317 +#: contrib/flatpages/models.py:7 +msgid "URL" +msgstr "URL" + +#: contrib/admin/views/doc.py:318 +msgid "U.S. state (two uppercase letters)" +msgstr "Estado de los EEUU (dos letras mayúsculas)" + +#: contrib/admin/views/doc.py:319 +msgid "XML text" +msgstr "Texto XML" + +#: contrib/admin/views/doc.py:345 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "%s no parece ser un objeto urlpattern" + +#: contrib/admin/views/auth.py:31 +msgid "Add user" +msgstr "Añadir usuario" + +#: contrib/admin/views/auth.py:58 +msgid "Password changed successfully." +msgstr "La clave se ha cambiado exitosamente." + +#: contrib/admin/views/auth.py:65 +#, python-format +msgid "Change password: %s" +msgstr "Cambiar clave: %s" + +#: contrib/admin/templatetags/admin_list.py:254 +msgid "All dates" +msgstr "Todas las fechas" + +#: contrib/admin/templates/admin/pagination.html:10 +msgid "Show all" +msgstr "Mostrarlo todo" + +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +msgid "Documentation" +msgstr "Documentación" + +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/admin/auth/user/change_password.html:15 +#: contrib/admin/templates/admin/auth/user/change_password.html:46 +#: contrib/admin/templates/admin_doc/template_filter_index.html:5 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +#: contrib/admin/templates/admin_doc/template_tag_index.html:5 +#: contrib/admin/templates/admin_doc/index.html:4 +#: contrib/admin/templates/admin_doc/model_detail.html:3 +#: contrib/admin/templates/admin_doc/missing_docutils.html:4 +#: contrib/admin/templates/admin_doc/template_detail.html:4 +#: contrib/admin/templates/admin_doc/view_index.html:5 +#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/view_detail.html:4 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +msgid "Change password" +msgstr "Cambiar clave" + +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/admin_doc/template_filter_index.html:5 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +#: contrib/admin/templates/admin_doc/template_tag_index.html:5 +#: contrib/admin/templates/admin_doc/index.html:4 +#: contrib/admin/templates/admin_doc/model_detail.html:3 +#: contrib/admin/templates/admin_doc/missing_docutils.html:4 +#: contrib/admin/templates/admin_doc/template_detail.html:4 +#: contrib/admin/templates/admin_doc/view_index.html:5 +#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/view_detail.html:4 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/comments/templates/comments/form.html:6 +msgid "Log out" +msgstr "Terminar sesión" + +#: contrib/admin/templates/admin/delete_confirmation.html:6 +#: contrib/admin/templates/admin/change_form.html:13 +#: contrib/admin/templates/admin/change_list.html:6 +#: contrib/admin/templates/admin/object_history.html:5 +#: contrib/admin/templates/admin/500.html:4 +#: contrib/admin/templates/admin/invalid_setup.html:4 +#: contrib/admin/templates/admin/base.html:30 +#: contrib/admin/templates/admin/auth/user/change_password.html:12 +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admin/templates/registration/logged_out.html:4 +#: contrib/admin/templates/registration/password_reset_done.html:4 +#: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admin/templates/registration/password_change_done.html:4 +msgid "Home" +msgstr "Inicio" + +#: contrib/admin/templates/admin/delete_confirmation.html:9 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Delete" +msgstr "Eliminar" + +#: contrib/admin/templates/admin/delete_confirmation.html:14 +#, python-format +msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:" +msgstr "Eliminar el %(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:21 +#, python-format +msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:" +msgstr "¿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:26 +msgid "Yes, I'm sure" +msgstr "Sí, estoy seguro" + +#: contrib/admin/templates/admin/404.html:4 +#: contrib/admin/templates/admin/404.html:8 +msgid "Page not found" +msgstr "Página no encontrada" + +#: contrib/admin/templates/admin/404.html:10 +msgid "We're sorry, but the requested page could not be found." +msgstr "Lo sentimos, pero no se encuentra la página solicitada." + +#: contrib/admin/templates/admin/change_form.html:15 +#: contrib/admin/templates/admin/index.html:28 +msgid "Add" +msgstr "Agregar" + +#: contrib/admin/templates/admin/change_form.html:21 +#: contrib/admin/templates/admin/object_history.html:5 +msgid "History" +msgstr "Histórico" + +#: contrib/admin/templates/admin/change_form.html:22 +msgid "View on site" +msgstr "Ver en el sitio" + +#: contrib/admin/templates/admin/change_form.html:32 +#: contrib/admin/templates/admin/auth/user/change_password.html:24 +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Por favor, corrija el siguiente error." +msgstr[1] "Por favor, corrija los siguientes errores." + +#: contrib/admin/templates/admin/change_form.html:50 +msgid "Ordering" +msgstr "Ordenación" + +#: contrib/admin/templates/admin/change_form.html:53 +msgid "Order:" +msgstr "Orden:" + +#: contrib/admin/templates/admin/filter.html:2 +#, python-format +msgid " By %(filter_title)s " +msgstr " Por %(filter_title)s " + +#: contrib/admin/templates/admin/submit_line.html:4 +msgid "Save as new" +msgstr "Grabar como nuevo" + +#: contrib/admin/templates/admin/submit_line.html:5 +msgid "Save and add another" +msgstr "Grabar y añadir otro" + +#: contrib/admin/templates/admin/submit_line.html:6 +msgid "Save and continue editing" +msgstr "Grabar y continuar editando" + +#: contrib/admin/templates/admin/submit_line.html:7 +msgid "Save" +msgstr "Grabar" + +#: contrib/admin/templates/admin/change_list.html:12 +#, python-format +msgid "Add %(name)s" +msgstr "Agregar %(name)s" + +#: contrib/admin/templates/admin/index.html:17 +#, python-format +msgid "Models available in the %(name)s application." +msgstr "Modelos disponibles en la aplicación %(name)s." + +#: contrib/admin/templates/admin/index.html:18 +#, python-format +msgid "%(name)s" +msgstr "%(name)s" + +#: contrib/admin/templates/admin/index.html:34 +msgid "Change" +msgstr "Modificar" + +#: contrib/admin/templates/admin/index.html:44 +msgid "You don't have permission to edit anything." +msgstr "No tiene permiso para editar nada." + +#: contrib/admin/templates/admin/index.html:52 +msgid "Recent Actions" +msgstr "Acciones recientes" + +#: contrib/admin/templates/admin/index.html:53 +msgid "My Actions" +msgstr "Mis acciones" + +#: contrib/admin/templates/admin/index.html:57 +msgid "None available" +msgstr "Ninguno disponible" + +#: contrib/admin/templates/admin/base_site.html:4 +msgid "Django site admin" +msgstr "Sitio de administración de Django" + +#: contrib/admin/templates/admin/base_site.html:7 +msgid "Django administration" +msgstr "Administración de Django" + +#: contrib/admin/templates/admin/object_history.html:18 +msgid "Date/time" +msgstr "Fecha/hora" + +#: contrib/admin/templates/admin/object_history.html:19 +msgid "User" +msgstr "Usuario" + +#: contrib/admin/templates/admin/object_history.html:20 +msgid "Action" +msgstr "Acción" + +#: contrib/admin/templates/admin/object_history.html:26 +msgid "DATE_WITH_TIME_FULL" +msgstr "j M Y P" + +#: contrib/admin/templates/admin/object_history.html:36 +msgid "This object doesn't have a change history. It probably wasn't added via this admin site." +msgstr "Este objeto no tiene histórico de cambios. Probablemente no fue añadido usando este sitio de administración." + +#: contrib/admin/templates/admin/500.html:4 +msgid "Server error" +msgstr "Error del servidor" + +#: contrib/admin/templates/admin/500.html:6 +msgid "Server error (500)" +msgstr "Error del servidor (500)" + +#: contrib/admin/templates/admin/500.html:9 +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." + +#: 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." + +#: contrib/admin/templates/admin/search_form.html:8 +msgid "Go" +msgstr "Buscar" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "1 result" +msgid_plural "%(counter)s results" +msgstr[0] "1 resultado" +msgstr[1] "%(counter)s resultados" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "%(full_result_count)s total" +msgstr "%(full_result_count)s total" + +#: contrib/admin/templates/admin/filters.html:4 +msgid "Filter" +msgstr "Filtro" + +#: contrib/admin/templates/admin/login.html:17 +#: contrib/comments/templates/comments/form.html:6 +#: contrib/comments/templates/comments/form.html:8 +msgid "Username:" +msgstr "Usuario:" + +#: contrib/admin/templates/admin/login.html:20 +#: contrib/comments/templates/comments/form.html:8 +msgid "Password:" +msgstr "Clave:" + +#: contrib/admin/templates/admin/base.html:25 +msgid "Welcome," +msgstr "Bienvenido," + +#: 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." + +#: contrib/admin/templates/admin/auth/user/add_form.html:12 +msgid "Username" +msgstr "Nombre de usuario" + +#: contrib/admin/templates/admin/auth/user/add_form.html:18 +#: contrib/admin/templates/admin/auth/user/change_password.html:34 +msgid "Password" +msgstr "Contraseña" + +#: contrib/admin/templates/admin/auth/user/add_form.html:23 +#: contrib/admin/templates/admin/auth/user/change_password.html:39 +msgid "Password (again)" +msgstr "Contraseña (de nuevo)" + +#: contrib/admin/templates/admin/auth/user/add_form.html:24 +#: contrib/admin/templates/admin/auth/user/change_password.html:40 +msgid "Enter the same password as above, for verification." +msgstr "Introduzca la misma contraseña que arriba, para verificación" + +#: contrib/admin/templates/admin/auth/user/change_password.html:28 +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Introduzca una nueva contraseña para el usuario %(username)s." + +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +msgid "Bookmarklets" +msgstr "Bookmarklets" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:5 +msgid "Documentation bookmarklets" +msgstr "Bookmarklets de documentación" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:9 +msgid "" +"\n" +"

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

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

              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" +"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" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:19 +msgid "Documentation for this page" +msgstr "Documentación de esta página" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:20 +msgid "Jumps you from any page to the documentation for the view that generates that page." +msgstr "Le lleva desde cualquier página a la documentación de la vista que la genera." + +#: contrib/admin/templates/admin_doc/bookmarklets.html:22 +msgid "Show object ID" +msgstr "Mostrar ID de objeto" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:23 +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:25 +msgid "Edit this object (current window)" +msgstr "Editar este objeto (ventana actual)" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:26 +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." + +#: contrib/admin/templates/admin_doc/bookmarklets.html:28 +msgid "Edit this object (new window)" +msgstr "Editar este objeto (nueva ventana)" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:29 +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." + +#: contrib/admin/templates/widget/date_time.html:3 +msgid "Date:" +msgstr "Fecha:" + +#: contrib/admin/templates/widget/date_time.html:4 +msgid "Time:" +msgstr "Hora:" + +#: contrib/admin/templates/widget/file.html:2 +msgid "Currently:" +msgstr "Actualmente:" + +#: contrib/admin/templates/widget/file.html:3 +msgid "Change:" +msgstr "Modificar:" + +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:6 +#: contrib/admin/templates/registration/password_reset_form.html:10 +#: contrib/admin/templates/registration/password_reset_done.html:4 +msgid "Password reset" +msgstr "Recuperar clave" + +#: 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." + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "E-mail address:" +msgstr "Dirección de correo electrónico:" + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "Reset my password" +msgstr "Recuperar mi clave" + +#: contrib/admin/templates/registration/password_reset_email.html:2 +msgid "You're receiving this e-mail because you requested a password reset" +msgstr "Está recibiendo este mensaje debido a que solicitó recuperar la clave" + +#: contrib/admin/templates/registration/password_reset_email.html:3 +#, python-format +msgid "for your user account at %(site_name)s" +msgstr "de su cuenta de usuario en %(site_name)s." + +#: contrib/admin/templates/registration/password_reset_email.html:5 +#, python-format +msgid "Your new password is: %(new_password)s" +msgstr "Su nueva clave es: %(new_password)s" + +#: contrib/admin/templates/registration/password_reset_email.html:7 +msgid "Feel free to change this password by going to this page:" +msgstr "Puede cambiarla accediendo a esta página:" + +#: contrib/admin/templates/registration/password_reset_email.html:11 +msgid "Your username, in case you've forgotten:" +msgstr "Su nombre de usuario, en caso de haberlo olvidado:" + +#: contrib/admin/templates/registration/password_reset_email.html:13 +msgid "Thanks for using our site!" +msgstr "¡Gracias por usar nuestro sitio!" + +#: contrib/admin/templates/registration/password_reset_email.html:15 +#, python-format +msgid "The %(site_name)s team" +msgstr "El equipo de %(site_name)s" + +#: contrib/admin/templates/registration/logged_out.html:8 +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Gracias por el tiempo que ha dedicado al sitio web hoy." + +#: contrib/admin/templates/registration/logged_out.html:10 +msgid "Log in again" +msgstr "Identificarse de nuevo" + +#: contrib/admin/templates/registration/password_reset_done.html:6 +#: contrib/admin/templates/registration/password_reset_done.html:10 +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." + +#: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admin/templates/registration/password_change_form.html:6 +#: contrib/admin/templates/registration/password_change_form.html:10 +#: contrib/admin/templates/registration/password_change_done.html:4 +msgid "Password change" +msgstr "Cambio de clave" + +#: contrib/admin/templates/registration/password_change_form.html:12 +msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." +msgstr "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:17 +msgid "Old password:" +msgstr "Clave antigua:" + +#: contrib/admin/templates/registration/password_change_form.html:19 +msgid "New password:" +msgstr "Clave nueva:" + +#: contrib/admin/templates/registration/password_change_form.html:21 +msgid "Confirm password:" +msgstr "Confirme clave:" + +#: contrib/admin/templates/registration/password_change_form.html:23 +msgid "Change my password" +msgstr "Cambiar mi clave" + +#: contrib/admin/templates/registration/password_change_done.html:6 +#: contrib/admin/templates/registration/password_change_done.html:10 +msgid "Password change successful" +msgstr "Cambio de clave exitoso" + +#: contrib/admin/templates/registration/password_change_done.html:12 +msgid "Your password was changed." +msgstr "Su clave ha sido cambiada." + +#: contrib/sites/models.py:33 +msgid "domain name" +msgstr "nombre de dominio" + +#: contrib/sites/models.py:34 +msgid "display name" +msgstr "nombre para mostrar" + +#: contrib/sites/models.py:38 +msgid "site" +msgstr "sitio" + +#: contrib/sites/models.py:39 +msgid "sites" +msgstr "sitios" #: contrib/humanize/templatetags/humanize.py:20 msgid "th" @@ -782,220 +1662,61 @@ msgstr "mañana" msgid "yesterday" msgstr "ayer" -#: contrib/auth/views.py:47 -msgid "Logged out" -msgstr "Sesión terminada" +#: 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." -#: contrib/auth/models.py:53 contrib/auth/models.py:73 -msgid "name" -msgstr "nombre" +#: contrib/flatpages/models.py:9 +msgid "title" +msgstr "título" -#: contrib/auth/models.py:55 -msgid "codename" -msgstr "nombre en código" +#: contrib/flatpages/models.py:10 +msgid "content" +msgstr "contenido" -#: contrib/auth/models.py:58 -msgid "permission" -msgstr "permiso" +#: contrib/flatpages/models.py:11 +msgid "enable comments" +msgstr "admitir comentarios" -#: contrib/auth/models.py:59 contrib/auth/models.py:74 -msgid "permissions" -msgstr "permisos" +#: contrib/flatpages/models.py:12 +msgid "template name" +msgstr "nombre de plantilla" -#: contrib/auth/models.py:77 -msgid "group" -msgstr "grupo" +#: 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'." -#: contrib/auth/models.py:78 contrib/auth/models.py:121 -msgid "groups" -msgstr "grupos" +#: contrib/flatpages/models.py:14 +msgid "registration required" +msgstr "debe estar registrado" -#: contrib/auth/models.py:111 -msgid "username" -msgstr "nombre de usuario" +#: contrib/flatpages/models.py:14 +msgid "If this is checked, only logged-in users will be able to view the page." +msgstr "Si está marcado, sólo los usuarios registrados podrán ver la página." -#: contrib/auth/models.py:111 -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/flatpages/models.py:18 +msgid "flat page" +msgstr "página estática" -#: contrib/auth/models.py:112 -msgid "first name" -msgstr "nombre" - -#: contrib/auth/models.py:113 -msgid "last name" -msgstr "apellidos" - -#: contrib/auth/models.py:114 -msgid "e-mail address" -msgstr "dirección de correo" - -#: contrib/auth/models.py:115 -msgid "password" -msgstr "clave" - -#: contrib/auth/models.py:115 -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:116 -msgid "staff status" -msgstr "es staff" - -#: contrib/auth/models.py:116 -msgid "Designates whether the user can log into this admin site." -msgstr "Indica si el usuario puede entrar en este sitio de administración." - -#: contrib/auth/models.py:117 -msgid "active" -msgstr "activo" - -#: contrib/auth/models.py:117 -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:118 -msgid "superuser status" -msgstr "es superusuario" - -#: contrib/auth/models.py:118 -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:119 -msgid "last login" -msgstr "Último registro" - -#: contrib/auth/models.py:120 -msgid "date joined" -msgstr "fecha de creación" - -#: contrib/auth/models.py:122 -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:123 -msgid "user permissions" -msgstr "permisos" - -#: contrib/auth/models.py:127 -msgid "user" -msgstr "usuario" - -#: contrib/auth/models.py:128 -msgid "users" -msgstr "usuarios" - -#: contrib/auth/models.py:134 -msgid "Personal info" -msgstr "Información personal" - -#: contrib/auth/models.py:135 -msgid "Permissions" -msgstr "Permisos" - -#: contrib/auth/models.py:136 -msgid "Important dates" -msgstr "Fechas importantes" - -#: contrib/auth/models.py:137 -msgid "Groups" -msgstr "Grupos" - -#: contrib/auth/models.py:288 -msgid "message" -msgstr "mensaje" - -#: 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." - -#: contrib/auth/forms.py:25 -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." - -#: contrib/auth/forms.py:60 contrib/admin/views/decorators.py:10 -msgid "" -"Please enter a correct username and password. Note that both fields are case-" -"sensitive." -msgstr "" -"Por favor, introduzca un correcto nombre de usuario y contraseña. Note que " -"ambos campos son sensibles a mayúsculas/minúsculas." - -#: 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?" - -#: 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." - -#: 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." +#: contrib/flatpages/models.py:19 +msgid "flat pages" +msgstr "páginas estáticas" #: 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" @@ -1005,7 +1726,8 @@ msgstr "redirección" msgid "redirects" msgstr "redirecciones" -#: contrib/comments/models.py:67 contrib/comments/models.py:169 +#: contrib/comments/models.py:67 +#: contrib/comments/models.py:169 msgid "object ID" msgstr "ID de objeto" @@ -1013,7 +1735,8 @@ msgstr "ID de objeto" msgid "headline" msgstr "encabezado" -#: contrib/comments/models.py:69 contrib/comments/models.py:90 +#: contrib/comments/models.py:69 +#: contrib/comments/models.py:90 #: contrib/comments/models.py:170 msgid "comment" msgstr "comentario" @@ -1054,35 +1777,30 @@ msgstr "calificación 8" msgid "is valid rating" msgstr "es calificación válida" -#: contrib/comments/models.py:83 contrib/comments/models.py:172 +#: contrib/comments/models.py:83 +#: contrib/comments/models.py:172 msgid "date/time submitted" msgstr "fecha/hora de envío" -#: contrib/comments/models.py:84 contrib/comments/models.py:173 +#: contrib/comments/models.py:84 +#: contrib/comments/models.py:173 msgid "is public" msgstr "es público" -#: contrib/comments/models.py:85 contrib/admin/views/doc.py:306 -msgid "IP address" -msgstr "Dirección IP" - #: contrib/comments/models.py:86 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\"." +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 msgid "comments" msgstr "comentarios" -#: contrib/comments/models.py:134 contrib/comments/models.py:213 +#: contrib/comments/models.py:134 +#: contrib/comments/models.py:213 msgid "Content object" msgstr "Objeto contenido" @@ -1200,30 +1918,25 @@ msgid "No voting for yourself" msgstr "No puedes votarte tú mismo" #: 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" @@ -1251,57 +1964,18 @@ msgstr "No se proporcionó uno o más de los siguientes campos requeridos" #: contrib/comments/views/comments.py:197 #: contrib/comments/views/comments.py:287 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:207 #: contrib/comments/views/comments.py:293 -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:258 #: contrib/comments/views/comments.py:322 msgid "The comment form didn't provide either 'preview' or 'post'" msgstr "El formulario de comentario no proporcionó 'previsualizar' ni 'enviar'" -#: contrib/comments/templates/comments/form.html:6 -#: contrib/comments/templates/comments/form.html:8 -#: contrib/admin/templates/admin/login.html:17 -msgid "Username:" -msgstr "Usuario:" - -#: contrib/comments/templates/comments/form.html:6 -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/object_history.html:3 -#: contrib/admin/templates/admin/change_form.html:10 -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: contrib/admin/templates/admin/base.html:25 -#: contrib/admin/templates/admin/auth/user/change_password.html:9 -#: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 -#: contrib/admin/templates/admin_doc/view_detail.html:4 -#: contrib/admin/templates/admin_doc/bookmarklets.html:4 -#: contrib/admin/templates/admin_doc/template_detail.html:4 -#: contrib/admin/templates/admin_doc/template_tag_index.html:5 -#: contrib/admin/templates/admin_doc/missing_docutils.html:4 -#: contrib/admin/templates/admin_doc/view_index.html:5 -#: contrib/admin/templates/admin_doc/model_detail.html:3 -#: contrib/admin/templates/admin_doc/index.html:4 -#: contrib/admin/templates/admin_doc/model_index.html:5 -#: contrib/admin/templates/admin_doc/template_filter_index.html:5 -msgid "Log out" -msgstr "Terminar sesión" - -#: contrib/comments/templates/comments/form.html:8 -#: contrib/admin/templates/admin/login.html:20 -msgid "Password:" -msgstr "Clave:" - #: contrib/comments/templates/comments/form.html:8 msgid "Forgotten your password?" msgstr "¿Has olvidado tu contraseña?" @@ -1338,946 +2012,276 @@ msgstr "Previsualizar comentario" msgid "Your name:" msgstr "Tu nombre:" -#: contrib/flatpages/models.py:7 contrib/admin/views/doc.py:317 -msgid "URL" -msgstr "URL" - -#: 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." - -#: contrib/flatpages/models.py:9 -msgid "title" -msgstr "título" - -#: contrib/flatpages/models.py:10 -msgid "content" -msgstr "contenido" - -#: contrib/flatpages/models.py:11 -msgid "enable comments" -msgstr "admitir comentarios" - -#: contrib/flatpages/models.py: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'." - -#: contrib/flatpages/models.py:14 -msgid "registration required" -msgstr "debe estar registrado" - -#: contrib/flatpages/models.py:14 -msgid "If this is checked, only logged-in users will be able to view the page." -msgstr "Si está marcado, sólo los usuarios registrados podrán ver la página." - -#: contrib/flatpages/models.py:18 -msgid "flat page" -msgstr "página estática" - -#: contrib/flatpages/models.py:19 -msgid "flat pages" -msgstr "páginas estáticas" - -#: contrib/sessions/models.py:68 -msgid "session key" -msgstr "clave de sesión" - -#: contrib/sessions/models.py:69 -msgid "session data" -msgstr "datos de sesión" - -#: contrib/sessions/models.py:70 -msgid "expire date" -msgstr "fecha de caducidad" - -#: contrib/sessions/models.py:74 -msgid "session" -msgstr "sesión" - -#: contrib/sessions/models.py:75 -msgid "sessions" -msgstr "sesiones" - -#: contrib/sites/models.py:15 -msgid "domain name" -msgstr "nombre de dominio" - -#: contrib/sites/models.py:16 -msgid "display name" -msgstr "nombre para mostrar" - -#: contrib/sites/models.py:20 -msgid "site" -msgstr "sitio" - -#: contrib/sites/models.py:21 -msgid "sites" -msgstr "sitios" - -#: contrib/admin/filterspecs.py:42 -#, python-format -msgid "" -"

              By %s:

              \n" -"
                \n" -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 -msgid "All" -msgstr "Todo" - -#: contrib/admin/filterspecs.py:111 -msgid "Any date" -msgstr "Cualquier fecha" - -#: contrib/admin/filterspecs.py:112 -msgid "Today" -msgstr "Hoy" - -#: contrib/admin/filterspecs.py:115 -msgid "Past 7 days" -msgstr "Últimos 7 días" - -#: contrib/admin/filterspecs.py:117 -msgid "This month" -msgstr "Este mes" - -#: contrib/admin/filterspecs.py:119 -msgid "This year" -msgstr "Este año" - -#: contrib/admin/models.py:17 -msgid "action time" -msgstr "hora de acción" - -#: contrib/admin/models.py:20 -msgid "object id" -msgstr "id de objeto" - -#: contrib/admin/models.py:21 -msgid "object repr" -msgstr "repr de objeto" - -#: contrib/admin/models.py:22 -msgid "action flag" -msgstr "marca de acción" - -#: contrib/admin/models.py:23 -msgid "change message" -msgstr "mensaje de cambio" - -#: contrib/admin/models.py:26 -msgid "log entry" -msgstr "entrada de registro" - -#: contrib/admin/models.py:27 -msgid "log entries" -msgstr "entradas de registro" - -#: contrib/admin/templatetags/admin_list.py:254 -msgid "All dates" -msgstr "Todas las fechas" - -#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:264 -#, 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 -msgid "You may edit it again below." -msgstr "Puede editarlo de nuevo abajo." - -#: contrib/admin/views/auth.py:31 -msgid "Add user" -msgstr "Añadir usuario" - -#: contrib/admin/views/auth.py:58 -msgid "Password changed successfully." -msgstr "La clave se ha cambiado exitosamente." - -#: contrib/admin/views/auth.py:65 -#, python-format -msgid "Change password: %s" -msgstr "Cambiar clave: %s" - -#: contrib/admin/views/main.py:230 -msgid "Site administration" -msgstr "Sitio administrativo" - -#: contrib/admin/views/main.py:278 contrib/admin/views/main.py:363 -#, python-format -msgid "You may add another %s below." -msgstr "Puede agregar otro %s abajo." - -#: contrib/admin/views/main.py:296 -#, python-format -msgid "Add %s" -msgstr "Agregar %s" - -#: contrib/admin/views/main.py:342 -#, python-format -msgid "Added %s." -msgstr "Agregado %s." - -#: contrib/admin/views/main.py:344 -#, python-format -msgid "Changed %s." -msgstr "Modificado %s." - -#: contrib/admin/views/main.py:346 -#, python-format -msgid "Deleted %s." -msgstr "Borrado %s." - -#: contrib/admin/views/main.py:349 -msgid "No fields changed." -msgstr "No ha cambiado ningún campo." - -#: contrib/admin/views/main.py:352 -#, 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 -#, 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." - -#: contrib/admin/views/main.py:398 -#, python-format -msgid "Change %s" -msgstr "Modificar %s" - -#: contrib/admin/views/main.py:483 -#, 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 -#, 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 -#, 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 -msgid "Are you sure?" -msgstr "¿Está seguro?" - -#: contrib/admin/views/main.py:545 -#, python-format -msgid "Change history: %s" -msgstr "Modificar histórico: %s" - -#: contrib/admin/views/main.py:579 -#, python-format -msgid "Select %s" -msgstr "Escoja %s" - -#: contrib/admin/views/main.py:579 -#, python-format -msgid "Select %s to change" -msgstr "Escoja %s para modificar" - -#: contrib/admin/views/main.py:780 -msgid "Database error" -msgstr "Erorr en la base de datos" - -#: contrib/admin/views/decorators.py:24 -#: contrib/admin/templates/admin/login.html:25 -msgid "Log in" -msgstr "Identificarse" - -#: 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: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." - -#: contrib/admin/views/decorators.py:83 -msgid "Usernames cannot contain the '@' character." -msgstr "Los nombres de usuario no pueden contener el carácter '@'." - -#: contrib/admin/views/decorators.py:85 -#, python-format -msgid "Your e-mail address is not your username. Try '%s' instead." -msgstr "" -"Su dirección de correo no es su nombre de usuario. Pruebe con '%s' en su " -"lugar." - -#: contrib/admin/views/doc.py:47 contrib/admin/views/doc.py:49 -#: contrib/admin/views/doc.py:51 -msgid "tag:" -msgstr "etiqueta:" - -#: contrib/admin/views/doc.py:78 contrib/admin/views/doc.py:80 -#: contrib/admin/views/doc.py:82 -msgid "filter:" -msgstr "filtro:" - -#: contrib/admin/views/doc.py:136 contrib/admin/views/doc.py:138 -#: contrib/admin/views/doc.py:140 -msgid "view:" -msgstr "vista:" - -#: contrib/admin/views/doc.py:165 -#, python-format -msgid "App %r not found" -msgstr "Aplicación %r no encontrada" - -#: contrib/admin/views/doc.py:172 -#, 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 -#, 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 -msgid "model:" -msgstr "modelo:" - -#: contrib/admin/views/doc.py:215 -#, python-format -msgid "related `%(label)s.%(name)s` objects" -msgstr "los objetos relacionados `%(label)s.%(name)s`" - -#: contrib/admin/views/doc.py:220 -#, python-format -msgid "all %s" -msgstr "todo %s" - -#: contrib/admin/views/doc.py:225 -#, python-format -msgid "number of %s" -msgstr "número de %s" - -#: contrib/admin/views/doc.py:230 -#, 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 -msgid "Integer" -msgstr "Entero" - -#: contrib/admin/views/doc.py:293 -msgid "Boolean (Either True or False)" -msgstr "Booleano (Verdadero o Falso)" - -#: contrib/admin/views/doc.py:294 contrib/admin/views/doc.py:313 -#, python-format -msgid "String (up to %(max_length)s)" -msgstr "Cadena (máximo %(max_length)s)" - -#: contrib/admin/views/doc.py:295 -msgid "Comma-separated integers" -msgstr "Enteros separados por comas" - -#: contrib/admin/views/doc.py:296 -msgid "Date (without time)" -msgstr "Fecha (sin hora)" - -#: contrib/admin/views/doc.py:297 -msgid "Date (with time)" -msgstr "Fecha (con hora)" - -#: contrib/admin/views/doc.py:298 -msgid "Decimal number" -msgstr "Número decimal" - -#: contrib/admin/views/doc.py:299 -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 -msgid "File path" -msgstr "Ruta de fichero" - -#: contrib/admin/views/doc.py:302 -msgid "Floating point number" -msgstr "Número decimal" - -#: contrib/admin/views/doc.py:308 -msgid "Boolean (Either True, False or None)" -msgstr "Booleano (Verdadero, Falso o Nulo)" - -#: contrib/admin/views/doc.py:309 -msgid "Relation to parent model" -msgstr "Relación con el modelo padre" - -#: contrib/admin/views/doc.py:310 -msgid "Phone number" -msgstr "Número de teléfono" - -#: contrib/admin/views/doc.py:315 -msgid "Text" -msgstr "Texto" - -#: contrib/admin/views/doc.py:316 -msgid "Time" -msgstr "Hora" - -#: contrib/admin/views/doc.py:318 -msgid "U.S. state (two uppercase letters)" -msgstr "Estado de los EEUU (dos letras mayúsculas)" - -#: contrib/admin/views/doc.py:319 -msgid "XML text" -msgstr "Texto XML" - -#: contrib/admin/views/doc.py:345 -#, python-format -msgid "%s does not appear to be a urlpattern object" -msgstr "%s no parece ser un objeto urlpattern" - -#: contrib/admin/templates/widget/file.html:2 -msgid "Currently:" -msgstr "Actualmente:" - -#: contrib/admin/templates/widget/file.html:3 -msgid "Change:" -msgstr "Modificar:" - -#: contrib/admin/templates/widget/date_time.html:3 -msgid "Date:" -msgstr "Fecha:" - -#: contrib/admin/templates/widget/date_time.html:4 -msgid "Time:" -msgstr "Hora:" - -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/object_history.html:3 -#: contrib/admin/templates/admin/change_form.html:10 -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: contrib/admin/templates/admin/base.html:25 -#: contrib/admin/templates/admin/auth/user/change_password.html:9 -#: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 -#: contrib/admin/templates/admin_doc/bookmarklets.html:3 -msgid "Documentation" -msgstr "Documentación" - -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/object_history.html:3 -#: contrib/admin/templates/admin/change_form.html:10 -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: contrib/admin/templates/admin/base.html:25 -#: contrib/admin/templates/admin/auth/user/change_password.html:9 -#: contrib/admin/templates/admin/auth/user/change_password.html:15 -#: contrib/admin/templates/admin/auth/user/change_password.html:46 -#: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 -#: contrib/admin/templates/admin_doc/view_detail.html:4 -#: contrib/admin/templates/admin_doc/bookmarklets.html:4 -#: contrib/admin/templates/admin_doc/template_detail.html:4 -#: contrib/admin/templates/admin_doc/template_tag_index.html:5 -#: contrib/admin/templates/admin_doc/missing_docutils.html:4 -#: contrib/admin/templates/admin_doc/view_index.html:5 -#: contrib/admin/templates/admin_doc/model_detail.html:3 -#: contrib/admin/templates/admin_doc/index.html:4 -#: contrib/admin/templates/admin_doc/model_index.html:5 -#: contrib/admin/templates/admin_doc/template_filter_index.html:5 -msgid "Change password" -msgstr "Cambiar clave" - -#: contrib/admin/templates/admin/change_list.html:6 -#: contrib/admin/templates/admin/object_history.html:5 -#: contrib/admin/templates/admin/500.html:4 -#: contrib/admin/templates/admin/invalid_setup.html:4 -#: contrib/admin/templates/admin/change_form.html:13 -#: contrib/admin/templates/admin/delete_confirmation.html:6 -#: contrib/admin/templates/admin/base.html:30 -#: contrib/admin/templates/admin/auth/user/change_password.html:12 -#: contrib/admin/templates/registration/password_change_done.html:4 -#: contrib/admin/templates/registration/password_reset_form.html:4 -#: contrib/admin/templates/registration/logged_out.html:4 -#: contrib/admin/templates/registration/password_reset_done.html:4 -#: contrib/admin/templates/registration/password_change_form.html:4 -#: contrib/admin/templates/admin_doc/bookmarklets.html:3 -msgid "Home" -msgstr "Inicio" - -#: contrib/admin/templates/admin/change_list.html:12 -#, python-format -msgid "Add %(name)s" -msgstr "Agregar %(name)s" - -#: contrib/admin/templates/admin/filter.html:2 -#, python-format -msgid " By %(filter_title)s " -msgstr " Por %(filter_title)s " - -#: contrib/admin/templates/admin/object_history.html:5 -#: contrib/admin/templates/admin/change_form.html:21 -msgid "History" -msgstr "Histórico" - -#: contrib/admin/templates/admin/object_history.html:18 -msgid "Date/time" -msgstr "Fecha/hora" - -#: contrib/admin/templates/admin/object_history.html:19 -msgid "User" -msgstr "Usuario" - -#: contrib/admin/templates/admin/object_history.html:20 -msgid "Action" -msgstr "Acción" - -#: contrib/admin/templates/admin/object_history.html:26 -msgid "DATE_WITH_TIME_FULL" -msgstr "j M Y P" - -#: contrib/admin/templates/admin/object_history.html:36 -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Este objeto no tiene histórico de cambios. Probablemente no fue añadido " -"usando este sitio de administración." - -#: contrib/admin/templates/admin/search_form.html:8 -msgid "Go" -msgstr "Buscar" - -#: contrib/admin/templates/admin/search_form.html:10 -#, python-format -msgid "1 result" -msgid_plural "%(counter)s results" -msgstr[0] "1 resultado" -msgstr[1] "%(counter)s resultados" - -#: contrib/admin/templates/admin/search_form.html:10 -#, python-format -msgid "%(full_result_count)s total" -msgstr "%(full_result_count)s total" - -#: contrib/admin/templates/admin/pagination.html:10 -msgid "Show all" -msgstr "Mostrarlo todo" - -#: contrib/admin/templates/admin/base_site.html:4 -msgid "Django site admin" -msgstr "Sitio de administración de Django" - -#: contrib/admin/templates/admin/base_site.html:7 -msgid "Django administration" -msgstr "Administración de Django" - -#: contrib/admin/templates/admin/500.html:4 -msgid "Server error" -msgstr "Error del servidor" - -#: contrib/admin/templates/admin/500.html:6 -msgid "Server error (500)" -msgstr "Error del servidor (500)" - -#: contrib/admin/templates/admin/500.html:9 -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." - -#: 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." - -#: contrib/admin/templates/admin/index.html:17 -#, python-format -msgid "Models available in the %(name)s application." -msgstr "Modelos disponibles en la aplicación %(name)s." - -#: contrib/admin/templates/admin/index.html:18 -#, python-format -msgid "%(name)s" -msgstr "%(name)s" - -#: contrib/admin/templates/admin/index.html:28 -#: contrib/admin/templates/admin/change_form.html:15 -msgid "Add" -msgstr "Agregar" - -#: contrib/admin/templates/admin/index.html:34 -msgid "Change" -msgstr "Modificar" - -#: contrib/admin/templates/admin/index.html:44 -msgid "You don't have permission to edit anything." -msgstr "No tiene permiso para editar nada." - -#: contrib/admin/templates/admin/index.html:52 -msgid "Recent Actions" -msgstr "Acciones recientes" - -#: contrib/admin/templates/admin/index.html:53 -msgid "My Actions" -msgstr "Mis acciones" - -#: contrib/admin/templates/admin/index.html:57 -msgid "None available" -msgstr "Ninguno disponible" - -#: contrib/admin/templates/admin/404.html:4 -#: contrib/admin/templates/admin/404.html:8 -msgid "Page not found" -msgstr "Página no encontrada" - -#: contrib/admin/templates/admin/404.html:10 -msgid "We're sorry, but the requested page could not be found." -msgstr "Lo sentimos, pero no se encuentra la página solicitada." - -#: contrib/admin/templates/admin/filters.html:4 -msgid "Filter" -msgstr "Filtro" - -#: contrib/admin/templates/admin/change_form.html:22 -msgid "View on site" -msgstr "Ver en el sitio" - -#: contrib/admin/templates/admin/change_form.html:32 -#: contrib/admin/templates/admin/auth/user/change_password.html:24 -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Por favor, corrija el siguiente error." -msgstr[1] "Por favor, corrija los siguientes errores." - -#: contrib/admin/templates/admin/change_form.html:50 -msgid "Ordering" -msgstr "Ordenación" - -#: contrib/admin/templates/admin/change_form.html:53 -msgid "Order:" -msgstr "Orden:" - -#: contrib/admin/templates/admin/delete_confirmation.html:9 -#: contrib/admin/templates/admin/submit_line.html:3 -msgid "Delete" -msgstr "Eliminar" - -#: contrib/admin/templates/admin/delete_confirmation.html:14 -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Eliminar el %(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:21 -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"¿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:26 -msgid "Yes, I'm sure" -msgstr "Sí, estoy seguro" - -#: contrib/admin/templates/admin/base.html:25 -msgid "Welcome," -msgstr "Bienvenido," - -#: contrib/admin/templates/admin/submit_line.html:4 -msgid "Save as new" -msgstr "Grabar como nuevo" - -#: contrib/admin/templates/admin/submit_line.html:5 -msgid "Save and add another" -msgstr "Grabar y añadir otro" - -#: contrib/admin/templates/admin/submit_line.html:6 -msgid "Save and continue editing" -msgstr "Grabar y continuar editando" - -#: contrib/admin/templates/admin/submit_line.html:7 -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." - -#: contrib/admin/templates/admin/auth/user/add_form.html:12 -msgid "Username" -msgstr "Nombre de usuario" - -#: contrib/admin/templates/admin/auth/user/add_form.html:18 -#: contrib/admin/templates/admin/auth/user/change_password.html:34 -msgid "Password" -msgstr "Contraseña" - -#: contrib/admin/templates/admin/auth/user/add_form.html:23 -#: contrib/admin/templates/admin/auth/user/change_password.html:39 -msgid "Password (again)" -msgstr "Contraseña (de nuevo)" - -#: contrib/admin/templates/admin/auth/user/add_form.html:24 -#: contrib/admin/templates/admin/auth/user/change_password.html:40 -msgid "Enter the same password as above, for verification." -msgstr "Introduzca la misma contraseña que arriba, para verificación" - -#: contrib/admin/templates/admin/auth/user/change_password.html:28 -#, python-format -msgid "Enter a new password for the user %(username)s." -msgstr "" -"Introduzca una nueva contraseña para el usuario %(username)s." - -#: contrib/admin/templates/registration/password_change_done.html:4 -#: contrib/admin/templates/registration/password_change_form.html:4 -#: contrib/admin/templates/registration/password_change_form.html:6 -#: contrib/admin/templates/registration/password_change_form.html:10 -msgid "Password change" -msgstr "Cambio de clave" - -#: contrib/admin/templates/registration/password_change_done.html:6 -#: contrib/admin/templates/registration/password_change_done.html:10 -msgid "Password change successful" -msgstr "Cambio de clave exitoso" - -#: contrib/admin/templates/registration/password_change_done.html:12 -msgid "Your password was changed." -msgstr "Su clave ha sido cambiada." - -#: contrib/admin/templates/registration/password_reset_form.html:4 -#: contrib/admin/templates/registration/password_reset_form.html:6 -#: contrib/admin/templates/registration/password_reset_form.html:10 -#: contrib/admin/templates/registration/password_reset_done.html:4 -msgid "Password reset" -msgstr "Recuperar clave" - -#: 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." - -#: contrib/admin/templates/registration/password_reset_form.html:16 -msgid "E-mail address:" -msgstr "Dirección de correo electrónico:" - -#: contrib/admin/templates/registration/password_reset_form.html:16 -msgid "Reset my password" -msgstr "Recuperar mi clave" - -#: contrib/admin/templates/registration/logged_out.html:8 -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Gracias por el tiempo que ha dedicado al sitio web hoy." - -#: contrib/admin/templates/registration/logged_out.html:10 -msgid "Log in again" -msgstr "Identificarse de nuevo" - -#: contrib/admin/templates/registration/password_reset_done.html:6 -#: contrib/admin/templates/registration/password_reset_done.html:10 -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." - -#: contrib/admin/templates/registration/password_change_form.html:12 -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"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:17 -msgid "Old password:" -msgstr "Clave antigua:" - -#: contrib/admin/templates/registration/password_change_form.html:19 -msgid "New password:" -msgstr "Clave nueva:" - -#: contrib/admin/templates/registration/password_change_form.html:21 -msgid "Confirm password:" -msgstr "Confirme clave:" - -#: contrib/admin/templates/registration/password_change_form.html:23 -msgid "Change my password" -msgstr "Cambiar mi clave" - -#: contrib/admin/templates/registration/password_reset_email.html:2 -msgid "You're receiving this e-mail because you requested a password reset" -msgstr "Está recibiendo este mensaje debido a que solicitó recuperar la clave" - -#: contrib/admin/templates/registration/password_reset_email.html:3 -#, python-format -msgid "for your user account at %(site_name)s" -msgstr "de su cuenta de usuario en %(site_name)s." - -#: contrib/admin/templates/registration/password_reset_email.html:5 -#, python-format -msgid "Your new password is: %(new_password)s" -msgstr "Su nueva clave es: %(new_password)s" - -#: contrib/admin/templates/registration/password_reset_email.html:7 -msgid "Feel free to change this password by going to this page:" -msgstr "Puede cambiarla accediendo a esta página:" - -#: contrib/admin/templates/registration/password_reset_email.html:11 -msgid "Your username, in case you've forgotten:" -msgstr "Su nombre de usuario, en caso de haberlo olvidado:" - -#: contrib/admin/templates/registration/password_reset_email.html:13 -msgid "Thanks for using our site!" -msgstr "¡Gracias por usar nuestro sitio!" - -#: contrib/admin/templates/registration/password_reset_email.html:15 -#, python-format -msgid "The %(site_name)s team" -msgstr "El equipo de %(site_name)s" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:3 -msgid "Bookmarklets" -msgstr "Bookmarklets" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:5 -msgid "Documentation bookmarklets" -msgstr "Bookmarklets de documentación" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:9 -msgid "" -"\n" -"

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

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

                  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" -"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" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:19 -msgid "Documentation for this page" -msgstr "Documentación de esta página" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:20 -msgid "" -"Jumps you from any page to the documentation for the view that generates " -"that page." -msgstr "" -"Le lleva desde cualquier página a la documentación de la vista que la genera." - -#: contrib/admin/templates/admin_doc/bookmarklets.html:22 -msgid "Show object ID" -msgstr "Mostrar ID de objeto" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:23 -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:25 -msgid "Edit this object (current window)" -msgstr "Editar este objeto (ventana actual)" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:26 -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." - -#: contrib/admin/templates/admin_doc/bookmarklets.html:28 -msgid "Edit this object (new window)" -msgstr "Editar este objeto (nueva ventana)" - -#: contrib/admin/templates/admin_doc/bookmarklets.html:29 -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." - -#: 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/fr/forms.py:17 contrib/localflavor/fi/forms.py:14 +#: contrib/localflavor/ar/forms.py:30 +#: contrib/localflavor/ar/forms.py:38 +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 +msgid "This field requires only numbers." +msgstr "Este campo sólo acepta números." + +#: contrib/localflavor/ar/forms.py:64 +msgid "This field requires 7 or 8 digits." +msgstr "Este campo necesita 7 o 8 dígitos." + +#: contrib/localflavor/ar/forms.py:75 +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 +msgid "Invalid CUIT." +msgstr "CUIT inválido." + +#: contrib/localflavor/au/forms.py:18 +msgid "Enter a 4 digit post code." +msgstr "Introduzca un código postal de 4 dígitos." + +#: contrib/localflavor/br/forms.py:23 +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 +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: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 +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:147 +msgid "Invalid CNPJ number." +msgstr "Número CNPJ inválido" + +#: contrib/localflavor/ch/forms.py:18 +#: contrib/localflavor/no/forms.py:14 +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/ch_states.py:5 +msgid "Aargau" +msgstr "Aargau" + +#: contrib/localflavor/ch/ch_states.py:6 +msgid "Appenzell Innerrhoden" +msgstr "Appenzell Innerrhoden" + +#: contrib/localflavor/ch/ch_states.py:7 +msgid "Appenzell Ausserrhoden" +msgstr "Appenzell Ausserrhoden" + +#: contrib/localflavor/ch/ch_states.py:8 +msgid "Basel-Stadt" +msgstr "Basel-Stadt" + +#: contrib/localflavor/ch/ch_states.py:9 +msgid "Basel-Land" +msgstr "Basel-Land" + +#: contrib/localflavor/ch/ch_states.py:10 +msgid "Berne" +msgstr "Berne" + +#: contrib/localflavor/ch/ch_states.py:11 +msgid "Fribourg" +msgstr "Fribourg" + +#: contrib/localflavor/ch/ch_states.py:12 +msgid "Geneva" +msgstr "Geneva" + +#: contrib/localflavor/ch/ch_states.py:13 +msgid "Glarus" +msgstr "Glarus" + +#: contrib/localflavor/ch/ch_states.py:14 +msgid "Graubuenden" +msgstr "Graubuenden" + +#: contrib/localflavor/ch/ch_states.py:15 +msgid "Jura" +msgstr "Jura" + +#: contrib/localflavor/ch/ch_states.py:16 +msgid "Lucerne" +msgstr "Lucerne" + +#: contrib/localflavor/ch/ch_states.py:17 +msgid "Neuchatel" +msgstr "Neuchatel" + +#: contrib/localflavor/ch/ch_states.py:18 +msgid "Nidwalden" +msgstr "Nidwalden" + +#: contrib/localflavor/ch/ch_states.py:19 +msgid "Obwalden" +msgstr "Obwalden" + +#: contrib/localflavor/ch/ch_states.py:20 +msgid "Schaffhausen" +msgstr "Schaffhausen" + +#: contrib/localflavor/ch/ch_states.py:21 +msgid "Schwyz" +msgstr "Schwyz" + +#: contrib/localflavor/ch/ch_states.py:22 +msgid "Solothurn" +msgstr "Solothurn" + +#: contrib/localflavor/ch/ch_states.py:23 +msgid "St. Gallen" +msgstr "St. Gallen" + +#: contrib/localflavor/ch/ch_states.py:24 +msgid "Thurgau" +msgstr "Thurgau" + +#: contrib/localflavor/ch/ch_states.py:25 +msgid "Ticino" +msgstr "Ticino" + +#: contrib/localflavor/ch/ch_states.py:26 +msgid "Uri" +msgstr "Uri" + +#: contrib/localflavor/ch/ch_states.py:27 +msgid "Valais" +msgstr "Valais" + +#: contrib/localflavor/ch/ch_states.py:28 +msgid "Vaud" +msgstr "Vaud" + +#: contrib/localflavor/ch/ch_states.py:29 +msgid "Zug" +msgstr "Zug" + +#: contrib/localflavor/ch/ch_states.py:30 +msgid "Zurich" +msgstr "Zurich" + +#: contrib/localflavor/cl/forms.py:32 +msgid "Enter valid a 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/de/forms.py:16 +#: contrib/localflavor/fi/forms.py:14 +#: contrib/localflavor/fr/forms.py:17 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/de_states.py:5 +msgid "Baden-Wuerttemberg" +msgstr "Baden-Wuerttemberg" + +#: contrib/localflavor/de/de_states.py:6 +msgid "Bavaria" +msgstr "Bavaria" + +#: contrib/localflavor/de/de_states.py:7 +msgid "Berlin" +msgstr "Berlín" + +#: contrib/localflavor/de/de_states.py:8 +msgid "Brandenburg" +msgstr "Brandenburg" + +#: contrib/localflavor/de/de_states.py:9 +msgid "Bremen" +msgstr "Bremen" + +#: contrib/localflavor/de/de_states.py:10 +msgid "Hamburg" +msgstr "Hamburg" + +#: contrib/localflavor/de/de_states.py:11 +msgid "Hessen" +msgstr "Hessen" + +#: contrib/localflavor/de/de_states.py:12 +msgid "Mecklenburg-Western Pomerania" +msgstr "Mecklenburg-Western Pomerania" + +#: contrib/localflavor/de/de_states.py:13 +msgid "Lower Saxony" +msgstr "Lower Saxony" + +#: contrib/localflavor/de/de_states.py:14 +msgid "North Rhine-Westphalia" +msgstr "North Rhine-Westphalia" + +#: contrib/localflavor/de/de_states.py:15 +msgid "Rhineland-Palatinate" +msgstr "Rhineland-Palatinate" + +#: contrib/localflavor/de/de_states.py:16 +msgid "Saarland" +msgstr "Saarland" + +#: contrib/localflavor/de/de_states.py:17 +msgid "Saxony" +msgstr "Saxony" + +#: contrib/localflavor/de/de_states.py:18 +msgid "Saxony-Anhalt" +msgstr "Saxony-Anhalt" + +#: contrib/localflavor/de/de_states.py:19 +msgid "Schleswig-Holstein" +msgstr "Schleswig-Holstein" + +#: contrib/localflavor/de/de_states.py:20 +msgid "Thuringia" +msgstr "Thuringia" + +#: contrib/localflavor/fi/forms.py:40 +#: contrib/localflavor/fi/forms.py:45 +msgid "Enter a valid Finnish social security number." +msgstr "Introduzca un número de seguro social finlandés válido." + +#: contrib/localflavor/it/forms.py:16 +msgid "Enter a valid zip code." +msgstr "Introduzca un código postal válido." + +#: contrib/localflavor/it/forms.py:41 +msgid "Enter a valid Social Security number." +msgstr "Introduzca un número de Seguro Social válido." + +#: contrib/localflavor/it/forms.py:68 +msgid "Enter a valid VAT number." +msgstr "Introduzca un número VAT válido." + +#: contrib/localflavor/jp/forms.py:21 +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." + #: contrib/localflavor/jp/jp_prefectures.py:4 msgid "Hokkaido" msgstr "Hokkaido" @@ -2466,309 +2470,153 @@ msgstr "Kagoshima" msgid "Okinawa" msgstr "Okinawa" -#: contrib/localflavor/jp/forms.py:21 -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." +#: contrib/localflavor/nl/forms.py:25 +msgid "Enter a valid postal code" +msgstr "Introduzca un código postal válido" -#: contrib/localflavor/br/forms.py:18 -msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Introduzca un código postal en el formato XXXX-XXXX." +#: contrib/localflavor/nl/forms.py:53 +msgid "Enter a valid phone number" +msgstr "Introduzca un número de teléfono válido" -#: 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/nl/forms.py:76 +msgid "Enter a valid SoFi number" +msgstr "Introduzca un número SoFi válido" -#: contrib/localflavor/br/forms.py:72 -msgid "This field requires only numbers." -msgstr "Este campo sólo acepta números." +#: contrib/localflavor/nl/nl_provinces.py:4 +msgid "Drente" +msgstr "Drente" -#: contrib/localflavor/br/forms.py:74 -msgid "This field requires at most 11 digits or 14 characters." -msgstr "Este campo necesita al menos 11 o 14 caracteres" +#: contrib/localflavor/nl/nl_provinces.py:5 +msgid "Flevoland" +msgstr "Flevoland" -#: contrib/localflavor/br/forms.py:84 -msgid "Invalid CPF number." -msgstr "Número CPF inválido." +#: contrib/localflavor/nl/nl_provinces.py:6 +msgid "Friesland" +msgstr "Friesland" -#: contrib/localflavor/br/forms.py:106 -msgid "This field requires at least 14 digits" -msgstr "Este campo necesita 14 dígitos como máximo" +#: contrib/localflavor/nl/nl_provinces.py:7 +msgid "Gelderland" +msgstr "Gelderland" -#: contrib/localflavor/br/forms.py:116 -msgid "Invalid CNPJ number." -msgstr "Número CNPJ inválido" +#: contrib/localflavor/nl/nl_provinces.py:8 +msgid "Groningen" +msgstr "Groningen" -#: contrib/localflavor/it/forms.py:16 -msgid "Enter a valid zip code." -msgstr "Introduzca un código postal válido." +#: contrib/localflavor/nl/nl_provinces.py:9 +msgid "Limburg" +msgstr "Limburg" -#: contrib/localflavor/it/forms.py:41 -msgid "Enter a valid Social Security number." -msgstr "Introduzca un número de Seguro Social válido." +#: contrib/localflavor/nl/nl_provinces.py:10 +msgid "Noord-Brabant" +msgstr "Noord-Brabant" -#: contrib/localflavor/it/forms.py:68 -msgid "Enter a valid VAT number." -msgstr "Introduzca un número VAT válido." +#: contrib/localflavor/nl/nl_provinces.py:11 +msgid "Noord-Holland" +msgstr "Noord-Holland" -#: contrib/localflavor/no/forms.py:14 contrib/localflavor/ch/forms.py:18 -msgid "Enter a zip code in the format XXXX." -msgstr "Introduzca un código postal en el formato XXXX." +#: contrib/localflavor/nl/nl_provinces.py:12 +msgid "Overijssel" +msgstr "Overijssel" + +#: contrib/localflavor/nl/nl_provinces.py:13 +msgid "Utrecht" +msgstr "Utrecht" + +#: contrib/localflavor/nl/nl_provinces.py:14 +msgid "Zeeland" +msgstr "Zeeland" + +#: contrib/localflavor/nl/nl_provinces.py:15 +msgid "Zuid-Holland" +msgstr "Zuid-Holland" #: contrib/localflavor/no/forms.py:35 msgid "Enter a valid Norwegian social security number." msgstr "Introduzca un número de seguro social de Noruega válido." -#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45 -msgid "Enter a valid Finnish social security number." -msgstr "Introduzca un número de seguro social finlandés válido." +#: contrib/localflavor/pl/forms.py:53 +msgid "National Identification Number consists of 11 digits." +msgstr "Número de Identificación Nacional consiste en 11 dígitos" -#: contrib/localflavor/de/de_states.py:5 -msgid "Baden-Wuerttemberg" -msgstr "Baden-Wuerttemberg" +#: contrib/localflavor/pl/forms.py:59 +msgid "Wrong checksum for the National Identification Number." +msgstr "El Número de Identificación Nacional es incorrecto." -#: contrib/localflavor/de/de_states.py:6 -msgid "Bavaria" -msgstr "Bavaria" +#: contrib/localflavor/pl/forms.py:71 +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/de/de_states.py:7 -msgid "Berlin" -msgstr "Berlín" +#: contrib/localflavor/pl/forms.py:82 +msgid "Enter a postal code in the format XX-XXX." +msgstr "Introduzca un código postal en el formato XX-XXX." -#: contrib/localflavor/de/de_states.py:8 -msgid "Brandenburg" -msgstr "Brandenburg" +#: contrib/localflavor/pl/pl_voivodeships.py:8 +msgid "Lower Silesia" +msgstr "Lower Silesia" -#: contrib/localflavor/de/de_states.py:9 -msgid "Bremen" -msgstr "Bremen" +#: contrib/localflavor/pl/pl_voivodeships.py:9 +msgid "Kuyavia-Pomerania" +msgstr "Kuyavia-Pomerania" -#: contrib/localflavor/de/de_states.py:10 -msgid "Hamburg" -msgstr "Hamburg" +#: contrib/localflavor/pl/pl_voivodeships.py:10 +msgid "Lublin" +msgstr "Lublin" -#: contrib/localflavor/de/de_states.py:11 -msgid "Hessen" -msgstr "Hessen" +#: contrib/localflavor/pl/pl_voivodeships.py:11 +msgid "Lubusz" +msgstr "Lubusz" -#: contrib/localflavor/de/de_states.py:12 -msgid "Mecklenburg-Western Pomerania" -msgstr "Mecklenburg-Western Pomerania" +#: contrib/localflavor/pl/pl_voivodeships.py:12 +msgid "Lodz" +msgstr "Lodz" -#: contrib/localflavor/de/de_states.py:13 -msgid "Lower Saxony" -msgstr "Lower Saxony" +#: contrib/localflavor/pl/pl_voivodeships.py:13 +msgid "Lesser Poland" +msgstr "Lesser Poland" -#: contrib/localflavor/de/de_states.py:14 -msgid "North Rhine-Westphalia" -msgstr "North Rhine-Westphalia" +#: contrib/localflavor/pl/pl_voivodeships.py:14 +msgid "Masovia" +msgstr "Masovia" -#: contrib/localflavor/de/de_states.py:15 -msgid "Rhineland-Palatinate" -msgstr "Rhineland-Palatinate" +#: contrib/localflavor/pl/pl_voivodeships.py:15 +msgid "Opole" +msgstr "Opole" -#: contrib/localflavor/de/de_states.py:16 -msgid "Saarland" -msgstr "Saarland" +#: contrib/localflavor/pl/pl_voivodeships.py:16 +msgid "Subcarpatia" +msgstr "Subcarpatia" -#: contrib/localflavor/de/de_states.py:17 -msgid "Saxony" -msgstr "Saxony" +#: contrib/localflavor/pl/pl_voivodeships.py:17 +msgid "Podlasie" +msgstr "Podlasie" -#: contrib/localflavor/de/de_states.py:18 -msgid "Saxony-Anhalt" -msgstr "Saxony-Anhalt" +#: contrib/localflavor/pl/pl_voivodeships.py:18 +msgid "Pomerania" +msgstr "Pomerania" -#: contrib/localflavor/de/de_states.py:19 -msgid "Schleswig-Holstein" -msgstr "Schleswig-Holstein" +#: contrib/localflavor/pl/pl_voivodeships.py:19 +msgid "Silesia" +msgstr "Silesia" -#: contrib/localflavor/de/de_states.py:20 -msgid "Thuringia" -msgstr "Thuringia" +#: contrib/localflavor/pl/pl_voivodeships.py:20 +msgid "Swietokrzyskie" +msgstr "Swietokrzyskie" -#: 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/pl/pl_voivodeships.py:21 +msgid "Warmia-Masuria" +msgstr "Warmia-Masuria" -#: contrib/localflavor/au/forms.py:18 -msgid "Enter a 4 digit post code." -msgstr "Introduzca un código postal de 4 dígitos." +#: contrib/localflavor/pl/pl_voivodeships.py:22 +msgid "Greater Poland" +msgstr "Greater Poland" -#: contrib/localflavor/us/forms.py:18 -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/pl/pl_voivodeships.py:23 +msgid "West Pomerania" +msgstr "West Pomerania" -#: contrib/localflavor/us/forms.py:51 -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" - -#: 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." - -#: contrib/localflavor/is_/forms.py:31 -msgid "The Icelandic identification number is not valid." -msgstr "El número de identificación de Islandia no es válido." - -#: contrib/localflavor/cl/forms.py:32 -msgid "Enter valid a 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/ch/ch_states.py:5 -msgid "Aargau" -msgstr "Aargau" - -#: contrib/localflavor/ch/ch_states.py:6 -msgid "Appenzell Innerrhoden" -msgstr "Appenzell Innerrhoden" - -#: contrib/localflavor/ch/ch_states.py:7 -msgid "Appenzell Ausserrhoden" -msgstr "Appenzell Ausserrhoden" - -#: contrib/localflavor/ch/ch_states.py:8 -msgid "Basel-Stadt" -msgstr "Basel-Stadt" - -#: contrib/localflavor/ch/ch_states.py:9 -msgid "Basel-Land" -msgstr "Basel-Land" - -#: contrib/localflavor/ch/ch_states.py:10 -msgid "Berne" -msgstr "Berne" - -#: contrib/localflavor/ch/ch_states.py:11 -msgid "Fribourg" -msgstr "Fribourg" - -#: contrib/localflavor/ch/ch_states.py:12 -msgid "Geneva" -msgstr "Geneva" - -#: contrib/localflavor/ch/ch_states.py:13 -msgid "Glarus" -msgstr "Glarus" - -#: contrib/localflavor/ch/ch_states.py:14 -msgid "Graubuenden" -msgstr "Graubuenden" - -#: contrib/localflavor/ch/ch_states.py:15 -msgid "Jura" -msgstr "Jura" - -#: contrib/localflavor/ch/ch_states.py:16 -msgid "Lucerne" -msgstr "Lucerne" - -#: contrib/localflavor/ch/ch_states.py:17 -msgid "Neuchatel" -msgstr "Neuchatel" - -#: contrib/localflavor/ch/ch_states.py:18 -msgid "Nidwalden" -msgstr "Nidwalden" - -#: contrib/localflavor/ch/ch_states.py:19 -msgid "Obwalden" -msgstr "Obwalden" - -#: contrib/localflavor/ch/ch_states.py:20 -msgid "Schaffhausen" -msgstr "Schaffhausen" - -#: contrib/localflavor/ch/ch_states.py:21 -msgid "Schwyz" -msgstr "Schwyz" - -#: contrib/localflavor/ch/ch_states.py:22 -msgid "Solothurn" -msgstr "Solothurn" - -#: contrib/localflavor/ch/ch_states.py:23 -msgid "St. Gallen" -msgstr "St. Gallen" - -#: contrib/localflavor/ch/ch_states.py:24 -msgid "Thurgau" -msgstr "Thurgau" - -#: contrib/localflavor/ch/ch_states.py:25 -msgid "Ticino" -msgstr "Ticino" - -#: contrib/localflavor/ch/ch_states.py:26 -msgid "Uri" -msgstr "Uri" - -#: contrib/localflavor/ch/ch_states.py:27 -msgid "Valais" -msgstr "Valais" - -#: contrib/localflavor/ch/ch_states.py:28 -msgid "Vaud" -msgstr "Vaud" - -#: contrib/localflavor/ch/ch_states.py:29 -msgid "Zug" -msgstr "Zug" - -#: contrib/localflavor/ch/ch_states.py:30 -msgid "Zurich" -msgstr "Zurich" - -#: 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/sk/sk_regions.py:8 -msgid "Banska Bystrica region" -msgstr "Región de Banska Bystrica" - -#: contrib/localflavor/sk/sk_regions.py:9 -msgid "Bratislava region" -msgstr "Región de Bratislava" - -#: contrib/localflavor/sk/sk_regions.py:10 -msgid "Kosice region" -msgstr "Región de Kosice" - -#: contrib/localflavor/sk/sk_regions.py:11 -msgid "Nitra region" -msgstr "Región de Nitra" - -#: contrib/localflavor/sk/sk_regions.py:12 -msgid "Presov region" -msgstr "Región de Presov" - -#: contrib/localflavor/sk/sk_regions.py:13 -msgid "Trencin region" -msgstr "Región de Trencin" - -#: contrib/localflavor/sk/sk_regions.py:14 -msgid "Trnava region" -msgstr "Región de Trnava" - -#: contrib/localflavor/sk/sk_regions.py:15 -msgid "Zilina region" -msgstr "Región de Zilina" +#: contrib/localflavor/sk/forms.py:32 +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." #: contrib/localflavor/sk/sk_districts.py:8 msgid "Banska Bystrica" @@ -3086,95 +2934,422 @@ msgstr "Ziar nad Hronom" msgid "Zilina" msgstr "Zilina" -#: contrib/localflavor/sk/forms.py:32 -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." +#: contrib/localflavor/sk/sk_regions.py:8 +msgid "Banska Bystrica region" +msgstr "Región de Banska Bystrica" + +#: contrib/localflavor/sk/sk_regions.py:9 +msgid "Bratislava region" +msgstr "Región de Bratislava" + +#: contrib/localflavor/sk/sk_regions.py:10 +msgid "Kosice region" +msgstr "Región de Kosice" + +#: contrib/localflavor/sk/sk_regions.py:11 +msgid "Nitra region" +msgstr "Región de Nitra" + +#: contrib/localflavor/sk/sk_regions.py:12 +msgid "Presov region" +msgstr "Región de Presov" + +#: contrib/localflavor/sk/sk_regions.py:13 +msgid "Trencin region" +msgstr "Región de Trencin" + +#: contrib/localflavor/sk/sk_regions.py:14 +msgid "Trnava region" +msgstr "Región de Trnava" + +#: contrib/localflavor/sk/sk_regions.py:15 +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/us/forms.py:18 +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 +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" #: contrib/localflavor/in_/forms.py:16 msgid "Enter a zip code in the format XXXXXXX." msgstr "Introduzca un código postal en el formato XXXXXXX." -#: contrib/localflavor/pl/pl_voivodeships.py:8 -msgid "Lower Silesia" -msgstr "Lower Silesia" +#: 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." -#: contrib/localflavor/pl/pl_voivodeships.py:9 -msgid "Kuyavia-Pomerania" -msgstr "Kuyavia-Pomerania" +#: contrib/localflavor/is_/forms.py:31 +msgid "The Icelandic identification number is not valid." +msgstr "El número de identificación de Islandia no es válido." -#: contrib/localflavor/pl/pl_voivodeships.py:10 -msgid "Lublin" -msgstr "Lublin" +#: contrib/sessions/models.py:68 +msgid "session key" +msgstr "clave de sesión" -#: contrib/localflavor/pl/pl_voivodeships.py:11 -msgid "Lubusz" -msgstr "Lubusz" +#: contrib/sessions/models.py:69 +msgid "session data" +msgstr "datos de sesión" -#: contrib/localflavor/pl/pl_voivodeships.py:12 -msgid "Lodz" -msgstr "Lodz" +#: contrib/sessions/models.py:70 +msgid "expire date" +msgstr "fecha de caducidad" -#: contrib/localflavor/pl/pl_voivodeships.py:13 -msgid "Lesser Poland" -msgstr "Lesser Poland" +#: contrib/sessions/models.py:74 +msgid "session" +msgstr "sesión" -#: contrib/localflavor/pl/pl_voivodeships.py:14 -msgid "Masovia" -msgstr "Masovia" +#: contrib/sessions/models.py:75 +msgid "sessions" +msgstr "sesiones" -#: contrib/localflavor/pl/pl_voivodeships.py:15 -msgid "Opole" -msgstr "Opole" +#: contrib/contenttypes/models.py:37 +msgid "python model class name" +msgstr "nombre de módulo python" -#: contrib/localflavor/pl/pl_voivodeships.py:16 -msgid "Subcarpatia" -msgstr "Subcarpatia" +#: contrib/contenttypes/models.py:40 +msgid "content type" +msgstr "tipo de contenido" -#: contrib/localflavor/pl/pl_voivodeships.py:17 -msgid "Podlasie" -msgstr "Podlasie" +#: contrib/contenttypes/models.py:41 +msgid "content types" +msgstr "tipos de contenido" -#: contrib/localflavor/pl/pl_voivodeships.py:18 -msgid "Pomerania" -msgstr "Pomerania" +#: oldforms/__init__.py:408 +#, 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." -#: contrib/localflavor/pl/pl_voivodeships.py:19 -msgid "Silesia" -msgstr "Silesia" +#: oldforms/__init__.py:413 +msgid "Line breaks are not allowed here." +msgstr "No se permiten saltos de línea." -#: contrib/localflavor/pl/pl_voivodeships.py:20 -msgid "Swietokrzyskie" -msgstr "Swietokrzyskie" +#: oldforms/__init__.py:511 +#: oldforms/__init__.py:585 +#: oldforms/__init__.py:624 +#, 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." -#: contrib/localflavor/pl/pl_voivodeships.py:21 -msgid "Warmia-Masuria" -msgstr "Warmia-Masuria" +#: oldforms/__init__.py:688 +#: newforms/fields.py:381 +msgid "The submitted file is empty." +msgstr "El fichero enviado está vacío." -#: contrib/localflavor/pl/pl_voivodeships.py:22 -msgid "Greater Poland" -msgstr "Greater Poland" +#: oldforms/__init__.py:744 +msgid "Enter a whole number between -32,768 and 32,767." +msgstr "Introduzca un número entero entre -32,768 y 32,767." -#: contrib/localflavor/pl/pl_voivodeships.py:23 -msgid "West Pomerania" -msgstr "West Pomerania" +#: oldforms/__init__.py:754 +msgid "Enter a positive number." +msgstr "Introduzca un número positivo." -#: contrib/localflavor/pl/forms.py:53 -msgid "National Identification Number consists of 11 digits." -msgstr "Número de Identificación Nacional consiste en 11 dígitos" +#: oldforms/__init__.py:764 +msgid "Enter a whole number between 0 and 32,767." +msgstr "Introduzca un número entero entre 0 y 32,767." -#: contrib/localflavor/pl/forms.py:59 -msgid "Wrong checksum for the National Identification Number." -msgstr "El Número de Identificación Nacional es incorrecto." +#: views/generic/create_update.py:43 +#, python-format +msgid "The %(verbose_name)s was created successfully." +msgstr "El %(verbose_name)s se ha creado correctamente." -#: contrib/localflavor/pl/forms.py:71 -#, fuzzy -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 XX-XXX-XX-XX o XX-XX-XXX-XXX." +#: views/generic/create_update.py:117 +#, python-format +msgid "The %(verbose_name)s was updated successfully." +msgstr "Se actualizó con éxito el %(verbose_name)s." -#: contrib/localflavor/pl/forms.py:82 -msgid "Enter a postal code in the format XX-XXX." -msgstr "Introduzca un código postal en el formato XX-XXX." +#: views/generic/create_update.py:184 +#, python-format +msgid "The %(verbose_name)s was deleted." +msgstr "El %(verbose_name)s ha sido eliminado." + +#: utils/dates.py:6 +msgid "Monday" +msgstr "Lunes" + +#: utils/dates.py:6 +msgid "Tuesday" +msgstr "Martes" + +#: utils/dates.py:6 +msgid "Wednesday" +msgstr "Miércoles" + +#: utils/dates.py:6 +msgid "Thursday" +msgstr "Jueves" + +#: utils/dates.py:6 +msgid "Friday" +msgstr "Viernes" + +#: utils/dates.py:7 +msgid "Saturday" +msgstr "Sábado" + +#: utils/dates.py:7 +msgid "Sunday" +msgstr "Domingo" + +#: utils/dates.py:10 +msgid "Mon" +msgstr "Lun" + +#: utils/dates.py:10 +msgid "Tue" +msgstr "Mar" + +#: utils/dates.py:10 +msgid "Wed" +msgstr "Mie" + +#: utils/dates.py:10 +msgid "Thu" +msgstr "Jue" + +#: utils/dates.py:10 +msgid "Fri" +msgstr "Vie" + +#: utils/dates.py:11 +msgid "Sat" +msgstr "Sab" + +#: utils/dates.py:11 +msgid "Sun" +msgstr "Dom" + +#: utils/dates.py:18 +msgid "January" +msgstr "Enero" + +#: utils/dates.py:18 +msgid "February" +msgstr "Febrero" + +#: utils/dates.py:18 +#: utils/dates.py:31 +msgid "March" +msgstr "Marzo" + +#: utils/dates.py:18 +#: utils/dates.py:31 +msgid "April" +msgstr "Abril" + +#: utils/dates.py:18 +#: utils/dates.py:31 +msgid "May" +msgstr "Mayo" + +#: utils/dates.py:18 +#: utils/dates.py:31 +msgid "June" +msgstr "Junio" + +#: utils/dates.py:19 +#: utils/dates.py:31 +msgid "July" +msgstr "Julio" + +#: utils/dates.py:19 +msgid "August" +msgstr "Agosto" + +#: utils/dates.py:19 +msgid "September" +msgstr "Septiembre" + +#: utils/dates.py:19 +msgid "October" +msgstr "Octubre" + +#: utils/dates.py:19 +msgid "November" +msgstr "Noviembre" + +#: utils/dates.py:20 +msgid "December" +msgstr "Diciembre" + +#: utils/dates.py:23 +msgid "jan" +msgstr "ene" + +#: utils/dates.py:23 +msgid "feb" +msgstr "feb" + +#: utils/dates.py:23 +msgid "mar" +msgstr "mar" + +#: utils/dates.py:23 +msgid "apr" +msgstr "abr" + +#: utils/dates.py:23 +msgid "may" +msgstr "may" + +#: utils/dates.py:23 +msgid "jun" +msgstr "jun" + +#: utils/dates.py:24 +msgid "jul" +msgstr "jul" + +#: utils/dates.py:24 +msgid "aug" +msgstr "ago" + +#: utils/dates.py:24 +msgid "sep" +msgstr "sep" + +#: utils/dates.py:24 +msgid "oct" +msgstr "oct" + +#: utils/dates.py:24 +msgid "nov" +msgstr "nov" + +#: utils/dates.py:24 +msgid "dec" +msgstr "dic" + +#: utils/dates.py:31 +msgid "Jan." +msgstr "Ene." + +#: utils/dates.py:31 +msgid "Feb." +msgstr "Feb." + +#: utils/dates.py:32 +msgid "Aug." +msgstr "Ago." + +#: utils/dates.py:32 +msgid "Sept." +msgstr "Sept." + +#: utils/dates.py:32 +msgid "Oct." +msgstr "Oct." + +#: utils/dates.py:32 +msgid "Nov." +msgstr "Nov." + +#: utils/dates.py:32 +msgid "Dec." +msgstr "Dic." + +#: utils/text.py:127 +msgid "or" +msgstr "o" + +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "año" +msgstr[1] "años" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "mes" +msgstr[1] "meses" + +#: utils/timesince.py:14 +msgid "week" +msgid_plural "weeks" +msgstr[0] "semana" +msgstr[1] "semanas" + +#: utils/timesince.py:15 +msgid "day" +msgid_plural "days" +msgstr[0] "día" +msgstr[1] "días" + +#: utils/timesince.py:16 +msgid "hour" +msgid_plural "hours" +msgstr[0] "hora" +msgstr[1] "horas" + +#: utils/timesince.py:17 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minuto" +msgstr[1] "minutos" + +#: utils/timesince.py:39 +#, python-format +msgid "%(number)d %(type)s" +msgstr "%(number)d %(type)s" + +#: utils/timesince.py:45 +#, python-format +msgid ", %(number)d %(type)s" +msgstr ", %(number)d %(type)s" + +#: utils/dateformat.py:41 +msgid "p.m." +msgstr "p.m" + +#: utils/dateformat.py:42 +msgid "a.m." +msgstr "a.m" + +#: utils/dateformat.py:47 +msgid "PM" +msgstr "PM" + +#: utils/dateformat.py:48 +msgid "AM" +msgstr "AM" + +#: utils/dateformat.py:97 +msgid "midnight" +msgstr "media noche" + +#: utils/dateformat.py:99 +msgid "noon" +msgstr "medio día" + +#: utils/translation/trans_real.py:391 +msgid "DATE_FORMAT" +msgstr "j N Y" + +#: utils/translation/trans_real.py:392 +msgid "DATETIME_FORMAT" +msgstr "j N Y P" + +#: utils/translation/trans_real.py:393 +msgid "TIME_FORMAT" +msgstr "P" + +#: utils/translation/trans_real.py:409 +msgid "YEAR_MONTH_FORMAT" +msgstr "F Y" + +#: utils/translation/trans_real.py:410 +msgid "MONTH_DAY_FORMAT" +msgstr "j \\de F" #: template/defaultfilters.py:532 msgid "yes,no,maybe" @@ -3202,327 +3377,95 @@ msgstr "%.1f MB" msgid "%.1f GB" msgstr "%.1f GB" -#: oldforms/__init__.py:408 +#: newforms/fields.py:123 #, 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." +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)." -#: oldforms/__init__.py:413 -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 +#: newforms/fields.py:125 #, 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." +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)." -#: oldforms/__init__.py:744 -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 -msgid "Enter a positive number." -msgstr "Introduzca un número positivo." - -#: oldforms/__init__.py:764 -msgid "Enter a whole number between 0 and 32,767." -msgstr "Introduzca un número entero entre 0 y 32,767." - -#: core/validators.py:71 -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:75 -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:79 -msgid "This value must contain only letters, numbers, underscores or hyphens." -msgstr "Este valor debe contener sólo letras, números, guiones bajos o medios." - -#: core/validators.py:83 -msgid "Uppercase letters are not allowed here." -msgstr "No se admiten letras mayúsculas." - -#: core/validators.py:87 -msgid "Lowercase letters are not allowed here." -msgstr "No se admiten letras minúsculas." - -#: core/validators.py:94 -msgid "Enter only digits separated by commas." -msgstr "Introduzca sólo dígitos separados por comas." - -#: core/validators.py:106 -msgid "Enter valid e-mail addresses separated by commas." -msgstr "Introduzca direcciones de correo válidas separadas por comas." - -#: core/validators.py:110 -msgid "Please enter a valid IP address." -msgstr "Por favor introduzca una dirección IP válida." - -#: core/validators.py:114 -msgid "Empty values are not allowed here." -msgstr "No se admiten valores vacíos." - -#: core/validators.py:118 -msgid "Non-numeric characters aren't allowed here." -msgstr "No se admiten caracteres no numéricos." - -#: core/validators.py:122 -msgid "This value can't be comprised solely of digits." -msgstr "Este valor no puede comprender sólo dígitos." - -#: core/validators.py:131 -msgid "Only alphabetical characters are allowed here." -msgstr "Sólo se admiten caracteres alfabéticos." - -#: core/validators.py:146 -msgid "Year must be 1900 or later." -msgstr "El año debe ser 1900 o posterior." - -#: core/validators.py:150 +#: newforms/fields.py:151 +#: newforms/fields.py:174 +#: newforms/fields.py:204 #, python-format -msgid "Invalid date: %s" -msgstr "Fecha no válida: %s" +msgid "Ensure this value is less than or equal to %s." +msgstr "Asegúrese de que este valor es menor o igual a %s." -#: core/validators.py:160 -msgid "Enter a valid time in HH:MM format." -msgstr "Introduzca una hora válida en formato HH:MM." - -#: core/validators.py:192 +#: newforms/fields.py:153 +#: newforms/fields.py:176 +#: newforms/fields.py:206 #, python-format -msgid "The URL %s does not point to a valid image." -msgstr "La URL %s no apunta a una imagen válida." +msgid "Ensure this value is greater than or equal to %s." +msgstr "Asegúrese de que este valor es mayor o igual a %s." -#: core/validators.py:196 +#: newforms/fields.py:172 +#: newforms/fields.py:199 +msgid "Enter a number." +msgstr "Introduzca un número." + +#: newforms/fields.py:208 #, 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." +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." -#: core/validators.py:204 +#: newforms/fields.py:210 #, python-format -msgid "The URL %s does not point to a valid QuickTime video." -msgstr "La URL %s no apunta a un vídeo QuickTime válido." +msgid "Ensure that there are no more than %s decimal places." +msgstr "Asegúrese de que no hay más de %s decimales." -#: core/validators.py:208 -msgid "A valid URL is required." -msgstr "Se precisa una URL válida." - -#: core/validators.py:222 +#: newforms/fields.py:212 #, python-format -msgid "" -"Valid HTML is required. Specific errors are:\n" -"%s" -msgstr "" -"Se precisa HTML válido. Los errores específicos son:\n" -"%s" +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." -#: core/validators.py:229 +#: newforms/fields.py:245 +#: newforms/fields.py:629 +msgid "Enter a valid date." +msgstr "Introduzca una fecha válida." + +#: newforms/fields.py:272 +#: newforms/fields.py:631 +msgid "Enter a valid time." +msgstr "Introduzca una hora válida." + +#: newforms/fields.py:308 +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 +msgid "No file was submitted." +msgstr "No se ha enviado ningún fichero" + +#: newforms/fields.py:419 +#: newforms/fields.py:444 +msgid "Enter a valid URL." +msgstr "Introduzca una URL válida." + +#: newforms/fields.py:446 +msgid "This URL appears to be a broken link." +msgstr "La URL parece ser un enlace roto." + +#: newforms/fields.py:497 +#: newforms/models.py:180 +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:513 +#: newforms/fields.py:589 +#: newforms/models.py:197 +msgid "Enter a list of values." +msgstr "Introduzca una lista de valores." + +#: newforms/fields.py:519 +#: newforms/models.py:203 #, python-format -msgid "Badly formed XML: %s" -msgstr "XML mal formado: %s" +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." -#: core/validators.py:246 -#, python-format -msgid "Invalid URL: %s" -msgstr "URL no válida: %s" - -#: core/validators.py:251 core/validators.py:253 -#, python-format -msgid "The URL %s is a broken link." -msgstr "La URL %s es un enlace roto." - -#: core/validators.py:259 -msgid "Enter a valid U.S. state abbreviation." -msgstr "Introduzca una abreviatura válida de estado de los EEUU." - -#: core/validators.py:273 -#, 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] "¡Cuida tu vocabulario! Aquí no admitimos la palabra %s." -msgstr[1] "¡Cuida tu vocabulario! Aquí no admitimos las palabras %s." - -#: core/validators.py:280 -#, python-format -msgid "This field must match the '%s' field." -msgstr "Este campo debe concordar con el campo '%s'." - -#: core/validators.py:299 -msgid "Please enter something for at least one field." -msgstr "Por favor, introduzca algo en al menos un campo." - -#: core/validators.py:308 core/validators.py:319 -msgid "Please enter both fields or leave them both empty." -msgstr "Por favor, rellene ambos campos o deje ambos vacíos." - -#: core/validators.py:327 -#, python-format -msgid "This field must be given if %(field)s is %(value)s" -msgstr "Se debe proporcionar este campo si %(field)s es %(value)s" - -#: core/validators.py:340 -#, python-format -msgid "This field must be given if %(field)s is not %(value)s" -msgstr "Se debe proporcionar este campo si %(field)s no es %(value)s" - -#: core/validators.py:359 -msgid "Duplicate values are not allowed." -msgstr "No se admiten valores duplicados." - -#: core/validators.py:374 -#, python-format -msgid "This value must be between %(lower)s and %(upper)s." -msgstr "Este valor debe estar entre %(lower)s y %(upper)s." - -#: core/validators.py:376 -#, python-format -msgid "This value must be at least %s." -msgstr "Este valor debe ser como mínimo %s." - -#: core/validators.py:378 -#, python-format -msgid "This value must be no more than %s." -msgstr "Este valor no debe ser mayor que %s." - -#: core/validators.py:414 -#, python-format -msgid "This value must be a power of %s." -msgstr "Este valor debe ser una potencia de %s." - -#: core/validators.py:424 -msgid "Please enter a valid decimal number." -msgstr "Por favor, introduzca un número decimal válido." - -#: core/validators.py:431 -#, 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." - -#: core/validators.py:434 -#, 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." - -#: core/validators.py:437 -#, 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." - -#: core/validators.py:445 -msgid "Please enter a valid floating point number." -msgstr "Por favor, introduzca un número decimal válido." - -#: core/validators.py:454 -#, python-format -msgid "Make sure your uploaded file is at least %s bytes big." -msgstr "Asegúrese de que el fichero que envía tiene al menos %s bytes." - -#: core/validators.py:455 -#, python-format -msgid "Make sure your uploaded file is at most %s bytes big." -msgstr "Asegúrese de que el fichero que envía tiene como máximo %s bytes." - -#: core/validators.py:472 -msgid "The format for this field is wrong." -msgstr "El formato de este campo es incorrecto." - -#: core/validators.py:487 -msgid "This field is invalid." -msgstr "Este campo no es válido." - -#: core/validators.py:523 -#, python-format -msgid "Could not retrieve anything from %s." -msgstr "No pude obtener nada de %s." - -#: core/validators.py:526 -#, 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." - -#: core/validators.py:559 -#, 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\".)" - -#: core/validators.py:563 -#, 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\".)" - -#: core/validators.py:568 -#, 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\".)" - -#: core/validators.py:573 -#, 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\".)" - -#: core/validators.py:577 -#, 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\".)" - -#: core/validators.py:582 -#, 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\".)" diff --git a/django/conf/locale/fi/LC_MESSAGES/django.mo b/django/conf/locale/fi/LC_MESSAGES/django.mo index e1e7bfaf44b4567f4a03262b90ede4bd3bb4e235..6d4ebd32838e23a6c7a838e5dc30862bfcd7cf1c 100644 GIT binary patch literal 49408 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 LVXLR^wB-Fiv2wDi delta 10762 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 uP2kkj2CNt#X3lEdh`D&m)1pkxl?RL2mmaG2JDR, YEAR. +# Finnish translation of Django +# Copyright (C) 2006-2007 +# This file is distributed under the same license as the Django package. # msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-08-05 14:41+0300\n" -"PO-Revision-Date: 2006-08-12 23:41+0300\n" +"POT-Creation-Date: 2007-09-14 23:33+0300\n" +"PO-Revision-Date: 2007-09-15 00:34+0300\n" "Last-Translator: Antti Kaihola \n" -"Language-Team: LANGUAGE \n" +"Language-Team: Django I18N \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Poedit-Language: Finnish\n" +"X-Poedit-Country: FINLAND\n" -#: db/models/manipulators.py:302 -#, python-format -msgid "%(object)s with this %(type)s already exists for the given %(field)s." -msgstr "" - -#: db/models/fields/related.py:51 -#, python-format -msgid "Please enter a valid %s." -msgstr "Syöttämäsi %s ei kelpaa." - -#: db/models/fields/related.py:618 -msgid "Separate multiple IDs with commas." -msgstr "Erottele tunnisteet pilkuilla." - -#: db/models/fields/related.py:620 -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" -" Pidä \"Ctrl\"-näppäin (tai Macin \"Command\") pohjassa valitaksesi useita " -"vaihtoehtoja." - -#: db/models/fields/related.py:664 -#, 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] "Syöttämäsi %(self)s-tunniste %(value)r ei kelpaa." -msgstr[1] "Syöttämäsi %(self)s-tunnisteet %(value)r eivät kelpaa." - -#: db/models/fields/__init__.py:40 -#, python-format -msgid "%(optname)s with this %(fieldname)s already exists." -msgstr "%(optname)s, jolla on tämä %(fieldname)s, on jo olemassa." - -#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265 -#: db/models/fields/__init__.py:551 db/models/fields/__init__.py:562 -#: forms/__init__.py:346 -msgid "This field is required." -msgstr "Tämä kenttä vaaditaan." - -#: db/models/fields/__init__.py:340 -msgid "This value must be an integer." -msgstr "Tarvitaan kokonaisluku." - -#: db/models/fields/__init__.py:372 -msgid "This value must be either True or False." -msgstr "Tarvitaan tosi (True) tai epätosi (False)." - -#: db/models/fields/__init__.py:388 -msgid "This field cannot be null." -msgstr "Tämän kentän arvo ei voi olla \"null\"." - -#: db/models/fields/__init__.py:415 core/validators.py:127 -msgid "Enter a valid date in YYYY-MM-DD format." -msgstr "Päivämäärän pitää olla muodossa VVVV-KK-PP." - -#: db/models/fields/__init__.py:477 core/validators.py:135 -msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." -msgstr "Ajankohdan pitää olla muodossa VVVV-KK-PP TT:MM." - -#: db/models/fields/__init__.py:571 -msgid "Enter a valid filename." -msgstr "Tiedostonimi ei kelpaa." - -#: conf/global_settings.py:39 -msgid "Arabic" -msgstr "arabia" - -#: conf/global_settings.py:40 -msgid "Bengali" -msgstr "bengali" - -#: conf/global_settings.py:41 -msgid "Czech" -msgstr "tšekki" - -#: conf/global_settings.py:42 -msgid "Welsh" -msgstr "wales" - -#: conf/global_settings.py:43 -msgid "Danish" -msgstr "tanska" - -#: conf/global_settings.py:44 -msgid "German" -msgstr "saksa" - -#: conf/global_settings.py:45 -msgid "Greek" -msgstr "kreikka" - -#: conf/global_settings.py:46 -msgid "English" -msgstr "englanti" - -#: conf/global_settings.py:47 -msgid "Spanish" -msgstr "espanja" - -#: conf/global_settings.py:48 -msgid "Argentinean Spanish" -msgstr "Argentiinan espanja" - -#: conf/global_settings.py:49 -msgid "French" -msgstr "ranska" - -#: conf/global_settings.py:50 -msgid "Galician" -msgstr "" - -#: conf/global_settings.py:51 -msgid "Hungarian" -msgstr "unkari" - -#: conf/global_settings.py:52 -msgid "Hebrew" -msgstr "heprea" - -#: conf/global_settings.py:53 -msgid "Icelandic" -msgstr "islanti" - -#: conf/global_settings.py:54 -msgid "Italian" -msgstr "italia" - -#: conf/global_settings.py:55 -msgid "Japanese" -msgstr "japani" - -#: conf/global_settings.py:56 -msgid "Dutch" -msgstr "hollanti" - -#: conf/global_settings.py:57 -msgid "Norwegian" -msgstr "norja" - -#: conf/global_settings.py:58 -msgid "Brazilian" -msgstr "" - -#: conf/global_settings.py:59 -msgid "Romanian" -msgstr "romania" - -#: conf/global_settings.py:60 -msgid "Russian" -msgstr "venäjä" - -#: conf/global_settings.py:61 -msgid "Slovak" -msgstr "slovakia" - -#: conf/global_settings.py:62 -msgid "Slovenian" -msgstr "slovenia" - -#: conf/global_settings.py:63 -msgid "Serbian" -msgstr "serbia" - -#: conf/global_settings.py:64 -msgid "Swedish" -msgstr "ruotsi" - -#: conf/global_settings.py:65 -msgid "Tamil" -msgstr "" - -#: conf/global_settings.py:66 -msgid "Ukrainian" -msgstr "ukraina" - -#: conf/global_settings.py:67 -msgid "Simplified Chinese" -msgstr "kiina (yksinkertaistettu)" - -#: conf/global_settings.py:68 -msgid "Traditional Chinese" -msgstr "kiina (perinteinen)" - -#: core/validators.py:63 +#: core/validators.py:72 msgid "This value must contain only letters, numbers and underscores." -msgstr "Tässä voidaan käyttää vain kirjaimia (a-z), numeroita (0-9) ja alaviivoja (_)." +msgstr "" +"Tässä voidaan käyttää vain kirjaimia (a-z), numeroita (0-9) ja alaviivoja " +"(_)." -#: core/validators.py:67 +#: core/validators.py:76 msgid "" "This value must contain only letters, numbers, underscores, dashes or " "slashes." -msgstr "Tässä voidaan käyttää vain kirjaimia (a-z), numeroita (0-9) sekä ala-, tavu- ja kauttaviivoja (_ - /)." +msgstr "" +"Tässä voidaan käyttää vain kirjaimia (a-z), numeroita (0-9) sekä ala-, tavu- " +"ja kauttaviivoja (_ - /)." -#: core/validators.py:75 +#: core/validators.py:80 +msgid "This value must contain only letters, numbers, underscores or hyphens." +msgstr "Tässä voidaan käyttää vain kirjaimia (a-z), numeroita (0-9) sekä ala- ja tavuviivoja (_ -)." + +#: core/validators.py:84 msgid "Uppercase letters are not allowed here." msgstr "Isot kirjaimet (ABC) eivät kelpaa tässä." -#: core/validators.py:79 +#: core/validators.py:88 msgid "Lowercase letters are not allowed here." msgstr "Pienet kirjaimet (abc) eivät kelpaa tässä." -#: core/validators.py:86 +#: core/validators.py:95 msgid "Enter only digits separated by commas." msgstr "Vain pilkulla erotetut luvut kelpaavat tässä." -#: core/validators.py:98 +#: core/validators.py:107 msgid "Enter valid e-mail addresses separated by commas." msgstr "Syötä sähköpostiosoitteita pilkuilla erotettuina." -#: core/validators.py:102 +#: core/validators.py:111 msgid "Please enter a valid IP address." msgstr "IP-osoite ei kelpaa." -#: core/validators.py:106 +#: core/validators.py:115 msgid "Empty values are not allowed here." msgstr "Tätä kohtaa ei voi jättää tyhjäksi." -#: core/validators.py:110 +#: core/validators.py:119 msgid "Non-numeric characters aren't allowed here." msgstr "Vain numerot (0-9) kelpaavat tässä." -#: core/validators.py:114 +#: core/validators.py:123 msgid "This value can't be comprised solely of digits." msgstr "Tarvitaan vähintään yksi merkki, joka ei ole numero (0-9)." -#: core/validators.py:119 +#: core/validators.py:128 newforms/fields.py:149 msgid "Enter a whole number." msgstr "Syötä kokonaisluku." -#: core/validators.py:123 +#: core/validators.py:132 msgid "Only alphabetical characters are allowed here." msgstr "Vain kirjaimet kelpaavat tässä." -#: core/validators.py:131 +#: core/validators.py:147 +msgid "Year must be 1900 or later." +msgstr "Vuosiluvuksi kelpaa vain 1900 tai myöhempi." + +#: core/validators.py:151 +#, python-format +msgid "Invalid date: %s" +msgstr "Päivämäärä %s ei kelpaa" + +#: core/validators.py:156 db/models/fields/__init__.py:505 +msgid "Enter a valid date in YYYY-MM-DD format." +msgstr "Päivämäärän pitää olla muodossa VVVV-KK-PP." + +#: core/validators.py:161 msgid "Enter a valid time in HH:MM format." msgstr "Ajan täytyy olla muodossa TT:MM." -#: core/validators.py:139 +#: core/validators.py:165 db/models/fields/__init__.py:579 +msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." +msgstr "Ajankohdan pitää olla muodossa VVVV-KK-PP TT:MM." + +#: core/validators.py:170 newforms/fields.py:343 msgid "Enter a valid e-mail address." msgstr "Syötä kelvollinen sähköpostiosoite." -#: core/validators.py:151 core/validators.py:379 forms/__init__.py:661 +#: core/validators.py:182 core/validators.py:469 newforms/fields.py:377 +#: oldforms/__init__.py:686 msgid "No file was submitted. Check the encoding type on the form." msgstr "Tiedostoa ei lähetetty. Tarkista lomakkeen koodaus (encoding)." -#: core/validators.py:155 +#: 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 "Kuva ei kelpaa. Lähettämäsi tiedosto ei ole kuva, tai tiedosto on vioittunut." +msgstr "" +"Kuva ei kelpaa. Lähettämäsi tiedosto ei ole kuva, tai tiedosto on vioittunut." -#: core/validators.py:162 +#: core/validators.py:200 #, python-format msgid "The URL %s does not point to a valid image." msgstr "Osoittessa %s ei ole kuvaa tai se on vioittunut." -#: core/validators.py:166 +#: core/validators.py:204 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "Puhelinnumeron tulee olla muodossa XXX-XXX-XXXX. \"%s\" ei kelpaa." -#: core/validators.py:174 +#: core/validators.py:212 #, python-format msgid "The URL %s does not point to a valid QuickTime video." msgstr "Osoitteessa %s ei ole QuickTime-videota tai se on vioittunut." -#: core/validators.py:178 +#: core/validators.py:216 msgid "A valid URL is required." msgstr "URL-osoite ei kelpaa." -#: core/validators.py:192 +#: core/validators.py:230 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" @@ -295,343 +140,916 @@ msgstr "" "HTML-koodi ei kelpaa. Virheilmoitus on:\n" "%s" -#: core/validators.py:199 +#: core/validators.py:237 #, python-format msgid "Badly formed XML: %s" msgstr "Vääränmuotoinen XML: %s" -#: core/validators.py:209 +#: core/validators.py:254 #, python-format msgid "Invalid URL: %s" msgstr "URL-osoite %s ei kelpaa." -#: core/validators.py:213 core/validators.py:215 +#: core/validators.py:259 core/validators.py:261 #, python-format msgid "The URL %s is a broken link." msgstr "Osoite %s on rikkoutunut tai väärä linkki." -#: core/validators.py:221 +#: core/validators.py:267 msgid "Enter a valid U.S. state abbreviation." msgstr "Syötä USA:n osavaltion lyhenne." -#: core/validators.py:236 +#: 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] "Sanaa \"%s\" ei saa käyttää tässä." msgstr[1] "Sanoja \"%s\" ei saa käyttää tässä." -#: core/validators.py:243 +#: core/validators.py:283 db/models/manipulators.py:310 +#: contrib/admin/views/main.py:342 contrib/admin/views/main.py:344 +#: contrib/admin/views/main.py:346 +msgid "and" +msgstr "ja" + +#: core/validators.py:288 #, python-format msgid "This field must match the '%s' field." msgstr "Arvon täytyy olla sama kuin kentässä '%s'." -#: core/validators.py:262 +#: core/validators.py:307 msgid "Please enter something for at least one field." msgstr "Täytä ainakin yksi kenttä." -#: core/validators.py:271 core/validators.py:282 +#: core/validators.py:316 core/validators.py:327 msgid "Please enter both fields or leave them both empty." msgstr "Täytä tai jätä tyhjäksi kummatkin kentät." -#: core/validators.py:289 +#: core/validators.py:335 #, python-format msgid "This field must be given if %(field)s is %(value)s" msgstr "Tämä kenttä pitää täyttää, jos %(field)s on %(value)s." -#: core/validators.py:301 +#: core/validators.py:348 #, python-format msgid "This field must be given if %(field)s is not %(value)s" msgstr "Tämä kenttä pitää täyttää, jos %(field)s ei ole %(value)s." -#: core/validators.py:320 +#: core/validators.py:367 msgid "Duplicate values are not allowed." msgstr "Samaa arvoa ei voi käyttää kahdesti." -#: core/validators.py:343 +#: core/validators.py:382 +#, python-format +msgid "This value must be between %(lower)s and %(upper)s." +msgstr "Tämän luvun on oltava välillä %(lower)s–%(upper)s." + +#: core/validators.py:384 +#, python-format +msgid "This value must be at least %s." +msgstr "Tämän luvun on oltava vähintään %s." + +#: core/validators.py:386 +#, python-format +msgid "This value must be no more than %s." +msgstr "Tämän luvun on oltava enintään %s." + +#: core/validators.py:422 #, python-format msgid "This value must be a power of %s." msgstr "Tämän luvun on oltava %s:n potenssi." -#: core/validators.py:354 +#: core/validators.py:432 msgid "Please enter a valid decimal number." msgstr "Desimaaliluku ei kelpaa." -#: core/validators.py:356 +#: core/validators.py:439 #, 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] "Desimaaliluvussa saa tässä olla yhteensä vain %s merkitsevä numero. Huomaa, että desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)." -msgstr[1] "Desimaaliluvussa saa tässä olla yhteensä vain %s merkitsevää numeroa. Huomaa, että desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)." +msgstr[0] "" +"Desimaaliluvussa saa tässä olla yhteensä vain %s merkitsevä numero. Huomaa, " +"että desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)." +msgstr[1] "" +"Desimaaliluvussa saa tässä olla yhteensä vain %s merkitsevää numeroa. " +"Huomaa, että desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)." -#: core/validators.py:359 +#: core/validators.py:442 #, 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] "Desimaaliluvun kokonaisosassa saa tässä olla vain %s numero. Huomaa, että desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)." -msgstr[1] "Desimaaliluvun kokonaisosassa saa tässä olla vain %s numeroa. Huomaa, että desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)." +msgstr[0] "" +"Desimaaliluvun kokonaisosassa saa tässä olla vain %s numero. Huomaa, että " +"desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)." +msgstr[1] "" +"Desimaaliluvun kokonaisosassa saa tässä olla vain %s numeroa. Huomaa, että " +"desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)." -#: core/validators.py:362 +#: core/validators.py:445 #, 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] "Tässä saa olla vain %s desimaali. Huomaa, että desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)." -msgstr[1] "Tässä saa olla vain %s desimaalia. Huomaa, että desimaalierottimena käytetään pilkun (,) sijasta pistettä (.)." +msgstr[0] "" +"Tässä saa olla vain %s desimaali. Huomaa, että desimaalierottimena käytetään " +"pilkun (,) sijasta pistettä (.)." +msgstr[1] "" +"Tässä saa olla vain %s desimaalia. Huomaa, että desimaalierottimena " +"käytetään pilkun (,) sijasta pistettä (.)." -#: core/validators.py:372 +#: core/validators.py:453 +msgid "Please enter a valid floating point number." +msgstr "Syötä liukuluku." + +#: core/validators.py:462 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." msgstr "Lähetä vähintään %s tavun kokoinen tiedosto." -#: core/validators.py:373 +#: core/validators.py:463 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." msgstr "Lähetä enintään %s tavun kokoinen tiedosto." -#: core/validators.py:390 +#: core/validators.py:480 msgid "The format for this field is wrong." msgstr "Muoto ei kelpaa." -#: core/validators.py:405 +#: core/validators.py:495 msgid "This field is invalid." msgstr "Tämä arvo ei kelpaa." -#: core/validators.py:441 +#: core/validators.py:531 #, python-format msgid "Could not retrieve anything from %s." msgstr "Tietoja ei voida noutaa kohteesta: %s." -#: core/validators.py:444 +#: core/validators.py:534 #, python-format msgid "" "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." -msgstr "Osoitteesta %(url)s saatiin virheellinen Content-Type '%(contenttype)s'." +msgstr "" +"Osoitteesta %(url)s saatiin virheellinen Content-Type '%(contenttype)s'." -#: core/validators.py:477 +#: core/validators.py:567 #, python-format msgid "" "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "\"%(start)s\".)" -msgstr "Rivillä %(line)s oleva tagi %(tag)s pitää sulkea. (Rivi alkaa \"%(start)s\")" +msgstr "" +"Rivillä %(line)s oleva tagi %(tag)s pitää sulkea. (Rivi alkaa \"%(start)s\")" -#: core/validators.py:481 +#: core/validators.py:571 #, python-format msgid "" "Some text starting on line %(line)s is not allowed in that context. (Line " "starts with \"%(start)s\".)" -msgstr "Rivillä %(line)s on tekstiä, joka ei kelpaa tässä yhteydessä. (Rivi alkaa \"%(start)s\")" +msgstr "" +"Rivillä %(line)s on tekstiä, joka ei kelpaa tässä yhteydessä. (Rivi alkaa \"%" +"(start)s\")" -#: core/validators.py:486 +#: core/validators.py:576 #, python-format msgid "" "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "(start)s\".)" -msgstr "Rivillä %(line)s attribuutti %(attr)s ei kelpaa. (Rivi alkaa \"%(start)s\")" +msgstr "" +"Rivillä %(line)s attribuutti %(attr)s ei kelpaa. (Rivi alkaa \"%(start)s\")" -#: core/validators.py:491 +#: core/validators.py:581 #, python-format msgid "" "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "(start)s\".)" -msgstr "Rivillä %(line)s tagi \"<%(tag)s>\" ei kelpaa. (Rivi alkaa \"%(start)s\")" +msgstr "" +"Rivillä %(line)s tagi \"<%(tag)s>\" ei kelpaa. (Rivi alkaa \"%(start)s\")" -#: core/validators.py:495 +#: core/validators.py:585 #, python-format msgid "" "A tag on line %(line)s is missing one or more required attributes. (Line " "starts with \"%(start)s\".)" -msgstr "Rivillä %(line)s yhdestä tagista puuttuu yksi tai useampi attribuutti. (Rivi alkaa \"%(start)s\")" +msgstr "" +"Rivillä %(line)s yhdestä tagista puuttuu yksi tai useampi attribuutti. (Rivi " +"alkaa \"%(start)s\")" -#: core/validators.py:500 +#: core/validators.py:590 #, python-format msgid "" "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " "starts with \"%(start)s\".)" -msgstr "Rivillä %(line)s attribuutin %(attr)s arvo ei kelpaa. (Rivi alkaa \"%(start)s\")" - -#: contrib/auth/forms.py:52 -msgid "" -"Your Web browser doesn't appear to have cookies enabled. Cookies are " -"required for logging in." -msgstr "Selaimesi ei salli evästeitä. Sisäänkirjautuminen vaatii evästeen." - -#: contrib/auth/forms.py:59 contrib/admin/views/decorators.py:10 -msgid "" -"Please enter a correct username and password. Note that both fields are case-" -"sensitive." -msgstr "Käyttäjätunnus tai salasana ei kelpaa. Huomaa, että isot ja pienet kirjaimet ovat merkitseviä." - -#: contrib/auth/forms.py:61 -msgid "This account is inactive." -msgstr "Tämä käyttäjätili ei ole voimassa." - -#: contrib/auth/models.py:38 contrib/auth/models.py:57 -msgid "name" -msgstr "nimi" - -#: contrib/auth/models.py:40 -msgid "codename" -msgstr "koodinimi" - -#: contrib/auth/models.py:42 -msgid "permission" -msgstr "oikeus" - -#: contrib/auth/models.py:43 contrib/auth/models.py:58 -msgid "permissions" -msgstr "oikeudet" - -#: contrib/auth/models.py:60 -msgid "group" -msgstr "ryhmä" - -#: contrib/auth/models.py:61 contrib/auth/models.py:100 -msgid "groups" -msgstr "ryhmät" - -#: contrib/auth/models.py:90 -msgid "username" -msgstr "tunnus" - -#: contrib/auth/models.py:90 -msgid "" -"Required. 30 characters or fewer. Alphanumeric characters only (letters, " -"digits and underscores)." -msgstr " Vaaditaan. Enintään 30 kirjanta (a-z), numeroa (0-9) tai alaviivaa (_)." - -#: contrib/auth/models.py:91 -msgid "first name" -msgstr "etunimi" - -#: contrib/auth/models.py:92 -msgid "last name" -msgstr "sukunimi" - -#: contrib/auth/models.py:93 -msgid "e-mail address" -msgstr "sähköposti" - -#: contrib/auth/models.py:94 -msgid "password" -msgstr "salasana" - -#: contrib/auth/models.py:94 -msgid "Use '[algo]$[salt]$[hexdigest]'" -msgstr "(Salasanaa ei näytetä selväkielisenä)" - -#: contrib/auth/models.py:95 -msgid "staff status" -msgstr "ylläpitäjä" - -#: contrib/auth/models.py:95 -msgid "Designates whether the user can log into this admin site." -msgstr "Ylläpitäjillä on pääsy tähän sivuston ylläpito-osioon." - -#: contrib/auth/models.py:96 -msgid "active" -msgstr "voimassa" - -#: contrib/auth/models.py:96 -msgid "" -"Designates whether this user can log into the Django admin. Unselect this " -"instead of deleting accounts." -msgstr "Määrää, voiko käyttäjä kirjautua sisään. Tällä voi estää käyttäjätilin käytön poistamatta sitä." - -#: contrib/auth/models.py:97 -msgid "superuser status" -msgstr "pääkäyttäjä" - -#: contrib/auth/models.py:97 -msgid "" -"Designates that this user has all permissions without explicitly assigning " -"them." -msgstr "Antaa käyttäjälle kaikki oikeudet ilman, että niitä täytyy erikseen luetella." - -#: contrib/auth/models.py:98 -msgid "last login" -msgstr "viimeksi kirjautunut" - -#: contrib/auth/models.py:99 -msgid "date joined" -msgstr "liittynyt" - -#: contrib/auth/models.py:101 -msgid "" -"In addition to the permissions manually assigned, this user will also get " -"all permissions granted to each group he/she is in." msgstr "" -"Tässä valittujen oikeuksien lisäksi käyttäjä saa myös kaikki niiden ryhmien " -"oikeudet, joiden jäsen hän on." +"Rivillä %(line)s attribuutin %(attr)s arvo ei kelpaa. (Rivi alkaa \"%(start)s" +"\")" -#: contrib/auth/models.py:102 -msgid "user permissions" -msgstr "käyttäjän oikeudet" +#: newforms/fields.py:93 newforms/fields.py:509 newforms/fields.py:585 +#: newforms/fields.py:596 newforms/models.py:193 +#: db/models/fields/__init__.py:159 db/models/fields/__init__.py:316 +#: db/models/fields/__init__.py:731 db/models/fields/__init__.py:742 +#: oldforms/__init__.py:373 +msgid "This field is required." +msgstr "Tämä kenttä vaaditaan." -#: contrib/auth/models.py:105 -msgid "user" -msgstr "käyttäjä" +#: newforms/fields.py:123 +#, python-format +msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." +msgstr "Tähän kelpaa enintään %(max)d merkkiä (nyt niitä on %(length)d)." -#: contrib/auth/models.py:106 -msgid "users" -msgstr "käyttäjät" +#: newforms/fields.py:125 +#, python-format +msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." +msgstr "Tähän tarvitaan vähintään %(min)d merkkiä (nyt on vain %(length)d)." -#: contrib/auth/models.py:111 -msgid "Personal info" -msgstr "Henkilökohtaiset tiedot" +#: newforms/fields.py:151 newforms/fields.py:174 newforms/fields.py:204 +#, python-format +msgid "Ensure this value is less than or equal to %s." +msgstr "Tämän luvun on oltava enintään %s." -#: contrib/auth/models.py:112 -msgid "Permissions" -msgstr "Oikeudet" +#: newforms/fields.py:153 newforms/fields.py:176 newforms/fields.py:206 +#, python-format +msgid "Ensure this value is greater than or equal to %s." +msgstr "Tämän luvun on oltava vähintään %s." -#: contrib/auth/models.py:113 -msgid "Important dates" -msgstr "Tärkeät päivämäärät" +#: newforms/fields.py:172 newforms/fields.py:199 +msgid "Enter a number." +msgstr "Syötä kokonaisluku." -#: contrib/auth/models.py:114 -msgid "Groups" -msgstr "Ryhmät" +#: newforms/fields.py:208 +#, python-format +msgid "Ensure that there are no more than %s digits in total." +msgstr "Tässä luvussa voi olla yhteensä enintään %s numeroa." -#: contrib/auth/models.py:256 -msgid "message" -msgstr "viesti" +#: newforms/fields.py:210 +#, python-format +msgid "Ensure that there are no more than %s decimal places." +msgstr "Tässä luvussa saa olla enintään %s desimaalia." -#: contrib/auth/views.py:39 -msgid "Logged out" -msgstr "Kirjautunut ulos" +#: newforms/fields.py:212 +#, python-format +msgid "Ensure that there are no more than %s digits before the decimal point." +msgstr "Tässä luvussa saa olla enintään %s numeroa ennen desimaalipilkkua." -#: contrib/admin/models.py:16 -msgid "action time" -msgstr "tapahtumahetki" +#: newforms/fields.py:245 newforms/fields.py:629 +msgid "Enter a valid date." +msgstr "Syötä oikea päivämäärä." -#: contrib/admin/models.py:19 -msgid "object id" +#: newforms/fields.py:272 newforms/fields.py:631 +msgid "Enter a valid time." +msgstr "Syötä oikea kellonaika." + +#: newforms/fields.py:308 +msgid "Enter a valid date/time." +msgstr "Syötä oikea pvm/kellonaika." + +#: newforms/fields.py:321 +msgid "Enter a valid value." +msgstr "Syötä oikea arvo." + +#: newforms/fields.py:379 +msgid "No file was submitted." +msgstr "Yhtään tiedostoa ei ole lähetetty." + +#: newforms/fields.py:381 oldforms/__init__.py:688 +msgid "The submitted file is empty." +msgstr "Lähetetty tiedosto on tyhjä." + +#: newforms/fields.py:419 newforms/fields.py:444 +msgid "Enter a valid URL." +msgstr "Syötä oikea URL-osoite." + +#: newforms/fields.py:446 +msgid "This URL appears to be a broken link." +msgstr "Tämä URL-osoite on rikkinäinen linkki." + +#: newforms/fields.py:497 newforms/models.py:180 +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "Valitse oikea vaihtoehto. Valintasi ei löydy vaihtoehtojen joukosta." + +#: newforms/fields.py:513 newforms/fields.py:589 newforms/models.py:197 +msgid "Enter a list of values." +msgstr "Syötä lista." + +#: newforms/fields.py:519 newforms/models.py:203 +#, python-format +msgid "Select a valid choice. %s is not one of the available choices." +msgstr "Valitse oikea vaihtoehto. %s ei löydy vaihtoehtojen joukosta." + +#: newforms/widgets.py:188 contrib/admin/filterspecs.py:152 +#: oldforms/__init__.py:591 +msgid "Unknown" +msgstr "Tuntematon" + +#: newforms/widgets.py:188 contrib/admin/filterspecs.py:145 +#: oldforms/__init__.py:591 +msgid "Yes" +msgstr "Kyllä" + +#: newforms/widgets.py:188 contrib/admin/filterspecs.py:145 +#: oldforms/__init__.py:591 +msgid "No" +msgstr "Ei" + +#: views/generic/create_update.py:43 +#, python-format +msgid "The %(verbose_name)s was created successfully." +msgstr "%(verbose_name)s luotiin onnistuneesti." + +#: views/generic/create_update.py:117 +#, python-format +msgid "The %(verbose_name)s was updated successfully." +msgstr "%(verbose_name)s päivitettiin onnistuneesti." + +#: views/generic/create_update.py:184 +#, python-format +msgid "The %(verbose_name)s was deleted." +msgstr "%(verbose_name)s on poistettu." + +#: template/defaultfilters.py:532 +msgid "yes,no,maybe" +msgstr "kyllä,ei,ehkä" + +#: template/defaultfilters.py:561 +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" + +#: template/defaultfilters.py:563 +#, python-format +msgid "%.1f KB" +msgstr "%.1f Kt" + +#: template/defaultfilters.py:565 +#, python-format +msgid "%.1f MB" +msgstr "%.1f Mt" + +#: template/defaultfilters.py:566 +#, python-format +msgid "%.1f GB" +msgstr "%.1f Gt" + +#: db/models/manipulators.py:309 +#, python-format +msgid "%(object)s with this %(type)s already exists for the given %(field)s." +msgstr "%(field)s omaa jo kohteen %(object)s, joka on tyyppiä %(type)s." + +#: db/models/fields/__init__.py:52 +#, python-format +msgid "%(optname)s with this %(fieldname)s already exists." +msgstr "%(optname)s, jolla on tämä %(fieldname)s, on jo olemassa." + +#: db/models/fields/__init__.py:414 +msgid "This value must be an integer." +msgstr "Tarvitaan kokonaisluku." + +#: db/models/fields/__init__.py:450 +msgid "This value must be either True or False." +msgstr "Tarvitaan tosi (True) tai epätosi (False)." + +#: db/models/fields/__init__.py:471 +msgid "This field cannot be null." +msgstr "Tämän kentän arvo ei voi olla \"null\"." + +#: db/models/fields/__init__.py:640 +msgid "This value must be a decimal number." +msgstr "Tähän tarvitaan desimaaliluku." + +#: db/models/fields/__init__.py:751 +msgid "Enter a valid filename." +msgstr "Tiedostonimi ei kelpaa." + +#: db/models/fields/__init__.py:894 +msgid "This value must be either None, True or False." +msgstr "Tähän tarvitaan tyhjä (None), tosi (True) tai epätosi (False)." + +#: db/models/fields/related.py:55 +#, python-format +msgid "Please enter a valid %s." +msgstr "Syöttämäsi %s ei kelpaa." + +#: db/models/fields/related.py:658 +msgid "Separate multiple IDs with commas." +msgstr "Erottele tunnisteet pilkuilla." + +#: db/models/fields/related.py:660 +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" +" Pidä \"Ctrl\"-näppäin (tai Macin \"Command\") pohjassa valitaksesi useita " +"vaihtoehtoja." + +#: db/models/fields/related.py:707 +#, 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] "Syöttämäsi %(self)s-tunniste %(value)r ei kelpaa." +msgstr[1] "Syöttämäsi %(self)s-tunnisteet %(value)r eivät kelpaa." + +#: contrib/sites/models.py:33 +msgid "domain name" +msgstr "domain-nimi" + +#: contrib/sites/models.py:34 +msgid "display name" +msgstr "näyttönimi" + +#: contrib/sites/models.py:38 +msgid "site" +msgstr "sivusto" + +#: contrib/sites/models.py:39 +msgid "sites" +msgstr "sivustot" + +#: contrib/redirects/models.py:7 +msgid "redirect from" +msgstr "ohjaa osoitteesta" + +#: contrib/redirects/models.py:8 +msgid "" +"This should be an absolute path, excluding the domain name. Example: '/" +"events/search/'." +msgstr "" +"Tässä on käytettävä absoluuttista polkua ilman verkkotunnusta. Esimerkki: " +"'\\\n" +"events/search/'" + +#: contrib/redirects/models.py:9 +msgid "redirect to" +msgstr "ohjaa osoitteeseen" + +#: contrib/redirects/models.py:10 +msgid "" +"This can be either an absolute path (as above) or a full URL starting with " +"'http://'." +msgstr "" +"Tässä on käytettävä joko absoluuttista polkua (kuten yllä) tai täydellistä " +"'http://'-alkuista URL-osoitetta." + +#: contrib/redirects/models.py:13 +msgid "redirect" +msgstr "edelleenohjaus" + +#: contrib/redirects/models.py:14 +msgid "redirects" +msgstr "edelleenohjaukset" + +#: contrib/comments/models.py:67 contrib/comments/models.py:169 +msgid "object ID" msgstr "kohteen tunniste" -#: contrib/admin/models.py:20 -msgid "object repr" -msgstr "kohteen tiedot" +#: contrib/comments/models.py:68 +msgid "headline" +msgstr "otsikko" -#: contrib/admin/models.py:21 -msgid "action flag" -msgstr "tapahtumatyyppi" +#: contrib/comments/models.py:69 contrib/comments/models.py:90 +#: contrib/comments/models.py:170 +msgid "comment" +msgstr "kommentti" -#: contrib/admin/models.py:22 -msgid "change message" -msgstr "selitys" +#: contrib/comments/models.py:70 +msgid "rating #1" +msgstr "1. pisteytys" -#: contrib/admin/models.py:25 -msgid "log entry" -msgstr "lokimerkintä" +#: contrib/comments/models.py:71 +msgid "rating #2" +msgstr "2. pisteytys" -#: contrib/admin/models.py:26 -msgid "log entries" -msgstr "lokimerkinnät" +#: contrib/comments/models.py:72 +msgid "rating #3" +msgstr "3. pisteytys" -#: contrib/admin/filterspecs.py:40 +#: contrib/comments/models.py:73 +msgid "rating #4" +msgstr "4. pisteytys" + +#: contrib/comments/models.py:74 +msgid "rating #5" +msgstr "5. pisteytys" + +#: contrib/comments/models.py:75 +msgid "rating #6" +msgstr "6. pisteytys" + +#: contrib/comments/models.py:76 +msgid "rating #7" +msgstr "7. pisteytys" + +#: contrib/comments/models.py:77 +msgid "rating #8" +msgstr "8. pisteytys" + +#: contrib/comments/models.py:82 +msgid "is valid rating" +msgstr "on sallittu pisteytys" + +#: contrib/comments/models.py:83 contrib/comments/models.py:172 +msgid "date/time submitted" +msgstr "lähetyshetki" + +#: contrib/comments/models.py:84 contrib/comments/models.py:173 +msgid "is public" +msgstr "on julkinen" + +#: contrib/comments/models.py:85 contrib/admin/views/doc.py:306 +msgid "IP address" +msgstr "IP-osoite" + +#: contrib/comments/models.py:86 +msgid "is removed" +msgstr "on poistettu" + +#: 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 "" +"Rastita jos kommentti on asiaankuulumaton. Kommentin tilalla näytetään\n" +"viesti \"Tämä kommentti on poistettu\"." + +#: contrib/comments/models.py:91 +msgid "comments" +msgstr "kommentit" + +#: contrib/comments/models.py:134 contrib/comments/models.py:213 +msgid "Content object" +msgstr "Kommentoitu kohde" + +#: contrib/comments/models.py:162 +#, python-format +msgid "" +"Posted by %(user)s at %(date)s\n" +"\n" +"%(comment)s\n" +"\n" +"http://%(domain)s%(url)s" +msgstr "" +" Kirjoittanut %(user)s, pvm %(date)s\\n\n" +" \\n\n" +" %(comment)s\\n\n" +" \\n\n" +" http://%(domain)s%(url)s" + +#: contrib/comments/models.py:171 +msgid "person's name" +msgstr "henkilön nimi" + +#: contrib/comments/models.py:174 +msgid "ip address" +msgstr "IP-osoite" + +#: contrib/comments/models.py:176 +msgid "approved by staff" +msgstr "ylläpidon hyväksymä" + +#: contrib/comments/models.py:179 +msgid "free comment" +msgstr "vapaa kommentti" + +#: contrib/comments/models.py:180 +msgid "free comments" +msgstr "vapaat kommentit" + +#: contrib/comments/models.py:239 +msgid "score" +msgstr "pisteet" + +#: contrib/comments/models.py:240 +msgid "score date" +msgstr "pisteytyspäivä" + +#: contrib/comments/models.py:243 +msgid "karma score" +msgstr "karma-pisteytys" + +#: contrib/comments/models.py:244 +msgid "karma scores" +msgstr "karma-pisteytykset" + +#: contrib/comments/models.py:248 +#, python-format +msgid "%(score)d rating by %(user)s" +msgstr "%(score)d pistettä käyttäjältä %(user)s" + +#: contrib/comments/models.py:264 +#, python-format +msgid "" +"This comment was flagged by %(user)s:\n" +"\n" +"%(text)s" +msgstr "" +" %(user)s on merkinnyt tämän kommentin:\\n\n" +" \\n\n" +" %(text)s" + +#: contrib/comments/models.py:271 +msgid "flag date" +msgstr "merkintäpäivä" + +#: contrib/comments/models.py:274 +msgid "user flag" +msgstr "käyttäjän merkki" + +#: contrib/comments/models.py:275 +msgid "user flags" +msgstr "käyttäjien merkit" + +#: contrib/comments/models.py:279 +#, python-format +msgid "Flag by %r" +msgstr "Käyttäjän %r merkki" + +#: contrib/comments/models.py:284 +msgid "deletion date" +msgstr "poistamispäivä" + +#: contrib/comments/models.py:286 +msgid "moderator deletion" +msgstr "valvojan poisto" + +#: contrib/comments/models.py:287 +msgid "moderator deletions" +msgstr "valvojien poistot" + +#: contrib/comments/models.py:291 +#, python-format +msgid "Moderator deletion by %r" +msgstr "Valvojan %r poisto" + +#: contrib/comments/templates/comments/freeform.html:4 +msgid "Your name:" +msgstr "Nimesi:" + +#: contrib/comments/templates/comments/freeform.html:5 +#: contrib/comments/templates/comments/form.html:28 +msgid "Comment:" +msgstr "Kommentti:" + +#: contrib/comments/templates/comments/freeform.html:10 +#: contrib/comments/templates/comments/form.html:35 +msgid "Preview comment" +msgstr "Esikatsele kommenttia" + +#: contrib/comments/templates/comments/form.html:6 +#: contrib/comments/templates/comments/form.html:8 +#: contrib/admin/templates/admin/login.html:17 +msgid "Username:" +msgstr "Käyttäjätunnus:" + +#: contrib/comments/templates/comments/form.html:6 +#: contrib/admin/templates/admin_doc/template_tag_index.html:5 +#: contrib/admin/templates/admin_doc/model_detail.html:3 +#: contrib/admin/templates/admin_doc/template_detail.html:4 +#: contrib/admin/templates/admin_doc/index.html:4 +#: contrib/admin/templates/admin_doc/view_detail.html:4 +#: contrib/admin/templates/admin_doc/missing_docutils.html:4 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +#: contrib/admin/templates/admin_doc/template_filter_index.html:5 +#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/view_index.html:5 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +msgid "Log out" +msgstr "Kirjaudu ulos" + +#: contrib/comments/templates/comments/form.html:8 +#: contrib/admin/templates/admin/login.html:20 +msgid "Password:" +msgstr "Salasana:" + +#: contrib/comments/templates/comments/form.html:8 +msgid "Forgotten your password?" +msgstr "Unohditko salasanasi?" + +#: contrib/comments/templates/comments/form.html:12 +msgid "Ratings" +msgstr "Pisteytykset" + +#: contrib/comments/templates/comments/form.html:12 +#: contrib/comments/templates/comments/form.html:23 +msgid "Required" +msgstr "Vaaditaan" + +#: contrib/comments/templates/comments/form.html:12 +#: contrib/comments/templates/comments/form.html:23 +msgid "Optional" +msgstr "Vapaavalintainen" + +#: contrib/comments/templates/comments/form.html:23 +msgid "Post a photo" +msgstr "Lähetä valokuva" + +#: contrib/comments/views/karma.py:20 +msgid "Anonymous users cannot vote" +msgstr "Anonyymit käyttäjät eivät voi äänestää" + +#: contrib/comments/views/karma.py:24 +msgid "Invalid comment ID" +msgstr "Kommentin tunniste on virheellinen" + +#: contrib/comments/views/karma.py:26 +msgid "No voting for yourself" +msgstr "Itseään ei voi äänestää" + +#: contrib/comments/views/comments.py:28 +msgid "" +"This rating is required because you've entered at least one other rating." +msgstr "" +"Tämä pisteytys on annettava, koska olet syöttänyt ainakin yhden muunkin " +"pisteytyksen." + +#: contrib/comments/views/comments.py:112 +#, python-format +msgid "" +"This comment was posted by a user who has posted fewer than %(count)s " +"comment:\n" +"\n" +"%(text)s" +msgid_plural "" +"This comment was posted by a user who has posted fewer than %(count)s " +"comments:\n" +"\n" +"%(text)s" +msgstr[0] "" +"Kommentin kirjoittanut käyttäjä on kirjoittanut vain yhden kommentin:\n" +"\n" +"%(text)s" +msgstr[1] "" +"Kommentin kirjoittanut käyttäjä on kirjoittanut alle %(count)s kommenttia:\n" +"\n" +"%(text)s" + +# Mitä "sketchy user" tarkoittaa? +#: contrib/comments/views/comments.py:117 +#, python-format +msgid "" +"This comment was posted by a sketchy user:\n" +"\n" +"%(text)s" +msgstr "" +"Tämä on \"sketchy\"-käyttäjän kirjoittama kommentti:\n" +"\n" +"%(text)s" + +#: contrib/comments/views/comments.py:189 +#: contrib/comments/views/comments.py:281 +msgid "Only POSTs are allowed" +msgstr "Vain POST-kutsut sallittu" + +#: contrib/comments/views/comments.py:193 +#: contrib/comments/views/comments.py:285 +msgid "One or more of the required fields wasn't submitted" +msgstr "Yksi tai useampi vaadittu kenttä on jäänyt täyttämättä" + +#: contrib/comments/views/comments.py:197 +#: contrib/comments/views/comments.py:287 +msgid "Somebody tampered with the comment form (security violation)" +msgstr "Kommenttilomaketta on käpälöity (turvallisuusrike)" + +#: contrib/comments/views/comments.py:207 +#: contrib/comments/views/comments.py:293 +msgid "" +"The comment form had an invalid 'target' parameter -- the object ID was " +"invalid" +msgstr "" +"Kommenttilomakkeen 'target'-parametri ei kelpaa -- kohteen ID oli " +"virheellinen" + +#: contrib/comments/views/comments.py:258 +#: contrib/comments/views/comments.py:322 +msgid "The comment form didn't provide either 'preview' or 'post'" +msgstr "Kommenttilomake ei pyytänyt esikatselua tai lähettämistä" + +#: contrib/humanize/templatetags/humanize.py:20 +msgid "th" +msgstr "." + +#: contrib/humanize/templatetags/humanize.py:20 +msgid "st" +msgstr "." + +#: contrib/humanize/templatetags/humanize.py:20 +msgid "nd" +msgstr "." + +#: contrib/humanize/templatetags/humanize.py:20 +msgid "rd" +msgstr "." + +#: contrib/humanize/templatetags/humanize.py:50 +#, python-format +msgid "%(value).1f million" +msgid_plural "%(value).1f million" +msgstr[0] "" +msgstr[1] "" + +#: contrib/humanize/templatetags/humanize.py:53 +#, python-format +msgid "%(value).1f billion" +msgid_plural "%(value).1f billion" +msgstr[0] "" +msgstr[1] "" + +#: contrib/humanize/templatetags/humanize.py:56 +#, python-format +msgid "%(value).1f trillion" +msgid_plural "%(value).1f trillion" +msgstr[0] "" +msgstr[1] "" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "one" +msgstr "yksi" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "two" +msgstr "kaksi" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "three" +msgstr "kolme" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "four" +msgstr "neljä" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "five" +msgstr "viisi" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "six" +msgstr "kuusi" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "seven" +msgstr "seitsemän" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "eight" +msgstr "kahdeksan" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "nine" +msgstr "yhdeksän" + +#: contrib/humanize/templatetags/humanize.py:90 +msgid "today" +msgstr "tänään" + +#: contrib/humanize/templatetags/humanize.py:92 +msgid "tomorrow" +msgstr "huomenna" + +#: contrib/humanize/templatetags/humanize.py:94 +msgid "yesterday" +msgstr "eilen" + +#: contrib/sessions/models.py:68 +msgid "session key" +msgstr "istunnon avain" + +#: contrib/sessions/models.py:69 +msgid "session data" +msgstr "istunnon tiedot" + +#: contrib/sessions/models.py:70 +msgid "expire date" +msgstr "vanhenee" + +#: contrib/sessions/models.py:74 +msgid "session" +msgstr "istunto" + +#: contrib/sessions/models.py:75 +msgid "sessions" +msgstr "istunnot" + +#: contrib/contenttypes/models.py:37 +msgid "python model class name" +msgstr "mallin python-luokan nimi" + +#: contrib/contenttypes/models.py:40 +msgid "content type" +msgstr "sisältötyyppi" + +#: contrib/contenttypes/models.py:41 +msgid "content types" +msgstr "sisältötyypit" + +#: contrib/admin/filterspecs.py:42 #, python-format msgid "" "

                  By %s:

                  \n" @@ -640,553 +1058,114 @@ msgstr "" "

                  Yksi %s:

                  \n" "
                    \n" -#: contrib/admin/filterspecs.py:70 contrib/admin/filterspecs.py:88 -#: contrib/admin/filterspecs.py:143 contrib/admin/filterspecs.py:169 +#: contrib/admin/filterspecs.py:72 contrib/admin/filterspecs.py:90 +#: contrib/admin/filterspecs.py:145 contrib/admin/filterspecs.py:171 msgid "All" msgstr "Kaikki" -#: contrib/admin/filterspecs.py:109 +#: contrib/admin/filterspecs.py:111 msgid "Any date" msgstr "Mikä tahansa päivä" -#: contrib/admin/filterspecs.py:110 +#: contrib/admin/filterspecs.py:112 msgid "Today" msgstr "Tänään" -#: contrib/admin/filterspecs.py:113 +#: contrib/admin/filterspecs.py:115 msgid "Past 7 days" msgstr "Viimeiset 7 päivää" -#: contrib/admin/filterspecs.py:115 +#: contrib/admin/filterspecs.py:117 msgid "This month" msgstr "Tässä kuussa" -#: contrib/admin/filterspecs.py:117 +#: contrib/admin/filterspecs.py:119 msgid "This year" msgstr "Tänä vuonna" -#: contrib/admin/filterspecs.py:143 -msgid "Yes" -msgstr "Kyllä" +#: contrib/admin/models.py:17 +msgid "action time" +msgstr "tapahtumahetki" -#: contrib/admin/filterspecs.py:143 -msgid "No" -msgstr "Ei" +#: contrib/admin/models.py:20 +msgid "object id" +msgstr "kohteen tunniste" -#: contrib/admin/filterspecs.py:150 -msgid "Unknown" -msgstr "Tuntematon" +#: contrib/admin/models.py:21 +msgid "object repr" +msgstr "kohteen tiedot" -#: contrib/admin/views/decorators.py:24 -#: contrib/admin/templates/admin/login.html:25 -msgid "Log in" -msgstr "Kirjaudu sisään" +#: contrib/admin/models.py:22 +msgid "action flag" +msgstr "tapahtumatyyppi" -#: 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 "Kirjaudu uudelleen sisään, koska istuntosi on mennyt umpeen. Muutoksesi ovat silti tallessa." +#: contrib/admin/models.py:23 +msgid "change message" +msgstr "selitys" -#: 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 "Selaimesi ei salli evästeitä. Muuta asetukset sallimaan evästeet, lataa tämä sivu uudelleen ja yritä toistamiseen." +#: contrib/admin/models.py:26 +msgid "log entry" +msgstr "lokimerkintä" -#: contrib/admin/views/decorators.py:83 -msgid "Usernames cannot contain the '@' character." -msgstr "Käyttäjätunnuksessa ei saa olla '@'-merkkiä." +#: contrib/admin/models.py:27 +msgid "log entries" +msgstr "lokimerkinnät" -#: contrib/admin/views/decorators.py:85 -#, python-format -msgid "Your e-mail address is not your username. Try '%s' instead." -msgstr "Käyttäjätunnus ei ole sama kuin sähköpostiosoite. Kokeile '%s'." - -#: contrib/admin/views/main.py:223 -msgid "Site administration" -msgstr "Sivuston ylläpito" - -#: contrib/admin/views/main.py:257 contrib/admin/views/auth.py:14 -#, python-format -msgid "The %(name)s \"%(obj)s\" was added successfully." -msgstr "%(name)s \"%(obj)s\" on nyt lisätty." - -#: contrib/admin/views/main.py:261 contrib/admin/views/main.py:345 -#: contrib/admin/views/auth.py:19 -msgid "You may edit it again below." -msgstr "Voit muokata sitä uudelleen alla." - -#: contrib/admin/views/main.py:269 contrib/admin/views/main.py:354 -#, python-format -msgid "You may add another %s below." -msgstr "Uusi %s on lisättävissä alla." - -#: contrib/admin/views/main.py:287 -#, python-format -msgid "Add %s" -msgstr "Uusi %s" - -#: contrib/admin/views/main.py:333 -#, python-format -msgid "Added %s." -msgstr "Lisätty %s." - -#: contrib/admin/views/main.py:333 contrib/admin/views/main.py:335 -#: contrib/admin/views/main.py:337 -msgid "and" -msgstr "ja" - -#: contrib/admin/views/main.py:335 -#, python-format -msgid "Changed %s." -msgstr "Muokattu: %s." - -#: contrib/admin/views/main.py:337 -#, python-format -msgid "Deleted %s." -msgstr "Poistettu %s." - -#: contrib/admin/views/main.py:340 -msgid "No fields changed." -msgstr "Ei muutoksia kenttiin." - -#: contrib/admin/views/main.py:343 -#, python-format -msgid "The %(name)s \"%(obj)s\" was changed successfully." -msgstr "%(name)s \"%(obj)s\" on nyt muutettu." - -#: contrib/admin/views/main.py:351 -#, python-format -msgid "" -"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." -msgstr "%(name)s \"%(obj)s\" on nyt lisätty. Voit muokata sitä uudelleen alla." - -#: contrib/admin/views/main.py:389 -#, python-format -msgid "Change %s" -msgstr "Muokkaa: %s" - -#: contrib/admin/views/main.py:471 -#, python-format -msgid "One or more %(fieldname)s in %(name)s: %(obj)s" -msgstr "Yksi tai useampi %(fieldname)s kohteessa %(name)s: %(obj)s" - -#: contrib/admin/views/main.py:476 -#, python-format -msgid "One or more %(fieldname)s in %(name)s:" -msgstr "Yksi tai useampi %(fieldname)s kohteessa %(name)s:" - -#: contrib/admin/views/main.py:509 -#, python-format -msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" on poistettu." - -#: contrib/admin/views/main.py:512 -msgid "Are you sure?" -msgstr "Oletko varma?" - -#: contrib/admin/views/main.py:534 -#, python-format -msgid "Change history: %s" -msgstr "Muokkaushistoria: %s" - -#: contrib/admin/views/main.py:568 -#, python-format -msgid "Select %s" -msgstr "Valitse %s" - -#: contrib/admin/views/main.py:568 -#, python-format -msgid "Select %s to change" -msgstr "Valitse muokattava %s" - -#: contrib/admin/views/main.py:744 -msgid "Database error" -msgstr "Tietokantavirhe" - -#: contrib/admin/views/doc.py:291 contrib/admin/views/doc.py:301 -#: contrib/admin/views/doc.py:303 contrib/admin/views/doc.py:309 -#: contrib/admin/views/doc.py:310 contrib/admin/views/doc.py:312 -msgid "Integer" -msgstr "Kokonaisluku" - -#: contrib/admin/views/doc.py:292 -msgid "Boolean (Either True or False)" -msgstr "Totuusarvo: joko tosi (True) tai epätosi (False)" - -#: contrib/admin/views/doc.py:293 contrib/admin/views/doc.py:311 -#, python-format -msgid "String (up to %(maxlength)s)" -msgstr "Merkkijono (enintään %(maxlength)s merkkiä)" - -#: contrib/admin/views/doc.py:294 -msgid "Comma-separated integers" -msgstr "Pilkulla erotetut kokonaisluvut" - -#: contrib/admin/views/doc.py:295 -msgid "Date (without time)" -msgstr "Päivämäärä" - -#: contrib/admin/views/doc.py:296 -msgid "Date (with time)" -msgstr "Päivämäärä ja kellonaika" - -#: contrib/admin/views/doc.py:297 -msgid "E-mail address" -msgstr "Sähköpostios." - -#: contrib/admin/views/doc.py:298 contrib/admin/views/doc.py:299 -#: contrib/admin/views/doc.py:302 -msgid "File path" -msgstr "Tiedostopolku" - -#: contrib/admin/views/doc.py:300 -msgid "Decimal number" -msgstr "Desimaaliluku" - -#: contrib/admin/views/doc.py:304 contrib/comments/models.py:85 -msgid "IP address" -msgstr "IP-osoite" - -#: contrib/admin/views/doc.py:306 -msgid "Boolean (Either True, False or None)" -msgstr "Totuusarvo: joko tosi (True), epätosi (False) tai ei mikään (None)" - -#: contrib/admin/views/doc.py:307 -msgid "Relation to parent model" -msgstr "Relaatio emomalliin" - -#: contrib/admin/views/doc.py:308 -msgid "Phone number" -msgstr "Puhelinnumero" - -#: contrib/admin/views/doc.py:313 -msgid "Text" -msgstr "Tekstiä" - -#: contrib/admin/views/doc.py:314 -msgid "Time" -msgstr "Kellonaika" - -#: contrib/admin/views/doc.py:315 contrib/flatpages/models.py:7 -msgid "URL" -msgstr "URL-osoite" - -#: contrib/admin/views/doc.py:316 -msgid "U.S. state (two uppercase letters)" -msgstr "USA:n osavaltio (kaksikirjaiminen versaalein)" - -#: contrib/admin/views/doc.py:317 -msgid "XML text" -msgstr "XML-teksti" - -#: contrib/admin/views/auth.py:25 -msgid "Add user" -msgstr "Uusi käyttäjä" - -#: contrib/admin/templatetags/admin_list.py:230 +#: contrib/admin/templatetags/admin_list.py:254 msgid "All dates" msgstr "Kaikki päivät" -#: contrib/admin/templates/admin/pagination.html:10 -msgid "Show all" -msgstr "Näytä kaikki" - -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: contrib/admin/templates/admin/change_form.html:10 -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/object_history.html:3 -#: contrib/admin/templates/admin/base.html:24 -#: contrib/admin/templates/admin_doc/bookmarklets.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 -#: contrib/admin/templates/registration/password_change_done.html:3 -msgid "Documentation" -msgstr "Ohjeita" - -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: contrib/admin/templates/admin/change_form.html:10 -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/object_history.html:3 -#: contrib/admin/templates/admin/base.html:24 -#: contrib/admin/templates/admin_doc/template_filter_index.html:5 -#: contrib/admin/templates/admin_doc/bookmarklets.html:4 #: contrib/admin/templates/admin_doc/template_tag_index.html:5 -#: contrib/admin/templates/admin_doc/index.html:4 #: contrib/admin/templates/admin_doc/model_detail.html:3 -#: contrib/admin/templates/admin_doc/missing_docutils.html:4 #: contrib/admin/templates/admin_doc/template_detail.html:4 -#: contrib/admin/templates/admin_doc/view_index.html:5 -#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/index.html:4 #: contrib/admin/templates/admin_doc/view_detail.html:4 +#: contrib/admin/templates/admin_doc/missing_docutils.html:4 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +#: contrib/admin/templates/admin_doc/template_filter_index.html:5 +#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/view_index.html:5 #: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/admin/auth/user/change_password.html:15 +#: contrib/admin/templates/admin/auth/user/change_password.html:46 msgid "Change password" msgstr "Vaihda salasana" -#: contrib/admin/templates/admin/delete_confirmation.html:3 -#: contrib/admin/templates/admin/change_form.html:10 -#: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/object_history.html:3 -#: contrib/admin/templates/admin/base.html:24 -#: contrib/admin/templates/admin_doc/template_filter_index.html:5 -#: contrib/admin/templates/admin_doc/bookmarklets.html:4 -#: contrib/admin/templates/admin_doc/template_tag_index.html:5 -#: contrib/admin/templates/admin_doc/index.html:4 -#: contrib/admin/templates/admin_doc/model_detail.html:3 -#: contrib/admin/templates/admin_doc/missing_docutils.html:4 -#: contrib/admin/templates/admin_doc/template_detail.html:4 -#: contrib/admin/templates/admin_doc/view_index.html:5 -#: contrib/admin/templates/admin_doc/model_index.html:5 -#: contrib/admin/templates/admin_doc/view_detail.html:4 -#: contrib/admin/templates/registration/password_change_form.html:3 -#: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/comments/templates/comments/form.html:6 -msgid "Log out" -msgstr "Kirjaudu ulos" - -#: contrib/admin/templates/admin/delete_confirmation.html:6 -#: contrib/admin/templates/admin/change_form.html:13 -#: contrib/admin/templates/admin/change_list.html:6 -#: contrib/admin/templates/admin/object_history.html:5 -#: contrib/admin/templates/admin/500.html:4 -#: contrib/admin/templates/admin/invalid_setup.html:4 -#: contrib/admin/templates/admin/base.html:29 #: contrib/admin/templates/admin_doc/bookmarklets.html:3 -#: contrib/admin/templates/registration/password_reset_form.html:4 -#: contrib/admin/templates/registration/logged_out.html:4 #: contrib/admin/templates/registration/password_reset_done.html:4 #: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admin/templates/registration/logged_out.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:4 #: contrib/admin/templates/registration/password_change_done.html:4 +#: contrib/admin/templates/admin/delete_confirmation.html:6 +#: contrib/admin/templates/admin/base.html:30 +#: contrib/admin/templates/admin/invalid_setup.html:4 +#: contrib/admin/templates/admin/object_history.html:5 +#: contrib/admin/templates/admin/change_list.html:6 +#: contrib/admin/templates/admin/change_form.html:13 +#: contrib/admin/templates/admin/500.html:4 +#: contrib/admin/templates/admin/auth/user/change_password.html:12 msgid "Home" msgstr "Etusivu" -#: contrib/admin/templates/admin/delete_confirmation.html:9 -#: contrib/admin/templates/admin/submit_line.html:3 -msgid "Delete" -msgstr "Poista" - -#: contrib/admin/templates/admin/delete_confirmation.html:14 -#, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "Kohteen '%(escaped_object)s' (%(object_name)s) poisto poistaisi myös siihen liittyviä kohteita, mutta sinulla ei ole oikeutta näiden kohteiden poistamiseen:" - -#: contrib/admin/templates/admin/delete_confirmation.html:21 -#, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "Haluatko varmasti poistaa kohteen \"%(escaped_object)s\" (%(object_name)s)? Myös seuraavat kohteet poistettaisiin samalla:" - -#: contrib/admin/templates/admin/delete_confirmation.html:26 -msgid "Yes, I'm sure" -msgstr "Kyllä, olen varma" - -#: contrib/admin/templates/admin/404.html:4 -#: contrib/admin/templates/admin/404.html:8 -msgid "Page not found" -msgstr "Sivua ei löydy" - -#: contrib/admin/templates/admin/404.html:10 -msgid "We're sorry, but the requested page could not be found." -msgstr "Pahoittelemme, pyydettyä sivua ei voitu löytää." - -#: contrib/admin/templates/admin/change_form.html:15 -#: contrib/admin/templates/admin/index.html:28 -msgid "Add" -msgstr "Lisää uusi" - -#: contrib/admin/templates/admin/change_form.html:20 -#: contrib/admin/templates/admin/object_history.html:5 -msgid "History" -msgstr "Muokkaushistoria" - -#: contrib/admin/templates/admin/change_form.html:21 -msgid "View on site" -msgstr "Näytä lopputulos" - -#: contrib/admin/templates/admin/change_form.html:30 -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "Korjaa virhe." -msgstr[1] "Korjaa virheet." - -#: contrib/admin/templates/admin/change_form.html:48 -msgid "Ordering" -msgstr "Järjestys" - -#: contrib/admin/templates/admin/change_form.html:51 -msgid "Order:" -msgstr "Järjestysnumero:" - -#: contrib/admin/templates/admin/filter.html:2 -#, python-format -msgid " By %(filter_title)s " -msgstr " %(filter_title)s:" - -#: contrib/admin/templates/admin/submit_line.html:4 -msgid "Save as new" -msgstr "Tallenna uutena" - -#: contrib/admin/templates/admin/submit_line.html:5 -msgid "Save and add another" -msgstr "Tallenna ja lisää seuraava" - -#: contrib/admin/templates/admin/submit_line.html:6 -msgid "Save and continue editing" -msgstr "Tallenna välillä ja jatka muokkaamista" - -#: contrib/admin/templates/admin/submit_line.html:7 -msgid "Save" -msgstr "Tallenna ja poistu" - -#: contrib/admin/templates/admin/change_list.html:11 -#, python-format -msgid "Add %(name)s" -msgstr "Lisää uusi %(name)s" - -#: contrib/admin/templates/admin/index.html:17 -#, python-format -msgid "Models available in the %(name)s application." -msgstr "Sovelluksen %(name)s mallit." - -#: contrib/admin/templates/admin/index.html:18 -#, python-format -msgid "%(name)s" -msgstr "%(name)s" - -#: contrib/admin/templates/admin/index.html:34 -msgid "Change" -msgstr "Muokkaa" - -#: contrib/admin/templates/admin/index.html:44 -msgid "You don't have permission to edit anything." -msgstr "Sinulla ei ole oikeutta muokata mitään." - -#: contrib/admin/templates/admin/index.html:52 -msgid "Recent Actions" -msgstr "Viimeisimmät muutokset" - -#: contrib/admin/templates/admin/index.html:53 -msgid "My Actions" -msgstr "Sinun tekemäsi muutokset" - -#: contrib/admin/templates/admin/index.html:57 -msgid "None available" -msgstr "Ei yhtään" - -#: contrib/admin/templates/admin/base_site.html:4 -msgid "Django site admin" -msgstr "Django-sivuston ylläpito" - -#: contrib/admin/templates/admin/base_site.html:7 -msgid "Django administration" -msgstr "Djangon ylläpito" - -#: contrib/admin/templates/admin/object_history.html:18 -msgid "Date/time" -msgstr "Pvm/klo" - -#: contrib/admin/templates/admin/object_history.html:19 -msgid "User" -msgstr "Käyttäjä" - -#: contrib/admin/templates/admin/object_history.html:20 -msgid "Action" -msgstr "Toiminto" - -#: contrib/admin/templates/admin/object_history.html:26 -msgid "DATE_WITH_TIME_FULL" -msgstr "N j, Y, P" - -#: contrib/admin/templates/admin/object_history.html:36 -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "Tällä kohteella ei ole muutoshistoriaa. Sitä ei ole lisätty tämän ylläpitosivun avulla." - -#: contrib/admin/templates/admin/500.html:4 -msgid "Server error" -msgstr "Palvelinvirhe" - -#: contrib/admin/templates/admin/500.html:6 -msgid "Server error (500)" -msgstr "Palvelinvirhe (500)" - -#: contrib/admin/templates/admin/500.html:9 -msgid "Server Error (500)" -msgstr "Palvelinvirhe (500)" - -#: 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 "Tietokanta-asennuksessasi on jotain vialla. Varmistu, että sopivat taulut on luotu ja että oikea käyttäjä voi lukea tietokantaa." - -#: contrib/admin/templates/admin/search_form.html:8 -msgid "Go" -msgstr "Etsi" - -#: contrib/admin/templates/admin/search_form.html:10 -#, python-format -msgid "1 result" -msgid_plural "%(counter)s results" -msgstr[0] "1 hakutulas" -msgstr[1] "%(counter)s hakutulosta" - -#: contrib/admin/templates/admin/search_form.html:10 -#, python-format -msgid "%(full_result_count)s total" -msgstr "yhteensä %(full_result_count)s" - -#: contrib/admin/templates/admin/filters.html:4 -msgid "Filter" -msgstr "Suodatin" - -#: contrib/admin/templates/admin/login.html:17 -#: contrib/comments/templates/comments/form.html:6 -#: contrib/comments/templates/comments/form.html:8 -msgid "Username:" -msgstr "Käyttäjätunnus:" - -#: contrib/admin/templates/admin/login.html:20 -#: contrib/comments/templates/comments/form.html:8 -msgid "Password:" -msgstr "Salasana:" - -#: contrib/admin/templates/admin/login.html:22 -msgid "Have you forgotten your password?" -msgstr "Oletko unohtanut salasanasi?" - -#: contrib/admin/templates/admin/base.html:24 -msgid "Welcome," -msgstr "Tervetuloa," - -#: 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 "Syötä ensin käyttäjätunnus ja salasana. Sen jälkeen voit muokata muita käyttäjän tietoja." - -#: contrib/admin/templates/admin/auth/user/add_form.html:12 -msgid "Username" -msgstr "Käyttäjätunnus" - -#: contrib/admin/templates/admin/auth/user/add_form.html:18 -msgid "Password" -msgstr "Salasana" - -#: contrib/admin/templates/admin/auth/user/add_form.html:23 -msgid "Password (again)" -msgstr "Salasana toistamiseen" - -#: contrib/admin/templates/admin/auth/user/add_form.html:24 -msgid "Enter the same password as above, for verification." -msgstr "Syötä sama salasana tarkistuksen vuoksi toistamiseen." +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +msgid "Documentation" +msgstr "Ohjeita" #: contrib/admin/templates/admin_doc/bookmarklets.html:3 msgid "Bookmarklets" @@ -1205,7 +1184,15 @@ msgid "" "bookmarklets require you to be viewing the site from a computer designated\n" "as \"internal\" (talk to your system administrator if you aren't sure if\n" "your computer is \"internal\").

                    \n" -msgstr "\n

                    Asenna kirjanmerkkinen raahaamalla linkki kirjanmerkkien työkalupalkkiin tai napsauttamalla linkkiä oikeanpuoleisella hiiren painikkeella ja valitsemalla kirjanmerkkeihin lisäämisen. Sen jälkeen voit valita kirjanmerkkisen miltä tahansa sivuston sivulta. Huomaa, että jotkin näistä kirjanmerkkisistä toimivat vain, jos selaat sivustoa \"paikalliseksi\" määritellyltä tietokoneelta (kysy lisätietoja verkkonne ylläpitäjältä).

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

                    Asenna kirjanmerkkinen raahaamalla linkki kirjanmerkkien " +"työkalupalkkiin tai napsauttamalla linkkiä oikeanpuoleisella hiiren " +"painikkeella ja valitsemalla kirjanmerkkeihin lisäämisen. Sen jälkeen voit " +"valita kirjanmerkkisen miltä tahansa sivuston sivulta. Huomaa, että jotkin " +"näistä kirjanmerkkisistä toimivat vain, jos selaat sivustoa \"paikalliseksi" +"\" määritellyltä tietokoneelta (kysy lisätietoja verkkonne ylläpitäjältä).\n" #: contrib/admin/templates/admin_doc/bookmarklets.html:19 msgid "Documentation for this page" @@ -1225,7 +1212,9 @@ msgstr "Näytä kohteen tunniste" msgid "" "Shows the content-type and unique ID for pages that represent a single " "object." -msgstr "Näyttää yksittäistä kohdetta vastaavilla sivuilla kohteen tyypin ja tunnisteen." +msgstr "" +"Näyttää yksittäistä kohdetta vastaavilla sivuilla kohteen tyypin ja " +"tunnisteen." #: contrib/admin/templates/admin_doc/bookmarklets.html:25 msgid "Edit this object (current window)" @@ -1233,7 +1222,8 @@ msgstr "Muokkaa tätä kohdetta (tässä ikkunassa)" #: contrib/admin/templates/admin_doc/bookmarklets.html:26 msgid "Jumps to the admin page for pages that represent a single object." -msgstr "Siirtyy yksittäistä kohdetta vastaavalta sivulta kohteen ylläpitosivulle." +msgstr "" +"Siirtyy yksittäistä kohdetta vastaavalta sivulta kohteen ylläpitosivulle." #: contrib/admin/templates/admin_doc/bookmarklets.html:28 msgid "Edit this object (new window)" @@ -1243,84 +1233,13 @@ msgstr "Muokkaa tätä kohdetta (uudessa ikkunassa)" msgid "As above, but opens the admin page in a new window." msgstr "Kuten yllä, mutta avaa ylläpitosivun uuteen ikkunaan." -#: contrib/admin/templates/widget/date_time.html:3 -msgid "Date:" -msgstr "Pvm:" - -#: contrib/admin/templates/widget/date_time.html:4 -msgid "Time:" -msgstr "Klo:" - -#: contrib/admin/templates/widget/file.html:2 -msgid "Currently:" -msgstr "Tällä hetkellä:" - -#: contrib/admin/templates/widget/file.html:3 -msgid "Change:" -msgstr "Muokkaa:" - +#: contrib/admin/templates/registration/password_reset_done.html:4 #: contrib/admin/templates/registration/password_reset_form.html:4 #: contrib/admin/templates/registration/password_reset_form.html:6 #: contrib/admin/templates/registration/password_reset_form.html:10 -#: contrib/admin/templates/registration/password_reset_done.html:4 msgid "Password reset" msgstr "Salasanan nollaus" -#: 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 "" -"Unohditko salasanasi? Syötä alle sähköpostiosoitteesi, niin \n" -"lähetämme sinulle uuden salasanan." - -#: contrib/admin/templates/registration/password_reset_form.html:16 -msgid "E-mail address:" -msgstr "Sähköpostiosoite:" - -#: contrib/admin/templates/registration/password_reset_form.html:16 -msgid "Reset my password" -msgstr "Nollaa salasana" - -#: contrib/admin/templates/registration/password_reset_email.html:2 -msgid "You're receiving this e-mail because you requested a password reset" -msgstr "Sait tämän viestin, koska pyysit uutta salasanaa" - -#: contrib/admin/templates/registration/password_reset_email.html:3 -#, python-format -msgid "for your user account at %(site_name)s" -msgstr "sivuston %(site_name)s käyttäjätilillesi" - -#: contrib/admin/templates/registration/password_reset_email.html:5 -#, python-format -msgid "Your new password is: %(new_password)s" -msgstr "Uusi salasanasi on: %(new_password)s" - -#: contrib/admin/templates/registration/password_reset_email.html:7 -msgid "Feel free to change this password by going to this page:" -msgstr "Voit vaihtaa salasanan sivulla:" - -#: contrib/admin/templates/registration/password_reset_email.html:11 -msgid "Your username, in case you've forgotten:" -msgstr "Käyttäjätunnuksesi siltä varalta, että olet unohtanut sen:" - -#: contrib/admin/templates/registration/password_reset_email.html:13 -msgid "Thanks for using our site!" -msgstr "Kiitos vierailustasi sivuillemme!" - -#: contrib/admin/templates/registration/password_reset_email.html:15 -#, python-format -msgid "The %(site_name)s team" -msgstr "%(site_name)s ylläpitäjät" - -#: contrib/admin/templates/registration/logged_out.html:8 -msgid "Thanks for spending some quality time with the Web site today." -msgstr "Kiitos sivuillamme viettämästäsi ajasta." - -#: contrib/admin/templates/registration/logged_out.html:10 -msgid "Log in again" -msgstr "Kirjaudu uudelleen sisään" - #: contrib/admin/templates/registration/password_reset_done.html:6 #: contrib/admin/templates/registration/password_reset_done.html:10 msgid "Password reset successful" @@ -1365,6 +1284,61 @@ msgstr "Varmista uusi salasana:" msgid "Change my password" msgstr "Vaihda salasana" +#: contrib/admin/templates/registration/logged_out.html:8 +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Kiitos sivuillamme viettämästäsi ajasta." + +#: contrib/admin/templates/registration/logged_out.html:10 +msgid "Log in again" +msgstr "Kirjaudu uudelleen sisään" + +#: contrib/admin/templates/registration/password_reset_email.html:2 +msgid "You're receiving this e-mail because you requested a password reset" +msgstr "Sait tämän viestin, koska pyysit uutta salasanaa" + +#: contrib/admin/templates/registration/password_reset_email.html:3 +#, python-format +msgid "for your user account at %(site_name)s" +msgstr "sivuston %(site_name)s käyttäjätilillesi" + +#: contrib/admin/templates/registration/password_reset_email.html:5 +#, python-format +msgid "Your new password is: %(new_password)s" +msgstr "Uusi salasanasi on: %(new_password)s" + +#: contrib/admin/templates/registration/password_reset_email.html:7 +msgid "Feel free to change this password by going to this page:" +msgstr "Voit vaihtaa salasanan sivulla:" + +#: contrib/admin/templates/registration/password_reset_email.html:11 +msgid "Your username, in case you've forgotten:" +msgstr "Käyttäjätunnuksesi siltä varalta, että olet unohtanut sen:" + +#: contrib/admin/templates/registration/password_reset_email.html:13 +msgid "Thanks for using our site!" +msgstr "Kiitos vierailustasi sivuillemme!" + +#: contrib/admin/templates/registration/password_reset_email.html:15 +#, python-format +msgid "The %(site_name)s team" +msgstr "%(site_name)s ylläpitäjät" + +#: 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 "" +"Unohditko salasanasi? Syötä alle sähköpostiosoitteesi, niin \n" +"lähetämme sinulle uuden salasanan." + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "E-mail address:" +msgstr "Sähköpostiosoite:" + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "Reset my password" +msgstr "Nollaa salasana" + #: contrib/admin/templates/registration/password_change_done.html:6 #: contrib/admin/templates/registration/password_change_done.html:10 msgid "Password change successful" @@ -1374,21 +1348,719 @@ msgstr "Salasanan muuttaminen onnistui" msgid "Your password was changed." msgstr "Salasanasi on muutettu." -#: contrib/sites/models.py:10 -msgid "domain name" -msgstr "domain-nimi" +#: contrib/admin/templates/admin/delete_confirmation.html:9 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Delete" +msgstr "Poista" -#: contrib/sites/models.py:11 -msgid "display name" -msgstr "näyttönimi" +#: contrib/admin/templates/admin/delete_confirmation.html:14 +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" +"Kohteen '%(escaped_object)s' (%(object_name)s) poisto poistaisi myös siihen " +"liittyviä kohteita, mutta sinulla ei ole oikeutta näiden kohteiden " +"poistamiseen:" -#: contrib/sites/models.py:15 -msgid "site" -msgstr "sivusto" +#: contrib/admin/templates/admin/delete_confirmation.html:21 +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" +"Haluatko varmasti poistaa kohteen \"%(escaped_object)s\" (%(object_name)s)? " +"Myös seuraavat kohteet poistettaisiin samalla:" -#: contrib/sites/models.py:16 -msgid "sites" -msgstr "sivustot" +#: contrib/admin/templates/admin/delete_confirmation.html:26 +msgid "Yes, I'm sure" +msgstr "Kyllä, olen varma" + +#: contrib/admin/templates/admin/filters.html:4 +msgid "Filter" +msgstr "Suodatin" + +#: contrib/admin/templates/admin/base.html:25 +msgid "Welcome," +msgstr "Tervetuloa," + +#: 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 "" +"Tietokanta-asennuksessasi on jotain vialla. Varmistu, että sopivat taulut on " +"luotu ja että oikea käyttäjä voi lukea tietokantaa." + +#: contrib/admin/templates/admin/filter.html:2 +#, python-format +msgid " By %(filter_title)s " +msgstr " %(filter_title)s:" + +#: contrib/admin/templates/admin/object_history.html:5 +#: contrib/admin/templates/admin/change_form.html:21 +msgid "History" +msgstr "Muokkaushistoria" + +#: contrib/admin/templates/admin/object_history.html:18 +msgid "Date/time" +msgstr "Pvm/klo" + +#: contrib/admin/templates/admin/object_history.html:19 +msgid "User" +msgstr "Käyttäjä" + +#: contrib/admin/templates/admin/object_history.html:20 +msgid "Action" +msgstr "Toiminto" + +#: contrib/admin/templates/admin/object_history.html:26 +msgid "DATE_WITH_TIME_FULL" +msgstr "N j, Y, P" + +#: contrib/admin/templates/admin/object_history.html:36 +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" +"Tällä kohteella ei ole muutoshistoriaa. Sitä ei ole lisätty tämän " +"ylläpitosivun avulla." + +#: contrib/admin/templates/admin/index.html:17 +#, python-format +msgid "Models available in the %(name)s application." +msgstr "Sovelluksen %(name)s mallit." + +#: contrib/admin/templates/admin/index.html:18 +#, python-format +msgid "%(name)s" +msgstr "%(name)s" + +#: contrib/admin/templates/admin/index.html:28 +#: contrib/admin/templates/admin/change_form.html:15 +msgid "Add" +msgstr "Lisää uusi" + +#: contrib/admin/templates/admin/index.html:34 +msgid "Change" +msgstr "Muokkaa" + +#: contrib/admin/templates/admin/index.html:44 +msgid "You don't have permission to edit anything." +msgstr "Sinulla ei ole oikeutta muokata mitään." + +#: contrib/admin/templates/admin/index.html:52 +msgid "Recent Actions" +msgstr "Viimeisimmät muutokset" + +#: contrib/admin/templates/admin/index.html:53 +msgid "My Actions" +msgstr "Sinun tekemäsi muutokset" + +#: contrib/admin/templates/admin/index.html:57 +msgid "None available" +msgstr "Ei yhtään" + +#: contrib/admin/templates/admin/login.html:25 +#: contrib/admin/views/decorators.py:24 +msgid "Log in" +msgstr "Kirjaudu sisään" + +#: contrib/admin/templates/admin/change_list.html:12 +#, python-format +msgid "Add %(name)s" +msgstr "Lisää uusi %(name)s" + +#: contrib/admin/templates/admin/submit_line.html:4 +msgid "Save as new" +msgstr "Tallenna uutena" + +#: contrib/admin/templates/admin/submit_line.html:5 +msgid "Save and add another" +msgstr "Tallenna ja lisää seuraava" + +#: contrib/admin/templates/admin/submit_line.html:6 +msgid "Save and continue editing" +msgstr "Tallenna välillä ja jatka muokkaamista" + +#: contrib/admin/templates/admin/submit_line.html:7 +msgid "Save" +msgstr "Tallenna ja poistu" + +#: contrib/admin/templates/admin/search_form.html:8 +msgid "Go" +msgstr "Etsi" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "1 result" +msgid_plural "%(counter)s results" +msgstr[0] "1 hakutulas" +msgstr[1] "%(counter)s hakutulosta" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "%(full_result_count)s total" +msgstr "yhteensä %(full_result_count)s" + +#: contrib/admin/templates/admin/change_form.html:22 +msgid "View on site" +msgstr "Näytä lopputulos" + +#: contrib/admin/templates/admin/change_form.html:32 +#: contrib/admin/templates/admin/auth/user/change_password.html:24 +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "Korjaa virhe." +msgstr[1] "Korjaa virheet." + +#: contrib/admin/templates/admin/change_form.html:50 +msgid "Ordering" +msgstr "Järjestys" + +#: contrib/admin/templates/admin/change_form.html:53 +msgid "Order:" +msgstr "Järjestysnumero:" + +#: contrib/admin/templates/admin/pagination.html:10 +msgid "Show all" +msgstr "Näytä kaikki" + +#: contrib/admin/templates/admin/404.html:4 +#: contrib/admin/templates/admin/404.html:8 +msgid "Page not found" +msgstr "Sivua ei löydy" + +#: contrib/admin/templates/admin/404.html:10 +msgid "We're sorry, but the requested page could not be found." +msgstr "Pahoittelemme, pyydettyä sivua ei voitu löytää." + +#: contrib/admin/templates/admin/base_site.html:4 +msgid "Django site admin" +msgstr "Django-sivuston ylläpito" + +#: contrib/admin/templates/admin/base_site.html:7 +msgid "Django administration" +msgstr "Djangon ylläpito" + +#: contrib/admin/templates/admin/500.html:4 +msgid "Server error" +msgstr "Palvelinvirhe" + +#: contrib/admin/templates/admin/500.html:6 +msgid "Server error (500)" +msgstr "Palvelinvirhe (500)" + +#: contrib/admin/templates/admin/500.html:9 +msgid "Server Error (500)" +msgstr "Palvelinvirhe (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 "Palvelimella on tapahtunut virhe. Se on ilmoitettu sivuston ylläpitäjille sähköpostilla ja korjataan pian. Kiitämme kärsivällisyydestä." + +#: 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 "" +"Syötä ensin käyttäjätunnus ja salasana. Sen jälkeen voit muokata muita " +"käyttäjän tietoja." + +#: contrib/admin/templates/admin/auth/user/add_form.html:12 +msgid "Username" +msgstr "Käyttäjätunnus" + +#: contrib/admin/templates/admin/auth/user/add_form.html:18 +#: contrib/admin/templates/admin/auth/user/change_password.html:34 +msgid "Password" +msgstr "Salasana" + +#: contrib/admin/templates/admin/auth/user/add_form.html:23 +#: contrib/admin/templates/admin/auth/user/change_password.html:39 +msgid "Password (again)" +msgstr "Salasana toistamiseen" + +#: contrib/admin/templates/admin/auth/user/add_form.html:24 +#: contrib/admin/templates/admin/auth/user/change_password.html:40 +msgid "Enter the same password as above, for verification." +msgstr "Syötä sama salasana tarkistuksen vuoksi toistamiseen." + +#: contrib/admin/templates/admin/auth/user/change_password.html:28 +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "Syötä käyttäjän %(username)s uusi salasana." + +#: contrib/admin/templates/widget/date_time.html:3 +msgid "Date:" +msgstr "Pvm:" + +#: contrib/admin/templates/widget/date_time.html:4 +msgid "Time:" +msgstr "Klo:" + +#: contrib/admin/templates/widget/file.html:2 +msgid "Currently:" +msgstr "Tällä hetkellä:" + +#: contrib/admin/templates/widget/file.html:3 +msgid "Change:" +msgstr "Muokkaa:" + +#: contrib/admin/views/auth.py:20 contrib/admin/views/main.py:264 +#, python-format +msgid "The %(name)s \"%(obj)s\" was added successfully." +msgstr "%(name)s \"%(obj)s\" on nyt lisätty." + +#: contrib/admin/views/auth.py:25 contrib/admin/views/main.py:268 +#: contrib/admin/views/main.py:354 +msgid "You may edit it again below." +msgstr "Voit muokata sitä uudelleen alla." + +#: contrib/admin/views/auth.py:31 +msgid "Add user" +msgstr "Uusi käyttäjä" + +#: contrib/admin/views/auth.py:58 +msgid "Password changed successfully." +msgstr "Salasanan muuttaminen onnistui." + +#: contrib/admin/views/auth.py:65 +#, python-format +msgid "Change password: %s" +msgstr "Vaihda salasana: %s" + +#: contrib/admin/views/doc.py:47 contrib/admin/views/doc.py:49 +#: contrib/admin/views/doc.py:51 +msgid "tag:" +msgstr "tag:" + +#: contrib/admin/views/doc.py:78 contrib/admin/views/doc.py:80 +#: contrib/admin/views/doc.py:82 +msgid "filter:" +msgstr "suodatin:" + +#: contrib/admin/views/doc.py:136 contrib/admin/views/doc.py:138 +#: contrib/admin/views/doc.py:140 +msgid "view:" +msgstr "view:" + +#: contrib/admin/views/doc.py:165 +#, python-format +msgid "App %r not found" +msgstr "Sovellusta %r ei löydy" + +#: contrib/admin/views/doc.py:172 +#, python-format +msgid "Model %(name)r not found in app %(label)r" +msgstr "Sovelluksesta %(label)r ei löydy mallia %(name)r" + +#: contrib/admin/views/doc.py:184 +#, python-format +msgid "the related `%(label)s.%(type)s` object" +msgstr "tähän liittyvä `%(label)s.%(type)s`-kohde" + +#: contrib/admin/views/doc.py:184 contrib/admin/views/doc.py:206 +#: contrib/admin/views/doc.py:220 contrib/admin/views/doc.py:225 +msgid "model:" +msgstr "malli:" + +#: contrib/admin/views/doc.py:215 +#, python-format +msgid "related `%(label)s.%(name)s` objects" +msgstr "tähän liittyvät `%(label)s.%(name)s`-kohteet" + +#: contrib/admin/views/doc.py:220 +#, python-format +msgid "all %s" +msgstr "kaikki %s" + +#: contrib/admin/views/doc.py:225 +#, python-format +msgid "number of %s" +msgstr "%s-kohteiden lukumäärä" + +#: contrib/admin/views/doc.py:230 +#, python-format +msgid "Fields on %s objects" +msgstr "%s-kohteiden kentät" + +#: 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 +msgid "Integer" +msgstr "Kokonaisluku" + +#: contrib/admin/views/doc.py:293 +msgid "Boolean (Either True or False)" +msgstr "Totuusarvo: joko tosi (True) tai epätosi (False)" + +#: contrib/admin/views/doc.py:294 contrib/admin/views/doc.py:313 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Merkkijono (enintään %(max_length)s merkkiä)" + +#: contrib/admin/views/doc.py:295 +msgid "Comma-separated integers" +msgstr "Pilkulla erotetut kokonaisluvut" + +#: contrib/admin/views/doc.py:296 +msgid "Date (without time)" +msgstr "Päivämäärä" + +#: contrib/admin/views/doc.py:297 +msgid "Date (with time)" +msgstr "Päivämäärä ja kellonaika" + +#: contrib/admin/views/doc.py:298 +msgid "Decimal number" +msgstr "Desimaaliluku" + +#: contrib/admin/views/doc.py:299 +msgid "E-mail address" +msgstr "Sähköpostios." + +#: contrib/admin/views/doc.py:300 contrib/admin/views/doc.py:301 +#: contrib/admin/views/doc.py:304 +msgid "File path" +msgstr "Tiedostopolku" + +#: contrib/admin/views/doc.py:302 +msgid "Floating point number" +msgstr "Liukuluku" + +#: contrib/admin/views/doc.py:308 +msgid "Boolean (Either True, False or None)" +msgstr "Totuusarvo: joko tosi (True), epätosi (False) tai ei mikään (None)" + +#: contrib/admin/views/doc.py:309 +msgid "Relation to parent model" +msgstr "Relaatio emomalliin" + +#: contrib/admin/views/doc.py:310 +msgid "Phone number" +msgstr "Puhelinnumero" + +#: contrib/admin/views/doc.py:315 +msgid "Text" +msgstr "Tekstiä" + +#: contrib/admin/views/doc.py:316 +msgid "Time" +msgstr "Kellonaika" + +#: contrib/admin/views/doc.py:317 contrib/flatpages/models.py:7 +msgid "URL" +msgstr "URL-osoite" + +#: contrib/admin/views/doc.py:318 +msgid "U.S. state (two uppercase letters)" +msgstr "USA:n osavaltio (kaksikirjaiminen versaalein)" + +#: contrib/admin/views/doc.py:319 +msgid "XML text" +msgstr "XML-teksti" + +#: contrib/admin/views/doc.py:345 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "%s ei näytä urlpattern-objektilta" + +#: contrib/admin/views/main.py:230 +msgid "Site administration" +msgstr "Sivuston ylläpito" + +#: contrib/admin/views/main.py:278 contrib/admin/views/main.py:363 +#, python-format +msgid "You may add another %s below." +msgstr "Uusi %s on lisättävissä alla." + +#: contrib/admin/views/main.py:296 +#, python-format +msgid "Add %s" +msgstr "Uusi %s" + +#: contrib/admin/views/main.py:342 +#, python-format +msgid "Added %s." +msgstr "Lisätty %s." + +#: contrib/admin/views/main.py:344 +#, python-format +msgid "Changed %s." +msgstr "Muokattu: %s." + +#: contrib/admin/views/main.py:346 +#, python-format +msgid "Deleted %s." +msgstr "Poistettu %s." + +#: contrib/admin/views/main.py:349 +msgid "No fields changed." +msgstr "Ei muutoksia kenttiin." + +#: contrib/admin/views/main.py:352 +#, python-format +msgid "The %(name)s \"%(obj)s\" was changed successfully." +msgstr "%(name)s \"%(obj)s\" on nyt muutettu." + +#: contrib/admin/views/main.py:360 +#, python-format +msgid "" +"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." +msgstr "%(name)s \"%(obj)s\" on nyt lisätty. Voit muokata sitä uudelleen alla." + +#: contrib/admin/views/main.py:398 +#, python-format +msgid "Change %s" +msgstr "Muokkaa: %s" + +#: contrib/admin/views/main.py:483 +#, python-format +msgid "One or more %(fieldname)s in %(name)s: %(obj)s" +msgstr "Yksi tai useampi %(fieldname)s kohteessa %(name)s: %(obj)s" + +#: contrib/admin/views/main.py:488 +#, python-format +msgid "One or more %(fieldname)s in %(name)s:" +msgstr "Yksi tai useampi %(fieldname)s kohteessa %(name)s:" + +#: contrib/admin/views/main.py:520 +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "%(name)s \"%(obj)s\" on poistettu." + +#: contrib/admin/views/main.py:523 +msgid "Are you sure?" +msgstr "Oletko varma?" + +#: contrib/admin/views/main.py:545 +#, python-format +msgid "Change history: %s" +msgstr "Muokkaushistoria: %s" + +#: contrib/admin/views/main.py:579 +#, python-format +msgid "Select %s" +msgstr "Valitse %s" + +#: contrib/admin/views/main.py:579 +#, python-format +msgid "Select %s to change" +msgstr "Valitse muokattava %s" + +#: contrib/admin/views/main.py:780 +msgid "Database error" +msgstr "Tietokantavirhe" + +#: 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 "" +"Käyttäjätunnus tai salasana ei kelpaa. Huomaa, että isot ja pienet kirjaimet " +"ovat merkitseviä." + +#: 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 "" +"Kirjaudu uudelleen sisään, koska istuntosi on mennyt umpeen. Muutoksesi ovat " +"silti tallessa." + +#: 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 "" +"Selaimesi ei salli evästeitä. Muuta asetukset sallimaan evästeet, lataa tämä " +"sivu uudelleen ja yritä toistamiseen." + +#: contrib/admin/views/decorators.py:83 +msgid "Usernames cannot contain the '@' character." +msgstr "Käyttäjätunnuksessa ei saa olla '@'-merkkiä." + +#: contrib/admin/views/decorators.py:85 +#, python-format +msgid "Your e-mail address is not your username. Try '%s' instead." +msgstr "Käyttäjätunnus ei ole sama kuin sähköpostiosoite. Kokeile '%s'." + +#: contrib/auth/views.py:47 +msgid "Logged out" +msgstr "Kirjautunut ulos" + +#: contrib/auth/models.py:53 contrib/auth/models.py:73 +msgid "name" +msgstr "nimi" + +#: contrib/auth/models.py:55 +msgid "codename" +msgstr "koodinimi" + +#: contrib/auth/models.py:58 +msgid "permission" +msgstr "oikeus" + +#: contrib/auth/models.py:59 contrib/auth/models.py:74 +msgid "permissions" +msgstr "oikeudet" + +#: contrib/auth/models.py:77 +msgid "group" +msgstr "ryhmä" + +#: contrib/auth/models.py:78 contrib/auth/models.py:121 +msgid "groups" +msgstr "ryhmät" + +#: contrib/auth/models.py:111 +msgid "username" +msgstr "tunnus" + +#: contrib/auth/models.py:111 +msgid "" +"Required. 30 characters or fewer. Alphanumeric characters only (letters, " +"digits and underscores)." +msgstr "" +" Vaaditaan. Enintään 30 kirjanta (a-z), numeroa (0-9) tai alaviivaa (_)." + +#: contrib/auth/models.py:112 +msgid "first name" +msgstr "etunimi" + +#: contrib/auth/models.py:113 +msgid "last name" +msgstr "sukunimi" + +#: contrib/auth/models.py:114 +msgid "e-mail address" +msgstr "sähköposti" + +#: contrib/auth/models.py:115 +msgid "password" +msgstr "salasana" + +#: contrib/auth/models.py:115 +msgid "" +"Use '[algo]$[salt]$[hexdigest]' or use the change " +"password form." +msgstr "Syötä muodossa '[algo]$[suola]$[heksa-digest]' tai käytä muutoslomaketta." + +#: contrib/auth/models.py:116 +msgid "staff status" +msgstr "ylläpitäjä" + +#: contrib/auth/models.py:116 +msgid "Designates whether the user can log into this admin site." +msgstr "Ylläpitäjillä on pääsy tähän sivuston ylläpito-osioon." + +#: contrib/auth/models.py:117 +msgid "active" +msgstr "voimassa" + +#: contrib/auth/models.py:117 +msgid "" +"Designates whether this user can log into the Django admin. Unselect this " +"instead of deleting accounts." +msgstr "" +"Määrää, voiko käyttäjä kirjautua sisään. Tällä voi estää käyttäjätilin " +"käytön poistamatta sitä." + +#: contrib/auth/models.py:118 +msgid "superuser status" +msgstr "pääkäyttäjä" + +#: contrib/auth/models.py:118 +msgid "" +"Designates that this user has all permissions without explicitly assigning " +"them." +msgstr "" +"Antaa käyttäjälle kaikki oikeudet ilman, että niitä täytyy erikseen luetella." + +#: contrib/auth/models.py:119 +msgid "last login" +msgstr "viimeksi kirjautunut" + +#: contrib/auth/models.py:120 +msgid "date joined" +msgstr "liittynyt" + +#: contrib/auth/models.py:122 +msgid "" +"In addition to the permissions manually assigned, this user will also get " +"all permissions granted to each group he/she is in." +msgstr "" +"Tässä valittujen oikeuksien lisäksi käyttäjä saa myös kaikki niiden ryhmien " +"oikeudet, joiden jäsen hän on." + +#: contrib/auth/models.py:123 +msgid "user permissions" +msgstr "käyttäjän oikeudet" + +#: contrib/auth/models.py:127 +msgid "user" +msgstr "käyttäjä" + +#: contrib/auth/models.py:128 +msgid "users" +msgstr "käyttäjät" + +#: contrib/auth/models.py:134 +msgid "Personal info" +msgstr "Henkilökohtaiset tiedot" + +#: contrib/auth/models.py:135 +msgid "Permissions" +msgstr "Oikeudet" + +#: contrib/auth/models.py:136 +msgid "Important dates" +msgstr "Tärkeät päivämäärät" + +#: contrib/auth/models.py:137 +msgid "Groups" +msgstr "Ryhmät" + +#: contrib/auth/models.py:288 +msgid "message" +msgstr "viesti" + +#: contrib/auth/forms.py:17 contrib/auth/forms.py:138 +msgid "The two password fields didn't match." +msgstr "Salasanat eivät täsmää." + +#: contrib/auth/forms.py:25 +msgid "A user with that username already exists." +msgstr "Käyttäjätunnus on jo rekisteröity." + +#: contrib/auth/forms.py:53 +msgid "" +"Your Web browser doesn't appear to have cookies enabled. Cookies are " +"required for logging in." +msgstr "Selaimesi ei salli evästeitä. Sisäänkirjautuminen vaatii evästeen." + +#: contrib/auth/forms.py:62 +msgid "This account is inactive." +msgstr "Tämä käyttäjätili ei ole voimassa." + +#: contrib/auth/forms.py:84 +msgid "" +"That e-mail address doesn't have an associated user account. Are you sure " +"you've registered?" +msgstr "Sähköpostiosoitetta vastaavaa käyttäjätunnusta ei löydy. Oletko varmasti jo rekisteröitynyt?" + +#: contrib/auth/forms.py:117 +msgid "The two 'new password' fields didn't match." +msgstr "Salasanat eivät täsmää." + +#: contrib/auth/forms.py:124 +msgid "Your old password was entered incorrectly. Please enter it again." +msgstr "Vanha salasana on virheellinen. Yritä uudelleen." #: contrib/flatpages/models.py:8 msgid "" @@ -1417,7 +2089,9 @@ msgstr "mallipohjan nimi" msgid "" "Example: 'flatpages/contact_page.html'. If this isn't provided, the system " "will use 'flatpages/default.html'." -msgstr "Esimerkiksi: 'flatpages/yhteydenotto.html'. Jos tämä jätetään tyhjäksi, käytetään oletuspohjaa 'flatpages/default.html'." +msgstr "" +"Esimerkiksi: 'flatpages/yhteydenotto.html'. Jos tämä jätetään tyhjäksi, " +"käytetään oletuspohjaa 'flatpages/default.html'." #: contrib/flatpages/models.py:14 msgid "registration required" @@ -1425,7 +2099,8 @@ msgstr "vaaditaan rekisteröityminen" #: contrib/flatpages/models.py:14 msgid "If this is checked, only logged-in users will be able to view the page." -msgstr "Jos tämä kohta on valittu, vain sisäänkirjautuneet käyttäjät näkevät sivun." +msgstr "" +"Jos tämä kohta on valittu, vain sisäänkirjautuneet käyttäjät näkevät sivun." #: contrib/flatpages/models.py:18 msgid "flat page" @@ -1435,393 +2110,1022 @@ msgstr "tekstisivu" msgid "flat pages" msgstr "tekstisivut" -#: contrib/redirects/models.py:7 -msgid "redirect from" -msgstr "ohjaa osoitteesta" +#: contrib/localflavor/sk/sk_regions.py:8 +msgid "Banska Bystrica region" +msgstr "Banská Bystrican aule" -#: contrib/redirects/models.py:8 +#: contrib/localflavor/sk/sk_regions.py:9 +msgid "Bratislava region" +msgstr "Bratislavan alue" + +#: contrib/localflavor/sk/sk_regions.py:10 +msgid "Kosice region" +msgstr "Košicen alue" + +#: contrib/localflavor/sk/sk_regions.py:11 +msgid "Nitra region" +msgstr "Nitran alue" + +#: contrib/localflavor/sk/sk_regions.py:12 +msgid "Presov region" +msgstr "Prešovin alue" + +#: contrib/localflavor/sk/sk_regions.py:13 +msgid "Trencin region" +msgstr "Trenčínin alue" + +#: contrib/localflavor/sk/sk_regions.py:14 +msgid "Trnava region" +msgstr "Trnava region" + +#: contrib/localflavor/sk/sk_regions.py:15 +msgid "Zilina region" +msgstr "Zilina region" + +#: contrib/localflavor/sk/forms.py:32 +msgid "Enter a postal code in the format XXXXX or XXX XX." +msgstr "Syötä postinumero muodossa XXXXX tai XXX XX." + +#: contrib/localflavor/sk/sk_districts.py:8 +msgid "Banska Bystrica" +msgstr "Banska Bystrica" + +#: contrib/localflavor/sk/sk_districts.py:9 +msgid "Banska Stiavnica" +msgstr "Banska Stiavnica" + +#: contrib/localflavor/sk/sk_districts.py:10 +msgid "Bardejov" +msgstr "Bardejov" + +#: contrib/localflavor/sk/sk_districts.py:11 +msgid "Banovce nad Bebravou" +msgstr "Banovce nad Bebravou" + +#: contrib/localflavor/sk/sk_districts.py:12 +msgid "Brezno" +msgstr "Brezno" + +#: contrib/localflavor/sk/sk_districts.py:13 +msgid "Bratislava I" +msgstr "Bratislava I" + +#: contrib/localflavor/sk/sk_districts.py:14 +msgid "Bratislava II" +msgstr "Bratislava II" + +#: contrib/localflavor/sk/sk_districts.py:15 +msgid "Bratislava III" +msgstr "Bratislava III" + +#: contrib/localflavor/sk/sk_districts.py:16 +msgid "Bratislava IV" +msgstr "Bratislava IV" + +#: contrib/localflavor/sk/sk_districts.py:17 +msgid "Bratislava V" +msgstr "Bratislava V" + +#: contrib/localflavor/sk/sk_districts.py:18 +msgid "Bytca" +msgstr "Bytca" + +#: contrib/localflavor/sk/sk_districts.py:19 +msgid "Cadca" +msgstr "Cadca" + +#: contrib/localflavor/sk/sk_districts.py:20 +msgid "Detva" +msgstr "Detva" + +#: contrib/localflavor/sk/sk_districts.py:21 +msgid "Dolny Kubin" +msgstr "Dolny Kubin" + +#: contrib/localflavor/sk/sk_districts.py:22 +msgid "Dunajska Streda" +msgstr "Dunajska Streda" + +#: contrib/localflavor/sk/sk_districts.py:23 +msgid "Galanta" +msgstr "Galanta" + +#: contrib/localflavor/sk/sk_districts.py:24 +msgid "Gelnica" +msgstr "Gelnica" + +#: contrib/localflavor/sk/sk_districts.py:25 +msgid "Hlohovec" +msgstr "Hlohovec" + +#: contrib/localflavor/sk/sk_districts.py:26 +msgid "Humenne" +msgstr "Humenne" + +#: contrib/localflavor/sk/sk_districts.py:27 +msgid "Ilava" +msgstr "Ilava" + +#: contrib/localflavor/sk/sk_districts.py:28 +msgid "Kezmarok" +msgstr "Kezmarok" + +#: contrib/localflavor/sk/sk_districts.py:29 +msgid "Komarno" +msgstr "Komarno" + +#: contrib/localflavor/sk/sk_districts.py:30 +msgid "Kosice I" +msgstr "Kosice I" + +#: contrib/localflavor/sk/sk_districts.py:31 +msgid "Kosice II" +msgstr "Kosice II" + +#: contrib/localflavor/sk/sk_districts.py:32 +msgid "Kosice III" +msgstr "Kosice III" + +#: contrib/localflavor/sk/sk_districts.py:33 +msgid "Kosice IV" +msgstr "Kosice IV" + +#: contrib/localflavor/sk/sk_districts.py:34 +msgid "Kosice - okolie" +msgstr "Kosice - okolie" + +#: contrib/localflavor/sk/sk_districts.py:35 +msgid "Krupina" +msgstr "Krupina" + +#: contrib/localflavor/sk/sk_districts.py:36 +msgid "Kysucke Nove Mesto" +msgstr "Kysucke Nove Mesto" + +#: contrib/localflavor/sk/sk_districts.py:37 +msgid "Levice" +msgstr "Levice" + +#: contrib/localflavor/sk/sk_districts.py:38 +msgid "Levoca" +msgstr "Levoca" + +#: contrib/localflavor/sk/sk_districts.py:39 +msgid "Liptovsky Mikulas" +msgstr "Liptovsky Mikulas" + +#: contrib/localflavor/sk/sk_districts.py:40 +msgid "Lucenec" +msgstr "Lucenec" + +#: contrib/localflavor/sk/sk_districts.py:41 +msgid "Malacky" +msgstr "Malacky" + +#: contrib/localflavor/sk/sk_districts.py:42 +msgid "Martin" +msgstr "Martin" + +#: contrib/localflavor/sk/sk_districts.py:43 +msgid "Medzilaborce" +msgstr "Medzilaborce" + +#: contrib/localflavor/sk/sk_districts.py:44 +msgid "Michalovce" +msgstr "Michalovce" + +#: contrib/localflavor/sk/sk_districts.py:45 +msgid "Myjava" +msgstr "Myjava" + +#: contrib/localflavor/sk/sk_districts.py:46 +msgid "Namestovo" +msgstr "Namestovo" + +#: contrib/localflavor/sk/sk_districts.py:47 +msgid "Nitra" +msgstr "Nitra" + +#: contrib/localflavor/sk/sk_districts.py:48 +msgid "Nove Mesto nad Vahom" +msgstr "Nove Mesto nad Vahom" + +#: contrib/localflavor/sk/sk_districts.py:49 +msgid "Nove Zamky" +msgstr "Nove Zamky" + +#: contrib/localflavor/sk/sk_districts.py:50 +msgid "Partizanske" +msgstr "Partizanske" + +#: contrib/localflavor/sk/sk_districts.py:51 +msgid "Pezinok" +msgstr "Pezinok" + +#: contrib/localflavor/sk/sk_districts.py:52 +msgid "Piestany" +msgstr "Piestany" + +#: contrib/localflavor/sk/sk_districts.py:53 +msgid "Poltar" +msgstr "Poltar" + +#: contrib/localflavor/sk/sk_districts.py:54 +msgid "Poprad" +msgstr "Poprad" + +#: contrib/localflavor/sk/sk_districts.py:55 +msgid "Povazska Bystrica" +msgstr "Povazska Bystrica" + +#: contrib/localflavor/sk/sk_districts.py:56 +msgid "Presov" +msgstr "Presov" + +#: contrib/localflavor/sk/sk_districts.py:57 +msgid "Prievidza" +msgstr "Prievidza" + +#: contrib/localflavor/sk/sk_districts.py:58 +msgid "Puchov" +msgstr "Puchov" + +#: contrib/localflavor/sk/sk_districts.py:59 +msgid "Revuca" +msgstr "Revuca" + +#: contrib/localflavor/sk/sk_districts.py:60 +msgid "Rimavska Sobota" +msgstr "Rimavska Sobota" + +#: contrib/localflavor/sk/sk_districts.py:61 +msgid "Roznava" +msgstr "Roznava" + +#: contrib/localflavor/sk/sk_districts.py:62 +msgid "Ruzomberok" +msgstr "Ruzomberok" + +#: contrib/localflavor/sk/sk_districts.py:63 +msgid "Sabinov" +msgstr "Sabinov" + +#: contrib/localflavor/sk/sk_districts.py:64 +msgid "Senec" +msgstr "Senec" + +#: contrib/localflavor/sk/sk_districts.py:65 +msgid "Senica" +msgstr "Senica" + +#: contrib/localflavor/sk/sk_districts.py:66 +msgid "Skalica" +msgstr "Skalica" + +#: contrib/localflavor/sk/sk_districts.py:67 +msgid "Snina" +msgstr "Snina" + +#: contrib/localflavor/sk/sk_districts.py:68 +msgid "Sobrance" +msgstr "Sobrance" + +#: contrib/localflavor/sk/sk_districts.py:69 +msgid "Spisska Nova Ves" +msgstr "Spisska Nova Ves" + +#: contrib/localflavor/sk/sk_districts.py:70 +msgid "Stara Lubovna" +msgstr "Stara Lubovna" + +#: contrib/localflavor/sk/sk_districts.py:71 +msgid "Stropkov" +msgstr "Stropkov" + +#: contrib/localflavor/sk/sk_districts.py:72 +msgid "Svidnik" +msgstr "Svidnik" + +#: contrib/localflavor/sk/sk_districts.py:73 +msgid "Sala" +msgstr "Sala" + +#: contrib/localflavor/sk/sk_districts.py:74 +msgid "Topolcany" +msgstr "Topolcany" + +#: contrib/localflavor/sk/sk_districts.py:75 +msgid "Trebisov" +msgstr "Trebisov" + +#: contrib/localflavor/sk/sk_districts.py:76 +msgid "Trencin" +msgstr "Trencin" + +#: contrib/localflavor/sk/sk_districts.py:77 +msgid "Trnava" +msgstr "Trnava" + +#: contrib/localflavor/sk/sk_districts.py:78 +msgid "Turcianske Teplice" +msgstr "Turcianske Teplice" + +#: contrib/localflavor/sk/sk_districts.py:79 +msgid "Tvrdosin" +msgstr "Tvrdosin" + +#: contrib/localflavor/sk/sk_districts.py:80 +msgid "Velky Krtis" +msgstr "Velky Krtis" + +#: contrib/localflavor/sk/sk_districts.py:81 +msgid "Vranov nad Toplou" +msgstr "Vranov nad Toplou" + +#: contrib/localflavor/sk/sk_districts.py:82 +msgid "Zlate Moravce" +msgstr "Zlate Moravce" + +#: contrib/localflavor/sk/sk_districts.py:83 +msgid "Zvolen" +msgstr "Zvolen" + +#: contrib/localflavor/sk/sk_districts.py:84 +msgid "Zarnovica" +msgstr "Zarnovica" + +#: contrib/localflavor/sk/sk_districts.py:85 +msgid "Ziar nad Hronom" +msgstr "Ziar nad Hronom" + +#: contrib/localflavor/sk/sk_districts.py:86 +msgid "Zilina" +msgstr "Zilina" + +#: contrib/localflavor/fr/forms.py:17 contrib/localflavor/fi/forms.py:14 +#: contrib/localflavor/de/forms.py:16 +msgid "Enter a zip code in the format XXXXX." +msgstr "Syötä postinumero muodossa XXXXX." + +#: contrib/localflavor/in_/forms.py:16 +msgid "Enter a zip code in the format XXXXXXX." +msgstr "Syötä postinumero muodossa XXXXXXX." + +#: contrib/localflavor/ch/forms.py:18 contrib/localflavor/no/forms.py:14 +msgid "Enter a zip code in the format XXXX." +msgstr "Syötä postinumero muodossa XXXX." + +#: contrib/localflavor/ch/forms.py:90 msgid "" -"This should be an absolute path, excluding the domain name. Example: '/" -"events/search/'." +"Enter a valid Swiss identity or passport card number in X1234567<0 or " +"1234567890 format." +msgstr "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format." + +#: contrib/localflavor/ch/ch_states.py:5 +msgid "Aargau" +msgstr "Aargau" + +#: contrib/localflavor/ch/ch_states.py:6 +msgid "Appenzell Innerrhoden" +msgstr "Appenzell Innerrhoden" + +#: contrib/localflavor/ch/ch_states.py:7 +msgid "Appenzell Ausserrhoden" +msgstr "Appenzell Ausserrhoden" + +#: contrib/localflavor/ch/ch_states.py:8 +msgid "Basel-Stadt" +msgstr "Basel-Stadt" + +#: contrib/localflavor/ch/ch_states.py:9 +msgid "Basel-Land" +msgstr "Basel-Land" + +#: contrib/localflavor/ch/ch_states.py:10 +msgid "Berne" +msgstr "Berne" + +#: contrib/localflavor/ch/ch_states.py:11 +msgid "Fribourg" +msgstr "Fribourg" + +#: contrib/localflavor/ch/ch_states.py:12 +msgid "Geneva" +msgstr "Geneve" + +#: contrib/localflavor/ch/ch_states.py:13 +msgid "Glarus" +msgstr "Glarus" + +#: contrib/localflavor/ch/ch_states.py:14 +msgid "Graubuenden" +msgstr "Graubuenden" + +#: contrib/localflavor/ch/ch_states.py:15 +msgid "Jura" +msgstr "Jura" + +#: contrib/localflavor/ch/ch_states.py:16 +msgid "Lucerne" +msgstr "Lucerne" + +#: contrib/localflavor/ch/ch_states.py:17 +msgid "Neuchatel" +msgstr "Neuchatel" + +#: contrib/localflavor/ch/ch_states.py:18 +msgid "Nidwalden" +msgstr "Nidwalden" + +#: contrib/localflavor/ch/ch_states.py:19 +msgid "Obwalden" +msgstr "Obwalden" + +#: contrib/localflavor/ch/ch_states.py:20 +msgid "Schaffhausen" +msgstr "Schaffhausen" + +#: contrib/localflavor/ch/ch_states.py:21 +msgid "Schwyz" +msgstr "Schwyz" + +#: contrib/localflavor/ch/ch_states.py:22 +msgid "Solothurn" +msgstr "Solothurn" + +#: contrib/localflavor/ch/ch_states.py:23 +msgid "St. Gallen" +msgstr "St. Gallen" + +#: contrib/localflavor/ch/ch_states.py:24 +msgid "Thurgau" +msgstr "Thurgau" + +#: contrib/localflavor/ch/ch_states.py:25 +msgid "Ticino" +msgstr "Ticino" + +#: contrib/localflavor/ch/ch_states.py:26 +msgid "Uri" +msgstr "Uri" + +#: contrib/localflavor/ch/ch_states.py:27 +msgid "Valais" +msgstr "Valais" + +#: contrib/localflavor/ch/ch_states.py:28 +msgid "Vaud" +msgstr "Vaud" + +#: contrib/localflavor/ch/ch_states.py:29 +msgid "Zug" +msgstr "Zug" + +#: contrib/localflavor/ch/ch_states.py:30 +msgid "Zurich" +msgstr "Zürich" + +#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:45 +msgid "Enter a valid Finnish social security number." +msgstr "Syötä oikea suomalainen henkilötunnus." + +#: contrib/localflavor/uk/forms.py:18 +msgid "Enter a postcode. A space is required between the two postcode parts." msgstr "" -"Tässä on käytettävä absoluuttista polkua ilman verkkotunnusta. Esimerkki: " -"'\\\n" -"events/search/'" -#: contrib/redirects/models.py:9 -msgid "redirect to" -msgstr "ohjaa osoitteeseen" +#: contrib/localflavor/au/forms.py:18 +msgid "Enter a 4 digit post code." +msgstr "Syötä nelinumeroinen postinumero." -#: contrib/redirects/models.py:10 +#: contrib/localflavor/br/forms.py:23 +msgid "Enter a zip code in the format XXXXX-XXX." +msgstr "Syötä postinumero muodossa XXXXX-XXX." + +#: contrib/localflavor/br/forms.py:35 +msgid "Phone numbers must be in XX-XXXX-XXXX format." +msgstr "Puhelinnumeron tulee olla muodossa XX-XXXX-XXXX." + +#: contrib/localflavor/br/forms.py:68 msgid "" -"This can be either an absolute path (as above) or a full URL starting with " -"'http://'." +"Select a valid brazilian state. That state is not one of the available " +"states." msgstr "" -"Tässä on käytettävä joko absoluuttista polkua (kuten yllä) tai täydellistä " -"'http://'-alkuista URL-osoitetta." -#: contrib/redirects/models.py:13 -msgid "redirect" -msgstr "edelleenohjaus" +#: contrib/localflavor/br/forms.py:103 contrib/localflavor/ar/forms.py:61 +msgid "This field requires only numbers." +msgstr "Tähän kenttään kelpaavat vain numerot." -#: contrib/redirects/models.py:14 -msgid "redirects" -msgstr "edelleenohjaukset" - -#: contrib/comments/models.py:67 contrib/comments/models.py:166 -msgid "object ID" -msgstr "kohteen tunniste" - -#: contrib/comments/models.py:68 -msgid "headline" -msgstr "otsikko" - -#: contrib/comments/models.py:69 contrib/comments/models.py:90 -#: contrib/comments/models.py:167 -msgid "comment" -msgstr "kommentti" - -#: contrib/comments/models.py:70 -msgid "rating #1" -msgstr "1. pisteytys" - -#: contrib/comments/models.py:71 -msgid "rating #2" -msgstr "2. pisteytys" - -#: contrib/comments/models.py:72 -msgid "rating #3" -msgstr "3. pisteytys" - -#: contrib/comments/models.py:73 -msgid "rating #4" -msgstr "4. pisteytys" - -#: contrib/comments/models.py:74 -msgid "rating #5" -msgstr "5. pisteytys" - -#: contrib/comments/models.py:75 -msgid "rating #6" -msgstr "6. pisteytys" - -#: contrib/comments/models.py:76 -msgid "rating #7" -msgstr "7. pisteytys" - -#: contrib/comments/models.py:77 -msgid "rating #8" -msgstr "8. pisteytys" - -#: contrib/comments/models.py:82 -msgid "is valid rating" -msgstr "on sallittu pisteytys" - -#: contrib/comments/models.py:83 contrib/comments/models.py:169 -msgid "date/time submitted" -msgstr "lähetyshetki" - -#: contrib/comments/models.py:84 contrib/comments/models.py:170 -msgid "is public" -msgstr "on julkinen" - -#: contrib/comments/models.py:86 -msgid "is removed" -msgstr "on poistettu" - -#: 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." +#: contrib/localflavor/br/forms.py:105 +msgid "This field requires at most 11 digits or 14 characters." msgstr "" -"Rastita jos kommentti on asiaankuulumaton. Kommentin tilalla näytetään\n" -"viesti \"Tämä kommentti on poistettu\"." -#: contrib/comments/models.py:91 -msgid "comments" -msgstr "kommentit" - -#: contrib/comments/models.py:131 contrib/comments/models.py:207 -msgid "Content object" -msgstr "Kommentoitu kohde" - -#: contrib/comments/models.py:159 -#, python-format -msgid "" -"Posted by %(user)s at %(date)s\n" -"\n" -"%(comment)s\n" -"\n" -"http://%(domain)s%(url)s" +#: contrib/localflavor/br/forms.py:115 +msgid "Invalid CPF number." msgstr "" -" Kirjoittanut %(user)s, pvm %(date)s\\n\n" -" \\n\n" -" %(comment)s\\n\n" -" \\n\n" -" http://%(domain)s%(url)s" -#: contrib/comments/models.py:168 -msgid "person's name" -msgstr "henkilön nimi" +#: contrib/localflavor/br/forms.py:137 +msgid "This field requires at least 14 digits" +msgstr "Tähän kenttään vaaditaan ainakin 14 numeroa." -#: contrib/comments/models.py:171 -msgid "ip address" -msgstr "IP-osoite" - -#: contrib/comments/models.py:173 -msgid "approved by staff" -msgstr "ylläpidon hyväksymä" - -#: contrib/comments/models.py:176 -msgid "free comment" -msgstr "vapaa kommentti" - -#: contrib/comments/models.py:177 -msgid "free comments" -msgstr "vapaat kommentit" - -#: contrib/comments/models.py:233 -msgid "score" -msgstr "pisteet" - -#: contrib/comments/models.py:234 -msgid "score date" -msgstr "pisteytyspäivä" - -#: contrib/comments/models.py:237 -msgid "karma score" -msgstr "karma-pisteytys" - -#: contrib/comments/models.py:238 -msgid "karma scores" -msgstr "karma-pisteytykset" - -#: contrib/comments/models.py:242 -#, python-format -msgid "%(score)d rating by %(user)s" -msgstr "%(score)d pistettä käyttäjältä %(user)s" - -#: contrib/comments/models.py:258 -#, python-format -msgid "" -"This comment was flagged by %(user)s:\n" -"\n" -"%(text)s" +#: contrib/localflavor/br/forms.py:147 +msgid "Invalid CNPJ number." msgstr "" -" %(user)s on merkinnyt tämän kommentin:\\n\n" -" \\n\n" -" %(text)s" -#: contrib/comments/models.py:265 -msgid "flag date" -msgstr "merkintäpäivä" - -#: contrib/comments/models.py:268 -msgid "user flag" -msgstr "käyttäjän merkki" - -#: contrib/comments/models.py:269 -msgid "user flags" -msgstr "käyttäjien merkit" - -#: contrib/comments/models.py:273 -#, python-format -msgid "Flag by %r" -msgstr "Käyttäjän %r merkki" - -#: contrib/comments/models.py:278 -msgid "deletion date" -msgstr "poistamispäivä" - -#: contrib/comments/models.py:280 -msgid "moderator deletion" -msgstr "valvojan poisto" - -#: contrib/comments/models.py:281 -msgid "moderator deletions" -msgstr "valvojien poistot" - -#: contrib/comments/models.py:285 -#, python-format -msgid "Moderator deletion by %r" -msgstr "Valvojan %r poisto" - -#: contrib/comments/views/karma.py:19 -msgid "Anonymous users cannot vote" -msgstr "Anonyymit käyttäjät eivät voi äänestää" - -#: contrib/comments/views/karma.py:23 -msgid "Invalid comment ID" -msgstr "Kommentin tunniste on virheellinen" - -#: contrib/comments/views/karma.py:25 -msgid "No voting for yourself" -msgstr "Itseään ei voi äänestää" - -#: contrib/comments/views/comments.py:27 -msgid "" -"This rating is required because you've entered at least one other rating." -msgstr "Tämä pisteytys on annettava, koska olet syöttänyt ainakin yhden muunkin pisteytyksen." - -#: contrib/comments/views/comments.py:111 -#, python-format -msgid "" -"This comment was posted by a user who has posted fewer than %(count)s " -"comment:\n" -"\n" -"%(text)s" -msgid_plural "" -"This comment was posted by a user who has posted fewer than %(count)s " -"comments:\n" -"\n" -"%(text)s" -msgstr[0] "" -"Kommentin kirjoittanut käyttäjä on kirjoittanut vain yhden kommentin:\n" -"\n" -"%(text)s" -msgstr[1] "" -"Kommentin kirjoittanut käyttäjä on kirjoittanut alle %(count)s kommenttia:\n" -"\n" -"%(text)s" - -# Mitä "sketchy user" tarkoittaa? -#: contrib/comments/views/comments.py:116 -#, python-format -msgid "" -"This comment was posted by a sketchy user:\n" -"\n" -"%(text)s" +#: contrib/localflavor/de/de_states.py:5 +msgid "Baden-Wuerttemberg" msgstr "" -"Tämä on \"sketchy\"-käyttäjän kirjoittama kommentti:\n" -"\n" -"%(text)s" -#: contrib/comments/views/comments.py:188 -#: contrib/comments/views/comments.py:280 -msgid "Only POSTs are allowed" -msgstr "Vain POST-kutsut sallittu" +#: contrib/localflavor/de/de_states.py:6 +msgid "Bavaria" +msgstr "" -#: contrib/comments/views/comments.py:192 -#: contrib/comments/views/comments.py:284 -msgid "One or more of the required fields wasn't submitted" -msgstr "Yksi tai useampi vaadittu kenttä on jäänyt täyttämättä" +#: contrib/localflavor/de/de_states.py:7 +msgid "Berlin" +msgstr "Berliini" -#: contrib/comments/views/comments.py:196 -#: contrib/comments/views/comments.py:286 -msgid "Somebody tampered with the comment form (security violation)" -msgstr "Kommenttilomaketta on käpälöity (turvallisuusrike)" +#: contrib/localflavor/de/de_states.py:8 +msgid "Brandenburg" +msgstr "" -#: contrib/comments/views/comments.py:206 -#: contrib/comments/views/comments.py:292 +#: contrib/localflavor/de/de_states.py:9 +msgid "Bremen" +msgstr "" + +#: contrib/localflavor/de/de_states.py:10 +msgid "Hamburg" +msgstr "Hampuri" + +#: contrib/localflavor/de/de_states.py:11 +msgid "Hessen" +msgstr "" + +#: contrib/localflavor/de/de_states.py:12 +msgid "Mecklenburg-Western Pomerania" +msgstr "" + +#: contrib/localflavor/de/de_states.py:13 +msgid "Lower Saxony" +msgstr "" + +#: contrib/localflavor/de/de_states.py:14 +msgid "North Rhine-Westphalia" +msgstr "" + +#: contrib/localflavor/de/de_states.py:15 +msgid "Rhineland-Palatinate" +msgstr "" + +#: contrib/localflavor/de/de_states.py:16 +msgid "Saarland" +msgstr "" + +#: contrib/localflavor/de/de_states.py:17 +msgid "Saxony" +msgstr "" + +#: contrib/localflavor/de/de_states.py:18 +msgid "Saxony-Anhalt" +msgstr "" + +#: contrib/localflavor/de/de_states.py:19 +msgid "Schleswig-Holstein" +msgstr "" + +#: contrib/localflavor/de/de_states.py:20 +msgid "Thuringia" +msgstr "" + +#: contrib/localflavor/de/forms.py:60 msgid "" -"The comment form had an invalid 'target' parameter -- the object ID was " -"invalid" -msgstr "Kommenttilomakkeen 'target'-parametri ei kelpaa -- kohteen ID oli virheellinen" +"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " +"format." +msgstr "" -#: contrib/comments/views/comments.py:257 -#: contrib/comments/views/comments.py:321 -msgid "The comment form didn't provide either 'preview' or 'post'" -msgstr "Kommenttilomake ei pyytänyt esikatselua tai lähettämistä" +#: contrib/localflavor/pl/forms.py:53 +msgid "National Identification Number consists of 11 digits." +msgstr "" -#: contrib/comments/templates/comments/form.html:8 -msgid "Forgotten your password?" -msgstr "Unohditko salasanasi?" +#: contrib/localflavor/pl/forms.py:59 +msgid "Wrong checksum for the National Identification Number." +msgstr "" -#: contrib/comments/templates/comments/form.html:12 -msgid "Ratings" -msgstr "Pisteytykset" +#: contrib/localflavor/pl/forms.py:71 +msgid "" +"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." +msgstr "" -#: contrib/comments/templates/comments/form.html:12 -#: contrib/comments/templates/comments/form.html:23 -msgid "Required" -msgstr "Vaaditaan" +#: contrib/localflavor/pl/forms.py:82 +msgid "Enter a postal code in the format XX-XXX." +msgstr "Syötä postinumero muodossa XX-XXX." -#: contrib/comments/templates/comments/form.html:12 -#: contrib/comments/templates/comments/form.html:23 -msgid "Optional" -msgstr "Vapaavalintainen" +#: contrib/localflavor/pl/pl_voivodeships.py:8 +msgid "Lower Silesia" +msgstr "" -#: contrib/comments/templates/comments/form.html:23 -msgid "Post a photo" -msgstr "Lähetä valokuva" +#: contrib/localflavor/pl/pl_voivodeships.py:9 +msgid "Kuyavia-Pomerania" +msgstr "" -#: contrib/comments/templates/comments/form.html:28 -#: contrib/comments/templates/comments/freeform.html:5 -msgid "Comment:" -msgstr "Kommentti:" +#: contrib/localflavor/pl/pl_voivodeships.py:10 +msgid "Lublin" +msgstr "" -#: contrib/comments/templates/comments/form.html:35 -#: contrib/comments/templates/comments/freeform.html:10 -msgid "Preview comment" -msgstr "Esikatsele kommenttia" +#: contrib/localflavor/pl/pl_voivodeships.py:11 +msgid "Lubusz" +msgstr "" -#: contrib/comments/templates/comments/freeform.html:4 -msgid "Your name:" -msgstr "Nimesi:" +#: contrib/localflavor/pl/pl_voivodeships.py:12 +msgid "Lodz" +msgstr "" -#: contrib/sessions/models.py:51 -msgid "session key" -msgstr "istunnon avain" +#: contrib/localflavor/pl/pl_voivodeships.py:13 +msgid "Lesser Poland" +msgstr "" -#: contrib/sessions/models.py:52 -msgid "session data" -msgstr "istunnon tiedot" +#: contrib/localflavor/pl/pl_voivodeships.py:14 +msgid "Masovia" +msgstr "" -#: contrib/sessions/models.py:53 -msgid "expire date" -msgstr "vanhenee" +#: contrib/localflavor/pl/pl_voivodeships.py:15 +msgid "Opole" +msgstr "" -#: contrib/sessions/models.py:57 -msgid "session" -msgstr "istunto" +#: contrib/localflavor/pl/pl_voivodeships.py:16 +msgid "Subcarpatia" +msgstr "" -#: contrib/sessions/models.py:58 -msgid "sessions" -msgstr "istunnot" +#: contrib/localflavor/pl/pl_voivodeships.py:17 +msgid "Podlasie" +msgstr "" -#: contrib/contenttypes/models.py:20 -msgid "python model class name" -msgstr "mallin python-luokan nimi" +#: contrib/localflavor/pl/pl_voivodeships.py:18 +msgid "Pomerania" +msgstr "" -#: contrib/contenttypes/models.py:23 -msgid "content type" -msgstr "sisältötyyppi" +#: contrib/localflavor/pl/pl_voivodeships.py:19 +msgid "Silesia" +msgstr "" -#: contrib/contenttypes/models.py:24 -msgid "content types" -msgstr "sisältötyypit" +#: contrib/localflavor/pl/pl_voivodeships.py:20 +msgid "Swietokrzyskie" +msgstr "" -#: forms/__init__.py:381 -#, python-format -msgid "Ensure your text is less than %s character." -msgid_plural "Ensure your text is less than %s characters." -msgstr[0] "Varmista, että tekstin pituus on vähemmän kuin %s merkki." -msgstr[1] "Varmista, että teksti pituus on vähemmän kuin %s merkkiä." +#: contrib/localflavor/pl/pl_voivodeships.py:21 +msgid "Warmia-Masuria" +msgstr "" -#: forms/__init__.py:386 -msgid "Line breaks are not allowed here." -msgstr "Rivinvaihtoja ei voi käyttää." +#: contrib/localflavor/pl/pl_voivodeships.py:22 +msgid "Greater Poland" +msgstr "" -#: forms/__init__.py:487 forms/__init__.py:560 forms/__init__.py:599 -#, python-format -msgid "Select a valid choice; '%(data)s' is not in %(choices)s." -msgstr "Valinta ei kelpaa; '%(data)s' ei löydy vaihtoehtojen %(choices)s joukosta." +#: contrib/localflavor/pl/pl_voivodeships.py:23 +msgid "West Pomerania" +msgstr "" -#: forms/__init__.py:663 -msgid "The submitted file is empty." -msgstr "Lähetetty tiedosto on tyhjä." +#: contrib/localflavor/it/forms.py:16 +msgid "Enter a valid zip code." +msgstr "Syötä oikea postinumero." -#: forms/__init__.py:719 -msgid "Enter a whole number between -32,768 and 32,767." -msgstr "Syötä kokonaisluku väliltä -32768 ja 32767." +#: contrib/localflavor/it/forms.py:41 +msgid "Enter a valid Social Security number." +msgstr "Syötä oikea henkilötunnus." -#: forms/__init__.py:729 -msgid "Enter a positive number." -msgstr "Syötä positiivinen kokonaisluku." +#: contrib/localflavor/it/forms.py:68 +msgid "Enter a valid VAT number." +msgstr "Syötä oikea ALV-tunnus." -#: forms/__init__.py:739 -msgid "Enter a whole number between 0 and 32,767." -msgstr "Syötä kokonaisluku väliltä 0 ja 32767." +#: contrib/localflavor/is_/forms.py:17 +msgid "" +"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." +msgstr "" + +#: contrib/localflavor/is_/forms.py:31 +msgid "The Icelandic identification number is not valid." +msgstr "" + +#: contrib/localflavor/ar/forms.py:30 contrib/localflavor/ar/forms.py:38 +msgid "Enter a postal code in the format NNNN or ANNNNAAA." +msgstr "" + +#: contrib/localflavor/ar/forms.py:64 +msgid "This field requires 7 or 8 digits." +msgstr "Tähän kenttään vaaditaan 7 tai 8 numeroa." + +#: contrib/localflavor/ar/forms.py:75 +msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." +msgstr "" + +#: contrib/localflavor/ar/forms.py:88 +msgid "Invalid CUIT." +msgstr "Virheellinen CUIT." + +#: contrib/localflavor/ca/forms.py:19 +msgid "Enter a postal code in the format XXX XXX." +msgstr "Syötä postinumero muodossa XXX XXX." + +#: contrib/localflavor/ca/forms.py:81 +msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXXX format." +msgstr "" + +#: contrib/localflavor/nl/forms.py:25 +msgid "Enter a valid postal code" +msgstr "Syötä oikea postinumero." + +#: contrib/localflavor/nl/forms.py:53 +msgid "Enter a valid phone number" +msgstr "Syötä oikea puhelinnumero." + +#: contrib/localflavor/nl/forms.py:76 +msgid "Enter a valid SoFi number" +msgstr "Syötä ikea SoFi-numero." + +#: contrib/localflavor/nl/nl_provinces.py:4 +msgid "Drente" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:5 +msgid "Flevoland" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:6 +msgid "Friesland" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:7 +msgid "Gelderland" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:8 +msgid "Groningen" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:9 +msgid "Limburg" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:10 +msgid "Noord-Brabant" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:11 +msgid "Noord-Holland" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:12 +msgid "Overijssel" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:13 +msgid "Utrecht" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:14 +msgid "Zeeland" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:15 +msgid "Zuid-Holland" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:4 +msgid "Hokkaido" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:5 +msgid "Aomori" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:6 +msgid "Iwate" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:7 +msgid "Miyagi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:8 +msgid "Akita" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:9 +msgid "Yamagata" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:10 +msgid "Fukushima" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:11 +msgid "Ibaraki" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:12 +msgid "Tochigi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:13 +msgid "Gunma" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:14 +msgid "Saitama" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:15 +msgid "Chiba" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:16 +msgid "Tokyo" +msgstr "Tokio" + +#: contrib/localflavor/jp/jp_prefectures.py:17 +msgid "Kanagawa" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:18 +msgid "Yamanashi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:19 +msgid "Nagano" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:20 +msgid "Niigata" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:21 +msgid "Toyama" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:22 +msgid "Ishikawa" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:23 +msgid "Fukui" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:24 +msgid "Gifu" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:25 +msgid "Shizuoka" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:26 +msgid "Aichi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:27 +msgid "Mie" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:28 +msgid "Shiga" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:29 +msgid "Kyoto" +msgstr "Kioto" + +#: contrib/localflavor/jp/jp_prefectures.py:30 +msgid "Osaka" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:31 +msgid "Hyogo" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:32 +msgid "Nara" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:33 +msgid "Wakayama" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:34 +msgid "Tottori" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:35 +msgid "Shimane" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:36 +msgid "Okayama" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:37 +msgid "Hiroshima" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:38 +msgid "Yamaguchi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:39 +msgid "Tokushima" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:40 +msgid "Kagawa" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:41 +msgid "Ehime" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:42 +msgid "Kochi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:43 +msgid "Fukuoka" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:44 +msgid "Saga" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:45 +msgid "Nagasaki" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:46 +msgid "Kumamoto" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:47 +msgid "Oita" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:48 +msgid "Miyazaki" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:49 +msgid "Kagoshima" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:50 +msgid "Okinawa" +msgstr "" + +#: contrib/localflavor/jp/forms.py:21 +msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." +msgstr "" + +#: contrib/localflavor/cl/forms.py:32 +msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X." +msgstr "" + +#: contrib/localflavor/cl/forms.py:37 +msgid "Enter valid a Chilean RUT" +msgstr "Syötä oikea chileläinen RUT" + +#: contrib/localflavor/us/forms.py:18 +msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." +msgstr "" + +#: contrib/localflavor/us/forms.py:51 +msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." +msgstr "" + +#: contrib/localflavor/no/forms.py:35 +msgid "Enter a valid Norwegian social security number." +msgstr "Syötä oikea norjalainen henkilötunnus." + +#: utils/dateformat.py:41 +msgid "p.m." +msgstr "ip" + +#: utils/dateformat.py:42 +msgid "a.m." +msgstr "ap" + +#: utils/dateformat.py:47 +msgid "PM" +msgstr "IP" + +#: utils/dateformat.py:48 +msgid "AM" +msgstr "AP" + +#: utils/dateformat.py:97 +msgid "midnight" +msgstr "keskiyö" + +#: utils/dateformat.py:99 +msgid "noon" +msgstr "keskipäivä" + +#: utils/text.py:127 +msgid "or" +msgstr "tai" #: utils/dates.py:6 msgid "Monday" @@ -1851,127 +3155,155 @@ msgstr "lauantai" msgid "Sunday" msgstr "sunnuntai" -#: utils/dates.py:14 +#: utils/dates.py:10 +msgid "Mon" +msgstr "Ma" + +#: utils/dates.py:10 +msgid "Tue" +msgstr "Ti" + +#: utils/dates.py:10 +msgid "Wed" +msgstr "Ke" + +#: utils/dates.py:10 +msgid "Thu" +msgstr "To" + +#: utils/dates.py:10 +msgid "Fri" +msgstr "Pe" + +#: utils/dates.py:11 +msgid "Sat" +msgstr "La" + +#: utils/dates.py:11 +msgid "Sun" +msgstr "Su" + +#: utils/dates.py:18 msgid "January" msgstr "tammikuu" -#: utils/dates.py:14 +#: utils/dates.py:18 msgid "February" msgstr "helmikuu" -#: utils/dates.py:14 utils/dates.py:27 +#: utils/dates.py:18 utils/dates.py:31 msgid "March" msgstr "maaliskuu" -#: utils/dates.py:14 utils/dates.py:27 +#: utils/dates.py:18 utils/dates.py:31 msgid "April" msgstr "huhtikuu" -#: utils/dates.py:14 utils/dates.py:27 +#: utils/dates.py:18 utils/dates.py:31 msgid "May" msgstr "toukokuu" -#: utils/dates.py:14 utils/dates.py:27 +#: utils/dates.py:18 utils/dates.py:31 msgid "June" msgstr "kesäkuu" -#: utils/dates.py:15 utils/dates.py:27 +#: utils/dates.py:19 utils/dates.py:31 msgid "July" msgstr "heinäkuu" -#: utils/dates.py:15 +#: utils/dates.py:19 msgid "August" msgstr "elokuu" -#: utils/dates.py:15 +#: utils/dates.py:19 msgid "September" msgstr "syyskuu" -#: utils/dates.py:15 +#: utils/dates.py:19 msgid "October" msgstr "lokakuu" -#: utils/dates.py:15 +#: utils/dates.py:19 msgid "November" msgstr "marraskuu" -#: utils/dates.py:16 +#: utils/dates.py:20 msgid "December" msgstr "joulukuu" -#: utils/dates.py:19 +#: utils/dates.py:23 msgid "jan" msgstr "tam" -#: utils/dates.py:19 +#: utils/dates.py:23 msgid "feb" msgstr "hel" -#: utils/dates.py:19 +#: utils/dates.py:23 msgid "mar" msgstr "maa" -#: utils/dates.py:19 +#: utils/dates.py:23 msgid "apr" msgstr "huh" -#: utils/dates.py:19 +#: utils/dates.py:23 msgid "may" msgstr "tou" -#: utils/dates.py:19 +#: utils/dates.py:23 msgid "jun" msgstr "kes" -#: utils/dates.py:20 +#: utils/dates.py:24 msgid "jul" msgstr "hei" -#: utils/dates.py:20 +#: utils/dates.py:24 msgid "aug" msgstr "elo" -#: utils/dates.py:20 +#: utils/dates.py:24 msgid "sep" msgstr "syy" -#: utils/dates.py:20 +#: utils/dates.py:24 msgid "oct" msgstr "lok" -#: utils/dates.py:20 +#: utils/dates.py:24 msgid "nov" msgstr "mar" -#: utils/dates.py:20 +#: utils/dates.py:24 msgid "dec" msgstr "jou" -#: utils/dates.py:27 +#: utils/dates.py:31 msgid "Jan." msgstr "tammi" -#: utils/dates.py:27 +#: utils/dates.py:31 msgid "Feb." msgstr "helmi" -#: utils/dates.py:28 +#: utils/dates.py:32 msgid "Aug." msgstr "elo" -#: utils/dates.py:28 +#: utils/dates.py:32 msgid "Sept." msgstr "syys" -#: utils/dates.py:28 +#: utils/dates.py:32 msgid "Oct." msgstr "loka" -#: utils/dates.py:28 +#: utils/dates.py:32 msgid "Nov." msgstr "marras" -#: utils/dates.py:28 +#: utils/dates.py:32 msgid "Dec." msgstr "joulu" @@ -2011,26 +3343,237 @@ msgid_plural "minutes" msgstr[0] "minuutti" msgstr[1] "minuuttia" -#: utils/translation/trans_real.py:362 +#: utils/timesince.py:39 +#, python-format +msgid "%(number)d %(type)s" +msgstr "%(number)d %(type)s" + +#: utils/timesince.py:45 +#, python-format +msgid ", %(number)d %(type)s" +msgstr ", %(number)d %(type)s" + +#: utils/translation/trans_real.py:391 msgid "DATE_FORMAT" msgstr "j.n.Y" -#: utils/translation/trans_real.py:363 +#: utils/translation/trans_real.py:392 msgid "DATETIME_FORMAT" msgstr "j.n.Y G:i" -#: utils/translation/trans_real.py:364 +#: utils/translation/trans_real.py:393 msgid "TIME_FORMAT" msgstr "G:i" -#: utils/translation/trans_real.py:380 +#: utils/translation/trans_real.py:409 msgid "YEAR_MONTH_FORMAT" msgstr "N Y" -#: utils/translation/trans_real.py:381 +#: utils/translation/trans_real.py:410 msgid "MONTH_DAY_FORMAT" msgstr "N j, Y" -#: template/defaultfilters.py:401 -msgid "yes,no,maybe" -msgstr "kyllä,ei,ehkä" +#: conf/global_settings.py:39 +msgid "Arabic" +msgstr "arabia" + +#: conf/global_settings.py:40 +msgid "Bengali" +msgstr "bengali" + +#: conf/global_settings.py:41 +msgid "Bulgarian" +msgstr "bulgaria" + +#: conf/global_settings.py:42 +msgid "Catalan" +msgstr "katalaani" + +#: conf/global_settings.py:43 +msgid "Czech" +msgstr "tšekki" + +#: conf/global_settings.py:44 +msgid "Welsh" +msgstr "wales" + +#: conf/global_settings.py:45 +msgid "Danish" +msgstr "tanska" + +#: conf/global_settings.py:46 +msgid "German" +msgstr "saksa" + +#: conf/global_settings.py:47 +msgid "Greek" +msgstr "kreikka" + +#: conf/global_settings.py:48 +msgid "English" +msgstr "englanti" + +#: conf/global_settings.py:49 +msgid "Spanish" +msgstr "espanja" + +#: conf/global_settings.py:50 +msgid "Argentinean Spanish" +msgstr "Argentiinan espanja" + +#: conf/global_settings.py:51 +msgid "Persian" +msgstr "persia" + +#: conf/global_settings.py:52 +msgid "Finnish" +msgstr "suomi" + +#: conf/global_settings.py:53 +msgid "French" +msgstr "ranska" + +#: conf/global_settings.py:54 +msgid "Galician" +msgstr "galicia" + +#: conf/global_settings.py:55 +msgid "Hungarian" +msgstr "unkari" + +#: conf/global_settings.py:56 +msgid "Hebrew" +msgstr "heprea" + +#: conf/global_settings.py:57 +msgid "Croatian" +msgstr "kroatia" + +#: conf/global_settings.py:58 +msgid "Icelandic" +msgstr "islanti" + +#: conf/global_settings.py:59 +msgid "Italian" +msgstr "italia" + +#: conf/global_settings.py:60 +msgid "Japanese" +msgstr "japani" + +#: conf/global_settings.py:61 +msgid "Korean" +msgstr "korea" + +#: conf/global_settings.py:62 +msgid "Khmer" +msgstr "khmer" + +#: conf/global_settings.py:63 +msgid "Kannada" +msgstr "kannada" + +#: conf/global_settings.py:64 +msgid "Latvian" +msgstr "latvia" + +#: conf/global_settings.py:65 +msgid "Macedonian" +msgstr "makedonia" + +#: conf/global_settings.py:66 +msgid "Dutch" +msgstr "hollanti" + +#: conf/global_settings.py:67 +msgid "Norwegian" +msgstr "norja" + +#: conf/global_settings.py:68 +msgid "Polish" +msgstr "puola" + +#: conf/global_settings.py:69 +msgid "Portugese" +msgstr "portugali" + +#: conf/global_settings.py:70 +msgid "Brazilian" +msgstr "Brasilian portugali" + +#: conf/global_settings.py:71 +msgid "Romanian" +msgstr "romania" + +#: conf/global_settings.py:72 +msgid "Russian" +msgstr "venäjä" + +#: conf/global_settings.py:73 +msgid "Slovak" +msgstr "slovakia" + +#: conf/global_settings.py:74 +msgid "Slovenian" +msgstr "slovenia" + +#: conf/global_settings.py:75 +msgid "Serbian" +msgstr "serbia" + +#: conf/global_settings.py:76 +msgid "Swedish" +msgstr "ruotsi" + +#: conf/global_settings.py:77 +msgid "Tamil" +msgstr "tamili" + +#: conf/global_settings.py:78 +msgid "Telugu" +msgstr "telugu" + +#: conf/global_settings.py:79 +msgid "Turkish" +msgstr "turkki" + +#: conf/global_settings.py:80 +msgid "Ukrainian" +msgstr "ukraina" + +#: conf/global_settings.py:81 +msgid "Simplified Chinese" +msgstr "kiina (yksinkertaistettu)" + +#: conf/global_settings.py:82 +msgid "Traditional Chinese" +msgstr "kiina (perinteinen)" + +#: oldforms/__init__.py:408 +#, python-format +msgid "Ensure your text is less than %s character." +msgid_plural "Ensure your text is less than %s characters." +msgstr[0] "Varmista, että tekstin pituus on vähemmän kuin %s merkki." +msgstr[1] "Varmista, että teksti pituus on vähemmän kuin %s merkkiä." + +#: oldforms/__init__.py:413 +msgid "Line breaks are not allowed here." +msgstr "Rivinvaihtoja ei voi käyttää." + +#: oldforms/__init__.py:511 oldforms/__init__.py:585 oldforms/__init__.py:624 +#, python-format +msgid "Select a valid choice; '%(data)s' is not in %(choices)s." +msgstr "" +"Valinta ei kelpaa; '%(data)s' ei löydy vaihtoehtojen %(choices)s joukosta." + +#: oldforms/__init__.py:744 +msgid "Enter a whole number between -32,768 and 32,767." +msgstr "Syötä kokonaisluku väliltä -32768 ja 32767." + +#: oldforms/__init__.py:754 +msgid "Enter a positive number." +msgstr "Syötä positiivinen kokonaisluku." + +#: oldforms/__init__.py:764 +msgid "Enter a whole number between 0 and 32,767." +msgstr "Syötä kokonaisluku väliltä 0 ja 32767." diff --git a/django/conf/locale/ga/LC_MESSAGES/django.mo b/django/conf/locale/ga/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..1c414c28f5d736ee6d2bf63c63e83379d2c6112f GIT binary patch literal 379 zcmZvX!Ab)$5QZyy+M{O=Ie61qv!!4gYpK>Mg)Ww|dLMVkG$osqY%2Cad_AAVS;Y3@ z4B(1zbHto6=gcv4$+YP+cibHC+dBI!f?rb^VOGH_g~oWNM72hzeX^vD z4-xW4n+oo?x`Dzgku07Im;}PeE<9i)CAv~xgB(EC6IoYDc_A|?S%f8hnD), YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-09-14 12:00+0100\n" +"PO-Revision-Date: 2007-09-14 14:00+0100\n" +"Last-Translator: Michael Thornhill \n" +"Language-Team: Gaeilge \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: db/models/manipulators.py:309 +#, python-format +msgid "%(object)s with this %(type)s already exists for the given %(field)s." +msgstr "" + +#: db/models/manipulators.py:310 +#: contrib/admin/views/main.py:342 +#: contrib/admin/views/main.py:344 +#: contrib/admin/views/main.py:346 +#: core/validators.py:283 +msgid "and" +msgstr "" + +#: db/models/fields/related.py:55 +#, python-format +msgid "Please enter a valid %s." +msgstr "" + +#: db/models/fields/related.py:658 +msgid "Separate multiple IDs with commas." +msgstr "" + +#: db/models/fields/related.py:660 +msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#: db/models/fields/related.py:707 +#, 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] "" +msgstr[1] "" + +#: db/models/fields/__init__.py:52 +#, python-format +msgid "%(optname)s with this %(fieldname)s already exists." +msgstr "" + +#: db/models/fields/__init__.py:159 +#: db/models/fields/__init__.py:316 +#: db/models/fields/__init__.py:724 +#: db/models/fields/__init__.py:735 +#: newforms/fields.py:93 +#: newforms/fields.py:509 +#: newforms/fields.py:585 +#: newforms/fields.py:596 +#: newforms/models.py:193 +#: oldforms/__init__.py:373 +msgid "This field is required." +msgstr "" + +#: db/models/fields/__init__.py:414 +msgid "This value must be an integer." +msgstr "" + +#: db/models/fields/__init__.py:449 +msgid "This value must be either True or False." +msgstr "" + +#: db/models/fields/__init__.py:470 +msgid "This field cannot be null." +msgstr "" + +#: db/models/fields/__init__.py:504 +#: core/validators.py:156 +msgid "Enter a valid date in YYYY-MM-DD format." +msgstr "" + +#: db/models/fields/__init__.py:573 +#: core/validators.py:165 +msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." +msgstr "" + +#: db/models/fields/__init__.py:634 +msgid "This value must be a decimal number." +msgstr "" + +#: db/models/fields/__init__.py:744 +msgid "Enter a valid filename." +msgstr "" + +#: db/models/fields/__init__.py:887 +msgid "This value must be either None, True or False." +msgstr "" + +#: template/defaultfilters.py:532 +msgid "yes,no,maybe" +msgstr "" + +#: template/defaultfilters.py:561 +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" + +#: template/defaultfilters.py:563 +#, python-format +msgid "%.1f KB" +msgstr "" + +#: template/defaultfilters.py:565 +#, python-format +msgid "%.1f MB" +msgstr "" + +#: template/defaultfilters.py:566 +#, python-format +msgid "%.1f GB" +msgstr "" + +#: contrib/flatpages/models.py:7 +#: contrib/admin/views/doc.py:317 +msgid "URL" +msgstr "" + +#: contrib/flatpages/models.py:8 +msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes." +msgstr "" + +#: contrib/flatpages/models.py:9 +msgid "title" +msgstr "" + +#: contrib/flatpages/models.py:10 +msgid "content" +msgstr "" + +#: contrib/flatpages/models.py:11 +msgid "enable comments" +msgstr "" + +#: contrib/flatpages/models.py:12 +msgid "template name" +msgstr "" + +#: contrib/flatpages/models.py:13 +msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'." +msgstr "" + +#: contrib/flatpages/models.py:14 +msgid "registration required" +msgstr "" + +#: contrib/flatpages/models.py:14 +msgid "If this is checked, only logged-in users will be able to view the page." +msgstr "" + +#: contrib/flatpages/models.py:18 +msgid "flat page" +msgstr "" + +#: contrib/flatpages/models.py:19 +msgid "flat pages" +msgstr "" + +#: contrib/redirects/models.py:7 +msgid "redirect from" +msgstr "" + +#: contrib/redirects/models.py:8 +msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'." +msgstr "" + +#: contrib/redirects/models.py:9 +msgid "redirect to" +msgstr "" + +#: contrib/redirects/models.py:10 +msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'." +msgstr "" + +#: contrib/redirects/models.py:13 +msgid "redirect" +msgstr "" + +#: contrib/redirects/models.py:14 +msgid "redirects" +msgstr "" + +#: contrib/localflavor/uk/forms.py:18 +msgid "Enter a postcode. A space is required between the two postcode parts." +msgstr "" + +#: contrib/localflavor/in_/forms.py:16 +msgid "Enter a zip code in the format XXXXXXX." +msgstr "" + +#: contrib/localflavor/jp/forms.py:21 +msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:4 +msgid "Hokkaido" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:5 +msgid "Aomori" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:6 +msgid "Iwate" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:7 +msgid "Miyagi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:8 +msgid "Akita" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:9 +msgid "Yamagata" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:10 +msgid "Fukushima" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:11 +msgid "Ibaraki" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:12 +msgid "Tochigi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:13 +msgid "Gunma" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:14 +msgid "Saitama" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:15 +msgid "Chiba" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:16 +msgid "Tokyo" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:17 +msgid "Kanagawa" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:18 +msgid "Yamanashi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:19 +msgid "Nagano" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:20 +msgid "Niigata" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:21 +msgid "Toyama" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:22 +msgid "Ishikawa" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:23 +msgid "Fukui" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:24 +msgid "Gifu" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:25 +msgid "Shizuoka" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:26 +msgid "Aichi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:27 +msgid "Mie" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:28 +msgid "Shiga" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:29 +msgid "Kyoto" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:30 +msgid "Osaka" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:31 +msgid "Hyogo" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:32 +msgid "Nara" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:33 +msgid "Wakayama" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:34 +msgid "Tottori" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:35 +msgid "Shimane" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:36 +msgid "Okayama" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:37 +msgid "Hiroshima" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:38 +msgid "Yamaguchi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:39 +msgid "Tokushima" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:40 +msgid "Kagawa" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:41 +msgid "Ehime" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:42 +msgid "Kochi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:43 +msgid "Fukuoka" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:44 +msgid "Saga" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:45 +msgid "Nagasaki" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:46 +msgid "Kumamoto" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:47 +msgid "Oita" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:48 +msgid "Miyazaki" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:49 +msgid "Kagoshima" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:50 +msgid "Okinawa" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:8 +msgid "Banska Bystrica region" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:9 +msgid "Bratislava region" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:10 +msgid "Kosice region" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:11 +msgid "Nitra region" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:12 +msgid "Presov region" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:13 +msgid "Trencin region" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:14 +msgid "Trnava region" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:15 +msgid "Zilina region" +msgstr "" + +#: contrib/localflavor/sk/forms.py:32 +msgid "Enter a postal code in the format XXXXX or XXX XX." +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:8 +msgid "Banska Bystrica" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:9 +msgid "Banska Stiavnica" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:10 +msgid "Bardejov" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:11 +msgid "Banovce nad Bebravou" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:12 +msgid "Brezno" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:13 +msgid "Bratislava I" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:14 +msgid "Bratislava II" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:15 +msgid "Bratislava III" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:16 +msgid "Bratislava IV" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:17 +msgid "Bratislava V" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:18 +msgid "Bytca" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:19 +msgid "Cadca" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:20 +msgid "Detva" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:21 +msgid "Dolny Kubin" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:22 +msgid "Dunajska Streda" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:23 +msgid "Galanta" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:24 +msgid "Gelnica" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:25 +msgid "Hlohovec" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:26 +msgid "Humenne" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:27 +msgid "Ilava" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:28 +msgid "Kezmarok" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:29 +msgid "Komarno" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:30 +msgid "Kosice I" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:31 +msgid "Kosice II" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:32 +msgid "Kosice III" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:33 +msgid "Kosice IV" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:34 +msgid "Kosice - okolie" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:35 +msgid "Krupina" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:36 +msgid "Kysucke Nove Mesto" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:37 +msgid "Levice" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:38 +msgid "Levoca" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:39 +msgid "Liptovsky Mikulas" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:40 +msgid "Lucenec" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:41 +msgid "Malacky" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:42 +msgid "Martin" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:43 +msgid "Medzilaborce" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:44 +msgid "Michalovce" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:45 +msgid "Myjava" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:46 +msgid "Namestovo" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:47 +msgid "Nitra" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:48 +msgid "Nove Mesto nad Vahom" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:49 +msgid "Nove Zamky" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:50 +msgid "Partizanske" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:51 +msgid "Pezinok" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:52 +msgid "Piestany" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:53 +msgid "Poltar" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:54 +msgid "Poprad" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:55 +msgid "Povazska Bystrica" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:56 +msgid "Presov" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:57 +msgid "Prievidza" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:58 +msgid "Puchov" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:59 +msgid "Revuca" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:60 +msgid "Rimavska Sobota" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:61 +msgid "Roznava" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:62 +msgid "Ruzomberok" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:63 +msgid "Sabinov" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:64 +msgid "Senec" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:65 +msgid "Senica" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:66 +msgid "Skalica" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:67 +msgid "Snina" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:68 +msgid "Sobrance" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:69 +msgid "Spisska Nova Ves" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:70 +msgid "Stara Lubovna" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:71 +msgid "Stropkov" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:72 +msgid "Svidnik" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:73 +msgid "Sala" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:74 +msgid "Topolcany" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:75 +msgid "Trebisov" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:76 +msgid "Trencin" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:77 +msgid "Trnava" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:78 +msgid "Turcianske Teplice" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:79 +msgid "Tvrdosin" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:80 +msgid "Velky Krtis" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:81 +msgid "Vranov nad Toplou" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:82 +msgid "Zlate Moravce" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:83 +msgid "Zvolen" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:84 +msgid "Zarnovica" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:85 +msgid "Ziar nad Hronom" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:86 +msgid "Zilina" +msgstr "" + +#: contrib/localflavor/is_/forms.py:17 +msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." +msgstr "" + +#: contrib/localflavor/is_/forms.py:31 +msgid "The Icelandic identification number is not valid." +msgstr "" + +#: contrib/localflavor/au/forms.py:18 +msgid "Enter a 4 digit post code." +msgstr "" + +#: contrib/localflavor/fi/forms.py:14 +#: contrib/localflavor/fr/forms.py:17 +#: contrib/localflavor/de/forms.py:16 +msgid "Enter a zip code in the format XXXXX." +msgstr "" + +#: contrib/localflavor/fi/forms.py:40 +#: contrib/localflavor/fi/forms.py:45 +msgid "Enter a valid Finnish social security number." +msgstr "" + +#: contrib/localflavor/ch/forms.py:18 +#: contrib/localflavor/no/forms.py:14 +msgid "Enter a zip code in the format XXXX." +msgstr "" + +#: contrib/localflavor/ch/forms.py:90 +msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format." +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:5 +msgid "Aargau" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:6 +msgid "Appenzell Innerrhoden" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:7 +msgid "Appenzell Ausserrhoden" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:8 +msgid "Basel-Stadt" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:9 +msgid "Basel-Land" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:10 +msgid "Berne" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:11 +msgid "Fribourg" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:12 +msgid "Geneva" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:13 +msgid "Glarus" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:14 +msgid "Graubuenden" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:15 +msgid "Jura" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:16 +msgid "Lucerne" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:17 +msgid "Neuchatel" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:18 +msgid "Nidwalden" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:19 +msgid "Obwalden" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:20 +msgid "Schaffhausen" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:21 +msgid "Schwyz" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:22 +msgid "Solothurn" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:23 +msgid "St. Gallen" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:24 +msgid "Thurgau" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:25 +msgid "Ticino" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:26 +msgid "Uri" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:27 +msgid "Valais" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:28 +msgid "Vaud" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:29 +msgid "Zug" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:30 +msgid "Zurich" +msgstr "" + +#: contrib/localflavor/cl/forms.py:32 +msgid "Enter valid a Chilean RUT. The format is XX.XXX.XXX-X." +msgstr "" + +#: contrib/localflavor/cl/forms.py:37 +msgid "Enter valid a Chilean RUT" +msgstr "" + +#: contrib/localflavor/ar/forms.py:30 +#: contrib/localflavor/ar/forms.py:38 +msgid "Enter a postal code in the format NNNN or ANNNNAAA." +msgstr "" + +#: contrib/localflavor/ar/forms.py:61 +#: contrib/localflavor/br/forms.py:103 +msgid "This field requires only numbers." +msgstr "" + +#: contrib/localflavor/ar/forms.py:64 +msgid "This field requires 7 or 8 digits." +msgstr "" + +#: contrib/localflavor/ar/forms.py:75 +msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." +msgstr "" + +#: contrib/localflavor/ar/forms.py:88 +msgid "Invalid CUIT." +msgstr "" + +#: contrib/localflavor/us/forms.py:18 +msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." +msgstr "" + +#: contrib/localflavor/us/forms.py:51 +msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." +msgstr "" + +#: contrib/localflavor/no/forms.py:35 +msgid "Enter a valid Norwegian social security number." +msgstr "" + +#: contrib/localflavor/pl/forms.py:53 +msgid "National Identification Number consists of 11 digits." +msgstr "" + +#: contrib/localflavor/pl/forms.py:59 +msgid "Wrong checksum for the National Identification Number." +msgstr "" + +#: contrib/localflavor/pl/forms.py:71 +msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." +msgstr "" + +#: contrib/localflavor/pl/forms.py:82 +msgid "Enter a postal code in the format XX-XXX." +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:8 +msgid "Lower Silesia" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:9 +msgid "Kuyavia-Pomerania" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:10 +msgid "Lublin" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:11 +msgid "Lubusz" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:12 +msgid "Lodz" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:13 +msgid "Lesser Poland" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:14 +msgid "Masovia" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:15 +msgid "Opole" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:16 +msgid "Subcarpatia" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:17 +msgid "Podlasie" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:18 +msgid "Pomerania" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:19 +msgid "Silesia" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:20 +msgid "Swietokrzyskie" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:21 +msgid "Warmia-Masuria" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:22 +msgid "Greater Poland" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:23 +msgid "West Pomerania" +msgstr "" + +#: contrib/localflavor/de/forms.py:60 +msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format." +msgstr "" + +#: contrib/localflavor/de/de_states.py:5 +msgid "Baden-Wuerttemberg" +msgstr "" + +#: contrib/localflavor/de/de_states.py:6 +msgid "Bavaria" +msgstr "" + +#: contrib/localflavor/de/de_states.py:7 +msgid "Berlin" +msgstr "" + +#: contrib/localflavor/de/de_states.py:8 +msgid "Brandenburg" +msgstr "" + +#: contrib/localflavor/de/de_states.py:9 +msgid "Bremen" +msgstr "" + +#: contrib/localflavor/de/de_states.py:10 +msgid "Hamburg" +msgstr "" + +#: contrib/localflavor/de/de_states.py:11 +msgid "Hessen" +msgstr "" + +#: contrib/localflavor/de/de_states.py:12 +msgid "Mecklenburg-Western Pomerania" +msgstr "" + +#: contrib/localflavor/de/de_states.py:13 +msgid "Lower Saxony" +msgstr "" + +#: contrib/localflavor/de/de_states.py:14 +msgid "North Rhine-Westphalia" +msgstr "" + +#: contrib/localflavor/de/de_states.py:15 +msgid "Rhineland-Palatinate" +msgstr "" + +#: contrib/localflavor/de/de_states.py:16 +msgid "Saarland" +msgstr "" + +#: contrib/localflavor/de/de_states.py:17 +msgid "Saxony" +msgstr "" + +#: contrib/localflavor/de/de_states.py:18 +msgid "Saxony-Anhalt" +msgstr "" + +#: contrib/localflavor/de/de_states.py:19 +msgid "Schleswig-Holstein" +msgstr "" + +#: contrib/localflavor/de/de_states.py:20 +msgid "Thuringia" +msgstr "" + +#: contrib/localflavor/nl/forms.py:25 +msgid "Enter a valid postal code" +msgstr "" + +#: contrib/localflavor/nl/forms.py:53 +msgid "Enter a valid phone number" +msgstr "" + +#: contrib/localflavor/nl/forms.py:76 +msgid "Enter a valid SoFi number" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:4 +msgid "Drente" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:5 +msgid "Flevoland" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:6 +msgid "Friesland" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:7 +msgid "Gelderland" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:8 +msgid "Groningen" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:9 +msgid "Limburg" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:10 +msgid "Noord-Brabant" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:11 +msgid "Noord-Holland" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:12 +msgid "Overijssel" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:13 +msgid "Utrecht" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:14 +msgid "Zeeland" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:15 +msgid "Zuid-Holland" +msgstr "" + +#: contrib/localflavor/it/forms.py:16 +msgid "Enter a valid zip code." +msgstr "" + +#: contrib/localflavor/it/forms.py:41 +msgid "Enter a valid Social Security number." +msgstr "" + +#: contrib/localflavor/it/forms.py:68 +msgid "Enter a valid VAT number." +msgstr "" + +#: contrib/localflavor/br/forms.py:23 +msgid "Enter a zip code in the format XXXXX-XXX." +msgstr "" + +#: contrib/localflavor/br/forms.py:35 +msgid "Phone numbers must be in XX-XXXX-XXXX format." +msgstr "" + +#: contrib/localflavor/br/forms.py:68 +msgid "Select a valid brazilian state. That state is not one of the available states." +msgstr "" + +#: contrib/localflavor/br/forms.py:105 +msgid "This field requires at most 11 digits or 14 characters." +msgstr "" + +#: contrib/localflavor/br/forms.py:115 +msgid "Invalid CPF number." +msgstr "" + +#: contrib/localflavor/br/forms.py:137 +msgid "This field requires at least 14 digits" +msgstr "" + +#: contrib/localflavor/br/forms.py:147 +msgid "Invalid CNPJ number." +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:20 +msgid "th" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:20 +msgid "st" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:20 +msgid "nd" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:20 +msgid "rd" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:50 +#, python-format +msgid "%(value).1f million" +msgid_plural "%(value).1f million" +msgstr[0] "" +msgstr[1] "" + +#: contrib/humanize/templatetags/humanize.py:53 +#, python-format +msgid "%(value).1f billion" +msgid_plural "%(value).1f billion" +msgstr[0] "" +msgstr[1] "" + +#: contrib/humanize/templatetags/humanize.py:56 +#, python-format +msgid "%(value).1f trillion" +msgid_plural "%(value).1f trillion" +msgstr[0] "" +msgstr[1] "" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "one" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "two" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "three" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "four" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "five" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "six" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "seven" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "eight" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:71 +msgid "nine" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:90 +msgid "today" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:92 +msgid "tomorrow" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:94 +msgid "yesterday" +msgstr "" + +#: contrib/admin/filterspecs.py:42 +#, python-format +msgid "" +"

                    By %s:

                    \n" +"
                      \n" +msgstr "" + +#: contrib/admin/filterspecs.py:72 +#: contrib/admin/filterspecs.py:90 +#: contrib/admin/filterspecs.py:145 +#: contrib/admin/filterspecs.py:171 +msgid "All" +msgstr "" + +#: contrib/admin/filterspecs.py:111 +msgid "Any date" +msgstr "" + +#: contrib/admin/filterspecs.py:112 +msgid "Today" +msgstr "" + +#: contrib/admin/filterspecs.py:115 +msgid "Past 7 days" +msgstr "" + +#: contrib/admin/filterspecs.py:117 +msgid "This month" +msgstr "" + +#: contrib/admin/filterspecs.py:119 +msgid "This year" +msgstr "" + +#: contrib/admin/filterspecs.py:145 +#: newforms/widgets.py:188 +#: oldforms/__init__.py:591 +msgid "Yes" +msgstr "" + +#: contrib/admin/filterspecs.py:145 +#: newforms/widgets.py:188 +#: oldforms/__init__.py:591 +msgid "No" +msgstr "" + +#: contrib/admin/filterspecs.py:152 +#: newforms/widgets.py:188 +#: oldforms/__init__.py:591 +msgid "Unknown" +msgstr "" + +#: contrib/admin/models.py:17 +msgid "action time" +msgstr "" + +#: contrib/admin/models.py:20 +msgid "object id" +msgstr "" + +#: contrib/admin/models.py:21 +msgid "object repr" +msgstr "" + +#: contrib/admin/models.py:22 +msgid "action flag" +msgstr "" + +#: contrib/admin/models.py:23 +msgid "change message" +msgstr "" + +#: contrib/admin/models.py:26 +msgid "log entry" +msgstr "" + +#: contrib/admin/models.py:27 +msgid "log entries" +msgstr "" + +#: contrib/admin/templates/widget/file.html:2 +msgid "Currently:" +msgstr "" + +#: contrib/admin/templates/widget/file.html:3 +msgid "Change:" +msgstr "" + +#: contrib/admin/templates/widget/date_time.html:3 +msgid "Date:" +msgstr "" + +#: contrib/admin/templates/widget/date_time.html:4 +msgid "Time:" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +msgid "Documentation" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/admin/auth/user/change_password.html:15 +#: contrib/admin/templates/admin/auth/user/change_password.html:46 +#: contrib/admin/templates/admin_doc/view_detail.html:4 +#: contrib/admin/templates/admin_doc/template_tag_index.html:5 +#: contrib/admin/templates/admin_doc/view_index.html:5 +#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/template_detail.html:4 +#: contrib/admin/templates/admin_doc/index.html:4 +#: contrib/admin/templates/admin_doc/missing_docutils.html:4 +#: contrib/admin/templates/admin_doc/model_detail.html:3 +#: contrib/admin/templates/admin_doc/template_filter_index.html:5 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +msgid "Change password" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 +#: contrib/admin/templates/admin_doc/view_detail.html:4 +#: contrib/admin/templates/admin_doc/template_tag_index.html:5 +#: contrib/admin/templates/admin_doc/view_index.html:5 +#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/template_detail.html:4 +#: contrib/admin/templates/admin_doc/index.html:4 +#: contrib/admin/templates/admin_doc/missing_docutils.html:4 +#: contrib/admin/templates/admin_doc/model_detail.html:3 +#: contrib/admin/templates/admin_doc/template_filter_index.html:5 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/comments/templates/comments/form.html:6 +msgid "Log out" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:6 +#: contrib/admin/templates/admin/object_history.html:5 +#: contrib/admin/templates/admin/500.html:4 +#: contrib/admin/templates/admin/change_form.html:13 +#: contrib/admin/templates/admin/invalid_setup.html:4 +#: contrib/admin/templates/admin/change_list.html:6 +#: contrib/admin/templates/admin/base.html:30 +#: contrib/admin/templates/admin/auth/user/change_password.html:12 +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +#: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admin/templates/registration/password_change_done.html:4 +#: contrib/admin/templates/registration/logged_out.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admin/templates/registration/password_reset_done.html:4 +msgid "Home" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:9 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Delete" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:14 +#, python-format +msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:21 +#, python-format +msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:26 +msgid "Yes, I'm sure" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:5 +#: contrib/admin/templates/admin/change_form.html:21 +msgid "History" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:18 +msgid "Date/time" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:19 +msgid "User" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:20 +msgid "Action" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:26 +msgid "DATE_WITH_TIME_FULL" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:36 +msgid "This object doesn't have a change history. It probably wasn't added via this admin site." +msgstr "" + +#: contrib/admin/templates/admin/login.html:17 +#: contrib/comments/templates/comments/form.html:6 +#: contrib/comments/templates/comments/form.html:8 +msgid "Username:" +msgstr "" + +#: contrib/admin/templates/admin/login.html:20 +#: contrib/comments/templates/comments/form.html:8 +msgid "Password:" +msgstr "" + +#: contrib/admin/templates/admin/login.html:25 +#: contrib/admin/views/decorators.py:24 +msgid "Log in" +msgstr "" + +#: contrib/admin/templates/admin/pagination.html:10 +msgid "Show all" +msgstr "" + +#: contrib/admin/templates/admin/500.html:4 +msgid "Server error" +msgstr "" + +#: contrib/admin/templates/admin/500.html:6 +msgid "Server error (500)" +msgstr "" + +#: contrib/admin/templates/admin/500.html:9 +msgid "Server Error (500)" +msgstr "" + +#: 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 "" + +#: contrib/admin/templates/admin/change_form.html:15 +#: contrib/admin/templates/admin/index.html:28 +msgid "Add" +msgstr "" + +#: contrib/admin/templates/admin/change_form.html:22 +msgid "View on site" +msgstr "" + +#: contrib/admin/templates/admin/change_form.html:32 +#: contrib/admin/templates/admin/auth/user/change_password.html:24 +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/templates/admin/change_form.html:50 +msgid "Ordering" +msgstr "" + +#: contrib/admin/templates/admin/change_form.html:53 +msgid "Order:" +msgstr "" + +#: contrib/admin/templates/admin/filter.html:2 +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +#: 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 "" + +#: contrib/admin/templates/admin/index.html:17 +#, python-format +msgid "Models available in the %(name)s application." +msgstr "" + +#: contrib/admin/templates/admin/index.html:18 +#, python-format +msgid "%(name)s" +msgstr "" + +#: contrib/admin/templates/admin/index.html:34 +msgid "Change" +msgstr "" + +#: contrib/admin/templates/admin/index.html:44 +msgid "You don't have permission to edit anything." +msgstr "" + +#: contrib/admin/templates/admin/index.html:52 +msgid "Recent Actions" +msgstr "" + +#: contrib/admin/templates/admin/index.html:53 +msgid "My Actions" +msgstr "" + +#: contrib/admin/templates/admin/index.html:57 +msgid "None available" +msgstr "" + +#: contrib/admin/templates/admin/404.html:4 +#: contrib/admin/templates/admin/404.html:8 +msgid "Page not found" +msgstr "" + +#: contrib/admin/templates/admin/404.html:10 +msgid "We're sorry, but the requested page could not be found." +msgstr "" + +#: contrib/admin/templates/admin/filters.html:4 +msgid "Filter" +msgstr "" + +#: contrib/admin/templates/admin/search_form.html:8 +msgid "Go" +msgstr "" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "1 result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +#: contrib/admin/templates/admin/submit_line.html:4 +msgid "Save as new" +msgstr "" + +#: contrib/admin/templates/admin/submit_line.html:5 +msgid "Save and add another" +msgstr "" + +#: contrib/admin/templates/admin/submit_line.html:6 +msgid "Save and continue editing" +msgstr "" + +#: contrib/admin/templates/admin/submit_line.html:7 +msgid "Save" +msgstr "" + +#: contrib/admin/templates/admin/base_site.html:4 +msgid "Django site admin" +msgstr "" + +#: contrib/admin/templates/admin/base_site.html:7 +msgid "Django administration" +msgstr "" + +#: contrib/admin/templates/admin/change_list.html:12 +#, python-format +msgid "Add %(name)s" +msgstr "" + +#: contrib/admin/templates/admin/base.html:25 +msgid "Welcome," +msgstr "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:28 +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:34 +#: contrib/admin/templates/admin/auth/user/add_form.html:18 +msgid "Password" +msgstr "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:39 +#: contrib/admin/templates/admin/auth/user/add_form.html:23 +msgid "Password (again)" +msgstr "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:40 +#: contrib/admin/templates/admin/auth/user/add_form.html:24 +msgid "Enter the same password as above, for verification." +msgstr "" + +#: 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 "" + +#: contrib/admin/templates/admin/auth/user/add_form.html:12 +msgid "Username" +msgstr "" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:3 +msgid "Bookmarklets" +msgstr "" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:5 +msgid "Documentation bookmarklets" +msgstr "" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:9 +msgid "" +"\n" +"

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

                      \n" +msgstr "" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:19 +msgid "Documentation for this page" +msgstr "" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:20 +msgid "Jumps you from any page to the documentation for the view that generates that page." +msgstr "" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:22 +msgid "Show object ID" +msgstr "" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:23 +msgid "Shows the content-type and unique ID for pages that represent a single object." +msgstr "" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:25 +msgid "Edit this object (current window)" +msgstr "" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:26 +msgid "Jumps to the admin page for pages that represent a single object." +msgstr "" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:28 +msgid "Edit this object (new window)" +msgstr "" + +#: contrib/admin/templates/admin_doc/bookmarklets.html:29 +msgid "As above, but opens the admin page in a new window." +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admin/templates/registration/password_change_form.html:6 +#: contrib/admin/templates/registration/password_change_form.html:10 +#: contrib/admin/templates/registration/password_change_done.html:4 +msgid "Password change" +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:12 +msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:17 +msgid "Old password:" +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:19 +msgid "New password:" +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:21 +msgid "Confirm password:" +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:23 +msgid "Change my password" +msgstr "" + +#: contrib/admin/templates/registration/password_change_done.html:6 +#: contrib/admin/templates/registration/password_change_done.html:10 +msgid "Password change successful" +msgstr "" + +#: contrib/admin/templates/registration/password_change_done.html:12 +msgid "Your password was changed." +msgstr "" + +#: contrib/admin/templates/registration/logged_out.html:8 +msgid "Thanks for spending some quality time with the Web site today." +msgstr "" + +#: contrib/admin/templates/registration/logged_out.html:10 +msgid "Log in again" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:2 +msgid "You're receiving this e-mail because you requested a password reset" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:3 +#, python-format +msgid "for your user account at %(site_name)s" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:5 +#, python-format +msgid "Your new password is: %(new_password)s" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:7 +msgid "Feel free to change this password by going to this page:" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:11 +msgid "Your username, in case you've forgotten:" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:13 +msgid "Thanks for using our site!" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:15 +#, python-format +msgid "The %(site_name)s team" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:6 +#: contrib/admin/templates/registration/password_reset_form.html:10 +#: contrib/admin/templates/registration/password_reset_done.html:4 +msgid "Password reset" +msgstr "" + +#: 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 "" + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "E-mail address:" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "Reset my password" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_done.html:6 +#: contrib/admin/templates/registration/password_reset_done.html:10 +msgid "Password reset successful" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: 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 "" + +#: 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 "" + +#: contrib/admin/views/decorators.py:83 +msgid "Usernames cannot contain the '@' character." +msgstr "" + +#: contrib/admin/views/decorators.py:85 +#, python-format +msgid "Your e-mail address is not your username. Try '%s' instead." +msgstr "" + +#: contrib/admin/views/doc.py:47 +#: contrib/admin/views/doc.py:49 +#: contrib/admin/views/doc.py:51 +msgid "tag:" +msgstr "" + +#: contrib/admin/views/doc.py:78 +#: contrib/admin/views/doc.py:80 +#: contrib/admin/views/doc.py:82 +msgid "filter:" +msgstr "" + +#: contrib/admin/views/doc.py:136 +#: contrib/admin/views/doc.py:138 +#: contrib/admin/views/doc.py:140 +msgid "view:" +msgstr "" + +#: contrib/admin/views/doc.py:165 +#, python-format +msgid "App %r not found" +msgstr "" + +#: contrib/admin/views/doc.py:172 +#, python-format +msgid "Model %(name)r not found in app %(label)r" +msgstr "" + +#: contrib/admin/views/doc.py:184 +#, python-format +msgid "the related `%(label)s.%(type)s` object" +msgstr "" + +#: contrib/admin/views/doc.py:184 +#: contrib/admin/views/doc.py:206 +#: contrib/admin/views/doc.py:220 +#: contrib/admin/views/doc.py:225 +msgid "model:" +msgstr "" + +#: contrib/admin/views/doc.py:215 +#, python-format +msgid "related `%(label)s.%(name)s` objects" +msgstr "" + +#: contrib/admin/views/doc.py:220 +#, python-format +msgid "all %s" +msgstr "" + +#: contrib/admin/views/doc.py:225 +#, python-format +msgid "number of %s" +msgstr "" + +#: contrib/admin/views/doc.py:230 +#, python-format +msgid "Fields on %s objects" +msgstr "" + +#: 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 +msgid "Integer" +msgstr "" + +#: contrib/admin/views/doc.py:293 +msgid "Boolean (Either True or False)" +msgstr "" + +#: contrib/admin/views/doc.py:294 +#: contrib/admin/views/doc.py:313 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "" + +#: contrib/admin/views/doc.py:295 +msgid "Comma-separated integers" +msgstr "" + +#: contrib/admin/views/doc.py:296 +msgid "Date (without time)" +msgstr "" + +#: contrib/admin/views/doc.py:297 +msgid "Date (with time)" +msgstr "" + +#: contrib/admin/views/doc.py:298 +msgid "Decimal number" +msgstr "" + +#: contrib/admin/views/doc.py:299 +msgid "E-mail address" +msgstr "" + +#: contrib/admin/views/doc.py:300 +#: contrib/admin/views/doc.py:301 +#: contrib/admin/views/doc.py:304 +msgid "File path" +msgstr "" + +#: contrib/admin/views/doc.py:302 +msgid "Floating point number" +msgstr "" + +#: contrib/admin/views/doc.py:306 +#: contrib/comments/models.py:85 +msgid "IP address" +msgstr "" + +#: contrib/admin/views/doc.py:308 +msgid "Boolean (Either True, False or None)" +msgstr "" + +#: contrib/admin/views/doc.py:309 +msgid "Relation to parent model" +msgstr "" + +#: contrib/admin/views/doc.py:310 +msgid "Phone number" +msgstr "" + +#: contrib/admin/views/doc.py:315 +msgid "Text" +msgstr "" + +#: contrib/admin/views/doc.py:316 +msgid "Time" +msgstr "" + +#: contrib/admin/views/doc.py:318 +msgid "U.S. state (two uppercase letters)" +msgstr "" + +#: contrib/admin/views/doc.py:319 +msgid "XML text" +msgstr "" + +#: contrib/admin/views/doc.py:345 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: contrib/admin/views/auth.py:20 +#: contrib/admin/views/main.py:264 +#, python-format +msgid "The %(name)s \"%(obj)s\" was added successfully." +msgstr "" + +#: contrib/admin/views/auth.py:25 +#: contrib/admin/views/main.py:268 +#: contrib/admin/views/main.py:354 +msgid "You may edit it again below." +msgstr "" + +#: contrib/admin/views/auth.py:31 +msgid "Add user" +msgstr "" + +#: contrib/admin/views/auth.py:58 +msgid "Password changed successfully." +msgstr "" + +#: contrib/admin/views/auth.py:65 +#, python-format +msgid "Change password: %s" +msgstr "" + +#: contrib/admin/views/main.py:230 +msgid "Site administration" +msgstr "" + +#: contrib/admin/views/main.py:278 +#: contrib/admin/views/main.py:363 +#, python-format +msgid "You may add another %s below." +msgstr "" + +#: contrib/admin/views/main.py:296 +#, python-format +msgid "Add %s" +msgstr "" + +#: contrib/admin/views/main.py:342 +#, python-format +msgid "Added %s." +msgstr "" + +#: contrib/admin/views/main.py:344 +#, python-format +msgid "Changed %s." +msgstr "" + +#: contrib/admin/views/main.py:346 +#, python-format +msgid "Deleted %s." +msgstr "" + +#: contrib/admin/views/main.py:349 +msgid "No fields changed." +msgstr "" + +#: contrib/admin/views/main.py:352 +#, python-format +msgid "The %(name)s \"%(obj)s\" was changed successfully." +msgstr "" + +#: contrib/admin/views/main.py:360 +#, python-format +msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." +msgstr "" + +#: contrib/admin/views/main.py:398 +#, python-format +msgid "Change %s" +msgstr "" + +#: contrib/admin/views/main.py:483 +#, python-format +msgid "One or more %(fieldname)s in %(name)s: %(obj)s" +msgstr "" + +#: contrib/admin/views/main.py:488 +#, python-format +msgid "One or more %(fieldname)s in %(name)s:" +msgstr "" + +#: contrib/admin/views/main.py:520 +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "" + +#: contrib/admin/views/main.py:523 +msgid "Are you sure?" +msgstr "" + +#: contrib/admin/views/main.py:545 +#, python-format +msgid "Change history: %s" +msgstr "" + +#: contrib/admin/views/main.py:579 +#, python-format +msgid "Select %s" +msgstr "" + +#: contrib/admin/views/main.py:579 +#, python-format +msgid "Select %s to change" +msgstr "" + +#: contrib/admin/views/main.py:780 +msgid "Database error" +msgstr "" + +#: contrib/admin/templatetags/admin_list.py:254 +msgid "All dates" +msgstr "" + +#: contrib/auth/forms.py:17 +#: contrib/auth/forms.py:138 +msgid "The two password fields didn't match." +msgstr "" + +#: contrib/auth/forms.py:25 +msgid "A user with that username already exists." +msgstr "" + +#: contrib/auth/forms.py:53 +msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in." +msgstr "" + +#: contrib/auth/forms.py:62 +msgid "This account is inactive." +msgstr "" + +#: contrib/auth/forms.py:84 +msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?" +msgstr "" + +#: contrib/auth/forms.py:117 +msgid "The two 'new password' fields didn't match." +msgstr "" + +#: contrib/auth/forms.py:124 +msgid "Your old password was entered incorrectly. Please enter it again." +msgstr "" + +#: contrib/auth/views.py:47 +msgid "Logged out" +msgstr "" + +#: contrib/auth/models.py:53 +#: contrib/auth/models.py:73 +msgid "name" +msgstr "" + +#: contrib/auth/models.py:55 +msgid "codename" +msgstr "" + +#: contrib/auth/models.py:58 +msgid "permission" +msgstr "" + +#: contrib/auth/models.py:59 +#: contrib/auth/models.py:74 +msgid "permissions" +msgstr "" + +#: contrib/auth/models.py:77 +msgid "group" +msgstr "" + +#: contrib/auth/models.py:78 +#: contrib/auth/models.py:121 +msgid "groups" +msgstr "" + +#: contrib/auth/models.py:111 +msgid "username" +msgstr "" + +#: contrib/auth/models.py:111 +msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)." +msgstr "" + +#: contrib/auth/models.py:112 +msgid "first name" +msgstr "" + +#: contrib/auth/models.py:113 +msgid "last name" +msgstr "" + +#: contrib/auth/models.py:114 +msgid "e-mail address" +msgstr "" + +#: contrib/auth/models.py:115 +msgid "password" +msgstr "" + +#: contrib/auth/models.py:115 +msgid "Use '[algo]$[salt]$[hexdigest]' or use the change password form." +msgstr "" + +#: contrib/auth/models.py:116 +msgid "staff status" +msgstr "" + +#: contrib/auth/models.py:116 +msgid "Designates whether the user can log into this admin site." +msgstr "" + +#: contrib/auth/models.py:117 +msgid "active" +msgstr "" + +#: contrib/auth/models.py:117 +msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts." +msgstr "" + +#: contrib/auth/models.py:118 +msgid "superuser status" +msgstr "" + +#: contrib/auth/models.py:118 +msgid "Designates that this user has all permissions without explicitly assigning them." +msgstr "" + +#: contrib/auth/models.py:119 +msgid "last login" +msgstr "" + +#: contrib/auth/models.py:120 +msgid "date joined" +msgstr "" + +#: contrib/auth/models.py:122 +msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in." +msgstr "" + +#: contrib/auth/models.py:123 +msgid "user permissions" +msgstr "" + +#: contrib/auth/models.py:127 +msgid "user" +msgstr "" + +#: contrib/auth/models.py:128 +msgid "users" +msgstr "" + +#: contrib/auth/models.py:134 +msgid "Personal info" +msgstr "" + +#: contrib/auth/models.py:135 +msgid "Permissions" +msgstr "" + +#: contrib/auth/models.py:136 +msgid "Important dates" +msgstr "" + +#: contrib/auth/models.py:137 +msgid "Groups" +msgstr "" + +#: contrib/auth/models.py:288 +msgid "message" +msgstr "" + +#: contrib/sessions/models.py:68 +msgid "session key" +msgstr "" + +#: contrib/sessions/models.py:69 +msgid "session data" +msgstr "" + +#: contrib/sessions/models.py:70 +msgid "expire date" +msgstr "" + +#: contrib/sessions/models.py:74 +msgid "session" +msgstr "" + +#: contrib/sessions/models.py:75 +msgid "sessions" +msgstr "" + +#: contrib/contenttypes/models.py:37 +msgid "python model class name" +msgstr "" + +#: contrib/contenttypes/models.py:40 +msgid "content type" +msgstr "" + +#: contrib/contenttypes/models.py:41 +msgid "content types" +msgstr "" + +#: contrib/sites/models.py:33 +msgid "domain name" +msgstr "" + +#: contrib/sites/models.py:34 +msgid "display name" +msgstr "" + +#: contrib/sites/models.py:38 +msgid "site" +msgstr "" + +#: contrib/sites/models.py:39 +msgid "sites" +msgstr "" + +#: contrib/comments/models.py:67 +#: contrib/comments/models.py:169 +msgid "object ID" +msgstr "" + +#: contrib/comments/models.py:68 +msgid "headline" +msgstr "" + +#: contrib/comments/models.py:69 +#: contrib/comments/models.py:90 +#: contrib/comments/models.py:170 +msgid "comment" +msgstr "" + +#: contrib/comments/models.py:70 +msgid "rating #1" +msgstr "" + +#: contrib/comments/models.py:71 +msgid "rating #2" +msgstr "" + +#: contrib/comments/models.py:72 +msgid "rating #3" +msgstr "" + +#: contrib/comments/models.py:73 +msgid "rating #4" +msgstr "" + +#: contrib/comments/models.py:74 +msgid "rating #5" +msgstr "" + +#: contrib/comments/models.py:75 +msgid "rating #6" +msgstr "" + +#: contrib/comments/models.py:76 +msgid "rating #7" +msgstr "" + +#: contrib/comments/models.py:77 +msgid "rating #8" +msgstr "" + +#: contrib/comments/models.py:82 +msgid "is valid rating" +msgstr "" + +#: contrib/comments/models.py:83 +#: contrib/comments/models.py:172 +msgid "date/time submitted" +msgstr "" + +#: contrib/comments/models.py:84 +#: contrib/comments/models.py:173 +msgid "is public" +msgstr "" + +#: contrib/comments/models.py:86 +msgid "is removed" +msgstr "" + +#: 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 "" + +#: contrib/comments/models.py:91 +msgid "comments" +msgstr "" + +#: contrib/comments/models.py:134 +#: contrib/comments/models.py:213 +msgid "Content object" +msgstr "" + +#: contrib/comments/models.py:162 +#, python-format +msgid "" +"Posted by %(user)s at %(date)s\n" +"\n" +"%(comment)s\n" +"\n" +"http://%(domain)s%(url)s" +msgstr "" + +#: contrib/comments/models.py:171 +msgid "person's name" +msgstr "" + +#: contrib/comments/models.py:174 +msgid "ip address" +msgstr "" + +#: contrib/comments/models.py:176 +msgid "approved by staff" +msgstr "" + +#: contrib/comments/models.py:179 +msgid "free comment" +msgstr "" + +#: contrib/comments/models.py:180 +msgid "free comments" +msgstr "" + +#: contrib/comments/models.py:239 +msgid "score" +msgstr "" + +#: contrib/comments/models.py:240 +msgid "score date" +msgstr "" + +#: contrib/comments/models.py:243 +msgid "karma score" +msgstr "" + +#: contrib/comments/models.py:244 +msgid "karma scores" +msgstr "" + +#: contrib/comments/models.py:248 +#, python-format +msgid "%(score)d rating by %(user)s" +msgstr "" + +#: contrib/comments/models.py:264 +#, python-format +msgid "" +"This comment was flagged by %(user)s:\n" +"\n" +"%(text)s" +msgstr "" + +#: contrib/comments/models.py:271 +msgid "flag date" +msgstr "" + +#: contrib/comments/models.py:274 +msgid "user flag" +msgstr "" + +#: contrib/comments/models.py:275 +msgid "user flags" +msgstr "" + +#: contrib/comments/models.py:279 +#, python-format +msgid "Flag by %r" +msgstr "" + +#: contrib/comments/models.py:284 +msgid "deletion date" +msgstr "" + +#: contrib/comments/models.py:286 +msgid "moderator deletion" +msgstr "" + +#: contrib/comments/models.py:287 +msgid "moderator deletions" +msgstr "" + +#: contrib/comments/models.py:291 +#, python-format +msgid "Moderator deletion by %r" +msgstr "" + +#: contrib/comments/templates/comments/form.html:8 +msgid "Forgotten your password?" +msgstr "" + +#: contrib/comments/templates/comments/form.html:12 +msgid "Ratings" +msgstr "" + +#: contrib/comments/templates/comments/form.html:12 +#: contrib/comments/templates/comments/form.html:23 +msgid "Required" +msgstr "" + +#: contrib/comments/templates/comments/form.html:12 +#: contrib/comments/templates/comments/form.html:23 +msgid "Optional" +msgstr "" + +#: contrib/comments/templates/comments/form.html:23 +msgid "Post a photo" +msgstr "" + +#: contrib/comments/templates/comments/form.html:28 +#: contrib/comments/templates/comments/freeform.html:5 +msgid "Comment:" +msgstr "" + +#: contrib/comments/templates/comments/form.html:35 +#: contrib/comments/templates/comments/freeform.html:10 +msgid "Preview comment" +msgstr "" + +#: contrib/comments/templates/comments/freeform.html:4 +msgid "Your name:" +msgstr "" + +#: contrib/comments/views/karma.py:20 +msgid "Anonymous users cannot vote" +msgstr "" + +#: contrib/comments/views/karma.py:24 +msgid "Invalid comment ID" +msgstr "" + +#: contrib/comments/views/karma.py:26 +msgid "No voting for yourself" +msgstr "" + +#: contrib/comments/views/comments.py:28 +msgid "This rating is required because you've entered at least one other rating." +msgstr "" + +#: contrib/comments/views/comments.py:112 +#, python-format +msgid "" +"This comment was posted by a user who has posted fewer than %(count)s comment:\n" +"\n" +"%(text)s" +msgid_plural "" +"This comment was posted by a user who has posted fewer than %(count)s comments:\n" +"\n" +"%(text)s" +msgstr[0] "" +msgstr[1] "" + +#: contrib/comments/views/comments.py:117 +#, python-format +msgid "" +"This comment was posted by a sketchy user:\n" +"\n" +"%(text)s" +msgstr "" + +#: contrib/comments/views/comments.py:189 +#: contrib/comments/views/comments.py:281 +msgid "Only POSTs are allowed" +msgstr "" + +#: contrib/comments/views/comments.py:193 +#: contrib/comments/views/comments.py:285 +msgid "One or more of the required fields wasn't submitted" +msgstr "" + +#: contrib/comments/views/comments.py:197 +#: contrib/comments/views/comments.py:287 +msgid "Somebody tampered with the comment form (security violation)" +msgstr "" + +#: contrib/comments/views/comments.py:207 +#: contrib/comments/views/comments.py:293 +msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid" +msgstr "" + +#: contrib/comments/views/comments.py:258 +#: contrib/comments/views/comments.py:322 +msgid "The comment form didn't provide either 'preview' or 'post'" +msgstr "" + +#: newforms/fields.py:123 +#, python-format +msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." +msgstr "" + +#: newforms/fields.py:125 +#, python-format +msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." +msgstr "" + +#: newforms/fields.py:149 +#: core/validators.py:128 +msgid "Enter a whole number." +msgstr "" + +#: newforms/fields.py:151 +#: newforms/fields.py:174 +#: newforms/fields.py:204 +#, python-format +msgid "Ensure this value is less than or equal to %s." +msgstr "" + +#: newforms/fields.py:153 +#: newforms/fields.py:176 +#: newforms/fields.py:206 +#, python-format +msgid "Ensure this value is greater than or equal to %s." +msgstr "" + +#: newforms/fields.py:172 +#: newforms/fields.py:199 +msgid "Enter a number." +msgstr "" + +#: newforms/fields.py:208 +#, python-format +msgid "Ensure that there are no more than %s digits in total." +msgstr "" + +#: newforms/fields.py:210 +#, python-format +msgid "Ensure that there are no more than %s decimal places." +msgstr "" + +#: newforms/fields.py:212 +#, python-format +msgid "Ensure that there are no more than %s digits before the decimal point." +msgstr "" + +#: newforms/fields.py:245 +#: newforms/fields.py:629 +msgid "Enter a valid date." +msgstr "" + +#: newforms/fields.py:272 +#: newforms/fields.py:631 +msgid "Enter a valid time." +msgstr "" + +#: newforms/fields.py:308 +msgid "Enter a valid date/time." +msgstr "" + +#: newforms/fields.py:321 +msgid "Enter a valid value." +msgstr "" + +#: newforms/fields.py:343 +#: core/validators.py:170 +msgid "Enter a valid e-mail address." +msgstr "" + +#: newforms/fields.py:377 +#: oldforms/__init__.py:686 +#: core/validators.py:182 +#: core/validators.py:469 +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" + +#: newforms/fields.py:379 +msgid "No file was submitted." +msgstr "" + +#: newforms/fields.py:381 +#: oldforms/__init__.py:688 +msgid "The submitted file is empty." +msgstr "" + +#: newforms/fields.py:405 +#: core/validators.py:193 +msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image." +msgstr "" + +#: newforms/fields.py:419 +#: newforms/fields.py:444 +msgid "Enter a valid URL." +msgstr "" + +#: newforms/fields.py:446 +msgid "This URL appears to be a broken link." +msgstr "" + +#: newforms/fields.py:497 +#: newforms/models.py:180 +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" + +#: newforms/fields.py:513 +#: newforms/fields.py:589 +#: newforms/models.py:197 +msgid "Enter a list of values." +msgstr "" + +#: newforms/fields.py:519 +#: newforms/models.py:203 +#, python-format +msgid "Select a valid choice. %s is not one of the available choices." +msgstr "" + +#: views/generic/create_update.py:43 +#, python-format +msgid "The %(verbose_name)s was created successfully." +msgstr "" + +#: views/generic/create_update.py:117 +#, python-format +msgid "The %(verbose_name)s was updated successfully." +msgstr "" + +#: views/generic/create_update.py:184 +#, python-format +msgid "The %(verbose_name)s was deleted." +msgstr "" + +#: oldforms/__init__.py:408 +#, python-format +msgid "Ensure your text is less than %s character." +msgid_plural "Ensure your text is less than %s characters." +msgstr[0] "" +msgstr[1] "" + +#: oldforms/__init__.py:413 +msgid "Line breaks are not allowed here." +msgstr "" + +#: oldforms/__init__.py:511 +#: oldforms/__init__.py:585 +#: oldforms/__init__.py:624 +#, python-format +msgid "Select a valid choice; '%(data)s' is not in %(choices)s." +msgstr "" + +#: oldforms/__init__.py:744 +msgid "Enter a whole number between -32,768 and 32,767." +msgstr "" + +#: oldforms/__init__.py:754 +msgid "Enter a positive number." +msgstr "" + +#: oldforms/__init__.py:764 +msgid "Enter a whole number between 0 and 32,767." +msgstr "" + +#: core/validators.py:72 +msgid "This value must contain only letters, numbers and underscores." +msgstr "" + +#: core/validators.py:76 +msgid "This value must contain only letters, numbers, underscores, dashes or slashes." +msgstr "" + +#: core/validators.py:80 +msgid "This value must contain only letters, numbers, underscores or hyphens." +msgstr "" + +#: core/validators.py:84 +msgid "Uppercase letters are not allowed here." +msgstr "" + +#: core/validators.py:88 +msgid "Lowercase letters are not allowed here." +msgstr "" + +#: core/validators.py:95 +msgid "Enter only digits separated by commas." +msgstr "" + +#: core/validators.py:107 +msgid "Enter valid e-mail addresses separated by commas." +msgstr "" + +#: core/validators.py:111 +msgid "Please enter a valid IP address." +msgstr "" + +#: core/validators.py:115 +msgid "Empty values are not allowed here." +msgstr "" + +#: core/validators.py:119 +msgid "Non-numeric characters aren't allowed here." +msgstr "" + +#: core/validators.py:123 +msgid "This value can't be comprised solely of digits." +msgstr "" + +#: core/validators.py:132 +msgid "Only alphabetical characters are allowed here." +msgstr "" + +#: core/validators.py:147 +msgid "Year must be 1900 or later." +msgstr "" + +#: core/validators.py:151 +#, python-format +msgid "Invalid date: %s" +msgstr "" + +#: core/validators.py:161 +msgid "Enter a valid time in HH:MM format." +msgstr "" + +#: core/validators.py:200 +#, python-format +msgid "The URL %s does not point to a valid image." +msgstr "" + +#: core/validators.py:204 +#, python-format +msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." +msgstr "" + +#: core/validators.py:212 +#, python-format +msgid "The URL %s does not point to a valid QuickTime video." +msgstr "" + +#: core/validators.py:216 +msgid "A valid URL is required." +msgstr "" + +#: core/validators.py:230 +#, python-format +msgid "" +"Valid HTML is required. Specific errors are:\n" +"%s" +msgstr "" + +#: core/validators.py:237 +#, python-format +msgid "Badly formed XML: %s" +msgstr "" + +#: core/validators.py:254 +#, python-format +msgid "Invalid URL: %s" +msgstr "" + +#: core/validators.py:259 +#: core/validators.py:261 +#, python-format +msgid "The URL %s is a broken link." +msgstr "" + +#: core/validators.py:267 +msgid "Enter a valid U.S. state abbreviation." +msgstr "" + +#: 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] "" +msgstr[1] "" + +#: core/validators.py:288 +#, python-format +msgid "This field must match the '%s' field." +msgstr "" + +#: core/validators.py:307 +msgid "Please enter something for at least one field." +msgstr "" + +#: core/validators.py:316 +#: core/validators.py:327 +msgid "Please enter both fields or leave them both empty." +msgstr "" + +#: core/validators.py:335 +#, python-format +msgid "This field must be given if %(field)s is %(value)s" +msgstr "" + +#: core/validators.py:348 +#, python-format +msgid "This field must be given if %(field)s is not %(value)s" +msgstr "" + +#: core/validators.py:367 +msgid "Duplicate values are not allowed." +msgstr "" + +#: core/validators.py:382 +#, python-format +msgid "This value must be between %(lower)s and %(upper)s." +msgstr "" + +#: core/validators.py:384 +#, python-format +msgid "This value must be at least %s." +msgstr "" + +#: core/validators.py:386 +#, python-format +msgid "This value must be no more than %s." +msgstr "" + +#: core/validators.py:422 +#, python-format +msgid "This value must be a power of %s." +msgstr "" + +#: core/validators.py:432 +msgid "Please enter a valid decimal number." +msgstr "" + +#: core/validators.py:439 +#, 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] "" +msgstr[1] "" + +#: core/validators.py:442 +#, 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] "" +msgstr[1] "" + +#: core/validators.py:445 +#, 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] "" +msgstr[1] "" + +#: core/validators.py:453 +msgid "Please enter a valid floating point number." +msgstr "" + +#: core/validators.py:462 +#, python-format +msgid "Make sure your uploaded file is at least %s bytes big." +msgstr "" + +#: core/validators.py:463 +#, python-format +msgid "Make sure your uploaded file is at most %s bytes big." +msgstr "" + +#: core/validators.py:480 +msgid "The format for this field is wrong." +msgstr "" + +#: core/validators.py:495 +msgid "This field is invalid." +msgstr "" + +#: core/validators.py:531 +#, python-format +msgid "Could not retrieve anything from %s." +msgstr "" + +#: core/validators.py:534 +#, python-format +msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." +msgstr "" + +#: core/validators.py:567 +#, python-format +msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)" +msgstr "" + +#: core/validators.py:571 +#, python-format +msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)" +msgstr "" + +#: core/validators.py:576 +#, python-format +msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)" +msgstr "" + +#: core/validators.py:581 +#, python-format +msgid "\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%(start)s\".)" +msgstr "" + +#: core/validators.py:585 +#, python-format +msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)" +msgstr "" + +#: core/validators.py:590 +#, python-format +msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)" +msgstr "" + +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:14 +msgid "week" +msgid_plural "weeks" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:15 +msgid "day" +msgid_plural "days" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:16 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:17 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:39 +#, python-format +msgid "%(number)d %(type)s" +msgstr "" + +#: utils/timesince.py:45 +#, python-format +msgid ", %(number)d %(type)s" +msgstr "" + +#: utils/dateformat.py:41 +msgid "p.m." +msgstr "" + +#: utils/dateformat.py:42 +msgid "a.m." +msgstr "" + +#: utils/dateformat.py:47 +msgid "PM" +msgstr "" + +#: utils/dateformat.py:48 +msgid "AM" +msgstr "" + +#: utils/dateformat.py:97 +msgid "midnight" +msgstr "" + +#: utils/dateformat.py:99 +msgid "noon" +msgstr "" + +#: utils/text.py:127 +msgid "or" +msgstr "" + +#: utils/dates.py:6 +msgid "Monday" +msgstr "" + +#: utils/dates.py:6 +msgid "Tuesday" +msgstr "" + +#: utils/dates.py:6 +msgid "Wednesday" +msgstr "" + +#: utils/dates.py:6 +msgid "Thursday" +msgstr "" + +#: utils/dates.py:6 +msgid "Friday" +msgstr "" + +#: utils/dates.py:7 +msgid "Saturday" +msgstr "" + +#: utils/dates.py:7 +msgid "Sunday" +msgstr "" + +#: utils/dates.py:10 +msgid "Mon" +msgstr "" + +#: utils/dates.py:10 +msgid "Tue" +msgstr "" + +#: utils/dates.py:10 +msgid "Wed" +msgstr "" + +#: utils/dates.py:10 +msgid "Thu" +msgstr "" + +#: utils/dates.py:10 +msgid "Fri" +msgstr "" + +#: utils/dates.py:11 +msgid "Sat" +msgstr "" + +#: utils/dates.py:11 +msgid "Sun" +msgstr "" + +#: utils/dates.py:18 +msgid "January" +msgstr "" + +#: utils/dates.py:18 +msgid "February" +msgstr "" + +#: utils/dates.py:18 +#: utils/dates.py:31 +msgid "March" +msgstr "" + +#: utils/dates.py:18 +#: utils/dates.py:31 +msgid "April" +msgstr "" + +#: utils/dates.py:18 +#: utils/dates.py:31 +msgid "May" +msgstr "" + +#: utils/dates.py:18 +#: utils/dates.py:31 +msgid "June" +msgstr "" + +#: utils/dates.py:19 +#: utils/dates.py:31 +msgid "July" +msgstr "" + +#: utils/dates.py:19 +msgid "August" +msgstr "" + +#: utils/dates.py:19 +msgid "September" +msgstr "" + +#: utils/dates.py:19 +msgid "October" +msgstr "" + +#: utils/dates.py:19 +msgid "November" +msgstr "" + +#: utils/dates.py:20 +msgid "December" +msgstr "" + +#: utils/dates.py:23 +msgid "jan" +msgstr "" + +#: utils/dates.py:23 +msgid "feb" +msgstr "" + +#: utils/dates.py:23 +msgid "mar" +msgstr "" + +#: utils/dates.py:23 +msgid "apr" +msgstr "" + +#: utils/dates.py:23 +msgid "may" +msgstr "" + +#: utils/dates.py:23 +msgid "jun" +msgstr "" + +#: utils/dates.py:24 +msgid "jul" +msgstr "" + +#: utils/dates.py:24 +msgid "aug" +msgstr "" + +#: utils/dates.py:24 +msgid "sep" +msgstr "" + +#: utils/dates.py:24 +msgid "oct" +msgstr "" + +#: utils/dates.py:24 +msgid "nov" +msgstr "" + +#: utils/dates.py:24 +msgid "dec" +msgstr "" + +#: utils/dates.py:31 +msgid "Jan." +msgstr "" + +#: utils/dates.py:31 +msgid "Feb." +msgstr "" + +#: utils/dates.py:32 +msgid "Aug." +msgstr "" + +#: utils/dates.py:32 +msgid "Sept." +msgstr "" + +#: utils/dates.py:32 +msgid "Oct." +msgstr "" + +#: utils/dates.py:32 +msgid "Nov." +msgstr "" + +#: utils/dates.py:32 +msgid "Dec." +msgstr "" + +#: utils/translation/trans_real.py:391 +msgid "DATE_FORMAT" +msgstr "" + +#: utils/translation/trans_real.py:392 +msgid "DATETIME_FORMAT" +msgstr "" + +#: utils/translation/trans_real.py:393 +msgid "TIME_FORMAT" +msgstr "" + +#: utils/translation/trans_real.py:409 +msgid "YEAR_MONTH_FORMAT" +msgstr "" + +#: utils/translation/trans_real.py:410 +msgid "MONTH_DAY_FORMAT" +msgstr "" + +#: conf/global_settings.py:39 +msgid "Arabic" +msgstr "" + +#: conf/global_settings.py:40 +msgid "Bengali" +msgstr "" + +#: conf/global_settings.py:41 +msgid "Bulgarian" +msgstr "" + +#: conf/global_settings.py:42 +msgid "Catalan" +msgstr "" + +#: conf/global_settings.py:43 +msgid "Czech" +msgstr "" + +#: conf/global_settings.py:44 +msgid "Welsh" +msgstr "" + +#: conf/global_settings.py:45 +msgid "Danish" +msgstr "" + +#: conf/global_settings.py:46 +msgid "German" +msgstr "" + +#: conf/global_settings.py:47 +msgid "Greek" +msgstr "" + +#: conf/global_settings.py:48 +msgid "English" +msgstr "" + +#: conf/global_settings.py:49 +msgid "Spanish" +msgstr "" + +#: conf/global_settings.py:50 +msgid "Argentinean Spanish" +msgstr "" + +#: conf/global_settings.py:51 +msgid "Persian" +msgstr "" + +#: conf/global_settings.py:52 +msgid "Finnish" +msgstr "" + +#: conf/global_settings.py:53 +msgid "French" +msgstr "" + +#: conf/global_settings.py:54 +msgid "Galician" +msgstr "" + +#: conf/global_settings.py:55 +msgid "Hungarian" +msgstr "" + +#: conf/global_settings.py:56 +msgid "Hebrew" +msgstr "" + +#: conf/global_settings.py:57 +msgid "Croatian" +msgstr "" + +#: conf/global_settings.py:58 +msgid "Icelandic" +msgstr "" + +#: conf/global_settings.py:59 +msgid "Italian" +msgstr "" + +#: conf/global_settings.py:60 +msgid "Japanese" +msgstr "" + +#: conf/global_settings.py:61 +msgid "Korean" +msgstr "" + +#: conf/global_settings.py:62 +msgid "Khmer" +msgstr "" + +#: conf/global_settings.py:63 +msgid "Kannada" +msgstr "" + +#: conf/global_settings.py:64 +msgid "Latvian" +msgstr "" + +#: conf/global_settings.py:65 +msgid "Macedonian" +msgstr "" + +#: conf/global_settings.py:66 +msgid "Dutch" +msgstr "" + +#: conf/global_settings.py:67 +msgid "Norwegian" +msgstr "" + +#: conf/global_settings.py:68 +msgid "Polish" +msgstr "" + +#: conf/global_settings.py:69 +msgid "Portugese" +msgstr "" + +#: conf/global_settings.py:70 +msgid "Brazilian" +msgstr "" + +#: conf/global_settings.py:71 +msgid "Romanian" +msgstr "" + +#: conf/global_settings.py:72 +msgid "Russian" +msgstr "" + +#: conf/global_settings.py:73 +msgid "Slovak" +msgstr "" + +#: conf/global_settings.py:74 +msgid "Slovenian" +msgstr "" + +#: conf/global_settings.py:75 +msgid "Serbian" +msgstr "" + +#: conf/global_settings.py:76 +msgid "Swedish" +msgstr "" + +#: conf/global_settings.py:77 +msgid "Tamil" +msgstr "" + +#: conf/global_settings.py:78 +msgid "Telugu" +msgstr "" + +#: conf/global_settings.py:79 +msgid "Turkish" +msgstr "" + +#: conf/global_settings.py:80 +msgid "Ukrainian" +msgstr "" + +#: conf/global_settings.py:81 +msgid "Simplified Chinese" +msgstr "" + +#: conf/global_settings.py:82 +msgid "Traditional Chinese" +msgstr "" + diff --git a/django/conf/locale/ga/LC_MESSAGES/djangojs.mo b/django/conf/locale/ga/LC_MESSAGES/djangojs.mo new file mode 100644 index 0000000000000000000000000000000000000000..06f96baee4a180c71b5341b48c7ca50f28dd278d GIT binary patch literal 383 zcmZvX!Ab)$5QZyy+M{O=Ie61qvu(jP)>5oh3SBH^^*-*7X-YOJ*;MpFd_AAVS&H`J zz(-)_BQyW^>B(1z>xemH&Y5H8l4)ze%y>BDw{`w%8T^LI2=fYFC^W`9C8`ZN?M0T# zWJOyaBIJ!W72NG~1BF*2Sw0mo4TO<>xW`CJbfvroIfSe)vaag&E@UPpi?E`1)BgL9 z*H_ta?=7&2Py}?1#pr_)xhdC3RupR=+}c89RAa=iF+%LyWV#H+1E<8A~m4-LiJ=i&hd2d_Qw SjRMSE=_}*35`$M0lg, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: django 1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-09-14 12:33+0100\n" +"PO-Revision-Date: 2007-09-14 14:19+0100\n" +"Last-Translator: Michael Thornhill \n" +"Language-Team: Gaeilge \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: contrib/admin/media/js/calendar.js:24 +#: contrib/admin/media/js/dateparse.js:32 +msgid "January February March April May June July August September October November December" +msgstr "" + +#: contrib/admin/media/js/calendar.js:25 +msgid "S M T W T F S" +msgstr "" + +#: contrib/admin/media/js/dateparse.js:33 +msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday" +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:33 +#, perl-format +msgid "Available %s" +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:41 +msgid "Choose all" +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:46 +msgid "Add" +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:48 +msgid "Remove" +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:53 +#, perl-format +msgid "Chosen %s" +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:54 +msgid "Select your choice(s) and click " +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:59 +msgid "Clear all" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81 +msgid "Now" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51 +msgid "Clock" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78 +msgid "Choose a time" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82 +msgid "Midnight" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83 +msgid "6 a.m." +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84 +msgid "Noon" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183 +msgid "Cancel" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177 +msgid "Today" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132 +msgid "Calendar" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175 +msgid "Yesterday" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179 +msgid "Tomorrow" +msgstr "" + +#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34 +#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72 +msgid "Show" +msgstr "" + +#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63 +msgid "Hide" +msgstr "" + diff --git a/django/contrib/admin/media/js/SelectFilter2.js b/django/contrib/admin/media/js/SelectFilter2.js index 8f6079e0b3..db946a6f6f 100644 --- a/django/contrib/admin/media/js/SelectFilter2.js +++ b/django/contrib/admin/media/js/SelectFilter2.js @@ -58,7 +58,7 @@ var SelectFilter = { quickElement('h2', selector_chosen, interpolate(gettext('Chosen %s'), [field_name])); var selector_filter = quickElement('p', selector_chosen, gettext('Select your choice(s) and click ')); selector_filter.className = 'selector-filter'; - quickElement('img', selector_filter, '', 'src', admin_media_prefix + 'img/admin/selector-add.gif', 'alt', 'Add'); + quickElement('img', selector_filter, '', 'src', admin_media_prefix + (is_stacked ? 'img/admin/selector_stacked-add.gif':'img/admin/selector-add.gif'), 'alt', 'Add'); var to_box = quickElement('select', selector_chosen, '', 'id', field_id + '_to', 'multiple', 'multiple', 'size', from_box.size, 'name', from_box.getAttribute('name')); to_box.className = 'filtered'; var clear_all = quickElement('a', selector_chosen, gettext('Clear all'), 'href', 'javascript: (function() { SelectBox.move_all("' + field_id + '_to", "' + field_id + '_from");})()'); diff --git a/django/contrib/admin/views/doc.py b/django/contrib/admin/views/doc.py index 37caa0f43b..2ebd0cd282 100644 --- a/django/contrib/admin/views/doc.py +++ b/django/contrib/admin/views/doc.py @@ -5,7 +5,7 @@ from django.contrib.admin.views.decorators import staff_member_required from django.db import models from django.shortcuts import render_to_response from django.core.exceptions import ImproperlyConfigured, ViewDoesNotExist -from django.http import Http404, get_host +from django.http import Http404 from django.core import urlresolvers from django.contrib.admin import utils from django.contrib.sites.models import Site @@ -29,7 +29,7 @@ def bookmarklets(request): # Hack! This couples this view to the URL it lives at. admin_root = request.path[:-len('doc/bookmarklets/')] return render_to_response('admin_doc/bookmarklets.html', { - 'admin_url': "%s://%s%s" % (request.is_secure() and 'https' or 'http', get_host(request), admin_root), + 'admin_url': "%s://%s%s" % (request.is_secure() and 'https' or 'http', request.get_host(), admin_root), }, context_instance=RequestContext(request)) bookmarklets = staff_member_required(bookmarklets) diff --git a/django/contrib/auth/models.py b/django/contrib/auth/models.py index 3584cea533..7cbeb26af6 100644 --- a/django/contrib/auth/models.py +++ b/django/contrib/auth/models.py @@ -1,6 +1,7 @@ from django.core import validators from django.core.exceptions import ImproperlyConfigured from django.db import connection, models +from django.db.models.manager import EmptyManager from django.contrib.contenttypes.models import ContentType from django.utils.encoding import smart_str from django.utils.translation import ugettext_lazy as _ @@ -293,6 +294,11 @@ class Message(models.Model): class AnonymousUser(object): id = None username = '' + is_staff = False + is_active = True + is_superuser = False + _groups = EmptyManager() + _user_permissions = EmptyManager() def __init__(self): pass @@ -325,11 +331,11 @@ class AnonymousUser(object): raise NotImplementedError def _get_groups(self): - raise NotImplementedError + return self._groups groups = property(_get_groups) def _get_user_permissions(self): - raise NotImplementedError + return self._user_permissions user_permissions = property(_get_user_permissions) def has_perm(self, perm): diff --git a/django/contrib/auth/tests.py b/django/contrib/auth/tests.py index ed768aa429..329049c546 100644 --- a/django/contrib/auth/tests.py +++ b/django/contrib/auth/tests.py @@ -1,5 +1,5 @@ """ ->>> from models import User +>>> from models import User, AnonymousUser >>> u = User.objects.create_user('testuser', 'test@example.com', 'testpw') >>> u.has_usable_password() True @@ -16,4 +16,11 @@ False >>> u2 = User.objects.create_user('testuser2', 'test2@example.com') >>> u2.has_usable_password() False +>>> a = AnonymousUser() +>>> a.is_staff +False +>>> a.groups.all() +[] +>>> a.user_permissions.all() +[] """ \ No newline at end of file diff --git a/django/contrib/contenttypes/management.py b/django/contrib/contenttypes/management.py index cb52e0805e..49083d6d5c 100644 --- a/django/contrib/contenttypes/management.py +++ b/django/contrib/contenttypes/management.py @@ -1,34 +1,43 @@ -""" -Creates content types for all installed models. -""" - +from django.contrib.contenttypes.models import ContentType from django.dispatch import dispatcher from django.db.models import get_apps, get_models, signals from django.utils.encoding import smart_unicode -def create_contenttypes(app, created_models, verbosity=2): - from django.contrib.contenttypes.models import ContentType +def update_contenttypes(app, created_models, verbosity=2): + """ + Creates content types for models in the given app, removing any model + entries that no longer have a matching model class. + """ ContentType.objects.clear_cache() + content_types = list(ContentType.objects.filter(app_label=app.__name__.split('.')[-2])) app_models = get_models(app) if not app_models: return for klass in app_models: opts = klass._meta try: - ContentType.objects.get(app_label=opts.app_label, - model=opts.object_name.lower()) + ct = ContentType.objects.get(app_label=opts.app_label, + model=opts.object_name.lower()) + content_types.remove(ct) except ContentType.DoesNotExist: ct = ContentType(name=smart_unicode(opts.verbose_name_raw), app_label=opts.app_label, model=opts.object_name.lower()) ct.save() if verbosity >= 2: print "Adding content type '%s | %s'" % (ct.app_label, ct.model) + # The presence of any remaining content types means the supplied app has an + # undefined model and can safely be removed, which cascades to also remove + # related permissions. + for ct in content_types: + if verbosity >= 2: + print "Deleting stale content type '%s | %s'" % (ct.app_label, ct.model) + ct.delete() -def create_all_contenttypes(verbosity=2): +def update_all_contenttypes(verbosity=2): for app in get_apps(): - create_contenttypes(app, None, verbosity) + update_contenttypes(app, None, verbosity) -dispatcher.connect(create_contenttypes, signal=signals.post_syncdb) +dispatcher.connect(update_contenttypes, signal=signals.post_syncdb) if __name__ == "__main__": - create_all_contenttypes() + update_all_contenttypes() diff --git a/django/contrib/contenttypes/models.py b/django/contrib/contenttypes/models.py index cda47a18aa..1413586254 100644 --- a/django/contrib/contenttypes/models.py +++ b/django/contrib/contenttypes/models.py @@ -25,7 +25,7 @@ class ContentTypeManager(models.Manager): """ Clear out the content-type cache. This needs to happen during database flushes to prevent caching of "stale" content type IDs (see - django.contrib.contenttypes.management.create_contenttypes for where + django.contrib.contenttypes.management.update_contenttypes for where this gets called). """ global CONTENT_TYPE_CACHE diff --git a/django/contrib/localflavor/pe/__init__.py b/django/contrib/localflavor/pe/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/django/contrib/localflavor/pe/forms.py b/django/contrib/localflavor/pe/forms.py new file mode 100644 index 0000000000..b1ae215417 --- /dev/null +++ b/django/contrib/localflavor/pe/forms.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +""" +PE-specific Form helpers. +""" + +from django.newforms import ValidationError +from django.newforms.fields import RegexField, CharField, Select, EMPTY_VALUES +from django.utils.translation import ugettext + +class PEDepartmentSelect(Select): + """ + A Select widget that uses a list of Peruvian Departments as its choices. + """ + def __init__(self, attrs=None): + from pe_department import DEPARTMENT_CHOICES + super(PEDepartmentSelect, self).__init__(attrs, choices=DEPARTMENT_CHOICES) + +class PEDNIField(CharField): + """ + A field that validates `Documento Nacional de IdentidadŽ (DNI) numbers. + """ + def __init__(self, *args, **kwargs): + super(PEDNIField, self).__init__(max_length=8, min_length=8, *args, + **kwargs) + + def clean(self, value): + """ + Value must be a string in the XXXXXXXX formats. + """ + value = super(PEDNIField, self).clean(value) + if value in EMPTY_VALUES: + return u'' + if not value.isdigit(): + raise ValidationError(ugettext("This field requires only numbers.")) + if len(value) != 8: + raise ValidationError(ugettext("This field requires 8 digits.")) + + return value + +class PERUCField(RegexField): + """ + This field validates a RUC (Registro Unico de Contribuyentes). A RUC is of + the form XXXXXXXXXXX. + """ + def __init__(self, *args, **kwargs): + super(PERUCField, self).__init__(max_length=11, min_length=11, *args, + **kwargs) + + def clean(self, value): + """ + Value must be an 11-digit number. + """ + value = super(PERUCField, self).clean(value) + if value in EMPTY_VALUES: + return u'' + if not value.isdigit(): + raise ValidationError(ugettext("This field requires only numbers.")) + if len(value) != 11: + raise ValidationError(ugettext("This field requires 11 digits.")) + return value + diff --git a/django/contrib/localflavor/pe/pe_department.py b/django/contrib/localflavor/pe/pe_department.py new file mode 100644 index 0000000000..d7fa65f9cb --- /dev/null +++ b/django/contrib/localflavor/pe/pe_department.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +""" +A list of Peru departaments as `choices` in a +formfield. + +This exists in this standalone file so that it's only imported into memory +when explicitly needed. +""" + +DEPARTMENT_CHOICES = ( + ('AMA', u'Amazonas'), + ('ANC', u'Ancash'), + ('APU', u'Apurímac'), + ('ARE', u'Arequipa'), + ('AYA', u'Ayacucho'), + ('CAJ', u'Cajamarca'), + ('CUS', u'Cusco'), + ('HUV', u'Huancavelica'), + ('HUC', u'Huánuco'), + ('ICA', u'Ica'), + ('JUN', u'Junín'), + ('LAL', u'La Libertad'), + ('LAM', u'Lambayeque'), + ('LIM', u'Lima'), + ('LOR', u'Loreto'), + ('MDD', u'Madre de Dios'), + ('MOQ', u'Moquegua'), + ('PAS', u'Pasco'), + ('PIU', u'Piura'), + ('PUN', u'Puno'), + ('SAM', u'San Martín'), + ('TAC', u'Tacna'), + ('TUM', u'Tumbes'), + ('UCA', u'Ucayali'), +) diff --git a/django/contrib/sessions/models.py b/django/contrib/sessions/models.py index 29adc6e30c..fda10c9743 100644 --- a/django/contrib/sessions/models.py +++ b/django/contrib/sessions/models.py @@ -15,8 +15,13 @@ class SessionManager(models.Manager): "Returns session key that isn't being used." # The random module is seeded when this Apache child is created. # Use SECRET_KEY as added salt. + try: + pid = os.getpid() + except AttributeError: + # No getpid() in Jython, for example + pid = 1 while 1: - session_key = md5.new("%s%s%s%s" % (random.randint(0, sys.maxint - 1), os.getpid(), time.time(), settings.SECRET_KEY)).hexdigest() + session_key = md5.new("%s%s%s%s" % (random.randint(0, sys.maxint - 1), pid, time.time(), settings.SECRET_KEY)).hexdigest() try: self.get(session_key=session_key) except self.model.DoesNotExist: diff --git a/django/contrib/sites/models.py b/django/contrib/sites/models.py index 253a2722b6..fb6d0a2b1e 100644 --- a/django/contrib/sites/models.py +++ b/django/contrib/sites/models.py @@ -1,6 +1,5 @@ from django.db import models from django.utils.translation import ugettext_lazy as _ -from django.http import get_host SITE_CACHE = {} @@ -54,7 +53,7 @@ class RequestSite(object): The save() and delete() methods raise NotImplementedError. """ def __init__(self, request): - self.domain = self.name = get_host(request) + self.domain = self.name = request.get_host() def __unicode__(self): return self.domain diff --git a/django/core/handlers/base.py b/django/core/handlers/base.py index 50495b4ff3..13c7f4193f 100644 --- a/django/core/handlers/base.py +++ b/django/core/handlers/base.py @@ -116,7 +116,7 @@ class BaseHandler(object): else: # Get the exception info now, in case another exception is thrown later. exc_info = sys.exc_info() - receivers = dispatcher.send(signal=signals.got_request_exception) + receivers = dispatcher.send(signal=signals.got_request_exception, request=request) # When DEBUG is False, send an error message to the admins. subject = 'Error (%s IP): %s' % ((request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS and 'internal' or 'EXTERNAL'), request.path) try: @@ -142,7 +142,7 @@ def fix_location_header(request, response): Code constructing response objects is free to insert relative paths and this function converts them to absolute paths. """ - if 'Location' in response and http.get_host(request): + if 'Location' in response and request.get_host(): response['Location'] = request.build_absolute_uri(response['Location']) return response diff --git a/django/core/mail.py b/django/core/mail.py index ff653400f9..b90752e649 100644 --- a/django/core/mail.py +++ b/django/core/mail.py @@ -50,7 +50,11 @@ def make_msgid(idstring=None): """ timeval = time.time() utcdate = time.strftime('%Y%m%d%H%M%S', time.gmtime(timeval)) - pid = os.getpid() + try: + pid = os.getpid() + except AttributeError: + # Not getpid() in Jython, for example. + pid = 1 randint = random.randrange(100000) if idstring is None: idstring = '' diff --git a/django/core/management/base.py b/django/core/management/base.py index 83b0ed05cd..d883fe23dc 100644 --- a/django/core/management/base.py +++ b/django/core/management/base.py @@ -206,7 +206,11 @@ def copy_helper(style, app_or_project, name, directory, other_name=''): def _make_writeable(filename): "Makes sure that the file is writeable. Useful if our source is read-only." import stat + if sys.platform.startswith('java'): + # On Jython there is no os.access() + return if not os.access(filename, os.W_OK): - st = os.stat(filename) - new_permissions = stat.S_IMODE(st.st_mode) | stat.S_IWUSR - os.chmod(filename, new_permissions) + st = os.stat(filename) + new_permissions = stat.S_IMODE(st.st_mode) | stat.S_IWUSR + os.chmod(filename, new_permissions) + diff --git a/django/core/management/commands/syncdb.py b/django/core/management/commands/syncdb.py index c1f360a985..81938c777c 100644 --- a/django/core/management/commands/syncdb.py +++ b/django/core/management/commands/syncdb.py @@ -38,16 +38,16 @@ class Command(NoArgsCommand): cursor = connection.cursor() - # Get a list of all existing database tables, - # so we know what needs to be added. - table_list = table_list() if connection.features.uses_case_insensitive_names: - table_name_converter = str.upper + table_name_converter = lambda x: x.upper() else: table_name_converter = lambda x: x + # Get a list of all existing database tables, so we know what needs to + # be added. + tables = [table_name_converter(name) for name in table_list()] # Get a list of already installed *models* so that references work right. - seen_models = installed_models(table_list) + seen_models = installed_models(tables) created_models = set() pending_references = {} @@ -59,7 +59,7 @@ class Command(NoArgsCommand): # Create the model's database table, if it doesn't already exist. if verbosity >= 2: print "Processing %s.%s model" % (app_name, model._meta.object_name) - if table_name_converter(model._meta.db_table) in table_list: + if table_name_converter(model._meta.db_table) in tables: continue sql, references = sql_model_create(model, self.style, seen_models) seen_models.add(model) @@ -71,7 +71,7 @@ class Command(NoArgsCommand): print "Creating table %s" % model._meta.db_table for statement in sql: cursor.execute(statement) - table_list.append(table_name_converter(model._meta.db_table)) + tables.append(table_name_converter(model._meta.db_table)) # Create the m2m tables. This must be done after all tables have been created # to ensure that all referred tables will exist. diff --git a/django/core/management/sql.py b/django/core/management/sql.py index ed76bc4e35..d7a46f0cd6 100644 --- a/django/core/management/sql.py +++ b/django/core/management/sql.py @@ -130,7 +130,7 @@ def sql_delete(app, style): else: table_names = [] if connection.features.uses_case_insensitive_names: - table_name_converter = str.upper + table_name_converter = lambda x: x.upper() else: table_name_converter = lambda x: x diff --git a/django/core/serializers/__init__.py b/django/core/serializers/__init__.py index 049edf7521..1e24e2bd22 100644 --- a/django/core/serializers/__init__.py +++ b/django/core/serializers/__init__.py @@ -3,9 +3,9 @@ Interfaces for serializing Django objects. Usage:: - >>> from django.core import serializers - >>> json = serializers.serialize("json", some_query_set) - >>> objects = list(serializers.deserialize("json", json)) + from django.core import serializers + json = serializers.serialize("json", some_query_set) + objects = list(serializers.deserialize("json", json)) To add your own serializers, use the SERIALIZATION_MODULES setting:: diff --git a/django/core/serializers/python.py b/django/core/serializers/python.py index f61a2fa4a2..6fc13d76b5 100644 --- a/django/core/serializers/python.py +++ b/django/core/serializers/python.py @@ -27,13 +27,13 @@ class Serializer(base.Serializer): def end_object(self, obj): self.objects.append({ "model" : smart_unicode(obj._meta), - "pk" : smart_unicode(obj._get_pk_val()), + "pk" : smart_unicode(obj._get_pk_val(), strings_only=True), "fields" : self._current }) self._current = None def handle_field(self, obj, field): - self._current[field.name] = getattr(obj, field.name) + self._current[field.name] = smart_unicode(getattr(obj, field.name), strings_only=True) def handle_fk_field(self, obj, field): related = getattr(obj, field.name) @@ -44,10 +44,11 @@ class Serializer(base.Serializer): else: # Related to remote object via other field related = getattr(related, field.rel.field_name) - self._current[field.name] = related + self._current[field.name] = smart_unicode(related, strings_only=True) def handle_m2m_field(self, obj, field): - self._current[field.name] = [related._get_pk_val() for related in getattr(obj, field.name).iterator()] + self._current[field.name] = [smart_unicode(related._get_pk_val(), strings_only=True) + for related in getattr(obj, field.name).iterator()] def getvalue(self): return self.objects diff --git a/django/core/validators.py b/django/core/validators.py index 7611aef921..874edaefdd 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -405,12 +405,17 @@ class NumberIsInRange(object): class IsAPowerOf(object): """ - >>> v = IsAPowerOf(2) - >>> v(4, None) - >>> v(8, None) - >>> v(16, None) - >>> v(17, None) - django.core.validators.ValidationError: ['This value must be a power of 2.'] + Usage: If you create an instance of the IsPowerOf validator: + v = IsAPowerOf(2) + + The following calls will succeed: + v(4, None) + v(8, None) + v(16, None) + + But this call: + v(17, None) + will raise "django.core.validators.ValidationError: ['This value must be a power of 2.']" """ def __init__(self, power_of): self.power_of = power_of diff --git a/django/db/models/base.py b/django/db/models/base.py index b728150a40..208dfadddd 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -247,6 +247,7 @@ class Model(object): qn(self._meta.order_with_respect_to.column)) cursor.execute(subsel, (getattr(self, self._meta.order_with_respect_to.attname),)) db_values.append(cursor.fetchone()[0]) + record_exists = False if db_values: cursor.execute("INSERT INTO %s (%s) VALUES (%s)" % \ (qn(self._meta.db_table), ','.join(field_names), @@ -261,7 +262,8 @@ class Model(object): transaction.commit_unless_managed() # Run any post-save hooks. - dispatcher.send(signal=signals.post_save, sender=self.__class__, instance=self) + dispatcher.send(signal=signals.post_save, sender=self.__class__, + instance=self, created=(not record_exists)) save.alters_data = True diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index 8fa091dd76..5b7adb2fb9 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -919,11 +919,21 @@ class PhoneNumberField(IntegerField): class PositiveIntegerField(IntegerField): def get_manipulator_field_objs(self): return [oldforms.PositiveIntegerField] + + def formfield(self, **kwargs): + defaults = {'min_value': 0} + defaults.update(kwargs) + return super(PositiveIntegerField, self).formfield(**defaults) class PositiveSmallIntegerField(IntegerField): def get_manipulator_field_objs(self): return [oldforms.PositiveSmallIntegerField] + def formfield(self, **kwargs): + defaults = {'min_value': 0} + defaults.update(kwargs) + return super(PositiveSmallIntegerField, self).formfield(**defaults) + class SlugField(CharField): def __init__(self, *args, **kwargs): kwargs['max_length'] = kwargs.get('max_length', 50) diff --git a/django/db/models/manager.py b/django/db/models/manager.py index 040b86656a..7b2e916738 100644 --- a/django/db/models/manager.py +++ b/django/db/models/manager.py @@ -111,3 +111,7 @@ class ManagerDescriptor(object): if instance != None: raise AttributeError, "Manager isn't accessible via %s instances" % type.__name__ return self.manager + +class EmptyManager(Manager): + def get_query_set(self): + return self.get_empty_query_set() diff --git a/django/db/models/manipulators.py b/django/db/models/manipulators.py index c3e5292198..e0085d13ff 100644 --- a/django/db/models/manipulators.py +++ b/django/db/models/manipulators.py @@ -9,7 +9,6 @@ from django.utils.datastructures import DotExpandedDict from django.utils.text import capfirst from django.utils.encoding import smart_str from django.utils.translation import ugettext as _ -import types def add_manipulators(sender): cls = sender @@ -38,7 +37,7 @@ class ManipulatorDescriptor(object): bases = [self.base] if hasattr(model, 'Manipulator'): bases = [model.Manipulator] + bases - self.man = types.ClassType(self.name, tuple(bases), {}) + self.man = type(self.name, tuple(bases), {}) self.man._prepare(model) return self.man diff --git a/django/http/__init__.py b/django/http/__init__.py index 1b80237290..9a47e70592 100644 --- a/django/http/__init__.py +++ b/django/http/__init__.py @@ -44,6 +44,20 @@ class HttpRequest(object): __contains__ = has_key + def get_host(self): + "Returns the HTTP host using the environment or request headers." + # We try three options, in order of decreasing preference. + host = self.META.get('HTTP_X_FORWARDED_HOST', '') + if 'HTTP_HOST' in self.META: + host = self.META['HTTP_HOST'] + else: + # Reconstruct the host using the algorithm from PEP 333. + host = self.META['SERVER_NAME'] + server_port = self.META['SERVER_PORT'] + if server_port != (self.is_secure() and 443 or 80): + host = '%s:%s' % (host, server_port) + return host + def get_full_path(self): return '' @@ -57,7 +71,7 @@ class HttpRequest(object): location = self.get_full_path() if not ':' in location: current_uri = '%s://%s%s' % (self.is_secure() and 'https' or 'http', - get_host(self), self.path) + self.get_host(), self.path) location = urljoin(current_uri, location) return location @@ -381,19 +395,9 @@ class HttpResponseServerError(HttpResponse): def __init__(self, *args, **kwargs): HttpResponse.__init__(self, *args, **kwargs) +# A backwards compatible alias for HttpRequest.get_host. def get_host(request): - "Gets the HTTP host from the environment or request headers." - # We try three options, in order of decreasing preference. - host = request.META.get('HTTP_X_FORWARDED_HOST', '') - if 'HTTP_HOST' in request.META: - host = request.META['HTTP_HOST'] - else: - # Reconstruct the host using the algorithm from PEP 333. - host = request.META['SERVER_NAME'] - server_port = request.META['SERVER_PORT'] - if server_port != (request.is_secure() and 443 or 80): - host = '%s:%s' % (host, server_port) - return host + return request.get_host() # It's neither necessary nor appropriate to use # django.utils.encoding.smart_unicode for parsing URLs and form inputs. Thus, diff --git a/django/middleware/common.py b/django/middleware/common.py index e18ec079af..57af4eb481 100644 --- a/django/middleware/common.py +++ b/django/middleware/common.py @@ -32,7 +32,7 @@ class CommonMiddleware(object): return http.HttpResponseForbidden('

                      Forbidden

                      ') # Check for a redirect based on settings.APPEND_SLASH and settings.PREPEND_WWW - host = http.get_host(request) + host = request.get_host() old_url = [host, request.path] new_url = old_url[:] if settings.PREPEND_WWW and old_url[0] and not old_url[0].startswith('www.'): @@ -61,7 +61,7 @@ class CommonMiddleware(object): if settings.SEND_BROKEN_LINK_EMAILS: # If the referrer was from an internal link or a non-search-engine site, # send a note to the managers. - domain = http.get_host(request) + domain = request.get_host() referer = request.META.get('HTTP_REFERER', None) is_internal = _is_internal_request(domain, referer) path = request.get_full_path() diff --git a/django/newforms/fields.py b/django/newforms/fields.py index d83cb6cde2..8fb1d4f392 100644 --- a/django/newforms/fields.py +++ b/django/newforms/fields.py @@ -144,7 +144,7 @@ class IntegerField(Field): if value in EMPTY_VALUES: return None try: - value = int(value) + value = int(str(value)) except (ValueError, TypeError): raise ValidationError(ugettext(u'Enter a whole number.')) if self.max_value is not None and value > self.max_value: @@ -192,7 +192,7 @@ class DecimalField(Field): super(DecimalField, self).clean(value) if not self.required and value in EMPTY_VALUES: return None - value = value.strip() + value = str(value).strip() try: value = Decimal(value) except DecimalException: @@ -452,6 +452,10 @@ class BooleanField(Field): def clean(self, value): "Returns a Python boolean object." super(BooleanField, self).clean(value) + # Explicitly check for the string '0', which is what as hidden field + # will submit for False. + if value == '0': + return False return bool(value) class NullBooleanField(BooleanField): diff --git a/django/newforms/forms.py b/django/newforms/forms.py index ab8729be65..2b1caddeda 100644 --- a/django/newforms/forms.py +++ b/django/newforms/forms.py @@ -212,6 +212,16 @@ class BaseForm(StrAndUnicode): """ return self.cleaned_data + def is_multipart(self): + """ + Returns True if the form needs to be multipart-encrypted, i.e. it has + FileInput. Otherwise, False. + """ + for field in self.fields.values(): + if field.widget.needs_multipart_form: + return True + return False + class Form(BaseForm): "A collection of Fields, plus their associated data." # This is a separate class from BaseForm in order to abstract the way diff --git a/django/newforms/util.py b/django/newforms/util.py index 57995bebd0..e19d894397 100644 --- a/django/newforms/util.py +++ b/django/newforms/util.py @@ -1,5 +1,5 @@ from django.utils.html import escape -from django.utils.encoding import smart_unicode, StrAndUnicode +from django.utils.encoding import smart_unicode, StrAndUnicode, force_unicode from django.utils.functional import Promise def flatatt(attrs): @@ -22,10 +22,10 @@ class ErrorDict(dict, StrAndUnicode): def as_ul(self): if not self: return u'' - return u'
                        %s
                      ' % ''.join([u'
                    • %s%s
                    • ' % (k, smart_unicode(v)) for k, v in self.items()]) + return u'
                        %s
                      ' % ''.join([u'
                    • %s%s
                    • ' % (k, force_unicode(v)) for k, v in self.items()]) def as_text(self): - return u'\n'.join([u'* %s\n%s' % (k, u'\n'.join([u' * %s' % smart_unicode(i) for i in v])) for k, v in self.items()]) + return u'\n'.join([u'* %s\n%s' % (k, u'\n'.join([u' * %s' % force_unicode(i) for i in v])) for k, v in self.items()]) class ErrorList(list, StrAndUnicode): """ @@ -36,11 +36,11 @@ class ErrorList(list, StrAndUnicode): def as_ul(self): if not self: return u'' - return u'
                        %s
                      ' % ''.join([u'
                    • %s
                    • ' % smart_unicode(e) for e in self]) + return u'
                        %s
                      ' % ''.join([u'
                    • %s
                    • ' % force_unicode(e) for e in self]) def as_text(self): if not self: return u'' - return u'\n'.join([u'* %s' % smart_unicode(e) for e in self]) + return u'\n'.join([u'* %s' % force_unicode(e) for e in self]) class ValidationError(Exception): def __init__(self, message): @@ -58,3 +58,4 @@ class ValidationError(Exception): # AttributeError: ValidationError instance has no attribute 'args' # See http://www.python.org/doc/current/tut/node10.html#handling return repr(self.messages) + diff --git a/django/newforms/widgets.py b/django/newforms/widgets.py index f985124389..0e7752499e 100644 --- a/django/newforms/widgets.py +++ b/django/newforms/widgets.py @@ -24,6 +24,7 @@ __all__ = ( class Widget(object): is_hidden = False # Determines whether this corresponds to an . + needs_multipart_form = False # Determines does this widget need multipart-encrypted form def __init__(self, attrs=None): if attrs is not None: @@ -120,6 +121,7 @@ class MultipleHiddenInput(HiddenInput): class FileInput(Input): input_type = 'file' + needs_multipart_form = True def render(self, name, value, attrs=None): return super(FileInput, self).render(name, None, attrs=attrs) diff --git a/django/shortcuts/__init__.py b/django/shortcuts/__init__.py index 2843a33646..611b997736 100644 --- a/django/shortcuts/__init__.py +++ b/django/shortcuts/__init__.py @@ -16,7 +16,6 @@ def render_to_response(*args, **kwargs): """ httpresponse_kwargs = {'mimetype': kwargs.pop('mimetype', None)} return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs) -load_and_render = render_to_response # For backwards compatibility. def _get_queryset(klass): """ diff --git a/django/template/__init__.py b/django/template/__init__.py index de8591ac5c..449e0d0c28 100644 --- a/django/template/__init__.py +++ b/django/template/__init__.py @@ -34,14 +34,8 @@ will be raised if the template doesn't have proper syntax. Sample code: ->>> import template ->>> s = ''' -... -... {% if test %} -...

                      {{ varvalue }}

                      -... {% endif %} -... -... ''' +>>> from django import template +>>> s = u'{% if test %}

                      {{ varvalue }}

                      {% endif %}' >>> t = template.Template(s) (t is now a compiled template, and its render() method can be called multiple @@ -49,10 +43,10 @@ times with multiple contexts) >>> c = template.Context({'test':True, 'varvalue': 'Hello'}) >>> t.render(c) -'\n\n\n

                      Hello

                      \n\n\n' +u'

                      Hello

                      ' >>> c = template.Context({'test':False, 'varvalue': 'Hello'}) >>> t.render(c) -'\n\n\n\n' +u'' """ import re from inspect import getargspec @@ -529,10 +523,11 @@ class FilterExpression(object): and return a list of tuples of the filter name and arguments. Sample: >>> token = 'variable|default:"Default value"|date:"Y-m-d"' - >>> p = FilterParser(token) - >>> p.filters - [('default', 'Default value'), ('date', 'Y-m-d')] - >>> p.var + >>> p = Parser('') + >>> fe = FilterExpression(token, p) + >>> len(fe.filters) + 2 + >>> fe.var 'variable' This class should never be instantiated outside of the @@ -647,7 +642,7 @@ def resolve_variable(path, context): >>> c = {'article': {'section':'News'}} >>> resolve_variable('article.section', c) - 'News' + u'News' >>> resolve_variable('article', c) {'section': 'News'} >>> class AClass: pass @@ -655,7 +650,7 @@ def resolve_variable(path, context): >>> c.article = AClass() >>> c.article.section = 'News' >>> resolve_variable('article.section', c) - 'News' + u'News' (The example assumes VARIABLE_ATTRIBUTE_SEPARATOR is '.') """ diff --git a/django/template/defaulttags.py b/django/template/defaulttags.py index e41ca717e7..e23295f732 100644 --- a/django/template/defaulttags.py +++ b/django/template/defaulttags.py @@ -795,7 +795,7 @@ def load(parser, token): for taglib in bits[1:]: # add the library to the parser try: - lib = get_library("django.templatetags.%s" % taglib.split('.')[-1]) + lib = get_library("django.templatetags.%s" % taglib) parser.add_library(lib) except InvalidTemplateLibrary, e: raise TemplateSyntaxError, "'%s' is not a valid tag library: %s" % (taglib, e) diff --git a/django/utils/datastructures.py b/django/utils/datastructures.py index d96e45b9c8..ac890d5da6 100644 --- a/django/utils/datastructures.py +++ b/django/utils/datastructures.py @@ -238,22 +238,20 @@ class DotExpandedDict(dict): may contain dots to specify inner dictionaries. It's confusing, but this example should make sense. - >>> d = DotExpandedDict({'person.1.firstname': ['Simon'], - 'person.1.lastname': ['Willison'], - 'person.2.firstname': ['Adrian'], + >>> d = DotExpandedDict({'person.1.firstname': ['Simon'], \ + 'person.1.lastname': ['Willison'], \ + 'person.2.firstname': ['Adrian'], \ 'person.2.lastname': ['Holovaty']}) >>> d - {'person': {'1': {'lastname': ['Willison'], 'firstname': ['Simon']}, - '2': {'lastname': ['Holovaty'], 'firstname': ['Adrian']}}} + {'person': {'1': {'lastname': ['Willison'], 'firstname': ['Simon']}, '2': {'lastname': ['Holovaty'], 'firstname': ['Adrian']}}} >>> d['person'] - {'1': {'firstname': ['Simon'], 'lastname': ['Willison'], - '2': {'firstname': ['Adrian'], 'lastname': ['Holovaty']} + {'1': {'lastname': ['Willison'], 'firstname': ['Simon']}, '2': {'lastname': ['Holovaty'], 'firstname': ['Adrian']}} >>> d['person']['1'] - {'firstname': ['Simon'], 'lastname': ['Willison']} + {'lastname': ['Willison'], 'firstname': ['Simon']} # Gotcha: Results are unpredictable if the dots are "uneven": >>> DotExpandedDict({'c.1': 2, 'c.2': 3, 'c': 1}) - >>> {'c': 1} + {'c': 1} """ def __init__(self, key_to_list_mapping): for k, v in key_to_list_mapping.items(): diff --git a/django/utils/dateformat.py b/django/utils/dateformat.py index d5f3499d82..0e6541c721 100644 --- a/django/utils/dateformat.py +++ b/django/utils/dateformat.py @@ -248,10 +248,15 @@ class DateFormat(TimeFormat): return doy def Z(self): - """Time zone offset in seconds (i.e. '-43200' to '43200'). The offset - for timezones west of UTC is always negative, and for those east of UTC - is always positive.""" - return self.timezone.utcoffset(self.data).seconds + """ + Time zone offset in seconds (i.e. '-43200' to '43200'). The offset for + timezones west of UTC is always negative, and for those east of UTC is + always positive. + """ + offset = self.timezone.utcoffset(self.data) + # Only days can be negative, so negative offsets have days=-1 and + # seconds positive. Positive offsets have days=0 + return offset.days * 86400 + offset.seconds def format(value, format_string): "Convenience function" diff --git a/django/utils/encoding.py b/django/utils/encoding.py index 2319496538..69c3e9c28b 100644 --- a/django/utils/encoding.py +++ b/django/utils/encoding.py @@ -30,7 +30,7 @@ def force_unicode(s, encoding='utf-8', strings_only=False, errors='strict'): If strings_only is True, don't convert (some) non-string-like objects. """ - if strings_only and isinstance(s, (types.NoneType, int)): + if strings_only and isinstance(s, (types.NoneType, int, long)): return s if not isinstance(s, basestring,): if hasattr(s, '__unicode__'): diff --git a/django/utils/feedgenerator.py b/django/utils/feedgenerator.py index 44c96af147..e296331324 100644 --- a/django/utils/feedgenerator.py +++ b/django/utils/feedgenerator.py @@ -3,6 +3,7 @@ Syndication feed generation library -- used for generating RSS, etc. Sample usage: +>>> from django.utils import feedgenerator >>> feed = feedgenerator.Rss201rev2Feed( ... title=u"Poynter E-Media Tidbits", ... link=u"http://www.poynter.org/column.asp?id=31", diff --git a/django/utils/functional.py b/django/utils/functional.py index 734704f6f3..f4580e7bd5 100644 --- a/django/utils/functional.py +++ b/django/utils/functional.py @@ -101,6 +101,13 @@ def lazy(func, *resultclasses): else: raise AssertionError('__mod__ not supported for non-string types') + def __deepcopy__(self, memo): + # Instances of this class are effectively immutable. It's just a + # collection of functions. So we don't need to do anything + # complicated for copying. + memo[id(self)] = self + return self + def __wrapper__(*args, **kw): # Creates the proxy object, instead of the actual value. return __proxy__(args, kw) diff --git a/django/utils/translation/trans_real.py b/django/utils/translation/trans_real.py index 765152afce..5fff1ea63a 100644 --- a/django/utils/translation/trans_real.py +++ b/django/utils/translation/trans_real.py @@ -491,6 +491,8 @@ def templatize(src): elif g[0] == "'": g = g.strip("'") out.write(' gettext(%r) ' % g) elif bmatch: + for fmatch in constant_re.findall(t.contents): + out.write(' _(%s) ' % fmatch) intrans = True inplural = False singular = [] diff --git a/django/views/generic/simple.py b/django/views/generic/simple.py index 69a494931e..9d7efdc6c4 100644 --- a/django/views/generic/simple.py +++ b/django/views/generic/simple.py @@ -2,11 +2,12 @@ from django.shortcuts import render_to_response from django.template import loader, RequestContext from django.http import HttpResponse, HttpResponsePermanentRedirect, HttpResponseGone -def direct_to_template(request, template, extra_context={}, mimetype=None, **kwargs): +def direct_to_template(request, template, extra_context=None, mimetype=None, **kwargs): """ Render a given template with any extra URL parameters in the context as ``{{ params }}``. """ + if extra_context is None: extra_context = {} dictionary = {'params': kwargs} for key, value in extra_context.items(): if callable(value): diff --git a/docs/authentication.txt b/docs/authentication.txt index 820aff2712..713e86c140 100644 --- a/docs/authentication.txt +++ b/docs/authentication.txt @@ -244,6 +244,9 @@ Anonymous users the ``django.contrib.auth.models.User`` interface, with these differences: * ``id`` is always ``None``. + * ``is_staff`` and ``is_superuser`` are always False. + * ``is_active`` is always True. + * ``groups`` and ``user_permissions`` are always empty. * ``is_anonymous()`` returns ``True`` instead of ``False``. * ``is_authenticated()`` returns ``False`` instead of ``True``. * ``has_perm()`` always returns ``False``. @@ -992,10 +995,10 @@ Writing an authentication backend --------------------------------- An authentication backend is a class that implements two methods: -``get_user(id)`` and ``authenticate(**credentials)``. +``get_user(user_id)`` and ``authenticate(**credentials)``. -The ``get_user`` method takes an ``id`` -- which could be a username, database -ID or whatever -- and returns a ``User`` object. +The ``get_user`` method takes a ``user_id`` -- which could be a username, +database ID or whatever -- and returns a ``User`` object. The ``authenticate`` method takes credentials as keyword arguments. Most of the time, it'll just look like this:: diff --git a/docs/contributing.txt b/docs/contributing.txt index c87eef1fdf..3200a87012 100644 --- a/docs/contributing.txt +++ b/docs/contributing.txt @@ -654,10 +654,31 @@ info, with the ``DATABASE_ENGINE`` setting. You will also need a ``ROOT_URLCONF` setting (its value is ignored; it just needs to be present) and a ``SITE_ID`` setting (any non-zero integer value will do) in order for all the tests to pass. -The unit tests will not touch your existing databases; they create a new -database, called ``django_test_db``, which is deleted when the tests are -finished. This means your user account needs permission to execute ``CREATE -DATABASE``. +If you're using the ``sqlite3`` database backend, no further settings are +needed. A temporary database will be created in memory when running the tests. + +If you're using another backend: + + * Your ``DATABASE_USER`` setting needs to specify an existing user account + for the database engine. + + * The ``DATABASE_NAME`` setting must be the name of an existing database to + which the given user has permission to connect. The unit tests will not + touch this database; the test runner creates a new database whose name is + ``DATABASE_NAME`` prefixed with ``test_``, and this test database is + deleted when the tests are finished. This means your user account needs + permission to execute ``CREATE DATABASE``. + +To run a subset of the unit tests, append the names of the test modules to the +``runtests.py`` command line. See the list of directories in +``tests/modeltests`` and ``tests/regressiontests`` for module names. + +As an example, if Django is not in your ``PYTHONPATH``, you placed +``settings.py`` in the ``tests/`` directory, and you'd like to only run tests +for generic relations and internationalization, type:: + + PYTHONPATH=.. + ./runtests.py --settings=settings generic_relations i18n Requesting features =================== diff --git a/docs/databases.txt b/docs/databases.txt index ed0cb61bc3..21ff4c7434 100644 --- a/docs/databases.txt +++ b/docs/databases.txt @@ -117,7 +117,7 @@ Here's a sample configuration which uses a MySQL option file:: [client] database = DATABASE_NAME user = DATABASE_USER - passwd = DATABASE_PASSWORD + password = DATABASE_PASSWORD default-character-set = utf8 Several other MySQLdb connection options may be useful, such as ``ssl``, diff --git a/docs/db-api.txt b/docs/db-api.txt index 2a1f428ae7..cc235b79ed 100644 --- a/docs/db-api.txt +++ b/docs/db-api.txt @@ -511,6 +511,9 @@ like so:: Entry.objects.order_by('?') +Note: ``order_by('?')`` queries may be expensive and slow, depending on the +database backend you're using. + To order by a field in a different table, add the other table's name and a dot, like so:: diff --git a/docs/fastcgi.txt b/docs/fastcgi.txt index e50b9323bf..78ee9d408c 100644 --- a/docs/fastcgi.txt +++ b/docs/fastcgi.txt @@ -46,9 +46,8 @@ Prerequisite: flup ================== Before you can start using FastCGI with Django, you'll need to install flup_, -which is a Python library for dealing with FastCGI. Make sure to use the latest -Subversion snapshot of flup, as some users have reported stalled pages with -older flup versions. +which is a Python library for dealing with FastCGI. Version 0.5 or newer should +work fine. .. _flup: http://www.saddi.com/software/flup/ diff --git a/docs/generic_views.txt b/docs/generic_views.txt index a00a49d8be..87b82f7adf 100644 --- a/docs/generic_views.txt +++ b/docs/generic_views.txt @@ -699,7 +699,10 @@ A page representing a list of objects. displayed per page. If this is given, the view will paginate objects with ``paginate_by`` objects per page. The view will expect either a ``page`` query string parameter (via ``GET``) or a ``page`` variable specified in - the URLconf. See "Notes on pagination" below. + the URLconf. See `Notes on pagination`_ below. + + * ``page``: The current page number, as an integer. This is 1-based. + See `Notes on pagination`_ below. * ``template_name``: The full name of a template to use in rendering the page. This lets you override the default template name (see below). @@ -775,7 +778,7 @@ If the results are paginated, the context will contain these extra variables: page. * **New in Django development version:** ``page_range``: A list of the - page numbers that are available. This is 1-based. + page numbers that are available. This is 1-based. Notes on pagination ~~~~~~~~~~~~~~~~~~~ diff --git a/docs/i18n.txt b/docs/i18n.txt index 38252edeb1..25191e9402 100644 --- a/docs/i18n.txt +++ b/docs/i18n.txt @@ -27,21 +27,8 @@ Essentially, Django does two things: * It uses these hooks to translate Web apps for particular users according to their language preferences. -How to internationalize your app: in three steps ------------------------------------------------- - - 1. Embed translation strings in your Python code and templates. - 2. Get translations for those strings, in whichever languages you want to - support. - 3. Activate the locale middleware in your Django settings. - -.. admonition:: Behind the scenes - - Django's translation machinery uses the standard ``gettext`` module that - comes with Python. - -If you don't need internationalization -====================================== +If you don't need internationalization in your app +================================================== Django's internationalization hooks are on by default, and that means there's a bit of i18n-related overhead in certain places of the framework. If you don't @@ -55,8 +42,21 @@ from your ``TEMPLATE_CONTEXT_PROCESSORS`` setting. .. _documentation for USE_I18N: ../settings/#use-i18n -How to specify translation strings -================================== +If you do need internationalization: three steps +================================================ + + 1. Embed translation strings in your Python code and templates. + 2. Get translations for those strings, in whichever languages you want to + support. + 3. Activate the locale middleware in your Django settings. + +.. admonition:: Behind the scenes + + Django's translation machinery uses the standard ``gettext`` module that + comes with Python. + +1. How to specify translation strings +===================================== Translation strings specify "This text should be translated." These strings can appear in your Python code and templates. It's your responsibility to mark @@ -295,7 +295,7 @@ string, so they don't need to be aware of translations. .. _Django templates: ../templates_python/ Working with lazy translation objects -===================================== +------------------------------------- Using ``ugettext_lazy()`` and ``ungettext_lazy()`` to mark strings in models and utility functions is a common operation. When you're working with these @@ -305,7 +305,7 @@ convert them to strings, because they should be converted as late as possible couple of helper functions. Joining strings: string_concat() --------------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Standard Python string joins (``''.join([...])``) will not work on lists containing lazy translation objects. Instead, you can use @@ -324,7 +324,7 @@ strings when ``result`` itself is used in a string (usually at template rendering time). The allow_lazy() decorator --------------------------- +~~~~~~~~~~~~~~~~~~~~~~~~~~ Django offers many utility functions (particularly in ``django.utils``) that take a string as their first argument and do something to that string. These @@ -359,8 +359,8 @@ Using this decorator means you can write your function and assume that the input is a proper string, then add support for lazy translation objects at the end. -How to create language files -============================ +2. How to create language files +=============================== Once you've tagged your strings for later translation, you need to write (or obtain) the language translations themselves. Here's how that works. @@ -393,7 +393,7 @@ To create or update a message file, run this command:: ...where ``de`` is the language code for the message file you want to create. The language code, in this case, is in locale format. For example, it's -``pt_BR`` for Brazilian Portugese and ``de_AT`` for Austrian German. +``pt_BR`` for Brazilian Portuguese and ``de_AT`` for Austrian German. The script should be run from one of three places: @@ -490,8 +490,8 @@ That's it. Your translations are ready for use. .. _Submitting and maintaining translations: ../contributing/ -How Django discovers language preference -======================================== +3. How Django discovers language preference +=========================================== Once you've prepared your translations -- or, if you just want to use the translations that come with Django -- you'll just need to activate translation @@ -546,7 +546,7 @@ following this algorithm: Notes: * In each of these places, the language preference is expected to be in the - standard language format, as a string. For example, Brazilian Portugese + standard language format, as a string. For example, Brazilian Portuguese is ``pt-br``. * If a base language is available but the sublanguage specified is not, Django uses the base language. For example, if a user specifies ``de-at`` @@ -629,44 +629,6 @@ in ``request.LANGUAGE_CODE``. .. _session: ../sessions/ .. _request object: ../request_response/#httprequest-objects -The ``set_language`` redirect view -================================== - -As a convenience, Django comes with a view, ``django.views.i18n.set_language``, -that sets a user's language preference and redirects back to the previous page. - -Activate this view by adding the following line to your URLconf:: - - (r'^i18n/', include('django.conf.urls.i18n')), - -(Note that this example makes the view available at ``/i18n/setlang/``.) - -The view expects to be called via the ``GET`` method, with a ``language`` -parameter set in the query string. If session support is enabled, the view -saves the language choice in the user's session. Otherwise, it saves the -language choice in a ``django_language`` cookie. - -After setting the language choice, Django redirects the user, following this -algorithm: - - * Django looks for a ``next`` parameter in the query string. - * If that doesn't exist, or is empty, Django tries the URL in the - ``Referer`` header. - * If that's empty -- say, if a user's browser suppresses that header -- - then the user will be redirected to ``/`` (the site root) as a fallback. - -Here's example HTML template code:: - -
                      - - - -
                      - Using translations in your own projects ======================================= @@ -728,6 +690,44 @@ The easiest way out is to store applications that are not part of the project connected to your explicit project and not strings that are distributed independently. +The ``set_language`` redirect view +================================== + +As a convenience, Django comes with a view, ``django.views.i18n.set_language``, +that sets a user's language preference and redirects back to the previous page. + +Activate this view by adding the following line to your URLconf:: + + (r'^i18n/', include('django.conf.urls.i18n')), + +(Note that this example makes the view available at ``/i18n/setlang/``.) + +The view expects to be called via the ``POST`` method, with a ``language`` +parameter set in request. If session support is enabled, the view +saves the language choice in the user's session. Otherwise, it saves the +language choice in a ``django_language`` cookie. + +After setting the language choice, Django redirects the user, following this +algorithm: + + * Django looks for a ``next`` parameter in ``POST`` request. + * If that doesn't exist, or is empty, Django tries the URL in the + ``Referrer`` header. + * If that's empty -- say, if a user's browser suppresses that header -- + then the user will be redirected to ``/`` (the site root) as a fallback. + +Here's example HTML template code:: + +
                      + + + +
                      + Translations and JavaScript =========================== @@ -752,7 +752,7 @@ The main solution to these problems is the ``javascript_catalog`` view, which sends out a JavaScript code library with functions that mimic the ``gettext`` interface, plus an array of translation strings. Those translation strings are taken from the application, project or Django core, according to what you -specify in either the {{{info_dict}}} or the URL. +specify in either the info_dict or the URL. You hook it up like this:: @@ -817,8 +817,8 @@ pluralizations). Creating JavaScript translation catalogs ---------------------------------------- -You create and update the translation catalogs the same way as the other Django -translation catalogs -- with the {{{make-messages.py}}} tool. The only +You create and update the translation catalogs the same way as the other +Django translation catalogs -- with the make-messages.py tool. The only difference is you need to provide a ``-d djangojs`` parameter, like this:: make-messages.py -d djangojs -l de @@ -827,13 +827,13 @@ This would create or update the translation catalog for JavaScript for German. After updating translation catalogs, just run ``compile-messages.py`` the same way as you do with normal Django translation catalogs. -Specialities of Django translation +Specialties of Django translation ================================== -If you know ``gettext``, you might note these specialities in the way Django +If you know ``gettext``, you might note these specialties in the way Django does translation: - * The string domain is ``django`` or ``djangojs``. The string domain is + * The string domain is ``django`` or ``djangojs``. This string domain is used to differentiate between different programs that store their data in a common message-file library (usually ``/usr/share/locale/``). The ``django`` domain is used for python and template translation strings @@ -841,5 +841,5 @@ does translation: domain is only used for JavaScript translation catalogs to make sure that those are as small as possible. * Django doesn't use ``xgettext`` alone. It uses Python wrappers around - ``xgettext`` and ``msgfmt``. That's mostly for convenience. + ``xgettext`` and ``msgfmt``. This is mostly for convenience. diff --git a/docs/install.txt b/docs/install.txt index 9300c7f0f8..173f4941ee 100644 --- a/docs/install.txt +++ b/docs/install.txt @@ -67,6 +67,16 @@ installed. * If you're using Oracle, you'll need cx_Oracle_, version 4.3.1 or higher. +If you plan to use Django's ``manage.py syncdb`` command to +automatically create database tables for your models, you'll need to +ensure that Django has permission to create tables in the database +you're using; if you plan to manually create the tables, you can +simply grant Django ``SELECT``, ``INSERT``, ``UPDATE`` and ``DELETE`` +permissions. Django does not issue ``ALTER TABLE`` statements, and so +will not require permission to do so. If you will be using Django's +`testing framework`_ with data fixtures, Django will need permission +to create a temporary test database. + .. _PostgreSQL: http://www.postgresql.org/ .. _MySQL: http://www.mysql.com/ .. _Django's ticket system: http://code.djangoproject.com/report/1 @@ -78,6 +88,7 @@ installed. .. _MySQL backend: ../databases/ .. _cx_Oracle: http://www.python.net/crew/atuining/cx_Oracle/ .. _Oracle: http://www.oracle.com/ +.. _testing framework: ../testing/ Remove any old versions of Django ================================= diff --git a/docs/newforms.txt b/docs/newforms.txt index e9e98944a0..19c5fc247f 100644 --- a/docs/newforms.txt +++ b/docs/newforms.txt @@ -776,6 +776,27 @@ form data *and* file data:: # Unbound form with a image field >>> f = ContactFormWithMugshot() +Testing for multipart forms +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you're writing reusable views or templates, you may not know ahead of time +whether your form is a multipart form or not. The ``is_multipart()`` method +tells you whether the form requires multipart encoding for submission:: + + >>> f = ContactFormWithMugshot() + >>> f.is_multipart() + True + +Here's an example of how you might use this in a template:: + + {% if form.is_multipart %} +
                      + {% else %} + + {% endif %} + {% form %} +
                      + Subclassing forms ----------------- diff --git a/docs/templates.txt b/docs/templates.txt index dbed0ba5c9..9adf15731b 100644 --- a/docs/templates.txt +++ b/docs/templates.txt @@ -1419,6 +1419,12 @@ A collection of template filters that implement these common markup languages: * Markdown * ReST (ReStructured Text) +See the `markup section`_ of the `add-ons documentation`_ for more +information. + +.. _markup section: ../add_ons/#markup +.. _add-ons documentation: ../add_ons/ + django.contrib.webdesign ------------------------ diff --git a/docs/testing.txt b/docs/testing.txt index e15abd50d5..04c999cda8 100644 --- a/docs/testing.txt +++ b/docs/testing.txt @@ -137,12 +137,14 @@ When you `run your tests`_, the test runner will find this docstring, notice that portions of it look like an interactive Python session, and execute those lines while checking that the results match. -In the case of model tests, note that the test runner takes care of creating -its own test database. That is, any test that accesses a database -- by -creating and saving model instances, for example -- will not affect your -production database. Each doctest begins with a "blank slate" -- a fresh -database containing an empty table for each model. (See the section on -fixtures, below, for more on this.) +In the case of model tests, note that the test runner takes care of +creating its own test database. That is, any test that accesses a +database -- by creating and saving model instances, for example -- +will not affect your production database. Each doctest begins with a +"blank slate" -- a fresh database containing an empty table for each +model. (See the section on fixtures, below, for more on this.) Note +that to use this feature, the database user Django is connecting as +must have ``CREATE DATABASE`` rights. For more details about how doctest works, see the `standard library documentation for doctest`_ diff --git a/docs/tutorial01.txt b/docs/tutorial01.txt index 2e18fd6130..4e97dcd541 100644 --- a/docs/tutorial01.txt +++ b/docs/tutorial01.txt @@ -46,7 +46,7 @@ will create a ``mysite`` directory in your current directory. If you're using Mac OS X, you may see the message "permission denied" when you try to run ``django-admin.py startproject``. This is because, on Unix-based systems like OS X, a file must be marked - as "exceutable" before it can be run as a program. To do this, open + as "executable" before it can be run as a program. To do this, open Terminal.app and navigate (using the `cd` command) to the directory where ``django-admin.py`` is installed, then run the command ``chmod +x django-admin.py``. diff --git a/tests/modeltests/fixtures/models.py b/tests/modeltests/fixtures/models.py index b59c388bbd..a1e2446e56 100644 --- a/tests/modeltests/fixtures/models.py +++ b/tests/modeltests/fixtures/models.py @@ -74,7 +74,7 @@ Multiple fixtures named 'fixture2' in '...fixtures'. Aborting. # Dump the current contents of the database as a JSON fixture >>> management.call_command('dumpdata', 'fixtures', format='json') -[{"pk": "3", "model": "fixtures.article", "fields": {"headline": "Time to reform copyright", "pub_date": "2006-06-16 13:00:00"}}, {"pk": "2", "model": "fixtures.article", "fields": {"headline": "Poker has no place on ESPN", "pub_date": "2006-06-16 12:00:00"}}, {"pk": "1", "model": "fixtures.article", "fields": {"headline": "Python program becomes self aware", "pub_date": "2006-06-16 11:00:00"}}] +[{"pk": 3, "model": "fixtures.article", "fields": {"headline": "Time to reform copyright", "pub_date": "2006-06-16 13:00:00"}}, {"pk": 2, "model": "fixtures.article", "fields": {"headline": "Poker has no place on ESPN", "pub_date": "2006-06-16 12:00:00"}}, {"pk": 1, "model": "fixtures.article", "fields": {"headline": "Python program becomes self aware", "pub_date": "2006-06-16 11:00:00"}}] """} from django.test import TestCase diff --git a/tests/modeltests/serializers/models.py b/tests/modeltests/serializers/models.py index 2ee6cfce67..a0a68d4bcc 100644 --- a/tests/modeltests/serializers/models.py +++ b/tests/modeltests/serializers/models.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """ 41. Serialization @@ -43,6 +44,25 @@ class AuthorProfile(models.Model): def __unicode__(self): return u"Profile of %s" % self.author + +class Actor(models.Model): + name = models.CharField(max_length=20, primary_key=True) + + class Meta: + ordering = ('name',) + + def __unicode__(self): + return self.name + +class Movie(models.Model): + actor = models.ForeignKey(Actor) + title = models.CharField(max_length=50) + + class Meta: + ordering = ('title',) + + def __unicode__(self): + return self.title __test__ = {'API_TESTS':""" # Create some data: @@ -101,7 +121,7 @@ __test__ = {'API_TESTS':""" # Django also ships with a built-in JSON serializers >>> json = serializers.serialize("json", Category.objects.filter(pk=2)) >>> json -'[{"pk": "2", "model": "serializers.category", "fields": {"name": "Music"}}]' +'[{"pk": 2, "model": "serializers.category", "fields": {"name": "Music"}}]' # You can easily create new objects by deserializing data with an empty PK # (It's easier to demo this with JSON...) @@ -133,7 +153,7 @@ __test__ = {'API_TESTS':""" >>> json = serializers.serialize("json", AuthorProfile.objects.all()) >>> json -'[{"pk": "1", "model": "serializers.authorprofile", "fields": {"date_of_birth": "1970-01-01"}}]' +'[{"pk": 1, "model": "serializers.authorprofile", "fields": {"date_of_birth": "1970-01-01"}}]' >>> for obj in serializers.deserialize("json", json): ... print obj @@ -141,7 +161,7 @@ __test__ = {'API_TESTS':""" # Objects ids can be referenced before they are defined in the serialization data # However, the deserialization process will need to be contained within a transaction ->>> json = '[{"pk": "3", "model": "serializers.article", "fields": {"headline": "Forward references pose no problem", "pub_date": "2006-06-16 15:00:00", "categories": [4, 1], "author": 4}}, {"pk": "4", "model": "serializers.category", "fields": {"name": "Reference"}}, {"pk": "4", "model": "serializers.author", "fields": {"name": "Agnes"}}]' +>>> json = '[{"pk": 3, "model": "serializers.article", "fields": {"headline": "Forward references pose no problem", "pub_date": "2006-06-16 15:00:00", "categories": [4, 1], "author": 4}}, {"pk": 4, "model": "serializers.category", "fields": {"name": "Reference"}}, {"pk": 4, "model": "serializers.author", "fields": {"name": "Agnes"}}]' >>> from django.db import transaction >>> transaction.enter_transaction_management() >>> transaction.managed(True) @@ -161,6 +181,30 @@ __test__ = {'API_TESTS':""" # Serializer output can be restricted to a subset of fields >>> print serializers.serialize("json", Article.objects.all(), fields=('headline','pub_date')) -[{"pk": "1", "model": "serializers.article", "fields": {"headline": "Just kidding; I love TV poker", "pub_date": "2006-06-16 11:00:00"}}, {"pk": "2", "model": "serializers.article", "fields": {"headline": "Time to reform copyright", "pub_date": "2006-06-16 13:00:00"}}, {"pk": "3", "model": "serializers.article", "fields": {"headline": "Forward references pose no problem", "pub_date": "2006-06-16 15:00:00"}}] +[{"pk": 1, "model": "serializers.article", "fields": {"headline": "Just kidding; I love TV poker", "pub_date": "2006-06-16 11:00:00"}}, {"pk": 2, "model": "serializers.article", "fields": {"headline": "Time to reform copyright", "pub_date": "2006-06-16 13:00:00"}}, {"pk": 3, "model": "serializers.article", "fields": {"headline": "Forward references pose no problem", "pub_date": "2006-06-16 15:00:00"}}] + +# Every string is serialized as a unicode object, also primary key +# which is 'varchar' +>>> ac = Actor(name="Zażółć") +>>> mv = Movie(title="Gęślą jaźń", actor=ac) +>>> ac.save(); mv.save() + +# Let's serialize our movie +>>> print serializers.serialize("json", [mv]) +[{"pk": 1, "model": "serializers.movie", "fields": {"actor": "Za\u017c\u00f3\u0142\u0107", "title": "G\u0119\u015bl\u0105 ja\u017a\u0144"}}] + +# Deserialization of movie +>>> list(serializers.deserialize('json', serializers.serialize('json', [mv])))[0].object.title +u'G\u0119\u015bl\u0105 ja\u017a\u0144' + +# None is null after serialization to json +# Primary key is None in case of not saved model +>>> mv2 = Movie(title="Movie 2", actor=ac) +>>> print serializers.serialize("json", [mv2]) +[{"pk": null, "model": "serializers.movie", "fields": {"actor": "Za\u017c\u00f3\u0142\u0107", "title": "Movie 2"}}] + +# Deserialization of null returns None for pk +>>> print list(serializers.deserialize('json', serializers.serialize('json', [mv2])))[0].object.id +None """} diff --git a/tests/modeltests/signals/__init__.py b/tests/modeltests/signals/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/modeltests/signals/models.py b/tests/modeltests/signals/models.py new file mode 100644 index 0000000000..d41142135e --- /dev/null +++ b/tests/modeltests/signals/models.py @@ -0,0 +1,85 @@ +""" +Testing signals before/after saving and deleting. +""" + +from django.db import models +from django.dispatch import dispatcher + +class Person(models.Model): + first_name = models.CharField(max_length=20) + last_name = models.CharField(max_length=20) + + def __unicode__(self): + return u"%s %s" % (self.first_name, self.last_name) + + +def pre_save_test(sender, instance, **kwargs): + print 'pre_save signal,', instance + +def post_save_test(sender, instance, **kwargs): + print 'post_save signal,', instance + if 'created' in kwargs: + if kwargs['created']: + print 'Is created' + else: + print 'Is updated' + +def pre_delete_test(sender, instance, **kwargs): + print 'pre_delete signal,', instance + print 'instance.id is not None: %s' % (instance.id != None) + +def post_delete_test(sender, instance, **kwargs): + print 'post_delete signal,', instance + print 'instance.id is None: %s' % (instance.id == None) + +__test__ = {'API_TESTS':""" +>>> dispatcher.connect(pre_save_test, signal=models.signals.pre_save) +>>> dispatcher.connect(post_save_test, signal=models.signals.post_save) +>>> dispatcher.connect(pre_delete_test, signal=models.signals.pre_delete) +>>> dispatcher.connect(post_delete_test, signal=models.signals.post_delete) + +>>> p1 = Person(first_name='John', last_name='Smith') +>>> p1.save() +pre_save signal, John Smith +post_save signal, John Smith +Is created + +>>> p1.first_name = 'Tom' +>>> p1.save() +pre_save signal, Tom Smith +post_save signal, Tom Smith +Is updated + +>>> p1.delete() +pre_delete signal, Tom Smith +instance.id is not None: True +post_delete signal, Tom Smith +instance.id is None: True + +>>> p2 = Person(first_name='James', last_name='Jones') +>>> p2.id = 99999 +>>> p2.save() +pre_save signal, James Jones +post_save signal, James Jones +Is created + +>>> p2.id = 99998 +>>> p2.save() +pre_save signal, James Jones +post_save signal, James Jones +Is created + +>>> p2.delete() +pre_delete signal, James Jones +instance.id is not None: True +post_delete signal, James Jones +instance.id is None: True + +>>> Person.objects.all() +[] + +>>> dispatcher.disconnect(post_delete_test, signal=models.signals.post_delete) +>>> dispatcher.disconnect(pre_delete_test, signal=models.signals.pre_delete) +>>> dispatcher.disconnect(post_save_test, signal=models.signals.post_save) +>>> dispatcher.disconnect(pre_save_test, signal=models.signals.pre_save) +"""} diff --git a/tests/regressiontests/forms/models.py b/tests/regressiontests/forms/models.py index e69de29bb2..f4f8607193 100644 --- a/tests/regressiontests/forms/models.py +++ b/tests/regressiontests/forms/models.py @@ -0,0 +1,21 @@ +from django.db import models + +class BoundaryModel(models.Model): + positive_integer = models.PositiveIntegerField(null=True, blank=True) + +__test__ = {'API_TESTS': """ +>>> from django.newforms import form_for_model + +# Boundary conditions on a PostitiveIntegerField ######################### +>>> BoundaryForm = form_for_model(BoundaryModel) +>>> f = BoundaryForm({'positive_integer':100}) +>>> f.is_valid() +True +>>> f = BoundaryForm({'positive_integer':0}) +>>> f.is_valid() +True +>>> f = BoundaryForm({'positive_integer':-100}) +>>> f.is_valid() +False + +"""} \ No newline at end of file diff --git a/tests/regressiontests/forms/regressions.py b/tests/regressiontests/forms/regressions.py index df2ef578a1..3212e20170 100644 --- a/tests/regressiontests/forms/regressions.py +++ b/tests/regressiontests/forms/regressions.py @@ -60,6 +60,12 @@ Translated error messages used to be buggy. u'
                      • \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.
                      \n

                        \n
                      • \n
                      • \n
                      • \n

                      ' >>> deactivate() +Deep copying translated text shouldn't raise an error +>>> from django.utils.translation import gettext_lazy +>>> class CopyForm(Form): +... degree = IntegerField(widget=Select(choices=((1, gettext_lazy('test')),))) +>>> f = CopyForm() + ####################### # Miscellaneous Tests # ####################### diff --git a/tests/regressiontests/forms/tests.py b/tests/regressiontests/forms/tests.py index fef8361a14..72033a4e60 100644 --- a/tests/regressiontests/forms/tests.py +++ b/tests/regressiontests/forms/tests.py @@ -961,6 +961,12 @@ True Traceback (most recent call last): ... ValidationError: [u'Enter a whole number.'] +>>> f.clean(42) +42 +>>> f.clean(3.14) +Traceback (most recent call last): +... +ValidationError: [u'Enter a whole number.'] >>> f.clean('1 ') 1 >>> f.clean(' 1') @@ -1084,6 +1090,10 @@ True 23.0 >>> f.clean('3.14') 3.1400000000000001 +>>> f.clean(3.14) +3.1400000000000001 +>>> f.clean(42) +42.0 >>> f.clean('a') Traceback (most recent call last): ... @@ -1142,6 +1152,10 @@ True Decimal("23") >>> f.clean('3.14') Decimal("3.14") +>>> f.clean(3.14) +Decimal("3.14") +>>> f.clean(Decimal('3.14')) +Decimal("3.14") >>> f.clean('a') Traceback (most recent call last): ... @@ -3856,6 +3870,25 @@ u'sirrobin'
                      This field is required.

                      Comment:

                      +################################# +# Test multipart-encoded form # +################################# + +>>> class FormWithoutFile(Form): +... username = CharField() +>>> class FormWithFile(Form): +... username = CharField() +... file = FileField() +>>> class FormWithImage(Form): +... image = ImageField() + +>>> FormWithoutFile().is_multipart() +False +>>> FormWithFile().is_multipart() +True +>>> FormWithImage().is_multipart() +True + """ __test__ = {