Commits

cl...@bcc190cf-cafb-0310-a4f2-bffc1f526a37  committed f9c57e9

per-object-permissions: Merged to trunk [5486] NOTE: Not fully tested, will be working on this over the next few weeks.

  • Participants
  • Parent commits 6d2cdee
  • Branches per-object-permissions

Comments (0)

Files changed (472)

 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:
 
-    adurdin@gmail.com
-    akaihola
+    alang@bright-green.com
+    Marty Alchin <gulopine@gamemusic.org>
+    Daniel Alves Barbosa de Oliveira Vaz <danielvaz@gmail.com>
     Andreas
+    andy@jadedplanet.net
+    Fabrice Aneche <akh@nobugware.com>
     ant9000@netwise.it
     David Ascher <http://ascher.ca/>
+    david@kazserve.org
     Arthur <avandorp@gmail.com>
+    axiak@mit.edu
     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>
     Amit Chakradeo <http://amit.chakradeo.net/>
     ChaosKCW
+    ivan.chelubeev@gmail.com
+    Bryan Chow <bryan at verdjn dot com>
+    Michal Chruszcz <troll@pld-linux.org>
     Ian Clelland <clelland@gmail.com>
     crankycoder@gmail.com
+    Pete Crosier <pete.crosier@gmail.com>
     Matt Croydon <http://www.postneo.com/>
+    flavio.curella@gmail.com
+    Jure Cuhalev <gandalf@owca.info>
     dackze+django@gmail.com
+    David Danier <goliath.mailinglist@gmx.de>
+    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
+    Max Derkachev <mderk@yandex.ru>
+    Jordan Dimov <s3x3y1@gmail.com>
     dne@mayonnaise.net
     Maximillian Dornseif <md@hudora.de>
-    dummy@habmalnefrage.de
     Jeremy Dunck <http://dunck.us/>
+    Andrew Durdin <adurdin@gmail.com>
     Andy Dustman <farcepest@gmail.com>
     Clint Ecker
+    enlight
     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
+    Bill Fenner <fenner@gmail.com>
+    Matthew Flanagan <http://wadofstuff.blogspot.com>
+    Eric Floehr <eric@intellovations.com>
+    Jorge Gajon <gajon@gajon.org>
     gandalf@owca.info
     Baishampayan Ghose
     martin.glueck@gmail.com
+    GomoX <gomo@datafull.com>
     Simon Greenhill <dev@simon.net.nz>
+    Owen Griffiths
     Espen Grindhaug <http://grindhaug.org/>
+    Brian Harring <ferringb@gmail.com>
     Brant Harris
     Hawkeye
-    heckj@mac.com
+    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>
+    Sung-Jin Hong <serialx.net@gmail.com>
     Robert Rock Howard <http://djangomojo.com/>
     Jason Huggins <http://www.jrandolph.com/blog/>
-	Baurzhan Ismagulov <ibr@radix50.net>
+    Hyun Mi Ae
+    Tom Insam
+    Baurzhan Ismagulov <ibr@radix50.net>
     jcrasta@gmail.com
+    Zak Johnson <zakj@nox.cx>
     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>
+    ian.g.kelly@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)
+    Gasper Koren
+    Martin Kosír <martin@martinkosir.net>
     Meir Kriheli <http://mksoft.co.il/>
     Bruce Kroeze <http://coderseye.com/>
     Joseph Kocherhans
     konrad@gwu.edu
     lakin.wecker@gmail.com
+    Nick Lane <nick.lane.au@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>
+    Jannis Leidel <jl@websushi.org>
     Christopher Lenz <http://www.cmlenz.net/>
     lerouxb@gmail.com
+    Waylan Limberg <waylan@gmail.com>
     limodou
-    mattmcc
+    Matt McClanahan <http://mmcc.cx/>
     Martin Maney <http://www.chipy.org/Martin_Maney>
     masonsimon+django@gmail.com
     Manuzhai
-    Petar Marić
+    Petar Marić <http://www.petarmaric.com/>
+    Nuno Mariz <nmariz@gmail.com>
+    marijn@metronomo.cl
     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
