diff --git a/AUTHORS b/AUTHORS index 6758ac29f2..d2c799ad3e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -57,10 +57,12 @@ answer newbie questions, and generally made Django that much better: Ned Batchelder Shannon -jj Behrens Esdras Beleza + Chris Bennett James Bennett Ben Paul Bissex Simon Blanchard + Matt Boersma boobsd@gmail.com Andrew Brehaut brut.alll@gmail.com @@ -94,10 +96,12 @@ answer newbie questions, and generally made Django that much better: Maximillian Dornseif Jeremy Dunck Andrew Durdin + dusk@woofle.net Andy Dustman Clint Ecker enlight Enrico + A. Murat Eren Ludvig Ericson Dirk Eschler Marc Fargas @@ -114,7 +118,7 @@ answer newbie questions, and generally made Django that much better: glin@seznam.cz martin.glueck@gmail.com GomoX - Mario Gonzalez + Mario Gonzalez Simon Greenhill Owen Griffiths Espen Grindhaug @@ -141,7 +145,8 @@ answer newbie questions, and generally made Django that much better: junzhang.jn@gmail.com Antti Kaihola Ben Dean Kawamura - ian.g.kelly@gmail.com + Ian G. Kelly + Ben Khoo Garth Kidd kilian Sune Kirkeby @@ -153,6 +158,7 @@ answer newbie questions, and generally made Django that much better: Martin Kosír Meir Kriheli Bruce Kroeze + krzysiek.pawlik@silvermedia.pl Joseph Kocherhans konrad@gwu.edu kurtiss@meetro.com @@ -167,13 +173,14 @@ answer newbie questions, and generally made Django that much better: lerouxb@gmail.com Waylan Limberg limodou + Philip Lindborg Matt McClanahan Martin Maney masonsimon+django@gmail.com Manuzhai Petar Marić Nuno Mariz - marijn@metronomo.cl + Marijn Vriens mark@junklight.com Yasushi Masuda mattycakes@gmail.com @@ -183,6 +190,7 @@ answer newbie questions, and generally made Django that much better: mikko@sorl.net mitakummaa@gmail.com mmarshall + Andreas Mock Reza Mohammadi Eric Moritz mrmachine @@ -207,6 +215,7 @@ answer newbie questions, and generally made Django that much better: plisk Daniel Poelzleithner polpak@yahoo.com + Johann Queuniet J. Rademaker Michael Radziej Ramiro Morales @@ -216,12 +225,14 @@ answer newbie questions, and generally made Django that much better: rhettg@gmail.com Henrique Romano Armin Ronacher + Brian Rosner Oliver Rutherfurd Ivan Sagalaev (Maniac) Vinay Sajip David Schein scott@staplefish.com serbaut@gmail.com + John Shaffer Pete Shinners Jozko Skrablin SmileyChris @@ -232,6 +243,8 @@ answer newbie questions, and generally made Django that much better: Vasiliy Stavenko Thomas Steinacher nowell strite + Sundance + SuperJared Radek Švarz Swaroop C H Aaron Swartz diff --git a/django/bin/make-messages.py b/django/bin/make-messages.py index 3e5acb70cb..e824611ca3 100755 --- a/django/bin/make-messages.py +++ b/django/bin/make-messages.py @@ -9,6 +9,7 @@ import re import os import sys import getopt +from itertools import dropwhile pythonize_re = re.compile(r'\n\s*//') @@ -103,8 +104,8 @@ def make_messages(): open(os.path.join(dirpath, '%s.py' % file), "wb").write(templatize(src)) thefile = '%s.py' % file if verbose: sys.stdout.write('processing file %s in %s\n' % (file, dirpath)) - cmd = 'xgettext %s -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy:1,2 --keyword=ugettext_noop --keyword=ugettext_lazy --keyword=ungettext_lazy:1,2 --from-code UTF-8 -o - "%s"' % ( - os.path.exists(potfile) and '--omit-header' or '', domain, os.path.join(dirpath, thefile)) + cmd = 'xgettext -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy:1,2 --keyword=ugettext_noop --keyword=ugettext_lazy --keyword=ungettext_lazy:1,2 --from-code UTF-8 -o - "%s"' % ( + domain, os.path.join(dirpath, thefile)) (stdin, stdout, stderr) = os.popen3(cmd, 'b') msgs = stdout.read() errors = stderr.read() @@ -116,13 +117,18 @@ def make_messages(): old = '#: '+os.path.join(dirpath, thefile)[2:] new = '#: '+os.path.join(dirpath, file)[2:] msgs = msgs.replace(old, new) + if os.path.exists(potfile): + # Strip the header + msgs = '\n'.join(dropwhile(len, msgs.split('\n'))) + else: + msgs = msgs.replace('charset=CHARSET', 'charset=UTF-8') if msgs: open(potfile, 'ab').write(msgs) if thefile != file: os.unlink(os.path.join(dirpath, thefile)) if os.path.exists(potfile): - (stdin, stdout, stderr) = os.popen3('msguniq "%s"' % potfile, 'b') + (stdin, stdout, stderr) = os.popen3('msguniq --to-code=utf-8 "%s"' % potfile, 'b') msgs = stdout.read() errors = stderr.read() if errors: diff --git a/django/conf/__init__.py b/django/conf/__init__.py index 021ecc8131..f28da2d764 100644 --- a/django/conf/__init__.py +++ b/django/conf/__init__.py @@ -37,6 +37,8 @@ class LazySettings(object): # __setattr__(), which would be an infinite loop. self.__dict__['_target'] = value else: + if self._target is None: + self._import_settings() setattr(self._target, name, value) def _import_settings(self): diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 2a7df569fb..33f7aebb6b 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -30,7 +30,6 @@ TIME_ZONE = 'America/Chicago' # Language code for this installation. All choices can be found here: # http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes -# http://blogs.law.harvard.edu/tech/stories/storyReader$15 LANGUAGE_CODE = 'en-us' # Languages we provide translations for, out of the box. The language name diff --git a/django/conf/locale/de/LC_MESSAGES/djangojs.mo b/django/conf/locale/de/LC_MESSAGES/djangojs.mo index 9f39c16444..896847bb99 100644 Binary files a/django/conf/locale/de/LC_MESSAGES/djangojs.mo and b/django/conf/locale/de/LC_MESSAGES/djangojs.mo differ diff --git a/django/conf/locale/de/LC_MESSAGES/djangojs.po b/django/conf/locale/de/LC_MESSAGES/djangojs.po index 3c0852ebac..936dcb454f 100644 --- a/django/conf/locale/de/LC_MESSAGES/djangojs.po +++ b/django/conf/locale/de/LC_MESSAGES/djangojs.po @@ -11,21 +11,21 @@ msgstr "" "PO-Revision-Date: 2005-12-04 13:21+0100\n" "Last-Translator: Dirk Eschler \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: contrib/admin/media/js/SelectFilter2.js:33 #, perl-format msgid "Available %s" -msgstr "Verfgbare %s" +msgstr "Verfügbare %s" #: contrib/admin/media/js/SelectFilter2.js:41 msgid "Choose all" -msgstr "Alles auswhlen" +msgstr "Alles auswählen" #: contrib/admin/media/js/SelectFilter2.js:46 msgid "Add" -msgstr "Hinzufgen" +msgstr "Hinzufügen" #: contrib/admin/media/js/SelectFilter2.js:48 msgid "Remove" @@ -34,15 +34,15 @@ msgstr "Entfernen" #: contrib/admin/media/js/SelectFilter2.js:53 #, perl-format msgid "Chosen %s" -msgstr "Ausgewhlte %s" +msgstr "Ausgewählte %s" #: contrib/admin/media/js/SelectFilter2.js:54 msgid "Select your choice(s) and click " -msgstr "Gewnschte Auswahl treffen und " +msgstr "Gewünschte Auswahl treffen und " #: contrib/admin/media/js/SelectFilter2.js:59 msgid "Clear all" -msgstr "Alles abwhlen" +msgstr "Alles abwählen" #: contrib/admin/media/js/dateparse.js:26 #: contrib/admin/media/js/calendar.js:24 @@ -50,7 +50,7 @@ msgid "" "January February March April May June July August September October November " "December" msgstr "" -"Januar Februar Mrz April Mai Juni Juli August September Oktober November " +"Januar Februar März April Mai Juni Juli August September Oktober November " "Dezember" #: contrib/admin/media/js/dateparse.js:27 diff --git a/django/conf/locale/es/LC_MESSAGES/django.mo b/django/conf/locale/es/LC_MESSAGES/django.mo index d1c1edab1e..4b8254b95a 100644 Binary files a/django/conf/locale/es/LC_MESSAGES/django.mo and b/django/conf/locale/es/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/es/LC_MESSAGES/django.po b/django/conf/locale/es/LC_MESSAGES/django.po index ea15352d4d..4dcc433098 100644 --- a/django/conf/locale/es/LC_MESSAGES/django.po +++ b/django/conf/locale/es/LC_MESSAGES/django.po @@ -6,735 +6,1698 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-06-29 10:15-0400\n" -"PO-Revision-Date: 2007-02-24 18:02-0600\n" +"POT-Creation-Date: 2007-07-14 13:46-0500\n" +"PO-Revision-Date: 2007-07-14 13:00-0500\n" "Last-Translator: Mario Gonzalez \n" "Language-Team: Castellano \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: 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 newforms/models.py:185 -#: newforms/fields.py:87 newforms/fields.py:444 newforms/fields.py:522 -#: newforms/fields.py:533 -msgid "This field is required." -msgstr "Este campo es obligatorio." - -#: oldforms/__init__.py:392 -#, python-format -msgid "Ensure your text is less than %s character." -msgid_plural "Ensure your text is less than %s characters." -msgstr[0] "Asegrese de que su texto tiene menos de %s carcter." -msgstr[1] "Asegrese de que su texto tiene menos de %s caracteres." - -#: oldforms/__init__.py:397 -msgid "Line breaks are not allowed here." -msgstr "No se permiten saltos de lnea." - -#: oldforms/__init__.py:498 oldforms/__init__.py:571 oldforms/__init__.py:610 -#, python-format -msgid "Select a valid choice; '%(data)s' is not in %(choices)s." -msgstr "Escoja una opcin vlida; '%(data)s' no est en %(choices)s." - -#: oldforms/__init__.py:577 newforms/widgets.py:181 -#: contrib/admin/filterspecs.py:150 -msgid "Unknown" -msgstr "Desconocido" - -#: oldforms/__init__.py:577 newforms/widgets.py:181 -#: contrib/admin/filterspecs.py:143 -msgid "Yes" -msgstr "S" - -#: oldforms/__init__.py:577 newforms/widgets.py:181 -#: contrib/admin/filterspecs.py:143 -msgid "No" -msgstr "No" - -#: oldforms/__init__.py:672 core/validators.py:175 core/validators.py:453 -msgid "No file was submitted. Check the encoding type on the form." -msgstr "" -"No se ha enviado ningn fichero. Compruebe el tipo de codificacin en el " -"formulario." - -#: oldforms/__init__.py:674 -msgid "The submitted file is empty." -msgstr "El fichero enviado est vaco." - -#: oldforms/__init__.py:730 -msgid "Enter a whole number between -32,768 and 32,767." -msgstr "Introduzca un nmero entero entre -32,768 y 32,767." - -#: oldforms/__init__.py:740 -msgid "Enter a positive number." -msgstr "Introduzca un nmero positivo." - -#: oldforms/__init__.py:750 -msgid "Enter a whole number between 0 and 32,767." -msgstr "Introduzca un nmero entero entre 0 y 32,767." - -#: db/models/manipulators.py:307 +#: 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:308 contrib/admin/views/main.py:340 -#: contrib/admin/views/main.py:342 contrib/admin/views/main.py:344 +#: 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 "y" -#: db/models/fields/__init__.py:46 -#, 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:378 -msgid "This value must be an integer." -msgstr "Este valor debe ser un entero." - -#: db/models/fields/__init__.py:413 -msgid "This value must be either True or False." -msgstr "Este valor debe ser Verdadero o Falso." - -#: db/models/fields/__init__.py:434 -msgid "This field cannot be null." -msgstr "Este campo no puede estar vaco." - -#: db/models/fields/__init__.py:468 core/validators.py:149 -msgid "Enter a valid date in YYYY-MM-DD format." -msgstr "Introduzca una fecha vlida en formato AAAA-MM-DD." - -#: db/models/fields/__init__.py:537 core/validators.py:158 -msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." -msgstr "Introduzca una fecha/hora vlida en formato AAAA-MM-DD HH:MM." - -#: db/models/fields/__init__.py:597 -msgid "This value must be a decimal number." -msgstr "Este valor debe ser un entero." - -#: db/models/fields/__init__.py:700 -msgid "Enter a valid filename." -msgstr "Introduzca un nombre de fichero vlido" - -#: db/models/fields/__init__.py:825 -msgid "This value must be either None, True or False." -msgstr "Este valor debe ser Verdadero o Falso." - -#: db/models/fields/related.py:54 +#: db/models/fields/related.py:55 #, python-format msgid "Please enter a valid %s." -msgstr "Por favor, introduzca un %s vlido." +msgstr "Por favor, introduzca un %s válido." -#: db/models/fields/related.py:640 +#: db/models/fields/related.py:641 msgid "Separate multiple IDs with commas." -msgstr "Separe mltiples IDs con comas." +msgstr "Separe múltiples IDs con comas." -#: db/models/fields/related.py:642 +#: db/models/fields/related.py:643 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 " -"ms de uno." +"más de uno." -#: db/models/fields/related.py:689 +#: db/models/fields/related.py:690 #, 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 vlidos. El valor %(value)r no es " -"vlido." +"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 vlidos. Los valores %(value)r no son " -"vlidos." +"Por favor, introduzca IDs de %(self)s válidos. Los valores %(value)r no son " +"válidos." + +#: db/models/fields/__init__.py:47 +#, 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:127 db/models/fields/__init__.py:284 +#: db/models/fields/__init__.py:681 db/models/fields/__init__.py:692 +#: oldforms/__init__.py:369 newforms/fields.py:92 newforms/fields.py:440 +#: newforms/fields.py:516 newforms/fields.py:527 newforms/models.py:187 +msgid "This field is required." +msgstr "Este campo es obligatorio." + +#: db/models/fields/__init__.py:379 +msgid "This value must be an integer." +msgstr "Este valor debe ser un entero." + +#: db/models/fields/__init__.py:414 +msgid "This value must be either True or False." +msgstr "Este valor debe ser Verdadero o Falso." + +#: db/models/fields/__init__.py:435 +msgid "This field cannot be null." +msgstr "Este campo no puede estar vacío." + +#: db/models/fields/__init__.py:469 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:538 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:598 +msgid "This value must be a decimal number." +msgstr "Este valor debe ser un entero." + +#: db/models/fields/__init__.py:701 +msgid "Enter a valid filename." +msgstr "Introduzca un nombre de fichero válido" + +#: db/models/fields/__init__.py:826 +msgid "This value must be either None, True or False." +msgstr "Este valor debe ser Verdadero o Falso." + +#: conf/global_settings.py:38 +msgid "Arabic" +msgstr "Árabe" #: conf/global_settings.py:39 -msgid "Arabic" -msgstr "rabe" +msgid "Bengali" +msgstr "Bengalí" #: conf/global_settings.py:40 -msgid "Bengali" -msgstr "Bengal" +msgid "Bulgarian" +msgstr "Búlgaro" #: conf/global_settings.py:41 -msgid "Bulgarian" -msgstr "Blgaro" +msgid "Catalan" +msgstr "Catalán" #: conf/global_settings.py:42 -msgid "Catalan" -msgstr "Cataln" - -#: conf/global_settings.py:43 msgid "Czech" msgstr "Checo" -#: conf/global_settings.py:44 +#: conf/global_settings.py:43 msgid "Welsh" -msgstr "Gals" +msgstr "Galés" + +#: conf/global_settings.py:44 +msgid "Danish" +msgstr "Danés" #: conf/global_settings.py:45 -msgid "Danish" -msgstr "Dans" +msgid "German" +msgstr "Alemán" #: conf/global_settings.py:46 -msgid "German" -msgstr "Alemn" - -#: conf/global_settings.py:47 msgid "Greek" msgstr "Griego" -#: conf/global_settings.py:48 +#: conf/global_settings.py:47 msgid "English" -msgstr "Ingls" +msgstr "Inglés" + +#: conf/global_settings.py:48 +msgid "Spanish" +msgstr "Español" #: conf/global_settings.py:49 -msgid "Spanish" -msgstr "Espaol" +msgid "Argentinean Spanish" +msgstr "Español Argentino" #: conf/global_settings.py:50 -msgid "Argentinean Spanish" -msgstr "Espaol Argentino" +msgid "Persian" +msgstr "Persa" #: conf/global_settings.py:51 -#, fuzzy -msgid "Persian" -msgstr "Serbio" +msgid "Finnish" +msgstr "Finés" #: conf/global_settings.py:52 -msgid "Finnish" -msgstr "Fins" +msgid "French" +msgstr "Francés" #: conf/global_settings.py:53 -msgid "French" -msgstr "Francs" - -#: conf/global_settings.py:54 msgid "Galician" msgstr "Gallego" -#: conf/global_settings.py:55 +#: conf/global_settings.py:54 msgid "Hungarian" -msgstr "Hngaro" +msgstr "Húngaro" -#: conf/global_settings.py:56 +#: conf/global_settings.py:55 msgid "Hebrew" msgstr "Hebreo" -#: conf/global_settings.py:57 +#: conf/global_settings.py:56 msgid "Icelandic" -msgstr "Islands" +msgstr "Islandés" -#: conf/global_settings.py:58 +#: conf/global_settings.py:57 msgid "Italian" msgstr "Italiano" -#: conf/global_settings.py:59 +#: conf/global_settings.py:58 msgid "Japanese" -msgstr "Japons" +msgstr "Japonés" -#: conf/global_settings.py:60 +#: conf/global_settings.py:59 msgid "Korean" msgstr "Koreano" -#: conf/global_settings.py:61 +#: conf/global_settings.py:60 msgid "Kannada" msgstr "Kannada" -#: conf/global_settings.py:62 +#: conf/global_settings.py:61 msgid "Latvian" msgstr "Latvio" -#: conf/global_settings.py:63 +#: conf/global_settings.py:62 msgid "Macedonian" msgstr "Macedonio" -#: conf/global_settings.py:64 +#: conf/global_settings.py:63 msgid "Dutch" -msgstr "Alemn" +msgstr "Alemán" -#: conf/global_settings.py:65 +#: conf/global_settings.py:64 msgid "Norwegian" msgstr "Noruego" -#: conf/global_settings.py:66 +#: conf/global_settings.py:65 msgid "Polish" msgstr "Polaco" -#: conf/global_settings.py:67 +#: conf/global_settings.py:66 msgid "Portugese" -msgstr "Portugs" +msgstr "Portugés" + +#: conf/global_settings.py:67 +msgid "Brazilian" +msgstr "Brasileño" #: conf/global_settings.py:68 -msgid "Brazilian" -msgstr "Brasileo" - -#: conf/global_settings.py:69 msgid "Romanian" msgstr "Rumano" -#: conf/global_settings.py:70 +#: conf/global_settings.py:69 msgid "Russian" msgstr "Ruso" -#: conf/global_settings.py:71 +#: conf/global_settings.py:70 msgid "Slovak" msgstr "Eslovaco" -#: conf/global_settings.py:72 +#: conf/global_settings.py:71 msgid "Slovenian" msgstr "Esloveno" -#: conf/global_settings.py:73 +#: conf/global_settings.py:72 msgid "Serbian" msgstr "Serbio" -#: conf/global_settings.py:74 +#: conf/global_settings.py:73 msgid "Swedish" msgstr "Sueco" -#: conf/global_settings.py:75 +#: conf/global_settings.py:74 msgid "Tamil" msgstr "Tamil" -#: conf/global_settings.py:76 +#: conf/global_settings.py:75 msgid "Telugu" -msgstr "" +msgstr "Telugu" -#: conf/global_settings.py:77 +#: conf/global_settings.py:76 msgid "Turkish" msgstr "Turco" -#: conf/global_settings.py:78 +#: conf/global_settings.py:77 msgid "Ukrainian" msgstr "Ucraniano" -#: conf/global_settings.py:79 +#: conf/global_settings.py:78 msgid "Simplified Chinese" msgstr "Chino simplificado" -#: conf/global_settings.py:80 +#: conf/global_settings.py:79 msgid "Traditional Chinese" msgstr "Chino tradicional" -#: core/validators.py:65 +#: core/validators.py:71 msgid "This value must contain only letters, numbers and underscores." -msgstr "Este valor debe contener slo letras, nmeros y guiones bajos." +msgstr "Este valor debe contener sólo letras, números y guiones bajos." -#: core/validators.py:69 +#: core/validators.py:75 msgid "" "This value must contain only letters, numbers, underscores, dashes or " "slashes." msgstr "" -"Este valor debe contener letras, nmeros, guiones bajos o barras solamente." +"Este valor debe contener letras, números, guiones bajos o barras solamente." -#: core/validators.py:73 +#: core/validators.py:79 msgid "This value must contain only letters, numbers, underscores or hyphens." -msgstr "Este valor debe contener slo letras, nmeros, guiones bajos o medios." +msgstr "Este valor debe contener sólo letras, números, guiones bajos o medios." -#: core/validators.py:77 +#: core/validators.py:83 msgid "Uppercase letters are not allowed here." -msgstr "No se admiten letras maysculas." +msgstr "No se admiten letras mayúsculas." -#: core/validators.py:81 +#: core/validators.py:87 msgid "Lowercase letters are not allowed here." -msgstr "No se admiten letras minsculas." +msgstr "No se admiten letras minúsculas." -#: core/validators.py:88 +#: core/validators.py:94 msgid "Enter only digits separated by commas." -msgstr "Introduzca slo dgitos separados por comas." +msgstr "Introduzca sólo dígitos separados por comas." -#: core/validators.py:100 +#: core/validators.py:106 msgid "Enter valid e-mail addresses separated by commas." -msgstr "Introduzca direcciones de correo vlidas separadas por comas." +msgstr "Introduzca direcciones de correo válidas separadas por comas." -#: core/validators.py:104 +#: core/validators.py:110 msgid "Please enter a valid IP address." -msgstr "Por favor introduzca una direccin IP vlida." +msgstr "Por favor introduzca una dirección IP válida." -#: core/validators.py:108 +#: core/validators.py:114 msgid "Empty values are not allowed here." -msgstr "No se admiten valores vacos." +msgstr "No se admiten valores vacíos." -#: core/validators.py:112 +#: core/validators.py:118 msgid "Non-numeric characters aren't allowed here." -msgstr "No se admiten caracteres no numricos." +msgstr "No se admiten caracteres no numéricos." -#: core/validators.py:116 +#: core/validators.py:122 msgid "This value can't be comprised solely of digits." -msgstr "Este valor no puede comprender slo dgitos." +msgstr "Este valor no puede comprender sólo dígitos." -#: core/validators.py:121 newforms/fields.py:135 +#: core/validators.py:127 newforms/fields.py:141 msgid "Enter a whole number." -msgstr "Introduzca un nmero entero." +msgstr "Introduzca un número entero." -#: core/validators.py:125 +#: core/validators.py:131 msgid "Only alphabetical characters are allowed here." -msgstr "Slo se admiten caracteres alfabticos." +msgstr "Sólo se admiten caracteres alfabéticos." -#: core/validators.py:140 +#: core/validators.py:146 msgid "Year must be 1900 or later." -msgstr "El ao debe ser 1900 o posterior." +msgstr "El año debe ser 1900 o posterior." -#: core/validators.py:144 +#: core/validators.py:150 +#, python-format msgid "Invalid date: %s" -msgstr "Fecha no vlida: %s" +msgstr "Fecha no válida: %s" -#: core/validators.py:154 +#: core/validators.py:160 msgid "Enter a valid time in HH:MM format." -msgstr "Introduzca una hora vlida en formato HH:MM." +msgstr "Introduzca una hora válida en formato HH:MM." -#: core/validators.py:163 newforms/fields.py:339 +#: core/validators.py:169 newforms/fields.py:335 msgid "Enter a valid e-mail address." -msgstr "Introduzca una direccin de correo electrnico vlida" +msgstr "Introduzca una dirección de correo electrónico válida" -#: core/validators.py:179 +#: core/validators.py:181 core/validators.py:461 oldforms/__init__.py:682 +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." + +#: core/validators.py:185 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." msgstr "" -"Enve una imagen vlida. El fichero que ha enviado no era una imagen o se " +"Envíe una imagen válida. El fichero que ha enviado no era una imagen o se " "trataba de una imagen corrupta." -#: core/validators.py:186 +#: core/validators.py:192 #, python-format msgid "The URL %s does not point to a valid image." -msgstr "La URL %s no apunta a una imagen vlida." +msgstr "La URL %s no apunta a una imagen válida." -#: core/validators.py:190 +#: core/validators.py:196 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgstr "" -"Los nmeros de telfono deben guardar el formato XXX-XXX-XXXX. \"%s\" no es " -"vlido." +"Los números de teléfono deben guardar el formato XXX-XXX-XXXX. \"%s\" no es " +"válido." -#: core/validators.py:198 +#: core/validators.py:204 #, python-format msgid "The URL %s does not point to a valid QuickTime video." -msgstr "La URL %s no apunta a un vdeo QuickTime vlido." +msgstr "La URL %s no apunta a un vídeo QuickTime válido." -#: core/validators.py:202 +#: core/validators.py:208 msgid "A valid URL is required." -msgstr "Se precisa una URL vlida." +msgstr "Se precisa una URL válida." -#: core/validators.py:216 +#: core/validators.py:222 #, python-format msgid "" "Valid HTML is required. Specific errors are:\n" "%s" msgstr "" -"Se precisa HTML vlido. Los errores especficos son:\n" +"Se precisa HTML válido. Los errores específicos son:\n" "%s" -#: core/validators.py:223 +#: core/validators.py:229 #, python-format msgid "Badly formed XML: %s" msgstr "XML mal formado: %s" -#: core/validators.py:240 +#: core/validators.py:246 #, python-format msgid "Invalid URL: %s" -msgstr "URL no vlida: %s" +msgstr "URL no válida: %s" -#: core/validators.py:245 core/validators.py:247 +#: 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:253 +#: core/validators.py:259 msgid "Enter a valid U.S. state abbreviation." -msgstr "Introduzca una abreviatura vlida de estado de los EEUU." +msgstr "Introduzca una abreviatura válida de estado de los EEUU." -#: core/validators.py:267 +#: 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." +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:274 +#: 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:293 +#: 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:302 core/validators.py:313 +#: 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 vacos." +msgstr "Por favor, rellene ambos campos o deje ambos vacíos." -#: core/validators.py:321 +#: 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:334 +#: 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:353 +#: core/validators.py:359 msgid "Duplicate values are not allowed." msgstr "No se admiten valores duplicados." -#: core/validators.py:368 +#: 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:370 +#: core/validators.py:376 #, python-format msgid "This value must be at least %s." -msgstr "Este valor debe ser como mnimo %s." +msgstr "Este valor debe ser como mínimo %s." -#: core/validators.py:372 +#: 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:408 +#: 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:417 +#: core/validators.py:424 msgid "Please enter a valid decimal number." -msgstr "Por favor, introduzca un nmero decimal vlido." +msgstr "Por favor, introduzca un número decimal válido." -#: core/validators.py:423 +#: 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 nmero decimal vlido con a lo ms %s dgito en " +"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 nmero decimal vlido con a lo ms %s dgitos en " +"Por favor, introduzca un número decimal válido con a lo más %s dígitos en " "total." -#: core/validators.py:426 +#: 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 nmero decimal vlido con a lo ms %s dgito en su " +"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 nmero decimal vlido con a lo ms %s dgitos en su " +"Por favor, introduzca un número decimal válido con a lo más %s dígitos en su " "parte entera." -#: core/validators.py:429 +#: 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 nmero decimal vlido con a lo ms %s dgito " +"Por favor, introduzca un número decimal válido con a lo más %s dígito " "decimal." msgstr[1] "" -"Por favor, introduzca un nmero decimal vlido con a lo ms %s dgitos " +"Por favor, introduzca un número decimal válido con a lo más %s dígitos " "decimales." -#: core/validators.py:437 -#, fuzzy +#: core/validators.py:445 msgid "Please enter a valid floating point number." -msgstr "Por favor, introduzca un nmero decimal vlido." +msgstr "Por favor, introduzca un número decimal válido." -#: core/validators.py:446 +#: core/validators.py:454 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." -msgstr "Asegrese de que el fichero que enva tiene al menos %s bytes." +msgstr "Asegúrese de que el fichero que envía tiene al menos %s bytes." -#: core/validators.py:447 +#: core/validators.py:455 #, python-format msgid "Make sure your uploaded file is at most %s bytes big." -msgstr "Asegrese de que el fichero que enva tiene como mximo %s bytes." +msgstr "Asegúrese de que el fichero que envía tiene como máximo %s bytes." -#: core/validators.py:464 +#: core/validators.py:472 msgid "The format for this field is wrong." msgstr "El formato de este campo es incorrecto." -#: core/validators.py:479 +#: core/validators.py:487 msgid "This field is invalid." -msgstr "Este campo no es vlido." +msgstr "Este campo no es válido." -#: core/validators.py:515 +#: core/validators.py:523 #, python-format msgid "Could not retrieve anything from %s." msgstr "No pude obtener nada de %s." -#: core/validators.py:518 +#: 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 vlida." +"La URL %(url)s devolvió la cabecera Content-Type '%(contenttype)s', que no " +"es válida." -#: core/validators.py:551 +#: 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 lnea %(line)s. (La lnea " +"Por favor, cierre la etiqueta %(tag)s de la línea %(line)s. (La línea " "empieza por \"%(start)s\".)" -#: core/validators.py:555 +#: 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 lnea %(line)s no est permitido en ese " -"contexto. (La lnea empieza por \"%(start)s\".)" +"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:560 +#: 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 lnea %(line)s no es un atributo vlido. (La lnea " +"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:565 +#: 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 lnea %(line)s no es una etiqueta vlida. (La lnea " +"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:569 +#: 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 lnea %(line)s le faltan uno o ms atributos " -"requeridos. (La lnea empieza por \"%(start)s\".)" +"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:574 +#: 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 lnea %(line)s tiene un valor que no es " -"vlido. (La lnea empieza por \"%(start)s\".)" +"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\".)" -#: views/generic/create_update.py:43 +#: 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:51 contrib/auth/models.py:71 +msgid "name" +msgstr "nombre" + +#: contrib/auth/models.py:53 +msgid "codename" +msgstr "nombre en código" + +#: contrib/auth/models.py:56 +msgid "permission" +msgstr "permiso" + +#: contrib/auth/models.py:57 contrib/auth/models.py:72 +msgid "permissions" +msgstr "permisos" + +#: contrib/auth/models.py:75 +msgid "group" +msgstr "grupo" + +#: contrib/auth/models.py:76 contrib/auth/models.py:116 +msgid "groups" +msgstr "grupos" + +#: contrib/auth/models.py:106 +msgid "username" +msgstr "nombre de usuario" + +#: contrib/auth/models.py:106 +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:107 +msgid "first name" +msgstr "nombre" + +#: contrib/auth/models.py:108 +msgid "last name" +msgstr "apellidos" + +#: contrib/auth/models.py:109 +msgid "e-mail address" +msgstr "dirección de correo" + +#: contrib/auth/models.py:110 +msgid "password" +msgstr "clave" + +#: contrib/auth/models.py:110 +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:111 +msgid "staff status" +msgstr "es staff" + +#: contrib/auth/models.py:111 +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:112 +msgid "active" +msgstr "activo" + +#: contrib/auth/models.py:112 +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:113 +msgid "superuser status" +msgstr "es superusuario" + +#: contrib/auth/models.py:113 +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:114 +msgid "last login" +msgstr "Último registro" + +#: contrib/auth/models.py:115 +msgid "date joined" +msgstr "fecha de creación" + +#: contrib/auth/models.py:117 +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:118 +msgid "user permissions" +msgstr "permisos" + +#: contrib/auth/models.py:122 +msgid "user" +msgstr "usuario" + +#: contrib/auth/models.py:123 +msgid "users" +msgstr "usuarios" + +#: contrib/auth/models.py:129 +msgid "Personal info" +msgstr "Información personal" + +#: contrib/auth/models.py:130 +msgid "Permissions" +msgstr "Permisos" + +#: contrib/auth/models.py:131 +msgid "Important dates" +msgstr "Fechas importantes" + +#: contrib/auth/models.py:132 +msgid "Groups" +msgstr "Grupos" + +#: contrib/auth/models.py:274 +msgid "message" +msgstr "mensaje" + +#: contrib/auth/views.py:41 +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 "The %(verbose_name)s was created successfully." -msgstr "El %(verbose_name)s se ha creado correctamente." +msgid "" +"

By %s:

\n" +"