Commits

Anonymous committed 485180a

[full-history]:
Merged revisions 3642-4724 via svnmerge from
http://code.djangoproject.com/svn/django/trunk

  • Participants
  • Parent commits 7082af0
  • Branches full-history

Comments (0)

Files changed (428)

 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 <http://www.holovaty.com/>, who originally created Django with
 people who have submitted patches, reported bugs, added translations, helped
 answer newbie questions, and generally made Django that much better:
 
-    akaihola
+    adurdin@gmail.com
     Andreas
+    andy@jadedplanet.net
+    ant9000@netwise.it
     David Ascher <http://ascher.ca/>
     Arthur <avandorp@gmail.com>
     Jiri Barton
     Ned Batchelder <http://www.nedbatchelder.com/>
     Shannon -jj Behrens <http://jjinux.blogspot.com/>
+    Esdras Beleza <linux@esdrasbeleza.com>
     James Bennett
+    Ben <afternoon@uk2.net>
     Paul Bissex <http://e-scribe.com/>
     Simon Blanchard
     Andrew Brehaut <http://brehaut.net/blog>
-    andy@jadedplanet.net
+    brut.alll@gmail.com
+    Jonathan Buchanan <jonathan.buchanan@gmail.com>
     Antonio Cavedoni <http://cavedoni.com/>
     C8E
     Chris Chamberlin <dja@cdc.msbx.net>
     Ian Clelland <clelland@gmail.com>
     crankycoder@gmail.com
     Matt Croydon <http://www.postneo.com/>
+    Jure Cuhalev <gandalf@owca.info>
+    dackze+django@gmail.com
+    Dirk Datzert <dummy@habmalnefrage.de>
     Jonathan Daugherty (cygnus) <http://www.cprogrammer.org/>
+    dave@thebarproject.com
     Jason Davies (Esaj) <http://www.jasondavies.com/>
     Alex Dedul
     deric@monowerks.com
     dne@mayonnaise.net
+    Maximillian Dornseif <md@hudora.de>
     Jeremy Dunck <http://dunck.us/>
     Andy Dustman <farcepest@gmail.com>
     Clint Ecker
+    Enrico <rico.bl@gmail.com>
+    Ludvig Ericson <ludvig.ericson@gmail.com>
+    Dirk Eschler <dirk.eschler@gmx.net>
+    Marc Fargas <telenieko@telenieko.com>
+    favo@exoweb.net
+    Eric Floehr <eric@intellovations.com>
+    Jorge Gajon <gajon@gajon.org>
     gandalf@owca.info
     Baishampayan Ghose
     martin.glueck@gmail.com
     Simon Greenhill <dev@simon.net.nz>
+    Owen Griffiths
     Espen Grindhaug <http://grindhaug.org/>
+    Brian Harring <ferringb@gmail.com>
     Brant Harris
+    Hawkeye
+    Joe Heck <http://www.rhonabwy.com/wp/>
+    Joel Heenan <joelh-django@planetjoel.com>
     hipertracker@gmail.com
     Ian Holsman <http://feh.holsman.net/>
     Kieran Holland <http://www.kieranholland.com>
     Robert Rock Howard <http://djangomojo.com/>
     Jason Huggins <http://www.jrandolph.com/blog/>
+    Tom Insam
+    Baurzhan Ismagulov <ibr@radix50.net>
     jcrasta@gmail.com
     Michael Josephson <http://www.sdjournal.com/>
     jpellerin@gmail.com
     junzhang.jn@gmail.com
+    Antti Kaihola <http://akaihola.blogspot.com/>
+    Ben Dean Kawamura <ben.dean.kawamura@gmail.com>
     Garth Kidd <http://www.deadlybloodyserious.com/>
     kilian <kilian.cavalotti@lip6.fr>
     Sune Kirkeby <http://ibofobi.dk/>
+    Bastian Kleineidam <calvin@debian.org>
     Cameron Knight (ckknight)
+    Meir Kriheli <http://mksoft.co.il/>
     Bruce Kroeze <http://coderseye.com/>
     Joseph Kocherhans
     konrad@gwu.edu
     lakin.wecker@gmail.com
     Stuart Langridge <http://www.kryogenix.org/>
+    Nicola Larosa <nico@teknico.net>
     Eugene Lazutkin <http://lazutkin.com/blog/>
+    Jeong-Min Lee <falsetru@gmail.com>
     Christopher Lenz <http://www.cmlenz.net/>
+    lerouxb@gmail.com
+    Waylan Limberg <waylan@gmail.com>
     limodou
