diff --git a/AUTHORS b/AUTHORS index c7aba07430..4a027fdd6e 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,7 +1,6 @@ Django was originally created in late 2003 at World Online, the Web division of the Lawrence Journal-World newspaper in Lawrence, Kansas. - The PRIMARY AUTHORS are (and/or have been): Adrian Holovaty , who originally created Django with @@ -43,8 +42,8 @@ people who have submitted patches, reported bugs, added translations, helped answer newbie questions, and generally made Django that much better: adurdin@gmail.com - akaihola Andreas + andy@jadedplanet.net ant9000@netwise.it David Ascher Arthur @@ -53,10 +52,12 @@ answer newbie questions, and generally made Django that much better: Shannon -jj Behrens Esdras Beleza James Bennett + Ben Paul Bissex Simon Blanchard Andrew Brehaut - andy@jadedplanet.net + brut.alll@gmail.com + Jonathan Buchanan Antonio Cavedoni C8E Chris Chamberlin @@ -65,42 +66,53 @@ answer newbie questions, and generally made Django that much better: Ian Clelland crankycoder@gmail.com Matt Croydon + Jure Cuhalev dackze+django@gmail.com + Dirk Datzert Jonathan Daugherty (cygnus) + dave@thebarproject.com Jason Davies (Esaj) Alex Dedul deric@monowerks.com dne@mayonnaise.net Maximillian Dornseif - dummy@habmalnefrage.de Jeremy Dunck Andy Dustman Clint Ecker Enrico + Ludvig Ericson + Dirk Eschler + Marc Fargas favo@exoweb.net Eric Floehr gandalf@owca.info Baishampayan Ghose martin.glueck@gmail.com Simon Greenhill + Owen Griffiths Espen Grindhaug + Brian Harring Brant Harris Hawkeye - heckj@mac.com + Joe Heck Joel Heenan hipertracker@gmail.com Ian Holsman Kieran Holland Robert Rock Howard Jason Huggins - Baurzhan Ismagulov + Tom Insam + Baurzhan Ismagulov jcrasta@gmail.com Michael Josephson jpellerin@gmail.com junzhang.jn@gmail.com + Antti Kaihola + Ben Dean Kawamura Garth Kidd kilian Sune Kirkeby + Bastian Kleineidam Cameron Knight (ckknight) Meir Kriheli Bruce Kroeze @@ -108,22 +120,25 @@ answer newbie questions, and generally made Django that much better: konrad@gwu.edu lakin.wecker@gmail.com Stuart Langridge + Nicola Larosa Eugene Lazutkin Jeong-Min Lee Christopher Lenz lerouxb@gmail.com + Waylan Limberg limodou mattmcc Martin Maney masonsimon+django@gmail.com Manuzhai - Petar Marić + Petar Marić mark@junklight.com Yasushi Masuda mattycakes@gmail.com Jason McBrayer mccutchen@gmail.com michael.mcewan@gmail.com + mikko@sorl.net mitakummaa@gmail.com mmarshall Eric Moritz @@ -135,9 +150,11 @@ answer newbie questions, and generally made Django that much better: Neal Norwitz oggie rob Jay Parlar + pavithran s pgross@thoughtworks.com phaedo phil@produxion.net + phil.h.smith@gmail.com Gustavo Picon Luke Plant plisk @@ -146,31 +163,36 @@ answer newbie questions, and generally made Django that much better: Michael Radziej ramiro Brian Ray + remco@diji.biz rhettg@gmail.com Oliver Rutherfurd Ivan Sagalaev (Maniac) David Schein + scott@staplefish.com serbaut@gmail.com Pete Shinners SmileyChris smurf@smurf.noris.de sopel - Thomas Steinacher + Georgi Stanojevski + Thomas Steinacher nowell strite Radek Švarz Swaroop C H Aaron Swartz Tyson Tate Tom Tobin - Tom Insam Joe Topjian + torne-django@wolfpuppy.org.uk Karen Tracey Makoto Tsuyuki Amit Upadhyay Geert Vanderkelen + viestards.lists@gmail.com Milton Waddams wam-djangobug@wamber.net Dan Watson + Chris Wesseling Rachel Willmer Gary Wilson wojtek diff --git a/MANIFEST.in b/MANIFEST.in index b5fbb3cb90..11b60bcc14 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,8 +1,10 @@ include AUTHORS include INSTALL include LICENSE +recursive-include docs * +recursive-include scripts * recursive-include django/conf/locale * -recursive-include django/contrib/admin/templates -recursive-include django/contrib/admin/media -recursive-include django/contrib/comments/templates -recursive-include django/contrib/sitemaps/templates +recursive-include django/contrib/admin/templates * +recursive-include django/contrib/admin/media * +recursive-include django/contrib/comments/templates * +recursive-include django/contrib/sitemaps/templates * diff --git a/django/bin/compile-messages.py b/django/bin/compile-messages.py index 0137ec8dd4..f2193d3122 100755 --- a/django/bin/compile-messages.py +++ b/django/bin/compile-messages.py @@ -1,9 +1,10 @@ #!/usr/bin/env python +import optparse import os import sys -def compile_messages(): +def compile_messages(locale=None): basedir = None if os.path.isdir(os.path.join('conf', 'locale')): @@ -14,6 +15,9 @@ def compile_messages(): print "This script should be run from the Django SVN tree or your project or app tree." sys.exit(1) + if locale is not None: + basedir = os.path.join(basedir, locale, 'LC_MESSAGES') + for dirpath, dirnames, filenames in os.walk(basedir): for f in filenames: if f.endswith('.po'): @@ -32,5 +36,14 @@ def compile_messages(): cmd = 'msgfmt -o "$djangocompilemo" "$djangocompilepo"' os.system(cmd) +def main(): + parser = optparse.OptionParser() + parser.add_option('-l', '--locale', dest='locale', + help="The locale to process. Default is to process all.") + options, args = parser.parse_args() + if len(args): + parser.error("This program takes no arguments") + compile_messages(options.locale) + if __name__ == "__main__": - compile_messages() + main() diff --git a/django/conf/__init__.py b/django/conf/__init__.py index daf5ad766a..021ecc8131 100644 --- a/django/conf/__init__.py +++ b/django/conf/__init__.py @@ -7,6 +7,7 @@ a list of all possible variables. """ import os +import time # Needed for Windows from django.conf import global_settings ENVIRONMENT_VARIABLE = "DJANGO_SETTINGS_MODULE" @@ -105,8 +106,10 @@ class Settings(object): new_installed_apps.append(app) self.INSTALLED_APPS = new_installed_apps - # move the time zone info into os.environ - os.environ['TZ'] = self.TIME_ZONE + if hasattr(time, 'tzset'): + # 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 def get_all_members(self): return dir(self) diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 245096590d..02a882fd99 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -38,6 +38,7 @@ LANGUAGE_CODE = 'en-us' LANGUAGES = ( ('ar', gettext_noop('Arabic')), ('bn', gettext_noop('Bengali')), + ('ca', gettext_noop('Catalan')), ('cs', gettext_noop('Czech')), ('cy', gettext_noop('Welsh')), ('da', gettext_noop('Danish')), @@ -54,6 +55,9 @@ LANGUAGES = ( ('is', gettext_noop('Icelandic')), ('it', gettext_noop('Italian')), ('ja', gettext_noop('Japanese')), + ('kn', gettext_noop('Kannada')), + ('lv', gettext_noop('Latvian')), + ('mk', gettext_noop('Macedonian')), ('nl', gettext_noop('Dutch')), ('no', gettext_noop('Norwegian')), ('pl', gettext_noop('Polish')), @@ -65,6 +69,7 @@ LANGUAGES = ( ('sr', gettext_noop('Serbian')), ('sv', gettext_noop('Swedish')), ('ta', gettext_noop('Tamil')), + ('te', gettext_noop('Telugu')), ('tr', gettext_noop('Turkish')), ('uk', gettext_noop('Ukrainian')), ('zh-cn', gettext_noop('Simplified Chinese')), @@ -95,7 +100,7 @@ SERVER_EMAIL = 'root@localhost' SEND_BROKEN_LINK_EMAILS = False # Database connection info. -DATABASE_ENGINE = '' # 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'. +DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'. DATABASE_NAME = '' # Or path to database file if using sqlite3. DATABASE_USER = '' # Not used with sqlite3. DATABASE_PASSWORD = '' # Not used with sqlite3. @@ -315,3 +320,10 @@ TEST_RUNNER = 'django.test.simple.run_tests' # The name of the database to use for testing purposes. # If None, a name of 'test_' + DATABASE_NAME will be assumed TEST_DATABASE_NAME = None + +############ +# FIXTURES # +############ + +# The list of directories to search for fixtures +FIXTURE_DIRS = () diff --git a/django/conf/locale/ca/LC_MESSAGES/django.mo b/django/conf/locale/ca/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..00cc135c2d Binary files /dev/null and b/django/conf/locale/ca/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/ca/LC_MESSAGES/django.po b/django/conf/locale/ca/LC_MESSAGES/django.po new file mode 100644 index 0000000000..212ecda34a --- /dev/null +++ b/django/conf/locale/ca/LC_MESSAGES/django.po @@ -0,0 +1,2383 @@ +# translation of django.po to +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# +# Ricardo Javier Crdenes Medina , 2005. +# Ricardo Javier Cardenes Medina , 2005. +# Marc Fargas , 2007. +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-02-15 11:05+1100\n" +"PO-Revision-Date: 2007-01-19 10:23+0100\n" +"Last-Translator: Marc Fargas \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: db/models/manipulators.py:305 +#, python-format +msgid "%(object)s with this %(type)s already exists for the given %(field)s." +msgstr "Ja existeix %(object)s amb aquest %(fieldname)s." + +#: db/models/manipulators.py:306 contrib/admin/views/main.py:335 +#: contrib/admin/views/main.py:337 contrib/admin/views/main.py:339 +msgid "and" +msgstr "i" + +#: db/models/fields/related.py:53 +#, python-format +msgid "Please enter a valid %s." +msgstr "Si us plau, introdueixi un %s vlid." + +#: db/models/fields/related.py:642 +msgid "Separate multiple IDs with commas." +msgstr "Separi mltiples IDs amb comes." + +#: db/models/fields/related.py:644 +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "Premi \"Control\" o \"Command\" en un Mac per escollir ms d'un." + +#: db/models/fields/related.py:691 +#, python-format +msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." +msgid_plural "" +"Please enter valid %(self)s IDs. The values %(value)r are invalid." +msgstr[0] "" +"Si us plau, introdueixi IDs de %(self)s vlids. El valor %(value)r s " +"invlid." +msgstr[1] "" +"Si us plau, introdueixi IDs de %(self)s vlids. Els valors %(value)r sn " +"invlids." + +#: db/models/fields/__init__.py:42 +#, python-format +msgid "%(optname)s with this %(fieldname)s already exists." +msgstr "Ja existeix %(optname)s amb auqest %(fieldname)s." + +#: db/models/fields/__init__.py:116 db/models/fields/__init__.py:273 +#: db/models/fields/__init__.py:605 db/models/fields/__init__.py:616 +#: oldforms/__init__.py:352 newforms/fields.py:78 newforms/fields.py:373 +#: newforms/fields.py:449 newforms/fields.py:460 +msgid "This field is required." +msgstr "Aquest camp s obligatori." + +#: db/models/fields/__init__.py:366 +msgid "This value must be an integer." +msgstr "Aquest valor ha de ser un enter." + +#: db/models/fields/__init__.py:401 +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:422 +msgid "This field cannot be null." +msgstr "Aquest camp no pot ser null (estar buit)." + +#: db/models/fields/__init__.py:454 core/validators.py:147 +msgid "Enter a valid date in YYYY-MM-DD format." +msgstr "Introdueixi una data vlida en el forma AAAA-MM-DD." + +#: db/models/fields/__init__.py:521 core/validators.py:156 +msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." +msgstr "Introdueixi un data/hora vlida en format YYYY-MM-DD HH:MM." + +#: db/models/fields/__init__.py:625 +msgid "Enter a valid filename." +msgstr "Introdueixi un nom de fitxer vlid." + +#: conf/global_settings.py:39 +msgid "Arabic" +msgstr "" + +#: conf/global_settings.py:40 +msgid "Bengali" +msgstr "Bengal" + +#: conf/global_settings.py:41 +#, fuzzy +msgid "Catalan" +msgstr "Itali" + +#: conf/global_settings.py:42 +msgid "Czech" +msgstr "Chec" + +#: conf/global_settings.py:43 +msgid "Welsh" +msgstr "Gals" + +#: conf/global_settings.py:44 +msgid "Danish" +msgstr "Dans" + +#: conf/global_settings.py:45 +msgid "German" +msgstr "Alemany" + +#: conf/global_settings.py:46 +msgid "Greek" +msgstr "Grec" + +#: conf/global_settings.py:47 +msgid "English" +msgstr "Angls" + +#: conf/global_settings.py:48 +msgid "Spanish" +msgstr "Espanyol" + +#: conf/global_settings.py:49 +msgid "Argentinean Spanish" +msgstr "" + +#: conf/global_settings.py:50 +#, fuzzy +msgid "Finnish" +msgstr "Dans" + +#: conf/global_settings.py:51 +msgid "French" +msgstr "Francs" + +#: conf/global_settings.py:52 +msgid "Galician" +msgstr "Galleg" + +#: conf/global_settings.py:53 +msgid "Hungarian" +msgstr "Hngar" + +#: conf/global_settings.py:54 +msgid "Hebrew" +msgstr "Hebreu" + +#: conf/global_settings.py:55 +msgid "Icelandic" +msgstr "Islands" + +#: conf/global_settings.py:56 +msgid "Italian" +msgstr "Itali" + +#: conf/global_settings.py:57 +msgid "Japanese" +msgstr "Japons" + +#: conf/global_settings.py:58 +msgid "Latvian" +msgstr "" + +#: conf/global_settings.py:59 +msgid "Macedonian" +msgstr "" + +#: conf/global_settings.py:60 +msgid "Dutch" +msgstr "Holands" + +#: conf/global_settings.py:61 +msgid "Norwegian" +msgstr "Norueg" + +#: conf/global_settings.py:62 +#, fuzzy +msgid "Polish" +msgstr "Angls" + +#: conf/global_settings.py:63 +msgid "Brazilian" +msgstr "Brasileny" + +#: conf/global_settings.py:64 +msgid "Romanian" +msgstr "Rumans" + +#: conf/global_settings.py:65 +msgid "Russian" +msgstr "Rs" + +#: conf/global_settings.py:66 +msgid "Slovak" +msgstr "Eslovac" + +#: conf/global_settings.py:67 +msgid "Slovenian" +msgstr "Esloveni" + +#: conf/global_settings.py:68 +msgid "Serbian" +msgstr "Serbi" + +#: conf/global_settings.py:69 +msgid "Swedish" +msgstr "Suec" + +#: conf/global_settings.py:70 +msgid "Tamil" +msgstr "" + +#: conf/global_settings.py:71 +msgid "Turkish" +msgstr "" + +#: conf/global_settings.py:72 +msgid "Ukrainian" +msgstr "Ucrani" + +#: conf/global_settings.py:73 +msgid "Simplified Chinese" +msgstr "Xins simplificat" + +#: conf/global_settings.py:74 +msgid "Traditional Chinese" +msgstr "Xins tradicional" + +#: utils/timesince.py:12 +msgid "year" +msgid_plural "years" +msgstr[0] "any" +msgstr[1] "anys" + +#: utils/timesince.py:13 +msgid "month" +msgid_plural "months" +msgstr[0] "mes" +msgstr[1] "mesos" + +#: utils/timesince.py:14 +msgid "week" +msgid_plural "weeks" +msgstr[0] "setmana" +msgstr[1] "setmanes" + +#: utils/timesince.py:15 +msgid "day" +msgid_plural "days" +msgstr[0] "dia" +msgstr[1] "dies" + +#: utils/timesince.py:16 +msgid "hour" +msgid_plural "hours" +msgstr[0] "hora" +msgstr[1] "hores" + +#: utils/timesince.py:17 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minut" +msgstr[1] "minuts" + +#: utils/dates.py:6 +msgid "Monday" +msgstr "Dilluns" + +#: utils/dates.py:6 +msgid "Tuesday" +msgstr "Dimarts" + +#: utils/dates.py:6 +msgid "Wednesday" +msgstr "Dimecres" + +#: utils/dates.py:6 +msgid "Thursday" +msgstr "Dijous" + +#: utils/dates.py:6 +msgid "Friday" +msgstr "Divendres" + +#: utils/dates.py:7 +msgid "Saturday" +msgstr "Dissabte" + +#: utils/dates.py:7 +msgid "Sunday" +msgstr "Diumenge" + +#: utils/dates.py:14 +msgid "January" +msgstr "Gener" + +#: utils/dates.py:14 +msgid "February" +msgstr "Febrer" + +#: utils/dates.py:14 utils/dates.py:27 +msgid "March" +msgstr "Mar" + +#: utils/dates.py:14 utils/dates.py:27 +msgid "April" +msgstr "Abril" + +#: utils/dates.py:14 utils/dates.py:27 +msgid "May" +msgstr "Maig" + +#: utils/dates.py:14 utils/dates.py:27 +msgid "June" +msgstr "Juny" + +#: utils/dates.py:15 utils/dates.py:27 +msgid "July" +msgstr "Juliol" + +#: utils/dates.py:15 +msgid "August" +msgstr "Agost" + +#: utils/dates.py:15 +msgid "September" +msgstr "Setembre" + +#: utils/dates.py:15 +msgid "October" +msgstr "Octubre" + +#: utils/dates.py:15 +msgid "November" +msgstr "Novembre" + +#: utils/dates.py:16 +msgid "December" +msgstr "Desembre" + +#: utils/dates.py:19 +msgid "jan" +msgstr "gen" + +#: utils/dates.py:19 +msgid "feb" +msgstr "feb" + +#: utils/dates.py:19 +msgid "mar" +msgstr "mar" + +#: utils/dates.py:19 +msgid "apr" +msgstr "abr" + +#: utils/dates.py:19 +msgid "may" +msgstr "mai" + +#: utils/dates.py:19 +msgid "jun" +msgstr "jun" + +#: utils/dates.py:20 +msgid "jul" +msgstr "jul" + +#: utils/dates.py:20 +msgid "aug" +msgstr "ago" + +#: utils/dates.py:20 +msgid "sep" +msgstr "set" + +#: utils/dates.py:20 +msgid "oct" +msgstr "oct" + +#: utils/dates.py:20 +msgid "nov" +msgstr "nov" + +#: utils/dates.py:20 +msgid "dec" +msgstr "des" + +#: utils/dates.py:27 +msgid "Jan." +msgstr "Gen." + +#: utils/dates.py:27 +msgid "Feb." +msgstr "Feb." + +#: utils/dates.py:28 +msgid "Aug." +msgstr "Ago." + +#: utils/dates.py:28 +msgid "Sept." +msgstr "Set." + +#: utils/dates.py:28 +msgid "Oct." +msgstr "Oct." + +#: utils/dates.py:28 +msgid "Nov." +msgstr "Nov." + +#: utils/dates.py:28 +msgid "Dec." +msgstr "Des." + +#: utils/translation/trans_real.py:362 +msgid "DATE_FORMAT" +msgstr "F j, Y" + +#: utils/translation/trans_real.py:363 +msgid "DATETIME_FORMAT" +msgstr "F j, Y, H:i" + +#: utils/translation/trans_real.py:364 +msgid "TIME_FORMAT" +msgstr "H:i" + +#: utils/translation/trans_real.py:380 +#, fuzzy +msgid "YEAR_MONTH_FORMAT" +msgstr "F j, Y" + +#: utils/translation/trans_real.py:381 +#, fuzzy +msgid "MONTH_DAY_FORMAT" +msgstr "F j, Y" + +#: oldforms/__init__.py:387 +#, python-format +msgid "Ensure your text is less than %s character." +msgid_plural "Ensure your text is less than %s characters." +msgstr[0] "Aseguris de que el seu texte t menys de %s caracter." +msgstr[1] "Aseguris de que el seu texte t menys de %s caracters." + +#: oldforms/__init__.py:392 +msgid "Line breaks are not allowed here." +msgstr "No es permeten salts de linea." + +#: oldforms/__init__.py:493 oldforms/__init__.py:566 oldforms/__init__.py:605 +#, python-format +msgid "Select a valid choice; '%(data)s' is not in %(choices)s." +msgstr "Esculli una opci vlida; %(data)s' no est dintre de %(choices)s." + +#: oldforms/__init__.py:572 contrib/admin/filterspecs.py:150 +#: newforms/widgets.py:162 +msgid "Unknown" +msgstr "Desconegut" + +#: oldforms/__init__.py:572 contrib/admin/filterspecs.py:143 +#: newforms/widgets.py:162 +msgid "Yes" +msgstr "Si" + +#: oldforms/__init__.py:572 contrib/admin/filterspecs.py:143 +#: newforms/widgets.py:162 +msgid "No" +msgstr "No" + +#: oldforms/__init__.py:667 core/validators.py:173 core/validators.py:442 +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" + +#: oldforms/__init__.py:669 +msgid "The submitted file is empty." +msgstr "El fitxer enviat est buit." + +#: oldforms/__init__.py:725 +msgid "Enter a whole number between -32,768 and 32,767." +msgstr "Introdueixi un nmero enter entre -32,768 i 32,767." + +#: oldforms/__init__.py:735 +msgid "Enter a positive number." +msgstr "Introdueixi un nmero positiu." + +#: oldforms/__init__.py:745 +msgid "Enter a whole number between 0 and 32,767." +msgstr "Introdueixi un nmero entre 0 i 32,767." + +#: contrib/sessions/models.py:51 +msgid "session key" +msgstr "clau de la sessi" + +#: contrib/sessions/models.py:52 +msgid "session data" +msgstr "dades de la sessi" + +#: contrib/sessions/models.py:53 +msgid "expire date" +msgstr "data de caducitat" + +#: contrib/sessions/models.py:57 +msgid "session" +msgstr "sessi" + +#: contrib/sessions/models.py:58 +msgid "sessions" +msgstr "sessions" + +#: contrib/auth/forms.py:17 contrib/auth/forms.py:138 +msgid "The two password fields didn't match." +msgstr "" + +#: contrib/auth/forms.py:25 +#, fuzzy +msgid "A user with that username already exists." +msgstr "Ja existeix %(optname)s amb auqest %(fieldname)s." + +#: 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 " +"sn necessries 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 vlids. Tingui en " +"compte que tots dos camps son sensibles a majscules i minscules." + +#: contrib/auth/forms.py:62 +msgid "This account is inactive." +msgstr "" + +#: contrib/auth/forms.py:85 +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:39 +#, fuzzy +msgid "Logged out" +msgstr "Finalitzar sessi" + +#: contrib/auth/models.py:38 contrib/auth/models.py:57 +msgid "name" +msgstr "nom" + +#: contrib/auth/models.py:40 +msgid "codename" +msgstr "nom en clau" + +#: contrib/auth/models.py:42 +msgid "permission" +msgstr "perms" + +#: contrib/auth/models.py:43 contrib/auth/models.py:58 +msgid "permissions" +msgstr "permissos" + +#: contrib/auth/models.py:60 +msgid "group" +msgstr "grup" + +#: contrib/auth/models.py:61 contrib/auth/models.py:100 +msgid "groups" +msgstr "grups" + +#: contrib/auth/models.py:90 +msgid "username" +msgstr "nom d'usuari" + +#: contrib/auth/models.py:90 +msgid "" +"Required. 30 characters or fewer. Alphanumeric characters only (letters, " +"digits and underscores)." +msgstr "" + +#: contrib/auth/models.py:91 +msgid "first name" +msgstr "nom propi" + +#: contrib/auth/models.py:92 +msgid "last name" +msgstr "cognoms" + +#: contrib/auth/models.py:93 +msgid "e-mail address" +msgstr "adrea de correu electrnic" + +#: contrib/auth/models.py:94 +msgid "password" +msgstr "contrasenya" + +#: contrib/auth/models.py:94 +msgid "" +"Use '[algo]$[salt]$[hexdigest]' or use the change " +"password form." +msgstr "" + +#: contrib/auth/models.py:95 +msgid "staff status" +msgstr "s membre del personal" + +#: contrib/auth/models.py:95 +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:96 +msgid "active" +msgstr "actiu" + +#: contrib/auth/models.py:96 +#, fuzzy +msgid "" +"Designates whether this user can log into the Django admin. Unselect this " +"instead of deleting accounts." +msgstr "Indica si l'usuari pot entrar en el lloc administratiu." + +#: contrib/auth/models.py:97 +msgid "superuser status" +msgstr "estat de superusuari" + +#: contrib/auth/models.py:97 +msgid "" +"Designates that this user has all permissions without explicitly assigning " +"them." +msgstr "" + +#: contrib/auth/models.py:98 +msgid "last login" +msgstr "ltim inici de sessi" + +#: contrib/auth/models.py:99 +msgid "date joined" +msgstr "data de creaci" + +#: 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 "" +"Junt amb els permissos asignats manualment, aquest usuari tindr, tamb, els " +"permissos dels grups dels que sigui membre." + +#: contrib/auth/models.py:102 +msgid "user permissions" +msgstr "permissos de l'usuari" + +#: contrib/auth/models.py:105 +msgid "user" +msgstr "usuari" + +#: contrib/auth/models.py:106 +msgid "users" +msgstr "usuaris" + +#: contrib/auth/models.py:111 +msgid "Personal info" +msgstr "Informaci personal" + +#: contrib/auth/models.py:112 +msgid "Permissions" +msgstr "permissos" + +#: contrib/auth/models.py:113 +msgid "Important dates" +msgstr "Dates importants" + +#: contrib/auth/models.py:114 +msgid "Groups" +msgstr "Grups" + +#: contrib/auth/models.py:258 +msgid "message" +msgstr "missatge" + +#: contrib/contenttypes/models.py:26 +msgid "python model class name" +msgstr "nom de la classe del model en python" + +#: contrib/contenttypes/models.py:29 +msgid "content type" +msgstr "tipus de contingut" + +#: contrib/contenttypes/models.py:30 +msgid "content types" +msgstr "tipus de continguts" + +#: 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 "" +"Aquesta ruta hauria de ser el cam absolut, excluint el nom del domini. " +"Exemple '/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 "" +"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 "redirecci" + +#: contrib/redirects/models.py:14 +msgid "redirects" +msgstr "redireccions" + +#: contrib/flatpages/models.py:7 contrib/admin/views/doc.py:315 +msgid "URL" +msgstr "URL" + +#: 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 "ttol" + +#: 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 +#, fuzzy +msgid "" +"Example: 'flatpages/contact_page.html'. If this isn't provided, the system " +"will use 'flatpages/default.html'." +msgstr "" +"Exemple: 'flatpages/contact_page'. Si no el proporciona, el sistema " +"utilitzar 'flatpages/default'." + +#: contrib/flatpages/models.py:14 +msgid "registration required" +msgstr "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, noms els usuaris registrats podran veure la pgina." + +#: contrib/flatpages/models.py:18 +msgid "flat page" +msgstr "pgina esttica" + +#: contrib/flatpages/models.py:19 +msgid "flat pages" +msgstr "pgines esttiques" + +#: contrib/comments/models.py:67 contrib/comments/models.py:166 +msgid "object ID" +msgstr "ID de l'objete" + +#: contrib/comments/models.py:68 +msgid "headline" +msgstr "encapalament" + +#: contrib/comments/models.py:69 contrib/comments/models.py:90 +#: contrib/comments/models.py:167 +msgid "comment" +msgstr "comentari" + +#: contrib/comments/models.py:70 +msgid "rating #1" +msgstr "calificaci 1" + +#: contrib/comments/models.py:71 +msgid "rating #2" +msgstr "calificaci 2" + +#: contrib/comments/models.py:72 +msgid "rating #3" +msgstr "calificaci 3" + +#: contrib/comments/models.py:73 +msgid "rating #4" +msgstr "calificaci 4" + +#: contrib/comments/models.py:74 +msgid "rating #5" +msgstr "calificaci 5" + +#: contrib/comments/models.py:75 +msgid "rating #6" +msgstr "calificaci 6" + +#: contrib/comments/models.py:76 +msgid "rating #7" +msgstr "calificaci 7" + +#: contrib/comments/models.py:77 +msgid "rating #8" +msgstr "calificaci 8" + +#: contrib/comments/models.py:82 +msgid "is valid rating" +msgstr "es calificaci vlida" + +#: contrib/comments/models.py:83 contrib/comments/models.py:169 +msgid "date/time submitted" +msgstr "data/hora d'enviament" + +#: contrib/comments/models.py:84 contrib/comments/models.py:170 +msgid "is public" +msgstr "s pblic" + +#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304 +msgid "IP address" +msgstr "Adrea 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 s inapropiat. 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 +msgid "Content object" +msgstr "Objete Contingut" + +#: contrib/comments/models.py:159 +#, python-format +msgid "" +"Posted by %(user)s at %(date)s\n" +"\n" +"%(comment)s\n" +"\n" +"http://%(domain)s%(url)s" +msgstr "" +"Enviat per %(user)s el %(date)s\n" +"\n" +"%(comment)s\n" +"\n" +"http://%(domain)s%(url)s" + +#: contrib/comments/models.py:168 +msgid "person's name" +msgstr "nom de la persona" + +#: contrib/comments/models.py:171 +msgid "ip address" +msgstr "adrea ip" + +#: contrib/comments/models.py:173 +msgid "approved by staff" +msgstr "aprovat per el \"staff\"" + +#: contrib/comments/models.py:176 +msgid "free comment" +msgstr "comentari lliure" + +#: contrib/comments/models.py:177 +msgid "free comments" +msgstr "comentaris lliures" + +#: contrib/comments/models.py:233 +msgid "score" +msgstr "puntuaci" + +#: contrib/comments/models.py:234 +msgid "score date" +msgstr "data de la puntuaci" + +#: contrib/comments/models.py:237 +msgid "karma score" +msgstr "puntuaci de karma" + +#: contrib/comments/models.py:238 +msgid "karma scores" +msgstr "punts de karma" + +#: contrib/comments/models.py:242 +#, python-format +msgid "%(score)d rating by %(user)s" +msgstr "%(score)d punt per %(user)s" + +#: contrib/comments/models.py:258 +#, python-format +msgid "" +"This comment was flagged by %(user)s:\n" +"\n" +"%(text)s" +msgstr "" +"Aquest comentari va ser marcat per %(user)s:\n" +"\n" +"%(text)s" + +#: contrib/comments/models.py:265 +msgid "flag date" +msgstr "data de la marca" + +#: contrib/comments/models.py:268 +msgid "user flag" +msgstr "marca d'usuari" + +#: contrib/comments/models.py:269 +msgid "user flags" +msgstr "marques d'usuari" + +#: contrib/comments/models.py:273 +#, python-format +msgid "Flag by %r" +msgstr "Marca de %r" + +#: contrib/comments/models.py:278 +msgid "deletion date" +msgstr "data d'eliminaci" + +#: contrib/comments/models.py:280 +msgid "moderator deletion" +msgstr "eliminaci del moderador" + +#: contrib/comments/models.py:281 +msgid "moderator deletions" +msgstr "eliminacions del moderador" + +#: contrib/comments/models.py:285 +#, python-format +msgid "Moderator deletion by %r" +msgstr "eliminaci del moderador per %r" + +#: 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/templates/comments/form.html:6 +#: contrib/admin/templates/admin_doc/bookmarklets.html:4 +#: contrib/admin/templates/admin_doc/missing_docutils.html:4 +#: contrib/admin/templates/admin_doc/view_detail.html:4 +#: contrib/admin/templates/admin_doc/template_filter_index.html:5 +#: contrib/admin/templates/admin_doc/view_index.html:5 +#: contrib/admin/templates/admin_doc/template_tag_index.html:5 +#: contrib/admin/templates/admin_doc/model_detail.html:3 +#: contrib/admin/templates/admin_doc/model_index.html:5 +#: contrib/admin/templates/admin_doc/index.html:4 +#: contrib/admin/templates/admin_doc/template_detail.html:4 +#: contrib/admin/templates/admin/object_history.html:3 +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/change_list.html:5 +#: contrib/admin/templates/admin/change_form.html:10 +#: 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 +msgid "Log out" +msgstr "Finalitzar sessi" + +#: contrib/comments/templates/comments/form.html:8 +#: contrib/admin/templates/admin/login.html:20 +msgid "Password:" +msgstr "Contrasenya:" + +#: contrib/comments/templates/comments/form.html:8 +msgid "Forgotten your password?" +msgstr "Contrasenya oblidada?" + +#: contrib/comments/templates/comments/form.html:12 +msgid "Ratings" +msgstr "Calificacions" + +#: contrib/comments/templates/comments/form.html:12 +#: contrib/comments/templates/comments/form.html:23 +msgid "Required" +msgstr "Requerit" + +#: contrib/comments/templates/comments/form.html:12 +#: contrib/comments/templates/comments/form.html:23 +msgid "Optional" +msgstr "Opcional" + +#: contrib/comments/templates/comments/form.html:23 +msgid "Post a photo" +msgstr "Enviar una fotografia" + +#: 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/comments/views/karma.py:19 +msgid "Anonymous users cannot vote" +msgstr "Els usuaris annims no poden votar" + +#: contrib/comments/views/karma.py:23 +msgid "Invalid comment ID" +msgstr "ID del comentari invlid" + +#: contrib/comments/views/karma.py:25 +msgid "No voting for yourself" +msgstr "No pots votar-te a tu mateix" + +#: 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 introduit 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" +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 el va enviar un usuari que ha enviat menys de %(count)s " +"comentari:\n" +"\n" +"%(text)s" +msgstr[1] "" +"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 incomplert\n" +"\n" +"%(text)s" + +#: contrib/comments/views/comments.py:188 +#: contrib/comments/views/comments.py:280 +msgid "Only POSTs are allowed" +msgstr "Noms 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 ms dels caps requerits no ha estat sotms" + +#: 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 parmetre 'target' invlid -- el ID del " +"objecte era invlid" + +#: 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 proveit ni 'previsualitzar' ni 'enviar'" + +#: 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/admin/filterspecs.py:40 +#, python-format +msgid "" +"

By %s:

\n" +"