+    mikko@sorl.net
     mitakummaa@gmail.com
     mmarshall
     Eric Moritz <http://eric.themoritzfamily.com/>
+    mrmachine <real.human@mrmachine.net>
     Robin Munn <http://www.geekforgod.com/>
+    Robert Myers <myer0052@gmail.com>
     Nebojša Dorđević
+    Gopal Narayanan <gopastro@gmail.com>
     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>
+    Barry Pederson <bp@barryp.org>
     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/>
+    polpak@yahoo.com
     J. Rademaker
     Michael Radziej <mir@noris.de>
-    ramiro
+    Ramiro Morales <rm0@gmx.net>
+    Massimiliano Ravelli <massimiliano.ravelli@gmail.com>
     Brian Ray <http://brianray.chipy.org/>
+    remco@diji.biz
     rhettg@gmail.com
+    Henrique Romano <onaiort@gmail.com>
+    Armin Ronacher
     Oliver Rutherfurd <http://rutherfurd.net/>
     Ivan Sagalaev (Maniac) <http://www.softwaremaniacs.org/>
+    Vinay Sajip <vinay_sajip@yahoo.co.uk>
     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>
+    Wiliam Alves de Souza <wiliamsouza83@gmail.com>
+    Georgi Stanojevski <glisha@gmail.com>
+    Vasiliy Stavenko <stavenko@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/>
+    Ville Säävuori <http://www.unessa.net/>
     Tyson Tate <tyson@fallingbullets.com>
+    Frank Tegtmeyer <fte@fte.to>
+    thebjorn <bp@datakortet.no>
+    Zach Thompson <zthompson47@gmail.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>
+    tt@gurgle.no
     Amit Upadhyay
     Geert Vanderkelen
+    viestards.lists@gmail.com
     Milton Waddams
     wam-djangobug@wamber.net
+    wangchun <yaohua2000@gmail.com>
     Dan Watson <http://theidioteque.net/>
+    Chris Wesseling <Chris.Wesseling@cwi.nl>
+    James Wheare <django@sparemint.com>
+    charly.wilhelm@gmail.com
     Rachel Willmer <http://www.willmer.com/kb/>
     Gary Wilson <gary.wilson@gmail.com>
     wojtek
+include README
 include AUTHORS
 include INSTALL
 include LICENSE
+include MANIFEST.in
+recursive-include docs *
+recursive-include scripts *
+recursive-include examples *
+recursive-include extras *
 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/databrowse/templates *
+recursive-include django/contrib/sitemaps/templates *

File django/__init__.py

-VERSION = (0, 96, 'pre')
+VERSION = (0, 97, 'pre')
+
+def get_version():
+    "Returns the version as a human-format string."
+    v = '.'.join([str(i) for i in VERSION[:-1]])
+    if VERSION[-1]:
+        v += '-' + VERSION[-1]
+    return v

File 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'):
                 os.environ['djangocompilemo'] = pf + '.mo'
                 os.environ['djangocompilepo'] = pf + '.po'
                 if sys.platform == 'win32': # Different shell-variable syntax
-                    cmd = 'msgfmt -o "%djangocompilemo%" "%djangocompilepo%"'
+                    cmd = 'msgfmt --check-format -o "%djangocompilemo%" "%djangocompilepo%"'
                 else:
-                    cmd = 'msgfmt -o "$djangocompilemo" "$djangocompilepo"'
+                    cmd = 'msgfmt --check-format -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()

File django/bin/daily_cleanup.py

+#!/usr/bin/env python
+
 """
 Daily cleanup job.
 
 sessions at the moment).
 """
 
-from django.db import backend, connection, transaction
+import datetime
+from django.db import transaction
+from django.contrib.sessions.models import Session
 
 def clean_up():