+    mattmcc
     Martin Maney <http://www.chipy.org/Martin_Maney>
+    masonsimon+django@gmail.com
     Manuzhai
-    Petar Marić
+    Petar Marić <http://www.petarmaric.com/>
     mark@junklight.com
+    Yasushi Masuda <whosaysni@gmail.com>
     mattycakes@gmail.com
     Jason McBrayer <http://www.carcosa.net/jason/>
+    mccutchen@gmail.com
     michael.mcewan@gmail.com
-    mir@noris.de
+    mikko@sorl.net
+    mitakummaa@gmail.com
     mmarshall
     Eric Moritz <http://eric.themoritzfamily.com/>
     Robin Munn <http://www.geekforgod.com/>
+    Robert Myers <myer0052@gmail.com>
     Nebojša Dorđević
+    Fraser Nevett <mail@nevett.org>
     Sam Newman <http://www.magpiebrain.com/>
     Neal Norwitz <nnorwitz@google.com>
     oggie rob <oz.robharvey@gmail.com>
     Jay Parlar <parlar@gmail.com>
+    pavithran s <pavithran.s@gmail.com>
     pgross@thoughtworks.com
     phaedo <http://phaedo.cx/>
     phil@produxion.net
+    phil.h.smith@gmail.com
     Gustavo Picon
     Luke Plant <http://lukeplant.me.uk/>
     plisk
     Daniel Poelzleithner <http://poelzi.org/>
     J. Rademaker
+    Michael Radziej <mir@noris.de>
+    ramiro
     Brian Ray <http://brianray.chipy.org/>
+    remco@diji.biz
     rhettg@gmail.com
     Oliver Rutherfurd <http://rutherfurd.net/>
     Ivan Sagalaev (Maniac) <http://www.softwaremaniacs.org/>
     David Schein
+    scott@staplefish.com
+    serbaut@gmail.com
+    Pete Shinners <pete@shinners.org>
+    SmileyChris <smileychris@gmail.com>
+    smurf@smurf.noris.de
     sopel
-    Thomas Steinacher <tom@eggdrop.ch>
+    Georgi Stanojevski <glisha@gmail.com>
+    Thomas Steinacher <http://www.eggdrop.ch/>
+    nowell strite
     Radek Švarz <http://www.svarz.cz/translate/>
     Swaroop C H <http://www.swaroopch.info>
     Aaron Swartz <http://www.aaronsw.com/>
+    Tyson Tate <tyson@fallingbullets.com>
     Tom Tobin
-    Tom Insam
     Joe Topjian <http://joe.terrarum.net/geek/code/python/django/>
+    torne-django@wolfpuppy.org.uk
     Karen Tracey <graybark@bellsouth.net>
+    Makoto Tsuyuki <mtsuyuki@gmail.com>
     Amit Upadhyay
     Geert Vanderkelen
+    viestards.lists@gmail.com
     Milton Waddams
+    wam-djangobug@wamber.net
+    Dan Watson <http://theidioteque.net/>
+    Chris Wesseling <Chris.Wesseling@cwi.nl>
     Rachel Willmer <http://www.willmer.com/kb/>
+    Gary Wilson <gary.wilson@gmail.com>
     wojtek
     ye7cakf02@sneakemail.com
+    ymasuda@ethercube.com
     Cheng Zhang
 
 A big THANK YOU goes to:
+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 *
 To get more help:
 
     * Join the #django channel on irc.freenode.net. Lots of helpful people
-      hang out there. Read the archives at http://loglibrary.com/179 .
+      hang out there. Read the archives at http://simon.bofh.ms/logger/django/ .
 
     * Join the django-users mailing list, or read the archives, at
-      http://groups-beta.google.com/group/django-users.
+      http://groups.google.com/group/django-users.
 
 To contribute to Django:
 

django/bin/compile-messages.py

 #!/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')):
         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'):
                 # See http://cyberelk.net/tim/articles/cmdline/ar01s02.html
                 os.environ['djangocompilemo'] = pf + '.mo'
                 os.environ['djangocompilepo'] = pf + '.po'
-                cmd = 'msgfmt -o "$djangocompilemo" "$djangocompilepo"'
+                if sys.platform == 'win32': # Different shell-variable syntax
+                    cmd = 'msgfmt -o "%djangocompilemo%" "%djangocompilepo%"'
+                else:
+                    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()

django/bin/daily_cleanup.py

-"Daily cleanup file"
+#!/usr/bin/env python
+
+"""
+Daily cleanup job.
+
+Can be run as a cronjob to clean out old data from the database (only expired
+sessions at the moment).
+"""
 
 from django.db import backend, connection, transaction
 
-DOCUMENTATION_DIRECTORY = '/home/html/documentation/'
-
 def clean_up():
     # Clean up old database records
     cursor = connection.cursor()
     cursor.execute("DELETE FROM %s WHERE %s < NOW()" % \
-        (backend.quote_name('core_sessions'), backend.quote_name('expire_date')))
-    cursor.execute("DELETE FROM %s WHERE %s < NOW() - INTERVAL '1 week'" % \
-        (backend.quote_name('registration_challenges'), backend.quote_name('request_date')))
+        (backend.quote_name('django_session'), backend.quote_name('expire_date')))
     transaction.commit_unless_managed()
 
 if __name__ == "__main__":

django/bin/make-messages.py

                     src = pythonize_re.sub('\n#', src)
                     open(os.path.join(dirpath, '%s.py' % file), "wb").write(src)
                     thefile = '%s.py' % file
-                    cmd = 'xgettext %s -d %s -L Perl --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy -o - "%s"' % (
+                    cmd = 'xgettext %s -d %s -L Perl --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy --from-code UTF-8 -o - "%s"' % (
                         os.path.exists(potfile) and '--omit-header' or '', domain, os.path.join(dirpath, thefile))
                     (stdin, stdout, stderr) = os.popen3(cmd, 'b')
                     msgs = stdout.read()
                         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 -o - "%s"' % (
+                    cmd = 'xgettext %s -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy --from-code UTF-8 -o - "%s"' % (
                         os.path.exists(potfile) and '--omit-header' or '', domain, os.path.join(dirpath, thefile))
                     (stdin, stdout, stderr) = os.popen3(cmd, 'b')
                     msgs = stdout.read()

django/conf/__init__.py

 """
 
 import os
+import time     # Needed for Windows
 from django.conf import global_settings
 
 ENVIRONMENT_VARIABLE = "DJANGO_SETTINGS_MODULE"
         self.SETTINGS_MODULE = settings_module
 
         try:
-            mod = __import__(self.SETTINGS_MODULE, '', '', [''])
+            mod = __import__(self.SETTINGS_MODULE, {}, {}, [''])
         except ImportError, e:
             raise EnvironmentError, "Could not import settings '%s' (Is it on sys.path? Does it have syntax errors?): %s" % (self.SETTINGS_MODULE, e)
 
         new_installed_apps = []
         for app in self.INSTALLED_APPS:
             if app.endswith('.*'):
-                appdir = os.path.dirname(__import__(app[:-2], '', '', ['']).__file__)
+                appdir = os.path.dirname(__import__(app[:-2], {}, {}, ['']).__file__)
                 for d in os.listdir(appdir):
                     if d.isalpha() and os.path.isdir(os.path.join(appdir, d)):
                         new_installed_apps.append('%s.%s' % (app[:-2], d))
                 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)

django/conf/global_settings.py

 INTERNAL_IPS = ()
 
 # Local time zone for this installation. All choices can be found here:
-# http://www.postgresql.org/docs/current/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE
+# http://www.postgresql.org/docs/8.1/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE
 TIME_ZONE = 'America/Chicago'
 
 # Language code for this installation. All choices can be found here:
 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')),
     ('en', gettext_noop('English')),
     ('es', gettext_noop('Spanish')),
     ('es_AR', gettext_noop('Argentinean Spanish')),
+    ('fi', gettext_noop('Finnish')),
     ('fr', gettext_noop('French')),
     ('gl', gettext_noop('Galician')),
     ('hu', gettext_noop('Hungarian')),
     ('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')),
     ('pt-br', gettext_noop('Brazilian')),
     ('ro', gettext_noop('Romanian')),
     ('ru', gettext_noop('Russian')),
     ('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')),
     ('zh-tw', gettext_noop('Traditional Chinese')),
 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.
 DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
 DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.
+DATABASE_OPTIONS = {}          # Set to empty dictionary for default.
 
 # Host for sending e-mail.
 EMAIL_HOST = 'localhost'
 # http://www.djangoproject.com/documentation/templates/#now
 MONTH_DAY_FORMAT = 'F j'
 
-# Whether to enable Psyco, which optimizes Python code. Requires Psyco.
-# http://psyco.sourceforge.net/
-ENABLE_PSYCO = False
-
 # Do you want to manage transactions manually?
 # Hint: you really don't!
 TRANSACTIONS_MANAGED = False
 
+# The User-Agent string to use when checking for URL validity through the
+# isExistingURL validator.
+URL_VALIDATOR_USER_AGENT = "Django/0.96pre (http://www.djangoproject.com)"
+
 ##############
 # MIDDLEWARE #
 ##############
 
 COMMENTS_ALLOW_PROFANITIES = False
 
+# The profanities that will trigger a validation error in the
+# 'hasNoProfanities' validator. All of these should be in lowercase.
+PROFANITIES_LIST = ('asshat', 'asshead', 'asshole', 'cunt', 'fuck', 'gook', 'nigger', 'shit')
+
 # The group ID that designates which users are banned.
 # Set to None if you're not using it.
 COMMENTS_BANNED_USERS_GROUP = None
 ##################
 
 AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',)
+
+###########
+# TESTING #
+###########
+
+# The name of the method to use to invoke the test suite
+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 = ()

django/conf/locale/ca/LC_MESSAGES/django.mo

Binary file added.

django/conf/locale/ca/LC_MESSAGES/django.po

+# 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 C�rdenes Medina <ricardo.cardenes@gmail.com>, 2005.
+# Ricardo Javier Cardenes Medina <ricardo.cardenes@gmail.com>, 2005.
+# Marc Fargas <marc@fargas.com>, 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 <marc@fargas.com>\n"
+"Language-Team:  <es@li.org>\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 v�lid."
+
+#: db/models/fields/related.py:642
+msgid "Separate multiple IDs with commas."
+msgstr "Separi m�ltiples 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 m�s 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 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."
+
+#: 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 v�lida 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 v�lida en format YYYY-MM-DD HH:MM."
+
+#: db/models/fields/__init__.py:625
+msgid "Enter a valid filename."
+msgstr "Introdueixi un nom de fitxer v�lid."
+
+#: 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 "Gal�s"
+
+#: conf/global_settings.py:44
+msgid "Danish"
+msgstr "Dan�s"
+
+#: 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 "Angl�s"
+
+#: 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 "Dan�s"
+
+#: conf/global_settings.py:51
+msgid "French"
+msgstr "Franc�s"
+
+#: conf/global_settings.py:52
+msgid "Galician"
+msgstr "Galleg"
+
+#: conf/global_settings.py:53
+msgid "Hungarian"
+msgstr "H�ngar"
+
+#: conf/global_settings.py:54
+msgid "Hebrew"
+msgstr "Hebreu"
+
+#: conf/global_settings.py:55
+msgid "Icelandic"
+msgstr "Island�s"
+
+#: conf/global_settings.py:56
+msgid "Italian"
+msgstr "Itali�"
+
+#: conf/global_settings.py:57
+msgid "Japanese"
+msgstr "Japon�s"
+
+#: conf/global_settings.py:58
+msgid "Latvian"
+msgstr ""
+
+#: conf/global_settings.py:59
+msgid "Macedonian"
+msgstr ""
+
+#: conf/global_settings.py:60
+msgid "Dutch"
+msgstr "Holand�s"
+
+#: conf/global_settings.py:61
+msgid "Norwegian"
+msgstr "Norueg"
+
+#: conf/global_settings.py:62
+#, fuzzy
+msgid "Polish"
+msgstr "Angl�s"
+
+#: conf/global_settings.py:63
+msgid "Brazilian"
+msgstr "Brasileny"
+
+#: conf/global_settings.py:64
+msgid "Romanian"
+msgstr "Ruman�s"
+
+#: conf/global_settings.py:65
+msgid "Russian"
+msgstr "R�s"
+
+#: 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 "Xin�s simplificat"
+
+#: conf/global_settings.py:74
+msgid "Traditional Chinese"
+msgstr "Xin�s 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� v�lida; %(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 n�mero enter entre -32,768 i 32,767."
+
+#: oldforms/__init__.py:735
+msgid "Enter a positive number."
+msgstr "Introdueixi un n�mero positiu."
+
+#: oldforms/__init__.py:745
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Introdueixi un n�mero 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 "
+"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 ""
+
+#: 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 "perm�s"
+
+#: 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 "adre�a de correu electr�nic"
+
+#: contrib/auth/models.py:94
+msgid "password"
+msgstr "contrasenya"
+
+#: contrib/auth/models.py:94
+msgid ""
+"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
+"password form</a>."
+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 "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
+#, 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, 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/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 "encap�alament"
+
+#: 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� v�lida"
+
+#: 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 p�blic"
+
+#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304
+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 �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 "adre�a 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