-    # Clean up old database records
-    cursor = connection.cursor()
-    cursor.execute("DELETE FROM %s WHERE %s < NOW()" % \
-        (backend.quote_name('django_session'), backend.quote_name('expire_date')))
+    """Clean up expired sessions."""
+    Session.objects.filter(expire_date__lt=datetime.datetime.now()).delete()
     transaction.commit_unless_managed()
 
 if __name__ == "__main__":

File 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:1,2 --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:1,2 --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()

File django/bin/profiling/gather_profile_stats.py

         else:
             continue
         print "Processing %s" % f
-        if profiles.has_key(path):
+        if path in profiles:
             profiles[path].add(prof)
         else:
             profiles[path] = prof

File django/conf/__init__.py

 """
 
 import os
+import time     # Needed for Windows
 from django.conf import global_settings
 
 ENVIRONMENT_VARIABLE = "DJANGO_SETTINGS_MODULE"
                 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)

File django/conf/global_settings.py

 LANGUAGES = (
     ('ar', gettext_noop('Arabic')),
     ('bn', gettext_noop('Bengali')),
+    ('bg', gettext_noop('Bulgarian')),
+    ('ca', gettext_noop('Catalan')),
     ('cs', gettext_noop('Czech')),
     ('cy', gettext_noop('Welsh')),
     ('da', gettext_noop('Danish')),
     ('is', gettext_noop('Icelandic')),
     ('it', gettext_noop('Italian')),
     ('ja', gettext_noop('Japanese')),
+    ('ko', gettext_noop('Korean')),
+    ('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', gettext_noop('Portugese')),
     ('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')),
 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.
 # Optional SMTP authentication information for EMAIL_HOST.
 EMAIL_HOST_USER = ''
 EMAIL_HOST_PASSWORD = ''
+EMAIL_USE_TLS = False
 
 # List of strings representing installed apps.
 INSTALLED_APPS = ()
     'django.core.context_processors.auth',
     'django.core.context_processors.debug',
     'django.core.context_processors.i18n',
+    'django.core.context_processors.media',
 #    'django.core.context_processors.request',
 )
 
 
 # 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)"
+from django import get_version
+URL_VALIDATOR_USER_AGENT = "Django/%s (http://www.djangoproject.com)" % get_version()
 
 ##############
 # MIDDLEWARE #
 
 AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',)
 
+LOGIN_URL = '/accounts/login/'
+
+LOGOUT_URL = '/accounts/logout/'
+
+LOGIN_REDIRECT_URL = '/accounts/profile/'
+
 ###########
 # TESTING #
 ###########
 # 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
+
+# Strings used to set the character set and collation order for the test
+# database. These values are passed literally to the server, so they are
+# backend-dependent. If None, no special settings are sent (system defaults are
+# used).
+TEST_DATABASE_CHARSET = None
+TEST_DATABASE_COLLATION = None
+
+############
+# FIXTURES #
+############
+
+# The list of directories to search for fixtures
+FIXTURE_DIRS = ()

File django/conf/locale/bg/LC_MESSAGES/django.mo

Binary file added.

File django/conf/locale/bg/LC_MESSAGES/django.po

+# translation of django.po to Bulgarian
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-04-05 01:32+1000\n"
+"PO-Revision-Date: 2007-05-12 17:45+0300\n"
+"Last-Translator: Jordan Dimov <s3x3y1@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: db/models/manipulators.py:307
+#, python-format
+msgid "%(object)s with this %(type)s already exists for the given %(field)s."
+msgstr "%(object)s с този %(type)s вече съществува за зададеното %(field)s.s"
+
+#: db/models/manipulators.py:308 contrib/admin/views/main.py:335
+#: contrib/admin/views/main.py:337 contrib/admin/views/main.py:339
+msgid "and"
+msgstr "и"
+
+#: db/models/fields/related.py:53
+#, python-format
+msgid "Please enter a valid %s."
+msgstr "Въведете валиден %s."
+
+#: db/models/fields/related.py:642
+msgid "Separate multiple IDs with commas."
+msgstr "Множество ID-та се разделят с запетайки"
+
+#: db/models/fields/related.py:644
+msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
+msgstr "Задръжте натиснат клавиша \"Control\" (или \"Command\" на Mac-а) за да направите повече от един избор.  "
+
+#: 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] "Въведете валидни %(self)s ID-та. Стойността %(value)r не е валидна."
+msgstr[1] ""
+
+#: db/models/fields/__init__.py:42
+#, python-format
+msgid "%(optname)s with this %(fieldname)s already exists."
+msgstr "%(optname)s с този %(fieldname)s вече съществува."
+
+#: db/models/fields/__init__.py:117 db/models/fields/__init__.py:274
+#: db/models/fields/__init__.py:610 db/models/fields/__init__.py:621
+#: oldforms/__init__.py:357 newforms/fields.py:80 newforms/fields.py:376
+#: newforms/fields.py:452 newforms/fields.py:463 newforms/models.py:178
+msgid "This field is required."
+msgstr "Това поле е задължително."
+
+#: db/models/fields/__init__.py:367
+msgid "This value must be an integer."
+msgstr "Тази стойност трябва да бъде цяло число"
+
+#: db/models/fields/__init__.py:402
+msgid "This value must be either True or False."
+msgstr "Тази стойност трябва да бъде True или False."
+
+#: db/models/fields/__init__.py:423
+msgid "This field cannot be null."
+msgstr "Това поле не може да има празна стойност."
+
+#: db/models/fields/__init__.py:457 core/validators.py:148
+msgid "Enter a valid date in YYYY-MM-DD format."
+msgstr "Въведете валидна дата в формат ГГГГ-ММ-ДД."
+
+#: db/models/fields/__init__.py:526 core/validators.py:157
+msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
+msgstr "Въведете валидна дата и час в формат ГГГГ-ММ-ДД ЧЧ:ММ."
+
+#: db/models/fields/__init__.py:630
+msgid "Enter a valid filename."
+msgstr "Въведете валидно име на файл."
+
+#: db/models/fields/__init__.py:751
+msgid "This value must be either None, True or False."
+msgstr "Тази стойност трябва да бъде None, True, или False."
+
+#: conf/global_settings.py:39
+msgid "Arabic"
+msgstr "арабски"
+
+#: conf/global_settings.py:40
+msgid "Bengali"
+msgstr "бенгалски"
+
+#: conf/global_settings.py:41
+msgid "Catalan"
+msgstr "каталонски"
+
+#: conf/global_settings.py:42
+msgid "Czech"
+msgstr "чешки"
+
+#: conf/global_settings.py:43
+msgid "Welsh"
+msgstr "уелски"
+
+#: conf/global_settings.py:44
+msgid "Danish"
+msgstr "датски"
+
+#: conf/global_settings.py:45
+msgid "German"
+msgstr "немски"
+
+#: conf/global_settings.py:46
+msgid "Greek"
+msgstr "гръцки"
+
+#: conf/global_settings.py:47
+msgid "English"
+msgstr "английски"
+
+#: conf/global_settings.py:48
+msgid "Spanish"
+msgstr "испански"
+
+#: conf/global_settings.py:49
+msgid "Argentinean Spanish"
+msgstr "аржентински испански"
+
+#: conf/global_settings.py:50
+msgid "Finnish"
+msgstr "финландски"
+
+#: conf/global_settings.py:51
+msgid "French"
+msgstr "френски"
+
+#: conf/global_settings.py:52
+msgid "Galician"
+msgstr "галицейски"
+
+#: conf/global_settings.py:53
+msgid "Hungarian"
+msgstr "унгарски"
+
+#: conf/global_settings.py:54
+msgid "Hebrew"
+msgstr "еврит"
+
+#: conf/global_settings.py:55
+msgid "Icelandic"
+msgstr "исландски"
+
+#: conf/global_settings.py:56
+msgid "Italian"
+msgstr "италиански"
+
+#: conf/global_settings.py:57
+msgid "Japanese"
+msgstr "японски"
+
+#: conf/global_settings.py:58
+msgid "Kannada"
+msgstr "каннада (индийски)"
+
+#: conf/global_settings.py:59
+msgid "Latvian"
+msgstr "латвийски"
+
+#: conf/global_settings.py:60
+msgid "Macedonian"
+msgstr "македонски"
+
+#: conf/global_settings.py:61
+msgid "Dutch"
+msgstr "холандски"
+
+#: conf/global_settings.py:62
+msgid "Norwegian"
+msgstr "норвежки"
+
+#: conf/global_settings.py:63
+msgid "Polish"
+msgstr "полски"
+
+#: conf/global_settings.py:64
+msgid "Portugese"
+msgstr "португалски"
+
+#: conf/global_settings.py:65
+msgid "Brazilian"
+msgstr "бразилски"
+
+#: conf/global_settings.py:66
+msgid "Romanian"
+msgstr "ромънски"
+
+#: conf/global_settings.py:67
+msgid "Russian"
+msgstr "руски"
+
+#: conf/global_settings.py:68
+msgid "Slovak"
+msgstr "словашки"
+
+#: conf/global_settings.py:69
+msgid "Slovenian"
+msgstr "словенски"
+
+#: conf/global_settings.py:70
+msgid "Serbian"
+msgstr "сръбски"
+
+#: conf/global_settings.py:71
+msgid "Swedish"
+msgstr "шведски"
+
+#: conf/global_settings.py:72
+msgid "Tamil"
+msgstr "тамил (индийски)"
+
+#: conf/global_settings.py:73
+msgid "Telugu"
+msgstr "телугу (индийски)"
+
+#: conf/global_settings.py:74
+msgid "Turkish"
+msgstr "турски"
+
+#: conf/global_settings.py:75
+msgid "Ukrainian"
+msgstr "украински"
+
+#: conf/global_settings.py:76
+msgid "Simplified Chinese"
+msgstr "китайски"
+
+#: conf/global_settings.py:77
+msgid "Traditional Chinese"
+msgstr "традиционен китайски"
+
+#: utils/timesince.py:12
+msgid "year"
+msgid_plural "years"
+msgstr[0] "година"
+msgstr[1] "години"
+
+#: utils/timesince.py:13
+msgid "month"
+msgid_plural "months"
+msgstr[0] "месец"
+msgstr[1] "месеци"
+
+#: utils/timesince.py:14
+msgid "week"
+msgid_plural "weeks"
+msgstr[0] "седмица"
+msgstr[1] "седмици"
+
+#: utils/timesince.py:15
+msgid "day"
+msgid_plural "days"
+msgstr[0] "ден"
+msgstr[1] "дни"
+
+#: utils/timesince.py:16
+msgid "hour"
+msgid_plural "hours"
+msgstr[0] "час"
+msgstr[1] "часа"
+
+#: utils/timesince.py:17
+msgid "minute"
+msgid_plural "minutes"
+msgstr[0] "минута"
+msgstr[1] "минути"
+
+#: utils/dates.py:6
+msgid "Monday"
+msgstr "понеделник"
+
+#: utils/dates.py:6
+msgid "Tuesday"
+msgstr "вторник"
+
+#: utils/dates.py:6
+msgid "Wednesday"
+msgstr "сряда"
+
+#: utils/dates.py:6
+msgid "Thursday"
+msgstr "четвъртък"
+
+#: utils/dates.py:6
+msgid "Friday"
+msgstr "петък"
+
+#: utils/dates.py:7
+msgid "Saturday"
+msgstr "събота"
+
+#: utils/dates.py:7
+msgid "Sunday"
+msgstr "неделя"
+
+#: utils/dates.py:14
+msgid "January"
+msgstr "Януари"
+
+#: utils/dates.py:14
+msgid "February"
+msgstr "Февруари"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "March"
+msgstr "Март"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "April"
+msgstr "Април"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "May"
+msgstr "Май"
+
+#: utils/dates.py:14 utils/dates.py:27
+msgid "June"
+msgstr "Юни"
+
+#: utils/dates.py:15 utils/dates.py:27
+msgid "July"
+msgstr "Юли"
+
+#: utils/dates.py:15
+msgid "August"
+msgstr "Август"
+
+#: utils/dates.py:15
+msgid "September"
+msgstr "Септември"
+
+#: utils/dates.py:15
+msgid "October"
+msgstr "Октомври"
+
+#: utils/dates.py:15
+msgid "November"
+msgstr "Ноември"
+
+#: utils/dates.py:16
+msgid "December"
+msgstr "Декември"
+
+#: utils/dates.py:19
+msgid "jan"
+msgstr "яну"
+
+#: utils/dates.py:19
+msgid "feb"
+msgstr "фев"
+
+#: utils/dates.py:19
+msgid "mar"
+msgstr "мар"
+
+#: utils/dates.py:19
+msgid "apr"
+msgstr "апр"
+
+#: utils/dates.py:19
+msgid "may"
+msgstr "май"
+
+#: utils/dates.py:19
+msgid "jun"
+msgstr "юни"
+
+#: utils/dates.py:20
+msgid "jul"
+msgstr "юли"
+
+#: utils/dates.py:20
+msgid "aug"
+msgstr "авг"
+
+#: utils/dates.py:20
+msgid "sep"
+msgstr "сеп"
+
+#: utils/dates.py:20
+msgid "oct"
+msgstr "окт"
+
+#: utils/dates.py:20
+msgid "nov"
+msgstr "ное"
+
+#: utils/dates.py:20
+msgid "dec"
+msgstr "дек"
+
+#: utils/dates.py:27
+msgid "Jan."
+msgstr "Яну."
+
+#: utils/dates.py:27
+msgid "Feb."
+msgstr "Фев."
+
+#: utils/dates.py:28
+msgid "Aug."
+msgstr "Авг."
+
+#: utils/dates.py:28
+msgid "Sept."
+msgstr "Септ."
+
+#: utils/dates.py:28
+msgid "Oct."
+msgstr "Окт."
+
+#: utils/dates.py:28
+msgid "Nov."
+msgstr "Ное."
+
+#: utils/dates.py:28
+msgid "Dec."
+msgstr "Дек."
+
+#: utils/dateformat.py:40
+msgid "p.m."
+msgstr "p.m."
+
+#: utils/dateformat.py:41
+msgid "a.m."
+msgstr "a.m."
+
+#: utils/dateformat.py:46
+msgid "PM"
+msgstr "PM"
+
+#: utils/dateformat.py:47
+msgid "AM"
+msgstr "AM"
+
+#: utils/dateformat.py:95
+msgid "midnight"
+msgstr "полунощ"
+
+#: utils/dateformat.py:97
+msgid "noon"
+msgstr "обяд"
+
+#: utils/translation/trans_real.py:358
+msgid "DATE_FORMAT"
+msgstr "j N, Y"
+
+#: utils/translation/trans_real.py:359
+msgid "DATETIME_FORMAT"
+msgstr "j N, Y, P"
+
+#: utils/translation/trans_real.py:360
+msgid "TIME_FORMAT"
+msgstr "P"
+
+#: utils/translation/trans_real.py:376
+msgid "YEAR_MONTH_FORMAT"
+msgstr "F Y"
+
+#: utils/translation/trans_real.py:377
+msgid "MONTH_DAY_FORMAT"
+msgstr "j F"
+
+#: 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] "Въведеният текст не трябва да надвишава %s символа."
+msgstr[1] ""
+
+#: oldforms/__init__.py:397
+msgid "Line breaks are not allowed here."
+msgstr "Тук не се допускат нови редове."
+
+#: 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 "Направете валиден избор; '%(data)s' не е сред %(choices)s."
+
+#: oldforms/__init__.py:577 contrib/admin/filterspecs.py:150
+#: newforms/widgets.py:174
+msgid "Unknown"
+msgstr "Неизвестно"
+
+#: oldforms/__init__.py:577 contrib/admin/filterspecs.py:143
+#: newforms/widgets.py:174
+msgid "Yes"
+msgstr "Да"
+
+#: oldforms/__init__.py:577 contrib/admin/filterspecs.py:143
+#: newforms/widgets.py:174
+msgid "No"
+msgstr "Не"
+
+#: oldforms/__init__.py:672 core/validators.py:174 core/validators.py:445
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Не е получен файл.  Проверете типът кодиране на формата.  "
+
+#: oldforms/__init__.py:674
+msgid "The submitted file is empty."
+msgstr "Каченият файл е празен.  "
+
+#: oldforms/__init__.py:730
+msgid "Enter a whole number between -32,768 and 32,767."
+msgstr "Въведете цяло число между -32768 и 32767."
+
+#: oldforms/__init__.py:740
+msgid "Enter a positive number."
+msgstr "Въведете положително число.  "
+
+#: oldforms/__init__.py:750
+msgid "Enter a whole number between 0 and 32,767."
+msgstr "Въведете цяло число между 0 и 32767."
+
+#: contrib/localflavor/no/forms.py:15
+msgid "Enter a zip code in the format XXXX."
+msgstr "Въведете пощенски код в формат XXXX."
+
+#: contrib/localflavor/no/forms.py:36
+msgid "Enter a valid Norwegian social security number."
+msgstr "Въведете валиден норвежки номер на социалната осигуровка."
+
+#: contrib/localflavor/it/forms.py:14 contrib/localflavor/fr/forms.py:17
+#: contrib/localflavor/fi/forms.py:14 contrib/localflavor/de/forms.py:16
+msgid "Enter a zip code in the format XXXXX."
+msgstr "Въведете пощенски код в формат XXXXX."
+
+#: contrib/localflavor/jp/forms.py:21
+msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
+msgstr "Въведете пощенски код в формат XXXXXXX или XXX-XXXX."
+
+#: contrib/localflavor/jp/jp_prefectures.py:4
+msgid "Hokkaido"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:5
+msgid "Aomori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:6
+msgid "Iwate"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:7
+msgid "Miyagi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:8
+msgid "Akita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:9
+msgid "Yamagata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:10
+msgid "Fukushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:11
+msgid "Ibaraki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:12
+msgid "Tochigi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:13
+msgid "Gunma"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:14
+msgid "Saitama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:15
+msgid "Chiba"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:16
+msgid "Tokyo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:17
+msgid "Kanagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:18
+msgid "Yamanashi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:19
+msgid "Nagano"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:20
+msgid "Niigata"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:21
+msgid "Toyama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:22
+msgid "Ishikawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:23
+msgid "Fukui"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:24
+msgid "Gifu"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:25
+msgid "Shizuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:26
+msgid "Aichi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:27
+msgid "Mie"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:28
+msgid "Shiga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:29
+msgid "Kyoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:30
+msgid "Osaka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:31
+msgid "Hyogo"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:32
+msgid "Nara"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:33
+msgid "Wakayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:34
+msgid "Tottori"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:35
+msgid "Shimane"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:36
+msgid "Okayama"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:37
+msgid "Hiroshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:38
+msgid "Yamaguchi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:39
+msgid "Tokushima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:40
+msgid "Kagawa"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:41
+msgid "Ehime"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:42
+msgid "Kochi"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:43
+msgid "Fukuoka"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:44
+msgid "Saga"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:45
+msgid "Nagasaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:46
+msgid "Kumamoto"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:47
+msgid "Oita"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:48
+msgid "Miyazaki"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:49
+msgid "Kagoshima"
+msgstr ""
+
+#: contrib/localflavor/jp/jp_prefectures.py:50
+msgid "Okinawa"
+msgstr ""
+
+#: contrib/localflavor/br/forms.py:18
+msgid "Enter a zip code in the format XXXXX-XXX."
+msgstr "Въведете пощенски код в формат XXXXX-XXX."
+
+#: contrib/localflavor/br/forms.py:30
+msgid "Phone numbers must be in XX-XXXX-XXXX format."
+msgstr "Телефонните номера трябва да бъдат в формат XX-XXXX-XXXX.  "
+
+#: contrib/localflavor/fi/forms.py:40 contrib/localflavor/fi/forms.py:46
+msgid "Enter a valid Finnish social security number."
+msgstr "Въведете валиден финландски номер на социалната осигуровка."
+
+#: contrib/localflavor/uk/forms.py:18
+msgid "Enter a postcode. A space is required between the two postcode parts."
+msgstr "Въведете пощенски код.  Между двете части на пощенския код трябва да има разстояние.  "
+
+#: contrib/localflavor/de/forms.py:63
+msgid ""
+"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X "
+"format"
+msgstr "Въведете валиден номер на германска лична карта в формат XXXXXXXXXXX-XXXXXXX-XXXXXXX-X."
+
+#: contrib/localflavor/de/de_states.py:5
+msgid "Baden-Wuerttemberg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:6
+msgid "Bavaria"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:7
+msgid "Berlin"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:8
+msgid "Brandenburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:9
+msgid "Bremen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:10
+msgid "Hamburg"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:11
+msgid "Hessen"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:12
+msgid "Mecklenburg-Western Pomerania"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:13
+msgid "Lower Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:14
+msgid "North Rhine-Westphalia"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:15
+msgid "Rhineland-Palatinate"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:16
+msgid "Saarland"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:17
+msgid "Saxony"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:18
+msgid "Saxony-Anhalt"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:19
+msgid "Schleswig-Holstein"
+msgstr ""
+
+#: contrib/localflavor/de/de_states.py:20
+msgid "Thuringia"
+msgstr ""
+
+#: contrib/localflavor/usa/forms.py:18
+msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX."
+msgstr "Въведете zip код в формат XXXXX или XXXXX-XXXX."
+
+#: contrib/localflavor/usa/forms.py:51
+msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
+msgstr "Въведете валиден номер на социалната осигуровка в формат XXX-XX-XXXX."
+
+#: contrib/sessions/models.py:68
+msgid "session key"
+msgstr "ключ на сесията"
+
+#: contrib/sessions/models.py:69
+msgid "session data"
+msgstr "данни от сесията"
+
+#: contrib/sessions/models.py:70
+msgid "expire date"
+msgstr "дата на валидност"
+
+#: contrib/sessions/models.py:74
+msgid "session"
+msgstr "сесия"
+
+#: contrib/sessions/models.py:75
+msgid "sessions"
+msgstr "сесии"
+
+#: contrib/auth/forms.py:17 contrib/auth/forms.py:138
+msgid "The two password fields didn't match."
+msgstr "Двете полета за паролата не съвпадат.  "
+
+#: contrib/auth/forms.py:25
+msgid "A user with that username already exists."
+msgstr "Потребител с това потребителско име вече съществува.  "
+
+#: contrib/auth/forms.py:53
+msgid ""
+"Your Web browser doesn't appear to have cookies enabled. Cookies are "
+"required for logging in."
+msgstr "Браузерът, който използвате не поддържа cookies, а те са необходими за да можете да се логнете.  "
+
+#: 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 "Въведете правилно потребителско име и парола.  И двете полета правят разлика между малки и големи букви!"
+
+#: 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 "С този email адрес няма обвързан потребителски акаунт.  Сигурни ли сте, че сте се регистрирали?"
+
+#: 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
+msgid "Logged out"
+msgstr "Извън системата"
+
+#: contrib/auth/models.py:38 contrib/auth/models.py:57
+msgid "name"
+msgstr "име"
+
+#: contrib/auth/models.py:40
+msgid "codename"
+msgstr "код"
+
+#: contrib/auth/models.py:42
+msgid "permission"
+msgstr "право"
+
+#: contrib/auth/models.py:43 contrib/auth/models.py:58
+msgid "permissions"
+msgstr "права"
+
+#: contrib/auth/models.py:60
+msgid "group"
+msgstr "група"
+
+#: contrib/auth/models.py:61 contrib/auth/models.py:100
+msgid "groups"
+msgstr "групи"
+
+#: contrib/auth/models.py:90
+msgid "username"
+msgstr "потребител"
+