diff --git a/AUTHORS b/AUTHORS index 58179e111a7f..976e5ae09a83 100644 --- a/AUTHORS +++ b/AUTHORS @@ -16,6 +16,8 @@ The PRIMARY AUTHORS are (and/or have been): * Brian Rosner * Justin Bronn * Karen Tracey + * Jannis Leidel + * James Tauber More information on the main contributors to Django can be found in docs/internals/committers.txt. @@ -24,6 +26,7 @@ And here is an inevitably incomplete list of MUCH-APPRECIATED CONTRIBUTORS -- people who have submitted patches, reported bugs, added translations, helped answer newbie questions, and generally made Django that much better: + Gisle Aas ajs alang@bright-green.com Marty Alchin @@ -52,6 +55,7 @@ answer newbie questions, and generally made Django that much better: Niran Babalola Morten Bagai Mikaël Barbero + Randy Barlow Scott Barr Jiri Barton Ned Batchelder @@ -64,7 +68,7 @@ answer newbie questions, and generally made Django that much better: James Bennett Julian Bez Arvis Bickovskis - Natalia Bidart + Natalia Bidart Paul Bissex Simon Blanchard David Blewett @@ -132,7 +136,7 @@ answer newbie questions, and generally made Django that much better: Andrew Durdin dusk@woofle.net Andy Dustman - J. Clifford Dyer + J. Clifford Dyer Clint Ecker Nick Efford eibaan@gmail.com @@ -168,6 +172,7 @@ answer newbie questions, and generally made Django that much better: Alex Gaynor Andy Gayton Idan Gazit + geber@datacollect.com Baishampayan Ghose Dimitris Glezos glin@seznam.cz @@ -177,11 +182,13 @@ answer newbie questions, and generally made Django that much better: GomoX Guilherme Mesquita Gondim Mario Gonzalez + David Gouldin pradeep.gowda@gmail.com Collin Grady Simon Greenhill Owen Griffiths Espen Grindhaug + Janos Guljas Thomas Güttler Horst Gutmann Scot Hacker @@ -202,6 +209,7 @@ answer newbie questions, and generally made Django that much better: Kieran Holland Sung-Jin Hong Leo "hylje" Honkanen + Tareque Hossain Richard House Robert Rock Howard John Huddleston @@ -261,11 +269,11 @@ answer newbie questions, and generally made Django that much better: Finn Gruwier Larsen Lau Bech Lauritzen Rune Rønde Laursen + Mark Lavin Eugene Lazutkin lcordier@point45.com Jeong-Min Lee Tai Lee - Jannis Leidel Christopher Lenz lerouxb@gmail.com Piotr Lewandowski @@ -295,6 +303,7 @@ answer newbie questions, and generally made Django that much better: Jason McBrayer Kevin McConnell mccutchen@gmail.com + Paul McLanahan Christian Metts michael.mcewan@gmail.com michal@plovarna.cz @@ -374,8 +383,10 @@ answer newbie questions, and generally made Django that much better: Vinay Sajip Kadesarin Sanjek Massimo Scamarcia + Paulo Scardine David Schein Bernd Schlapsi + schwank@gmail.com scott@staplefish.com Ilya Semenov serbaut@gmail.com @@ -388,6 +399,7 @@ answer newbie questions, and generally made Django that much better: Ben Slavin sloonz SmileyChris + Paul Smith Warren Smith smurf@smurf.noris.de Vsevolod Solovyov @@ -401,7 +413,7 @@ answer newbie questions, and generally made Django that much better: Vasiliy Stavenko Thomas Steinacher Johan C. Stöver - nowell strite + Nowell Strite Thomas Stromberg Pascal Varet SuperJared @@ -420,7 +432,7 @@ answer newbie questions, and generally made Django that much better: Travis Terry thebjorn Zach Thompson - Michael Thornhill + Michael Thornhill Deepak Thukral tibimicu@gmx.net tobias@neuyork.de @@ -433,6 +445,7 @@ answer newbie questions, and generally made Django that much better: tt@gurgle.no David Tulig Amit Upadhyay + Adam Vandenberg Geert Vanderkelen Vasil Vangelovski I.S. van Oostveen diff --git a/INSTALL b/INSTALL index 9b79ec016b5c..e4f1f635821a 100644 --- a/INSTALL +++ b/INSTALL @@ -5,9 +5,6 @@ this command from the command prompt: python setup.py install -Note this requires a working Internet connection if you don't already have the -Python utility "setuptools" installed. - AS AN ALTERNATIVE, you can just copy the entire "django" directory to Python's site-packages directory, which is located wherever your Python installation lives. Some places you might check are: @@ -16,7 +13,4 @@ lives. Some places you might check are: /usr/lib/python2.3/site-packages (Unix, Python 2.3) C:\\PYTHON\site-packages (Windows) -This second solution does not require a working Internet connection; it -bypasses "setuptools" entirely. - For more detailed instructions, see docs/intro/install.txt. diff --git a/README b/README index 720b6c76df78..e748d9b7d060 100644 --- a/README +++ b/README @@ -11,8 +11,7 @@ how we recommend you read the docs: docs/intro/tutorial02.txt, etc.). * If you want to set up an actual deployment server, read - docs/howto/deployment/modpython.txt for instructions on running Django - under mod_python. + docs/howto/deployment/index.txt for instructions. * You'll probably want to read through the topical guides (in docs/topics) next; from there you can jump to the HOWTOs (in docs/howto) for specific @@ -27,7 +26,7 @@ http://code.djangoproject.com/newticket To get more help: * Join the #django channel on irc.freenode.net. Lots of helpful people - hang out there. Read the archives at http://oebfare.com/logger/django/. + hang out there. Read the archives at http://botland.oebfare.com/logger/django/. * Join the django-users mailing list, or read the archives, at http://groups.google.com/group/django-users. diff --git a/django/__init__.py b/django/__init__.py index 2b87a7e242e0..fc55965a20e8 100644 --- a/django/__init__.py +++ b/django/__init__.py @@ -1,4 +1,4 @@ -VERSION = (1, 2, 0, 'alpha', 0) +VERSION = (1, 1, 4, 'final', 0) def get_version(): version = '%s.%s' % (VERSION[0], VERSION[1]) diff --git a/django/conf/__init__.py b/django/conf/__init__.py index 7bc7ae95083f..e0874cc0aca0 100644 --- a/django/conf/__init__.py +++ b/django/conf/__init__.py @@ -102,7 +102,7 @@ def __init__(self, settings_module): new_installed_apps.append(app) self.INSTALLED_APPS = new_installed_apps - if hasattr(time, 'tzset'): + if hasattr(time, 'tzset') and getattr(self, 'TIME_ZONE'): # 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 diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 99fc72e468b4..2abd082b4fb8 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -42,8 +42,9 @@ # should be the utf-8 encoded local name for the language. LANGUAGES = ( ('ar', gettext_noop('Arabic')), - ('bn', gettext_noop('Bengali')), ('bg', gettext_noop('Bulgarian')), + ('bn', gettext_noop('Bengali')), + ('bs', gettext_noop('Bosnian')), ('ca', gettext_noop('Catalan')), ('cs', gettext_noop('Czech')), ('cy', gettext_noop('Welsh')), @@ -52,27 +53,28 @@ ('el', gettext_noop('Greek')), ('en', gettext_noop('English')), ('es', gettext_noop('Spanish')), - ('et', gettext_noop('Estonian')), ('es-ar', gettext_noop('Argentinean Spanish')), + ('et', gettext_noop('Estonian')), ('eu', gettext_noop('Basque')), ('fa', gettext_noop('Persian')), ('fi', gettext_noop('Finnish')), ('fr', gettext_noop('French')), + ('fy-nl', gettext_noop('Frisian')), ('ga', gettext_noop('Irish')), ('gl', gettext_noop('Galician')), - ('hu', gettext_noop('Hungarian')), ('he', gettext_noop('Hebrew')), ('hi', gettext_noop('Hindi')), ('hr', gettext_noop('Croatian')), + ('hu', gettext_noop('Hungarian')), ('is', gettext_noop('Icelandic')), ('it', gettext_noop('Italian')), ('ja', gettext_noop('Japanese')), ('ka', gettext_noop('Georgian')), - ('ko', gettext_noop('Korean')), ('km', gettext_noop('Khmer')), ('kn', gettext_noop('Kannada')), - ('lv', gettext_noop('Latvian')), + ('ko', gettext_noop('Korean')), ('lt', gettext_noop('Lithuanian')), + ('lv', gettext_noop('Latvian')), ('mk', gettext_noop('Macedonian')), ('nl', gettext_noop('Dutch')), ('no', gettext_noop('Norwegian')), @@ -83,7 +85,9 @@ ('ru', gettext_noop('Russian')), ('sk', gettext_noop('Slovak')), ('sl', gettext_noop('Slovenian')), + ('sq', gettext_noop('Albanian')), ('sr', gettext_noop('Serbian')), + ('sr-latn', gettext_noop('Serbian Latin')), ('sv', gettext_noop('Swedish')), ('ta', gettext_noop('Tamil')), ('te', gettext_noop('Telugu')), diff --git a/django/conf/locale/bs/LC_MESSAGES/django.mo b/django/conf/locale/bs/LC_MESSAGES/django.mo new file mode 100644 index 000000000000..ee2204a9fc91 Binary files /dev/null and b/django/conf/locale/bs/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/bs/LC_MESSAGES/django.po b/django/conf/locale/bs/LC_MESSAGES/django.po new file mode 100644 index 000000000000..eb335b419667 --- /dev/null +++ b/django/conf/locale/bs/LC_MESSAGES/django.po @@ -0,0 +1,1839 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-03-04 14:18-0500\n" +"PO-Revision-Date: 2009-03-30 11:45-0500\n" +"Last-Translator: Tim Langeman \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: conf/global_settings.py:44 +msgid "Arabic" +msgstr "" + +#: conf/global_settings.py:45 +msgid "Bengali" +msgstr "" + +#: conf/global_settings.py:46 +msgid "Bulgarian" +msgstr "" + +#: conf/global_settings.py:47 +msgid "Catalan" +msgstr "" + +#: conf/global_settings.py:48 +msgid "Czech" +msgstr "" + +#: conf/global_settings.py:49 +msgid "Welsh" +msgstr "" + +#: conf/global_settings.py:50 +msgid "Danish" +msgstr "" + +#: conf/global_settings.py:51 +msgid "German" +msgstr "" + +#: conf/global_settings.py:52 +msgid "Greek" +msgstr "" + +#: conf/global_settings.py:53 +msgid "English" +msgstr "" + +#: conf/global_settings.py:54 +msgid "Spanish" +msgstr "" + +#: conf/global_settings.py:55 +msgid "Estonian" +msgstr "" + +#: conf/global_settings.py:56 +msgid "Argentinean Spanish" +msgstr "" + +#: conf/global_settings.py:57 +msgid "Basque" +msgstr "" + +#: conf/global_settings.py:58 +msgid "Persian" +msgstr "" + +#: conf/global_settings.py:59 +msgid "Finnish" +msgstr "" + +#: conf/global_settings.py:60 +msgid "French" +msgstr "" + +#: conf/global_settings.py:61 +msgid "Irish" +msgstr "" + +#: conf/global_settings.py:62 +msgid "Galician" +msgstr "" + +#: conf/global_settings.py:63 +msgid "Hungarian" +msgstr "" + +#: conf/global_settings.py:64 +msgid "Hebrew" +msgstr "" + +#: conf/global_settings.py:65 +msgid "Croatian" +msgstr "" + +#: conf/global_settings.py:66 +msgid "Icelandic" +msgstr "" + +#: conf/global_settings.py:67 +msgid "Italian" +msgstr "" + +#: conf/global_settings.py:68 +msgid "Japanese" +msgstr "" + +#: conf/global_settings.py:69 +msgid "Georgian" +msgstr "" + +#: conf/global_settings.py:70 +msgid "Korean" +msgstr "" + +#: conf/global_settings.py:71 +msgid "Khmer" +msgstr "" + +#: conf/global_settings.py:72 +msgid "Kannada" +msgstr "" + +#: conf/global_settings.py:73 +msgid "Latvian" +msgstr "" + +#: conf/global_settings.py:74 +msgid "Lithuanian" +msgstr "" + +#: conf/global_settings.py:75 +msgid "Macedonian" +msgstr "" + +#: conf/global_settings.py:76 +msgid "Dutch" +msgstr "" + +#: conf/global_settings.py:77 +msgid "Norwegian" +msgstr "" + +#: conf/global_settings.py:78 +msgid "Polish" +msgstr "" + +#: conf/global_settings.py:79 +msgid "Portugese" +msgstr "" + +#: conf/global_settings.py:80 +msgid "Brazilian Portuguese" +msgstr "" + +#: conf/global_settings.py:81 +msgid "Romanian" +msgstr "" + +#: conf/global_settings.py:82 +msgid "Russian" +msgstr "" + +#: conf/global_settings.py:83 +msgid "Slovak" +msgstr "" + +#: conf/global_settings.py:84 +msgid "Slovenian" +msgstr "" + +#: conf/global_settings.py:85 +msgid "Serbian" +msgstr "" + +#: conf/global_settings.py:86 +msgid "Swedish" +msgstr "" + +#: conf/global_settings.py:87 +msgid "Tamil" +msgstr "" + +#: conf/global_settings.py:88 +msgid "Telugu" +msgstr "" + +#: conf/global_settings.py:89 +msgid "Turkish" +msgstr "" + +#: conf/global_settings.py:90 +msgid "Ukrainian" +msgstr "" + +#: conf/global_settings.py:91 +msgid "Simplified Chinese" +msgstr "" + +#: conf/global_settings.py:92 +msgid "Traditional Chinese" +msgstr "" + +#: contrib/admin/filterspecs.py:44 +#, python-format +msgid "" +"

By %s:

\n" +"
    \n" +msgstr "" + +#: contrib/admin/filterspecs.py:74 +#: contrib/admin/filterspecs.py:92 +#: contrib/admin/filterspecs.py:147 +#: contrib/admin/filterspecs.py:173 +msgid "All" +msgstr "" + +#: contrib/admin/filterspecs.py:113 +msgid "Any date" +msgstr "" + +#: contrib/admin/filterspecs.py:114 +msgid "Today" +msgstr "" + +#: contrib/admin/filterspecs.py:117 +msgid "Past 7 days" +msgstr "" + +#: contrib/admin/filterspecs.py:119 +msgid "This month" +msgstr "" + +#: contrib/admin/filterspecs.py:121 +msgid "This year" +msgstr "" + +#: contrib/admin/filterspecs.py:147 +#: forms/widgets.py:391 +msgid "Yes" +msgstr "" + +#: contrib/admin/filterspecs.py:147 +#: forms/widgets.py:391 +msgid "No" +msgstr "" + +#: contrib/admin/filterspecs.py:154 +#: forms/widgets.py:391 +msgid "Unknown" +msgstr "" + +#: contrib/admin/models.py:19 +msgid "action time" +msgstr "" + +#: contrib/admin/models.py:25 +msgid "change message" +msgstr "" + +#: contrib/admin/models.py:28 +msgid "log entry" +msgstr "" + +#: contrib/admin/models.py:29 +msgid "log entries" +msgstr "" + +#: contrib/admin/options.py:60 +#: contrib/admin/options.py:121 +msgid "None" +msgstr "" + +#: contrib/admin/options.py:338 +#, python-format +msgid "Changed %s." +msgstr "" + +#: contrib/admin/options.py:338 +#: contrib/admin/options.py:348 +#: core/validators.py:283 +#: forms/models.py:275 +msgid "and" +msgstr "" + +#: contrib/admin/options.py:646 +msgid "Database error" +msgstr "" + +#: contrib/admin/options.py:703 +msgid "Are you sure?" +msgstr "" + +#: contrib/admin/sites.py:16 +#: contrib/admin/views/decorators.py:14 +#: contrib/auth/forms.py:80 +msgid "Please enter a correct username and password. Note that both fields are case-sensitive." +msgstr "" + +#: contrib/admin/sites.py:227 +#: contrib/admin/views/decorators.py:40 +msgid "Please log in again, because your session has expired." +msgstr "" + +#: contrib/admin/sites.py:234 +#: contrib/admin/views/decorators.py:47 +msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again." +msgstr "" + +#: contrib/admin/sites.py:250 +#: contrib/admin/sites.py:256 +#: contrib/admin/views/decorators.py:66 +msgid "Usernames cannot contain the '@' character." +msgstr "" + +#: contrib/admin/sites.py:253 +#: contrib/admin/views/decorators.py:62 +#, python-format +msgid "Your e-mail address is not your username. Try '%s' instead." +msgstr "" + +#: contrib/admin/sites.py:326 +#: contrib/admin/templates/admin/login.html:26 +#: contrib/admin/templates/registration/password_reset_complete.html:14 +#: contrib/admin/views/decorators.py:20 +msgid "Log in" +msgstr "Prijava" + +#: contrib/admin/sites.py:373 +#, python-format +msgid "%s administration" +msgstr "" + +#: contrib/admin/widgets.py:70 +msgid "Date:" +msgstr "" + +#: contrib/admin/widgets.py:70 +msgid "Time:" +msgstr "" + +#: contrib/admin/widgets.py:94 +msgid "Currently:" +msgstr "" + +#: contrib/admin/widgets.py:94 +msgid "Change:" +msgstr "" + +#: contrib/admin/widgets.py:123 +msgid "Lookup" +msgstr "" + +#: contrib/admin/widgets.py:230 +msgid "Add Another" +msgstr "" + +#: contrib/admin/templates/admin/404.html:4 +#: contrib/admin/templates/admin/404.html:8 +msgid "Page not found" +msgstr "" + +#: contrib/admin/templates/admin/404.html:10 +msgid "We're sorry, but the requested page could not be found." +msgstr "" + +#: contrib/admin/templates/admin/500.html:4 +#: contrib/admin/templates/admin/app_index.html:8 +#: contrib/admin/templates/admin/base copy.html:106 +#: contrib/admin/templates/admin/base.html:123 +#: contrib/admin/templates/admin/change_form.html:17 +#: contrib/admin/templates/admin/change_list.html:8 +#: contrib/admin/templates/admin/delete_confirmation.html:6 +#: contrib/admin/templates/admin/invalid_setup.html:4 +#: contrib/admin/templates/admin/object_history.html:6 +#: contrib/admin/templates/admin/auth/user/change_password.html:10 +#: contrib/admin/templates/registration/logged_out.html:4 +#: contrib/admin/templates/registration/password_change_done.html:4 +#: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admin/templates/registration/password_reset_complete.html:4 +#: contrib/admin/templates/registration/password_reset_confirm.html:4 +#: contrib/admin/templates/registration/password_reset_done.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 +msgid "Home" +msgstr "" + +#: contrib/admin/templates/admin/500.html:4 +msgid "Server error" +msgstr "" + +#: contrib/admin/templates/admin/500.html:6 +msgid "Server error (500)" +msgstr "" + +#: contrib/admin/templates/admin/500.html:9 +msgid "Server Error (500)" +msgstr "" + +#: contrib/admin/templates/admin/500.html:10 +msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience." +msgstr "" + +#: contrib/admin/templates/admin/app_index.html:10 +#: contrib/admin/templates/admin/index.html:19 +#, python-format +msgid "%(name)s" +msgstr "" + +#: contrib/admin/templates/admin/base copy.html:28 +msgid "My Dashboard" +msgstr "" + +#: contrib/admin/templates/admin/base copy.html:29 +msgid "My Account" +msgstr "Moj account" + +#: contrib/admin/templates/admin/base copy.html:30 +msgid "Admin" +msgstr "" + +#: contrib/admin/templates/admin/base copy.html:31 +msgid "Logout" +msgstr "Izlaz" + +#: contrib/admin/templates/admin/base copy.html:34 +#: contrib/admin/templates/admin/base.html:31 +msgid "Login" +msgstr "Prijava" + +#: contrib/admin/templates/admin/base copy.html:34 +#: contrib/admin/templates/admin/base.html:31 +#: utils/text.py:128 +msgid "or" +msgstr "" + +#: contrib/admin/templates/admin/base copy.html:34 +#: contrib/admin/templates/admin/base.html:31 +msgid "Sign up" +msgstr "Upisati se" + +#: contrib/admin/templates/admin/change_form.html:20 +#: contrib/admin/templates/admin/index.html:29 +msgid "Add" +msgstr "Dodati" + +#: contrib/admin/templates/admin/change_form.html:27 +#: contrib/admin/templates/admin/object_history.html:10 +msgid "History" +msgstr "" + +#: contrib/admin/templates/admin/change_form.html:28 +#: contrib/admin/templates/admin/edit_inline/stacked.html:13 +#: contrib/admin/templates/admin/edit_inline/tabular.html:25 +msgid "View on site" +msgstr "" + +#: contrib/admin/templates/admin/change_form.html:38 +#: contrib/admin/templates/admin/auth/user/change_password.html:22 +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/templates/admin/change_list.html:16 +#, python-format +msgid "Add %(name)s" +msgstr "" + +#: contrib/admin/templates/admin/change_list.html:26 +msgid "Filter" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:10 +#: contrib/admin/templates/admin/submit_line.html:4 +#: forms/formsets.py:246 +msgid "Delete" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:28 +msgid "Yes, I'm sure" +msgstr "" + +#: contrib/admin/templates/admin/filter.html:2 +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +#: contrib/admin/templates/admin/index.html:35 +msgid "Change" +msgstr "" + +#: contrib/admin/templates/admin/index.html:45 +msgid "You don't have permission to edit anything." +msgstr "" + +#: contrib/admin/templates/admin/index.html:53 +msgid "Recent Actions" +msgstr "" + +#: contrib/admin/templates/admin/index.html:54 +msgid "My Actions" +msgstr "" + +#: contrib/admin/templates/admin/login.html:19 +msgid "Username:" +msgstr "Korisničko ime:" + +#: contrib/admin/templates/admin/login.html:22 +msgid "Password:" +msgstr "Lozinka:" + +#: contrib/admin/templates/admin/object_history.html:22 +msgid "Date/time" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:23 +msgid "User" +msgstr "Korisnik" + +#: contrib/admin/templates/admin/object_history.html:24 +msgid "Action" +msgstr "Akcija" + +#: contrib/admin/templates/admin/object_history.html:30 +#: utils/translation/trans_real.py:404 +msgid "DATETIME_FORMAT" +msgstr "" + +#: contrib/admin/templates/admin/pagination.html:10 +msgid "Show all" +msgstr "" + +#: contrib/admin/templates/admin/search_form.html:8 +msgid "Go" +msgstr "" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "1 result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Save" +msgstr "Spasi" + +#: contrib/admin/templates/admin/auth/user/add_form.html:6 +msgid "First, enter a username and password. Then, you'll be able to edit more user options." +msgstr "" + +#: contrib/admin/templates/admin/auth/user/add_form.html:13 +#: contrib/auth/forms.py:14 +#: contrib/auth/forms.py:47 +#: contrib/auth/forms.py:59 +msgid "Username" +msgstr "" + +#: contrib/admin/templates/admin/auth/user/add_form.html:20 +#: contrib/admin/templates/admin/auth/user/change_password.html:33 +#: contrib/auth/forms.py:17 +#: contrib/auth/forms.py:60 +#: contrib/auth/forms.py:184 +msgid "Password" +msgstr "" + +#: contrib/admin/templates/admin/auth/user/add_form.html:26 +#: contrib/admin/templates/admin/auth/user/change_password.html:39 +#: contrib/auth/forms.py:185 +msgid "Password (again)" +msgstr "" + +#: contrib/admin/templates/admin/auth/user/add_form.html:27 +#: contrib/admin/templates/admin/auth/user/change_password.html:40 +msgid "Enter the same password as above, for verification." +msgstr "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:13 +#: contrib/admin/templates/admin/auth/user/change_password.html:46 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/registration/password_change_form.html:3 +msgid "Change password" +msgstr "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:26 +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +#: contrib/admin/templates/admin/edit_inline/tabular.html:15 +msgid "Delete?" +msgstr "" + +#: contrib/admin/templates/registration/logged_out.html:8 +msgid "Thanks for spending some quality time with the Web site today." +msgstr "" + +#: contrib/admin/templates/registration/logged_out.html:10 +msgid "Log in again" +msgstr "" + +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 +msgid "Documentation" +msgstr "" + +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/registration/password_change_form.html:3 +msgid "Log out" +msgstr "" + +#: contrib/admin/templates/registration/password_change_done.html:4 +#: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admin/templates/registration/password_change_form.html:6 +#: contrib/admin/templates/registration/password_change_form.html:10 +msgid "Password change" +msgstr "" + +#: contrib/admin/templates/registration/password_change_done.html:6 +#: contrib/admin/templates/registration/password_change_done.html:10 +msgid "Password change successful" +msgstr "" + +#: contrib/admin/templates/registration/password_change_done.html:12 +msgid "Your password was changed." +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:12 +msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:17 +msgid "Old password:" +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:19 +#: contrib/admin/templates/registration/password_reset_confirm.html:18 +msgid "New password:" +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:21 +#: contrib/admin/templates/registration/password_reset_confirm.html:20 +msgid "Confirm password:" +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:23 +#: contrib/admin/templates/registration/password_reset_confirm.html:21 +msgid "Change my password" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_complete.html:4 +#: contrib/admin/templates/registration/password_reset_confirm.html:6 +#: contrib/admin/templates/registration/password_reset_done.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:6 +#: contrib/admin/templates/registration/password_reset_form.html:10 +msgid "Password reset" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_complete.html:6 +#: contrib/admin/templates/registration/password_reset_complete.html:10 +msgid "Password reset complete" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_complete.html:12 +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:4 +msgid "Password reset confirmation" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:12 +msgid "Enter new password" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:14 +msgid "Please enter your new password twice so we can verify you typed it in correctly." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:26 +msgid "Password reset unsuccessful" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:28 +msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_done.html:6 +#: contrib/admin/templates/registration/password_reset_done.html:10 +msgid "Password reset successful" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_done.html:12 +msgid "We've e-mailed you instructions for setting your password to the e-mail address you submitted. You should be receiving it shortly." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:2 +msgid "You're receiving this e-mail because you requested a password reset" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:3 +#, python-format +msgid "for your user account at %(site_name)s" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:5 +msgid "Please go to the following page and choose a new password:" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:9 +msgid "Your username, in case you've forgotten:" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:11 +msgid "Thanks for using our site!" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:13 +#, python-format +msgid "The %(site_name)s team" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_form.html:12 +msgid "Forgotten your password? Enter your e-mail address below, and we'll e-mail instructions for setting a new one." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "E-mail address:" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "Reset my password" +msgstr "" + +#: contrib/admin/templatetags/admin_list.py:288 +msgid "All dates" +msgstr "" + +#: contrib/admin/views/main.py:69 +#, python-format +msgid "Select %s" +msgstr "" + +#: contrib/admin/views/main.py:69 +#, python-format +msgid "Select %s to change" +msgstr "" + +#: contrib/admin/views/template.py:36 +#: contrib/sites/models.py:38 +msgid "site" +msgstr "" + +#: contrib/admin/views/template.py:38 +msgid "template" +msgstr "" + +#: contrib/admindocs/views.py:57 +#: contrib/admindocs/views.py:59 +#: contrib/admindocs/views.py:61 +msgid "tag:" +msgstr "" + +#: contrib/admindocs/views.py:90 +#: contrib/admindocs/views.py:92 +#: contrib/admindocs/views.py:94 +msgid "filter:" +msgstr "" + +#: contrib/admindocs/views.py:154 +#: contrib/admindocs/views.py:156 +#: contrib/admindocs/views.py:158 +msgid "view:" +msgstr "" + +#: contrib/admindocs/views.py:186 +#, python-format +msgid "App %r not found" +msgstr "" + +#: contrib/admindocs/views.py:193 +#, python-format +msgid "Model %(model_name)r not found in app %(app_label)r" +msgstr "" + +#: contrib/admindocs/views.py:205 +#, python-format +msgid "the related `%(app_label)s.%(data_type)s` object" +msgstr "" + +#: contrib/admindocs/views.py:205 +#: contrib/admindocs/views.py:227 +#: contrib/admindocs/views.py:241 +#: contrib/admindocs/views.py:246 +msgid "model:" +msgstr "" + +#: contrib/admindocs/views.py:236 +#, python-format +msgid "related `%(app_label)s.%(object_name)s` objects" +msgstr "" + +#: contrib/admindocs/views.py:241 +#, python-format +msgid "all %s" +msgstr "" + +#: contrib/admindocs/views.py:246 +#, python-format +msgid "number of %s" +msgstr "" + +#: contrib/admindocs/views.py:251 +#, python-format +msgid "Fields on %s objects" +msgstr "" + +#: contrib/admindocs/views.py:321 +msgid "E-mail address" +msgstr "" + +#: contrib/admindocs/views.py:322 +#: contrib/admindocs/views.py:323 +#: contrib/admindocs/views.py:326 +msgid "File path" +msgstr "" + +#: contrib/admindocs/views.py:332 +msgid "Phone number" +msgstr "" + +#: contrib/admindocs/views.py:338 +msgid "Time" +msgstr "" + +#: contrib/auth/admin.py:64 +msgid "Add user" +msgstr "" + +#: contrib/auth/admin.py:90 +msgid "Password changed successfully." +msgstr "" + +#: contrib/auth/admin.py:96 +#, python-format +msgid "Change password: %s" +msgstr "" + +#: contrib/auth/forms.py:16 +#: contrib/auth/forms.py:49 +#: core/validators.py:72 +msgid "This value must contain only letters, numbers and underscores." +msgstr "" + +#: contrib/auth/forms.py:18 +msgid "Password confirmation" +msgstr "" + +#: contrib/auth/forms.py:30 +msgid "A user with that username already exists." +msgstr "" + +#: contrib/auth/forms.py:36 +#: contrib/auth/forms.py:154 +#: contrib/auth/forms.py:196 +msgid "The two password fields didn't match." +msgstr "" + +#: contrib/auth/forms.py:82 +msgid "This account is inactive." +msgstr "" + +#: contrib/auth/forms.py:87 +msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in." +msgstr "" + +#: contrib/auth/forms.py:100 +msgid "E-mail" +msgstr "" + +#: contrib/auth/forms.py:109 +msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?" +msgstr "" + +#: contrib/auth/forms.py:134 +#, python-format +msgid "Password reset on %s" +msgstr "" + +#: contrib/auth/forms.py:142 +msgid "New password" +msgstr "" + +#: contrib/auth/forms.py:143 +msgid "New password confirmation" +msgstr "" + +#: contrib/auth/forms.py:168 +msgid "Old password" +msgstr "" + +#: contrib/auth/forms.py:176 +msgid "Your old password was entered incorrectly. Please enter it again." +msgstr "" + +#: contrib/auth/models.py:72 +#: contrib/auth/models.py:95 +msgid "name" +msgstr "" + +#: contrib/auth/models.py:74 +msgid "codename" +msgstr "" + +#: contrib/auth/models.py:77 +msgid "permission" +msgstr "" + +#: contrib/auth/models.py:78 +#: contrib/auth/models.py:96 +msgid "permissions" +msgstr "" + +#: contrib/auth/models.py:99 +msgid "group" +msgstr "" + +#: contrib/auth/models.py:100 +#: contrib/auth/models.py:146 +msgid "groups" +msgstr "" + +#: contrib/auth/models.py:136 +msgid "username" +msgstr "" + +#: contrib/auth/models.py:137 +msgid "first name" +msgstr "" + +#: contrib/auth/models.py:138 +msgid "last name" +msgstr "" + +#: contrib/auth/models.py:139 +msgid "e-mail address" +msgstr "" + +#: contrib/auth/models.py:140 +msgid "password" +msgstr "" + +#: contrib/auth/models.py:140 +msgid "Use '[algo]$[salt]$[hexdigest]' or use the change password form." +msgstr "" + +#: contrib/auth/models.py:142 +msgid "active" +msgstr "" + +#: contrib/auth/models.py:144 +msgid "last login" +msgstr "" + +#: contrib/auth/models.py:145 +msgid "date joined" +msgstr "" + +#: contrib/auth/models.py:152 +msgid "user" +msgstr "" + +#: contrib/auth/models.py:153 +msgid "users" +msgstr "" + +#: contrib/auth/models.py:308 +msgid "message" +msgstr "" + +#: contrib/auth/views.py:50 +msgid "Logged out" +msgstr "" + +#: contrib/auth/management/commands/createsuperuser.py:23 +#: core/validators.py:170 +#: forms/fields.py:428 +msgid "Enter a valid e-mail address." +msgstr "" + +#: contrib/comments/forms.py:20 +msgid "Name" +msgstr "" + +#: contrib/comments/forms.py:21 +msgid "Email address" +msgstr "" + +#: contrib/comments/forms.py:23 +msgid "Comment" +msgstr "" + +#: contrib/comments/models.py:57 +msgid "date/time submitted" +msgstr "" + +#: contrib/comments/models.py:59 +msgid "is public" +msgstr "" + +#: contrib/contenttypes/models.py:67 +msgid "python model class name" +msgstr "" + +#: contrib/contenttypes/models.py:71 +msgid "content type" +msgstr "" + +#: contrib/contenttypes/models.py:72 +msgid "content types" +msgstr "" + +#: contrib/flatpages/admin.py:22 +msgid "Advanced options" +msgstr "" + +#: contrib/flatpages/models.py:8 +msgid "title" +msgstr "" + +#: contrib/flatpages/models.py:9 +msgid "content" +msgstr "" + +#: contrib/flatpages/models.py:13 +msgid "registration required" +msgstr "" + +#: contrib/formtools/wizard.py:130 +msgid "We apologize, but your form has expired. Please continue filling out the form from this page." +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:19 +msgid "th" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:19 +msgid "st" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:19 +msgid "nd" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:19 +msgid "rd" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:51 +#, python-format +msgid "%(value).1f million" +msgid_plural "%(value).1f million" +msgstr[0] "" +msgstr[1] "" + +#: contrib/humanize/templatetags/humanize.py:54 +#, python-format +msgid "%(value).1f billion" +msgid_plural "%(value).1f billion" +msgstr[0] "" +msgstr[1] "" + +#: contrib/humanize/templatetags/humanize.py:57 +#, python-format +msgid "%(value).1f trillion" +msgid_plural "%(value).1f trillion" +msgstr[0] "" +msgstr[1] "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "one" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "two" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "three" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "four" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "five" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "six" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "seven" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "eight" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "nine" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:93 +msgid "today" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:95 +msgid "tomorrow" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:97 +msgid "yesterday" +msgstr "" + +#: core/validators.py:80 +msgid "This value must contain only letters, numbers, underscores or hyphens." +msgstr "" + +#: core/validators.py:84 +msgid "Uppercase letters are not allowed here." +msgstr "" + +#: core/validators.py:88 +msgid "Lowercase letters are not allowed here." +msgstr "" + +#: core/validators.py:95 +#: db/models/fields/__init__.py:428 +msgid "Enter only digits separated by commas." +msgstr "" + +#: core/validators.py:107 +msgid "Enter valid e-mail addresses separated by commas." +msgstr "" + +#: core/validators.py:111 +msgid "Please enter a valid IP address." +msgstr "" + +#: core/validators.py:115 +msgid "Empty values are not allowed here." +msgstr "" + +#: core/validators.py:119 +msgid "Non-numeric characters aren't allowed here." +msgstr "" + +#: core/validators.py:123 +msgid "This value can't be comprised solely of digits." +msgstr "" + +#: core/validators.py:128 +#: forms/fields.py:166 +msgid "Enter a whole number." +msgstr "" + +#: core/validators.py:132 +msgid "Only alphabetical characters are allowed here." +msgstr "" + +#: core/validators.py:147 +msgid "Year must be 1900 or later." +msgstr "" + +#: core/validators.py:151 +#: db/models/fields/__init__.py:468 +#, python-format +msgid "Invalid date: %s" +msgstr "" + +#: core/validators.py:156 +#: db/models/fields/__init__.py:459 +msgid "Enter a valid date in YYYY-MM-DD format." +msgstr "" + +#: core/validators.py:161 +msgid "Enter a valid time in HH:MM format." +msgstr "" + +#: core/validators.py:165 +msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." +msgstr "" + +#: core/validators.py:182 +#: core/validators.py:474 +#: forms/fields.py:446 +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" + +#: core/validators.py:193 +#: forms/fields.py:477 +msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image." +msgstr "" + +#: core/validators.py:200 +#, python-format +msgid "The URL %s does not point to a valid image." +msgstr "" + +#: core/validators.py:204 +#, python-format +msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." +msgstr "" + +#: core/validators.py:216 +msgid "A valid URL is required." +msgstr "" + +#: core/validators.py:230 +#, python-format +msgid "" +"Valid HTML is required. Specific errors are:\n" +"%s" +msgstr "" + +#: core/validators.py:237 +#, python-format +msgid "Badly formed XML: %s" +msgstr "" + +#: core/validators.py:254 +#, python-format +msgid "Invalid URL: %s" +msgstr "" + +#: core/validators.py:259 +#: core/validators.py:261 +#, python-format +msgid "The URL %s is a broken link." +msgstr "" + +#: core/validators.py:288 +#, python-format +msgid "This field must match the '%s' field." +msgstr "" + +#: core/validators.py:307 +msgid "Please enter something for at least one field." +msgstr "" + +#: core/validators.py:316 +#: core/validators.py:327 +msgid "Please enter both fields or leave them both empty." +msgstr "" + +#: core/validators.py:335 +#, python-format +msgid "This field must be given if %(field)s is %(value)s" +msgstr "" + +#: core/validators.py:348 +#, python-format +msgid "This field must be given if %(field)s is not %(value)s" +msgstr "" + +#: core/validators.py:367 +msgid "Duplicate values are not allowed." +msgstr "" + +#: core/validators.py:382 +#, python-format +msgid "This value must be between %(lower)s and %(upper)s." +msgstr "" + +#: core/validators.py:384 +#, python-format +msgid "This value must be at least %s." +msgstr "" + +#: core/validators.py:386 +#, python-format +msgid "This value must be no more than %s." +msgstr "" + +#: core/validators.py:427 +#, python-format +msgid "This value must be a power of %s." +msgstr "" + +#: core/validators.py:437 +msgid "Please enter a valid decimal number." +msgstr "" + +#: core/validators.py:444 +#, python-format +msgid "Please enter a valid decimal number with at most %s total digit." +msgid_plural "Please enter a valid decimal number with at most %s total digits." +msgstr[0] "" +msgstr[1] "" + +#: core/validators.py:447 +#, python-format +msgid "Please enter a valid decimal number with a whole part of at most %s digit." +msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits." +msgstr[0] "" +msgstr[1] "" + +#: core/validators.py:450 +#, python-format +msgid "Please enter a valid decimal number with at most %s decimal place." +msgid_plural "Please enter a valid decimal number with at most %s decimal places." +msgstr[0] "" +msgstr[1] "" + +#: core/validators.py:458 +msgid "Please enter a valid floating point number." +msgstr "" + +#: core/validators.py:467 +#, python-format +msgid "Make sure your uploaded file is at least %s bytes big." +msgstr "" + +#: core/validators.py:468 +#, python-format +msgid "Make sure your uploaded file is at most %s bytes big." +msgstr "" + +#: core/validators.py:485 +msgid "The format for this field is wrong." +msgstr "" + +#: core/validators.py:500 +msgid "This field is invalid." +msgstr "" + +#: core/validators.py:536 +#, python-format +msgid "Could not retrieve anything from %s." +msgstr "" + +#: core/validators.py:572 +#, python-format +msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)" +msgstr "" + +#: db/models/fields/__init__.py:348 +#: db/models/fields/__init__.py:683 +msgid "This value must be an integer." +msgstr "" + +#: db/models/fields/__init__.py:379 +msgid "This value must be either True or False." +msgstr "" + +#: db/models/fields/__init__.py:412 +msgid "This field cannot be null." +msgstr "" + +#: db/models/fields/__init__.py:532 +#: db/models/fields/__init__.py:550 +msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format." +msgstr "" + +#: db/models/fields/__init__.py:586 +msgid "This value must be a decimal number." +msgstr "" + +#: db/models/fields/__init__.py:719 +msgid "This value must be either None, True or False." +msgstr "" + +#: db/models/fields/__init__.py:817 +#: db/models/fields/__init__.py:831 +msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." +msgstr "" + +#: db/models/fields/related.py:761 +msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" + +#: db/models/fields/related.py:838 +#, python-format +msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." +msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid." +msgstr[0] "" +msgstr[1] "" + +#: forms/fields.py:54 +msgid "This field is required." +msgstr "" + +#: forms/fields.py:55 +msgid "Enter a valid value." +msgstr "" + +#: forms/fields.py:138 +#, python-format +msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." +msgstr "" + +#: forms/fields.py:139 +#, python-format +msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." +msgstr "" + +#: forms/fields.py:167 +#: forms/fields.py:196 +#: forms/fields.py:225 +#, python-format +msgid "Ensure this value is less than or equal to %s." +msgstr "" + +#: forms/fields.py:168 +#: forms/fields.py:197 +#: forms/fields.py:226 +#, python-format +msgid "Ensure this value is greater than or equal to %s." +msgstr "" + +#: forms/fields.py:195 +#: forms/fields.py:224 +msgid "Enter a number." +msgstr "" + +#: forms/fields.py:227 +#, python-format +msgid "Ensure that there are no more than %s digits in total." +msgstr "" + +#: forms/fields.py:228 +#, python-format +msgid "Ensure that there are no more than %s decimal places." +msgstr "" + +#: forms/fields.py:229 +#, python-format +msgid "Ensure that there are no more than %s digits before the decimal point." +msgstr "" + +#: forms/fields.py:287 +#: forms/fields.py:848 +msgid "Enter a valid date." +msgstr "" + +#: forms/fields.py:321 +#: forms/fields.py:849 +msgid "Enter a valid time." +msgstr "" + +#: forms/fields.py:360 +msgid "Enter a valid date/time." +msgstr "" + +#: forms/fields.py:447 +msgid "No file was submitted." +msgstr "" + +#: forms/fields.py:448 +msgid "The submitted file is empty." +msgstr "" + +#: forms/fields.py:538 +msgid "Enter a valid URL." +msgstr "" + +#: forms/fields.py:539 +msgid "This URL appears to be a broken link." +msgstr "" + +#: forms/fields.py:618 +#: forms/fields.py:696 +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" + +#: forms/fields.py:697 +#: forms/fields.py:758 +#: forms/models.py:660 +msgid "Enter a list of values." +msgstr "" + +#: forms/formsets.py:242 +#: forms/formsets.py:244 +msgid "Order" +msgstr "" + +#: forms/models.py:268 +#: forms/models.py:277 +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "" + +#: forms/models.py:590 +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" + +#: forms/models.py:661 +#, python-format +msgid "Select a valid choice. %s is not one of the available choices." +msgstr "" + +#: template/defaultfilters.py:706 +msgid "yes,no,maybe" +msgstr "" + +#: template/defaultfilters.py:737 +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" + +#: template/defaultfilters.py:739 +#, python-format +msgid "%.1f KB" +msgstr "" + +#: template/defaultfilters.py:741 +#, python-format +msgid "%.1f MB" +msgstr "" + +#: template/defaultfilters.py:742 +#, python-format +msgid "%.1f GB" +msgstr "" + +#: utils/dateformat.py:41 +msgid "p.m." +msgstr "" + +#: utils/dateformat.py:42 +msgid "a.m." +msgstr "" + +#: utils/dateformat.py:47 +msgid "PM" +msgstr "" + +#: utils/dateformat.py:48 +msgid "AM" +msgstr "" + +#: utils/dateformat.py:97 +msgid "midnight" +msgstr "" + +#: utils/dateformat.py:99 +msgid "noon" +msgstr "" + +#: utils/dates.py:6 +msgid "Monday" +msgstr "" + +#: utils/dates.py:6 +msgid "Tuesday" +msgstr "" + +#: utils/dates.py:6 +msgid "Wednesday" +msgstr "" + +#: utils/dates.py:6 +msgid "Thursday" +msgstr "" + +#: utils/dates.py:6 +msgid "Friday" +msgstr "" + +#: utils/dates.py:7 +msgid "Saturday" +msgstr "" + +#: utils/dates.py:7 +msgid "Sunday" +msgstr "" + +#: utils/dates.py:10 +msgid "Mon" +msgstr "" + +#: utils/dates.py:10 +msgid "Tue" +msgstr "" + +#: utils/dates.py:10 +msgid "Wed" +msgstr "" + +#: utils/dates.py:10 +msgid "Thu" +msgstr "" + +#: utils/dates.py:10 +msgid "Fri" +msgstr "" + +#: utils/dates.py:11 +msgid "Sat" +msgstr "" + +#: utils/dates.py:11 +msgid "Sun" +msgstr "" + +#: utils/dates.py:18 +msgid "January" +msgstr "" + +#: utils/dates.py:18 +msgid "February" +msgstr "" + +#: utils/dates.py:18 +#: utils/dates.py:31 +msgid "March" +msgstr "" + +#: utils/dates.py:18 +#: utils/dates.py:31 +msgid "April" +msgstr "" + +#: utils/dates.py:18 +#: utils/dates.py:31 +msgid "May" +msgstr "" + +#: utils/dates.py:18 +#: utils/dates.py:31 +msgid "June" +msgstr "" + +#: utils/dates.py:19 +#: utils/dates.py:31 +msgid "July" +msgstr "" + +#: utils/dates.py:19 +msgid "August" +msgstr "" + +#: utils/dates.py:19 +msgid "September" +msgstr "" + +#: utils/dates.py:19 +msgid "October" +msgstr "" + +#: utils/dates.py:19 +msgid "November" +msgstr "" + +#: utils/dates.py:20 +msgid "December" +msgstr "" + +#: utils/dates.py:23 +msgid "jan" +msgstr "" + +#: utils/dates.py:23 +msgid "feb" +msgstr "" + +#: utils/dates.py:23 +msgid "mar" +msgstr "" + +#: utils/dates.py:23 +msgid "apr" +msgstr "" + +#: utils/dates.py:23 +msgid "may" +msgstr "" + +#: utils/dates.py:23 +msgid "jun" +msgstr "" + +#: utils/dates.py:24 +msgid "jul" +msgstr "" + +#: utils/dates.py:24 +msgid "aug" +msgstr "" + +#: utils/dates.py:24 +msgid "sep" +msgstr "" + +#: utils/dates.py:24 +msgid "oct" +msgstr "" + +#: utils/dates.py:24 +msgid "nov" +msgstr "" + +#: utils/dates.py:24 +msgid "dec" +msgstr "" + +#: utils/dates.py:31 +msgid "Jan." +msgstr "" + +#: utils/dates.py:31 +msgid "Feb." +msgstr "" + +#: utils/dates.py:32 +msgid "Aug." +msgstr "" + +#: utils/dates.py:32 +msgid "Sept." +msgstr "" + +#: utils/dates.py:32 +msgid "Oct." +msgstr "" + +#: utils/dates.py:32 +msgid "Nov." +msgstr "" + +#: utils/dates.py:32 +msgid "Dec." +msgstr "" + +#: utils/timesince.py:21 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:22 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:23 +msgid "week" +msgid_plural "weeks" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:24 +msgid "day" +msgid_plural "days" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:25 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:26 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:43 +msgid "minutes" +msgstr "" + +#: utils/timesince.py:48 +#, python-format +msgid "%(number)d %(type)s" +msgstr "" + +#: utils/timesince.py:54 +#, python-format +msgid ", %(number)d %(type)s" +msgstr "" + +#: utils/translation/trans_real.py:403 +msgid "DATE_FORMAT" +msgstr "" + +#: utils/translation/trans_real.py:405 +msgid "TIME_FORMAT" +msgstr "" + +#: utils/translation/trans_real.py:421 +msgid "YEAR_MONTH_FORMAT" +msgstr "" + +#: utils/translation/trans_real.py:422 +msgid "MONTH_DAY_FORMAT" +msgstr "" + +#: views/generic/create_update.py:114 +#, python-format +msgid "The %(verbose_name)s was created successfully." +msgstr "" + +#: views/generic/create_update.py:156 +#, python-format +msgid "The %(verbose_name)s was updated successfully." +msgstr "" + +#: views/generic/create_update.py:198 +#, python-format +msgid "The %(verbose_name)s was deleted." +msgstr "" + diff --git a/django/conf/locale/ca/LC_MESSAGES/django.mo b/django/conf/locale/ca/LC_MESSAGES/django.mo index 3039bd8fad17..6bf7b62f074b 100644 Binary files a/django/conf/locale/ca/LC_MESSAGES/django.mo 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 index 57f87649389e..b6d9cba7d92a 100644 --- a/django/conf/locale/ca/LC_MESSAGES/django.po +++ b/django/conf/locale/ca/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-07 15:04+0200\n" +"POT-Creation-Date: 2009-11-30 11:39+0100\n" "PO-Revision-Date: 2009-03-24 13:28+0100\n" "Last-Translator: Django Catalan Group \n" "Language-Team: Catalan \n" @@ -223,7 +223,7 @@ msgstr "xinès tradicional" msgid "Successfully deleted %(count)d %(items)s." msgstr "Eliminat/s %(count)d %(items)s satisfactòriament." -#: contrib/admin/actions.py:67 contrib/admin/options.py:1025 +#: contrib/admin/actions.py:67 contrib/admin/options.py:1027 msgid "Are you sure?" msgstr "Esteu segurs?" @@ -266,15 +266,15 @@ msgstr "Aquest mes" msgid "This year" msgstr "Aquest any" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:435 msgid "Yes" msgstr "Si" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:435 msgid "No" msgstr "No" -#: contrib/admin/filterspecs.py:154 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:154 forms/widgets.py:435 msgid "Unknown" msgstr "Desconegut" @@ -344,27 +344,27 @@ msgstr "Eliminat %(name)s \"%(object)s\"." msgid "No fields changed." msgstr "Cap camp canviat." -#: contrib/admin/options.py:598 contrib/auth/admin.py:67 +#: contrib/admin/options.py:599 contrib/auth/admin.py:67 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." msgstr "El/la %(name)s \"%(obj)s\".ha estat afegit/da amb èxit." -#: contrib/admin/options.py:602 contrib/admin/options.py:635 +#: contrib/admin/options.py:603 contrib/admin/options.py:636 #: contrib/auth/admin.py:75 msgid "You may edit it again below." msgstr "Podeu editar-lo de nou a baix." -#: contrib/admin/options.py:612 contrib/admin/options.py:645 +#: contrib/admin/options.py:613 contrib/admin/options.py:646 #, python-format msgid "You may add another %s below." msgstr "Podeu afegir un altre %s a baix." -#: contrib/admin/options.py:633 +#: contrib/admin/options.py:634 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." msgstr "S'ha modificat amb èxit el/la %(name)s \"%(obj)s." -#: contrib/admin/options.py:641 +#: contrib/admin/options.py:642 #, python-format msgid "" "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." @@ -372,43 +372,43 @@ msgstr "" "S'ha afegit exitosament el/la %(name)s \"%(obj)s\". Pot editar-lo de nou " "abaix." -#: contrib/admin/options.py:772 +#: contrib/admin/options.py:773 #, python-format msgid "Add %s" msgstr "Afegir %s" -#: contrib/admin/options.py:803 contrib/admin/options.py:1003 +#: contrib/admin/options.py:804 contrib/admin/options.py:1005 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." msgstr "No existèix cap objecte %(name)s amb la clau primària %(key)r." -#: contrib/admin/options.py:860 +#: contrib/admin/options.py:861 #, python-format msgid "Change %s" msgstr "Modificar %s" -#: contrib/admin/options.py:904 +#: contrib/admin/options.py:905 msgid "Database error" msgstr "Error de base de dades" -#: contrib/admin/options.py:940 +#: contrib/admin/options.py:941 #, python-format msgid "%(count)s %(name)s was changed successfully." msgid_plural "%(count)s %(name)s were changed successfully." msgstr[0] "%(count)s %(name)s s'ha modificat amb èxit." msgstr[1] "%(count)s %(name)s s'han modificat amb èxit." -#: contrib/admin/options.py:1018 +#: contrib/admin/options.py:1020 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "El/la %(name)s \"%(obj)s\" ha estat eliminat amb èxit." -#: contrib/admin/options.py:1054 +#: contrib/admin/options.py:1057 #, python-format msgid "Change history: %s" msgstr "Modificar històric: %s" -#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 +#: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14 #: contrib/auth/forms.py:80 msgid "" "Please enter a correct username and password. Note that both fields are case-" @@ -417,11 +417,11 @@ msgstr "" "Si us plau, introduïu un nom d'usuari i contrasenya vàlids. Tingueu en " "compte que tots dos camps son sensibles a majúscules i minúscules." -#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 +#: contrib/admin/sites.py:288 contrib/admin/views/decorators.py:40 msgid "Please log in again, because your session has expired." msgstr "Si us plau, identifiqueu-vos de nou doncs la vostra sessió ha expirat." -#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 +#: contrib/admin/sites.py:295 contrib/admin/views/decorators.py:47 msgid "" "Looks like your browser isn't configured to accept cookies. Please enable " "cookies, reload this page, and try again." @@ -430,29 +430,29 @@ msgstr "" "'cookies' (galetes). Si us plau, habiliteu les 'cookies', recarregueu " "aquesta pàgina i proveu-ho de nou. " -#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 +#: contrib/admin/sites.py:311 contrib/admin/sites.py:317 #: contrib/admin/views/decorators.py:66 msgid "Usernames cannot contain the '@' character." msgstr "Els noms d'usuari no poden contenir el caracter '@'." -#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 +#: contrib/admin/sites.py:314 contrib/admin/views/decorators.py:62 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "" "La vostra adreça de correu no és el vostre nom d'usuari. Provi '%s' en tot " "cas." -#: contrib/admin/sites.py:360 +#: contrib/admin/sites.py:370 msgid "Site administration" msgstr "Lloc administratiu" -#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 +#: contrib/admin/sites.py:384 contrib/admin/templates/admin/login.html:26 #: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/views/decorators.py:20 msgid "Log in" msgstr "Iniciar sessió" -#: contrib/admin/sites.py:417 +#: contrib/admin/sites.py:429 #, python-format msgid "%s administration" msgstr "Administració de %s" @@ -467,27 +467,27 @@ msgstr "Un o més %(fieldname)s en %(name)s: %(obj)s" msgid "One or more %(fieldname)s in %(name)s:" msgstr "Un o més %(fieldname)s en %(name)s:" -#: contrib/admin/widgets.py:71 +#: contrib/admin/widgets.py:72 msgid "Date:" msgstr "Data:" -#: contrib/admin/widgets.py:71 +#: contrib/admin/widgets.py:72 msgid "Time:" msgstr "Hora:" -#: contrib/admin/widgets.py:95 +#: contrib/admin/widgets.py:96 msgid "Currently:" msgstr "Actualment:" -#: contrib/admin/widgets.py:95 +#: contrib/admin/widgets.py:96 msgid "Change:" msgstr "Modificar:" -#: contrib/admin/widgets.py:124 +#: contrib/admin/widgets.py:125 msgid "Lookup" msgstr "Cercar" -#: contrib/admin/widgets.py:236 +#: contrib/admin/widgets.py:237 msgid "Add Another" msgstr "Afegir un altre" @@ -502,7 +502,7 @@ msgstr "Ho sentim, però no s'ha pogut trobar la pàgina sol·licitada" #: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/app_index.html:8 -#: contrib/admin/templates/admin/base.html:31 +#: contrib/admin/templates/admin/base.html:54 #: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/delete_confirmation.html:6 @@ -555,18 +555,18 @@ msgstr "Anar" msgid "%(name)s" msgstr "%(name)s" -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:27 msgid "Welcome," msgstr "Benvingut/da," -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:32 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 msgid "Documentation" msgstr "Documentació" -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:40 #: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 @@ -574,7 +574,7 @@ msgstr "Documentació" msgid "Change password" msgstr "Canviar contrasenya" -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 msgid "Log out" @@ -600,7 +600,7 @@ msgstr "Històric" #: contrib/admin/templates/admin/change_form.html:28 #: contrib/admin/templates/admin/edit_inline/stacked.html:13 -#: contrib/admin/templates/admin/edit_inline/tabular.html:27 +#: contrib/admin/templates/admin/edit_inline/tabular.html:28 msgid "View on site" msgstr "Veure al lloc" @@ -670,9 +670,9 @@ msgstr "" #, python-format msgid "" "Are you sure you want to delete the selected %(object_name)s objects? All of " -"the following objects and it's related items will be deleted:" +"the following objects and their related items will be deleted:" msgstr "" -"Esteu segurs de voler esborrar els/les %(object_name)s seleccionats?Tots " +"Esteu segurs de voler esborrar els/les %(object_name)s seleccionats? Tots " "aquests objectes i els seus elements relacionats s'esborraran:" #: contrib/admin/templates/admin/filter.html:2 @@ -985,7 +985,7 @@ msgstr "Adreça de correu electrònic:" msgid "Reset my password" msgstr "Restablir la meva contrasenya" -#: contrib/admin/templatetags/admin_list.py:299 +#: contrib/admin/templatetags/admin_list.py:304 msgid "All dates" msgstr "Totes les dates" @@ -1007,145 +1007,145 @@ msgstr "lloc" msgid "template" msgstr "plantilla" -#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 -#: contrib/admindocs/views.py:62 +#: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63 +#: contrib/admindocs/views.py:65 msgid "tag:" msgstr "etiqueta:" -#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 -#: contrib/admindocs/views.py:95 +#: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96 +#: contrib/admindocs/views.py:98 msgid "filter:" msgstr "filtre:" -#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 -#: contrib/admindocs/views.py:159 +#: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160 +#: contrib/admindocs/views.py:162 msgid "view:" msgstr "vista:" -#: contrib/admindocs/views.py:187 +#: contrib/admindocs/views.py:190 #, python-format msgid "App %r not found" msgstr "No s'ha pogut trobar l'aplicació %r" -#: contrib/admindocs/views.py:194 +#: contrib/admindocs/views.py:197 #, python-format msgid "Model %(model_name)r not found in app %(app_label)r" msgstr "El model %(model_name)r no s'ha trobat en l'aplicació %(app_label)r" -#: contrib/admindocs/views.py:206 +#: contrib/admindocs/views.py:209 #, python-format msgid "the related `%(app_label)s.%(data_type)s` object" msgstr "l'objecte relacionat `%(app_label)s.%(data_type)s`" -#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:225 -#: contrib/admindocs/views.py:230 contrib/admindocs/views.py:244 -#: contrib/admindocs/views.py:258 contrib/admindocs/views.py:263 +#: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266 msgid "model:" msgstr "model:" -#: contrib/admindocs/views.py:221 contrib/admindocs/views.py:253 +#: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256 #, python-format msgid "related `%(app_label)s.%(object_name)s` objects" msgstr "objectes relacionats `%(app_label)s.%(object_name)s`" -#: contrib/admindocs/views.py:225 contrib/admindocs/views.py:258 +#: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261 #, python-format msgid "all %s" msgstr "tots %s" -#: contrib/admindocs/views.py:230 contrib/admindocs/views.py:263 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266 #, python-format msgid "number of %s" msgstr "nombre de %s" -#: contrib/admindocs/views.py:268 +#: contrib/admindocs/views.py:271 #, python-format msgid "Fields on %s objects" msgstr "Camps en objectes %s" -#: contrib/admindocs/views.py:331 contrib/admindocs/views.py:342 -#: contrib/admindocs/views.py:344 contrib/admindocs/views.py:350 -#: contrib/admindocs/views.py:351 contrib/admindocs/views.py:353 +#: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345 +#: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353 +#: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356 msgid "Integer" msgstr "Enter" -#: contrib/admindocs/views.py:332 +#: contrib/admindocs/views.py:335 msgid "Boolean (Either True or False)" msgstr "Booleà (Verdader o Fals)" -#: contrib/admindocs/views.py:333 contrib/admindocs/views.py:352 +#: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355 #, python-format msgid "String (up to %(max_length)s)" msgstr "Cadena (de fins a %(max_length)s)" -#: contrib/admindocs/views.py:334 +#: contrib/admindocs/views.py:337 msgid "Comma-separated integers" msgstr "Enters separats per comes" -#: contrib/admindocs/views.py:335 +#: contrib/admindocs/views.py:338 msgid "Date (without time)" msgstr "Data (sense hora)" -#: contrib/admindocs/views.py:336 +#: contrib/admindocs/views.py:339 msgid "Date (with time)" msgstr "Data (amb hora)" -#: contrib/admindocs/views.py:337 +#: contrib/admindocs/views.py:340 msgid "Decimal number" msgstr "Número decimal" -#: contrib/admindocs/views.py:338 +#: contrib/admindocs/views.py:341 msgid "E-mail address" msgstr "Adreça de correu electrònic" -#: contrib/admindocs/views.py:339 contrib/admindocs/views.py:340 -#: contrib/admindocs/views.py:343 +#: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343 +#: contrib/admindocs/views.py:346 msgid "File path" msgstr "Ruta del fitxer" -#: contrib/admindocs/views.py:341 +#: contrib/admindocs/views.py:344 msgid "Floating point number" msgstr "Número amb punt de coma flotant" -#: contrib/admindocs/views.py:345 contrib/comments/models.py:60 +#: contrib/admindocs/views.py:348 contrib/comments/models.py:60 msgid "IP address" msgstr "Adreça IP" -#: contrib/admindocs/views.py:347 +#: contrib/admindocs/views.py:350 msgid "Boolean (Either True, False or None)" msgstr "Booleà (Verdader, Fals o 'None' (cap))" -#: contrib/admindocs/views.py:348 +#: contrib/admindocs/views.py:351 msgid "Relation to parent model" msgstr "Relació amb el model pare" -#: contrib/admindocs/views.py:349 +#: contrib/admindocs/views.py:352 msgid "Phone number" msgstr "Número de telèfon" -#: contrib/admindocs/views.py:354 +#: contrib/admindocs/views.py:357 msgid "Text" msgstr "Text" -#: contrib/admindocs/views.py:355 +#: contrib/admindocs/views.py:358 msgid "Time" msgstr "Hora" -#: contrib/admindocs/views.py:356 contrib/comments/forms.py:95 +#: contrib/admindocs/views.py:359 contrib/comments/forms.py:95 #: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 msgid "URL" msgstr "URL" -#: contrib/admindocs/views.py:357 +#: contrib/admindocs/views.py:360 msgid "U.S. state (two uppercase letters)" msgstr "Estat dels E.U.A. (dues lletres majúscules)" -#: contrib/admindocs/views.py:358 +#: contrib/admindocs/views.py:361 msgid "XML text" msgstr "Text XML" -#: contrib/admindocs/views.py:384 +#: contrib/admindocs/views.py:387 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s no sembla ser un objecte 'urlpattern'" @@ -1442,7 +1442,7 @@ msgstr "missatge" msgid "Logged out" msgstr "Sessió finalitzada" -#: contrib/auth/management/commands/createsuperuser.py:23 forms/fields.py:429 +#: contrib/auth/management/commands/createsuperuser.py:23 forms/fields.py:428 msgid "Enter a valid e-mail address." msgstr "Introduïu una adreça de correu vàlida." @@ -2615,6 +2615,10 @@ msgstr "Validació invàlida del número de compte bancari." msgid "Enter a valid Finnish social security number." msgstr "Introduïu un número vàlid de la seguretat social finlandesa." +#: contrib/localflavor/fr/forms.py:30 +msgid "Phone numbers must be in 0X XX XX XX XX format." +msgstr "El número de telèfon ha de estar en el format 0X XX XX XX XX." + #: contrib/localflavor/in_/forms.py:14 msgid "Enter a zip code in the format XXXXXXX." msgstr "Introduïu un codi zip en el format XXXXXXX." @@ -3053,7 +3057,8 @@ msgstr "Validació invàlida del número tributari (NIP)." #: contrib/localflavor/pl/forms.py:109 msgid "National Business Register Number (REGON) consists of 9 or 14 digits." msgstr "" -"El número nacional de registre de negocis (REGON) consisteix en 9 o 14 dígits." +"El número nacional de registre de negocis (REGON) consisteix en 9 o 14 " +"dígits." #: contrib/localflavor/pl/forms.py:110 msgid "Wrong checksum for the National Business Register Number (REGON)." @@ -3962,95 +3967,95 @@ msgstr[1] "" "Si us plau, introduïu IDs de %(self)s vàlids. Els valors %(value)r són " "invàlids." -#: forms/fields.py:54 +#: forms/fields.py:53 msgid "This field is required." msgstr "Aquest camp és obligatori." -#: forms/fields.py:55 +#: forms/fields.py:54 msgid "Enter a valid value." msgstr "Introduïu un valor vàlid." -#: forms/fields.py:138 +#: forms/fields.py:137 #, python-format msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." msgstr "" "Assegureu-vos de que el valor té com a màxim %(max)d caràcters (en té %" "(length)d)." -#: forms/fields.py:139 +#: forms/fields.py:138 #, python-format msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." msgstr "" "Assegureu-vos de que el valor té com a mínim %(min)d caràcters (en té %" "(length)d)." -#: forms/fields.py:166 +#: forms/fields.py:165 msgid "Enter a whole number." msgstr "Introduïu un número sencer." -#: forms/fields.py:167 forms/fields.py:196 forms/fields.py:225 +#: forms/fields.py:166 forms/fields.py:195 forms/fields.py:224 #, python-format msgid "Ensure this value is less than or equal to %s." msgstr "Aquest valor ha de ser menor o igual a %s." -#: forms/fields.py:168 forms/fields.py:197 forms/fields.py:226 +#: forms/fields.py:167 forms/fields.py:196 forms/fields.py:225 #, python-format msgid "Ensure this value is greater than or equal to %s." msgstr "Assegureu-vos de que aquest valor sigui superior o igual a %s." -#: forms/fields.py:195 forms/fields.py:224 +#: forms/fields.py:194 forms/fields.py:223 msgid "Enter a number." msgstr "Introduïu un número." -#: forms/fields.py:227 +#: forms/fields.py:226 #, python-format msgid "Ensure that there are no more than %s digits in total." msgstr "Assegureu-vos de que no hi ha més de %s dígits en total." -#: forms/fields.py:228 +#: forms/fields.py:227 #, python-format msgid "Ensure that there are no more than %s decimal places." msgstr "Assegureu-vos de que no hi ha més de %s decimals." -#: forms/fields.py:229 +#: forms/fields.py:228 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Assegureu-vos de que no hi ha més de %s dígits decimals." -#: forms/fields.py:288 forms/fields.py:863 +#: forms/fields.py:287 forms/fields.py:862 msgid "Enter a valid date." msgstr "Introduïu una data vàlida." -#: forms/fields.py:322 forms/fields.py:864 +#: forms/fields.py:321 forms/fields.py:863 msgid "Enter a valid time." msgstr "Introduïu una hora vàlida." -#: forms/fields.py:361 +#: forms/fields.py:360 msgid "Enter a valid date/time." msgstr "Introduïu una data/hora vàlides." -#: forms/fields.py:447 +#: forms/fields.py:446 msgid "No file was submitted. Check the encoding type on the form." msgstr "" "No s'ha enviat cap fitxer. Comprovi el tipus de codificació del formulari." -#: forms/fields.py:448 +#: forms/fields.py:447 msgid "No file was submitted." msgstr "No s'ha enviat cap fitxer." -#: forms/fields.py:449 +#: forms/fields.py:448 msgid "The submitted file is empty." msgstr "El fitxer enviat està buit." -#: forms/fields.py:450 +#: forms/fields.py:449 #, python-format msgid "" "Ensure this filename has at most %(max)d characters (it has %(length)d)." msgstr "" -"Assegureu-vos de que el valor té com a màxim %(max)d caràcters " -"(en té %(length)d)." +"Assegureu-vos de que el valor té com a màxim %(max)d caràcters (en té %" +"(length)d)." -#: forms/fields.py:483 +#: forms/fields.py:482 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -4058,28 +4063,28 @@ msgstr "" "Envieu una imatge vàlida. El fitxer que heu enviat no era una imatge o " "estava corrupte." -#: forms/fields.py:544 +#: forms/fields.py:543 msgid "Enter a valid URL." msgstr "Introduïu una URL vàlida." -#: forms/fields.py:545 +#: forms/fields.py:544 msgid "This URL appears to be a broken link." msgstr "Aquesta URL sembla ser un enllaç trencat." -#: forms/fields.py:625 forms/fields.py:703 +#: forms/fields.py:624 forms/fields.py:702 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "Esculliu una opció vàlida. %(value)s no és una de les opcions vàlides." -#: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003 +#: forms/fields.py:703 forms/fields.py:764 forms/models.py:1003 msgid "Enter a list of values." msgstr "Introduïu una llista de valors." -#: forms/fields.py:892 +#: forms/fields.py:891 msgid "Enter a valid IPv4 address." msgstr "Introduïu una adreça IPv4 vàlida." -#: forms/fields.py:902 +#: forms/fields.py:901 msgid "" "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." msgstr "" @@ -4108,7 +4113,9 @@ msgstr "Si us plau, corregiu la dada duplicada per a %(field)s." #: forms/models.py:598 #, python-format msgid "Please correct the duplicate data for %(field)s, which must be unique." -msgstr "Si us plau, corregiu la dada duplicada per a %(field)s, la qual ha de ser única." +msgstr "" +"Si us plau, corregiu la dada duplicada per a %(field)s, la qual ha de ser " +"única." #: forms/models.py:604 #, python-format @@ -4116,8 +4123,8 @@ msgid "" "Please correct the duplicate data for %(field_name)s which must be unique " "for the %(lookup)s in %(date_field)s." msgstr "" -"Si us plau, corregiu la dada duplicada per a %(field_name)s, " -"la qual ha de ser única per a la cerca %(lookup)s en %(date_field)s." +"Si us plau, corregiu la dada duplicada per a %(field_name)s, la qual ha de " +"ser única per a la cerca %(lookup)s en %(date_field)s." #: forms/models.py:612 msgid "Please correct the duplicate values below." diff --git a/django/conf/locale/cs/LC_MESSAGES/djangojs.mo b/django/conf/locale/cs/LC_MESSAGES/djangojs.mo index 1a72a92caf05..481d98e60ec8 100644 Binary files a/django/conf/locale/cs/LC_MESSAGES/djangojs.mo and b/django/conf/locale/cs/LC_MESSAGES/djangojs.mo differ diff --git a/django/conf/locale/cs/LC_MESSAGES/djangojs.po b/django/conf/locale/cs/LC_MESSAGES/djangojs.po index adcc0a02cca0..299a9199befb 100644 --- a/django/conf/locale/cs/LC_MESSAGES/djangojs.po +++ b/django/conf/locale/cs/LC_MESSAGES/djangojs.po @@ -1,13 +1,15 @@ # Translation of djangojs.po to Czech # Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the DJANGO package. -# Radek Svarz , 2005. +# Radek Svarz , 2005, +# Vláďa Macek , 2009. # msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2008-08-20 12:52+0200\n" +"PO-Revision-Date: 2009-10-12 11:25+0200\n" "Language-Team: Czech\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,7 +19,7 @@ msgstr "" #: contrib/admin/media/js/SelectFilter2.js:33 #, perl-format msgid "Available %s" -msgstr "Dostupná %s" +msgstr "Dostupné položky: %s" #: contrib/admin/media/js/SelectFilter2.js:41 msgid "Choose all" @@ -34,7 +36,7 @@ msgstr "Odebrat" #: contrib/admin/media/js/SelectFilter2.js:53 #, perl-format msgid "Chosen %s" -msgstr "Vybraná %s" +msgstr "Vybrané položky: %s" #: contrib/admin/media/js/SelectFilter2.js:54 msgid "Select your choice(s) and click " @@ -50,12 +52,12 @@ msgid "" "January February March April May June July August September October November " "December" msgstr "" -"Leden Únor Březen Duben Květen Červen Červenec Srpen Září Říjen Listopad " -"Prosinec" +"leden únor březen duben květen červen červenec srpen září říjen listopad " +"prosinec" #: contrib/admin/media/js/calendar.js:25 msgid "S M T W T F S" -msgstr "N P U S C P S" +msgstr "n p ú s č p s" #: contrib/admin/media/js/dateparse.js:33 msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday" @@ -64,7 +66,7 @@ msgstr "Neděle Pondělí Úterý Středa Čtvrtek Pátek Sobota" #: contrib/admin/media/js/admin/CollapsedFieldsets.js:34 #: contrib/admin/media/js/admin/CollapsedFieldsets.js:72 msgid "Show" -msgstr "Ukázat" +msgstr "Zobrazit" #: contrib/admin/media/js/admin/CollapsedFieldsets.js:63 msgid "Hide" @@ -89,7 +91,7 @@ msgstr "Půlnoc" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:83 msgid "6 a.m." -msgstr "6 ráno" +msgstr "6h ráno" #: contrib/admin/media/js/admin/DateTimeShortcuts.js:84 msgid "Noon" diff --git a/django/conf/locale/es/LC_MESSAGES/django.mo b/django/conf/locale/es/LC_MESSAGES/django.mo index a8bd5f985de2..7ce078114cba 100644 Binary files a/django/conf/locale/es/LC_MESSAGES/django.mo and b/django/conf/locale/es/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/es/LC_MESSAGES/django.po b/django/conf/locale/es/LC_MESSAGES/django.po index fb5eec0c433a..3bfb6d10bcec 100644 --- a/django/conf/locale/es/LC_MESSAGES/django.po +++ b/django/conf/locale/es/LC_MESSAGES/django.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-07 15:15+0200\n" -"PO-Revision-Date: 2009-07-07 15:22+0200\n" +"POT-Creation-Date: 2009-11-30 11:39+0100\n" +"PO-Revision-Date: 2009-11-30 11:42+0100\n" "Last-Translator: Django Spanish Team Language-" "Team: Django Spanish Team MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -222,7 +222,7 @@ msgstr "chino tradicional" msgid "Successfully deleted %(count)d %(items)s." msgstr "Eliminado/s %(count)d %(items)s satisfactoriamente." -#: contrib/admin/actions.py:67 contrib/admin/options.py:1025 +#: contrib/admin/actions.py:67 contrib/admin/options.py:1027 msgid "Are you sure?" msgstr "¿Está seguro?" @@ -265,15 +265,15 @@ msgstr "Este mes" msgid "This year" msgstr "Este año" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:435 msgid "Yes" msgstr "Sí" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:435 msgid "No" msgstr "No" -#: contrib/admin/filterspecs.py:154 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:154 forms/widgets.py:435 msgid "Unknown" msgstr "Desconocido" @@ -343,70 +343,70 @@ msgstr "Eliminado/a \"%(object)s\" %(name)s." msgid "No fields changed." msgstr "No ha cambiado ningún campo." -#: contrib/admin/options.py:598 contrib/auth/admin.py:67 +#: contrib/admin/options.py:599 contrib/auth/admin.py:67 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." msgstr "Se añadió con éxito el %(name)s \"%(obj)s\"." -#: contrib/admin/options.py:602 contrib/admin/options.py:635 +#: contrib/admin/options.py:603 contrib/admin/options.py:636 #: contrib/auth/admin.py:75 msgid "You may edit it again below." msgstr "Puede editarlo de nuevo abajo." -#: contrib/admin/options.py:612 contrib/admin/options.py:645 +#: contrib/admin/options.py:613 contrib/admin/options.py:646 #, python-format msgid "You may add another %s below." msgstr "Puede añadir otro %s abajo." -#: contrib/admin/options.py:633 +#: contrib/admin/options.py:634 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." msgstr "Se modificó con éxito el %(name)s \"%(obj)s\"." -#: contrib/admin/options.py:641 +#: contrib/admin/options.py:642 #, python-format msgid "" "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." msgstr "" "Se añadió con éxito el %(name)s \"%(obj)s. Puede editarlo de nuevo abajo." -#: contrib/admin/options.py:772 +#: contrib/admin/options.py:773 #, python-format msgid "Add %s" msgstr "Añadir %s" -#: contrib/admin/options.py:803 contrib/admin/options.py:1003 +#: contrib/admin/options.py:804 contrib/admin/options.py:1005 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." msgstr "No existe ningún objeto %(name)s con la clave primaria %(key)r." -#: contrib/admin/options.py:860 +#: contrib/admin/options.py:861 #, python-format msgid "Change %s" msgstr "Modificar %s" -#: contrib/admin/options.py:904 +#: contrib/admin/options.py:905 msgid "Database error" msgstr "Error en la base de datos" -#: contrib/admin/options.py:940 +#: contrib/admin/options.py:941 #, python-format msgid "%(count)s %(name)s was changed successfully." msgid_plural "%(count)s %(name)s were changed successfully." msgstr[0] "%(count)s %(name)s fué modificado con éxito." msgstr[1] "%(count)s %(name)s fueron modificados con éxito." -#: contrib/admin/options.py:1018 +#: contrib/admin/options.py:1020 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "Se eliminó con éxito el %(name)s \"%(obj)s\"." -#: contrib/admin/options.py:1054 +#: contrib/admin/options.py:1057 #, python-format msgid "Change history: %s" msgstr "Histórico de modificaciones: %s" -#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 +#: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14 #: contrib/auth/forms.py:80 msgid "" "Please enter a correct username and password. Note that both fields are case-" @@ -415,11 +415,11 @@ msgstr "" "Por favor, introduzca un nombre de usuario y contraseña correctos. Note que " "ambos campos son sensibles a mayúsculas/minúsculas." -#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 +#: contrib/admin/sites.py:288 contrib/admin/views/decorators.py:40 msgid "Please log in again, because your session has expired." msgstr "Por favor, inicie sesión de nuevo, ya que su sesión ha caducado." -#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 +#: contrib/admin/sites.py:295 contrib/admin/views/decorators.py:47 msgid "" "Looks like your browser isn't configured to accept cookies. Please enable " "cookies, reload this page, and try again." @@ -427,29 +427,29 @@ msgstr "" "Parece que su navegador no está configurado para aceptar cookies. " "Actívelas , recargue esta página, e inténtelo de nuevo." -#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 +#: contrib/admin/sites.py:311 contrib/admin/sites.py:317 #: contrib/admin/views/decorators.py:66 msgid "Usernames cannot contain the '@' character." msgstr "Los nombres de usuario no pueden contener el carácter '@'." -#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 +#: contrib/admin/sites.py:314 contrib/admin/views/decorators.py:62 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "" "Su dirección de correo no es su nombre de usuario. Pruebe con '%s' en su " "lugar." -#: contrib/admin/sites.py:360 +#: contrib/admin/sites.py:370 msgid "Site administration" msgstr "Sitio administrativo" -#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 +#: contrib/admin/sites.py:384 contrib/admin/templates/admin/login.html:26 #: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/views/decorators.py:20 msgid "Log in" msgstr "Iniciar sesión" -#: contrib/admin/sites.py:417 +#: contrib/admin/sites.py:429 #, python-format msgid "%s administration" msgstr "Administración de %s" @@ -464,27 +464,27 @@ msgstr "Uno o más %(fieldname)s en %(name)s: %(obj)s" msgid "One or more %(fieldname)s in %(name)s:" msgstr "Uno o más %(fieldname)s en %(name)s:" -#: contrib/admin/widgets.py:71 +#: contrib/admin/widgets.py:72 msgid "Date:" msgstr "Fecha:" -#: contrib/admin/widgets.py:71 +#: contrib/admin/widgets.py:72 msgid "Time:" msgstr "Hora:" -#: contrib/admin/widgets.py:95 +#: contrib/admin/widgets.py:96 msgid "Currently:" msgstr "Actualmente:" -#: contrib/admin/widgets.py:95 +#: contrib/admin/widgets.py:96 msgid "Change:" msgstr "Modificar:" -#: contrib/admin/widgets.py:124 +#: contrib/admin/widgets.py:125 msgid "Lookup" msgstr "Buscar" -#: contrib/admin/widgets.py:236 +#: contrib/admin/widgets.py:237 msgid "Add Another" msgstr "Añadir otro" @@ -499,7 +499,7 @@ msgstr "Lo sentimos, pero no se encuentra la página solicitada." #: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/app_index.html:8 -#: contrib/admin/templates/admin/base.html:31 +#: contrib/admin/templates/admin/base.html:54 #: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/delete_confirmation.html:6 @@ -553,18 +553,18 @@ msgstr "Ir" msgid "%(name)s" msgstr "%(name)s" -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:27 msgid "Welcome," msgstr "Bienvenido/a," -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:32 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 msgid "Documentation" msgstr "Documentación" -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:40 #: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 @@ -572,7 +572,7 @@ msgstr "Documentación" msgid "Change password" msgstr "Cambiar contraseña" -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 msgid "Log out" @@ -598,7 +598,7 @@ msgstr "Histórico" #: contrib/admin/templates/admin/change_form.html:28 #: contrib/admin/templates/admin/edit_inline/stacked.html:13 -#: contrib/admin/templates/admin/edit_inline/tabular.html:27 +#: contrib/admin/templates/admin/edit_inline/tabular.html:28 msgid "View on site" msgstr "Ver en el sitio" @@ -668,9 +668,9 @@ msgstr "" #, python-format msgid "" "Are you sure you want to delete the selected %(object_name)s objects? All of " -"the following objects and it's related items will be deleted:" +"the following objects and their related items will be deleted:" msgstr "" -"¿Está seguro de que quiere borrar los %(object_name)s? Los siguientes " +"¿Está seguro de que quiere borrar los %(object_name)s seleccionados? Los siguientes " "objetos y sus elementos relacionados serán eliminados:" #: contrib/admin/templates/admin/filter.html:2 @@ -987,7 +987,7 @@ msgstr "Dirección de correo electrónico:" msgid "Reset my password" msgstr "Restablecer mi contraseña" -#: contrib/admin/templatetags/admin_list.py:299 +#: contrib/admin/templatetags/admin_list.py:304 msgid "All dates" msgstr "Todas las fechas" @@ -1009,146 +1009,146 @@ msgstr "sitio" msgid "template" msgstr "plantilla" -#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 -#: contrib/admindocs/views.py:62 +#: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63 +#: contrib/admindocs/views.py:65 msgid "tag:" msgstr "etiqueta:" -#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 -#: contrib/admindocs/views.py:95 +#: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96 +#: contrib/admindocs/views.py:98 msgid "filter:" msgstr "filtro:" -#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 -#: contrib/admindocs/views.py:159 +#: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160 +#: contrib/admindocs/views.py:162 msgid "view:" msgstr "vista:" -#: contrib/admindocs/views.py:187 +#: contrib/admindocs/views.py:190 #, python-format msgid "App %r not found" msgstr "Aplicación %r no encontrada" -#: contrib/admindocs/views.py:194 +#: contrib/admindocs/views.py:197 #, python-format msgid "Model %(model_name)r not found in app %(app_label)r" msgstr "" "El modelo %(model_name)r no se ha encontrado en la aplicación %(app_label)r" -#: contrib/admindocs/views.py:206 +#: contrib/admindocs/views.py:209 #, python-format msgid "the related `%(app_label)s.%(data_type)s` object" msgstr "el objeto relacionado `%(app_label)s.%(data_type)s`" -#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:225 -#: contrib/admindocs/views.py:230 contrib/admindocs/views.py:244 -#: contrib/admindocs/views.py:258 contrib/admindocs/views.py:263 +#: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266 msgid "model:" msgstr "modelo:" -#: contrib/admindocs/views.py:221 contrib/admindocs/views.py:253 +#: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256 #, python-format msgid "related `%(app_label)s.%(object_name)s` objects" msgstr "los objetos relacionados `%(app_label)s.%(object_name)s`" -#: contrib/admindocs/views.py:225 contrib/admindocs/views.py:258 +#: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261 #, python-format msgid "all %s" msgstr "todo %s" -#: contrib/admindocs/views.py:230 contrib/admindocs/views.py:263 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266 #, python-format msgid "number of %s" msgstr "número de %s" -#: contrib/admindocs/views.py:268 +#: contrib/admindocs/views.py:271 #, python-format msgid "Fields on %s objects" msgstr "Campos en %s objetos" -#: contrib/admindocs/views.py:331 contrib/admindocs/views.py:342 -#: contrib/admindocs/views.py:344 contrib/admindocs/views.py:350 -#: contrib/admindocs/views.py:351 contrib/admindocs/views.py:353 +#: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345 +#: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353 +#: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356 msgid "Integer" msgstr "Entero" -#: contrib/admindocs/views.py:332 +#: contrib/admindocs/views.py:335 msgid "Boolean (Either True or False)" msgstr "Booleano (Verdadero o Falso)" -#: contrib/admindocs/views.py:333 contrib/admindocs/views.py:352 +#: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355 #, python-format msgid "String (up to %(max_length)s)" msgstr "Cadena (máximo %(max_length)s)" -#: contrib/admindocs/views.py:334 +#: contrib/admindocs/views.py:337 msgid "Comma-separated integers" msgstr "Enteros separados por comas" -#: contrib/admindocs/views.py:335 +#: contrib/admindocs/views.py:338 msgid "Date (without time)" msgstr "Fecha (sin hora)" -#: contrib/admindocs/views.py:336 +#: contrib/admindocs/views.py:339 msgid "Date (with time)" msgstr "Fecha (con hora)" -#: contrib/admindocs/views.py:337 +#: contrib/admindocs/views.py:340 msgid "Decimal number" msgstr "Número decimal" -#: contrib/admindocs/views.py:338 +#: contrib/admindocs/views.py:341 msgid "E-mail address" msgstr "Dirección de correo electrónico" -#: contrib/admindocs/views.py:339 contrib/admindocs/views.py:340 -#: contrib/admindocs/views.py:343 +#: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343 +#: contrib/admindocs/views.py:346 msgid "File path" msgstr "Ruta de fichero" -#: contrib/admindocs/views.py:341 +#: contrib/admindocs/views.py:344 msgid "Floating point number" msgstr "Número en coma flotante" -#: contrib/admindocs/views.py:345 contrib/comments/models.py:60 +#: contrib/admindocs/views.py:348 contrib/comments/models.py:60 msgid "IP address" msgstr "Dirección IP" -#: contrib/admindocs/views.py:347 +#: contrib/admindocs/views.py:350 msgid "Boolean (Either True, False or None)" msgstr "Booleano (Verdadero, Falso o Nulo)" -#: contrib/admindocs/views.py:348 +#: contrib/admindocs/views.py:351 msgid "Relation to parent model" msgstr "Relación con el modelo padre" -#: contrib/admindocs/views.py:349 +#: contrib/admindocs/views.py:352 msgid "Phone number" msgstr "Número de teléfono" -#: contrib/admindocs/views.py:354 +#: contrib/admindocs/views.py:357 msgid "Text" msgstr "Texto" -#: contrib/admindocs/views.py:355 +#: contrib/admindocs/views.py:358 msgid "Time" msgstr "Hora" -#: contrib/admindocs/views.py:356 contrib/comments/forms.py:95 +#: contrib/admindocs/views.py:359 contrib/comments/forms.py:95 #: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 msgid "URL" msgstr "URL" -#: contrib/admindocs/views.py:357 +#: contrib/admindocs/views.py:360 msgid "U.S. state (two uppercase letters)" msgstr "Estado de los EEUU (dos letras mayúsculas)" -#: contrib/admindocs/views.py:358 +#: contrib/admindocs/views.py:361 msgid "XML text" msgstr "Texto XML" -#: contrib/admindocs/views.py:384 +#: contrib/admindocs/views.py:387 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s no parece ser un objeto urlpattern" @@ -1445,7 +1445,7 @@ msgstr "mensaje" msgid "Logged out" msgstr "Sesión terminada" -#: contrib/auth/management/commands/createsuperuser.py:23 forms/fields.py:429 +#: contrib/auth/management/commands/createsuperuser.py:23 forms/fields.py:428 msgid "Enter a valid e-mail address." msgstr "Introduzca una dirección de correo electrónico válida." @@ -1598,7 +1598,7 @@ msgstr "marcas de comentario" #: contrib/comments/templates/comments/approve.html:4 msgid "Approve a comment" -msgstr "Aprovar un comentario" +msgstr "Aprobar un comentario" #: contrib/comments/templates/comments/approve.html:7 msgid "Really make this comment public?" @@ -1815,8 +1815,8 @@ msgid "" "An error occurred when transforming the geometry to the SRID of the geometry " "form field." msgstr "" -"Ocurrió un error al transformar la geometria al SRID de la geometria " -"del campo de formulario." +"Ocurrió un error al transformar la geometria al SRID de la geometria del " +"campo de formulario." #: contrib/humanize/templatetags/humanize.py:19 msgid "th" @@ -2611,6 +2611,10 @@ msgstr "El número de cuenta bancaria es incorrecto." msgid "Enter a valid Finnish social security number." msgstr "Introduzca un número de seguro social finlandés válido." +#: contrib/localflavor/fr/forms.py:30 +msgid "Phone numbers must be in 0X XX XX XX XX format." +msgstr "Los números de teléfono deben tener el formato 0X XX XX XX XX." + #: contrib/localflavor/in_/forms.py:14 msgid "Enter a zip code in the format XXXXXXX." msgstr "Introduzca un código postal en el formato XXXXXXX." @@ -3052,7 +3056,8 @@ msgstr "El Número de Identificación Tributaria (NIP) es incorrecto." #: contrib/localflavor/pl/forms.py:109 msgid "National Business Register Number (REGON) consists of 9 or 14 digits." msgstr "" -"El Número Nacional de Registro de Negocios (REGON) consiste en 9 o 14 dígitos." +"El Número Nacional de Registro de Negocios (REGON) consiste en 9 o 14 " +"dígitos." #: contrib/localflavor/pl/forms.py:110 msgid "Wrong checksum for the National Business Register Number (REGON)." @@ -3960,88 +3965,88 @@ msgstr[1] "" "Por favor, introduzca IDs de %(self)s válidos. Los valores %(value)r no son " "válidos." -#: forms/fields.py:54 +#: forms/fields.py:53 msgid "This field is required." msgstr "Este campo es obligatorio." -#: forms/fields.py:55 +#: forms/fields.py:54 msgid "Enter a valid value." msgstr "Introduzca un valor correcto." -#: forms/fields.py:138 +#: forms/fields.py:137 #, python-format msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." msgstr "" "Asegúrese de que su texto tiene a lo más %(max)d caracteres (actualmente " "tiene %(length)d)." -#: forms/fields.py:139 +#: forms/fields.py:138 #, python-format msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." msgstr "" "Asegúrese de que su texto tiene al menos %(min)d caracteres (actualmente " "tiene %(length)d)." -#: forms/fields.py:166 +#: forms/fields.py:165 msgid "Enter a whole number." msgstr "Introduzca un número entero." -#: forms/fields.py:167 forms/fields.py:196 forms/fields.py:225 +#: forms/fields.py:166 forms/fields.py:195 forms/fields.py:224 #, python-format msgid "Ensure this value is less than or equal to %s." msgstr "Asegúrese de que este valor es menor o igual a %s." -#: forms/fields.py:168 forms/fields.py:197 forms/fields.py:226 +#: forms/fields.py:167 forms/fields.py:196 forms/fields.py:225 #, python-format msgid "Ensure this value is greater than or equal to %s." msgstr "Asegúrese de que este valor es mayor o igual a %s." -#: forms/fields.py:195 forms/fields.py:224 +#: forms/fields.py:194 forms/fields.py:223 msgid "Enter a number." msgstr "Introduzca un número." -#: forms/fields.py:227 +#: forms/fields.py:226 #, python-format msgid "Ensure that there are no more than %s digits in total." msgstr "Asegúrese de que no hay más de %s dígitos en total." -#: forms/fields.py:228 +#: forms/fields.py:227 #, python-format msgid "Ensure that there are no more than %s decimal places." msgstr "Asegúrese de que no hay más de %s decimales." -#: forms/fields.py:229 +#: forms/fields.py:228 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Asegúrese de que no hay más de %s dígitos antes de la coma decimal." -#: forms/fields.py:288 forms/fields.py:863 +#: forms/fields.py:287 forms/fields.py:862 msgid "Enter a valid date." msgstr "Introduzca una fecha válida." -#: forms/fields.py:322 forms/fields.py:864 +#: forms/fields.py:321 forms/fields.py:863 msgid "Enter a valid time." msgstr "Introduzca una hora válida." -#: forms/fields.py:361 +#: forms/fields.py:360 msgid "Enter a valid date/time." msgstr "Introduzca una fecha/hora válida." -#: forms/fields.py:447 +#: forms/fields.py:446 msgid "No file was submitted. Check the encoding type on the form." msgstr "" "No se ha enviado ningún fichero. Compruebe el tipo de codificación en el " "formulario." -#: forms/fields.py:448 +#: forms/fields.py:447 msgid "No file was submitted." msgstr "No se ha enviado ningún fichero" -#: forms/fields.py:449 +#: forms/fields.py:448 msgid "The submitted file is empty." msgstr "El fichero enviado está vacío." -#: forms/fields.py:450 +#: forms/fields.py:449 #, python-format msgid "" "Ensure this filename has at most %(max)d characters (it has %(length)d)." @@ -4049,7 +4054,7 @@ msgstr "" "Asegúrese de que su texto tiene no más de %(max)d caracteres (actualmente " "tiene %(length)d)." -#: forms/fields.py:483 +#: forms/fields.py:482 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -4057,29 +4062,29 @@ msgstr "" "Envíe una imagen válida. El fichero que ha enviado no era una imagen o se " "trataba de una imagen corrupta." -#: forms/fields.py:544 +#: forms/fields.py:543 msgid "Enter a valid URL." msgstr "Introduzca una URL válida." -#: forms/fields.py:545 +#: forms/fields.py:544 msgid "This URL appears to be a broken link." msgstr "La URL parece ser un enlace roto." -#: forms/fields.py:625 forms/fields.py:703 +#: forms/fields.py:624 forms/fields.py:702 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "" "Escoja una opción válida. %(value)s no es una de las opciones disponibles." -#: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003 +#: forms/fields.py:703 forms/fields.py:764 forms/models.py:1003 msgid "Enter a list of values." msgstr "Introduzca una lista de valores." -#: forms/fields.py:892 +#: forms/fields.py:891 msgid "Enter a valid IPv4 address." msgstr "Introduzca una dirección IPv4 válida." -#: forms/fields.py:902 +#: forms/fields.py:901 msgid "" "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." msgstr "" diff --git a/django/conf/locale/fr/LC_MESSAGES/django.mo b/django/conf/locale/fr/LC_MESSAGES/django.mo index 11339831750b..f1994164eea5 100644 Binary files a/django/conf/locale/fr/LC_MESSAGES/django.mo and b/django/conf/locale/fr/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/fr/LC_MESSAGES/django.po b/django/conf/locale/fr/LC_MESSAGES/django.po index 035da37dcc8b..464c17dc0f1d 100644 --- a/django/conf/locale/fr/LC_MESSAGES/django.po +++ b/django/conf/locale/fr/LC_MESSAGES/django.po @@ -2,13 +2,16 @@ # This file is distributed under the same license as the Django package. # Copyright (C) 2008 Django Software Foundation and individual contributors. # +# Stéphane Raimbault , 2009 +# Claude Paroz , 2009 +# msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-03-01 12:35+0100\n" -"PO-Revision-Date: 2009-03-01 12:35+0100\n" -"Last-Translator: Stéphane Raimbault \n" +"POT-Creation-Date: 2009-08-06 15:05+0200\n" +"PO-Revision-Date: 2009-08-06 15:09+0200\n" +"Last-Translator: Claude Paroz \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -219,6 +222,20 @@ msgstr "Chinois simplifié" msgid "Traditional Chinese" msgstr "Chinois traditionnel" +#: contrib/admin/actions.py:60 +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "%(count)d %(items)s supprimés avec succès." + +#: contrib/admin/actions.py:67 contrib/admin/options.py:1027 +msgid "Are you sure?" +msgstr "Êtes-vous sûr ?" + +#: contrib/admin/actions.py:85 +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Supprimer les %(verbose_name_plural)s sélectionnés" + #: contrib/admin/filterspecs.py:44 #, python-format msgid "" @@ -228,43 +245,47 @@ msgstr "" "

    Par %s :

    \n" "
      \n" -#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:91 -#: contrib/admin/filterspecs.py:146 contrib/admin/filterspecs.py:172 +#: contrib/admin/filterspecs.py:75 contrib/admin/filterspecs.py:92 +#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173 msgid "All" msgstr "Tout" -#: contrib/admin/filterspecs.py:112 +#: contrib/admin/filterspecs.py:113 msgid "Any date" msgstr "Toutes les dates" -#: contrib/admin/filterspecs.py:113 +#: contrib/admin/filterspecs.py:114 msgid "Today" msgstr "Aujourd'hui" -#: contrib/admin/filterspecs.py:116 +#: contrib/admin/filterspecs.py:117 msgid "Past 7 days" msgstr "Les 7 derniers jours" -#: contrib/admin/filterspecs.py:118 +#: contrib/admin/filterspecs.py:119 msgid "This month" msgstr "Ce mois-ci" -#: contrib/admin/filterspecs.py:120 +#: contrib/admin/filterspecs.py:121 msgid "This year" msgstr "Cette année" -#: contrib/admin/filterspecs.py:146 forms/widgets.py:390 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 msgid "Yes" msgstr "Oui" -#: contrib/admin/filterspecs.py:146 forms/widgets.py:390 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 msgid "No" msgstr "Non" -#: contrib/admin/filterspecs.py:153 forms/widgets.py:390 +#: contrib/admin/filterspecs.py:154 forms/widgets.py:434 msgid "Unknown" msgstr "Inconnu" +#: contrib/admin/helpers.py:14 +msgid "Action:" +msgstr "Action :" + #: contrib/admin/models.py:19 msgid "action time" msgstr "heure de l'action" @@ -293,60 +314,61 @@ msgstr "entrée d'historique" msgid "log entries" msgstr "entrées d'historique" -#: contrib/admin/options.py:129 contrib/admin/options.py:143 +#: contrib/admin/options.py:133 contrib/admin/options.py:147 msgid "None" msgstr "Aucun(e)" -#: contrib/admin/options.py:375 +#: contrib/admin/options.py:519 #, python-format msgid "Changed %s." msgstr "Modifié %s." -#: contrib/admin/options.py:375 contrib/admin/options.py:385 -#: contrib/comments/templates/comments/preview.html:15 forms/models.py:294 +#: contrib/admin/options.py:519 contrib/admin/options.py:529 +#: contrib/comments/templates/comments/preview.html:16 forms/models.py:388 +#: forms/models.py:600 msgid "and" msgstr "et" -#: contrib/admin/options.py:380 +#: contrib/admin/options.py:524 #, python-format msgid "Added %(name)s \"%(object)s\"." msgstr "%(name)s « %(object)s » ajouté." -#: contrib/admin/options.py:384 +#: contrib/admin/options.py:528 #, python-format msgid "Changed %(list)s for %(name)s \"%(object)s\"." msgstr "%(list)s modifié pour %(name)s « %(object)s »." -#: contrib/admin/options.py:389 +#: contrib/admin/options.py:533 #, python-format msgid "Deleted %(name)s \"%(object)s\"." msgstr "%(name)s « %(object)s » supprimé." -#: contrib/admin/options.py:393 +#: contrib/admin/options.py:537 msgid "No fields changed." msgstr "Aucun champ modifié." -#: contrib/admin/options.py:454 contrib/auth/admin.py:67 +#: contrib/admin/options.py:599 contrib/auth/admin.py:67 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." msgstr "L'objet %(name)s « %(obj)s » a été ajouté avec succès." -#: contrib/admin/options.py:458 contrib/admin/options.py:491 +#: contrib/admin/options.py:603 contrib/admin/options.py:636 #: contrib/auth/admin.py:75 msgid "You may edit it again below." msgstr "Vous pouvez continuer l'édition ci-dessous." -#: contrib/admin/options.py:468 contrib/admin/options.py:501 +#: contrib/admin/options.py:613 contrib/admin/options.py:646 #, python-format msgid "You may add another %s below." msgstr "Vous pouvez ajouter un autre %s ci-dessous." -#: contrib/admin/options.py:489 +#: contrib/admin/options.py:634 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." msgstr "L'objet %(name)s « %(obj)s » a été modifié avec succès." -#: contrib/admin/options.py:497 +#: contrib/admin/options.py:642 #, python-format msgid "" "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." @@ -355,41 +377,44 @@ msgstr "" "l'édition ci-dessous." # Titre -#: contrib/admin/options.py:565 +#: contrib/admin/options.py:773 #, python-format msgid "Add %s" msgstr "Ajout %s" -#: contrib/admin/options.py:596 contrib/admin/options.py:710 +#: contrib/admin/options.py:804 contrib/admin/options.py:1005 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." msgstr "L'objet %(name)s avec la clef primaire %(key)r n'existe pas." # Titre -#: contrib/admin/options.py:643 +#: contrib/admin/options.py:861 #, python-format msgid "Change %s" -msgstr "Changement %s" +msgstr "Modification de %s" -#: contrib/admin/options.py:675 +#: contrib/admin/options.py:905 msgid "Database error" msgstr "Erreur de base de données" -#: contrib/admin/options.py:725 +#: contrib/admin/options.py:941 +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "%(count)s objet %(name)s a été modifié avec succès." +msgstr[1] "%(count)s objets %(name)s ont été modifiés avec succès." + +#: contrib/admin/options.py:1020 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "L'objet %(name)s « %(obj)s » a été supprimé avec succès." -#: contrib/admin/options.py:732 -msgid "Are you sure?" -msgstr "Êtes-vous sûr ?" - -#: contrib/admin/options.py:761 +#: contrib/admin/options.py:1057 #, python-format msgid "Change history: %s" msgstr "Historique des changements : %s" -#: contrib/admin/sites.py:15 contrib/admin/views/decorators.py:14 +#: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14 #: contrib/auth/forms.py:80 msgid "" "Please enter a correct username and password. Note that both fields are case-" @@ -399,11 +424,11 @@ msgstr "" "chacun de ces champs est sensible à la casse (différenciation des majuscules/" "minuscules)." -#: contrib/admin/sites.py:242 contrib/admin/views/decorators.py:40 +#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40 msgid "Please log in again, because your session has expired." msgstr "Reconnectez-vous car votre session a expiré." -#: contrib/admin/sites.py:249 contrib/admin/views/decorators.py:47 +#: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47 msgid "" "Looks like your browser isn't configured to accept cookies. Please enable " "cookies, reload this page, and try again." @@ -411,64 +436,64 @@ msgstr "" "Il semblerait que votre navigateur n'accepte pas les cookies. Activez-les, " "rechargez cette page puis essayez à nouveau." -#: contrib/admin/sites.py:265 contrib/admin/sites.py:271 +#: contrib/admin/sites.py:308 contrib/admin/sites.py:314 #: contrib/admin/views/decorators.py:66 msgid "Usernames cannot contain the '@' character." msgstr "Les noms d'utilisateur ne peuvent contenir le caractère « @ »." -#: contrib/admin/sites.py:268 contrib/admin/views/decorators.py:62 +#: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "" "Votre adresse électronique n'est pas votre nom d'utilisateur. Essayez « %s » " "à la place." -#: contrib/admin/sites.py:328 +#: contrib/admin/sites.py:367 msgid "Site administration" msgstr "Administration du site" -#: contrib/admin/sites.py:341 contrib/admin/templates/admin/login.html:26 +#: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26 #: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/views/decorators.py:20 msgid "Log in" msgstr "Connexion" -#: contrib/admin/sites.py:388 +#: contrib/admin/sites.py:426 #, python-format msgid "%s administration" msgstr "Administration %s" -#: contrib/admin/util.py:144 +#: contrib/admin/util.py:168 #, python-format msgid "One or more %(fieldname)s in %(name)s: %(obj)s" msgstr "Un ou plusieurs %(fieldname)s dans %(name)s : %(obj)s" -#: contrib/admin/util.py:149 +#: contrib/admin/util.py:173 #, python-format msgid "One or more %(fieldname)s in %(name)s:" msgstr "Un ou plusieurs %(fieldname)s dans %(name)s :" -#: contrib/admin/widgets.py:70 +#: contrib/admin/widgets.py:71 msgid "Date:" msgstr "Date :" -#: contrib/admin/widgets.py:70 +#: contrib/admin/widgets.py:71 msgid "Time:" msgstr "Heure :" -#: contrib/admin/widgets.py:94 +#: contrib/admin/widgets.py:95 msgid "Currently:" msgstr "Actuellement :" -#: contrib/admin/widgets.py:94 +#: contrib/admin/widgets.py:95 msgid "Change:" msgstr "Modification :" -#: contrib/admin/widgets.py:123 +#: contrib/admin/widgets.py:124 msgid "Lookup" msgstr "Recherche" -#: contrib/admin/widgets.py:230 +#: contrib/admin/widgets.py:236 msgid "Add Another" msgstr "Ajouter un autre" @@ -483,10 +508,11 @@ msgstr "Nous sommes désolés, mais la page demandée est introuvable." #: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/app_index.html:8 -#: contrib/admin/templates/admin/base.html:33 +#: contrib/admin/templates/admin/base.html:54 #: contrib/admin/templates/admin/change_form.html:17 -#: contrib/admin/templates/admin/change_list.html:8 +#: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/delete_confirmation.html:6 +#: contrib/admin/templates/admin/delete_selected_confirmation.html:6 #: contrib/admin/templates/admin/invalid_setup.html:4 #: contrib/admin/templates/admin/object_history.html:6 #: contrib/admin/templates/admin/auth/user/change_password.html:10 @@ -522,32 +548,40 @@ msgstr "" "administrateurs du site et sera corrigée dans les meilleurs délais. Merci " "pour votre patience." +#: contrib/admin/templates/admin/actions.html:4 +msgid "Run the selected action" +msgstr "Exécuter l'action sélectionnée" + +#: contrib/admin/templates/admin/actions.html:4 +msgid "Go" +msgstr "Envoyer" + #: contrib/admin/templates/admin/app_index.html:10 #: contrib/admin/templates/admin/index.html:19 #, python-format msgid "%(name)s" msgstr "%(name)s" -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:27 msgid "Welcome," msgstr "Bienvenue," -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:32 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 msgid "Documentation" msgstr "Documentation" -#: contrib/admin/templates/admin/base.html:28 -#: contrib/admin/templates/admin/auth/user/change_password.html:13 -#: contrib/admin/templates/admin/auth/user/change_password.html:46 +#: contrib/admin/templates/admin/base.html:40 +#: contrib/admin/templates/admin/auth/user/change_password.html:14 +#: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 msgid "Change password" msgstr "Modifier votre mot de passe" -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 msgid "Log out" @@ -578,23 +612,24 @@ msgid "View on site" msgstr "Voir sur le site" #: contrib/admin/templates/admin/change_form.html:38 -#: contrib/admin/templates/admin/auth/user/change_password.html:22 +#: contrib/admin/templates/admin/change_list.html:54 +#: contrib/admin/templates/admin/auth/user/change_password.html:23 msgid "Please correct the error below." msgid_plural "Please correct the errors below." msgstr[0] "Corrigez l'erreur suivante." msgstr[1] "Corrigez les erreurs suivantes." -#: contrib/admin/templates/admin/change_list.html:16 +#: contrib/admin/templates/admin/change_list.html:46 #, python-format msgid "Add %(name)s" msgstr "Ajouter %(name)s" -#: contrib/admin/templates/admin/change_list.html:26 +#: contrib/admin/templates/admin/change_list.html:65 msgid "Filter" msgstr "Filtre" #: contrib/admin/templates/admin/delete_confirmation.html:10 -#: contrib/admin/templates/admin/submit_line.html:4 forms/formsets.py:246 +#: contrib/admin/templates/admin/submit_line.html:4 forms/formsets.py:275 msgid "Delete" msgstr "Supprimer" @@ -619,9 +654,34 @@ msgstr "" "s » ? Les éléments suivants sont liés à celui-ci et seront aussi supprimés :" #: contrib/admin/templates/admin/delete_confirmation.html:28 +#: contrib/admin/templates/admin/delete_selected_confirmation.html:33 msgid "Yes, I'm sure" msgstr "Oui, j'en suis certain" +#: contrib/admin/templates/admin/delete_selected_confirmation.html:9 +msgid "Delete multiple objects" +msgstr "Supprimer plusieurs objets" + +#: contrib/admin/templates/admin/delete_selected_confirmation.html:15 +#, python-format +msgid "" +"Deleting the %(object_name)s would result in deleting related objects, but " +"your account doesn't have permission to delete the following types of " +"objects:" +msgstr "" +"Supprimer l'objet %(object_name)s provoquerait la suppression des objets qui " +"lui sont liés, mais votre compte ne possède pas la permission de supprimer " +"les types d'objets suivants :" + +#: contrib/admin/templates/admin/delete_selected_confirmation.html:22 +#, python-format +msgid "" +"Are you sure you want to delete the selected %(object_name)s objects? All of " +"the following objects and it's related items will be deleted:" +msgstr "" +"Voulez-vous vraiment supprimer les objets %(object_name)s sélectionnés ? " +"Tous les objets suivants et leurs éléments liés seront aussi supprimés :" + #: contrib/admin/templates/admin/filter.html:2 #, python-format msgid " By %(filter_title)s " @@ -652,6 +712,10 @@ msgstr "Mes actions" msgid "None available" msgstr "Aucun(e) disponible" +#: contrib/admin/templates/admin/index.html:72 +msgid "Unknown content" +msgstr "Contenu inconnu" + #: contrib/admin/templates/admin/invalid_setup.html:7 msgid "" "Something's wrong with your database installation. Make sure the appropriate " @@ -684,7 +748,7 @@ msgid "Action" msgstr "Action" #: contrib/admin/templates/admin/object_history.html:30 -#: utils/translation/trans_real.py:404 +#: utils/translation/trans_real.py:400 msgid "DATETIME_FORMAT" msgstr "j F Y, G:i" @@ -700,9 +764,14 @@ msgstr "" msgid "Show all" msgstr "Tout afficher" +#: contrib/admin/templates/admin/pagination.html:11 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Save" +msgstr "Enregistrer" + #: contrib/admin/templates/admin/search_form.html:8 -msgid "Go" -msgstr "Envoyer" +msgid "Search" +msgstr "Rechercher" #: contrib/admin/templates/admin/search_form.html:10 #, python-format @@ -716,10 +785,6 @@ msgstr[1] "%(counter)s résultats" msgid "%(full_result_count)s total" msgstr "%(full_result_count)s résultats" -#: contrib/admin/templates/admin/submit_line.html:3 -msgid "Save" -msgstr "Enregistrer" - #: contrib/admin/templates/admin/submit_line.html:5 msgid "Save as new" msgstr "Enregistrer en tant que nouveau" @@ -746,23 +811,23 @@ msgid "Username" msgstr "Nom d'utilisateur" #: contrib/admin/templates/admin/auth/user/add_form.html:20 -#: contrib/admin/templates/admin/auth/user/change_password.html:33 +#: contrib/admin/templates/admin/auth/user/change_password.html:34 #: contrib/auth/forms.py:17 contrib/auth/forms.py:60 contrib/auth/forms.py:185 msgid "Password" msgstr "Mot de passe" #: contrib/admin/templates/admin/auth/user/add_form.html:26 -#: contrib/admin/templates/admin/auth/user/change_password.html:39 +#: contrib/admin/templates/admin/auth/user/change_password.html:40 #: contrib/auth/forms.py:186 msgid "Password (again)" msgstr "Mot de passe (à nouveau)" #: contrib/admin/templates/admin/auth/user/add_form.html:27 -#: contrib/admin/templates/admin/auth/user/change_password.html:40 +#: contrib/admin/templates/admin/auth/user/change_password.html:41 msgid "Enter the same password as above, for verification." msgstr "Saisissez le même mot de passe que précédemment, par sécurité." -#: contrib/admin/templates/admin/auth/user/change_password.html:26 +#: contrib/admin/templates/admin/auth/user/change_password.html:27 #, python-format msgid "Enter a new password for the user %(username)s." msgstr "" @@ -931,167 +996,168 @@ msgstr "Adresse électronique :" msgid "Reset my password" msgstr "Réinitialiser mon mot de passe" -#: contrib/admin/templatetags/admin_list.py:285 +#: contrib/admin/templatetags/admin_list.py:299 msgid "All dates" msgstr "Toutes les dates" -#: contrib/admin/views/main.py:69 +#: contrib/admin/views/main.py:70 #, python-format msgid "Select %s" msgstr "Sélectionnez %s" -#: contrib/admin/views/main.py:69 +#: contrib/admin/views/main.py:70 #, python-format msgid "Select %s to change" msgstr "Sélectionnez l'objet %s à changer" -#: contrib/admin/views/template.py:36 contrib/sites/models.py:38 +#: contrib/admin/views/template.py:37 contrib/sites/models.py:38 msgid "site" msgstr "site" -#: contrib/admin/views/template.py:38 +#: contrib/admin/views/template.py:39 msgid "template" msgstr "template" -#: contrib/admindocs/views.py:57 contrib/admindocs/views.py:59 -#: contrib/admindocs/views.py:61 +#: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63 +#: contrib/admindocs/views.py:65 msgid "tag:" msgstr "mot-clé :" -#: contrib/admindocs/views.py:90 contrib/admindocs/views.py:92 -#: contrib/admindocs/views.py:94 +#: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96 +#: contrib/admindocs/views.py:98 msgid "filter:" msgstr "filtre :" -#: contrib/admindocs/views.py:154 contrib/admindocs/views.py:156 -#: contrib/admindocs/views.py:158 +#: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160 +#: contrib/admindocs/views.py:162 msgid "view:" msgstr "vue :" -#: contrib/admindocs/views.py:186 +#: contrib/admindocs/views.py:190 #, python-format msgid "App %r not found" msgstr "L'application %r n'a pas été trouvée" -#: contrib/admindocs/views.py:193 +#: contrib/admindocs/views.py:197 #, python-format msgid "Model %(model_name)r not found in app %(app_label)r" msgstr "" "Le modèle %(model_name)r n'a pas été trouvé dans l'application %(app_label)r" -#: contrib/admindocs/views.py:205 +#: contrib/admindocs/views.py:209 #, python-format msgid "the related `%(app_label)s.%(data_type)s` object" msgstr "l'objet « %(app_label)s.%(data_type)s » en relation" -#: contrib/admindocs/views.py:205 contrib/admindocs/views.py:227 -#: contrib/admindocs/views.py:241 contrib/admindocs/views.py:246 +#: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266 msgid "model:" msgstr "modèle :" -#: contrib/admindocs/views.py:236 +#: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256 #, python-format msgid "related `%(app_label)s.%(object_name)s` objects" msgstr "les objets « %(app_label)s.%(object_name)s » en relation" -#: contrib/admindocs/views.py:241 +#: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261 #, python-format msgid "all %s" msgstr "tous les %s" -#: contrib/admindocs/views.py:246 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266 #, python-format msgid "number of %s" msgstr "nombre de %s" -#: contrib/admindocs/views.py:251 +#: contrib/admindocs/views.py:271 #, python-format msgid "Fields on %s objects" msgstr "Champs sur les objets %s" -#: contrib/admindocs/views.py:314 contrib/admindocs/views.py:325 -#: contrib/admindocs/views.py:327 contrib/admindocs/views.py:333 -#: contrib/admindocs/views.py:334 contrib/admindocs/views.py:336 +#: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345 +#: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353 +#: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356 msgid "Integer" msgstr "Entier" -#: contrib/admindocs/views.py:315 +#: contrib/admindocs/views.py:335 msgid "Boolean (Either True or False)" msgstr "Booléen (soit vrai ou faux)" -#: contrib/admindocs/views.py:316 contrib/admindocs/views.py:335 +#: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355 #, python-format msgid "String (up to %(max_length)s)" msgstr "Chaîne de caractère (jusqu'à %(max_length)s)" -#: contrib/admindocs/views.py:317 +#: contrib/admindocs/views.py:337 msgid "Comma-separated integers" msgstr "Des entiers séparés par une virgule" -#: contrib/admindocs/views.py:318 +#: contrib/admindocs/views.py:338 msgid "Date (without time)" msgstr "Date (sans l'heure)" -#: contrib/admindocs/views.py:319 +#: contrib/admindocs/views.py:339 msgid "Date (with time)" msgstr "Date (avec l'heure)" -#: contrib/admindocs/views.py:320 +#: contrib/admindocs/views.py:340 msgid "Decimal number" msgstr "Nombre décimal" -#: contrib/admindocs/views.py:321 +#: contrib/admindocs/views.py:341 msgid "E-mail address" msgstr "Adresse électronique" -#: contrib/admindocs/views.py:322 contrib/admindocs/views.py:323 -#: contrib/admindocs/views.py:326 +#: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343 +#: contrib/admindocs/views.py:346 msgid "File path" msgstr "Chemin vers le fichier" -#: contrib/admindocs/views.py:324 +#: contrib/admindocs/views.py:344 msgid "Floating point number" msgstr "Nombre à virgule flottante" -#: contrib/admindocs/views.py:328 contrib/comments/models.py:58 +#: contrib/admindocs/views.py:348 contrib/comments/models.py:60 msgid "IP address" msgstr "adresse IP" -#: contrib/admindocs/views.py:330 +#: contrib/admindocs/views.py:350 msgid "Boolean (Either True, False or None)" msgstr "Booléen (soit vrai, faux ou nul)" -#: contrib/admindocs/views.py:331 +#: contrib/admindocs/views.py:351 msgid "Relation to parent model" msgstr "Relation au modèle parent" -#: contrib/admindocs/views.py:332 +#: contrib/admindocs/views.py:352 msgid "Phone number" msgstr "Numéro de téléphone" -#: contrib/admindocs/views.py:337 +#: contrib/admindocs/views.py:357 msgid "Text" msgstr "Texte" -#: contrib/admindocs/views.py:338 +#: contrib/admindocs/views.py:358 msgid "Time" msgstr "Heure" -#: contrib/admindocs/views.py:339 contrib/comments/forms.py:19 +#: contrib/admindocs/views.py:359 contrib/comments/forms.py:95 #: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 msgid "URL" msgstr "URL" -#: contrib/admindocs/views.py:340 +#: contrib/admindocs/views.py:360 msgid "U.S. state (two uppercase letters)" msgstr "État Américain (deux lettres majuscules)" -#: contrib/admindocs/views.py:341 +#: contrib/admindocs/views.py:361 msgid "XML text" msgstr "Texte XML" -#: contrib/admindocs/views.py:367 +#: contrib/admindocs/views.py:387 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s ne semble pas être un objet urlpattern" @@ -1195,7 +1261,7 @@ msgid "Change password: %s" msgstr "Modifier le mot de passe : %s" #: contrib/auth/forms.py:15 contrib/auth/forms.py:48 -#: contrib/auth/models.py:127 +#: contrib/auth/models.py:128 msgid "" "Required. 30 characters or fewer. Alphanumeric characters only (letters, " "digits and underscores)." @@ -1286,31 +1352,31 @@ msgstr "permissions" msgid "group" msgstr "groupe" -#: contrib/auth/models.py:91 contrib/auth/models.py:137 +#: contrib/auth/models.py:91 contrib/auth/models.py:138 msgid "groups" msgstr "groupes" -#: contrib/auth/models.py:127 +#: contrib/auth/models.py:128 msgid "username" msgstr "nom d'utilisateur" -#: contrib/auth/models.py:128 +#: contrib/auth/models.py:129 msgid "first name" msgstr "prénom" -#: contrib/auth/models.py:129 +#: contrib/auth/models.py:130 msgid "last name" msgstr "nom" -#: contrib/auth/models.py:130 +#: contrib/auth/models.py:131 msgid "e-mail address" msgstr "adresse électronique" -#: contrib/auth/models.py:131 +#: contrib/auth/models.py:132 msgid "password" msgstr "mot de passe" -#: contrib/auth/models.py:131 +#: contrib/auth/models.py:132 msgid "" "Use '[algo]$[salt]$[hexdigest]' or use the change " "password form." @@ -1318,19 +1384,19 @@ msgstr "" "Utilisez « [algo]$[salt]$[hexdigest] » ou le formulaire " "de changement de mot de passe." -#: contrib/auth/models.py:132 +#: contrib/auth/models.py:133 msgid "staff status" msgstr "statut équipe" -#: contrib/auth/models.py:132 +#: contrib/auth/models.py:133 msgid "Designates whether the user can log into this admin site." msgstr "Précise si l'utilisateur peut se connecter à ce site d'administration." -#: contrib/auth/models.py:133 +#: contrib/auth/models.py:134 msgid "active" msgstr "actif" -#: contrib/auth/models.py:133 +#: contrib/auth/models.py:134 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." @@ -1338,11 +1404,11 @@ msgstr "" "Précise si l'utilisateur doit être considéré comme actif. Décochez ceci " "plutôt que de supprimer le compte." -#: contrib/auth/models.py:134 +#: contrib/auth/models.py:135 msgid "superuser status" msgstr "statut super-utilisateur" -#: contrib/auth/models.py:134 +#: contrib/auth/models.py:135 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." @@ -1350,15 +1416,15 @@ msgstr "" "Précise que l'utilisateur possède toutes les permissions sans les assigner " "explicitement." -#: contrib/auth/models.py:135 +#: contrib/auth/models.py:136 msgid "last login" msgstr "dernière connexion" -#: contrib/auth/models.py:136 +#: contrib/auth/models.py:137 msgid "date joined" msgstr "date d'inscription" -#: contrib/auth/models.py:138 +#: contrib/auth/models.py:139 msgid "" "In addition to the permissions manually assigned, this user will also get " "all permissions granted to each group he/she is in." @@ -1367,27 +1433,28 @@ msgstr "" "recevra aussi toutes les permissions de tous les groupes auxquels il " "appartient. " -#: contrib/auth/models.py:139 +#: contrib/auth/models.py:140 msgid "user permissions" msgstr "permissions de l'utilisateur" -#: contrib/auth/models.py:143 +#: contrib/auth/models.py:144 contrib/comments/models.py:50 +#: contrib/comments/models.py:168 msgid "user" msgstr "utilisateur" -#: contrib/auth/models.py:144 +#: contrib/auth/models.py:145 msgid "users" msgstr "utilisateurs" -#: contrib/auth/models.py:300 +#: contrib/auth/models.py:301 msgid "message" msgstr "message" -#: contrib/auth/views.py:50 +#: contrib/auth/views.py:56 msgid "Logged out" msgstr "Déconnecté" -#: contrib/auth/management/commands/createsuperuser.py:23 forms/fields.py:428 +#: contrib/auth/management/commands/createsuperuser.py:23 forms/fields.py:429 msgid "Enter a valid e-mail address." msgstr "Entrez une adresse de courriel valide." @@ -1397,30 +1464,33 @@ msgstr "Contenu" #: contrib/comments/admin.py:14 msgid "Metadata" -msgstr "Metadonnées" +msgstr "Métadonnées" -#: contrib/comments/forms.py:17 +#: contrib/comments/feeds.py:13 +#, python-format +msgid "%(site_name)s comments" +msgstr "Commentaires sur %(site_name)s" + +#: contrib/comments/feeds.py:23 +#, python-format +msgid "Latest comments on %(site_name)s" +msgstr "Derniers commentaires sur %(site_name)s" + +#: contrib/comments/forms.py:93 #: contrib/comments/templates/comments/moderation_queue.html:34 msgid "Name" msgstr "Nom" -#: contrib/comments/forms.py:18 +#: contrib/comments/forms.py:94 msgid "Email address" msgstr "Adresse électronique" -#: contrib/comments/forms.py:20 +#: contrib/comments/forms.py:96 #: contrib/comments/templates/comments/moderation_queue.html:35 msgid "Comment" msgstr "Commentaire" -#: contrib/comments/forms.py:23 -msgid "" -"If you enter anything in this field your comment will be treated as spam" -msgstr "" -"Si vous saisissez quelque chose dans ce champ, votre commentaire sera " -"considéré comme étant indésirable" - -#: contrib/comments/forms.py:146 +#: contrib/comments/forms.py:173 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." @@ -1428,45 +1498,57 @@ msgstr[0] "Attention à votre langage ! Le terme %s n'est pas autorisé ici." msgstr[1] "" "Attention à votre langage ! Les termes %s ne sont pas autorisés ici." -#: contrib/comments/models.py:23 +#: contrib/comments/forms.py:180 +msgid "" +"If you enter anything in this field your comment will be treated as spam" +msgstr "" +"Si vous saisissez quelque chose dans ce champ, votre commentaire sera " +"considéré comme étant indésirable" + +#: contrib/comments/models.py:22 contrib/contenttypes/models.py:74 +msgid "content type" +msgstr "type de contenu" + +#: contrib/comments/models.py:24 msgid "object ID" msgstr "ID de l'objet" -#: contrib/comments/models.py:50 +#: contrib/comments/models.py:52 msgid "user's name" msgstr "nom de l'utilisateur" -#: contrib/comments/models.py:51 +#: contrib/comments/models.py:53 msgid "user's email address" msgstr "adresse électronique de l'utilisateur" -#: contrib/comments/models.py:52 +#: contrib/comments/models.py:54 msgid "user's URL" msgstr "URL de l'utilisateur" -#: contrib/comments/models.py:54 +#: contrib/comments/models.py:56 contrib/comments/models.py:76 +#: contrib/comments/models.py:169 msgid "comment" msgstr "commentaire" -#: contrib/comments/models.py:57 +#: contrib/comments/models.py:59 msgid "date/time submitted" msgstr "date et heure soumises" -#: contrib/comments/models.py:59 +#: contrib/comments/models.py:61 msgid "is public" msgstr "est public" -#: contrib/comments/models.py:60 +#: contrib/comments/models.py:62 msgid "" "Uncheck this box to make the comment effectively disappear from the site." msgstr "" "Décochez cette case pour faire vraiment disparaître ce commentaire du site." -#: contrib/comments/models.py:62 +#: contrib/comments/models.py:64 msgid "is removed" msgstr "est supprimé" -#: contrib/comments/models.py:63 +#: contrib/comments/models.py:65 msgid "" "Check this box if the comment is inappropriate. A \"This comment has been " "removed\" message will be displayed instead." @@ -1474,7 +1556,11 @@ msgstr "" "Cochez cette case si le commentaire est inadéquat. Un message type « Ce " "commentaire a été supprimé » sera affiché en lieu et place de celui-ci." -#: contrib/comments/models.py:115 +#: contrib/comments/models.py:77 +msgid "comments" +msgstr "commentaires" + +#: contrib/comments/models.py:119 msgid "" "This comment was posted by an authenticated user and thus the name is read-" "only." @@ -1482,7 +1568,7 @@ msgstr "" "Ce commentaire a été posté par un utilisateur authentifié, le nom est donc " "en lecture seule." -#: contrib/comments/models.py:124 +#: contrib/comments/models.py:128 msgid "" "This comment was posted by an authenticated user and thus the email is read-" "only." @@ -1490,7 +1576,7 @@ msgstr "" "Ce commentaire a été posté par un utilisateur authentifié et le courriel est " "donc en lecture seule" -#: contrib/comments/models.py:149 +#: contrib/comments/models.py:153 #, python-format msgid "" "Posted by %(user)s at %(date)s\n" @@ -1505,6 +1591,22 @@ msgstr "" "\n" "http://%(domain)s%(url)s" +#: contrib/comments/models.py:170 +msgid "flag" +msgstr "indicateur" + +#: contrib/comments/models.py:171 +msgid "date" +msgstr "date" + +#: contrib/comments/models.py:181 +msgid "comment flag" +msgstr "indicateur de commentaire" + +#: contrib/comments/models.py:182 +msgid "comment flags" +msgstr "indicateurs de commentaire" + #: contrib/comments/templates/comments/approve.html:4 msgid "Approve a comment" msgstr "Valider un commentaire" @@ -1564,13 +1666,13 @@ msgstr "Signaler" msgid "Thanks for flagging" msgstr "Merci d'avoir signalé ce commentaire" -#: contrib/comments/templates/comments/form.html:16 -#: contrib/comments/templates/comments/preview.html:31 +#: contrib/comments/templates/comments/form.html:17 +#: contrib/comments/templates/comments/preview.html:32 msgid "Post" msgstr "Envoyer" -#: contrib/comments/templates/comments/form.html:17 -#: contrib/comments/templates/comments/preview.html:32 +#: contrib/comments/templates/comments/form.html:18 +#: contrib/comments/templates/comments/preview.html:33 msgid "Preview" msgstr "Prévisualiser" @@ -1616,33 +1718,29 @@ msgid "Thank you for your comment" msgstr "Merci pour votre commentaire" #: contrib/comments/templates/comments/preview.html:4 -#: contrib/comments/templates/comments/preview.html:12 +#: contrib/comments/templates/comments/preview.html:13 msgid "Preview your comment" msgstr "Prévisualiser votre commentaire" -#: contrib/comments/templates/comments/preview.html:10 +#: contrib/comments/templates/comments/preview.html:11 msgid "Please correct the error below" msgid_plural "Please correct the errors below" msgstr[0] "Veuillez corriger l'erreur suivante." msgstr[1] "Veuillez corriger les erreurs suivantes." -#: contrib/comments/templates/comments/preview.html:15 +#: contrib/comments/templates/comments/preview.html:16 msgid "Post your comment" msgstr "Envoyer votre commentaire" -#: contrib/comments/templates/comments/preview.html:15 +#: contrib/comments/templates/comments/preview.html:16 msgid "or make changes" msgstr "ou le modifier" -#: contrib/contenttypes/models.py:67 +#: contrib/contenttypes/models.py:70 msgid "python model class name" msgstr "nom de la classe python du modèle" -#: contrib/contenttypes/models.py:71 -msgid "content type" -msgstr "type de contenu" - -#: contrib/contenttypes/models.py:72 +#: contrib/contenttypes/models.py:75 msgid "content types" msgstr "types de contenu" @@ -1715,18 +1813,26 @@ msgstr "" "Nous sommes désolés, mais votre formulaire a expiré. Veuillez compléter le " "formulaire sur cette page." -#: contrib/gis/forms/fields.py:14 +#: contrib/gis/forms/fields.py:17 msgid "No geometry value provided." msgstr "Valeur géométrique manquante." -#: contrib/gis/forms/fields.py:15 +#: contrib/gis/forms/fields.py:18 msgid "Invalid geometry value." msgstr "Valeur géométrique non valide" -#: contrib/gis/forms/fields.py:16 +#: contrib/gis/forms/fields.py:19 msgid "Invalid geometry type." msgstr "Type de géométrie non valide" +#: contrib/gis/forms/fields.py:20 +msgid "" +"An error occurred when transforming the geometry to the SRID of the geometry " +"form field." +msgstr "" +"Une erreur est survenue lors de la transformation de l'objet géométrique " +"dans le SRID du champ de formulaire géométrique." + #: contrib/humanize/templatetags/humanize.py:19 msgid "th" msgstr "e" @@ -2054,9 +2160,8 @@ msgstr "Ce RUT chilien est non valide." msgid "Prague" msgstr "Prague" -# Ticket #10385 #: contrib/localflavor/cz/cz_regions.py:9 -msgid "Cenral Bohemian Region" +msgid "Central Bohemian Region" msgstr "Bohême du Centre" #: contrib/localflavor/cz/cz_regions.py:10 @@ -2954,18 +3059,18 @@ msgstr "" msgid "Wrong checksum for the Tax Number (NIP)." msgstr "Somme de contrôle non valide du numéro de taxe (NIP)." -#: contrib/localflavor/pl/forms.py:111 -msgid "National Business Register Number (REGON) consists of 7 or 9 digits." +#: contrib/localflavor/pl/forms.py:109 +msgid "National Business Register Number (REGON) consists of 9 or 14 digits." msgstr "" -"Le numéro de registre du commerce national (REGON) comporte 7 ou 9 chiffres." +"Le numéro de registre du commerce national (REGON) comporte 9 ou 14 chiffres." -#: contrib/localflavor/pl/forms.py:112 +#: contrib/localflavor/pl/forms.py:110 msgid "Wrong checksum for the National Business Register Number (REGON)." msgstr "" "Somme de contrôle non valide pour le numéro de registre du commerce national " "(REGON)." -#: contrib/localflavor/pl/forms.py:155 +#: contrib/localflavor/pl/forms.py:148 msgid "Enter a postal code in the format XX-XXX." msgstr "Saisissez un code postal au format XX-XXX." @@ -3802,61 +3907,61 @@ msgstr "nom à afficher" msgid "sites" msgstr "sites" -#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:700 +#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:710 msgid "This value must be an integer." msgstr "Cette valeur doit être un entier." -#: db/models/fields/__init__.py:387 +#: db/models/fields/__init__.py:388 msgid "This value must be either True or False." msgstr "Cette valeur doit être soit vraie (True) soit fausse (False)." -#: db/models/fields/__init__.py:420 +#: db/models/fields/__init__.py:427 msgid "This field cannot be null." msgstr "Ce champ ne peut pas être vide." -#: db/models/fields/__init__.py:436 +#: db/models/fields/__init__.py:443 msgid "Enter only digits separated by commas." msgstr "Saisissez uniquement des chiffres séparés par des virgules." -#: db/models/fields/__init__.py:467 +#: db/models/fields/__init__.py:474 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Saisissez une date valide au format AAAA-MM-JJ." -#: db/models/fields/__init__.py:476 +#: db/models/fields/__init__.py:483 #, python-format msgid "Invalid date: %s" msgstr "Date non valide : %s" -#: db/models/fields/__init__.py:540 db/models/fields/__init__.py:558 +#: db/models/fields/__init__.py:547 db/models/fields/__init__.py:565 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format." msgstr "" "Saisissez une date et une heure valides au format AAAA-MM-JJ HH:MM[:ss[." "uuuuuu]]." -#: db/models/fields/__init__.py:594 +#: db/models/fields/__init__.py:601 msgid "This value must be a decimal number." msgstr "Cette valeur doit être un nombre décimal." -#: db/models/fields/__init__.py:676 +#: db/models/fields/__init__.py:686 msgid "This value must be a float." msgstr "Cette valeur doit être un nombre réel." -#: db/models/fields/__init__.py:736 +#: db/models/fields/__init__.py:746 msgid "This value must be either None, True or False." msgstr "Cette valeur doit être nulle (None), vraie (True) ou fausse (False)." -#: db/models/fields/__init__.py:834 db/models/fields/__init__.py:848 +#: db/models/fields/__init__.py:849 db/models/fields/__init__.py:863 msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgstr "Saisissez une heure valide au format HH:MM[:ss[.uuuuuu]]." -#: db/models/fields/related.py:767 +#: db/models/fields/related.py:816 msgid "" "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" "Maintenez appuyé « Ctrl », ou « Commande (touche pomme) » sur un Mac, pour en " "sélectionner plusieurs." -#: db/models/fields/related.py:845 +#: db/models/fields/related.py:894 #, python-format msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid_plural "" @@ -3921,32 +4026,40 @@ msgstr "Assurez-vous qu'il n'y a pas plus de %s chiffres après la virgule." msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Assurez-vous qu'il n'y a pas plus de %s chiffres avant la virgule." -#: forms/fields.py:287 forms/fields.py:849 +#: forms/fields.py:288 forms/fields.py:863 msgid "Enter a valid date." msgstr "Saisissez une date valide." -#: forms/fields.py:321 forms/fields.py:850 +#: forms/fields.py:322 forms/fields.py:864 msgid "Enter a valid time." msgstr "Saisissez une heure valide." -#: forms/fields.py:360 +#: forms/fields.py:361 msgid "Enter a valid date/time." msgstr "Saisissez une date et une heure valides." -#: forms/fields.py:446 +#: forms/fields.py:447 msgid "No file was submitted. Check the encoding type on the form." msgstr "" "Aucun fichier n'a été soumis. Vérifiez le type d'encodage du formulaire." -#: forms/fields.py:447 +#: forms/fields.py:448 msgid "No file was submitted." msgstr "Aucun fichier n'a été soumis." -#: forms/fields.py:448 +#: forms/fields.py:449 msgid "The submitted file is empty." msgstr "Le fichier soumis est vide." -#: forms/fields.py:477 +#: forms/fields.py:450 +#, python-format +msgid "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr "" +"Assurez-vous que ce nom de fichier ne contient pas plus de %(max)d " +"caractères (actuellement %(length)d caractères)." + +#: forms/fields.py:483 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -3954,28 +4067,28 @@ msgstr "" "Téléversez une image valide. Le fichier que vous avez transféré n'est pas " "une image ou bien est corrompu." -#: forms/fields.py:538 +#: forms/fields.py:544 msgid "Enter a valid URL." msgstr "Saisissez une URL valide." -#: forms/fields.py:539 +#: forms/fields.py:545 msgid "This URL appears to be a broken link." msgstr "Cette URL semble être cassée." -#: forms/fields.py:618 forms/fields.py:696 +#: forms/fields.py:625 forms/fields.py:703 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "Sélectionnez un choix valide. %(value)s n'en fait pas partie." -#: forms/fields.py:697 forms/fields.py:758 forms/models.py:721 +#: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003 msgid "Enter a list of values." msgstr "Saisissez une liste de valeurs." -#: forms/fields.py:878 +#: forms/fields.py:892 msgid "Enter a valid IPv4 address." msgstr "Saisissez une adresse IPv4 valide." -#: forms/fields.py:888 +#: forms/fields.py:902 msgid "" "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." msgstr "" @@ -3983,79 +4096,115 @@ msgstr "" "des traits d'union." # Si « : » est requis, créer un ticket -#: forms/formsets.py:242 forms/formsets.py:244 +#: forms/formsets.py:271 forms/formsets.py:273 msgid "Order" msgstr "Ordre" -#: forms/models.py:287 forms/models.py:296 +#: forms/models.py:367 +#, python-format +msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s." +msgstr "" +"%(field_name)s doit être unique pour la partie %(lookup)s de %(date_field)s." + +#: forms/models.py:381 forms/models.py:389 #, python-format msgid "%(model_name)s with this %(field_label)s already exists." msgstr "Un(e) %(model_name)s avec ce %(field_label)s existe déjà." #: forms/models.py:594 +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Corrigez les données à double dans %(field)s." + +#: forms/models.py:598 +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" +"Corrigez les données à double dans %(field)s qui doit contenir des valeurs " +"uniques." + +#: forms/models.py:604 +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" +"Corrigez les données à double dans %(field_name)s qui doit contenir des " +"valeurs uniques pour la partie %(lookup)s de %(date_field)s." + +#: forms/models.py:612 +msgid "Please correct the duplicate values below." +msgstr "Corrigez les valeurs à double ci-dessous." + +#: forms/models.py:867 msgid "The inline foreign key did not match the parent instance primary key." msgstr "" "La clé étrangère en ligne ne correspond pas à la clé primaire de l'instance " "parente." -#: forms/models.py:651 +#: forms/models.py:930 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "" "Sélectionnez un choix valide. Ce choix ne fait pas partie de ceux " "disponibles." -#: forms/models.py:722 +#: forms/models.py:1004 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Sélectionnez un choix valide ; %s n'en fait pas partie." -#: template/defaultfilters.py:743 +#: forms/models.py:1006 +#, python-format +msgid "\"%s\" is not a valid value for a primary key." +msgstr "« %s » n'est pas une valeur correcte pour une clé primaire." + +#: template/defaultfilters.py:767 msgid "yes,no,maybe" msgstr "oui, non, peut-être" -#: template/defaultfilters.py:774 +#: template/defaultfilters.py:798 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" msgstr[0] "%(size)d octet" msgstr[1] "%(size)d octets" -#: template/defaultfilters.py:776 +#: template/defaultfilters.py:800 #, python-format msgid "%.1f KB" msgstr "%.1f Ko" -#: template/defaultfilters.py:778 +#: template/defaultfilters.py:802 #, python-format msgid "%.1f MB" msgstr "%.1f Mo" -#: template/defaultfilters.py:779 +#: template/defaultfilters.py:803 #, python-format msgid "%.1f GB" msgstr "%.1f Go" -#: utils/dateformat.py:41 +#: utils/dateformat.py:42 msgid "p.m." msgstr "après-midi" -#: utils/dateformat.py:42 +#: utils/dateformat.py:43 msgid "a.m." msgstr "matin" -#: utils/dateformat.py:47 +#: utils/dateformat.py:48 msgid "PM" msgstr "Après-midi" -#: utils/dateformat.py:48 +#: utils/dateformat.py:49 msgid "AM" msgstr "Matin" -#: utils/dateformat.py:97 +#: utils/dateformat.py:98 msgid "midnight" msgstr "minuit" -#: utils/dateformat.py:99 +#: utils/dateformat.py:100 msgid "noon" msgstr "midi" @@ -4281,33 +4430,33 @@ msgid_plural "minutes" msgstr[0] "minute" msgstr[1] "minutes" -#: utils/timesince.py:43 +#: utils/timesince.py:45 msgid "minutes" msgstr "minutes" -#: utils/timesince.py:48 +#: utils/timesince.py:50 #, python-format msgid "%(number)d %(type)s" msgstr "%(number)d %(type)s" -#: utils/timesince.py:54 +#: utils/timesince.py:56 #, python-format msgid ", %(number)d %(type)s" msgstr ", %(number)d %(type)s" -#: utils/translation/trans_real.py:403 +#: utils/translation/trans_real.py:399 msgid "DATE_FORMAT" msgstr "j F Y" -#: utils/translation/trans_real.py:405 +#: utils/translation/trans_real.py:401 msgid "TIME_FORMAT" msgstr "G:i:s" -#: utils/translation/trans_real.py:421 +#: utils/translation/trans_real.py:417 msgid "YEAR_MONTH_FORMAT" msgstr "F Y" -#: utils/translation/trans_real.py:422 +#: utils/translation/trans_real.py:418 msgid "MONTH_DAY_FORMAT" msgstr "j F" diff --git a/django/conf/locale/fy_NL/LC_MESSAGES/django.mo b/django/conf/locale/fy_NL/LC_MESSAGES/django.mo new file mode 100644 index 000000000000..7b518a800995 Binary files /dev/null and b/django/conf/locale/fy_NL/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/fy_NL/LC_MESSAGES/django.po b/django/conf/locale/fy_NL/LC_MESSAGES/django.po new file mode 100644 index 000000000000..a975658146d1 --- /dev/null +++ b/django/conf/locale/fy_NL/LC_MESSAGES/django.po @@ -0,0 +1,4997 @@ +# This file is distributed under the same license as the Django package. +# +msgid "" +msgstr "" +"Project-Id-Version: Django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-01-27 09:58-0800\n" +"PO-Revision-Date: 2010-01-27 22:36-0700\n" +"Last-Translator: Wim Benes \n" +"Language-Team: FRISIAN \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8 +msgid "" +"\n" +"

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

      \n" +msgstr "" + +#: contrib/admin/templates/admin/filter.html:2 +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +#: forms/models.py:964 +#, python-format +msgid "\"%s\" is not a valid value for a primary key." +msgstr "" + +#: contrib/admin/options.py:1006 +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" +msgstr[1] "" + +#: db/models/base.py:775 +#, python-format +msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s." +msgstr "" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +#: db/models/base.py:790 db/models/base.py:798 +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model_name)s mei dit %(field_label)s bestiet al." + +#: contrib/admin/templates/admin/app_index.html:10 +#: contrib/admin/templates/admin/index.html:19 +#, python-format +msgid "%(name)s" +msgstr "" + +#: contrib/admin/options.py:860 contrib/admin/options.py:1072 +#, python-format +msgid "%(name)s object with primary key %(key)r does not exist." +msgstr "" + +#: utils/timesince.py:50 +#, python-format +msgid "%(number)d %(type)s" +msgstr "" + +#: contrib/comments/feeds.py:13 +#, python-format +msgid "%(site_name)s comments" +msgstr "" + +#: template/defaultfilters.py:806 +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" + +#: contrib/humanize/templatetags/humanize.py:54 +#, python-format +msgid "%(value).1f billion" +msgid_plural "%(value).1f billion" +msgstr[0] "" +msgstr[1] "" + +#: contrib/humanize/templatetags/humanize.py:51 +#, python-format +msgid "%(value).1f million" +msgid_plural "%(value).1f million" +msgstr[0] "" +msgstr[1] "" + +#: contrib/humanize/templatetags/humanize.py:57 +#, python-format +msgid "%(value).1f trillion" +msgid_plural "%(value).1f trillion" +msgstr[0] "" +msgstr[1] "" + +#: template/defaultfilters.py:811 +#, python-format +msgid "%.1f GB" +msgstr "" + +#: template/defaultfilters.py:808 +#, python-format +msgid "%.1f KB" +msgstr "" + +#: template/defaultfilters.py:810 +#, python-format +msgid "%.1f MB" +msgstr "" + +#: contrib/admin/sites.py:447 +#, python-format +msgid "%s administration" +msgstr "" + +#: contrib/admindocs/views.py:361 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: utils/timesince.py:56 +#, python-format +msgid ", %(number)d %(type)s" +msgstr "" + +#: contrib/comments/admin.py:60 +#, python-format +msgid "1 comment was successfully %(action)s." +msgid_plural "%(count)s comments were successfully %(action)s." +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "1 result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/filterspecs.py:44 +#, python-format +msgid "" +"

      By %s:

      \n" +"
        \n" +msgstr "" + +#: contrib/admin/templates/admin/actions.html:7 +#, python-format +msgid "" +"0 of %(total_count)s %(module_name)s selected" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:19 +msgid "A Coruna" +msgstr "" + +#: contrib/auth/forms.py:31 +msgid "A user with that username already exists." +msgstr "" + +#: utils/dateformat.py:49 +msgid "AM" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:5 +msgid "Aargau" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:24 +msgid "Action" +msgstr "" + +#: contrib/admin/helpers.py:19 +msgid "Action:" +msgstr "" + +#: contrib/admin/templates/admin/change_form.html:21 +#: contrib/admin/templates/admin/index.html:29 +msgid "Add" +msgstr "" + +#: contrib/admin/templates/admin/change_list.html:57 +#, python-format +msgid "Add %(name)s" +msgstr "" + +#: contrib/admin/options.py:834 +#, python-format +msgid "Add %s" +msgstr "" + +#: contrib/admin/widgets.py:238 +msgid "Add Another" +msgstr "" + +#: contrib/admin/templates/admin/edit_inline/stacked.html:33 +#: contrib/admin/templates/admin/edit_inline/tabular.html:78 +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "" + +#: contrib/admin/options.py:561 +#, python-format +msgid "Added %(name)s \"%(object)s\"." +msgstr "" + +#: contrib/flatpages/admin.py:22 +msgid "Advanced options" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:12 +msgid "Aguascalientes" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:26 +msgid "Aichi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:8 +msgid "Akita" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:7 +msgid "Alacant" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:6 +msgid "Albacete" +msgstr "" + +#: contrib/admin/filterspecs.py:75 contrib/admin/filterspecs.py:92 +#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173 +msgid "All" +msgstr "" + +#: contrib/admin/templates/admin/actions.html:11 +#, python-format +msgid "All %(total_count)s %(module_name)s selected" +msgstr "" + +#: contrib/admin/templatetags/admin_list.py:240 +msgid "All dates" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:8 +msgid "Almeria" +msgstr "" + +#: contrib/gis/forms/fields.py:20 +msgid "" +"An error occurred when transforming the geometry to the SRID of the geometry " +"form field." +msgstr "" + +#: contrib/localflavor/es/es_regions.py:5 +msgid "Andalusia" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:8 +msgid "Antrim" +msgstr "" + +#: contrib/admin/filterspecs.py:113 +msgid "Any date" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:5 +msgid "Aomori" +msgstr "" + +#: contrib/admindocs/views.py:190 +#, python-format +msgid "App %r not found" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:7 +msgid "Appenzell Ausserrhoden" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:6 +msgid "Appenzell Innerrhoden" +msgstr "" + +#: contrib/comments/templates/comments/approve.html:12 +msgid "Approve" +msgstr "" + +#: contrib/comments/templates/comments/approve.html:4 +msgid "Approve a comment" +msgstr "" + +#: contrib/comments/admin.py:44 +msgid "Approve selected comments" +msgstr "" + +#: utils/dates.py:18 utils/dates.py:31 +msgid "April" +msgstr "" + +#: conf/global_settings.py:44 +msgid "Arabic" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:6 +msgid "Aragon" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:5 +msgid "Arava" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:23 +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +#: contrib/admin/templates/admin/delete_selected_confirmation.html:22 +#, python-format +msgid "" +"Are you sure you want to delete the selected %(object_name)s objects? All of " +"the following objects and their related items will be deleted:" +msgstr "" + +#: contrib/admin/actions.py:67 contrib/admin/options.py:1094 +msgid "Are you sure?" +msgstr "" + +#: conf/global_settings.py:56 +msgid "Argentinean Spanish" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:9 +msgid "Armagh" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28 +msgid "As above, but opens the admin page in a new window." +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:37 +msgid "Asturias" +msgstr "" + +#: utils/dates.py:32 +msgid "Aug." +msgstr "" + +#: utils/dates.py:19 +msgid "August" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:9 +msgid "Avila" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:10 +msgid "Badajoz" +msgstr "" + +#: contrib/localflavor/de/de_states.py:5 +msgid "Baden-Wuerttemberg" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:13 +msgid "Baja California" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:14 +msgid "Baja California Sur" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:8 +msgid "Balearic Islands" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:9 +#: contrib/localflavor/id/id_choices.py:73 +msgid "Bali" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:65 +msgid "Bandung" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:11 +msgid "Banovce nad Bebravou" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:8 +msgid "Banska Bystrica" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:8 +msgid "Banska Bystrica region" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:9 +msgid "Banska Stiavnica" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:10 +#: contrib/localflavor/id/id_choices.py:45 +msgid "Banten" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:95 +msgid "Banyumas" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:12 +msgid "Barcelona" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:10 +msgid "Bardejov" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:9 +msgid "Basel-Land" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:8 +msgid "Basel-Stadt" +msgstr "" + +#: conf/global_settings.py:57 +msgid "Basque" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:9 +msgid "Basque Country" +msgstr "" + +#: contrib/localflavor/de/de_states.py:6 +msgid "Bavaria" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:11 +msgid "Bedfordshire" +msgstr "" + +#: conf/global_settings.py:45 +msgid "Bengali" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:11 +#: contrib/localflavor/id/id_choices.py:54 +msgid "Bengkulu" +msgstr "" + +#: contrib/localflavor/de/de_states.py:7 +msgid "Berlin" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:10 +msgid "Berne" +msgstr "" + +#: db/models/fields/__init__.py:892 +msgid "Big (8 byte) integer" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:52 +msgid "Bizkaia" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:25 +msgid "Blekinge" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:84 +msgid "Bogor" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:97 +msgid "Bojonegoro" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 +msgid "Bookmarklets" +msgstr "" + +#: db/models/fields/__init__.py:512 +msgid "Boolean (Either True or False)" +msgstr "" + +#: db/models/fields/__init__.py:923 +msgid "Boolean (Either True, False or None)" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:75 +msgid "Borders" +msgstr "" + +#: contrib/localflavor/de/de_states.py:8 +msgid "Brandenburg" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:13 +msgid "Bratislava I" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:14 +msgid "Bratislava II" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:15 +msgid "Bratislava III" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:16 +msgid "Bratislava IV" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:17 +msgid "Bratislava V" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:9 +msgid "Bratislava region" +msgstr "" + +#: conf/global_settings.py:81 +msgid "Brazilian Portuguese" +msgstr "" + +#: contrib/localflavor/de/de_states.py:9 +msgid "Bremen" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:12 +msgid "Brezno" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:12 +msgid "Buckinghamshire" +msgstr "" + +#: conf/global_settings.py:46 +msgid "Bulgarian" +msgstr "" + +#: contrib/localflavor/at/at_states.py:5 +msgid "Burgenland" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:13 +msgid "Burgos" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:18 +msgid "Bytca" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:14 +msgid "Caceres" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:19 +msgid "Cadca" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:15 +msgid "Cadiz" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:15 +msgid "Campeche" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:10 +msgid "Canary Islands" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:43 +#: contrib/localflavor/es/es_regions.py:11 +msgid "Cantabria" +msgstr "" + +#: contrib/localflavor/at/at_states.py:6 +msgid "Carinthia" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:10 +msgid "Carlow" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:12 +msgid "Carlsbad Region" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:16 +msgid "Castello" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:13 +msgid "Castile and Leon" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:12 +msgid "Castile-La Mancha" +msgstr "" + +#: conf/global_settings.py:47 +msgid "Catalan" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:14 +msgid "Catalonia" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:11 +msgid "Cavan" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:9 +msgid "Central Bohemian Region" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:76 +msgid "Central Scotland" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:55 +msgid "Ceuta" +msgstr "" + +#: contrib/admin/templates/admin/index.html:35 +msgid "Change" +msgstr "" + +#: contrib/admin/options.py:925 +#, python-format +msgid "Change %s" +msgstr "" + +#: contrib/admin/options.py:1124 +#, python-format +msgid "Change history: %s" +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:43 +#: contrib/admin/templates/registration/password_reset_confirm.html:21 +msgid "Change my password" +msgstr "" + +#: contrib/admin/templates/admin/base.html:40 +#: contrib/admin/templates/admin/auth/user/change_password.html:15 +#: contrib/admin/templates/admin/auth/user/change_password.html:48 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/registration/password_change_form.html:4 +msgid "Change password" +msgstr "" + +#: contrib/auth/admin.py:121 +#, python-format +msgid "Change password: %s" +msgstr "" + +#: contrib/admin/widgets.py:96 +msgid "Change:" +msgstr "" + +#: contrib/admin/options.py:565 +#, python-format +msgid "Changed %(list)s for %(name)s \"%(object)s\"." +msgstr "" + +#: contrib/admin/options.py:556 +#, python-format +msgid "Changed %s." +msgstr "" + +#: contrib/comments/models.py:65 +msgid "" +"Check this box if the comment is inappropriate. A \"This comment has been " +"removed\" message will be displayed instead." +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:14 +msgid "Cheshire" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:17 +msgid "Chiapas" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:15 +msgid "Chiba" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:16 +msgid "Chihuahua" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:80 +msgid "Cirebon" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:17 +msgid "Ciudad Real" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:12 +msgid "Clare" +msgstr "" + +#: contrib/admin/templates/admin/actions.html:16 +msgid "Clear selection" +msgstr "" + +#: contrib/admin/templates/admin/actions.html:14 +msgid "Click here to select all objects across all pages" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:64 +msgid "Clwyd" +msgstr "" + +#: contrib/localflavor/se/forms.py:108 +msgid "Co-ordination numbers are not allowed." +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:18 +msgid "Coahuila" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:19 +msgid "Colima" +msgstr "" + +#: db/models/fields/__init__.py:582 +msgid "Comma-separated integers" +msgstr "" + +#: contrib/comments/forms.py:96 +msgid "Comment" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:20 +msgid "Confirm password:" +msgstr "" + +#: contrib/comments/admin.py:12 +msgid "Content" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:18 +msgid "Cordoba" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:13 +msgid "Cork" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:15 +msgid "Cornwall and Isles of Scilly" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:63 +msgid "Corps Consulate" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:64 +msgid "Corps Diplomatic" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:55 +msgid "County Antrim" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:56 +msgid "County Armagh" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:57 +msgid "County Down" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:58 +msgid "County Fermanagh" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:59 +msgid "County Londonderry" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:60 +msgid "County Tyrone" +msgstr "" + +#: conf/global_settings.py:66 +msgid "Croatian" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:20 +msgid "Cuenca" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:16 +msgid "Cumbria" +msgstr "" + +#: contrib/admin/widgets.py:96 +msgid "Currently:" +msgstr "" + +#: conf/global_settings.py:48 +msgid "Czech" +msgstr "" + +#: utils/translation/trans_real.py:531 +msgid "DATETIME_FORMAT" +msgstr "" + +#: utils/translation/trans_real.py:530 +msgid "DATE_FORMAT" +msgstr "N j, Y" + +#: contrib/localflavor/se/se_counties.py:32 +msgid "Dalarna" +msgstr "" + +#: conf/global_settings.py:50 +msgid "Danish" +msgstr "" + +#: contrib/admin/options.py:970 +msgid "Database error" +msgstr "" + +#: db/models/fields/__init__.py:684 +msgid "Date (with time)" +msgstr "" + +#: db/models/fields/__init__.py:596 +msgid "Date (without time)" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:22 +msgid "Date/time" +msgstr "" + +#: contrib/admin/widgets.py:72 +msgid "Date:" +msgstr "" + +#: utils/dates.py:32 +msgid "Dec." +msgstr "" + +#: utils/dates.py:20 +msgid "December" +msgstr "" + +#: db/models/fields/__init__.py:752 +msgid "Decimal number" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:10 +#: contrib/admin/templates/admin/submit_line.html:4 forms/formsets.py:291 +msgid "Delete" +msgstr "" + +#: contrib/admin/templates/admin/delete_selected_confirmation.html:9 +msgid "Delete multiple objects" +msgstr "" + +#: contrib/admin/actions.py:85 +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "" + +#: contrib/admin/templates/admin/edit_inline/tabular.html:15 +msgid "Delete?" +msgstr "" + +#: contrib/admin/options.py:570 +#, python-format +msgid "Deleted %(name)s \"%(object)s\"." +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:16 +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#: contrib/admin/templates/admin/delete_selected_confirmation.html:15 +#, python-format +msgid "" +"Deleting the %(object_name)s would result in deleting related objects, but " +"your account doesn't have permission to delete the following types of " +"objects:" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:17 +msgid "Derbyshire" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:14 +msgid "Derry" +msgstr "" + +#: contrib/auth/models.py:144 +msgid "" +"Designates that this user has all permissions without explicitly assigning " +"them." +msgstr "" + +#: contrib/auth/models.py:142 +msgid "Designates whether the user can log into this admin site." +msgstr "" + +#: contrib/auth/models.py:143 +msgid "" +"Designates whether this user should be treated as active. Unselect this " +"instead of deleting accounts." +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:20 +msgid "Detva" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:18 +msgid "Devon" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:20 +msgid "Distrito Federal" +msgstr "" + +#: contrib/admin/templates/admin/base_site.html:7 +msgid "Django administration" +msgstr "" + +#: contrib/admin/templates/admin/base_site.html:4 +msgid "Django site admin" +msgstr "" + +#: contrib/admin/templates/admin/base.html:32 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 +msgid "Documentation" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4 +msgid "Documentation bookmarklets" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18 +msgid "Documentation for this page" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:21 +msgid "Dolny Kubin" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:15 +msgid "Donegal" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:19 +msgid "Dorset" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:16 +msgid "Down" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:4 +msgid "Drenthe" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:17 +msgid "Dublin" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:77 +msgid "Dumfries and Galloway" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:22 +msgid "Dunajska Streda" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:21 +msgid "Durango" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:20 +msgid "Durham" +msgstr "" + +#: conf/global_settings.py:77 +msgid "Dutch" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:65 +msgid "Dyfed" +msgstr "" + +#: contrib/auth/forms.py:101 +msgid "E-mail" +msgstr "" + +#: db/models/fields/__init__.py:807 +msgid "E-mail address" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "E-mail address:" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:21 +msgid "East Sussex" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:4 +msgid "Eastern Cape" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24 +msgid "Edit this object (current window)" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27 +msgid "Edit this object (new window)" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:41 +msgid "Ehime" +msgstr "" + +#: contrib/comments/forms.py:94 +msgid "Email address" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:90 +msgid "England" +msgstr "" + +#: conf/global_settings.py:53 +msgid "English" +msgstr "" + +#: forms/fields.py:251 +#, python-format +msgid "Ensure that there are no more than %s decimal places." +msgstr "Wês wis dat der net mear as %s desimale plakken binne." + +#: forms/fields.py:252 +#, python-format +msgid "Ensure that there are no more than %s digits before the decimal point." +msgstr "Wês wis dat der net mear as %s sifers foar it desimale punt." + +#: forms/fields.py:250 +#, python-format +msgid "Ensure that there are no more than %s digits in total." +msgstr "Wês wis dat der yn totaal net mear as %s sifers binne." + +#: forms/fields.py:424 +#, python-format +msgid "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr "" + +#: core/validators.py:129 +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d characters (it has %" +"(show_value)d)." +msgstr "" + +#: core/validators.py:135 +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d characters (it has %" +"(show_value)d)." +msgstr "" + +#: core/validators.py:100 +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" + +#: core/validators.py:123 forms/fields.py:197 forms/fields.py:249 +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" + +#: core/validators.py:118 forms/fields.py:196 forms/fields.py:248 +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" + +#: contrib/localflavor/au/forms.py:17 +msgid "Enter a 4 digit post code." +msgstr "" + +#: contrib/localflavor/se/forms.py:150 +msgid "Enter a Swedish postal code in the format XXXXX." +msgstr "" + +#: contrib/localflavor/us/forms.py:88 +msgid "Enter a U.S. state or territory." +msgstr "" + +#: contrib/localflavor/cz/forms.py:48 +msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." +msgstr "" + +#: forms/fields.py:653 forms/fields.py:715 forms/models.py:961 +msgid "Enter a list of values." +msgstr "Jou in list mei weardes." + +#: contrib/admin/templates/admin/auth/user/change_password.html:28 +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +#: forms/fields.py:225 forms/fields.py:247 +msgid "Enter a number." +msgstr "Jou in nûmer." + +#: contrib/localflavor/ar/forms.py:28 +msgid "Enter a postal code in the format NNNN or ANNNNAAA." +msgstr "" + +#: contrib/localflavor/pl/forms.py:148 +msgid "Enter a postal code in the format XX-XXX." +msgstr "" + +#: contrib/localflavor/ca/forms.py:25 +msgid "Enter a postal code in the format XXX XXX." +msgstr "" + +#: contrib/localflavor/cz/forms.py:28 contrib/localflavor/sk/forms.py:30 +msgid "Enter a postal code in the format XXXXX or XXX XX." +msgstr "" + +#: contrib/localflavor/jp/forms.py:16 +msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." +msgstr "" + +#: contrib/localflavor/pl/forms.py:71 +msgid "" +"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." +msgstr "" + +#: core/validators.py:88 forms/fields.py:854 +msgid "" +"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Jou in falida 'slug' gearsteld mei letters, nûmers, ûnderstreekjes of " +"koppelteken." + +#: contrib/localflavor/at/forms.py:48 +msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." +msgstr "" + +#: contrib/localflavor/uy/forms.py:28 +msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." +msgstr "" + +#: contrib/localflavor/uy/forms.py:30 +msgid "Enter a valid CI number." +msgstr "" + +#: contrib/localflavor/ro/forms.py:19 +msgid "Enter a valid CIF." +msgstr "" + +#: contrib/localflavor/ro/forms.py:56 +msgid "Enter a valid CNP." +msgstr "" + +#: contrib/localflavor/ar/forms.py:80 +msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." +msgstr "" + +#: contrib/localflavor/ca/forms.py:96 +msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." +msgstr "" + +#: contrib/localflavor/cl/forms.py:30 +msgid "Enter a valid Chilean RUT." +msgstr "" + +#: contrib/localflavor/cl/forms.py:31 +msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." +msgstr "" + +#: contrib/localflavor/fi/forms.py:29 +msgid "Enter a valid Finnish social security number." +msgstr "" + +#: contrib/localflavor/de/forms.py:42 +msgid "" +"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " +"format." +msgstr "" + +#: contrib/localflavor/ro/forms.py:141 +msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" +msgstr "" + +#: contrib/localflavor/cz/forms.py:107 +msgid "Enter a valid IC number." +msgstr "" + +#: core/validators.py:91 forms/fields.py:847 +msgid "Enter a valid IPv4 address." +msgstr "Jou in falide IPv4-adres." + +#: contrib/localflavor/is_/forms.py:18 +msgid "" +"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." +msgstr "" + +#: contrib/localflavor/kw/forms.py:25 +msgid "Enter a valid Kuwaiti Civil ID number" +msgstr "" + +#: contrib/localflavor/id/forms.py:170 +msgid "Enter a valid NIK/KTP number" +msgstr "" + +#: contrib/localflavor/no/forms.py:34 +msgid "Enter a valid Norwegian social security number." +msgstr "" + +#: contrib/localflavor/nl/forms.py:79 +msgid "Enter a valid SoFi number" +msgstr "" + +#: contrib/localflavor/it/forms.py:44 +msgid "Enter a valid Social Security number." +msgstr "" + +#: contrib/localflavor/za/forms.py:21 +msgid "Enter a valid South African ID number" +msgstr "" + +#: contrib/localflavor/za/forms.py:55 +msgid "Enter a valid South African postal code" +msgstr "" + +#: contrib/localflavor/se/forms.py:50 +msgid "Enter a valid Swedish organisation number." +msgstr "" + +#: contrib/localflavor/se/forms.py:107 +msgid "Enter a valid Swedish personal identity number." +msgstr "" + +#: contrib/localflavor/ch/forms.py:65 +msgid "" +"Enter a valid Swiss identity or passport card number in X1234567<0 or " +"1234567890 format." +msgstr "" + +#: contrib/localflavor/us/forms.py:55 +msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." +msgstr "" + +#: core/validators.py:69 forms/fields.py:510 +msgid "Enter a valid URL." +msgstr "Jou in falide URL." + +#: contrib/localflavor/it/forms.py:69 +msgid "Enter a valid VAT number." +msgstr "" + +#: contrib/localflavor/cz/forms.py:50 +msgid "Enter a valid birth number." +msgstr "" + +#: db/models/fields/__init__.py:600 +msgid "Enter a valid date in YYYY-MM-DD format." +msgstr "Jou in falide daum yn JJJJ-MM-DD-formaat." + +#: forms/fields.py:309 forms/fields.py:819 +msgid "Enter a valid date." +msgstr "Jou in falide datum." + +#: db/models/fields/__init__.py:682 +msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format." +msgstr "Jou in falide datum/tiid yn JJJ-MM-DD OO:MM[:ss[.uuuuuu]]-formaat." + +#: forms/fields.py:363 +msgid "Enter a valid date/time." +msgstr "Jou in falide datum.tiid." + +#: contrib/auth/management/commands/createsuperuser.py:23 +#: core/validators.py:85 forms/fields.py:414 +msgid "Enter a valid e-mail address." +msgstr "" + +#: contrib/localflavor/id/forms.py:68 contrib/localflavor/nl/forms.py:53 +msgid "Enter a valid phone number" +msgstr "" + +#: contrib/localflavor/es/forms.py:40 +msgid "" +"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " +"9XXXXXXXX." +msgstr "" + +#: contrib/localflavor/id/forms.py:28 +msgid "Enter a valid post code" +msgstr "" + +#: contrib/localflavor/nl/forms.py:22 +msgid "Enter a valid postal code" +msgstr "" + +#: contrib/localflavor/ro/forms.py:194 +msgid "Enter a valid postal code in the format XXXXXX" +msgstr "" + +#: contrib/localflavor/es/forms.py:20 +msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." +msgstr "" + +#: contrib/localflavor/uk/forms.py:21 +msgid "Enter a valid postcode." +msgstr "" + +#: db/models/fields/__init__.py:1027 +msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." +msgstr "Jou in falide tiid yn OO:MM[:ss[.uuuuuu]]-formaat." + +#: forms/fields.py:337 forms/fields.py:820 +msgid "Enter a valid time." +msgstr "Jou in falide tiid." + +#: core/validators.py:19 forms/fields.py:66 +msgid "Enter a valid value." +msgstr "Jou in falide wearde." + +#: contrib/localflavor/id/forms.py:107 +msgid "Enter a valid vehicle license plate number" +msgstr "" + +#: contrib/localflavor/it/forms.py:15 +msgid "Enter a valid zip code." +msgstr "" + +#: forms/fields.py:195 +msgid "Enter a whole number." +msgstr "Jou in folslein nûmer." + +#: contrib/localflavor/pt/forms.py:17 +msgid "Enter a zip code in the format XXXX-XXX." +msgstr "" + +#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:17 +#: contrib/localflavor/no/forms.py:13 +msgid "Enter a zip code in the format XXXX." +msgstr "" + +#: contrib/localflavor/us/forms.py:17 +msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." +msgstr "" + +#: contrib/localflavor/br/forms.py:22 +msgid "Enter a zip code in the format XXXXX-XXX." +msgstr "" + +#: contrib/localflavor/de/forms.py:15 contrib/localflavor/fi/forms.py:13 +#: contrib/localflavor/fr/forms.py:16 +msgid "Enter a zip code in the format XXXXX." +msgstr "" + +#: contrib/localflavor/in_/forms.py:15 +msgid "Enter a zip code in the format XXXXXXX." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:12 +msgid "Enter new password" +msgstr "" + +#: core/validators.py:94 db/models/fields/__init__.py:587 +msgid "Enter only digits separated by commas." +msgstr "Jou allinnich sifers, skieden troch komma's." + +#: contrib/admin/templates/admin/auth/user/change_password.html:42 +#: contrib/auth/forms.py:19 +msgid "Enter the same password as above, for verification." +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:22 +msgid "Essex" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:26 +msgid "Estado de México" +msgstr "" + +#: conf/global_settings.py:55 +msgid "Estonian" +msgstr "" + +#: contrib/flatpages/admin.py:9 +msgid "" +"Example: '/about/contact/'. Make sure to have leading and trailing slashes." +msgstr "" + +#: contrib/flatpages/models.py:12 +msgid "" +"Example: 'flatpages/contact_page.html'. If this isn't provided, the system " +"will use 'flatpages/default.html'." +msgstr "" + +#: contrib/localflavor/es/es_regions.py:15 +msgid "Extremadura" +msgstr "" + +#: utils/dates.py:31 +msgid "Feb." +msgstr "" + +#: utils/dates.py:18 +msgid "February" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:96 +msgid "Federal Government" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:18 +msgid "Fermanagh" +msgstr "" + +#: db/models/fields/__init__.py:72 +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "" + +#: contrib/admindocs/views.py:271 +#, python-format +msgid "Fields on %s objects" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:78 +msgid "Fife" +msgstr "" + +#: db/models/fields/__init__.py:814 db/models/fields/files.py:220 +#: db/models/fields/files.py:331 +msgid "File path" +msgstr "" + +#: contrib/admin/templates/admin/change_list.html:76 +msgid "Filter" +msgstr "" + +#: conf/global_settings.py:59 +msgid "Finnish" +msgstr "" + +#: contrib/admin/templates/admin/auth/user/add_form.html:5 +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" + +#: contrib/comments/templates/comments/flag.html:12 +msgid "Flag" +msgstr "" + +#: contrib/comments/admin.py:40 +msgid "Flag selected comments" +msgstr "" + +#: contrib/comments/templates/comments/flag.html:4 +msgid "Flag this comment" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:5 +msgid "Flevoland" +msgstr "" + +#: db/models/fields/__init__.py:839 +msgid "Floating point number" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:20 +msgid "Foral Community of Navarre" +msgstr "" + +#: db/models/fields/related.py:757 +msgid "Foreign Key (type determined by related field)" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_form.html:12 +msgid "" +"Forgotten your password? Enter your e-mail address below, and we'll e-mail " +"instructions for setting a new one." +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:5 +msgid "Free State" +msgstr "" + +#: conf/global_settings.py:60 +msgid "French" +msgstr "" + +#: utils/dates.py:10 +msgid "Fri" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:11 +msgid "Fribourg" +msgstr "" + +#: utils/dates.py:6 +msgid "Friday" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:6 +msgid "Friesland" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:23 +msgid "Fukui" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:43 +msgid "Fukuoka" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:10 +msgid "Fukushima" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:23 +msgid "Galanta" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:16 +msgid "Galicia" +msgstr "" + +#: conf/global_settings.py:62 +msgid "Galician" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:19 +msgid "Galway" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:100 +msgid "Garut" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:6 +msgid "Gauteng" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:7 +msgid "Gelderland" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:24 +msgid "Gelnica" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:12 +msgid "Geneva" +msgstr "" + +#: contrib/gis/db/models/fields.py:293 +msgid "Geometry collection" +msgstr "" + +#: conf/global_settings.py:70 +msgid "Georgian" +msgstr "" + +#: conf/global_settings.py:51 +msgid "German" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:24 +msgid "Gifu" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:21 +msgid "Girona" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:13 +msgid "Glarus" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:23 +msgid "Gloucestershire" +msgstr "" + +#: contrib/admin/templates/admin/actions.html:4 +msgid "Go" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:14 +#: contrib/localflavor/id/id_choices.py:75 +msgid "Gorontalo" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:24 +msgid "Gotland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:79 +msgid "Grampian" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:22 +msgid "Granada" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:14 +msgid "Graubuenden" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:24 +msgid "Greater London" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:25 +msgid "Greater Manchester" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:22 +msgid "Greater Poland" +msgstr "" + +#: conf/global_settings.py:52 +msgid "Greek" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:8 +msgid "Groningen" +msgstr "" + +#: contrib/auth/admin.py:29 +msgid "Groups" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:23 +msgid "Guadalajara" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:23 +msgid "Guanajuato" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:22 +msgid "Guerrero" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:24 +msgid "Guipuzkoa" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:13 +msgid "Gunma" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:66 +msgid "Gwent" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:67 +msgid "Gwynedd" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:33 +msgid "Gävleborg" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:27 +msgid "Halland" +msgstr "" + +#: contrib/localflavor/de/de_states.py:10 +msgid "Hamburg" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:26 +msgid "Hampshire" +msgstr "" + +#: conf/global_settings.py:64 +msgid "Hebrew" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:27 +msgid "Hertfordshire" +msgstr "" + +#: contrib/localflavor/de/de_states.py:11 +msgid "Hessen" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:24 +msgid "Hidalgo" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:80 +msgid "Highland" +msgstr "" + +#: conf/global_settings.py:65 +msgid "Hindi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:37 +msgid "Hiroshima" +msgstr "" + +#: contrib/admin/templates/admin/change_form.html:28 +#: contrib/admin/templates/admin/object_history.html:10 +msgid "History" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:25 +msgid "Hlohovec" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:4 +msgid "Hokkaido" +msgstr "" + +#: db/models/fields/related.py:959 +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" +"Hâld \"Control\", of \"Command\" op in Mac del, om mear as ien te " +"selektearjen." + +#: contrib/admin/templates/admin/500.html:4 +#: contrib/admin/templates/admin/app_index.html:8 +#: contrib/admin/templates/admin/base.html:54 +#: contrib/admin/templates/admin/change_form.html:18 +#: contrib/admin/templates/admin/change_list.html:36 +#: contrib/admin/templates/admin/delete_confirmation.html:6 +#: contrib/admin/templates/admin/delete_selected_confirmation.html:6 +#: contrib/admin/templates/admin/invalid_setup.html:4 +#: contrib/admin/templates/admin/object_history.html:6 +#: contrib/admin/templates/admin/auth/user/change_password.html:11 +#: contrib/admin/templates/registration/logged_out.html:4 +#: contrib/admin/templates/registration/password_change_done.html:4 +#: contrib/admin/templates/registration/password_change_form.html:5 +#: contrib/admin/templates/registration/password_reset_complete.html:4 +#: contrib/admin/templates/registration/password_reset_confirm.html:4 +#: contrib/admin/templates/registration/password_reset_done.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 +msgid "Home" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:15 +msgid "Hradec Region" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:25 +msgid "Huelva" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:26 +msgid "Huesca" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:26 +msgid "Humenne" +msgstr "" + +#: conf/global_settings.py:63 +msgid "Hungarian" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:31 +msgid "Hyogo" +msgstr "" + +#: contrib/comments/models.py:60 db/models/fields/__init__.py:905 +msgid "IP address" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:11 +msgid "Ibaraki" +msgstr "" + +#: conf/global_settings.py:67 +msgid "Icelandic" +msgstr "" + +#: contrib/flatpages/models.py:13 +msgid "If this is checked, only logged-in users will be able to view the page." +msgstr "" + +#: contrib/comments/forms.py:182 +msgid "" +"If you enter anything in this field your comment will be treated as spam" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:27 +msgid "Ilava" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:11 +msgid "Illes Balears" +msgstr "" + +#: contrib/auth/admin.py:28 +msgid "Important dates" +msgstr "" + +#: contrib/auth/models.py:148 +msgid "" +"In addition to the permissions manually assigned, this user will also get " +"all permissions granted to each group he/she is in." +msgstr "" + +#: db/models/fields/__init__.py:471 db/models/fields/__init__.py:867 +#: db/models/fields/__init__.py:963 db/models/fields/__init__.py:974 +#: db/models/fields/__init__.py:1001 +msgid "Integer" +msgstr "" + +#: contrib/localflavor/br/forms.py:135 +msgid "Invalid CNPJ number." +msgstr "" + +#: contrib/localflavor/br/forms.py:95 +msgid "Invalid CPF number." +msgstr "" + +#: contrib/localflavor/ar/forms.py:81 +msgid "Invalid CUIT." +msgstr "" + +#: contrib/localflavor/es/forms.py:71 +msgid "Invalid checksum for CIF." +msgstr "" + +#: contrib/localflavor/es/forms.py:70 +msgid "Invalid checksum for NIE." +msgstr "" + +#: contrib/localflavor/es/forms.py:69 +msgid "Invalid checksum for NIF." +msgstr "" + +#: contrib/localflavor/es/forms.py:144 +msgid "Invalid checksum for bank account number." +msgstr "" + +#: db/models/fields/__init__.py:601 +#, python-format +msgid "Invalid date: %s" +msgstr "Foute datum: %s" + +#: contrib/gis/forms/fields.py:19 +msgid "Invalid geometry type." +msgstr "" + +#: contrib/gis/forms/fields.py:18 +msgid "Invalid geometry value." +msgstr "" + +#: contrib/localflavor/cz/forms.py:49 +msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" +msgstr "" + +#: conf/global_settings.py:61 +msgid "Irish" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:22 +msgid "Ishikawa" +msgstr "" + +#: conf/global_settings.py:68 +msgid "Italian" +msgstr "" + +#: contrib/admin/options.py:736 +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:6 +msgid "Iwate" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:27 +msgid "Jaen" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:13 +#: contrib/localflavor/id/id_choices.py:51 +msgid "Jakarta" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:25 +msgid "Jalisco" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:15 +#: contrib/localflavor/id/id_choices.py:57 +msgid "Jambi" +msgstr "" + +#: utils/dates.py:31 +msgid "Jan." +msgstr "" + +#: utils/dates.py:18 +msgid "January" +msgstr "" + +#: conf/global_settings.py:69 +msgid "Japanese" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:16 +msgid "Jawa Barat" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:17 +msgid "Jawa Tengah" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:18 +msgid "Jawa Timur" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:94 +msgid "Jember" +msgstr "" + +#: utils/dates.py:19 utils/dates.py:31 +msgid "July" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25 +msgid "Jumps to the admin page for pages that represent a single object." +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19 +msgid "" +"Jumps you from any page to the documentation for the view that generates " +"that page." +msgstr "" + +#: utils/dates.py:18 utils/dates.py:31 +msgid "June" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:15 +msgid "Jura" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:35 +msgid "Jämtland" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:21 +msgid "Jönköping" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:40 +msgid "Kagawa" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:49 +msgid "Kagoshima" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:19 +#: contrib/localflavor/id/id_choices.py:88 +msgid "Kalimantan Barat" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:20 +#: contrib/localflavor/id/id_choices.py:66 +msgid "Kalimantan Selatan" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:21 +#: contrib/localflavor/id/id_choices.py:89 +msgid "Kalimantan Tengah" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:22 +#: contrib/localflavor/id/id_choices.py:90 +msgid "Kalimantan Timur" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:23 +msgid "Kalmar" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:17 +msgid "Kanagawa" +msgstr "" + +#: conf/global_settings.py:73 +msgid "Kannada" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:50 +msgid "Kediri" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:28 +msgid "Kent" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:61 +msgid "Kepulauan Bangka Belitung" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:23 +msgid "Kepulauan Bangka-Belitung" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:24 +#: contrib/localflavor/id/id_choices.py:62 +msgid "Kepulauan Riau" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:20 +msgid "Kerry" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:28 +msgid "Kezmarok" +msgstr "" + +#: conf/global_settings.py:72 +msgid "Khmer" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:21 +msgid "Kildare" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:22 +msgid "Kilkenny" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:42 +msgid "Kochi" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:29 +msgid "Komarno" +msgstr "" + +#: conf/global_settings.py:71 +msgid "Korean" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:34 +msgid "Kosice - okolie" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:30 +msgid "Kosice I" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:31 +msgid "Kosice II" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:32 +msgid "Kosice III" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:33 +msgid "Kosice IV" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:10 +msgid "Kosice region" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:22 +msgid "Kronoberg" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:35 +msgid "Krupina" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:46 +msgid "Kumamoto" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:9 +msgid "Kuyavia-Pomerania" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:7 +msgid "KwaZulu-Natal" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:29 +msgid "Kyoto" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:36 +msgid "Kysucke Nove Mesto" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:30 +#: contrib/localflavor/es/es_regions.py:17 +msgid "La Rioja" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:25 +#: contrib/localflavor/id/id_choices.py:55 +msgid "Lampung" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:29 +msgid "Lancashire" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:23 +msgid "Laois" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:39 +msgid "Las Palmas" +msgstr "" + +#: contrib/comments/feeds.py:23 +#, python-format +msgid "Latest comments on %(site_name)s" +msgstr "" + +#: conf/global_settings.py:74 +msgid "Latvian" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:30 +msgid "Leicestershire" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:24 +msgid "Leitrim" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:28 +msgid "Leon" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:13 +msgid "Lesser Poland" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:37 +msgid "Levice" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:38 +msgid "Levoca" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:14 +msgid "Liberec Region" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:9 +msgid "Limburg" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:25 +msgid "Limerick" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:8 +msgid "Limpopo" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:31 +msgid "Lincolnshire" +msgstr "" + +#: contrib/gis/db/models/fields.py:273 +msgid "Line string" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:39 +msgid "Liptovsky Mikulas" +msgstr "" + +#: conf/global_settings.py:75 +msgid "Lithuanian" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:29 +msgid "Lleida" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:12 +msgid "Lodz" +msgstr "" + +#: contrib/admin/sites.py:402 contrib/admin/templates/admin/login.html:26 +#: contrib/admin/templates/registration/password_reset_complete.html:14 +#: contrib/admin/views/decorators.py:20 +msgid "Log in" +msgstr "" + +#: contrib/admin/templates/registration/logged_out.html:10 +msgid "Log in again" +msgstr "" + +#: contrib/admin/templates/admin/base.html:47 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/registration/password_change_form.html:4 +msgid "Log out" +msgstr "" + +#: contrib/auth/views.py:60 +msgid "Logged out" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:26 +msgid "Longford" +msgstr "" + +#: contrib/admin/sites.py:313 contrib/admin/views/decorators.py:47 +msgid "" +"Looks like your browser isn't configured to accept cookies. Please enable " +"cookies, reload this page, and try again." +msgstr "" + +#: contrib/admin/widgets.py:126 +msgid "Lookup" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:81 +msgid "Lothian" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:27 +msgid "Louth" +msgstr "" + +#: contrib/localflavor/at/at_states.py:7 +msgid "Lower Austria" +msgstr "" + +#: contrib/localflavor/de/de_states.py:13 +msgid "Lower Saxony" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:8 +msgid "Lower Silesia" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:10 +msgid "Lublin" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:11 +msgid "Lubusz" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:40 +msgid "Lucenec" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:16 +msgid "Lucerne" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:31 +msgid "Lugo" +msgstr "" + +#: utils/translation/trans_real.py:554 +msgid "MONTH_DAY_FORMAT" +msgstr "F j" + +#: conf/global_settings.py:76 +msgid "Macedonian" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:49 +msgid "Madiun" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:32 +#: contrib/localflavor/es/es_regions.py:18 +msgid "Madrid" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:92 +msgid "Madura" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:46 +msgid "Magelang" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:41 +msgid "Malacky" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:33 +msgid "Malaga" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:93 +msgid "Malang" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:26 +#: contrib/localflavor/id/id_choices.py:70 +msgid "Maluku" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:27 +#: contrib/localflavor/id/id_choices.py:71 +msgid "Maluku Utara" +msgstr "" + +#: db/models/fields/related.py:939 +msgid "Many-to-many relationship" +msgstr "" + +#: utils/dates.py:18 utils/dates.py:31 +msgid "March" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:42 +msgid "Martin" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:14 +msgid "Masovia" +msgstr "" + +#: utils/dates.py:18 utils/dates.py:31 +msgid "May" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:28 +msgid "Mayo" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:29 +msgid "Meath" +msgstr "" + +#: contrib/localflavor/de/de_states.py:12 +msgid "Mecklenburg-Western Pomerania" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:43 +msgid "Medzilaborce" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:56 +msgid "Melilla" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:32 +msgid "Merseyside" +msgstr "" + +#: contrib/comments/admin.py:15 +msgid "Metadata" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:44 +msgid "Michalovce" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:27 +msgid "Michoacán" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:68 +msgid "Mid Glamorgan" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:27 +msgid "Mie" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:7 +msgid "Miyagi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:48 +msgid "Miyazaki" +msgstr "" + +#: db/models/fields/related.py:755 +#, python-format +msgid "Model %(model)s with pk %(pk)r does not exist." +msgstr "" + +#: contrib/admindocs/views.py:197 +#, python-format +msgid "Model %(model_name)r not found in app %(app_label)r" +msgstr "" + +#: contrib/admin/templates/admin/index.html:18 +#, python-format +msgid "Models available in the %(name)s application." +msgstr "" + +#: utils/dates.py:10 +msgid "Mon" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:30 +msgid "Monaghan" +msgstr "" + +#: utils/dates.py:6 +msgid "Monday" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:21 +msgid "Moravian-Silesian Region" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:28 +msgid "Morelos" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:9 +msgid "Mpumalanga" +msgstr "" + +#: contrib/gis/db/models/fields.py:289 +msgid "Multi polygon" +msgstr "" + +#: contrib/gis/db/models/fields.py:285 +msgid "Multi-line string" +msgstr "" + +#: contrib/gis/db/models/fields.py:281 +msgid "Multi-point" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:34 +msgid "Murcia" +msgstr "" + +#: contrib/admin/templates/admin/index.html:54 +msgid "My Actions" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:45 +msgid "Myjava" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:77 +msgid "NTB - Lombok" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:81 +msgid "NTB - Sumbawa" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:82 +msgid "NTT - Flores" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:83 +msgid "NTT - Sumba" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:72 +msgid "NTT - Timor" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:19 +msgid "Nagano" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:45 +msgid "Nagasaki" +msgstr "" + +#: contrib/comments/forms.py:93 +msgid "Name" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:46 +msgid "Namestovo" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:28 +#: contrib/localflavor/id/id_choices.py:59 +msgid "Nanggroe Aceh Darussalam" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:32 +msgid "Nara" +msgstr "" + +#: contrib/localflavor/pl/forms.py:109 +msgid "National Business Register Number (REGON) consists of 9 or 14 digits." +msgstr "" + +#: contrib/localflavor/pl/forms.py:38 +msgid "National Identification Number consists of 11 digits." +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:35 +msgid "Navarre" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:29 +msgid "Nayarit" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:17 +msgid "Neuchatel" +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:32 +#: contrib/auth/forms.py:144 +msgid "New password" +msgstr "" + +#: contrib/auth/forms.py:145 +msgid "New password confirmation" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:18 +msgid "New password:" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:18 +msgid "Nidwalden" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:20 +msgid "Niigata" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:47 +msgid "Nitra" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:11 +msgid "Nitra region" +msgstr "" + +#: contrib/admin/filterspecs.py:147 forms/widgets.py:435 +msgid "No" +msgstr "" + +#: contrib/admin/options.py:754 +msgid "No action selected." +msgstr "" + +#: contrib/admin/options.py:574 +msgid "No fields changed." +msgstr "" + +#: forms/fields.py:422 +msgid "No file was submitted." +msgstr "Der is gjin bestân yntsjinne." + +#: forms/fields.py:421 +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"Der is gjin bestân yntsjinne. Kontrolearje it kodearringstype op it " +"formulier." + +#: contrib/gis/forms/fields.py:17 +msgid "No geometry value provided." +msgstr "" + +#: contrib/admin/options.py:137 contrib/admin/options.py:152 +msgid "None" +msgstr "" + +#: contrib/admin/templates/admin/index.html:58 +msgid "None available" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:10 +msgid "Noord-Brabant" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:11 +msgid "Noord-Holland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:33 +msgid "Norfolk" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:17 +msgid "Norrbotten" +msgstr "" + +#: contrib/localflavor/de/de_states.py:14 +msgid "North Rhine-Westphalia" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:11 +msgid "North West" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:34 +msgid "North Yorkshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:35 +msgid "Northamptonshire" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:10 +msgid "Northern Cape" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:91 +msgid "Northern Ireland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:36 +msgid "Northumberland" +msgstr "" + +#: conf/global_settings.py:78 +msgid "Norwegian" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:37 +msgid "Nottinghamshire" +msgstr "" + +#: utils/dates.py:32 +msgid "Nov." +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:48 +msgid "Nove Mesto nad Vahom" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:49 +msgid "Nove Zamky" +msgstr "" + +#: utils/dates.py:19 +msgid "November" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:30 +msgid "Nuevo León" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:29 +msgid "Nusa Tenggara Barat" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:30 +msgid "Nusa Tenggara Timur" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:31 +msgid "Oaxaca" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:19 +msgid "Obwalden" +msgstr "" + +#: utils/dates.py:32 +msgid "Oct." +msgstr "" + +#: utils/dates.py:19 +msgid "October" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:31 +msgid "Offaly" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:47 +msgid "Oita" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:36 +msgid "Okayama" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:50 +msgid "Okinawa" +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:27 +#: contrib/auth/forms.py:170 +msgid "Old password" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:19 +msgid "Olomouc Region" +msgstr "" + +#: contrib/admin/util.py:175 +#, python-format +msgid "One or more %(fieldname)s in %(name)s:" +msgstr "" + +#: contrib/admin/util.py:170 +#, python-format +msgid "One or more %(fieldname)s in %(name)s: %(obj)s" +msgstr "" + +#: db/models/fields/related.py:879 +msgid "One-to-one relationship" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:15 +msgid "Opole" +msgstr "" + +#: forms/formsets.py:287 forms/formsets.py:289 +msgid "Order" +msgstr "Oarder" + +#: contrib/localflavor/uk/uk_regions.py:82 +msgid "Orkney Islands" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:30 +msgid "Osaka" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:36 +msgid "Ourense" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:12 +msgid "Overijssel" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:38 +msgid "Oxfordshire" +msgstr "" + +#: utils/dateformat.py:48 +msgid "PM" +msgstr "" + +#: contrib/admin/templates/admin/404.html:4 +#: contrib/admin/templates/admin/404.html:8 +msgid "Page not found" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:38 +msgid "Palencia" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:31 +msgid "Papua" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:32 +msgid "Papua Barat" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:78 +msgid "Papua dan Papua Barat" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:16 +msgid "Pardubice Region" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:50 +msgid "Partizanske" +msgstr "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:35 +#: contrib/auth/forms.py:17 contrib/auth/forms.py:61 contrib/auth/forms.py:186 +msgid "Password" +msgstr "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:41 +#: contrib/admin/templates/registration/password_change_form.html:37 +#: contrib/auth/forms.py:187 +msgid "Password (again)" +msgstr "" + +#: contrib/admin/templates/registration/password_change_done.html:4 +#: contrib/admin/templates/registration/password_change_form.html:5 +#: contrib/admin/templates/registration/password_change_form.html:7 +#: contrib/admin/templates/registration/password_change_form.html:19 +msgid "Password change" +msgstr "" + +#: contrib/admin/templates/registration/password_change_done.html:6 +#: contrib/admin/templates/registration/password_change_done.html:10 +msgid "Password change successful" +msgstr "" + +#: contrib/auth/admin.py:111 +msgid "Password changed successfully." +msgstr "" + +#: contrib/auth/forms.py:18 +msgid "Password confirmation" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_complete.html:4 +#: contrib/admin/templates/registration/password_reset_confirm.html:6 +#: contrib/admin/templates/registration/password_reset_done.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:6 +#: contrib/admin/templates/registration/password_reset_form.html:10 +msgid "Password reset" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_complete.html:6 +#: contrib/admin/templates/registration/password_reset_complete.html:10 +msgid "Password reset complete" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:4 +msgid "Password reset confirmation" +msgstr "" + +#: contrib/auth/forms.py:136 +#, python-format +msgid "Password reset on %s" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_done.html:6 +#: contrib/admin/templates/registration/password_reset_done.html:10 +msgid "Password reset successful" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:26 +msgid "Password reset unsuccessful" +msgstr "" + +#: contrib/admin/templates/admin/login.html:22 +msgid "Password:" +msgstr "" + +#: contrib/admin/filterspecs.py:117 +msgid "Past 7 days" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:87 +msgid "Pati" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:85 +msgid "Pekalongan" +msgstr "" + +#: contrib/auth/admin.py:27 +msgid "Permissions" +msgstr "" + +#: conf/global_settings.py:58 +msgid "Persian" +msgstr "" + +#: contrib/auth/admin.py:26 +msgid "Personal info" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:51 +msgid "Pezinok" +msgstr "" + +#: contrib/localflavor/us/models.py:17 +msgid "Phone number" +msgstr "" + +#: contrib/localflavor/fr/forms.py:31 +msgid "Phone numbers must be in 0X XX XX XX XX format." +msgstr "" + +#: contrib/localflavor/br/forms.py:31 +msgid "Phone numbers must be in XX-XXXX-XXXX format." +msgstr "" + +#: contrib/localflavor/us/forms.py:26 +msgid "Phone numbers must be in XXX-XXX-XXXX format." +msgstr "" + +#: contrib/localflavor/ro/forms.py:171 +msgid "Phone numbers must be in XXXX-XXXXXX format." +msgstr "" + +#: contrib/localflavor/pt/forms.py:37 +msgid "Phone numbers must have 9 digits, or start by + or 00." +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:52 +msgid "Piestany" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:11 +msgid "Pilsen Region" +msgstr "" + +#: forms/models.py:542 +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" + +#: forms/models.py:538 +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "" + +#: forms/models.py:548 +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +#: forms/models.py:556 +msgid "Please correct the duplicate values below." +msgstr "" + +#: contrib/comments/templates/comments/preview.html:11 +msgid "Please correct the error below" +msgid_plural "Please correct the errors below" +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/templates/admin/change_form.html:39 +#: contrib/admin/templates/admin/change_list.html:65 +#: contrib/admin/templates/admin/auth/user/change_password.html:24 +#: contrib/admin/templates/registration/password_change_form.html:15 +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/sites.py:22 contrib/admin/views/decorators.py:14 +#: contrib/auth/forms.py:81 +msgid "" +"Please enter a correct username and password. Note that both fields are case-" +"sensitive." +msgstr "" + +#: contrib/localflavor/es/forms.py:68 +msgid "Please enter a valid NIF or NIE." +msgstr "" + +#: contrib/localflavor/es/forms.py:67 +msgid "Please enter a valid NIF, NIE, or CIF." +msgstr "" + +#: contrib/localflavor/es/forms.py:143 +msgid "" +"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." +msgstr "" + +#: db/models/fields/related.py:1020 +#, 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] "" +"Jou asjobleaft falide %(self)s IDs. De wearde %(value)r is net goed." +msgstr[1] "" +"Jou asjobleaft falide %(self)s IDs. De wearden %(value)r binne net goed." + +#: contrib/admin/templates/registration/password_reset_confirm.html:14 +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:21 +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:5 +msgid "Please go to the following page and choose a new password:" +msgstr "" + +#: contrib/admin/sites.py:306 contrib/admin/views/decorators.py:40 +msgid "Please log in again, because your session has expired." +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:17 +msgid "Podlasie" +msgstr "" + +#: contrib/gis/db/models/fields.py:269 +msgid "Point" +msgstr "" + +#: conf/global_settings.py:79 +msgid "Polish" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:53 +msgid "Poltar" +msgstr "" + +#: contrib/gis/db/models/fields.py:277 +msgid "Polygon" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:18 +msgid "Pomerania" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:40 +msgid "Pontevedra" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:54 +msgid "Poprad" +msgstr "" + +#: conf/global_settings.py:80 +msgid "Portuguese" +msgstr "" + +#: contrib/comments/templates/comments/form.html:17 +#: contrib/comments/templates/comments/preview.html:32 +msgid "Post" +msgstr "" + +#: contrib/comments/templates/comments/preview.html:16 +msgid "Post your comment" +msgstr "" + +#: contrib/comments/models.py:153 +#, python-format +msgid "" +"Posted by %(user)s at %(date)s\n" +"\n" +"%(comment)s\n" +"\n" +"http://%(domain)s%(url)s" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:55 +msgid "Povazska Bystrica" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:69 +msgid "Powys" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:8 +msgid "Prague" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:56 +msgid "Presov" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:12 +msgid "Presov region" +msgstr "" + +#: contrib/comments/templates/comments/form.html:18 +#: contrib/comments/templates/comments/preview.html:33 +msgid "Preview" +msgstr "" + +#: contrib/comments/templates/comments/preview.html:4 +#: contrib/comments/templates/comments/preview.html:13 +msgid "Preview your comment" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:57 +msgid "Prievidza" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:7 +msgid "Principality of Asturias" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:58 +msgid "Puchov" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:32 +msgid "Puebla" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:98 +msgid "Purwakarta" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:33 +msgid "Querétaro" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:34 +msgid "Quintana Roo" +msgstr "" + +#: contrib/comments/templates/comments/flag.html:7 +msgid "Really flag this comment?" +msgstr "" + +#: contrib/comments/templates/comments/approve.html:7 +msgid "Really make this comment public?" +msgstr "" + +#: contrib/comments/templates/comments/delete.html:7 +msgid "Really remove this comment?" +msgstr "" + +#: contrib/admin/templates/admin/index.html:53 +msgid "Recent Actions" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:19 +msgid "Region of Murcia" +msgstr "" + +#: contrib/admin/templates/admin/edit_inline/stacked.html:36 +#: contrib/admin/templates/admin/edit_inline/tabular.html:81 +#: contrib/comments/templates/comments/delete.html:12 +msgid "Remove" +msgstr "" + +#: contrib/comments/templates/comments/delete.html:4 +msgid "Remove a comment" +msgstr "" + +#: contrib/comments/admin.py:48 +msgid "Remove selected comments" +msgstr "" + +#: contrib/auth/forms.py:15 contrib/auth/forms.py:49 +#: contrib/auth/models.py:137 +msgid "" +"Required. 30 characters or fewer. Alphanumeric characters only (letters, " +"digits and underscores)." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "Reset my password" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:59 +msgid "Revuca" +msgstr "" + +#: contrib/localflavor/de/de_states.py:15 +msgid "Rhineland-Palatinate" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:33 +#: contrib/localflavor/id/id_choices.py:60 +msgid "Riau" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:60 +msgid "Rimavska Sobota" +msgstr "" + +#: conf/global_settings.py:82 +msgid "Romanian" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:32 +msgid "Roscommon" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:61 +msgid "Roznava" +msgstr "" + +#: contrib/admin/templates/admin/actions.html:4 +msgid "Run the selected action" +msgstr "" + +#: conf/global_settings.py:83 +msgid "Russian" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:62 +msgid "Ruzomberok" +msgstr "" + +#: contrib/localflavor/de/de_states.py:16 +msgid "Saarland" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:63 +msgid "Sabinov" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:44 +msgid "Saga" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:14 +msgid "Saitama" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:73 +msgid "Sala" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:41 +msgid "Salamanca" +msgstr "" + +#: contrib/localflavor/at/at_states.py:9 +msgid "Salzburg" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:36 +msgid "San Luis Potosí" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:42 +msgid "Santa Cruz de Tenerife" +msgstr "" + +#: utils/dates.py:11 +msgid "Sat" +msgstr "" + +#: utils/dates.py:7 +msgid "Saturday" +msgstr "" + +#: contrib/admin/templates/admin/pagination.html:11 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Save" +msgstr "" + +#: contrib/admin/templates/admin/submit_line.html:6 +msgid "Save and add another" +msgstr "" + +#: contrib/admin/templates/admin/submit_line.html:7 +msgid "Save and continue editing" +msgstr "" + +#: contrib/admin/templates/admin/submit_line.html:5 +msgid "Save as new" +msgstr "" + +#: contrib/localflavor/de/de_states.py:17 +msgid "Saxony" +msgstr "" + +#: contrib/localflavor/de/de_states.py:18 +msgid "Saxony-Anhalt" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:20 +msgid "Schaffhausen" +msgstr "" + +#: contrib/localflavor/de/de_states.py:19 +msgid "Schleswig-Holstein" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:21 +msgid "Schwyz" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:92 +msgid "Scotland" +msgstr "" + +#: contrib/admin/templates/admin/search_form.html:8 +msgid "Search" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:44 +msgid "Segovia" +msgstr "" + +#: contrib/admin/views/main.py:70 +#, python-format +msgid "Select %s" +msgstr "" + +#: contrib/admin/views/main.py:70 +#, python-format +msgid "Select %s to change" +msgstr "" + +#: contrib/localflavor/br/forms.py:59 +msgid "" +"Select a valid brazilian state. That state is not one of the available " +"states." +msgstr "" + +#: forms/fields.py:577 forms/fields.py:652 +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Selektearje in falide kar. %(value)s is net ien fan de beskikbere karren." + +#: forms/models.py:962 +#, python-format +msgid "Select a valid choice. %s is not one of the available choices." +msgstr "Selektearje in falide kar. %s is net ien fan de beskikbere karren." + +#: forms/models.py:886 +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Selektearje in falide kar. Dizze kar is net ien fan de beskikbere karren." + +#: contrib/admin/templates/admin/actions.html:14 +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:86 +msgid "Semarang" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:64 +msgid "Senec" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:65 +msgid "Senica" +msgstr "" + +#: utils/dates.py:32 +msgid "Sept." +msgstr "" + +#: utils/dates.py:19 +msgid "September" +msgstr "" + +#: conf/global_settings.py:86 +msgid "Serbian" +msgstr "" + +#: conf/global_settings.py:87 +msgid "Serbian Latin" +msgstr "" + +#: contrib/admin/templates/admin/500.html:9 +msgid "Server Error (500)" +msgstr "" + +#: contrib/admin/templates/admin/500.html:4 +msgid "Server error" +msgstr "" + +#: contrib/admin/templates/admin/500.html:6 +msgid "Server error (500)" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:45 +msgid "Seville" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:83 +msgid "Shetland Islands" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:28 +msgid "Shiga" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:35 +msgid "Shimane" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:25 +msgid "Shizuoka" +msgstr "" + +#: contrib/admin/templates/admin/pagination.html:10 +msgid "Show all" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21 +msgid "Show object ID" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22 +msgid "" +"Shows the content-type and unique ID for pages that represent a single " +"object." +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:39 +msgid "Shropshire" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:99 +msgid "Sidoarjo" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:19 +msgid "Silesia" +msgstr "" + +#: conf/global_settings.py:94 +msgid "Simplified Chinese" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:35 +msgid "Sinaloa" +msgstr "" + +#: contrib/admin/sites.py:388 +msgid "Site administration" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:66 +msgid "Skalica" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:26 +msgid "Skåne" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:33 +msgid "Sligo" +msgstr "" + +#: conf/global_settings.py:84 +msgid "Slovak" +msgstr "" + +#: conf/global_settings.py:85 +msgid "Slovenian" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:67 +msgid "Snina" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:68 +msgid "Sobrance" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:22 +msgid "Solothurn" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:40 +msgid "Somerset" +msgstr "" + +#: contrib/admin/templates/admin/invalid_setup.html:7 +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:37 +msgid "Sonora" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:46 +msgid "Soria" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:10 +msgid "South Bohemian Region" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:70 +msgid "South Glamorgan" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:18 +msgid "South Moravian Region" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:41 +msgid "South Yorkshire" +msgstr "" + +#: conf/global_settings.py:54 +msgid "Spanish" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:69 +msgid "Spisska Nova Ves" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:23 +msgid "St. Gallen" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:42 +msgid "Staffordshire" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:70 +msgid "Stara Lubovna" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:15 +msgid "Stockholm" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:84 +msgid "Strathclyde" +msgstr "" + +#: db/models/fields/__init__.py:554 db/models/fields/__init__.py:984 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:71 +msgid "Stropkov" +msgstr "" + +#: contrib/localflavor/at/at_states.py:10 +msgid "Styria" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:16 +msgid "Subcarpatia" +msgstr "" + +#: contrib/admin/actions.py:60 +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:43 +msgid "Suffolk" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:34 +#: contrib/localflavor/id/id_choices.py:68 +msgid "Sulawesi Barat" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:35 +#: contrib/localflavor/id/id_choices.py:69 +msgid "Sulawesi Selatan" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:36 +#: contrib/localflavor/id/id_choices.py:76 +msgid "Sulawesi Tengah" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:37 +#: contrib/localflavor/id/id_choices.py:79 +msgid "Sulawesi Tenggara" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:38 +msgid "Sulawesi Utara" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:67 +msgid "Sulawesi Utara Daratan" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:74 +msgid "Sulawesi Utara Kepulauan" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:39 +#: contrib/localflavor/id/id_choices.py:52 +msgid "Sumatera Barat" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:40 +#: contrib/localflavor/id/id_choices.py:56 +msgid "Sumatera Selatan" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:41 +#: contrib/localflavor/id/id_choices.py:58 +msgid "Sumatera Utara" +msgstr "" + +#: utils/dates.py:11 +msgid "Sun" +msgstr "" + +#: utils/dates.py:7 +msgid "Sunday" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:91 +msgid "Surabaya" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:48 +msgid "Surakarta - Solo" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:44 +msgid "Surrey" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:72 +msgid "Svidnik" +msgstr "" + +#: conf/global_settings.py:88 +msgid "Swedish" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:20 +msgid "Swietokrzyskie" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:19 +msgid "Södermanland" +msgstr "" + +#: utils/translation/trans_real.py:532 +msgid "TIME_FORMAT" +msgstr "P" + +#: contrib/localflavor/mx/mx_states.py:38 +msgid "Tabasco" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:39 +msgid "Tamaulipas" +msgstr "" + +#: conf/global_settings.py:89 +msgid "Tamil" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:53 +msgid "Tapanuli" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:47 +msgid "Tarragona" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:85 +msgid "Tayside" +msgstr "" + +#: conf/global_settings.py:90 +msgid "Telugu" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:48 +msgid "Teruel" +msgstr "" + +#: db/models/fields/__init__.py:1007 +msgid "Text" +msgstr "" + +#: conf/global_settings.py:91 +msgid "Thai" +msgstr "" + +#: contrib/comments/templates/comments/posted.html:7 +msgid "Thank you for your comment" +msgstr "" + +#: contrib/comments/templates/comments/approved.html:4 +msgid "Thanks for approving" +msgstr "" + +#: contrib/comments/templates/comments/posted.html:4 +msgid "Thanks for commenting" +msgstr "" + +#: contrib/comments/templates/comments/flagged.html:4 +msgid "Thanks for flagging" +msgstr "" + +#: contrib/comments/templates/comments/deleted.html:4 +msgid "Thanks for removing" +msgstr "" + +#: contrib/admin/templates/registration/logged_out.html:8 +msgid "Thanks for spending some quality time with the Web site today." +msgstr "" + +#: contrib/comments/templates/comments/approved.html:7 +#: contrib/comments/templates/comments/deleted.html:7 +#: contrib/comments/templates/comments/flagged.html:7 +msgid "" +"Thanks for taking the time to improve the quality of discussion on our site" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:11 +msgid "Thanks for using our site!" +msgstr "" + +#: contrib/auth/forms.py:110 +msgid "" +"That e-mail address doesn't have an associated user account. Are you sure " +"you've registered?" +msgstr "" + +#: contrib/admin/options.py:640 +#, python-format +msgid "The %(name)s \"%(obj)s\" was added successfully." +msgstr "" + +#: contrib/admin/options.py:683 +#, python-format +msgid "" +"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." +msgstr "" + +#: contrib/admin/options.py:675 +#, python-format +msgid "The %(name)s \"%(obj)s\" was changed successfully." +msgstr "" + +#: contrib/admin/options.py:1087 +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:13 +#, python-format +msgid "The %(site_name)s team" +msgstr "" + +#: views/generic/create_update.py:115 +#, python-format +msgid "The %(verbose_name)s was created successfully." +msgstr "De %(verbose_name)s is súksesfol oanmakke." + +#: views/generic/create_update.py:201 +#, python-format +msgid "The %(verbose_name)s was deleted." +msgstr "De %(verbose_name)s is fuortsmiten." + +#: views/generic/create_update.py:158 +#, python-format +msgid "The %(verbose_name)s was updated successfully." +msgstr "De %(verbose_name)s is súksesfol fernijd." + +#: contrib/localflavor/cl/forms.py:32 +msgid "The Chilean RUT is not valid." +msgstr "" + +#: contrib/localflavor/is_/forms.py:19 +msgid "The Icelandic identification number is not valid." +msgstr "" + +#: contrib/gis/db/models/fields.py:50 +msgid "The base GIS field -- maps to the OpenGIS Specification Geometry type." +msgstr "" + +#: forms/models.py:820 +msgid "The inline foreign key did not match the parent instance primary key." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:28 +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +#: forms/fields.py:423 +msgid "The submitted file is empty." +msgstr "It yntsjinne bestân is leech." + +#: contrib/auth/forms.py:37 contrib/auth/forms.py:156 +#: contrib/auth/forms.py:198 +msgid "The two password fields didn't match." +msgstr "" + +#: contrib/admin/templates/admin/500.html:10 +msgid "" +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." +msgstr "" + +#: core/validators.py:71 forms/fields.py:511 +msgid "This URL appears to be a broken link." +msgstr "Dit URL liket in ferbrutsen keppeling." + +#: contrib/auth/forms.py:83 +msgid "This account is inactive." +msgstr "" + +#: contrib/redirects/models.py:10 +msgid "" +"This can be either an absolute path (as above) or a full URL starting with " +"'http://'." +msgstr "" + +#: contrib/comments/models.py:128 +msgid "" +"This comment was posted by an authenticated user and thus the email is read-" +"only." +msgstr "" + +#: contrib/comments/models.py:119 +msgid "" +"This comment was posted by an authenticated user and thus the name is read-" +"only." +msgstr "" + +#: db/models/fields/__init__.py:67 +msgid "This field cannot be blank." +msgstr "" + +#: db/models/fields/__init__.py:66 +msgid "This field cannot be null." +msgstr "Dit fjild kin net leech wêze." + +#: forms/fields.py:65 +msgid "This field is required." +msgstr "Dit fjild is fereaske." + +#: contrib/localflavor/pe/forms.py:53 +msgid "This field requires 11 digits." +msgstr "" + +#: contrib/localflavor/ar/forms.py:51 +msgid "This field requires 7 or 8 digits." +msgstr "" + +#: contrib/localflavor/pe/forms.py:25 +msgid "This field requires 8 digits." +msgstr "" + +#: contrib/localflavor/br/forms.py:137 +msgid "This field requires at least 14 digits" +msgstr "" + +#: contrib/localflavor/br/forms.py:96 +msgid "This field requires at most 11 digits or 14 characters." +msgstr "" + +#: contrib/localflavor/ar/forms.py:50 contrib/localflavor/br/forms.py:97 +#: contrib/localflavor/br/forms.py:136 contrib/localflavor/pe/forms.py:24 +#: contrib/localflavor/pe/forms.py:52 +msgid "This field requires only numbers." +msgstr "" + +#: contrib/admin/filterspecs.py:119 +msgid "This month" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:38 +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" + +#: contrib/redirects/models.py:8 +msgid "" +"This should be an absolute path, excluding the domain name. Example: '/" +"events/search/'." +msgstr "" + +#: db/models/fields/__init__.py:750 +msgid "This value must be a decimal number." +msgstr "Dizze wearde moat in desimaal nûmer wêze." + +#: db/models/fields/__init__.py:837 db/models/fields/__init__.py:865 +msgid "This value must be a float." +msgstr "" + +#: db/models/fields/__init__.py:475 +msgid "This value must be an integer." +msgstr "Dizze wearde moat in integer wêze." + +#: db/models/fields/__init__.py:921 +msgid "This value must be either None, True or False." +msgstr "Dizze wearde moat of Gjin, of Wier of Net wier wêze." + +#: db/models/fields/__init__.py:510 +msgid "This value must be either True or False." +msgstr "Dizze wearde moat of Wier of Net wier wêze." + +#: contrib/auth/forms.py:16 contrib/auth/forms.py:50 +msgid "This value must contain only letters, numbers and underscores." +msgstr "" + +#: contrib/flatpages/admin.py:11 +msgid "" +"This value must contain only letters, numbers, underscores, dashes or " +"slashes." +msgstr "" + +#: contrib/admin/filterspecs.py:121 +msgid "This year" +msgstr "" + +#: utils/dates.py:10 +msgid "Thu" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:24 +msgid "Thurgau" +msgstr "" + +#: contrib/localflavor/de/de_states.py:20 +msgid "Thuringia" +msgstr "" + +#: utils/dates.py:6 +msgid "Thursday" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:25 +msgid "Ticino" +msgstr "" + +#: db/models/fields/__init__.py:1023 +msgid "Time" +msgstr "" + +#: contrib/admin/widgets.py:72 +msgid "Time:" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:34 +msgid "Tipperary" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:40 +msgid "Tlaxcala" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:12 +msgid "Tochigi" +msgstr "" + +#: contrib/admin/filterspecs.py:114 +msgid "Today" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:39 +msgid "Tokushima" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:16 +msgid "Tokyo" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:49 +msgid "Toledo" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:74 +msgid "Topolcany" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:34 +msgid "Tottori" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:21 +msgid "Toyama" +msgstr "" + +#: conf/global_settings.py:95 +msgid "Traditional Chinese" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:75 +msgid "Trebisov" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:76 +msgid "Trencin" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:13 +msgid "Trencin region" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:77 +msgid "Trnava" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:14 +msgid "Trnava region" +msgstr "" + +#: utils/dates.py:10 +msgid "Tue" +msgstr "" + +#: utils/dates.py:6 +msgid "Tuesday" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:78 +msgid "Turcianske Teplice" +msgstr "" + +#: conf/global_settings.py:92 +msgid "Turkish" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:79 +msgid "Tvrdosin" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:45 +msgid "Tyne and Wear" +msgstr "" + +#: contrib/localflavor/at/at_states.py:11 +msgid "Tyrol" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:35 +msgid "Tyrone" +msgstr "" + +#: contrib/localflavor/us/models.py:8 +msgid "U.S. state (two uppercase letters)" +msgstr "" + +#: contrib/comments/forms.py:95 contrib/flatpages/admin.py:8 +#: contrib/flatpages/models.py:7 db/models/fields/__init__.py:1103 +msgid "URL" +msgstr "" + +#: conf/global_settings.py:93 +msgid "Ukrainian" +msgstr "" + +#: contrib/comments/models.py:62 +msgid "" +"Uncheck this box to make the comment effectively disappear from the site." +msgstr "" + +#: contrib/admin/filterspecs.py:154 forms/widgets.py:435 +msgid "Unknown" +msgstr "" + +#: contrib/admin/templates/admin/index.html:72 +msgid "Unknown content" +msgstr "" + +#: forms/fields.py:459 +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Laad in falide ôfbylding op. It bestân dy't jo opladen hawwe wie net in " +"ôfbylding of in skansearre ôfbylding." + +#: contrib/localflavor/at/at_states.py:8 +msgid "Upper Austria" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:18 +msgid "Uppsala" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:26 +msgid "Uri" +msgstr "" + +#: contrib/auth/models.py:141 +msgid "" +"Use '[algo]$[salt]$[hexdigest]' or use the change " +"password form." +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:23 +msgid "User" +msgstr "" + +#: contrib/auth/forms.py:14 contrib/auth/forms.py:48 contrib/auth/forms.py:60 +msgid "Username" +msgstr "" + +#: contrib/admin/templates/admin/login.html:19 +msgid "Username:" +msgstr "" + +#: contrib/admin/sites.py:329 contrib/admin/sites.py:335 +#: contrib/admin/views/decorators.py:66 +msgid "Usernames cannot contain the '@' character." +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:13 +msgid "Usti Region" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:13 +msgid "Utrecht" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:27 +msgid "Valais" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:50 +msgid "Valencia" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:21 +msgid "Valencian Community" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:51 +msgid "Valladolid" +msgstr "" + +#: db/models/fields/__init__.py:65 +#, python-format +msgid "Value %r is not a valid choice." +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:28 +msgid "Vaud" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:80 +msgid "Velky Krtis" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:41 +msgid "Veracruz" +msgstr "" + +#: contrib/localflavor/at/at_states.py:13 +msgid "Vienna" +msgstr "" + +#: contrib/admin/templates/admin/change_form.html:29 +#: contrib/admin/templates/admin/edit_inline/stacked.html:9 +#: contrib/admin/templates/admin/edit_inline/tabular.html:28 +msgid "View on site" +msgstr "" + +#: contrib/localflavor/at/at_states.py:12 +msgid "Vorarlberg" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:81 +msgid "Vranov nad Toplou" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:17 +msgid "Vysocina Region" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:29 +msgid "Värmland" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:16 +msgid "Västerbotten" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:34 +msgid "Västernorrland" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:31 +msgid "Västmanland" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:28 +msgid "Västra Götaland" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:33 +msgid "Wakayama" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:93 +msgid "Wales" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:21 +msgid "Warmia-Masuria" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:46 +msgid "Warwickshire" +msgstr "" + +#: contrib/comments/forms.py:175 +#, python-format +msgid "Watch your mouth! The word %s is not allowed here." +msgid_plural "Watch your mouth! The words %s are not allowed here." +msgstr[0] "" +msgstr[1] "" + +#: contrib/localflavor/ie/ie_counties.py:36 +msgid "Waterford" +msgstr "" + +#: contrib/formtools/wizard.py:132 +msgid "" +"We apologize, but your form has expired. Please continue filling out the " +"form from this page." +msgstr "" + +#: contrib/admin/templates/admin/404.html:10 +msgid "We're sorry, but the requested page could not be found." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_done.html:12 +msgid "" +"We've e-mailed you instructions for setting your password to the e-mail " +"address you submitted. You should be receiving it shortly." +msgstr "" + +#: utils/dates.py:10 +msgid "Wed" +msgstr "" + +#: utils/dates.py:6 +msgid "Wednesday" +msgstr "" + +#: contrib/admin/templates/admin/base.html:27 +msgid "Welcome," +msgstr "" + +#: conf/global_settings.py:49 +msgid "Welsh" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:71 +msgid "West Glamorgan" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:47 +msgid "West Midlands" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:23 +msgid "West Pomerania" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:48 +msgid "West Sussex" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:49 +msgid "West Yorkshire" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:12 +msgid "Western Cape" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:86 +msgid "Western Isles" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:37 +msgid "Westmeath" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:38 +msgid "Wexford" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:39 +msgid "Wicklow" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:50 +msgid "Wiltshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:51 +msgid "Worcestershire" +msgstr "" + +#: contrib/localflavor/pl/forms.py:110 +msgid "Wrong checksum for the National Business Register Number (REGON)." +msgstr "" + +#: contrib/localflavor/pl/forms.py:39 +msgid "Wrong checksum for the National Identification Number." +msgstr "" + +#: contrib/localflavor/pl/forms.py:72 +msgid "Wrong checksum for the Tax Number (NIP)." +msgstr "" + +#: db/models/fields/__init__.py:1111 +msgid "XML text" +msgstr "" + +#: utils/translation/trans_real.py:553 +msgid "YEAR_MONTH_FORMAT" +msgstr "F Y" + +#: contrib/localflavor/jp/jp_prefectures.py:9 +msgid "Yamagata" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:38 +msgid "Yamaguchi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:18 +msgid "Yamanashi" +msgstr "" + +#: contrib/admin/filterspecs.py:147 forms/widgets.py:435 +msgid "Yes" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:28 +#: contrib/admin/templates/admin/delete_selected_confirmation.html:33 +msgid "Yes, I'm sure" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:12 +#: contrib/localflavor/id/id_choices.py:47 +msgid "Yogyakarta" +msgstr "" + +#: contrib/admin/templates/admin/index.html:45 +msgid "You don't have permission to edit anything." +msgstr "" + +#: contrib/admin/options.py:654 contrib/admin/options.py:687 +#, python-format +msgid "You may add another %s below." +msgstr "" + +#: contrib/admin/options.py:644 contrib/admin/options.py:677 +msgid "You may edit it again below." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:2 +msgid "You're receiving this e-mail because you requested a password reset" +msgstr "" + +#: contrib/auth/forms.py:88 +msgid "" +"Your Web browser doesn't appear to have cookies enabled. Cookies are " +"required for logging in." +msgstr "" + +#: contrib/admin/sites.py:332 contrib/admin/views/decorators.py:62 +#, python-format +msgid "Your e-mail address is not your username. Try '%s' instead." +msgstr "" + +#: contrib/auth/forms.py:178 +msgid "Your old password was entered incorrectly. Please enter it again." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_complete.html:12 +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +#: contrib/admin/templates/registration/password_change_done.html:12 +msgid "Your password was changed." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:9 +msgid "Your username, in case you've forgotten:" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:42 +msgid "Yucatán" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:43 +msgid "Zacatecas" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:53 +msgid "Zamora" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:54 +msgid "Zaragoza" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:84 +msgid "Zarnovica" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:14 +msgid "Zeeland" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:85 +msgid "Ziar nad Hronom" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:86 +msgid "Zilina" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:15 +msgid "Zilina region" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:82 +msgid "Zlate Moravce" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:20 +msgid "Zlin Region" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:29 +msgid "Zug" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:15 +msgid "Zuid-Holland" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:30 +msgid "Zurich" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:83 +msgid "Zvolen" +msgstr "" + +#: utils/dateformat.py:43 +msgid "a.m." +msgstr "" + +#: contrib/admin/models.py:24 +msgid "action flag" +msgstr "" + +#: contrib/admin/models.py:19 +msgid "action time" +msgstr "" + +#: contrib/auth/models.py:143 +msgid "active" +msgstr "" + +#: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261 +#, python-format +msgid "all %s" +msgstr "" + +#: contrib/admin/options.py:556 contrib/admin/options.py:566 +#: contrib/comments/templates/comments/preview.html:16 db/models/base.py:797 +#: forms/models.py:544 +msgid "and" +msgstr "" + +#: contrib/comments/admin.py:43 +msgid "approved" +msgstr "" + +#: utils/dates.py:23 +msgid "apr" +msgstr "" + +#: utils/dates.py:24 +msgid "aug" +msgstr "" + +#: contrib/admin/models.py:25 +msgid "change message" +msgstr "" + +#: contrib/auth/models.py:68 +msgid "codename" +msgstr "" + +#: contrib/comments/models.py:56 contrib/comments/models.py:76 +#: contrib/comments/models.py:169 +msgid "comment" +msgstr "" + +#: contrib/comments/models.py:181 +msgid "comment flag" +msgstr "" + +#: contrib/comments/models.py:182 +msgid "comment flags" +msgstr "" + +#: contrib/comments/models.py:77 +msgid "comments" +msgstr "" + +#: contrib/flatpages/models.py:9 +msgid "content" +msgstr "" + +#: contrib/comments/models.py:22 contrib/contenttypes/models.py:81 +msgid "content type" +msgstr "" + +#: contrib/contenttypes/models.py:82 +msgid "content types" +msgstr "" + +#: contrib/comments/models.py:171 +msgid "date" +msgstr "" + +#: contrib/auth/models.py:146 +msgid "date joined" +msgstr "" + +#: contrib/comments/models.py:59 +msgid "date/time submitted" +msgstr "" + +#: utils/timesince.py:24 +msgid "day" +msgid_plural "days" +msgstr[0] "" +msgstr[1] "" + +#: utils/dates.py:24 +msgid "dec" +msgstr "" + +#: contrib/sites/models.py:33 +msgid "display name" +msgstr "" + +#: contrib/sites/models.py:32 +msgid "domain name" +msgstr "" + +#: contrib/auth/models.py:140 +msgid "e-mail address" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "eight" +msgstr "" + +#: contrib/flatpages/models.py:10 +msgid "enable comments" +msgstr "" + +#: contrib/sessions/models.py:48 +msgid "expire date" +msgstr "" + +#: utils/dates.py:23 +msgid "feb" +msgstr "" + +#: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96 +#: contrib/admindocs/views.py:98 +msgid "filter:" +msgstr "" + +#: contrib/auth/models.py:138 +msgid "first name" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "five" +msgstr "" + +#: contrib/comments/models.py:170 +msgid "flag" +msgstr "" + +#: contrib/comments/admin.py:39 +msgid "flagged" +msgstr "" + +#: contrib/flatpages/models.py:18 +msgid "flat page" +msgstr "" + +#: contrib/flatpages/models.py:19 +msgid "flat pages" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:3 +#, python-format +msgid "for your user account at %(site_name)s" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "four" +msgstr "" + +#: contrib/auth/models.py:98 +msgid "group" +msgstr "" + +#: contrib/auth/models.py:99 contrib/auth/models.py:147 +msgid "groups" +msgstr "" + +#: utils/timesince.py:25 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: contrib/comments/models.py:61 +msgid "is public" +msgstr "" + +#: contrib/comments/models.py:64 +msgid "is removed" +msgstr "" + +#: utils/dates.py:23 +msgid "jan" +msgstr "" + +#: utils/dates.py:24 +msgid "jul" +msgstr "" + +#: utils/dates.py:23 +msgid "jun" +msgstr "" + +#: contrib/auth/models.py:145 +msgid "last login" +msgstr "" + +#: contrib/auth/models.py:139 +msgid "last name" +msgstr "" + +#: contrib/messages/tests/base.py:101 +msgid "lazy message" +msgstr "" + +#: contrib/admin/models.py:29 +msgid "log entries" +msgstr "" + +#: contrib/admin/models.py:28 +msgid "log entry" +msgstr "" + +#: utils/dates.py:23 +msgid "mar" +msgstr "" + +#: utils/dates.py:23 +msgid "may" +msgstr "" + +#: contrib/auth/models.py:347 +msgid "message" +msgstr "" + +#: utils/dateformat.py:98 +msgid "midnight" +msgstr "" + +#: utils/timesince.py:26 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:45 +msgid "minutes" +msgstr "" + +#: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266 +msgid "model:" +msgstr "" + +#: utils/timesince.py:22 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: contrib/auth/models.py:66 contrib/auth/models.py:94 +msgid "name" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:19 +msgid "nd" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "nine" +msgstr "" + +#: utils/dateformat.py:100 +msgid "noon" +msgstr "" + +#: utils/dates.py:24 +msgid "nov" +msgstr "" + +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266 +#, python-format +msgid "number of %s" +msgstr "" + +#: contrib/comments/models.py:24 +msgid "object ID" +msgstr "" + +#: contrib/admin/models.py:22 +msgid "object id" +msgstr "" + +#: contrib/admin/models.py:23 +msgid "object repr" +msgstr "" + +#: utils/dates.py:24 +msgid "oct" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "one" +msgstr "" + +#: utils/text.py:128 +msgid "or" +msgstr "" + +#: contrib/comments/templates/comments/preview.html:16 +msgid "or make changes" +msgstr "" + +#: utils/dateformat.py:42 +msgid "p.m." +msgstr "" + +#: contrib/auth/models.py:141 +msgid "password" +msgstr "" + +#: contrib/auth/models.py:72 +msgid "permission" +msgstr "" + +#: contrib/auth/models.py:73 contrib/auth/models.py:95 +msgid "permissions" +msgstr "" + +#: contrib/contenttypes/models.py:77 +msgid "python model class name" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:19 +msgid "rd" +msgstr "" + +#: contrib/redirects/models.py:13 +msgid "redirect" +msgstr "" + +#: contrib/redirects/models.py:7 +msgid "redirect from" +msgstr "" + +#: contrib/redirects/models.py:9 +msgid "redirect to" +msgstr "" + +#: contrib/redirects/models.py:14 +msgid "redirects" +msgstr "" + +#: contrib/flatpages/models.py:13 +msgid "registration required" +msgstr "" + +#: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256 +#, python-format +msgid "related `%(app_label)s.%(object_name)s` objects" +msgstr "" + +#: contrib/comments/admin.py:47 +msgid "removed" +msgstr "" + +#: utils/dates.py:24 +msgid "sep" +msgstr "" + +#: contrib/sessions/models.py:53 +msgid "session" +msgstr "" + +#: contrib/sessions/models.py:47 +msgid "session data" +msgstr "" + +#: contrib/sessions/models.py:45 +msgid "session key" +msgstr "" + +#: contrib/sessions/models.py:54 +msgid "sessions" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "seven" +msgstr "" + +#: contrib/admin/views/template.py:38 contrib/sites/models.py:38 +msgid "site" +msgstr "" + +#: contrib/sites/models.py:39 +msgid "sites" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "six" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:19 +msgid "st" +msgstr "" + +#: contrib/auth/models.py:142 +msgid "staff status" +msgstr "" + +#: contrib/auth/models.py:144 +msgid "superuser status" +msgstr "" + +#: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63 +#: contrib/admindocs/views.py:65 +msgid "tag:" +msgstr "" + +#: contrib/admin/views/template.py:40 +msgid "template" +msgstr "" + +#: contrib/flatpages/models.py:11 +msgid "template name" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:19 +msgid "th" +msgstr "" + +#: contrib/admindocs/views.py:209 +#, python-format +msgid "the related `%(app_label)s.%(data_type)s` object" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "three" +msgstr "" + +#: contrib/flatpages/models.py:8 +msgid "title" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:93 +msgid "today" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:95 +msgid "tomorrow" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "two" +msgstr "" + +#: contrib/auth/models.py:153 contrib/comments/models.py:50 +#: contrib/comments/models.py:168 +msgid "user" +msgstr "" + +#: contrib/auth/models.py:149 +msgid "user permissions" +msgstr "" + +#: contrib/comments/models.py:54 +msgid "user's URL" +msgstr "" + +#: contrib/comments/models.py:53 +msgid "user's email address" +msgstr "" + +#: contrib/comments/models.py:52 +msgid "user's name" +msgstr "" + +#: contrib/auth/models.py:137 +msgid "username" +msgstr "" + +#: contrib/auth/models.py:154 +msgid "users" +msgstr "" + +#: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160 +#: contrib/admindocs/views.py:162 +msgid "view:" +msgstr "" + +#: utils/timesince.py:23 +msgid "week" +msgid_plural "weeks" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:21 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: template/defaultfilters.py:775 +msgid "yes,no,maybe" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:97 +msgid "yesterday" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:30 +msgid "Örebro" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:20 +msgid "Östergötland" +msgstr "" + +#~ msgid "" +#~ "Ensure this value has at least %(min)d characters (it has %(length)d)." +#~ msgstr "" +#~ "Wês wis dat dizze wearde minstens %(min)d karakters hat (it hat %(length)" +#~ "d)." + +#~ msgid "" +#~ "Ensure this value has at most %(max)d characters (it has %(length)d)." +#~ msgstr "" +#~ "Wês wis dat dizze wearde maksimaal %(max)d karakters hat (it hat %(length)" +#~ "d)." + +#~ msgid "Ensure this value is greater than or equal to %s." +#~ msgstr "Wês wis dat dizze wearde grutter of lyk is oan %s." + +#~ msgid "Ensure this value is less than or equal to %s." +#~ msgstr "Wês wis dat dizze wearde minder of lyk is oan %s." diff --git a/tests/regressiontests/views/locale/en/LC_MESSAGES/djangojs.mo b/django/conf/locale/fy_NL/LC_MESSAGES/djangojs.mo similarity index 51% rename from tests/regressiontests/views/locale/en/LC_MESSAGES/djangojs.mo rename to django/conf/locale/fy_NL/LC_MESSAGES/djangojs.mo index 7593e1eb4888..28a97655b585 100644 Binary files a/tests/regressiontests/views/locale/en/LC_MESSAGES/djangojs.mo and b/django/conf/locale/fy_NL/LC_MESSAGES/djangojs.mo differ diff --git a/django/conf/locale/fy_NL/LC_MESSAGES/djangojs.po b/django/conf/locale/fy_NL/LC_MESSAGES/djangojs.po new file mode 100644 index 000000000000..f75ffaa26e45 --- /dev/null +++ b/django/conf/locale/fy_NL/LC_MESSAGES/djangojs.po @@ -0,0 +1,119 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-01-27 09:59-0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: contrib/admin/media/js/SelectFilter2.js:33 +#, perl-format +msgid "Available %s" +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:41 +msgid "Choose all" +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:46 +msgid "Add" +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:48 +msgid "Remove" +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:53 +#, perl-format +msgid "Chosen %s" +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:54 +msgid "Select your choice(s) and click " +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:59 +msgid "Clear all" +msgstr "" + +#: contrib/admin/media/js/calendar.js:24 +#: contrib/admin/media/js/dateparse.js:32 +msgid "" +"January February March April May June July August September October November " +"December" +msgstr "" + +#: contrib/admin/media/js/calendar.js:25 +msgid "S M T W T F S" +msgstr "" + +#: contrib/admin/media/js/collapse.js:9 contrib/admin/media/js/collapse.js:21 +#: contrib/admin/media/js/collapse.min.js:1 +msgid "Show" +msgstr "" + +#: contrib/admin/media/js/collapse.js:16 +#: contrib/admin/media/js/collapse.min.js:1 +msgid "Hide" +msgstr "" + +#: contrib/admin/media/js/dateparse.js:33 +msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82 +msgid "Now" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51 +msgid "Clock" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78 +msgid "Choose a time" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83 +msgid "Midnight" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84 +msgid "6 a.m." +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:85 +msgid "Noon" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:89 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:184 +msgid "Cancel" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:129 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:178 +msgid "Today" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:133 +msgid "Calendar" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:176 +msgid "Yesterday" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:180 +msgid "Tomorrow" +msgstr "" diff --git a/django/conf/locale/he/LC_MESSAGES/django.mo b/django/conf/locale/he/LC_MESSAGES/django.mo index 8d8e328203ec..9a3e69c5c111 100644 Binary files a/django/conf/locale/he/LC_MESSAGES/django.mo and b/django/conf/locale/he/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/he/LC_MESSAGES/django.po b/django/conf/locale/he/LC_MESSAGES/django.po index 53b40132baf8..ed048c76f2d2 100644 --- a/django/conf/locale/he/LC_MESSAGES/django.po +++ b/django/conf/locale/he/LC_MESSAGES/django.po @@ -391,7 +391,7 @@ msgstr "הוספת %s" #: contrib/admin/options.py:1003 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." -msgstr "הפריט %(name)s עם המקש %(key)r אינו קיים." +msgstr "הפריט %(name)s עם המפתח הראשי %(key)r אינו קיים." #: contrib/admin/options.py:860 #, python-format diff --git a/django/conf/locale/it/LC_MESSAGES/django.mo b/django/conf/locale/it/LC_MESSAGES/django.mo index f4b5a0810185..ba2a349bdd3a 100644 Binary files a/django/conf/locale/it/LC_MESSAGES/django.mo and b/django/conf/locale/it/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/it/LC_MESSAGES/django.po b/django/conf/locale/it/LC_MESSAGES/django.po index 22145a2fb5f7..ebe5ec751faa 100644 --- a/django/conf/locale/it/LC_MESSAGES/django.po +++ b/django/conf/locale/it/LC_MESSAGES/django.po @@ -6,230 +6,246 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-27 11:12+0200\n" -"PO-Revision-Date: 2009-07-27 11:10+0200\n" +"POT-Creation-Date: 2010-05-03 07:53+0200\n" +"PO-Revision-Date: 2010-05-03 08:23+0200\n" "Last-Translator: Nicola Larosa \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 0.3\n" +"X-Generator: KBabel 1.11.4\n" #: conf/global_settings.py:44 msgid "Arabic" msgstr "arabo" #: conf/global_settings.py:45 -msgid "Bengali" -msgstr "bengali" - -#: conf/global_settings.py:46 msgid "Bulgarian" msgstr "bulgaro" +#: conf/global_settings.py:46 +msgid "Bengali" +msgstr "bengali" + #: conf/global_settings.py:47 +msgid "Bosnian" +msgstr "bosniaco" + +#: conf/global_settings.py:48 msgid "Catalan" msgstr "catalano" -#: conf/global_settings.py:48 +#: conf/global_settings.py:49 msgid "Czech" msgstr "ceco" -#: conf/global_settings.py:49 +#: conf/global_settings.py:50 msgid "Welsh" msgstr "gallese" -#: conf/global_settings.py:50 +#: conf/global_settings.py:51 msgid "Danish" msgstr "danese" -#: conf/global_settings.py:51 +#: conf/global_settings.py:52 msgid "German" msgstr "tedesco" -#: conf/global_settings.py:52 +#: conf/global_settings.py:53 msgid "Greek" msgstr "greco" -#: conf/global_settings.py:53 +#: conf/global_settings.py:54 msgid "English" msgstr "inglese" -#: conf/global_settings.py:54 +#: conf/global_settings.py:55 msgid "Spanish" msgstr "spagnolo" -#: conf/global_settings.py:55 -msgid "Estonian" -msgstr "estone" - #: conf/global_settings.py:56 msgid "Argentinean Spanish" msgstr "spagnolo argentino" #: conf/global_settings.py:57 +msgid "Estonian" +msgstr "estone" + +#: conf/global_settings.py:58 msgid "Basque" msgstr "basco" -#: conf/global_settings.py:58 +#: conf/global_settings.py:59 msgid "Persian" msgstr "persiano" -#: conf/global_settings.py:59 +#: conf/global_settings.py:60 msgid "Finnish" msgstr "finlandese" -#: conf/global_settings.py:60 +#: conf/global_settings.py:61 msgid "French" msgstr "francese" -#: conf/global_settings.py:61 +#: conf/global_settings.py:62 +msgid "Frisian" +msgstr "frisio" + +#: conf/global_settings.py:63 msgid "Irish" msgstr "irlandese" -#: conf/global_settings.py:62 +#: conf/global_settings.py:64 msgid "Galician" msgstr "galiziano" -#: conf/global_settings.py:63 -msgid "Hungarian" -msgstr "ungherese" - -#: conf/global_settings.py:64 +#: conf/global_settings.py:65 msgid "Hebrew" msgstr "ebraico" -#: conf/global_settings.py:65 +#: conf/global_settings.py:66 msgid "Hindi" msgstr "hindi" -#: conf/global_settings.py:66 +#: conf/global_settings.py:67 msgid "Croatian" msgstr "croato" -#: conf/global_settings.py:67 +#: conf/global_settings.py:68 +msgid "Hungarian" +msgstr "ungherese" + +#: conf/global_settings.py:69 msgid "Icelandic" msgstr "islandese" -#: conf/global_settings.py:68 +#: conf/global_settings.py:70 msgid "Italian" msgstr "italiano" -#: conf/global_settings.py:69 +#: conf/global_settings.py:71 msgid "Japanese" msgstr "giapponese" -#: conf/global_settings.py:70 +#: conf/global_settings.py:72 msgid "Georgian" msgstr "georgiano" -#: conf/global_settings.py:71 -msgid "Korean" -msgstr "coreano" - -#: conf/global_settings.py:72 +#: conf/global_settings.py:73 msgid "Khmer" msgstr "khmer" -#: conf/global_settings.py:73 +#: conf/global_settings.py:74 msgid "Kannada" msgstr "kannada" -#: conf/global_settings.py:74 -msgid "Latvian" -msgstr "lettone" - #: conf/global_settings.py:75 +msgid "Korean" +msgstr "coreano" + +#: conf/global_settings.py:76 msgid "Lithuanian" msgstr "lituano" -#: conf/global_settings.py:76 +#: conf/global_settings.py:77 +msgid "Latvian" +msgstr "lettone" + +#: conf/global_settings.py:78 msgid "Macedonian" msgstr "macedone" -#: conf/global_settings.py:77 +#: conf/global_settings.py:79 msgid "Dutch" msgstr "olandese" -#: conf/global_settings.py:78 +#: conf/global_settings.py:80 msgid "Norwegian" msgstr "norvegese" -#: conf/global_settings.py:79 +#: conf/global_settings.py:81 msgid "Polish" msgstr "polacco" -#: conf/global_settings.py:80 +#: conf/global_settings.py:82 msgid "Portuguese" msgstr "portoghese" -#: conf/global_settings.py:81 +#: conf/global_settings.py:83 msgid "Brazilian Portuguese" msgstr "brasiliano portoghese" -#: conf/global_settings.py:82 +#: conf/global_settings.py:84 msgid "Romanian" msgstr "rumeno" -#: conf/global_settings.py:83 +#: conf/global_settings.py:85 msgid "Russian" msgstr "russo" -#: conf/global_settings.py:84 +#: conf/global_settings.py:86 msgid "Slovak" msgstr "slovacco" -#: conf/global_settings.py:85 +#: conf/global_settings.py:87 msgid "Slovenian" msgstr "sloveno" -#: conf/global_settings.py:86 +#: conf/global_settings.py:88 +msgid "Albanian" +msgstr "albanese" + +#: conf/global_settings.py:89 msgid "Serbian" msgstr "serbo" -#: conf/global_settings.py:87 +#: conf/global_settings.py:90 +msgid "Serbian Latin" +msgstr "serbo latino" + +#: conf/global_settings.py:91 msgid "Swedish" msgstr "svedese" -#: conf/global_settings.py:88 +#: conf/global_settings.py:92 msgid "Tamil" msgstr "tamil" -#: conf/global_settings.py:89 +#: conf/global_settings.py:93 msgid "Telugu" msgstr "telugu" -#: conf/global_settings.py:90 +#: conf/global_settings.py:94 msgid "Thai" msgstr "tailandese" -#: conf/global_settings.py:91 +#: conf/global_settings.py:95 msgid "Turkish" msgstr "turco" -#: conf/global_settings.py:92 +#: conf/global_settings.py:96 msgid "Ukrainian" msgstr "ucraino" -#: conf/global_settings.py:93 +#: conf/global_settings.py:97 msgid "Simplified Chinese" msgstr "cinese semplificato" -#: conf/global_settings.py:94 +#: conf/global_settings.py:98 msgid "Traditional Chinese" msgstr "cinese tradizionale" -#: contrib/admin/actions.py:60 +#: contrib/admin/actions.py:48 #, python-format msgid "Successfully deleted %(count)d %(items)s." msgstr "Cancellati/e con successo %(count)d %(items)s." -#: contrib/admin/actions.py:67 contrib/admin/options.py:1027 +#: contrib/admin/actions.py:55 contrib/admin/options.py:1033 msgid "Are you sure?" msgstr "Sei sicuro?" -#: contrib/admin/actions.py:85 +#: contrib/admin/actions.py:73 #, python-format msgid "Delete selected %(verbose_name_plural)s" msgstr "Cancella %(verbose_name_plural)s selezionati/e" @@ -268,15 +284,15 @@ msgstr "Questo mese" msgid "This year" msgstr "Quest'anno" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:476 msgid "Yes" msgstr "Sì" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:476 msgid "No" msgstr "No" -#: contrib/admin/filterspecs.py:154 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:154 forms/widgets.py:476 msgid "Unknown" msgstr "Sconosciuto" @@ -312,99 +328,111 @@ msgstr "voce di log" msgid "log entries" msgstr "voci di log" -#: contrib/admin/options.py:133 contrib/admin/options.py:147 +#: contrib/admin/options.py:132 contrib/admin/options.py:146 msgid "None" msgstr "Nessuno" -#: contrib/admin/options.py:519 +#: contrib/admin/options.py:532 #, python-format msgid "Changed %s." msgstr "%s modificato/a." -#: contrib/admin/options.py:519 contrib/admin/options.py:529 -#: contrib/comments/templates/comments/preview.html:16 forms/models.py:388 -#: forms/models.py:600 +#: contrib/admin/options.py:532 contrib/admin/options.py:542 +#: contrib/comments/templates/comments/preview.html:16 forms/models.py:396 +#: forms/models.py:608 msgid "and" msgstr "e" -#: contrib/admin/options.py:524 +#: contrib/admin/options.py:537 #, python-format msgid "Added %(name)s \"%(object)s\"." msgstr "Aggiunto/a %(name)s \"%(object)s\"." -#: contrib/admin/options.py:528 +#: contrib/admin/options.py:541 #, python-format msgid "Changed %(list)s for %(name)s \"%(object)s\"." msgstr "Cambiato/i %(list)s per %(name)s \"%(object)s\"." -#: contrib/admin/options.py:533 +#: contrib/admin/options.py:546 #, python-format msgid "Deleted %(name)s \"%(object)s\"." msgstr "Cancellato/a %(name)s \"%(object)s\"." -#: contrib/admin/options.py:537 +#: contrib/admin/options.py:550 msgid "No fields changed." msgstr "Nessun campo modificato." -#: contrib/admin/options.py:599 contrib/auth/admin.py:67 +#: contrib/admin/options.py:612 contrib/auth/admin.py:67 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." msgstr "%(name)s \"%(obj)s\" aggiunto/a correttamente." -#: contrib/admin/options.py:603 contrib/admin/options.py:636 +#: contrib/admin/options.py:616 contrib/admin/options.py:649 #: contrib/auth/admin.py:75 msgid "You may edit it again below." msgstr "È possibile modificare nuovamente qui sotto." -#: contrib/admin/options.py:613 contrib/admin/options.py:646 +#: contrib/admin/options.py:626 contrib/admin/options.py:659 #, python-format msgid "You may add another %s below." msgstr "Puoi aggiungere un altro/a %s qui sotto." -#: contrib/admin/options.py:634 +#: contrib/admin/options.py:647 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." msgstr "%(name)s \"%(obj)s\" modificato/a correttamente." -#: contrib/admin/options.py:642 +#: contrib/admin/options.py:655 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." msgstr "" "%(name)s \"%(obj)s\" aggiunto/a correttamente. Puoi modificare ancora qui " "sotto." -#: contrib/admin/options.py:773 +#: contrib/admin/options.py:707 +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Occorre selezionare degli oggetti per potervi eseguire azioni. Nessun " +"oggetto è stato cambiato." + +#: contrib/admin/options.py:721 +msgid "No action selected." +msgstr "Nessuna azione selezionata." + +#: contrib/admin/options.py:793 #, python-format msgid "Add %s" msgstr "Aggiungi %s" -#: contrib/admin/options.py:804 contrib/admin/options.py:1005 +#: contrib/admin/options.py:818 contrib/admin/options.py:1013 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." msgstr "L'oggetto %(name)s con chiave primaria %(key)r non esiste." -#: contrib/admin/options.py:861 +#: contrib/admin/options.py:875 #, python-format msgid "Change %s" msgstr "Modifica %s" -#: contrib/admin/options.py:905 +#: contrib/admin/options.py:919 msgid "Database error" msgstr "Errore nel database" -#: contrib/admin/options.py:941 +#: contrib/admin/options.py:955 #, python-format msgid "%(count)s %(name)s was changed successfully." msgid_plural "%(count)s %(name)s were changed successfully." msgstr[0] "%(count)s %(name)s modificato/a correttamente." msgstr[1] "%(count)s %(name)s modificati/e correttamente." -#: contrib/admin/options.py:1020 +#: contrib/admin/options.py:1026 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "%(name)s \"%(obj)s\" cancellato/a correttamente." -#: contrib/admin/options.py:1057 +#: contrib/admin/options.py:1063 #, python-format msgid "Change history: %s" msgstr "Tracciato delle modifiche: %s" @@ -418,11 +446,11 @@ msgstr "" "Inserisci nome utente e password corretti. In entrambi i campi le maiuscole " "sono significative." -#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40 +#: contrib/admin/sites.py:288 contrib/admin/views/decorators.py:40 msgid "Please log in again, because your session has expired." msgstr "Effettua di nuovo l'accesso, perché la tua sessione è scaduta." -#: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47 +#: contrib/admin/sites.py:295 contrib/admin/views/decorators.py:47 msgid "" "Looks like your browser isn't configured to accept cookies. Please enable " "cookies, reload this page, and try again." @@ -430,62 +458,52 @@ msgstr "" "Il browser non sembra configurato per accettare i cookie. Una volta " "abilitati, ricarica la pagina e riprova." -#: contrib/admin/sites.py:308 contrib/admin/sites.py:314 +#: contrib/admin/sites.py:311 contrib/admin/sites.py:317 #: contrib/admin/views/decorators.py:66 msgid "Usernames cannot contain the '@' character." msgstr "I nomi utente non possono contenere il carattere '@'." -#: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62 +#: contrib/admin/sites.py:314 contrib/admin/views/decorators.py:62 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "Il nome utente non è costituito dall'indirizzo e-mail. Prova con '%s'." -#: contrib/admin/sites.py:367 +#: contrib/admin/sites.py:370 msgid "Site administration" msgstr "Amministrazione sito" -#: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26 +#: contrib/admin/sites.py:384 contrib/admin/templates/admin/login.html:26 #: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/views/decorators.py:20 msgid "Log in" msgstr "Accedi" -#: contrib/admin/sites.py:426 +#: contrib/admin/sites.py:429 #, python-format msgid "%s administration" msgstr "Amministrazione %s" -#: contrib/admin/util.py:168 -#, python-format -msgid "One or more %(fieldname)s in %(name)s: %(obj)s" -msgstr "Uno o più %(fieldname)s in %(name)s: %(obj)s" - -#: contrib/admin/util.py:173 -#, python-format -msgid "One or more %(fieldname)s in %(name)s:" -msgstr "Uno o più %(fieldname)s in %(name)s:" - -#: contrib/admin/widgets.py:71 +#: contrib/admin/widgets.py:72 msgid "Date:" msgstr "Data:" -#: contrib/admin/widgets.py:71 +#: contrib/admin/widgets.py:72 msgid "Time:" msgstr "Ora:" -#: contrib/admin/widgets.py:95 +#: contrib/admin/widgets.py:96 msgid "Currently:" msgstr "Attualmente:" -#: contrib/admin/widgets.py:95 +#: contrib/admin/widgets.py:96 msgid "Change:" msgstr "Modifica:" -#: contrib/admin/widgets.py:124 +#: contrib/admin/widgets.py:125 msgid "Lookup" msgstr "Recupero" -#: contrib/admin/widgets.py:236 +#: contrib/admin/widgets.py:240 msgid "Add Another" msgstr "Aggiungi un Altro" @@ -501,13 +519,13 @@ msgstr "Spiacenti, ma la pagina richiesta non è stata trovata." #: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/app_index.html:8 #: contrib/admin/templates/admin/base.html:54 -#: contrib/admin/templates/admin/change_form.html:17 -#: contrib/admin/templates/admin/change_list.html:25 +#: contrib/admin/templates/admin/change_form.html:18 +#: contrib/admin/templates/admin/change_list.html:26 #: contrib/admin/templates/admin/delete_confirmation.html:6 #: contrib/admin/templates/admin/delete_selected_confirmation.html:6 #: contrib/admin/templates/admin/invalid_setup.html:4 #: contrib/admin/templates/admin/object_history.html:6 -#: contrib/admin/templates/admin/auth/user/change_password.html:10 +#: contrib/admin/templates/admin/auth/user/change_password.html:11 #: contrib/admin/templates/registration/logged_out.html:4 #: contrib/admin/templates/registration/password_change_done.html:4 #: contrib/admin/templates/registration/password_change_form.html:4 @@ -537,8 +555,7 @@ msgid "" "mail and should be fixed shortly. Thanks for your patience." msgstr "" "Si è verificato un errore. Gli amministratori del sito ne sono stati " -"informati" -"via e-mail e verrà corretto a breve. Grazie per la tua pazienza." +"informati via e-mail e verrà corretto a breve. Grazie per la tua pazienza." #: contrib/admin/templates/admin/actions.html:4 msgid "Run the selected action" @@ -566,8 +583,8 @@ msgid "Documentation" msgstr "Documentazione" #: contrib/admin/templates/admin/base.html:40 -#: contrib/admin/templates/admin/auth/user/change_password.html:14 -#: contrib/admin/templates/admin/auth/user/change_password.html:47 +#: contrib/admin/templates/admin/auth/user/change_password.html:15 +#: contrib/admin/templates/admin/auth/user/change_password.html:48 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 msgid "Change password" @@ -587,41 +604,41 @@ msgstr "Amministrazione sito Django" msgid "Django administration" msgstr "Amministrazione Django" -#: contrib/admin/templates/admin/change_form.html:20 +#: contrib/admin/templates/admin/change_form.html:21 #: contrib/admin/templates/admin/index.html:29 msgid "Add" msgstr "Aggiungi" -#: contrib/admin/templates/admin/change_form.html:27 +#: contrib/admin/templates/admin/change_form.html:28 #: contrib/admin/templates/admin/object_history.html:10 msgid "History" msgstr "Storia" -#: contrib/admin/templates/admin/change_form.html:28 +#: contrib/admin/templates/admin/change_form.html:29 #: contrib/admin/templates/admin/edit_inline/stacked.html:13 -#: contrib/admin/templates/admin/edit_inline/tabular.html:27 +#: contrib/admin/templates/admin/edit_inline/tabular.html:28 msgid "View on site" msgstr "Vedi sul sito" -#: contrib/admin/templates/admin/change_form.html:38 -#: contrib/admin/templates/admin/change_list.html:54 -#: contrib/admin/templates/admin/auth/user/change_password.html:23 +#: contrib/admin/templates/admin/change_form.html:39 +#: contrib/admin/templates/admin/change_list.html:55 +#: contrib/admin/templates/admin/auth/user/change_password.html:24 msgid "Please correct the error below." msgid_plural "Please correct the errors below." msgstr[0] "Correggi l'errore qui sotto." msgstr[1] "Correggi gli errori qui sotto." -#: contrib/admin/templates/admin/change_list.html:46 +#: contrib/admin/templates/admin/change_list.html:47 #, python-format msgid "Add %(name)s" msgstr "Aggiungi %(name)s" -#: contrib/admin/templates/admin/change_list.html:65 +#: contrib/admin/templates/admin/change_list.html:66 msgid "Filter" msgstr "Filtro" #: contrib/admin/templates/admin/delete_confirmation.html:10 -#: contrib/admin/templates/admin/submit_line.html:4 forms/formsets.py:275 +#: contrib/admin/templates/admin/submit_line.html:4 forms/formsets.py:278 msgid "Delete" msgstr "Cancella" @@ -669,10 +686,10 @@ msgstr "" #, python-format msgid "" "Are you sure you want to delete the selected %(object_name)s objects? All of " -"the following objects and it's related items will be deleted:" +"the following objects and their related items will be deleted:" msgstr "" -"Sicuro di voler cancellare i %(object_name)s selezionati? Tutti i seguenti " -"oggetti, e i loro oggetti collegati, saranno cancellati:" +"Sicuro di voler cancellare gli oggetti %(object_name)s selezionati? Tutti i " +"seguenti oggetti, e i loro oggetti collegati, saranno cancellati:" #: contrib/admin/templates/admin/filter.html:2 #, python-format @@ -740,7 +757,7 @@ msgid "Action" msgstr "Azione" #: contrib/admin/templates/admin/object_history.html:30 -#: utils/translation/trans_real.py:400 +#: utils/translation/trans_real.py:407 msgid "DATETIME_FORMAT" msgstr "j F Y, H:i" @@ -803,23 +820,23 @@ msgid "Username" msgstr "Nome utente" #: contrib/admin/templates/admin/auth/user/add_form.html:20 -#: contrib/admin/templates/admin/auth/user/change_password.html:34 +#: contrib/admin/templates/admin/auth/user/change_password.html:35 #: contrib/auth/forms.py:17 contrib/auth/forms.py:60 contrib/auth/forms.py:185 msgid "Password" msgstr "Password" #: contrib/admin/templates/admin/auth/user/add_form.html:26 -#: contrib/admin/templates/admin/auth/user/change_password.html:40 +#: contrib/admin/templates/admin/auth/user/change_password.html:41 #: contrib/auth/forms.py:186 msgid "Password (again)" msgstr "Password (di nuovo)" #: contrib/admin/templates/admin/auth/user/add_form.html:27 -#: contrib/admin/templates/admin/auth/user/change_password.html:41 +#: contrib/admin/templates/admin/auth/user/change_password.html:42 msgid "Enter the same password as above, for verification." msgstr "Inserisci la stessa password inserita sopra, come verifica." -#: contrib/admin/templates/admin/auth/user/change_password.html:27 +#: contrib/admin/templates/admin/auth/user/change_password.html:28 #, python-format msgid "Enter a new password for the user %(username)s." msgstr "Inserisci una nuova password per l'utente %(username)s." @@ -980,7 +997,7 @@ msgstr "Indirizzo e-mail:" msgid "Reset my password" msgstr "Reimposta la mia password" -#: contrib/admin/templatetags/admin_list.py:299 +#: contrib/admin/templatetags/admin_list.py:304 msgid "All dates" msgstr "Tutte le date" @@ -1058,89 +1075,7 @@ msgstr "numero di %s" msgid "Fields on %s objects" msgstr "Campi sugli oggetti %s" -#: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345 -#: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353 -#: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356 -msgid "Integer" -msgstr "Intero" - -#: contrib/admindocs/views.py:335 -msgid "Boolean (Either True or False)" -msgstr "Booleano (True o False)" - -#: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355 -#, python-format -msgid "String (up to %(max_length)s)" -msgstr "Stringa (fino a %(max_length)s)" - -#: contrib/admindocs/views.py:337 -msgid "Comma-separated integers" -msgstr "Interi separati da virgola" - -#: contrib/admindocs/views.py:338 -msgid "Date (without time)" -msgstr "Data (senza ora)" - -#: contrib/admindocs/views.py:339 -msgid "Date (with time)" -msgstr "Data (con ora)" - -#: contrib/admindocs/views.py:340 -msgid "Decimal number" -msgstr "Numero decimale" - -#: contrib/admindocs/views.py:341 -msgid "E-mail address" -msgstr "Indirizzo e-mail" - -#: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343 -#: contrib/admindocs/views.py:346 -msgid "File path" -msgstr "Percorso di file" - -#: contrib/admindocs/views.py:344 -msgid "Floating point number" -msgstr "Numero decimale" - -#: contrib/admindocs/views.py:348 contrib/comments/models.py:60 -msgid "IP address" -msgstr "indirizzo IP" - -#: contrib/admindocs/views.py:350 -msgid "Boolean (Either True, False or None)" -msgstr "Booleano (True, False o None)" - -#: contrib/admindocs/views.py:351 -msgid "Relation to parent model" -msgstr "Collegamento a modello padre" - -#: contrib/admindocs/views.py:352 -msgid "Phone number" -msgstr "Numero di telefono" - -#: contrib/admindocs/views.py:357 -msgid "Text" -msgstr "Testo" - -#: contrib/admindocs/views.py:358 -msgid "Time" -msgstr "Ora" - -#: contrib/admindocs/views.py:359 contrib/comments/forms.py:95 -#: contrib/comments/templates/comments/moderation_queue.html:37 -#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 -msgid "URL" -msgstr "URL" - -#: contrib/admindocs/views.py:360 -msgid "U.S. state (two uppercase letters)" -msgstr "Stato USA (due lettere maiuscole)" - -#: contrib/admindocs/views.py:361 -msgid "XML text" -msgstr "Testo XML" - -#: contrib/admindocs/views.py:387 +#: contrib/admindocs/views.py:356 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s non sembra essere un oggetto urlpattern" @@ -1164,10 +1099,10 @@ msgid "" "your computer is \"internal\").

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

        Per installare i bookmarklet, trascina il link sulla barra " -"\n" -"dei bookmark, o clicca il link con il tasto destro e aggiungilo ai bookmark." -"\n" +"

        Per installare i bookmarklet, trascina il link sulla " +"barra \n" +"dei bookmark, o clicca il link con il tasto destro e aggiungilo ai " +"bookmark.\n" "Potrai poi scegliere un bookmarklet in qualsiasi pagina del sito.\n" "Nota che alcuni di questi bookmarklet richiedono l'accesso al sito tramite " "un\n" @@ -1246,7 +1181,7 @@ msgid "Change password: %s" msgstr "Cambia la password: %s" #: contrib/auth/forms.py:15 contrib/auth/forms.py:48 -#: contrib/auth/models.py:128 +#: contrib/auth/models.py:144 msgid "" "Required. 30 characters or fewer. Alphanumeric characters only (letters, " "digits and underscores)." @@ -1314,8 +1249,7 @@ msgstr "Password attuale" #: contrib/auth/forms.py:177 msgid "Your old password was entered incorrectly. Please enter it again." -msgstr "" -"La password attuale non è stata inserita correttamente: va inserita di nuovo." +msgstr "La password attuale non è stata inserita correttamente: va inserita di nuovo." #: contrib/auth/models.py:63 contrib/auth/models.py:86 msgid "name" @@ -1337,31 +1271,31 @@ msgstr "permessi" msgid "group" msgstr "gruppo" -#: contrib/auth/models.py:91 contrib/auth/models.py:138 +#: contrib/auth/models.py:91 contrib/auth/models.py:154 msgid "groups" msgstr "gruppi" -#: contrib/auth/models.py:128 +#: contrib/auth/models.py:144 msgid "username" msgstr "nome utente" -#: contrib/auth/models.py:129 +#: contrib/auth/models.py:145 msgid "first name" msgstr "nome" -#: contrib/auth/models.py:130 +#: contrib/auth/models.py:146 msgid "last name" msgstr "cognome" -#: contrib/auth/models.py:131 +#: contrib/auth/models.py:147 msgid "e-mail address" msgstr "indirizzo e-mail" -#: contrib/auth/models.py:132 +#: contrib/auth/models.py:148 msgid "password" msgstr "password" -#: contrib/auth/models.py:132 +#: contrib/auth/models.py:148 msgid "" "Use '[algo]$[salt]$[hexdigest]' or use the change " "password form." @@ -1369,19 +1303,19 @@ msgstr "" "Usa '[algo]$[salt]$[hexdigest]' oppure la maschera di " "cambio password." -#: contrib/auth/models.py:133 +#: contrib/auth/models.py:149 msgid "staff status" msgstr "privilegi di staff" -#: contrib/auth/models.py:133 +#: contrib/auth/models.py:149 msgid "Designates whether the user can log into this admin site." msgstr "Indica se l'utente può accedere a questo sito di amministrazione." -#: contrib/auth/models.py:134 +#: contrib/auth/models.py:150 msgid "active" msgstr "attivo" -#: contrib/auth/models.py:134 +#: contrib/auth/models.py:150 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." @@ -1389,11 +1323,11 @@ msgstr "" "Indica se l'utente debba essere considerato attivo. Deseleziona qui, " "piuttosto che cancellare gli account." -#: contrib/auth/models.py:135 +#: contrib/auth/models.py:151 msgid "superuser status" msgstr "privilegi di superutente" -#: contrib/auth/models.py:135 +#: contrib/auth/models.py:151 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." @@ -1401,15 +1335,15 @@ msgstr "" "Indica che l'utente ha tutti i privilegi, senza che siano stati assegnati " "esplicitamente." -#: contrib/auth/models.py:136 +#: contrib/auth/models.py:152 msgid "last login" msgstr "ultimo accesso" -#: contrib/auth/models.py:137 +#: contrib/auth/models.py:153 msgid "date joined" msgstr "iscritto in data" -#: contrib/auth/models.py:139 +#: contrib/auth/models.py:155 msgid "" "In addition to the permissions manually assigned, this user will also get " "all permissions granted to each group he/she is in." @@ -1417,28 +1351,28 @@ msgstr "" "In aggiunta ai privilegi assegnati manualmente, l'utente riceverà anche " "tutti i privilegi assegnati ad ogni gruppo cui appartiene." -#: contrib/auth/models.py:140 +#: contrib/auth/models.py:156 msgid "user permissions" msgstr "privilegi utente" -#: contrib/auth/models.py:144 contrib/comments/models.py:50 +#: contrib/auth/models.py:160 contrib/comments/models.py:50 #: contrib/comments/models.py:168 msgid "user" msgstr "utente" -#: contrib/auth/models.py:145 +#: contrib/auth/models.py:161 msgid "users" msgstr "utenti" -#: contrib/auth/models.py:301 +#: contrib/auth/models.py:317 msgid "message" msgstr "messaggio" -#: contrib/auth/views.py:56 +#: contrib/auth/views.py:73 msgid "Logged out" msgstr "Accesso annullato" -#: contrib/auth/management/commands/createsuperuser.py:23 forms/fields.py:429 +#: contrib/auth/management/commands/createsuperuser.py:23 forms/fields.py:434 msgid "Enter a valid e-mail address." msgstr "Inserisci un indirizzo e-mail valido." @@ -1469,6 +1403,13 @@ msgstr "Nome" msgid "Email address" msgstr "Indirizzo email" +#: contrib/comments/forms.py:95 +#: contrib/comments/templates/comments/moderation_queue.html:37 +#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 +#: db/models/fields/__init__.py:936 +msgid "URL" +msgstr "URL" + #: contrib/comments/forms.py:96 #: contrib/comments/templates/comments/moderation_queue.html:35 msgid "Comment" @@ -1514,6 +1455,10 @@ msgstr "commento" msgid "date/time submitted" msgstr "data/ora di inserimento" +#: contrib/comments/models.py:60 db/models/fields/__init__.py:751 +msgid "IP address" +msgstr "indirizzo IP" + #: contrib/comments/models.py:61 msgid "is public" msgstr "è pubblico" @@ -1781,7 +1726,7 @@ msgstr "pagina statica" msgid "flat pages" msgstr "pagine statiche" -#: contrib/formtools/wizard.py:130 +#: contrib/formtools/wizard.py:136 msgid "" "We apologize, but your form has expired. Please continue filling out the " "form from this page." @@ -1789,6 +1734,38 @@ msgstr "" "Spiacenti, ma la tua form è scaduta. Puoi continuare a compilare la form da " "questa pagina." +#: contrib/gis/db/models/fields/__init__.py:42 +msgid "The base GIS field -- maps to the OpenGIS Specification Geometry type." +msgstr "Il campo base GIS -- corrisponde al tipo Geometry delle specifiche OpenGIS." + +#: contrib/gis/db/models/fields/__init__.py:264 +msgid "Point" +msgstr "Punto" + +#: contrib/gis/db/models/fields/__init__.py:268 +msgid "Line string" +msgstr "Stringa linea" + +#: contrib/gis/db/models/fields/__init__.py:272 +msgid "Polygon" +msgstr "Poligono" + +#: contrib/gis/db/models/fields/__init__.py:276 +msgid "Multi-point" +msgstr "Multi punto" + +#: contrib/gis/db/models/fields/__init__.py:280 +msgid "Multi-line string" +msgstr "Stringa multilinea" + +#: contrib/gis/db/models/fields/__init__.py:284 +msgid "Multi polygon" +msgstr "Multi poligono" + +#: contrib/gis/db/models/fields/__init__.py:288 +msgid "Geometry collection" +msgstr "Raccolta Geometry" + #: contrib/gis/forms/fields.py:17 msgid "No geometry value provided." msgstr "Nessun valore geometrico fornito." @@ -1999,11 +1976,11 @@ msgstr "Numero CNPJ non valido." msgid "This field requires at least 14 digits" msgstr "Questo campo richiede almeno 14 cifre" -#: contrib/localflavor/ca/forms.py:17 +#: contrib/localflavor/ca/forms.py:24 msgid "Enter a postal code in the format XXX XXX." msgstr "Inserisci un codice postale nel formato XXX XXX." -#: contrib/localflavor/ca/forms.py:88 +#: contrib/localflavor/ca/forms.py:95 msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." msgstr "" "Inserisci un numero di assicurazione sociale canadese valido, nel formato " @@ -2599,6 +2576,10 @@ msgstr "Checksum non valido per il numero di conto corrente bancario." msgid "Enter a valid Finnish social security number." msgstr "Inserisci un numero di assistenza sociale finlandese valido." +#: contrib/localflavor/fr/forms.py:30 +msgid "Phone numbers must be in 0X XX XX XX XX format." +msgstr "I numeri di telefono devono essere in formato 0X XX XX XX XX." + #: contrib/localflavor/in_/forms.py:14 msgid "Enter a zip code in the format XXXXXXX." msgstr "Inserisci un codice postale nel formato XXXXXXX." @@ -3769,11 +3750,25 @@ msgstr "Galles" msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." msgstr "Inserisci un codice postale nel formato XXXXX o XXXXX-XXXX ." +#: contrib/localflavor/us/forms.py:25 +msgid "Phone numbers must be in XXX-XXX-XXXX format." +msgstr "I numeri di telefono devono essere in formato XXX-XXX-XXXX." + #: contrib/localflavor/us/forms.py:54 msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "" -"Inserisci un numero di assistenza sociale USA valido, nel formato " -"XXX-XX-XXXX ." +msgstr "Inserisci un numero di assistenza sociale USA valido, nel formato XXX-XX-XXXX ." + +#: contrib/localflavor/us/forms.py:87 +msgid "Enter a U.S. state or territory." +msgstr "Inserisci uno stato o territorio USA." + +#: contrib/localflavor/us/models.py:8 +msgid "U.S. state (two uppercase letters)" +msgstr "Stato USA (due lettere maiuscole)" + +#: contrib/localflavor/us/models.py:17 +msgid "Phone number" +msgstr "Numero di telefono" #: contrib/localflavor/za/forms.py:20 msgid "Enter a valid South African ID number" @@ -3883,262 +3878,337 @@ msgstr "nome visualizzato" msgid "sites" msgstr "siti" -#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:710 +#: db/models/fields/__init__.py:67 +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Campo di tipo: %(field_type)s" + +#: db/models/fields/__init__.py:355 db/models/fields/__init__.py:720 +#: db/models/fields/__init__.py:806 db/models/fields/__init__.py:816 +#: db/models/fields/__init__.py:843 +msgid "Integer" +msgstr "Intero" + +#: db/models/fields/__init__.py:369 db/models/fields/__init__.py:742 msgid "This value must be an integer." msgstr "Questo valore deve essere un intero." -#: db/models/fields/__init__.py:388 +#: db/models/fields/__init__.py:387 +msgid "Boolean (Either True or False)" +msgstr "Booleano (True o False)" + +#: db/models/fields/__init__.py:402 msgid "This value must be either True or False." msgstr "Questo valore deve essere True o False." -#: db/models/fields/__init__.py:427 +#: db/models/fields/__init__.py:430 db/models/fields/__init__.py:826 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Stringa (fino a %(max_length)s)" + +#: db/models/fields/__init__.py:442 msgid "This field cannot be null." msgstr "Questo campo non può essere nullo." -#: db/models/fields/__init__.py:443 +#: db/models/fields/__init__.py:455 +msgid "Comma-separated integers" +msgstr "Interi separati da virgola" + +#: db/models/fields/__init__.py:462 msgid "Enter only digits separated by commas." msgstr "Inserisci solo cifre separate da virgole." -#: db/models/fields/__init__.py:474 +#: db/models/fields/__init__.py:471 +msgid "Date (without time)" +msgstr "Data (senza ora)" + +#: db/models/fields/__init__.py:494 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Inserisci una data valida in formato AAAA-MM-GG." -#: db/models/fields/__init__.py:483 +#: db/models/fields/__init__.py:503 #, python-format msgid "Invalid date: %s" msgstr "Data non valida: %s" -#: db/models/fields/__init__.py:547 db/models/fields/__init__.py:565 +#: db/models/fields/__init__.py:547 +msgid "Date (with time)" +msgstr "Data (con ora)" + +#: db/models/fields/__init__.py:568 db/models/fields/__init__.py:586 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format." msgstr "Inserisci una data/ora valida nel formato AAAA-MM-GG OO:MM[ss[.uuuuuu]]." -#: db/models/fields/__init__.py:601 +#: db/models/fields/__init__.py:608 +msgid "Decimal number" +msgstr "Numero decimale" + +#: db/models/fields/__init__.py:623 msgid "This value must be a decimal number." msgstr "Questo valore deve essere un numero decimale." -#: db/models/fields/__init__.py:686 +#: db/models/fields/__init__.py:662 +msgid "E-mail address" +msgstr "Indirizzo e-mail" + +#: db/models/fields/__init__.py:673 db/models/fields/files.py:220 +#: db/models/fields/files.py:331 +msgid "File path" +msgstr "Percorso di file" + +#: db/models/fields/__init__.py:694 +msgid "Floating point number" +msgstr "Numero decimale" + +#: db/models/fields/__init__.py:711 msgid "This value must be a float." msgstr "Questo valore deve essere un numero a virgola mobile." -#: db/models/fields/__init__.py:746 +#: db/models/fields/__init__.py:766 +msgid "Boolean (Either True, False or None)" +msgstr "Booleano (True, False o None)" + +#: db/models/fields/__init__.py:780 msgid "This value must be either None, True or False." msgstr "Questo valore deve essere None, True o False." -#: db/models/fields/__init__.py:849 db/models/fields/__init__.py:863 +#: db/models/fields/__init__.py:848 +msgid "Text" +msgstr "Testo" + +#: db/models/fields/__init__.py:863 +msgid "Time" +msgstr "Ora" + +#: db/models/fields/__init__.py:894 db/models/fields/__init__.py:908 msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgstr "Inserisci un'ora valida nel formato OO:MM[ss[.uuuuuu]]." -#: db/models/fields/related.py:816 +#: db/models/fields/__init__.py:948 +msgid "XML text" +msgstr "Testo XML" + +#: db/models/fields/related.py:686 +msgid "Foreign Key (type determined by related field)" +msgstr "Foreign Key (tipo determinato dal campo collegato)" + +#: db/models/fields/related.py:781 +msgid "One-to-one relationship" +msgstr "Relazione uno a uno" + +#: db/models/fields/related.py:796 +msgid "Many-to-many relationship" +msgstr "Relazione molti a molti" + +#: db/models/fields/related.py:819 msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" -"Tieni premuto \"Control\", o \"Command\" su Mac, per selezionarne più di uno." +msgstr "Tieni premuto \"Control\", o \"Command\" su Mac, per selezionarne più di uno." -#: db/models/fields/related.py:894 +#: db/models/fields/related.py:897 #, 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] "Inserisci un ID valido per %(self)s. Il valore %(value)r non è valido." msgstr[1] "Inserisci ID validi per %(self)s. I valori %(value)r non sono validi." -#: forms/fields.py:54 +#: forms/fields.py:53 msgid "This field is required." msgstr "Questo campo è obbligatorio." -#: forms/fields.py:55 +#: forms/fields.py:54 msgid "Enter a valid value." msgstr "Inserisci un valore valido." -#: forms/fields.py:138 +#: forms/fields.py:137 #, python-format msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." msgstr "" "Assicurarsi che questo valore non contenga più di %(max)d caratteri (ne ha %" "(length)d)." -#: forms/fields.py:139 +#: forms/fields.py:138 #, python-format msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." msgstr "" "Assicurarsi che questo valore contenga almeno %(min)d caratteri (ne ha %" "(length)d)." -#: forms/fields.py:166 +#: forms/fields.py:165 msgid "Enter a whole number." msgstr "Inserisci un numero intero." -#: forms/fields.py:167 forms/fields.py:196 forms/fields.py:225 +#: forms/fields.py:166 forms/fields.py:195 forms/fields.py:224 #, python-format msgid "Ensure this value is less than or equal to %s." msgstr "Assicurarsi che questo valore sia minore o uguale a %s." -#: forms/fields.py:168 forms/fields.py:197 forms/fields.py:226 +#: forms/fields.py:167 forms/fields.py:196 forms/fields.py:225 #, python-format msgid "Ensure this value is greater than or equal to %s." msgstr "Assicurarsi che questo valore sia maggiore o uguale a %s." -#: forms/fields.py:195 forms/fields.py:224 +#: forms/fields.py:194 forms/fields.py:223 msgid "Enter a number." msgstr "Inserisci un numero." -#: forms/fields.py:227 +#: forms/fields.py:226 #, python-format msgid "Ensure that there are no more than %s digits in total." msgstr "Assicurarsi che non vi siano più di %s cifre in totale." -#: forms/fields.py:228 +#: forms/fields.py:227 #, python-format msgid "Ensure that there are no more than %s decimal places." msgstr "Assicurarsi che non vi siano più di %s cifre decimali." -#: forms/fields.py:229 +#: forms/fields.py:228 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Assicurarsi che non vi siano più di %s cifre prima della virgola." -#: forms/fields.py:288 forms/fields.py:863 +#: forms/fields.py:293 forms/fields.py:873 msgid "Enter a valid date." msgstr "Inserisci una data valida." -#: forms/fields.py:322 forms/fields.py:864 +#: forms/fields.py:327 forms/fields.py:874 msgid "Enter a valid time." msgstr "Inserisci un'ora valida." -#: forms/fields.py:361 +#: forms/fields.py:366 msgid "Enter a valid date/time." msgstr "Inserisci una coppia data/ora valida." -#: forms/fields.py:447 +#: forms/fields.py:452 msgid "No file was submitted. Check the encoding type on the form." msgstr "Non è stato inviato alcun file. Verifica il tipo di codifica della form." -#: forms/fields.py:448 +#: forms/fields.py:453 msgid "No file was submitted." msgstr "Nessun file è stato inviato." -#: forms/fields.py:449 +#: forms/fields.py:454 msgid "The submitted file is empty." msgstr "Il file inviato è vuoto." -#: forms/fields.py:450 +#: forms/fields.py:455 #, python-format msgid "Ensure this filename has at most %(max)d characters (it has %(length)d)." msgstr "" "Assicurarsi che questo nome di file non contenga più di %(max)d caratteri " "(ne ha %(length)d)." -#: forms/fields.py:483 +#: forms/fields.py:488 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." msgstr "Carica un'immagine valida. Il file caricato non è un'immagine o è corrotto." -#: forms/fields.py:544 +#: forms/fields.py:554 msgid "Enter a valid URL." msgstr "Inserisci una URL valida." -#: forms/fields.py:545 +#: forms/fields.py:555 msgid "This URL appears to be a broken link." msgstr "Questa URL non sembra funzionare." -#: forms/fields.py:625 forms/fields.py:703 +#: forms/fields.py:635 forms/fields.py:713 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "Scegli un'opzione valida. '%(value)s non compare tra quelle disponibili." -#: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003 +#: forms/fields.py:714 forms/fields.py:775 forms/models.py:1019 msgid "Enter a list of values." msgstr "Inserisci una lista di valori." -#: forms/fields.py:892 +#: forms/fields.py:902 msgid "Enter a valid IPv4 address." msgstr "Inserisci un indirizzo IPv4 valido." -#: forms/fields.py:902 +#: forms/fields.py:912 msgid "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." msgstr "" "Inserisci uno 'slug' valido contenente lettere, cifre, sottolineati o " "trattini." -#: forms/formsets.py:271 forms/formsets.py:273 +#: forms/formsets.py:274 forms/formsets.py:276 msgid "Order" msgstr "Ordine" -#: forms/models.py:367 +#: forms/models.py:375 #, python-format msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s." msgstr "%(field_name)s deve essere unico per %(lookup)s %(date_field)s." -#: forms/models.py:381 forms/models.py:389 +#: forms/models.py:389 forms/models.py:397 #, python-format msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s con questo %(field_label)s esiste già." -#: forms/models.py:594, python-format +#: forms/models.py:602 +#, python-format msgid "Please correct the duplicate data for %(field)s." msgstr "Correggi i dati duplicati di %(field)s." -#: forms/models.py:598 +#: forms/models.py:606 #, python-format msgid "Please correct the duplicate data for %(field)s, which must be unique." msgstr "Correggi i dati duplicati di %(field)s, che deve essere unico." -#: forms/models.py:604 +#: forms/models.py:612 #, python-format msgid "" "Please correct the duplicate data for %(field_name)s which must be unique " "for the %(lookup)s in %(date_field)s." msgstr "" -"Correggi i dati duplicati di %(field_name)s che deve essere unico/a per %(lookup)s " -"in %(date_field)s." +"Correggi i dati duplicati di %(field_name)s che deve essere unico/a per %" +"(lookup)s in %(date_field)s." -#: forms/models.py:612 +#: forms/models.py:620 msgid "Please correct the duplicate values below." msgstr "Correggi i dati duplicati qui sotto." -#: forms/models.py:867 +#: forms/models.py:877 msgid "The inline foreign key did not match the parent instance primary key." -msgstr "" -"La foreign key inline non concorda con la chiave primaria dell'istanza " -"padre." +msgstr "La foreign key inline non concorda con la chiave primaria dell'istanza padre." -#: forms/models.py:930 +#: forms/models.py:940 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "" "Scegli un'opzione valida. La scelta effettuata non compare tra quelle " "disponibili." -#: forms/models.py:1004 +#: forms/models.py:1020 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Scegli un'opzione valida. %s non compare tra quelle disponibili." -#: forms/models.py:1006 +#: forms/models.py:1022 #, python-format msgid "\"%s\" is not a valid value for a primary key." msgstr "\"%s\" non è un valore valido per una chiave primaria." -#: template/defaultfilters.py:767 +#: template/defaultfilters.py:771 msgid "yes,no,maybe" msgstr "sì,no,forse" -#: template/defaultfilters.py:798 +#: template/defaultfilters.py:802 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" msgstr[0] "%(size)d byte" msgstr[1] "%(size)d byte" -#: template/defaultfilters.py:800 +#: template/defaultfilters.py:804 #, python-format msgid "%.1f KB" msgstr "%.1f KB" -#: template/defaultfilters.py:802 +#: template/defaultfilters.py:806 #, python-format msgid "%.1f MB" msgstr "%.1f MB" -#: template/defaultfilters.py:803 +#: template/defaultfilters.py:807 #, python-format msgid "%.1f GB" msgstr "%.1f GB" @@ -4401,19 +4471,19 @@ msgstr "%(number)d %(type)s" msgid ", %(number)d %(type)s" msgstr ", %(number)d %(type)s" -#: utils/translation/trans_real.py:399 +#: utils/translation/trans_real.py:406 msgid "DATE_FORMAT" msgstr "j F Y" -#: utils/translation/trans_real.py:401 +#: utils/translation/trans_real.py:408 msgid "TIME_FORMAT" msgstr "H:i" -#: utils/translation/trans_real.py:417 +#: utils/translation/trans_real.py:424 msgid "YEAR_MONTH_FORMAT" msgstr "Y F" -#: utils/translation/trans_real.py:418 +#: utils/translation/trans_real.py:425 msgid "MONTH_DAY_FORMAT" msgstr "F j" diff --git a/django/conf/locale/it/LC_MESSAGES/djangojs.mo b/django/conf/locale/it/LC_MESSAGES/djangojs.mo index 310afc7efb21..ef52c2764157 100644 Binary files a/django/conf/locale/it/LC_MESSAGES/djangojs.mo and b/django/conf/locale/it/LC_MESSAGES/djangojs.mo differ diff --git a/django/conf/locale/it/LC_MESSAGES/djangojs.po b/django/conf/locale/it/LC_MESSAGES/djangojs.po index ff7237968fe8..7d54a65a6184 100644 --- a/django/conf/locale/it/LC_MESSAGES/djangojs.po +++ b/django/conf/locale/it/LC_MESSAGES/djangojs.po @@ -1,4 +1,4 @@ -# translation of djangojs.po to Italiano +# translation of djangojs.po to Italian # Italian translation for the django-admin JS files # Copyright (C) 2006 the Lawrence Journal-World # This file is distributed under the same license as the Django package. @@ -6,15 +6,15 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-04-10 08:26+0200\n" -"PO-Revision-Date: 2009-07-26 17:51+0200\n" +"POT-Creation-Date: 2009-12-26 15:49+0100\n" +"PO-Revision-Date: 2009-12-26 16:09+0100\n" "Last-Translator: Nicola Larosa \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 0.3\n" +"X-Generator: KBabel 1.11.4\n" #: contrib/admin/media/js/SelectFilter2.js:33 #, perl-format @@ -31,10 +31,9 @@ msgstr "Aggiungi" #: contrib/admin/media/js/SelectFilter2.js:48 msgid "Remove" -msgstr "Rimuovi" +msgstr "Elimina" -#: contrib/admin/media/js/SelectFilter2.js:53 -#, perl-format +#: contrib/admin/media/js/SelectFilter2.js:53, perl-format msgid "Chosen %s" msgstr "%s scelti" diff --git a/django/conf/locale/ja/LC_MESSAGES/django.mo b/django/conf/locale/ja/LC_MESSAGES/django.mo index 987e61e5bf21..c9c6f7936cc0 100644 Binary files a/django/conf/locale/ja/LC_MESSAGES/django.mo and b/django/conf/locale/ja/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/ja/LC_MESSAGES/django.po b/django/conf/locale/ja/LC_MESSAGES/django.po index 09ae670daf8e..7e464f0dd98b 100644 --- a/django/conf/locale/ja/LC_MESSAGES/django.po +++ b/django/conf/locale/ja/LC_MESSAGES/django.po @@ -1282,7 +1282,7 @@ msgstr "メールアドレスの一致するユーザはいません。本当に #: contrib/auth/forms.py:135 #, python-format msgid "Password reset on %s" -msgstr "%s にパスワードをリセット" +msgstr "%s のパスワードのリセット" #: contrib/auth/forms.py:143 msgid "New password" diff --git a/django/conf/locale/nl/LC_MESSAGES/django.mo b/django/conf/locale/nl/LC_MESSAGES/django.mo index 6c58e35fedd6..ae72be945cbb 100644 Binary files a/django/conf/locale/nl/LC_MESSAGES/django.mo and b/django/conf/locale/nl/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/nl/LC_MESSAGES/django.po b/django/conf/locale/nl/LC_MESSAGES/django.po index 0f3bd0610c9d..8f56114430a9 100644 --- a/django/conf/locale/nl/LC_MESSAGES/django.po +++ b/django/conf/locale/nl/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-05-08 15:34+0200\n" +"POT-Creation-Date: 2009-08-08 09:21+0200\n" "PO-Revision-Date: 2008-08-28 13:58+0100\n" "Last-Translator: Rudolph Froger \n" "Language-Team: \n" @@ -224,7 +224,7 @@ msgstr "Traditioneel Chinees" msgid "Successfully deleted %(count)d %(items)s." msgstr "%(count)d %(items)s succesvol verwijderd." -#: contrib/admin/actions.py:67 contrib/admin/options.py:1025 +#: contrib/admin/actions.py:67 contrib/admin/options.py:1027 msgid "Are you sure?" msgstr "Weet u het zeker?" @@ -322,7 +322,7 @@ msgstr "%s gewijzigd." #: contrib/admin/options.py:519 contrib/admin/options.py:529 #: contrib/comments/templates/comments/preview.html:16 forms/models.py:388 -#: forms/models.py:587 +#: forms/models.py:600 msgid "and" msgstr "en" @@ -345,69 +345,69 @@ msgstr "%(name)s \"%(object)s\" verwijderd." msgid "No fields changed." msgstr "Geen velden gewijzigd." -#: contrib/admin/options.py:598 contrib/auth/admin.py:67 +#: contrib/admin/options.py:599 contrib/auth/admin.py:67 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." msgstr "De %(name)s \"%(obj)s\" is toegevoegd." -#: contrib/admin/options.py:602 contrib/admin/options.py:635 +#: contrib/admin/options.py:603 contrib/admin/options.py:636 #: contrib/auth/admin.py:75 msgid "You may edit it again below." msgstr "U kunt dit hieronder weer bewerken." -#: contrib/admin/options.py:612 contrib/admin/options.py:645 +#: contrib/admin/options.py:613 contrib/admin/options.py:646 #, python-format msgid "You may add another %s below." msgstr "U kunt hieronder de volgende %s toevoegen." -#: contrib/admin/options.py:633 +#: contrib/admin/options.py:634 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." msgstr "Het wijzigen van %(name)s \"%(obj)s\" is geslaagd." -#: contrib/admin/options.py:641 +#: contrib/admin/options.py:642 #, python-format msgid "" "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." msgstr "De %(name)s \"%(obj)s\" was toegevoegd. U kunt het hieronder wijzigen." -#: contrib/admin/options.py:772 +#: contrib/admin/options.py:773 #, python-format msgid "Add %s" msgstr "Toevoegen %s" -#: contrib/admin/options.py:803 contrib/admin/options.py:1003 +#: contrib/admin/options.py:804 contrib/admin/options.py:1005 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." msgstr "%(name)s object met primaire sleutel %(key)r bestaat niet." -#: contrib/admin/options.py:860 +#: contrib/admin/options.py:861 #, python-format msgid "Change %s" msgstr "Wijzig %s" -#: contrib/admin/options.py:904 +#: contrib/admin/options.py:905 msgid "Database error" msgstr "Databasefout" -#: contrib/admin/options.py:940 +#: contrib/admin/options.py:941 #, python-format msgid "%(count)s %(name)s was changed successfully." msgid_plural "%(count)s %(name)s were changed successfully." msgstr[0] "%(count)s %(name)s is succesvol gewijzigd." msgstr[1] "%(count)s %(name)s zijn succesvol gewijzigd." -#: contrib/admin/options.py:1018 +#: contrib/admin/options.py:1020 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "De verwijdering van %(name)s \"%(obj)s\" is geslaagd." -#: contrib/admin/options.py:1054 +#: contrib/admin/options.py:1057 #, python-format msgid "Change history: %s" msgstr "Wijzigingsgeschiedenis: %s" -#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 +#: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14 #: contrib/auth/forms.py:80 msgid "" "Please enter a correct username and password. Note that both fields are case-" @@ -416,11 +416,11 @@ msgstr "" "Voer een correcte gebruikersnaam en wachtwoord in. Let op, de velden zijn " "hoofdletter-gevoelig." -#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 +#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40 msgid "Please log in again, because your session has expired." msgstr "Uw sessie is verlopen, meld u opnieuw aan." -#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 +#: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47 msgid "" "Looks like your browser isn't configured to accept cookies. Please enable " "cookies, reload this page, and try again." @@ -428,27 +428,27 @@ msgstr "" "Het lijkt erop dat uw browser geen cookies accepteert. Zet het gebruik van " "cookies aan in uw browser, laad deze pagina nogmaals en probeer het opnieuw." -#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 +#: contrib/admin/sites.py:308 contrib/admin/sites.py:314 #: contrib/admin/views/decorators.py:66 msgid "Usernames cannot contain the '@' character." msgstr "Gebruikersnamen mogen geen '@' teken bevatten." -#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 +#: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "Uw e-mailadres is niet uw gebruikersnaam. Probeer '%s' eens." -#: contrib/admin/sites.py:360 +#: contrib/admin/sites.py:367 msgid "Site administration" msgstr "Sitebeheer" -#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 +#: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26 #: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/views/decorators.py:20 msgid "Log in" msgstr "Inloggen" -#: contrib/admin/sites.py:417 +#: contrib/admin/sites.py:426 #, python-format msgid "%s administration" msgstr "%s beheer" @@ -498,7 +498,7 @@ msgstr "Onze excuses, maar de gevraagde pagina bestaat niet." #: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/app_index.html:8 -#: contrib/admin/templates/admin/base.html:31 +#: contrib/admin/templates/admin/base.html:54 #: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/delete_confirmation.html:6 @@ -543,7 +543,7 @@ msgstr "Voer de geselecteerde actie uit" #: contrib/admin/templates/admin/actions.html:4 msgid "Go" -msgstr "Zoek" +msgstr "Voer Uit" #: contrib/admin/templates/admin/app_index.html:10 #: contrib/admin/templates/admin/index.html:19 @@ -551,18 +551,18 @@ msgstr "Zoek" msgid "%(name)s" msgstr "%(name)s" -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:27 msgid "Welcome," msgstr "Welkom," -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:32 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 msgid "Documentation" msgstr "Documentatie" -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:40 #: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 @@ -570,7 +570,7 @@ msgstr "Documentatie" msgid "Change password" msgstr "Wachtwoord wijzigen" -#: contrib/admin/templates/admin/base.html:26 +#: contrib/admin/templates/admin/base.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 msgid "Log out" @@ -659,8 +659,8 @@ msgid "" "objects:" msgstr "" "Het verwijderen van %(object_name)s zal ook gerelateerde objecten " -"verwijderen. Echter, u heeft geen rechten om de volgende typen objecten " -"te verwijderen:" +"verwijderen. Echter, u heeft geen rechten om de volgende typen objecten te " +"verwijderen:" #: contrib/admin/templates/admin/delete_selected_confirmation.html:22 #, python-format @@ -668,8 +668,8 @@ msgid "" "Are you sure you want to delete the selected %(object_name)s objects? All of " "the following objects and it's related items will be deleted:" msgstr "" -"Weet u zeker dat u %(object_name)s objecten wilt verwijderen? " -"Alle volgende objecten worden verwijderd:" +"Weet u zeker dat u %(object_name)s objecten wilt verwijderen? Alle volgende " +"objecten worden verwijderd:" #: contrib/admin/templates/admin/filter.html:2 #, python-format @@ -752,6 +752,11 @@ msgstr "" msgid "Show all" msgstr "Alles tonen" +#: contrib/admin/templates/admin/pagination.html:11 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Save" +msgstr "Opslaan" + #: contrib/admin/templates/admin/search_form.html:8 msgid "Search" msgstr "Zoek" @@ -768,10 +773,6 @@ msgstr[1] "%(counter)s resultaten" msgid "%(full_result_count)s total" msgstr "%(full_result_count)s totaal" -#: contrib/admin/templates/admin/submit_line.html:3 -msgid "Save" -msgstr "Opslaan" - #: contrib/admin/templates/admin/submit_line.html:5 msgid "Save as new" msgstr "Opslaan als nieuw item" @@ -997,144 +998,145 @@ msgstr "site" msgid "template" msgstr "sjabloon" -#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 -#: contrib/admindocs/views.py:62 +#: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63 +#: contrib/admindocs/views.py:65 msgid "tag:" msgstr "tag:" -#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 -#: contrib/admindocs/views.py:95 +#: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96 +#: contrib/admindocs/views.py:98 msgid "filter:" msgstr "filter:" -#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 -#: contrib/admindocs/views.py:159 +#: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160 +#: contrib/admindocs/views.py:162 msgid "view:" msgstr "view:" -#: contrib/admindocs/views.py:187 +#: contrib/admindocs/views.py:190 #, python-format msgid "App %r not found" msgstr "Toepassing %r niet gevonden" -#: contrib/admindocs/views.py:194 +#: contrib/admindocs/views.py:197 #, python-format msgid "Model %(model_name)r not found in app %(app_label)r" msgstr "Model %(model_name)r niet gevonden in toepassing %(app_label)r" -#: contrib/admindocs/views.py:206 +#: contrib/admindocs/views.py:209 #, python-format msgid "the related `%(app_label)s.%(data_type)s` object" msgstr "het gerelateerde `%(app_label)s.%(data_type)s` object" -#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228 -#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266 msgid "model:" msgstr "model:" -#: contrib/admindocs/views.py:237 +#: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256 #, python-format msgid "related `%(app_label)s.%(object_name)s` objects" msgstr "gerelateerde `%(app_label)s.%(object_name)s` objecten" -#: contrib/admindocs/views.py:242 +#: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261 #, python-format msgid "all %s" msgstr "alle %s" -#: contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266 #, python-format msgid "number of %s" msgstr "aantal %s" -#: contrib/admindocs/views.py:252 +#: contrib/admindocs/views.py:271 #, python-format msgid "Fields on %s objects" msgstr "Velden van %s objecten" -#: contrib/admindocs/views.py:315 contrib/admindocs/views.py:326 -#: contrib/admindocs/views.py:328 contrib/admindocs/views.py:334 -#: contrib/admindocs/views.py:335 contrib/admindocs/views.py:337 +#: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345 +#: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353 +#: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356 msgid "Integer" msgstr "Geheel getal" -#: contrib/admindocs/views.py:316 +#: contrib/admindocs/views.py:335 msgid "Boolean (Either True or False)" msgstr "Boolean (True danwel False)" -#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:336 +#: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355 #, python-format msgid "String (up to %(max_length)s)" msgstr "Karakterreeks (hooguit %(max_length)s)" -#: contrib/admindocs/views.py:318 +#: contrib/admindocs/views.py:337 msgid "Comma-separated integers" msgstr "Komma-gescheiden gehele getallen" -#: contrib/admindocs/views.py:319 +#: contrib/admindocs/views.py:338 msgid "Date (without time)" msgstr "Datum (zonder tijd)" -#: contrib/admindocs/views.py:320 +#: contrib/admindocs/views.py:339 msgid "Date (with time)" msgstr "Datum (met tijd)" -#: contrib/admindocs/views.py:321 +#: contrib/admindocs/views.py:340 msgid "Decimal number" msgstr "Decimaal getal" -#: contrib/admindocs/views.py:322 +#: contrib/admindocs/views.py:341 msgid "E-mail address" msgstr "E-mailadres" -#: contrib/admindocs/views.py:323 contrib/admindocs/views.py:324 -#: contrib/admindocs/views.py:327 +#: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343 +#: contrib/admindocs/views.py:346 msgid "File path" msgstr "Bestandspad" -#: contrib/admindocs/views.py:325 +#: contrib/admindocs/views.py:344 msgid "Floating point number" msgstr "Decimaal getal" -#: contrib/admindocs/views.py:329 contrib/comments/models.py:60 +#: contrib/admindocs/views.py:348 contrib/comments/models.py:60 msgid "IP address" msgstr "IP-adres" -#: contrib/admindocs/views.py:331 +#: contrib/admindocs/views.py:350 msgid "Boolean (Either True, False or None)" msgstr "Boolean (True, False of None)" -#: contrib/admindocs/views.py:332 +#: contrib/admindocs/views.py:351 msgid "Relation to parent model" msgstr "Relatie tot oudermodel" -#: contrib/admindocs/views.py:333 +#: contrib/admindocs/views.py:352 msgid "Phone number" msgstr "Telefoonnummer" -#: contrib/admindocs/views.py:338 +#: contrib/admindocs/views.py:357 msgid "Text" msgstr "Tekst" -#: contrib/admindocs/views.py:339 +#: contrib/admindocs/views.py:358 msgid "Time" msgstr "Tijd" -#: contrib/admindocs/views.py:340 contrib/comments/forms.py:95 +#: contrib/admindocs/views.py:359 contrib/comments/forms.py:95 #: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 msgid "URL" msgstr "URL" -#: contrib/admindocs/views.py:341 +#: contrib/admindocs/views.py:360 msgid "U.S. state (two uppercase letters)" msgstr "Staat van de VS (twee hoofdletters)" -#: contrib/admindocs/views.py:342 +#: contrib/admindocs/views.py:361 msgid "XML text" msgstr "XML-tekst" -#: contrib/admindocs/views.py:368 +#: contrib/admindocs/views.py:387 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s lijkt geen urlpattern-object te zijn" @@ -1361,7 +1363,7 @@ msgid "" "Use '[algo]$[salt]$[hexdigest]' or use the change " "password form." msgstr "" -"Gebruik '[algo]$[salt]$[hexdigest]' of gebruik hetwachtwoord wijzigen formulier." #: contrib/auth/models.py:133 @@ -1530,8 +1532,8 @@ msgid "" "Check this box if the comment is inappropriate. A \"This comment has been " "removed\" message will be displayed instead." msgstr "" -"Vink dit vak aan indien de opmerking niet gepast is. Een \"Dit commentaar " -"is verwijderd\" bericht wordt dan getoond." +"Vink dit vak aan indien de opmerking niet gepast is. Een \"Dit commentaar is " +"verwijderd\" bericht wordt dan getoond." #: contrib/comments/models.py:77 msgid "comments" @@ -1607,7 +1609,8 @@ msgstr "Bedankt voor het goedkeuren" msgid "" "Thanks for taking the time to improve the quality of discussion on our site" msgstr "" -"Bedankt dat u de tijd heeft genomen om de kwaliteit van de discussie op onze site te verbeteren" +"Bedankt dat u de tijd heeft genomen om de kwaliteit van de discussie op onze " +"site te verbeteren" #: contrib/comments/templates/comments/delete.html:4 msgid "Remove a comment" @@ -2190,12 +2193,12 @@ msgstr "Geef een postcode op in het formaat XXXXX of XXX XX." #: contrib/localflavor/cz/forms.py:47 msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." -msgstr "" -"Geef een geboorte nummer op in het formaat XXXXXX/XXXX or XXXXXXXXXX." +msgstr "Geef een geboorte nummer op in het formaat XXXXXX/XXXX or XXXXXXXXXX." #: contrib/localflavor/cz/forms.py:48 msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" -msgstr "Ongeldige optionele parameter Geslacht, geldige waarden zijn 'f' en 'm'" +msgstr "" +"Ongeldige optionele parameter Geslacht, geldige waarden zijn 'f' en 'm'" #: contrib/localflavor/cz/forms.py:49 msgid "Enter a valid birth number." @@ -3035,7 +3038,8 @@ msgstr "Verkeerd controlecijfer voor het fiscaal nummer (NIP)." #: contrib/localflavor/pl/forms.py:109 msgid "National Business Register Number (REGON) consists of 9 or 14 digits." msgstr "" -"Het Nationaal Zakelijk Registratie Nummer (REGON) bestaat uit 9 of 14 cijfers." +"Het Nationaal Zakelijk Registratie Nummer (REGON) bestaat uit 9 of 14 " +"cijfers." #: contrib/localflavor/pl/forms.py:110 msgid "Wrong checksum for the National Business Register Number (REGON)." @@ -3883,7 +3887,7 @@ msgstr "sites" msgid "This value must be an integer." msgstr "De waarde moet een geheel getal zijn." -#: db/models/fields/__init__.py:3883918 +#: db/models/fields/__init__.py:388 msgid "This value must be either True or False." msgstr "De waarde moet of True (Waar) of False (Onwaar) zijn." @@ -3912,8 +3916,8 @@ msgstr "Geef geldige datum/tijd in JJJJ-MM-DD UU:MM[:ss[.uuuuuu]] formaat." msgid "This value must be a decimal number." msgstr "De waarde moet een decimaal getal zijn." -#: db/models/fields/__init__.py:686 # Choose 'kommagetal' because it's user input. +#: db/models/fields/__init__.py:686 msgid "This value must be a float." msgstr "De waarde moet een kommagetal zijn." @@ -3925,14 +3929,14 @@ msgstr "De waarde moet of None (leeg), True (Waar) of False (Onwaar) zijn." msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgstr "Geef een geldige tijd in UU:MM[:ss[.uuuuuu]] formaat." -#: db/models/fields/related.py:792 +#: db/models/fields/related.py:816 msgid "" "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" "Houd \"Control\", of \"Command\" op een Mac, ingedrukt om meerdere te " "selecteren." -#: db/models/fields/related.py:870 +#: db/models/fields/related.py:894 #, python-format msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid_plural "" @@ -3952,15 +3956,15 @@ msgstr "Geef een geldige waarde." #, python-format msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." msgstr "" -"Zorg ervoor dat waarde korter is dan %(max)d tekens (huidige lengte " -"%(length)d)." +"Zorg ervoor dat waarde korter is dan %(max)d tekens (huidige lengte %(length)" +"d)." #: forms/fields.py:139 #, python-format msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." msgstr "" -"Zorg ervoor dat deze tekst langer is dan %(min)d tekens (huidige lengte " -"%(length)d)." +"Zorg ervoor dat deze tekst langer is dan %(min)d tekens (huidige lengte %" +"(length)d)." #: forms/fields.py:166 msgid "Enter a whole number." @@ -4026,7 +4030,8 @@ msgstr "Het verstuurde bestand is leeg." msgid "" "Ensure this filename has at most %(max)d characters (it has %(length)d)." msgstr "" -"De bestandsnaam mag maximaal %(max)d karakters bevatten (dit zijn er nu %(length)d)." +"De bestandsnaam mag maximaal %(max)d karakters bevatten (dit zijn er nu %" +"(length)d)." #: forms/fields.py:483 msgid "" @@ -4049,7 +4054,7 @@ msgstr "Deze URL lijkt niet te werken." msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "Selecteer een geldige keuze. %(value)s is geen beschikbare keuze." -#: forms/fields.py:704 forms/fields.py:765 forms/models.py:962 +#: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003 msgid "Enter a list of values." msgstr "Geef een lijst op met waardes." @@ -4078,43 +4083,45 @@ msgstr "%(field_name)s moet uniek zijn voor %(date_field)s %(lookup)s." msgid "%(model_name)s with this %(field_label)s already exists." msgstr "Er bestaat al een %(model_name)s met eenzelfde %(field_label)s." -#: forms/models.py:581 +#: forms/models.py:594 #, python-format msgid "Please correct the duplicate data for %(field)s." msgstr "Verbeter de dubbele gegevens voor %(field)s." -#: forms/models.py:585 +#: forms/models.py:598 #, python-format msgid "Please correct the duplicate data for %(field)s, which must be unique." msgstr "Verbeter de dubbele gegevens voor %(field)s, welke uniek moet zijn." -#: forms/models.py:591 +#: forms/models.py:604 #, python-format msgid "" "Please correct the duplicate data for %(field_name)s which must be unique " "for the %(lookup)s in %(date_field)s." -msgstr "Verbeter de dubbele gegevens voor %(field_name)s, welke uniek moet " -"zijn voor de %(lookup)s in %(date_field)s." +msgstr "" +"Verbeter de dubbele gegevens voor %(field_name)s, welke uniek moet zijn voor " +"de %(lookup)s in %(date_field)s." -#: forms/models.py:599 +#: forms/models.py:612 msgid "Please correct the duplicate values below." msgstr "Verbeter de dubbele waarden hieronder." -#: forms/models.py:837 +#: forms/models.py:867 msgid "The inline foreign key did not match the parent instance primary key." -msgstr "De secundaire sleutel komt niet overeen met de primaire sleutel van " -"de bovenliggende instantie." +msgstr "" +"De secundaire sleutel komt niet overeen met de primaire sleutel van de " +"bovenliggende instantie." -#: forms/models.py:892 +#: forms/models.py:930 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "Selecteer een geldige keuze. Deze keuze is niet beschikbaar." -#: forms/models.py:963 +#: forms/models.py:1004 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Selecteer een geldige keuze. %s is geen beschikbare keuze." -#: forms/models.py:965 +#: forms/models.py:1006 #, python-format msgid "\"%s\" is not a valid value for a primary key." msgstr "\"%s\" is geen geldige waarde voor een primaire sleutel." @@ -4145,27 +4152,27 @@ msgstr "%.1f MB" msgid "%.1f GB" msgstr "%.1f GB" -#: utils/dateformat.py:41 +#: utils/dateformat.py:42 msgid "p.m." msgstr "p.m." -#: utils/dateformat.py:42 +#: utils/dateformat.py:43 msgid "a.m." msgstr "a.m." -#: utils/dateformat.py:47 +#: utils/dateformat.py:48 msgid "PM" msgstr "PM" -#: utils/dateformat.py:48 +#: utils/dateformat.py:49 msgid "AM" msgstr "AM" -#: utils/dateformat.py:97 +#: utils/dateformat.py:98 msgid "midnight" msgstr "middernacht" -#: utils/dateformat.py:99 +#: utils/dateformat.py:100 msgid "noon" msgstr "middag" diff --git a/django/conf/locale/no/LC_MESSAGES/django.mo b/django/conf/locale/no/LC_MESSAGES/django.mo index 8e523f3f96d8..339ca0fefd4e 100644 Binary files a/django/conf/locale/no/LC_MESSAGES/django.mo and b/django/conf/locale/no/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/no/LC_MESSAGES/django.po b/django/conf/locale/no/LC_MESSAGES/django.po index f27cb79d9e6d..55b58a7ef29a 100644 --- a/django/conf/locale/no/LC_MESSAGES/django.po +++ b/django/conf/locale/no/LC_MESSAGES/django.po @@ -597,7 +597,7 @@ msgstr "Historikk" #: contrib/admin/templates/admin/edit_inline/stacked.html:13 #: contrib/admin/templates/admin/edit_inline/tabular.html:27 msgid "View on site" -msgstr "Vis på nettside" +msgstr "Vis på nettsted" #: contrib/admin/templates/admin/change_form.html:38 #: contrib/admin/templates/admin/change_list.html:54 @@ -992,7 +992,7 @@ msgstr "Velg %s du ønsker å redigere" #: contrib/admin/views/template.py:37 contrib/sites/models.py:38 msgid "site" -msgstr "nettside" +msgstr "nettsted" #: contrib/admin/views/template.py:39 msgid "template" @@ -3861,7 +3861,7 @@ msgstr "visningsnavn" #: contrib/sites/models.py:39 msgid "sites" -msgstr "nettsider" +msgstr "nettsteder" #: db/models/fields/__init__.py:356 db/models/fields/__init__.py:710 msgid "This value must be an integer." diff --git a/django/conf/locale/pl/LC_MESSAGES/django.mo b/django/conf/locale/pl/LC_MESSAGES/django.mo index 309db85baf5d..9dbeb5264826 100644 Binary files a/django/conf/locale/pl/LC_MESSAGES/django.mo and b/django/conf/locale/pl/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/pl/LC_MESSAGES/django.po b/django/conf/locale/pl/LC_MESSAGES/django.po index ba985d01e92d..832a212efc85 100644 --- a/django/conf/locale/pl/LC_MESSAGES/django.po +++ b/django/conf/locale/pl/LC_MESSAGES/django.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-17 21:59+0200\n" +"POT-Creation-Date: 2009-12-16 20:29+0100\n" "PO-Revision-Date: 2008-02-25 15:53+0100\n" "Last-Translator: Jarek Zgoda \n" "MIME-Version: 1.0\n" @@ -223,7 +223,7 @@ msgstr "chiński tradycyjny" msgid "Successfully deleted %(count)d %(items)s." msgstr "Usunięto %(count)d %(items)s." -#: contrib/admin/actions.py:67 contrib/admin/options.py:1027 +#: contrib/admin/actions.py:67 contrib/admin/options.py:1033 msgid "Are you sure?" msgstr "Jesteś pewien?" @@ -266,15 +266,15 @@ msgstr "Ten miesiąc" msgid "This year" msgstr "Ten rok" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:435 msgid "Yes" msgstr "Tak" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:435 msgid "No" msgstr "Nie" -#: contrib/admin/filterspecs.py:154 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:154 forms/widgets.py:435 msgid "Unknown" msgstr "Nieznany" @@ -371,26 +371,37 @@ msgid "" msgstr "" "%(name)s \"%(obj)s\" dodane pomyślnie. Możesz edytować ponownie wpis poniżej." -#: contrib/admin/options.py:773 +#: contrib/admin/options.py:693 +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Wykonanie akcji wymaga wybrania obiektów. Żaden obiekt nie został zmieniony." + +#: contrib/admin/options.py:707 +msgid "No action selected." +msgstr "Nie wybrano akcji." + +#: contrib/admin/options.py:779 #, python-format msgid "Add %s" msgstr "Dodaj %s" -#: contrib/admin/options.py:804 contrib/admin/options.py:1005 +#: contrib/admin/options.py:810 contrib/admin/options.py:1011 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." msgstr "Obiekt %(name)s o kluczu głównym %(key)r nie istnieje." -#: contrib/admin/options.py:861 +#: contrib/admin/options.py:867 #, python-format msgid "Change %s" msgstr "Zmień %s" -#: contrib/admin/options.py:905 +#: contrib/admin/options.py:911 msgid "Database error" msgstr "Błąd bazy danych" -#: contrib/admin/options.py:941 +#: contrib/admin/options.py:947 #, python-format msgid "%(count)s %(name)s was changed successfully." msgid_plural "%(count)s %(name)s were changed successfully." @@ -398,12 +409,12 @@ msgstr[0] "%(count)s %(name)s został pomyślnie zmieniony." msgstr[1] "%(count)s %(name)s zostały pomyślnie zmienione." msgstr[2] "%(count)s %(name)s zostało pomyślnie zmienionych." -#: contrib/admin/options.py:1020 +#: contrib/admin/options.py:1026 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "%(name)s \"%(obj)s\" usunięty pomyślnie." -#: contrib/admin/options.py:1057 +#: contrib/admin/options.py:1063 #, python-format msgid "Change history: %s" msgstr "Historia zmian: %s" @@ -417,11 +428,11 @@ msgstr "" "Proszę wpisać poprawną nazwę użytkownika i hasło. Uwaga: wielkość liter ma " "znaczenie." -#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40 +#: contrib/admin/sites.py:288 contrib/admin/views/decorators.py:40 msgid "Please log in again, because your session has expired." msgstr "Twoja sesja wygasła, zaloguj się ponownie." -#: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47 +#: contrib/admin/sites.py:295 contrib/admin/views/decorators.py:47 msgid "" "Looks like your browser isn't configured to accept cookies. Please enable " "cookies, reload this page, and try again." @@ -429,27 +440,27 @@ msgstr "" "Twoja przeglądarka nie chce akceptować ciasteczek. Zmień jej ustawienia i " "spróbuj ponownie." -#: contrib/admin/sites.py:308 contrib/admin/sites.py:314 +#: contrib/admin/sites.py:311 contrib/admin/sites.py:317 #: contrib/admin/views/decorators.py:66 msgid "Usernames cannot contain the '@' character." msgstr "Nazwy użytkowników nie mogą zawierać znaku '@'." -#: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62 +#: contrib/admin/sites.py:314 contrib/admin/views/decorators.py:62 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "Podany adres e-mail nie jest Twoją nazwą użytkownika. Spróbuj '%s'." -#: contrib/admin/sites.py:367 +#: contrib/admin/sites.py:370 msgid "Site administration" msgstr "Administracja stroną" -#: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26 +#: contrib/admin/sites.py:384 contrib/admin/templates/admin/login.html:26 #: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/views/decorators.py:20 msgid "Log in" msgstr "Zaloguj się" -#: contrib/admin/sites.py:426 +#: contrib/admin/sites.py:429 #, python-format msgid "%s administration" msgstr "%s - administracja" @@ -464,27 +475,27 @@ msgstr "Jedno lub więcej %(fieldname)s w %(name)s: %(obj)s" msgid "One or more %(fieldname)s in %(name)s:" msgstr "Jedno lub więcej %(fieldname)s w %(name)s:" -#: contrib/admin/widgets.py:71 +#: contrib/admin/widgets.py:72 msgid "Date:" msgstr "Data:" -#: contrib/admin/widgets.py:71 +#: contrib/admin/widgets.py:72 msgid "Time:" msgstr "Czas:" -#: contrib/admin/widgets.py:95 +#: contrib/admin/widgets.py:96 msgid "Currently:" msgstr "Teraz:" -#: contrib/admin/widgets.py:95 +#: contrib/admin/widgets.py:96 msgid "Change:" msgstr "Zmień:" -#: contrib/admin/widgets.py:124 +#: contrib/admin/widgets.py:125 msgid "Lookup" msgstr "Szukaj" -#: contrib/admin/widgets.py:235 +#: contrib/admin/widgets.py:237 msgid "Add Another" msgstr "Dodaj kolejny" @@ -598,7 +609,7 @@ msgstr "Historia" #: contrib/admin/templates/admin/change_form.html:28 #: contrib/admin/templates/admin/edit_inline/stacked.html:13 -#: contrib/admin/templates/admin/edit_inline/tabular.html:27 +#: contrib/admin/templates/admin/edit_inline/tabular.html:28 msgid "View on site" msgstr "Pokaż na stronie" @@ -668,10 +679,10 @@ msgstr "" #, python-format msgid "" "Are you sure you want to delete the selected %(object_name)s objects? All of " -"the following objects and it's related items will be deleted:" +"the following objects and their related items will be deleted:" msgstr "" -"Czy chcesz skasować %(object_name)s? Następujące obiekty i zależne od nich " -"zostaną skasowane:" +"Czy chcesz skasować wybrane %(object_name)s? Następujące obiekty i zależne " +"od nich zostaną skasowane:" #: contrib/admin/templates/admin/filter.html:2 #, python-format @@ -978,7 +989,7 @@ msgstr "Adres e-mail:" msgid "Reset my password" msgstr "Zresetuj moje hasło" -#: contrib/admin/templatetags/admin_list.py:299 +#: contrib/admin/templatetags/admin_list.py:304 msgid "All dates" msgstr "Wszystkie daty" @@ -1056,89 +1067,7 @@ msgstr "liczba %s" msgid "Fields on %s objects" msgstr "Pola obiektów %s" -#: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345 -#: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353 -#: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356 -msgid "Integer" -msgstr "Liczba całkowita" - -#: contrib/admindocs/views.py:335 -msgid "Boolean (Either True or False)" -msgstr "Wartość logiczna (True, False - prawda lub fałsz)" - -#: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355 -#, python-format -msgid "String (up to %(max_length)s)" -msgstr "Łańcuch (do %(max_length)s znaków)" - -#: contrib/admindocs/views.py:337 -msgid "Comma-separated integers" -msgstr "Liczby całkowite rozdzielone przecinkami" - -#: contrib/admindocs/views.py:338 -msgid "Date (without time)" -msgstr "Data (bez godziny)" - -#: contrib/admindocs/views.py:339 -msgid "Date (with time)" -msgstr "Data (z godziną)" - -#: contrib/admindocs/views.py:340 -msgid "Decimal number" -msgstr "Liczba dziesiętna" - -#: contrib/admindocs/views.py:341 -msgid "E-mail address" -msgstr "Adres e-mail" - -#: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343 -#: contrib/admindocs/views.py:346 -msgid "File path" -msgstr "Ścieżka do pliku" - -#: contrib/admindocs/views.py:344 -msgid "Floating point number" -msgstr "Liczba zmiennoprzecinkowa" - -#: contrib/admindocs/views.py:348 contrib/comments/models.py:60 -msgid "IP address" -msgstr "Adres IP" - -#: contrib/admindocs/views.py:350 -msgid "Boolean (Either True, False or None)" -msgstr "Wartość logiczna (True, False, None - prawda, fałsz lub nic)" - -#: contrib/admindocs/views.py:351 -msgid "Relation to parent model" -msgstr "Relacja do modelu rodzica" - -#: contrib/admindocs/views.py:352 -msgid "Phone number" -msgstr "Numer telefonu" - -#: contrib/admindocs/views.py:357 -msgid "Text" -msgstr "Tekst" - -#: contrib/admindocs/views.py:358 -msgid "Time" -msgstr "Czas" - -#: contrib/admindocs/views.py:359 contrib/comments/forms.py:95 -#: contrib/comments/templates/comments/moderation_queue.html:37 -#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 -msgid "URL" -msgstr "URL" - -#: contrib/admindocs/views.py:360 -msgid "U.S. state (two uppercase letters)" -msgstr "Stan USA (dwie duże litery)" - -#: contrib/admindocs/views.py:361 -msgid "XML text" -msgstr "Tekst XML" - -#: contrib/admindocs/views.py:387 +#: contrib/admindocs/views.py:356 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s nie jest obiektem urlpattern" @@ -1432,7 +1361,7 @@ msgstr "wiadomość" msgid "Logged out" msgstr "Wylogowany" -#: contrib/auth/management/commands/createsuperuser.py:23 forms/fields.py:429 +#: contrib/auth/management/commands/createsuperuser.py:23 forms/fields.py:428 msgid "Enter a valid e-mail address." msgstr "Wprowadź poprawny adres e-mail." @@ -1463,6 +1392,13 @@ msgstr "Nazwa" msgid "Email address" msgstr "Adres e-mail" +#: contrib/comments/forms.py:95 +#: contrib/comments/templates/comments/moderation_queue.html:37 +#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 +#: db/models/fields/__init__.py:917 +msgid "URL" +msgstr "URL" + #: contrib/comments/forms.py:96 #: contrib/comments/templates/comments/moderation_queue.html:35 msgid "Comment" @@ -1511,6 +1447,10 @@ msgstr "komentarz" msgid "date/time submitted" msgstr "data/czas dodania" +#: contrib/comments/models.py:60 db/models/fields/__init__.py:737 +msgid "IP address" +msgstr "Adres IP" + #: contrib/comments/models.py:61 msgid "is public" msgstr "publicznie dostępny" @@ -1789,6 +1729,39 @@ msgstr "" "Przepraszamy, ale Twój formularz wygasł. Proszę kontynuować wypełnianie " "formularza od tej strony." +#: contrib/gis/db/models/fields/__init__.py:42 +msgid "The base GIS field -- maps to the OpenGIS Specification Geometry type." +msgstr "" +"Podstawowe pole GIS - odpowiada typowi Geometry w specyfikacji OpenGIS." + +#: contrib/gis/db/models/fields/__init__.py:264 +msgid "Point" +msgstr "Punkt" + +#: contrib/gis/db/models/fields/__init__.py:268 +msgid "Line string" +msgstr "" + +#: contrib/gis/db/models/fields/__init__.py:272 +msgid "Polygon" +msgstr "Wielobok" + +#: contrib/gis/db/models/fields/__init__.py:276 +msgid "Multi-point" +msgstr "" + +#: contrib/gis/db/models/fields/__init__.py:280 +msgid "Multi-line string" +msgstr "" + +#: contrib/gis/db/models/fields/__init__.py:284 +msgid "Multi polygon" +msgstr "" + +#: contrib/gis/db/models/fields/__init__.py:288 +msgid "Geometry collection" +msgstr "" + #: contrib/gis/forms/fields.py:17 msgid "No geometry value provided." msgstr "Brak wartości geometrii." @@ -2001,11 +1974,11 @@ msgstr "Błędny numer CNPJ." msgid "This field requires at least 14 digits" msgstr "To pole musi zawierać co najmniej 14 cyfr" -#: contrib/localflavor/ca/forms.py:17 +#: contrib/localflavor/ca/forms.py:24 msgid "Enter a postal code in the format XXX XXX." msgstr "Wpisz kod pocztowy w formacie XXX XXX." -#: contrib/localflavor/ca/forms.py:88 +#: contrib/localflavor/ca/forms.py:95 msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." msgstr "" "Wpisz poprawny numer kanadyjskiego ubezpieczenia w formacie XXX-XXX-XXXX." @@ -2599,6 +2572,10 @@ msgstr "Niepoprawna suma kontrolna numeru konta bankowego." msgid "Enter a valid Finnish social security number." msgstr "Wpis poprawny numer fińskiego ubezpieczenia socjalnego." +#: contrib/localflavor/fr/forms.py:30 +msgid "Phone numbers must be in 0X XX XX XX XX format." +msgstr "Numery telefoniczne muszą być w formacie 0X XX XX XX XX." + #: contrib/localflavor/in_/forms.py:14 msgid "Enter a zip code in the format XXXXXXX." msgstr "Wpisz kod pocztowy w formacie XXXXXXX." @@ -3770,6 +3747,14 @@ msgstr "Wpisz kod pocztowy w formacie XXXXX. lub XXXXX-XXXX." msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." msgstr "Wpisz poprawny numer U.S. Social Security w formacie XXX-XX-XXXX." +#: contrib/localflavor/us/models.py:8 +msgid "U.S. state (two uppercase letters)" +msgstr "Stan USA (dwie duże litery)" + +#: contrib/localflavor/us/models.py:17 +msgid "Phone number" +msgstr "Numer telefonu" + #: contrib/localflavor/za/forms.py:20 msgid "Enter a valid South African ID number" msgstr "Wpisz poprawny południowoafrykański numer ID" @@ -3874,62 +3859,139 @@ msgstr "wyświetlana nazwa" msgid "sites" msgstr "strony" -#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:710 +#: db/models/fields/__init__.py:64 +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Pole typu: %(field_type)s" + +#: db/models/fields/__init__.py:350 db/models/fields/__init__.py:712 +#: db/models/fields/__init__.py:792 db/models/fields/__init__.py:802 +#: db/models/fields/__init__.py:829 +msgid "Integer" +msgstr "Liczba całkowita" + +#: db/models/fields/__init__.py:364 db/models/fields/__init__.py:728 msgid "This value must be an integer." msgstr "Ta wartość musi być liczbą całkowitą." -#: db/models/fields/__init__.py:388 +#: db/models/fields/__init__.py:382 +msgid "Boolean (Either True or False)" +msgstr "Wartość logiczna (True, False - prawda lub fałsz)" + +#: db/models/fields/__init__.py:397 msgid "This value must be either True or False." msgstr "" "Ta wartość musi być wartością logiczną (True, False - prawda lub fałsz)." -#: db/models/fields/__init__.py:427 +#: db/models/fields/__init__.py:425 db/models/fields/__init__.py:812 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Łańcuch (do %(max_length)s znaków)" + +#: db/models/fields/__init__.py:437 msgid "This field cannot be null." msgstr "To pole nie może być puste." -#: db/models/fields/__init__.py:443 +#: db/models/fields/__init__.py:447 +msgid "Comma-separated integers" +msgstr "Liczby całkowite rozdzielone przecinkami" + +#: db/models/fields/__init__.py:454 msgid "Enter only digits separated by commas." msgstr "Wpisz tylko cyfry oddzielone przecinkami." -#: db/models/fields/__init__.py:474 +#: db/models/fields/__init__.py:463 +msgid "Date (without time)" +msgstr "Data (bez godziny)" + +#: db/models/fields/__init__.py:486 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Proszę wpisać poprawną datę w formacie RRRR-MM-DD." -#: db/models/fields/__init__.py:483 +#: db/models/fields/__init__.py:495 #, python-format msgid "Invalid date: %s" msgstr "Niepoprawna data: %s" -#: db/models/fields/__init__.py:547 db/models/fields/__init__.py:565 +#: db/models/fields/__init__.py:539 +msgid "Date (with time)" +msgstr "Data (z godziną)" + +#: db/models/fields/__init__.py:560 db/models/fields/__init__.py:578 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format." msgstr "" "Wprowadź poprawną datę i godzinę w formacie YYYY-MM-DD HH:MM[:ss[.uuuuuu]]." -#: db/models/fields/__init__.py:601 +#: db/models/fields/__init__.py:600 +msgid "Decimal number" +msgstr "Liczba dziesiętna" + +#: db/models/fields/__init__.py:615 msgid "This value must be a decimal number." msgstr "Ta wartość musi być liczbą dziesiętną." +#: db/models/fields/__init__.py:654 +msgid "E-mail address" +msgstr "Adres e-mail" + +#: db/models/fields/__init__.py:665 db/models/fields/files.py:219 +#: db/models/fields/files.py:330 +msgid "File path" +msgstr "Ścieżka do pliku" + #: db/models/fields/__init__.py:686 +msgid "Floating point number" +msgstr "Liczba zmiennoprzecinkowa" + +#: db/models/fields/__init__.py:703 msgid "This value must be a float." msgstr "Ta wartość musi być liczbą rzeczywistą." -#: db/models/fields/__init__.py:746 +#: db/models/fields/__init__.py:752 +msgid "Boolean (Either True, False or None)" +msgstr "Wartość logiczna (True, False, None - prawda, fałsz lub nic)" + +#: db/models/fields/__init__.py:766 msgid "This value must be either None, True or False." msgstr "" "Ta wartość musi być jedną z None (nic), True (prawda) lub False (fałsz)." -#: db/models/fields/__init__.py:849 db/models/fields/__init__.py:863 +#: db/models/fields/__init__.py:834 +msgid "Text" +msgstr "Tekst" + +#: db/models/fields/__init__.py:844 +msgid "Time" +msgstr "Czas" + +#: db/models/fields/__init__.py:875 db/models/fields/__init__.py:889 msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgstr "Proszę wpisać poprawną godzinę w formacie HH:MM[:ss[.uuuuuu]]." -#: db/models/fields/related.py:816 +#: db/models/fields/__init__.py:929 +msgid "XML text" +msgstr "Tekst XML" + +#: db/models/fields/related.py:686 +msgid "Foreign Key (type determined by related field)" +msgstr "Klucz obcy (typ określony przez pole powiązane)" + +#: db/models/fields/related.py:781 +msgid "One-to-one relationship" +msgstr "Powiązanie jeden do jednego" + +#: db/models/fields/related.py:796 +msgid "Many-to-many relationship" +msgstr "Powiązanie wiele do wiele" + +#: db/models/fields/related.py:819 msgid "" "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" "Przytrzymaj wciśnięty klawisz \"Ctrl\" lub \"Command\" na Mac'u aby " "zaznaczyć więcej niż jeden wybór." -#: db/models/fields/related.py:894 +#: db/models/fields/related.py:897 #, python-format msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid_plural "" @@ -3944,86 +4006,86 @@ msgstr[2] "" "Proszę podać poprawne identyfikatory %(self)s. Wartości %(value)r są " "niepoprawne." -#: forms/fields.py:54 +#: forms/fields.py:53 msgid "This field is required." msgstr "To pole jest wymagane." -#: forms/fields.py:55 +#: forms/fields.py:54 msgid "Enter a valid value." msgstr "Wpisz poprawną wartość." -#: forms/fields.py:138 +#: forms/fields.py:137 #, python-format msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." msgstr "" "Upewnij się, że ta wartość ma co najwyżej %(max)d znaków (ma długość %" "(length)d)." -#: forms/fields.py:139 +#: forms/fields.py:138 #, python-format msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." msgstr "" "Upewnij się, że ta wartość ma co najmniej %(min)d znaków (ma długość %" "(length)d)." -#: forms/fields.py:166 +#: forms/fields.py:165 msgid "Enter a whole number." msgstr "Wpisz liczbę całkowitą." -#: forms/fields.py:167 forms/fields.py:196 forms/fields.py:225 +#: forms/fields.py:166 forms/fields.py:195 forms/fields.py:224 #, python-format msgid "Ensure this value is less than or equal to %s." msgstr "Upewnij się, że ta wartość jest mniejsza lub równa %s." -#: forms/fields.py:168 forms/fields.py:197 forms/fields.py:226 +#: forms/fields.py:167 forms/fields.py:196 forms/fields.py:225 #, python-format msgid "Ensure this value is greater than or equal to %s." msgstr "Upewnij się, że ta wartość jest większa lub równa %s." -#: forms/fields.py:195 forms/fields.py:224 +#: forms/fields.py:194 forms/fields.py:223 msgid "Enter a number." msgstr "Wpisz liczbę." -#: forms/fields.py:227 +#: forms/fields.py:226 #, python-format msgid "Ensure that there are no more than %s digits in total." msgstr "Upewnij się, że jest nie więcej niż %s cyfr." -#: forms/fields.py:228 +#: forms/fields.py:227 #, python-format msgid "Ensure that there are no more than %s decimal places." msgstr "Upewnij się, że jest nie więcej niż %s miejsc po przecinku." -#: forms/fields.py:229 +#: forms/fields.py:228 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Upewnij się, że jest nie więcej niż %s miejsc przed przecinkiem." -#: forms/fields.py:288 forms/fields.py:863 +#: forms/fields.py:287 forms/fields.py:862 msgid "Enter a valid date." msgstr "Wpisz poprawną datę." -#: forms/fields.py:322 forms/fields.py:864 +#: forms/fields.py:321 forms/fields.py:863 msgid "Enter a valid time." msgstr "Wpisz poprawną godzinę." -#: forms/fields.py:361 +#: forms/fields.py:360 msgid "Enter a valid date/time." msgstr "Wpisz poprawną datę/godzinę." -#: forms/fields.py:447 +#: forms/fields.py:446 msgid "No file was submitted. Check the encoding type on the form." msgstr "Nie wysłano żadnego pliku. Sprawdź typ kodowania formularza." -#: forms/fields.py:448 +#: forms/fields.py:447 msgid "No file was submitted." msgstr "Żaden plik nie został przesłany." -#: forms/fields.py:449 +#: forms/fields.py:448 msgid "The submitted file is empty." msgstr "Wysłany plik jest pusty." -#: forms/fields.py:450 +#: forms/fields.py:449 #, python-format msgid "" "Ensure this filename has at most %(max)d characters (it has %(length)d)." @@ -4031,7 +4093,7 @@ msgstr "" "Upewnij się, że nazwa tego pliku ma co najwyżej %(max)d znaków (ma długość %" "(length)d)." -#: forms/fields.py:483 +#: forms/fields.py:482 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -4039,29 +4101,29 @@ msgstr "" "Wgraj poprawny plik graficzny. Ten, który został wgrany, nie jest obrazem, " "albo jest uszkodzony." -#: forms/fields.py:544 +#: forms/fields.py:543 msgid "Enter a valid URL." msgstr "Wpisz poprawny URL." -#: forms/fields.py:545 +#: forms/fields.py:544 msgid "This URL appears to be a broken link." msgstr "Ten odnośnik jest nieprawidłowy." -#: forms/fields.py:625 forms/fields.py:703 +#: forms/fields.py:624 forms/fields.py:702 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "" "Wybierz poprawną wartość. %(value)s nie jest jednym z dostępnych wyborów." -#: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003 +#: forms/fields.py:703 forms/fields.py:764 forms/models.py:1005 msgid "Enter a list of values." msgstr "Podaj listę wartości." -#: forms/fields.py:892 +#: forms/fields.py:891 msgid "Enter a valid IPv4 address." msgstr "Wprowadź poprawny adres IPv4." -#: forms/fields.py:902 +#: forms/fields.py:901 msgid "" "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." msgstr "To pole może zawierać jedynie litery, cyfry, podkreślenia i myślniki." @@ -4105,29 +4167,29 @@ msgstr "" msgid "Please correct the duplicate values below." msgstr "Popraw poniższe zduplikowane wartości." -#: forms/models.py:867 +#: forms/models.py:869 msgid "The inline foreign key did not match the parent instance primary key." msgstr "Osadzony klucz obcy nie pasuje do klucza głównego obiektu rodzica." -#: forms/models.py:930 +#: forms/models.py:932 msgid "Select a valid choice. That choice is not one of the available choices." msgstr "Wybierz poprawną wartość. Podana nie jest jednym z dostępnych wyborów." -#: forms/models.py:1004 +#: forms/models.py:1006 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Wybierz poprawną wartość. %s nie jest jednym z dostępnych wyborów." -#: forms/models.py:1006 +#: forms/models.py:1008 #, python-format msgid "\"%s\" is not a valid value for a primary key." msgstr "\"%s\" nie jest poprawną wartością klucza głównego." -#: template/defaultfilters.py:767 +#: template/defaultfilters.py:768 msgid "yes,no,maybe" msgstr "tak,nie,może" -#: template/defaultfilters.py:798 +#: template/defaultfilters.py:799 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" @@ -4135,17 +4197,17 @@ msgstr[0] "%(size)d bajt" msgstr[1] "%(size)d bajty" msgstr[2] "%(size)d bajtów" -#: template/defaultfilters.py:800 +#: template/defaultfilters.py:801 #, python-format msgid "%.1f KB" msgstr "%.1f KB" -#: template/defaultfilters.py:802 +#: template/defaultfilters.py:803 #, python-format msgid "%.1f MB" msgstr "%.1f MB" -#: template/defaultfilters.py:803 +#: template/defaultfilters.py:804 #, python-format msgid "%.1f GB" msgstr "%.1f GB" @@ -4444,3 +4506,6 @@ msgstr "%(verbose_name)s zostało pomyślnie zmienione." #, python-format msgid "The %(verbose_name)s was deleted." msgstr "%(verbose_name)s zostało usunięte." + +#~ msgid "Relation to parent model" +#~ msgstr "Relacja do modelu rodzica" diff --git a/django/conf/locale/ro/LC_MESSAGES/django.mo b/django/conf/locale/ro/LC_MESSAGES/django.mo index c4ca6e660b57..697a18ef2776 100644 Binary files a/django/conf/locale/ro/LC_MESSAGES/django.mo and b/django/conf/locale/ro/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/ro/LC_MESSAGES/django.po b/django/conf/locale/ro/LC_MESSAGES/django.po index cdbe7a49fe01..8f2902f7d2a7 100644 --- a/django/conf/locale/ro/LC_MESSAGES/django.po +++ b/django/conf/locale/ro/LC_MESSAGES/django.po @@ -17,19 +17,19 @@ msgstr "" #: .\conf\global_settings.py:39 msgid "Arabic" -msgstr "Araba" +msgstr "Arabă" #: .\conf\global_settings.py:40 msgid "Bengali" -msgstr "Bengaleza" +msgstr "Bengaleză" #: .\conf\global_settings.py:41 msgid "Bulgarian" -msgstr "Bulgara" +msgstr "Bulgară" #: .\conf\global_settings.py:42 msgid "Catalan" -msgstr "Catalana" +msgstr "Catalană" #: .\conf\global_settings.py:43 msgid "Czech" @@ -37,11 +37,11 @@ msgstr "Cehă" #: .\conf\global_settings.py:44 msgid "Welsh" -msgstr "Galeza" +msgstr "Galeză" #: .\conf\global_settings.py:45 msgid "Danish" -msgstr "Daneza" +msgstr "Daneză" #: .\conf\global_settings.py:46 msgid "German" @@ -49,7 +49,7 @@ msgstr "Germană" #: .\conf\global_settings.py:47 msgid "Greek" -msgstr "Greaca" +msgstr "Greacă" #: .\conf\global_settings.py:48 msgid "English" @@ -61,19 +61,19 @@ msgstr "Spaniolă" #: .\conf\global_settings.py:50 msgid "Argentinean Spanish" -msgstr "Spaniola argentiniana" +msgstr "Spaniolă argentiniană" #: .\conf\global_settings.py:51 msgid "Basque" -msgstr "Basca" +msgstr "Bască" #: .\conf\global_settings.py:52 msgid "Persian" -msgstr "Persana" +msgstr "Persană" #: .\conf\global_settings.py:53 msgid "Finnish" -msgstr "Finlandeza" +msgstr "Finlandeză" #: .\conf\global_settings.py:54 msgid "French" @@ -81,7 +81,7 @@ msgstr "Franceză" #: .\conf\global_settings.py:55 msgid "Irish" -msgstr "Irlandeza" +msgstr "Irlandeză" #: .\conf\global_settings.py:56 msgid "Galician" @@ -89,19 +89,19 @@ msgstr "Galiciană" #: .\conf\global_settings.py:57 msgid "Hungarian" -msgstr "Ungara" +msgstr "Ungară" #: .\conf\global_settings.py:58 msgid "Hebrew" -msgstr "Ebraica" +msgstr "Ebraică" #: .\conf\global_settings.py:59 msgid "Croatian" -msgstr "Croata" +msgstr "Croată" #: .\conf\global_settings.py:60 msgid "Icelandic" -msgstr "Islandeza" +msgstr "Islandeză" #: .\conf\global_settings.py:61 msgid "Italian" @@ -109,19 +109,19 @@ msgstr "Italiană" #: .\conf\global_settings.py:62 msgid "Japanese" -msgstr "Japoneza" +msgstr "Japoneză" #: .\conf\global_settings.py:63 msgid "Georgian" -msgstr "Georgiana" +msgstr "Georgiană" #: .\conf\global_settings.py:64 msgid "Korean" -msgstr "Koreana" +msgstr "Koreană" #: .\conf\global_settings.py:65 msgid "Khmer" -msgstr "Khmera" +msgstr "Khmeră" #: .\conf\global_settings.py:66 msgid "Kannada" @@ -129,15 +129,15 @@ msgstr "Limba kannada" #: .\conf\global_settings.py:67 msgid "Latvian" -msgstr "Letona" +msgstr "Letonă" #: .\conf\global_settings.py:68 msgid "Macedonian" -msgstr "Macedoneana" +msgstr "Macedoneană" #: .\conf\global_settings.py:69 msgid "Dutch" -msgstr "Olandeza" +msgstr "Olandeză" #: .\conf\global_settings.py:70 msgid "Norwegian" @@ -145,19 +145,19 @@ msgstr "Norvegiană" #: .\conf\global_settings.py:71 msgid "Polish" -msgstr "Poloneza" +msgstr "Poloneză" #: .\conf\global_settings.py:72 msgid "Portugese" -msgstr "Portugheza" +msgstr "Portugheză" #: .\conf\global_settings.py:73 msgid "Brazilian Portuguese" -msgstr "Portugheza braziliana" +msgstr "Portugheză braziliană" #: .\conf\global_settings.py:74 msgid "Romanian" -msgstr "Romana" +msgstr "Română" #: .\conf\global_settings.py:75 msgid "Russian" @@ -165,19 +165,19 @@ msgstr "Rusă" #: .\conf\global_settings.py:76 msgid "Slovak" -msgstr "Slovaca" +msgstr "Slovacă" #: .\conf\global_settings.py:77 msgid "Slovenian" -msgstr "Slovena" +msgstr "Slovenă" #: .\conf\global_settings.py:78 msgid "Serbian" -msgstr "Sîrbă" +msgstr "Sârbă" #: .\conf\global_settings.py:79 msgid "Swedish" -msgstr "Suedeza" +msgstr "Suedeză" #: .\conf\global_settings.py:80 msgid "Tamil" @@ -189,11 +189,11 @@ msgstr "Limba telugu" #: .\conf\global_settings.py:82 msgid "Turkish" -msgstr "Turca" +msgstr "Turcă" #: .\conf\global_settings.py:83 msgid "Ukrainian" -msgstr "Ucraineana" +msgstr "Ucraineană" #: .\conf\global_settings.py:84 msgid "Simplified Chinese" @@ -201,7 +201,7 @@ msgstr "Chineză simplificată" #: .\conf\global_settings.py:85 msgid "Traditional Chinese" -msgstr "Chineza traditionala" +msgstr "Chineză tradițională" #: .\contrib\admin\filterspecs.py:44 #, python-format @@ -209,7 +209,7 @@ msgid "" "

        By %s:

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

          Dupa %s:

          \n" +"

          După %s:

          \n" "
            \n" #: .\contrib\admin\filterspecs.py:74 @@ -225,7 +225,7 @@ msgstr "orice data" #: .\contrib\admin\filterspecs.py:114 msgid "Today" -msgstr "Astazi" +msgstr "Astăzi" #: .\contrib\admin\filterspecs.py:117 msgid "Past 7 days" @@ -325,7 +325,7 @@ msgstr "Eroare server (500)" #: .\contrib\admin\templates\admin\500.html.py:10 msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience." -msgstr "A apărut o eroare. Este raportată către administrator via emailşi va fi fixată în scurt timp. Mulţumim pentru înţelegere." +msgstr "A apărut o eroare. Este raportată către administrator via email şi va fi reparată în scurt timp. Mulţumim pentru înţelegere." #: .\contrib\admin\templates\admin\base.html.py:26 msgid "Welcome," @@ -334,7 +334,7 @@ msgstr "Bine ai venit," #: .\contrib\admin\templates\admin\base.html.py:28 #: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:3 msgid "Documentation" -msgstr "Documentatie" +msgstr "Documentație" #: .\contrib\admin\templates\admin\base.html.py:29 #: .\contrib\admin\templates\admin\auth\user\change_password.html.py:14 @@ -367,18 +367,18 @@ msgstr "Istoric" #: .\contrib\admin\templates\admin\change_form.html.py:21 msgid "View on site" -msgstr "Vizualizeaza pe site" +msgstr "Vizualizează pe site" #: .\contrib\admin\templates\admin\change_form.html.py:31 #: .\contrib\admin\templates\admin\auth\user\change_password.html.py:23 msgid "Please correct the error below." msgid_plural "Please correct the errors below." -msgstr[0] "Va rugam sa corectati eroarea de mai jos" -msgstr[1] "Va rugam sa corectati erorile de mai jos" +msgstr[0] "Vă rugăm să corectați eroarea de mai jos" +msgstr[1] "Vă rugăm să corectați erorile de mai jos" #: .\contrib\admin\templates\admin\change_form.html.py:49 msgid "Ordering" -msgstr "Ordonate dupa" +msgstr "Ordonate după" #: .\contrib\admin\templates\admin\change_form.html.py:52 msgid "Order:" @@ -392,12 +392,12 @@ msgstr "Adaugă %(name)s" #: .\contrib\admin\templates\admin\delete_confirmation.html.py:8 #: .\contrib\admin\templates\admin\submit_line.html.py:3 msgid "Delete" -msgstr "Sterge" +msgstr "Șterge" #: .\contrib\admin\templates\admin\delete_confirmation.html.py:13 #, python-format msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:" -msgstr "Ştergînd %(object_name)s '%(escaped_object)s' va avea ca rezultat ştergerea şi a obiectelor ce au legătură, dar contul tău nu are permisiunea de a şterge următoarele tipuri de obiecte:" +msgstr "Ştergerea %(object_name)s '%(escaped_object)s' ar cauza și ştergerea obiectelor asociate, dar contul tău nu are permisiunea de a şterge următoarele tipuri de obiecte:" #: .\contrib\admin\templates\admin\delete_confirmation.html.py:20 #, python-format @@ -406,12 +406,12 @@ msgstr "Eşti sigur că vrei să ştergi %(object_name)s \"%(escaped_object)s\"? #: .\contrib\admin\templates\admin\delete_confirmation.html.py:25 msgid "Yes, I'm sure" -msgstr "Da, sînt sigur" +msgstr "Da, sunt sigur" #: .\contrib\admin\templates\admin\filter.html.py:2 #, python-format msgid " By %(filter_title)s " -msgstr "Dupa %(filter_title)s " +msgstr "După %(filter_title)s " #: .\contrib\admin\templates\admin\filters.html.py:4 msgid "Filter" @@ -420,7 +420,7 @@ msgstr "Filtru" #: .\contrib\admin\templates\admin\index.html.py:17 #, python-format msgid "Models available in the %(name)s application." -msgstr "Modele disponibile in applicatia %(name)s" +msgstr "Modele disponibile în aplicația %(name)s" #: .\contrib\admin\templates\admin\index.html.py:18 #, python-format @@ -437,11 +437,11 @@ msgstr "Nu ai drepturi de editare." #: .\contrib\admin\templates\admin\index.html.py:52 msgid "Recent Actions" -msgstr "Acţiuni Recente" +msgstr "Acţiuni recente" #: .\contrib\admin\templates\admin\index.html.py:53 msgid "My Actions" -msgstr "Acţiunile Mele" +msgstr "Acţiunile mele" #: .\contrib\admin\templates\admin\index.html.py:57 msgid "None available" @@ -449,7 +449,7 @@ msgstr "Indisponibil" #: .\contrib\admin\templates\admin\invalid_setup.html.py:8 msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user." -msgstr "Exista o problema cu baza de date. Verificati daca tabelele necesare din baza de date au fost create si verificati daca baza de date poate fi citita de utilizatorul potrivit." +msgstr "Există o problema cu baza de date. Verificați dacă tabelele necesare din baza de date au fost create și verificați dacă baza de date poate fi citită de utilizatorul potrivit." #: .\contrib\admin\templates\admin\login.html.py:17 #: .\contrib\comments\templates\comments\form.html.py:6 @@ -460,7 +460,7 @@ msgstr "Utilizator:" #: .\contrib\admin\templates\admin\login.html.py:20 #: .\contrib\comments\templates\comments\form.html.py:8 msgid "Password:" -msgstr "Parola:" +msgstr "Parolă:" #: .\contrib\admin\templates\admin\login.html.py:25 #: .\contrib\admin\views\decorators.py:31 @@ -485,11 +485,11 @@ msgstr "N j, Y, P" #: .\contrib\admin\templates\admin\object_history.html.py:35 msgid "This object doesn't have a change history. It probably wasn't added via this admin site." -msgstr "Acest obiect nu are un istoric al schimbărilor. Probabil nu a fost adăugat prinintermediul acestui sit de administrare." +msgstr "Acest obiect nu are un istoric al schimbărilor. Probabil nu a fost adăugat prin intermediul acestui sit de administrare." #: .\contrib\admin\templates\admin\pagination.html.py:10 msgid "Show all" -msgstr "Arata tot/toate" +msgstr "Arată tot/toate" #: .\contrib\admin\templates\admin\search_form.html.py:8 msgid "Go" @@ -509,23 +509,23 @@ msgstr "%(full_result_count)s total" #: .\contrib\admin\templates\admin\submit_line.html.py:4 msgid "Save as new" -msgstr "Salvati ca nou" +msgstr "Salvați ca nou" #: .\contrib\admin\templates\admin\submit_line.html.py:5 msgid "Save and add another" -msgstr "Salvati si adaugati altul" +msgstr "Salvați și adăugați altul" #: .\contrib\admin\templates\admin\submit_line.html.py:6 msgid "Save and continue editing" -msgstr "Salvati si continuati" +msgstr "Salvați și continuați" #: .\contrib\admin\templates\admin\submit_line.html.py:7 msgid "Save" -msgstr "Salveaza" +msgstr "Salvează" #: .\contrib\admin\templates\admin\auth\user\add_form.html.py:6 msgid "First, enter a username and password. Then, you'll be able to edit more user options." -msgstr "Intai introduceti un nume de utilizator si o parola. Apoi veti putea modifica mai multe optiuni de utilizator." +msgstr "Introduceți mai întâi un nume de utilizator și o parolă. Apoi veți putea modifica mai multe opțiuni de utilizator." #: .\contrib\admin\templates\admin\auth\user\add_form.html.py:12 msgid "Username" @@ -534,30 +534,30 @@ msgstr "Utilizator" #: .\contrib\admin\templates\admin\auth\user\add_form.html.py:18 #: .\contrib\admin\templates\admin\auth\user\change_password.html.py:33 msgid "Password" -msgstr "Parola" +msgstr "Parolă" #: .\contrib\admin\templates\admin\auth\user\add_form.html.py:23 #: .\contrib\admin\templates\admin\auth\user\change_password.html.py:38 msgid "Password (again)" -msgstr "Parola (repeta)" +msgstr "Parolă (din nou)" #: .\contrib\admin\templates\admin\auth\user\add_form.html.py:24 #: .\contrib\admin\templates\admin\auth\user\change_password.html.py:39 msgid "Enter the same password as above, for verification." -msgstr "Introduceti parola din nou pentru verificare." +msgstr "Introduceți parola din nou pentru verificare." #: .\contrib\admin\templates\admin\auth\user\change_password.html.py:27 #, python-format msgid "Enter a new password for the user %(username)s." -msgstr "Introduceti o parola noua pentru utilizatorul %(username)s." +msgstr "Introduceți o parolă nouă pentru utilizatorul %(username)s." #: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:3 msgid "Bookmarklets" -msgstr "" +msgstr "Bookmarklet-uri" #: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:4 msgid "Documentation bookmarklets" -msgstr "" +msgstr "Bookmarklet-uri documentație" #: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:8 msgid "" @@ -569,42 +569,49 @@ msgid "" "as \"internal\" (talk to your system administrator if you aren't sure if\n" "your computer is \"internal\").

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

            Pentru a instala bookmarklet-uri, trage link-ul în bara de\n" +"bookmark-uri, sau click dreapta pe link și adaugă la bookmark-uri. Acum poți\n" +"selecta bookmarklet-ul din orice pagina a sitului. Este posibil ca unele din\n" +"aceste bookmarklet-uri sunt accesibile doar de pe un computer desemnat ca\n" +"\"intern\" (vorbește cu administratorul tău de sistem dacă nu ești sigur că\n" +"al tău este \"intern\").

            \n" #: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:18 msgid "Documentation for this page" -msgstr "Documentatie pentru aceasta pagina" +msgstr "Documentație pentru această pagină" #: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:19 msgid "Jumps you from any page to the documentation for the view that generates that page." -msgstr "Te trimite de la orice pagina la documentatia pentru view-ul care genereaza acea pagina." +msgstr "Te trimite de la orice pagină la documentația pentru view-ul care generează acea pagină." #: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:21 msgid "Show object ID" -msgstr "Arata ID-ul obiectului" +msgstr "Arată ID-ul obiectului" #: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:22 msgid "Shows the content-type and unique ID for pages that represent a single object." -msgstr "Arata tipul de continut si ID-ul unic pentru paginile care reprezinta un singur obiect." +msgstr "Arată tipul de conținut și ID-ul unic pentru paginile ce reprezintă un singur obiect." #: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:24 msgid "Edit this object (current window)" -msgstr "Modifica acest obiect (in aceasta fereastra)" +msgstr "Modifică acest obiect (în fereastra curentă)" #: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:25 msgid "Jumps to the admin page for pages that represent a single object." -msgstr "Sare la pagina de administrare pentru pagini care reprezinta un singur obiect." +msgstr "Sare la pagina de administrare pentru pagini ce reprezintă un singur obiect." #: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:27 msgid "Edit this object (new window)" -msgstr "Modifica acest obiect (intr-o fereastra noua)" +msgstr "Modifică acest obiect (într-o fereastra nouă)" #: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:28 msgid "As above, but opens the admin page in a new window." -msgstr "La fel ca deasupra, dar deschide pagina de administrare intr-o fereastra noua" +msgstr "La fel ca mai sus, dar deschide pagina de administrare într-o fereastră nouă" #: .\contrib\admin\templates\registration\logged_out.html.py:8 msgid "Thanks for spending some quality time with the Web site today." -msgstr "Mulţumesc pentru petrecerea folositoare a timpului cu saitul astăzi." +msgstr "Mulţumesc pentru petrecerea folositoare a timpului cu situl astăzi." #: .\contrib\admin\templates\registration\logged_out.html.py:10 msgid "Log in again" @@ -628,7 +635,7 @@ msgstr "Parola a fost schimbată." #: .\contrib\admin\templates\registration\password_change_form.html.py:11 msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." -msgstr "Introdu te rog vechea parolă, pentru motive de siguranţă, şi apoi tastează noua parolă de două ori aşa încît putem verifica dacă ai tastat corect." +msgstr "Introdu te rog vechea parolă, pentru motive de siguranţă, şi apoi tastează noua parolă de două ori pentru a verifica dacă ai tastat corect." #: .\contrib\admin\templates\registration\password_change_form.html.py:16 msgid "Old password:" @@ -660,7 +667,7 @@ msgstr "Parola resetată cu succes" #: .\contrib\admin\templates\registration\password_reset_done.html.py:12 msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly." -msgstr "Am trimis o nouă parolă prin email la adresa furnizată. Ar trebuisă o primeşti în scurt timp." +msgstr "Am trimis o nouă parolă prin email la adresa furnizată. Ar trebui să o primeşti în scurt timp." #: .\contrib\admin\templates\registration\password_reset_email.html.py:2 msgid "You're receiving this e-mail because you requested a password reset" @@ -678,15 +685,15 @@ msgstr "Noua ta parolă este: %(new_password)s" #: .\contrib\admin\templates\registration\password_reset_email.html.py:7 msgid "Feel free to change this password by going to this page:" -msgstr "Poţi schmiba această parolă vizitînd această pagină:" +msgstr "Poţi schmiba această parolă vizitând această pagină:" #: .\contrib\admin\templates\registration\password_reset_email.html.py:11 msgid "Your username, in case you've forgotten:" -msgstr "Numele tău utilizator, în caz că ai uitat:" +msgstr "Numele tău de utilizator, în caz că ai uitat:" #: .\contrib\admin\templates\registration\password_reset_email.html.py:13 msgid "Thanks for using our site!" -msgstr "Mulţumesc pentru folosirea saitului nostru!" +msgstr "Mulţumesc pentru folosirea sitului nostru!" #: .\contrib\admin\templates\registration\password_reset_email.html.py:15 #, python-format @@ -734,7 +741,7 @@ msgstr "%(name)s \"%(obj)s\" a fost inserat cu succes." #: .\contrib\admin\views\main.py:271 #: .\contrib\admin\views\main.py:356 msgid "You may edit it again below." -msgstr "Va puteti edita datele din nou mai jos." +msgstr "Vă puteți edita datele din nou mai jos." #: .\contrib\admin\views\auth.py:31 msgid "Add user" @@ -752,24 +759,24 @@ msgstr "Schimbă parola: %s" #: .\contrib\admin\views\decorators.py:17 #: .\contrib\auth\forms.py:60 msgid "Please enter a correct username and password. Note that both fields are case-sensitive." -msgstr "Va rugam sa introduceti username-ul si parola corecta. Aveti grija deoarececasutele sunt case sensitive." +msgstr "Va rugăm să introduceți numele de utilizator și parola corecte. Aveți grijă deoarece căsuțele sunt case sensitive." #: .\contrib\admin\views\decorators.py:69 msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved." -msgstr "Va rugam sa va inregistrati din nou, deoarece sesiunea a expirat. Nu va faceti griji datele au fost salvate." +msgstr "Vă rugăm să vă înregistrați din nou, deoarece sesiunea a expirat. Nu vă faceti griji: datele au fost salvate." #: .\contrib\admin\views\decorators.py:76 msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again." -msgstr "Se pare ca browserul dumneavostra nu este configurat sa accepte cookies. Va rugam sa va setati browserul sa accepte cookies, dati un reload la pagina si incercati din nou." +msgstr "Se pare că browserul dumneavostră nu este configurat să accepte cookies. Vă rugăm să vă setați browserul să accepte cookies, dați un reload la pagină și încercați din nou." #: .\contrib\admin\views\decorators.py:90 msgid "Usernames cannot contain the '@' character." -msgstr "Username-ul nu are voie sa contina caracterul '@'." +msgstr "Username-ul nu are voie să conțină caracterul '@'." #: .\contrib\admin\views\decorators.py:92 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." -msgstr "Adresa ta de e-mail nu este numele tau de utilizator. Incearca '%s' in schimb." +msgstr "Adresa ta de e-mail nu este numele tău de utilizator. Incearcă '%s' în schimb." #: .\contrib\admin\views\doc.py:48 #: .\contrib\admin\views\doc.py:50 @@ -797,7 +804,7 @@ msgstr "Applicatia %r inexistenta" #: .\contrib\admin\views\doc.py:173 #, python-format msgid "Model %(name)r not found in app %(label)r" -msgstr "Modelul %(name)r nu a fost gasit in aplicatia %(label)r" +msgstr "Modelul %(name)r nu a fost gasit în aplicatia %(label)r" #: .\contrib\admin\views\doc.py:185 #, python-format @@ -824,12 +831,12 @@ msgstr "toate %s" #: .\contrib\admin\views\doc.py:226 #, python-format msgid "number of %s" -msgstr "numarul de %s" +msgstr "numărul de %s" #: .\contrib\admin\views\doc.py:231 #, python-format msgid "Fields on %s objects" -msgstr "Campuri in %s obiecte" +msgstr "Campuri în %s obiecte" #: .\contrib\admin\views\doc.py:293 #: .\contrib\admin\views\doc.py:304 @@ -852,7 +859,7 @@ msgstr "Sir de caractere (pana la %(max_length)s caractere)" #: .\contrib\admin\views\doc.py:296 msgid "Comma-separated integers" -msgstr "Numere intregi separate de virgule" +msgstr "Numere întregi separate de virgule" #: .\contrib\admin\views\doc.py:297 msgid "Date (without time)" @@ -864,7 +871,7 @@ msgstr "Data (cu ora)" #: .\contrib\admin\views\doc.py:299 msgid "Decimal number" -msgstr "Numar zecimal" +msgstr "Număr zecimal" #: .\contrib\admin\views\doc.py:300 msgid "E-mail address" @@ -878,7 +885,7 @@ msgstr "Calea fisierului" #: .\contrib\admin\views\doc.py:303 msgid "Floating point number" -msgstr "Numar cu virgula" +msgstr "Număr cu virgula" #: .\contrib\admin\views\doc.py:307 #: .\contrib\comments\models.py:89 @@ -895,7 +902,7 @@ msgstr "Relatia cu un model parinte" #: .\contrib\admin\views\doc.py:311 msgid "Phone number" -msgstr "Numar de telefon" +msgstr "Număr de telefon" #: .\contrib\admin\views\doc.py:316 msgid "Text" @@ -931,7 +938,7 @@ msgstr "Administrare site" #: .\contrib\admin\views\main.py:365 #, python-format msgid "You may add another %s below." -msgstr "Mai puteti adauga un alt %s mai jos." +msgstr "Mai puteți adauga un alt %s mai jos." #: .\contrib\admin\views\main.py:298 #, python-format @@ -941,7 +948,7 @@ msgstr "Adaugă %s" #: .\contrib\admin\views\main.py:344 #, python-format msgid "Added %s." -msgstr "Adaugat %s." +msgstr "Am adăugat %s." #: .\contrib\admin\views\main.py:344 #: .\contrib\admin\views\main.py:346 @@ -949,21 +956,21 @@ msgstr "Adaugat %s." #: .\core\validators.py:283 #: .\db\models\manipulators.py:309 msgid "and" -msgstr "si" +msgstr "și" #: .\contrib\admin\views\main.py:346 #, python-format msgid "Changed %s." -msgstr "Schimbă %s." +msgstr "Am schimbat %s." #: .\contrib\admin\views\main.py:348 #, python-format msgid "Deleted %s." -msgstr "Am sters %s." +msgstr "Am șters %s." #: .\contrib\admin\views\main.py:351 msgid "No fields changed." -msgstr "Nu s-a facut nicio schimbare." +msgstr "Nici-un câmp nu a fost schimbat." #: .\contrib\admin\views\main.py:354 #, python-format @@ -973,7 +980,7 @@ msgstr "%(name)s \"%(obj)s\" au fost modificate cu succes." #: .\contrib\admin\views\main.py:362 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." -msgstr "%(name)s \"%(obj)s\" au fost adaugate cu succes. Le puteti edita mai jos." +msgstr "%(name)s \"%(obj)s\" au fost adăugate cu succes. Le puteți edita mai jos." #: .\contrib\admin\views\main.py:400 #, python-format @@ -983,45 +990,45 @@ msgstr "Schimbă %s" #: .\contrib\admin\views\main.py:487 #, python-format msgid "One or more %(fieldname)s in %(name)s: %(obj)s" -msgstr "Unul sau mai multe %(fieldname)s in %(name)s: %(obj)s" +msgstr "Unul sau mai multe %(fieldname)s în %(name)s: %(obj)s" #: .\contrib\admin\views\main.py:492 #, python-format msgid "One or more %(fieldname)s in %(name)s:" -msgstr "Unul sau mai multe %(fieldname)s in %(name)s:" +msgstr "Unul sau mai multe %(fieldname)s în %(name)s:" #: .\contrib\admin\views\main.py:524 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." -msgstr "%(name)s \"%(obj)s\" au fost sterse cu succes." +msgstr "%(name)s \"%(obj)s\" au fost șterse cu succes." #: .\contrib\admin\views\main.py:527 msgid "Are you sure?" -msgstr "Sunteti sigur?" +msgstr "Sunteți sigur?" #: .\contrib\admin\views\main.py:549 #, python-format msgid "Change history: %s" -msgstr "Schimbari facute: %s" +msgstr "Schimbări făcute: %s" #: .\contrib\admin\views\main.py:583 #, python-format msgid "Select %s" -msgstr "Selecteaza %s" +msgstr "Selectează %s" #: .\contrib\admin\views\main.py:583 #, python-format msgid "Select %s to change" -msgstr "Selecteaza %s pentru schimbare" +msgstr "Selectează %s pentru schimbare" #: .\contrib\admin\views\main.py:784 msgid "Database error" -msgstr "Erroare de baza de date" +msgstr "Eroare de bază de date" #: .\contrib\auth\forms.py:17 #: .\contrib\auth\forms.py:138 msgid "The two password fields didn't match." -msgstr "Cele doua campuri pentru parole nu au coincis." +msgstr "Cele doua câmpuri pentru parole nu au coincis." #: .\contrib\auth\forms.py:25 msgid "A user with that username already exists." @@ -1029,7 +1036,7 @@ msgstr "Un utilizator cu acest nume de utilizator exista deja," #: .\contrib\auth\forms.py:53 msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in." -msgstr "Se pare ca browserul dumneavoastra nu suporta cookies. Aveti nevoie de un browser care suporta cookies ca sa va logati." +msgstr "Se pare că browserul dumneavoastra nu suporta cookies. Aveti nevoie de un browser care suporta cookies ca să vă logati." #: .\contrib\auth\forms.py:62 msgid "This account is inactive." @@ -1037,20 +1044,20 @@ msgstr "Acest cont este inactiv." #: .\contrib\auth\forms.py:84 msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?" -msgstr "Acea adresa de e-mail nu are un nume de utilizator asociat. Sunteti sigur ca v-ati inregistrat?" +msgstr "Acea adresa de e-mail nu are un nume de utilizator asociat. Sunteți sigur că v-ați înregistrat?" #: .\contrib\auth\forms.py:107 #, python-format msgid "Password reset on %s" -msgstr "Parola resetata pe %s" +msgstr "Parola resetată pe %s" #: .\contrib\auth\forms.py:117 msgid "The two 'new password' fields didn't match." -msgstr "Cele doua campuri 'parola noua' nu au coincis." +msgstr "Cele două câmpuri 'parola noua' nu au coincis." #: .\contrib\auth\forms.py:124 msgid "Your old password was entered incorrectly. Please enter it again." -msgstr "Parola veche a dumneavoastra a fost introdusa incorect. Va rugam introduceti-o din nou." +msgstr "Parola dumneavoastră veche a fost introdusă incorect. Vă rugăm să o introduceți din nou." #: .\contrib\auth\models.py:73 #: .\contrib\auth\models.py:93 @@ -1085,7 +1092,7 @@ msgstr "nume utilizator" #: .\contrib\auth\models.py:131 msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)." -msgstr "Necesar. 30 de caractere sau mai putin. Doar caractere alfanumerice (litere, cifre, liniute de subliniere)." +msgstr "Necesar. 30 de caractere sau mai puțin. Doar caractere alfanumerice (litere, cifre, liniuțe de subliniere)." #: .\contrib\auth\models.py:132 msgid "first name" @@ -1097,15 +1104,15 @@ msgstr "Nume" #: .\contrib\auth\models.py:134 msgid "e-mail address" -msgstr "adresa email" +msgstr "adresă email" #: .\contrib\auth\models.py:135 msgid "password" -msgstr "parola" +msgstr "parolă" #: .\contrib\auth\models.py:135 msgid "Use '[algo]$[salt]$[hexdigest]' or use the change password form." -msgstr "Folositi '[algo]$[salt]$[hexdigest]' sau folositi formularul de schimbare a parolei." +msgstr "Folosiți '[algo]$[salt]$[hexdigest]' sau folosiți formularul de schimbare a parolei." #: .\contrib\auth\models.py:136 msgid "staff status" @@ -1113,7 +1120,7 @@ msgstr "stare staff" #: .\contrib\auth\models.py:136 msgid "Designates whether the user can log into this admin site." -msgstr "Decide cînd utilizatorul se poate loga în acest sit de adminstrare." +msgstr "Decide când utilizatorul se poate loga în acest sit de adminstrare." #: .\contrib\auth\models.py:137 msgid "active" @@ -1121,7 +1128,7 @@ msgstr "activ" #: .\contrib\auth\models.py:137 msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." -msgstr "Indica daca acest user va fi tratat ca activ sau nu. Deselecteaza-l in loc de a sterge conturi." +msgstr "Indică dacă acest utilizator va fi tratat ca activ sau nu. Deselectează-l în loc de a șterge conturi." #: .\contrib\auth\models.py:138 msgid "superuser status" @@ -1129,7 +1136,7 @@ msgstr "stare superutilizator" #: .\contrib\auth\models.py:138 msgid "Designates that this user has all permissions without explicitly assigning them." -msgstr "Indica daca acest user are toate permisiile fara a le selecta explicit." +msgstr "Indică daca acest user are toate permisiunile fără a le selecta explicit." #: .\contrib\auth\models.py:139 msgid "last login" @@ -1182,7 +1189,7 @@ msgstr "Deautentificat" #: .\contrib\comments\models.py:71 #: .\contrib\comments\models.py:176 msgid "object ID" -msgstr "id obiect" +msgstr "ID obiect" #: .\contrib\comments\models.py:72 msgid "headline" @@ -1233,7 +1240,7 @@ msgstr "este rating valid" #: .\contrib\comments\models.py:87 #: .\contrib\comments\models.py:179 msgid "date/time submitted" -msgstr "data/ora crearii" +msgstr "data/ora creării" #: .\contrib\comments\models.py:88 #: .\contrib\comments\models.py:180 @@ -1242,11 +1249,11 @@ msgstr "public" #: .\contrib\comments\models.py:90 msgid "is removed" -msgstr "sters" +msgstr "șters" #: .\contrib\comments\models.py:90 msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead." -msgstr "Bifeaza aceasta casuta daca comentariul nu este adecvat. Un mesaj de tipul \"Acest comentariu a fost sters\" va fi afisat in schimb." +msgstr "Bifează această casuța dacă comentariul nu este adecvat. Un mesaj de tipul \"Acest comentariu a fost șters\" va fi afișat în schimb." #: .\contrib\comments\models.py:96 msgid "comments" @@ -1255,7 +1262,7 @@ msgstr "comentarii" #: .\contrib\comments\models.py:140 #: .\contrib\comments\models.py:222 msgid "Content object" -msgstr "Obiect-referinta" +msgstr "Obiect comentariu" #: .\contrib\comments\models.py:168 #, python-format @@ -1282,15 +1289,15 @@ msgstr "adresa ip" #: .\contrib\comments\models.py:183 msgid "approved by staff" -msgstr "aprobat de echipa" +msgstr "aprobat de echipă" #: .\contrib\comments\models.py:187 msgid "free comment" -msgstr "permite comentariu fara inregistrare" +msgstr "permite comentariu fara înregistrare" #: .\contrib\comments\models.py:188 msgid "free comments" -msgstr "permite comentarii fara inregistrare" +msgstr "permite comentarii fara înregistrare" #: .\contrib\comments\models.py:250 msgid "score" @@ -1313,7 +1320,7 @@ msgstr "punctaje karmice" #: .\contrib\comments\models.py:260 #, fuzzy, python-format msgid "%(score)d rating by %(user)s" -msgstr "Punctaj %(score)d atribuit de catre %(user)s" +msgstr "Punctaj %(score)d atribuit de către %(user)s" #: .\contrib\comments\models.py:277 #, python-format @@ -1328,17 +1335,17 @@ msgstr "" #: .\contrib\comments\models.py:285 msgid "flag date" -msgstr "data marcarii" +msgstr "data marcării" #: .\contrib\comments\models.py:289 #, fuzzy msgid "user flag" -msgstr "stegulet de utilizator" +msgstr "steguleț de utilizator" #: .\contrib\comments\models.py:290 #, fuzzy msgid "user flags" -msgstr "stegulete de utilizatori" +msgstr "stegulețe de utilizatori" #: .\contrib\comments\models.py:294 #, python-format @@ -1347,20 +1354,20 @@ msgstr "Marcajul lui %r" #: .\contrib\comments\models.py:300 msgid "deletion date" -msgstr "data stergerii" +msgstr "data ștergerii" #: .\contrib\comments\models.py:303 msgid "moderator deletion" -msgstr "sters de moderator" +msgstr "șters de moderator" #: .\contrib\comments\models.py:304 msgid "moderator deletions" -msgstr "sterse de moderator" +msgstr "șterse de moderator" #: .\contrib\comments\models.py:308 #, python-format msgid "Moderator deletion by %r" -msgstr "Sters de moderatorul %r" +msgstr "Șters de moderatorul %r" #: .\contrib\comments\templates\comments\form.html.py:8 msgid "Forgotten your password?" @@ -1378,11 +1385,11 @@ msgstr "Necesar" #: .\contrib\comments\templates\comments\form.html.py:12 #: .\contrib\comments\templates\comments\form.html.py:23 msgid "Optional" -msgstr "Optional" +msgstr "Opțional" #: .\contrib\comments\templates\comments\form.html.py:23 msgid "Post a photo" -msgstr "Adauga o poza" +msgstr "Adaugă o poză" #: .\contrib\comments\templates\comments\form.html.py:28 #: .\contrib\comments\templates\comments\freeform.html.py:5 @@ -1396,11 +1403,11 @@ msgstr "Previzualizare comentariu" #: .\contrib\comments\templates\comments\freeform.html.py:4 msgid "Your name:" -msgstr "numele dumneavoastra" +msgstr "numele dumneavoastră" #: .\contrib\comments\views\comments.py:28 msgid "This rating is required because you've entered at least one other rating." -msgstr "Acest rating este necesar deoarece ai introdus cel putin un alt rating." +msgstr "Acest rating este necesar deoarece ai introdus cel puțin un alt rating." #: .\contrib\comments\views\comments.py:112 #, python-format @@ -1413,11 +1420,11 @@ msgid_plural "" "\n" "%(text)s" msgstr[0] "" -"Acest comentariu a fost postat de un utilizator care a postat mai putin de %(count)s comentariu:\n" +"Acest comentariu a fost postat de un utilizator care a postat mai puțin de %(count)s comentariu:\n" "\n" "%(text)s" msgstr[1] "" -"Acest comentariu a fost postat de un utilizator care a postat mai putin de %(count)s comentarii:\n" +"Acest comentariu a fost postat de un utilizator care a postat mai puțin de %(count)s comentarii:\n" "\n" "%(text)s" @@ -1435,27 +1442,27 @@ msgstr "" #: .\contrib\comments\views\comments.py:190 #: .\contrib\comments\views\comments.py:283 msgid "Only POSTs are allowed" -msgstr "Doar postarile sunt permise" +msgstr "Doar postările sunt permise" #: .\contrib\comments\views\comments.py:194 #: .\contrib\comments\views\comments.py:287 msgid "One or more of the required fields wasn't submitted" -msgstr "Unul sau mai multe campuri necesare nu a fost completat" +msgstr "Unul sau mai multe câmpuri necesare nu au fost completate" #: .\contrib\comments\views\comments.py:198 #: .\contrib\comments\views\comments.py:289 msgid "Somebody tampered with the comment form (security violation)" -msgstr "Cineva a modificat formularul de comentarii (incalcare a securitatii)" +msgstr "Cineva a modificat formularul de comentarii (încălcare a securității)" #: .\contrib\comments\views\comments.py:208 #: .\contrib\comments\views\comments.py:295 msgid "The comment form had an invalid 'target' parameter -- the object ID was invalid" -msgstr "Formularul de comentariu a avut un parametru 'tinta' invalid -- ID-ul obiectului a fost invalid" +msgstr "Formularul de comentariu a avut un parametru 'țintă' invalid -- ID-ul obiectului a fost invalid" #: .\contrib\comments\views\comments.py:259 #: .\contrib\comments\views\comments.py:324 msgid "The comment form didn't provide either 'preview' or 'post'" -msgstr "Formularul de comentariu nu specifica nici 'previzualizare' nici 'postare'" +msgstr "Formularul de comentariu nu specifică nici 'previzualizare' nici 'postare'" #: .\contrib\comments\views\karma.py:21 msgid "Anonymous users cannot vote" @@ -1467,12 +1474,12 @@ msgstr "Comentariu cu ID invalid" #: .\contrib\comments\views\karma.py:27 msgid "No voting for yourself" -msgstr "Nu poti vota pentru tine" +msgstr "Nu poți vota pentru tine" #: .\contrib\contenttypes\models.py:67 #, fuzzy msgid "python model class name" -msgstr "nume clasa model python" +msgstr "nume clasă model python" #: .\contrib\contenttypes\models.py:71 msgid "content type" @@ -1480,11 +1487,11 @@ msgstr "tip conţinut" #: .\contrib\contenttypes\models.py:72 msgid "content types" -msgstr "tipuri conţinute" +msgstr "tipuri conţinut" #: .\contrib\flatpages\models.py:9 msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes." -msgstr "Exemplu: '/about/contact'. Asiguraţi-vă că aveţi slash-uri la început şi la sfîrşit." +msgstr "Exemplu: '/despre/contact'. Asiguraţi-vă că aveţi slash-uri la început şi la sfârşit." #: .\contrib\flatpages\models.py:10 msgid "title" @@ -1524,7 +1531,7 @@ msgstr "pagini plate" #: .\contrib\flatpages\models.py:27 msgid "Advanced options" -msgstr "Optiuni avansate" +msgstr "Opțiuni avansate" #: .\contrib\humanize\templatetags\humanize.py:19 msgid "th" @@ -1577,7 +1584,7 @@ msgstr "trei" #: .\contrib\humanize\templatetags\humanize.py:73 msgid "four" -msgstr "patry" +msgstr "patru" #: .\contrib\humanize\templatetags\humanize.py:73 msgid "five" @@ -1585,11 +1592,11 @@ msgstr "cinci" #: .\contrib\humanize\templatetags\humanize.py:73 msgid "six" -msgstr "sase" +msgstr "șase" #: .\contrib\humanize\templatetags\humanize.py:73 msgid "seven" -msgstr "sapte" +msgstr "șapte" #: .\contrib\humanize\templatetags\humanize.py:73 msgid "eight" @@ -1597,15 +1604,15 @@ msgstr "opt" #: .\contrib\humanize\templatetags\humanize.py:73 msgid "nine" -msgstr "noua" +msgstr "nouă" #: .\contrib\humanize\templatetags\humanize.py:93 msgid "today" -msgstr "astazi" +msgstr "astăzi" #: .\contrib\humanize\templatetags\humanize.py:95 msgid "tomorrow" -msgstr "maine" +msgstr "mâine" #: .\contrib\humanize\templatetags\humanize.py:97 msgid "yesterday" @@ -1613,7 +1620,7 @@ msgstr "ieri" #: .\contrib\localflavor\ar\forms.py:27 msgid "Enter a postal code in the format NNNN or ANNNNAAA." -msgstr "Introduceti un cod postal valid de forma NNNN sau ANNNNAAA." +msgstr "Introduceți un cod poștal valid de forma NNNN sau ANNNNAAA." #: .\contrib\localflavor\ar\forms.py:49 #: .\contrib\localflavor\br\forms.py:96 @@ -1621,15 +1628,15 @@ msgstr "Introduceti un cod postal valid de forma NNNN sau ANNNNAAA." #: .\contrib\localflavor\pe\forms.py:23 #: .\contrib\localflavor\pe\forms.py:51 msgid "This field requires only numbers." -msgstr "Acest camp accepta doar numere." +msgstr "Acest câmp acceptă doar numere." #: .\contrib\localflavor\ar\forms.py:50 msgid "This field requires 7 or 8 digits." -msgstr "Acest camp are nevoie de 7 sau 8 cifre." +msgstr "Acest câmp are nevoie de 7 sau 8 cifre." #: .\contrib\localflavor\ar\forms.py:79 msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." -msgstr "Introduceti un CUIT valid de forma XX-XXXXXXXX-X sau XXXXXXXXXXXX." +msgstr "Introduceți un CUIT valid de forma XX-XXXXXXXX-X sau XXXXXXXXXXXX." #: .\contrib\localflavor\ar\forms.py:80 msgid "Invalid CUIT." @@ -1637,43 +1644,43 @@ msgstr "CUIT invalid." #: .\contrib\localflavor\au\forms.py:16 msgid "Enter a 4 digit post code." -msgstr "Introduceti un cod postal de 4 cifre." +msgstr "Introduceți un cod poștal de 4 cifre." #: .\contrib\localflavor\br\forms.py:21 msgid "Enter a zip code in the format XXXXX-XXX." -msgstr "Adaugati un cod postal de forma XXXXX-XXX." +msgstr "Adăugați un cod poștal de forma XXXXX-XXX." #: .\contrib\localflavor\br\forms.py:30 msgid "Phone numbers must be in XX-XXXX-XXXX format." -msgstr "Numerele de telefon trebuie să fie in format XXX-XXX-XXXX." +msgstr "Numerele de telefon trebuie să fie în format XXX-XXX-XXXX." #: .\contrib\localflavor\br\forms.py:58 msgid "Select a valid brazilian state. That state is not one of the available states." -msgstr "Selectati un stat brazilian valid. Acest stat nu se afla printre statele disponibile." +msgstr "Selectați un stat brazilian valid. Acest stat nu se află printre statele disponibile." #: .\contrib\localflavor\br\forms.py:94 msgid "Invalid CPF number." -msgstr "Numar CPF invalid." +msgstr "Număr CPF invalid." #: .\contrib\localflavor\br\forms.py:95 msgid "This field requires at most 11 digits or 14 characters." -msgstr "Acest camp are nevoie de cel mult 11 cifre sau 14 caractere." +msgstr "Acest câmp are nevoie de cel mult 11 cifre sau 14 caractere." #: .\contrib\localflavor\br\forms.py:134 msgid "Invalid CNPJ number." -msgstr "Numar CNPJ invalid." +msgstr "Număr CNPJ invalid." #: .\contrib\localflavor\br\forms.py:136 msgid "This field requires at least 14 digits" -msgstr "Acest camd are nevoie de cel putin 14 cifre." +msgstr "Acest câmp are nevoie de cel puțin 14 cifre." #: .\contrib\localflavor\ca\forms.py:17 msgid "Enter a postal code in the format XXX XXX." -msgstr "Introduceti un cod postal de forma XXX XXX." +msgstr "Introduceți un cod poștal de forma XXX XXX." #: .\contrib\localflavor\ca\forms.py:88 msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "Introduceti un numar canadia de asigurare sociala valid de forma XXX-XXX-XXX." +msgstr "Introduceți un număr canadian de asigurare socială valid de forma XXX-XXX-XXX." #: .\contrib\localflavor\ch\ch_states.py:5 msgid "Aargau" @@ -1782,19 +1789,19 @@ msgstr "Zurich" #: .\contrib\localflavor\ch\forms.py:16 #: .\contrib\localflavor\no\forms.py:12 msgid "Enter a zip code in the format XXXX." -msgstr "Introduceti un cod postal de forma XXXX." +msgstr "Introduceți un cod poștal de forma XXXX." #: .\contrib\localflavor\ch\forms.py:64 msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format." -msgstr "Introduceti un numar elvetian de identitate sau pasaport, valid, de forma X1234567<0 sau 1234567890." +msgstr "Introduceți un număr elvetian de identitate sau pașaport, valid, de forma X1234567<0 sau 1234567890." #: .\contrib\localflavor\cl\forms.py:29 msgid "Enter a valid Chilean RUT." -msgstr "Introduceti RUT chilian valid." +msgstr "Introduceți RUT chilian valid." #: .\contrib\localflavor\cl\forms.py:30 msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." -msgstr "Introduceti un RUT chilian valid. Formatul este XX.XXX.XXX-X." +msgstr "Introduceți un RUT chilian valid. Formatul este XX.XXX.XXX-X." #: .\contrib\localflavor\cl\forms.py:31 msgid "The Chilean RUT is not valid." @@ -1868,11 +1875,11 @@ msgstr "Turingia" #: .\contrib\localflavor\fi\forms.py:12 #: .\contrib\localflavor\fr\forms.py:15 msgid "Enter a zip code in the format XXXXX." -msgstr "Introduceti un cod postal de forma XXXXX." +msgstr "Introduceți un cod poștal de forma XXXXX." #: .\contrib\localflavor\de\forms.py:41 msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format." -msgstr "Introduceti un numar german de identitate valid, de forma XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." +msgstr "Introduceți un număr german de identitate valid, de forma XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." #: .\contrib\localflavor\es\es_provinces.py:5 msgid "Arava" @@ -2115,7 +2122,7 @@ msgstr "Castile-La Mancha" #: .\contrib\localflavor\es\es_regions.py:13 msgid "Castile and Leon" -msgstr "Castilia si Leon" +msgstr "Castilia și Leon" #: .\contrib\localflavor\es\es_regions.py:14 msgid "Catalonia" @@ -2135,7 +2142,7 @@ msgstr "Regiunea Murcia" #: .\contrib\localflavor\es\es_regions.py:20 msgid "Foral Community of Navarre" -msgstr "Comunitatea Forala Navara" +msgstr "Comunitatea Forală Navara" #: .\contrib\localflavor\es\es_regions.py:21 msgid "Valencian Community" @@ -2143,11 +2150,11 @@ msgstr "Comunitatea Valencia" #: .\contrib\localflavor\es\forms.py:19 msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "Introduceti un cod postal valid in intervalul si de forma 01XXX - 52XXX." +msgstr "Introduceți un cod poștal valid în intervalul și de forma 01XXX - 52XXX." #: .\contrib\localflavor\es\forms.py:39 msgid "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX." -msgstr "Introduceti un numa de telefon valid intr-unul dintre formatele 6XXXXXXXX, 8XXXXXXXX sau 9XXXXXXXX." +msgstr "Introduceți un număr de telefon valid într-unul dintre formatele 6XXXXXXXX, 8XXXXXXXX sau 9XXXXXXXX." #: .\contrib\localflavor\es\forms.py:66 msgid "Please enter a valid NIF, NIE, or CIF." @@ -2155,59 +2162,59 @@ msgstr "Introduceţi vă rog un NIF, NIE sau CIF valid." #: .\contrib\localflavor\es\forms.py:67 msgid "Please enter a valid NIF or NIE." -msgstr "Introduceti va rog un NIF sau NIE valid." +msgstr "Introduceți vă rog un NIF sau NIE valid." #: .\contrib\localflavor\es\forms.py:68 msgid "Invalid checksum for NIF." -msgstr "Suma de control invalda pentru NIF." +msgstr "Sumă de control invalidă pentru NIF." #: .\contrib\localflavor\es\forms.py:69 msgid "Invalid checksum for NIE." -msgstr "Suma de control invalida pentru NIE." +msgstr "Sumă de control invalidă pentru NIE." #: .\contrib\localflavor\es\forms.py:70 msgid "Invalid checksum for CIF." -msgstr "Suma de control invalida pentru CIF." +msgstr "Sumă de control invalidă pentru CIF." #: .\contrib\localflavor\es\forms.py:142 msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "Introduceti un numar de cont bancar valid de forma XXXX-XXXX-XX-XXXXXXXXXX." +msgstr "Introduceți un număr de cont bancar valid de forma XXXX-XXXX-XX-XXXXXXXXXX." #: .\contrib\localflavor\es\forms.py:143 msgid "Invalid checksum for bank account number." -msgstr "Suma de control invalida pentru numarul de cont bancar." +msgstr "Sumă de control invalidă pentru numărul de cont bancar." #: .\contrib\localflavor\fi\forms.py:28 msgid "Enter a valid Finnish social security number." -msgstr "Introduceti un numar finlandez de securitate sociala valid." +msgstr "Introduceți un număr finlandez de securitate socială valid." #: .\contrib\localflavor\in_\forms.py:14 msgid "Enter a zip code in the format XXXXXXX." -msgstr "Introduceti un cod postal de forma XXXXXXX." +msgstr "Introduceți un cod poștal de forma XXXXXXX." #: .\contrib\localflavor\is_\forms.py:17 msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." -msgstr "Introduceti un numa islandez de autentificare valid. Formatul este XXXXXX-XXXX." +msgstr "Introduceți un număr islandez de autentificare valid. Formatul este XXXXXX-XXXX." #: .\contrib\localflavor\is_\forms.py:18 msgid "The Icelandic identification number is not valid." -msgstr "Numarul islandez de identificare nu este valid." +msgstr "Numărul islandez de identificare nu este valid." #: .\contrib\localflavor\it\forms.py:14 msgid "Enter a valid zip code." -msgstr "Introduceti un cod postal valid." +msgstr "Introduceți un cod poștal valid." #: .\contrib\localflavor\it\forms.py:43 msgid "Enter a valid Social Security number." -msgstr "Introduceti un numar de securitate sociala valid." +msgstr "Introduceți un număr de securitate socială valid." #: .\contrib\localflavor\it\forms.py:68 msgid "Enter a valid VAT number." -msgstr "Introduceti un numar VAT valid." +msgstr "Introduceți un număr TVA valid." #: .\contrib\localflavor\jp\forms.py:17 msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." -msgstr "Introduceti un cod postal de forma XXXXXXX sau XXX-XXXX." +msgstr "Introduceți un cod poștal de forma XXXXXXX sau XXX-XXXX." #: .\contrib\localflavor\jp\jp_prefectures.py:4 msgid "Hokkaido" @@ -2527,15 +2534,15 @@ msgstr "Zacatecas" #: .\contrib\localflavor\nl\forms.py:21 msgid "Enter a valid postal code" -msgstr "Introduceti un cod postal valid" +msgstr "Introduceți un cod poștal valid" #: .\contrib\localflavor\nl\forms.py:52 msgid "Enter a valid phone number" -msgstr "Introduceţi un număr îde telefon valid" +msgstr "Introduceţi un număr de telefon valid" #: .\contrib\localflavor\nl\forms.py:78 msgid "Enter a valid SoFi number" -msgstr "Introduceti un numar SoFi valid" +msgstr "Introduceți un număr SoFi valid" #: .\contrib\localflavor\nl\nl_provinces.py:4 msgid "Drente" @@ -2587,47 +2594,47 @@ msgstr "Olanda de Sud" #: .\contrib\localflavor\no\forms.py:33 msgid "Enter a valid Norwegian social security number." -msgstr "Introduceti un numar norvegian de securitate sociala valid." +msgstr "Introduceți un număr norvegian de securitate socială valid." #: .\contrib\localflavor\pe\forms.py:24 msgid "This field requires 8 digits." -msgstr "Acest camp are nevoie de 8 cifre." +msgstr "Acest câmp are nevoie de 8 cifre." #: .\contrib\localflavor\pe\forms.py:52 msgid "This field requires 11 digits." -msgstr "Acest camp are nevoie de 11 cifre." +msgstr "Acest câmp are nevoie de 11 cifre." #: .\contrib\localflavor\pl\forms.py:39 msgid "National Identification Number consists of 11 digits." -msgstr "Numarul National de Identificare contine 11 cifre." +msgstr "Numărul Național de Identificare conține 11 cifre." #: .\contrib\localflavor\pl\forms.py:40 msgid "Wrong checksum for the National Identification Number." -msgstr "Suma de control gresita pentru Numarul National de Identificare." +msgstr "Sumă de control greșită pentru Numărul Național de Identificare." #: .\contrib\localflavor\pl\forms.py:72 msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." -msgstr "Introduceti un numar de taxa(NIP) de forma XXX-XXX-XX-XX sau XX-XX-XXX-XXX." +msgstr "Introduceți un număr de taxă(NIP) de forma XXX-XXX-XX-XX sau XX-XX-XXX-XXX." #: .\contrib\localflavor\pl\forms.py:73 msgid "Wrong checksum for the Tax Number (NIP)." -msgstr "Suma de control gresita pentru Numarul de Taxa (NIP)." +msgstr "Sumă de control greșită pentru Numărul de Taxa (NIP)." #: .\contrib\localflavor\pl\forms.py:112 msgid "National Business Register Number (REGON) consists of 7 or 9 digits." -msgstr "Numarul National din Registrul pentru Afaceri (REGON) contine 7 sau 9 cifre." +msgstr "Numărul National din Registrul pentru Afaceri (REGON) contine 7 sau 9 cifre." #: .\contrib\localflavor\pl\forms.py:113 msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "Suma de control gresita pentru Numarul National din Registrul pentru Afaceri (REGON)." +msgstr "Suma de control gresita pentru Numărul National din Registrul pentru Afaceri (REGON)." #: .\contrib\localflavor\pl\forms.py:156 msgid "Enter a postal code in the format XX-XXX." -msgstr "Introduceti un cod postal de forma XX-XXX." +msgstr "Introduceți un cod poștal de forma XX-XXX." #: .\contrib\localflavor\pl\pl_voivodeships.py:8 msgid "Lower Silesia" -msgstr "Silezia Inferioara" +msgstr "Silezia Inferioară" #: .\contrib\localflavor\pl\pl_voivodeships.py:9 msgid "Kuyavia-Pomerania" @@ -2647,7 +2654,7 @@ msgstr "Lodz" #: .\contrib\localflavor\pl\pl_voivodeships.py:13 msgid "Lesser Poland" -msgstr "Polonia Mica" +msgstr "Polonia Mică" #: .\contrib\localflavor\pl\pl_voivodeships.py:14 msgid "Masovia" @@ -2687,11 +2694,11 @@ msgstr "Polonia Mare" #: .\contrib\localflavor\pl\pl_voivodeships.py:23 msgid "West Pomerania" -msgstr "Pomerania Occidentala" +msgstr "Pomerania Occidentală" #: .\contrib\localflavor\sk\forms.py:30 msgid "Enter a postal code in the format XXXXX or XXX XX." -msgstr "Introduceti un cod postal de forma XXXXX or XXX XX." +msgstr "Introduceți un cod poștal de forma XXXXX or XXX XX." #: .\contrib\localflavor\sk\sk_districts.py:8 msgid "Banska Bystrica" @@ -3043,7 +3050,7 @@ msgstr "Regiunea Zilina" #: .\contrib\localflavor\uk\forms.py:21 msgid "Enter a valid postcode." -msgstr "Introduceti un cod postal valid." +msgstr "Introduceți un cod poștal valid." #: .\contrib\localflavor\uk\uk_regions.py:11 msgid "Bedfordshire" @@ -3059,7 +3066,7 @@ msgstr "Cheshire" #: .\contrib\localflavor\uk\uk_regions.py:15 msgid "Cornwall and Isles of Scilly" -msgstr "Cornwall si Insulele Scilly" +msgstr "Cornwall și Insulele Scilly" #: .\contrib\localflavor\uk\uk_regions.py:16 msgid "Cumbria" @@ -3179,7 +3186,7 @@ msgstr "Surrey" #: .\contrib\localflavor\uk\uk_regions.py:45 msgid "Tyne and Wear" -msgstr "Tyne si Wear" +msgstr "Tyne și Wear" #: .\contrib\localflavor\uk\uk_regions.py:46 msgid "Warwickshire" @@ -3271,7 +3278,7 @@ msgstr "Central Scotland" #: .\contrib\localflavor\uk\uk_regions.py:77 msgid "Dumfries and Galloway" -msgstr "Dumfries si Galloway" +msgstr "Dumfries și Galloway" #: .\contrib\localflavor\uk\uk_regions.py:78 msgid "Fife" @@ -3323,23 +3330,23 @@ msgstr "Scotia" #: .\contrib\localflavor\uk\uk_regions.py:93 msgid "Wales" -msgstr "Tara Galilor" +msgstr "Țara Galilor" #: .\contrib\localflavor\us\forms.py:16 msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." -msgstr "Introduceti un cod postal de forma XXXXX or XXXXX-XXXX." +msgstr "Introduceți un cod poștal de forma XXXXX or XXXXX-XXXX." #: .\contrib\localflavor\us\forms.py:54 msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." -msgstr "Introduceti un numar SUA de Securitate Sociala de forma XXX-XX-XXXX format." +msgstr "Introduceți un număr SUA de Securitate Sociala de forma XXX-XX-XXXX format." #: .\contrib\localflavor\za\forms.py:20 msgid "Enter a valid South African ID number" -msgstr "Introduceti un ID sud african valid" +msgstr "Introduceți un ID sud african valid" #: .\contrib\localflavor\za\forms.py:54 msgid "Enter a valid South African postal code" -msgstr "Introduceti un cod postal sud african valid" +msgstr "Introduceți un cod poștal sud african valid" #: .\contrib\localflavor\za\za_provinces.py:4 msgid "Eastern Cape" @@ -3383,7 +3390,7 @@ msgstr "redirectat de la " #: .\contrib\redirects\models.py:8 msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'." -msgstr "Aceasta ar trebui să fie o cale absolută, excluzînd numele de domeniu. Exemplu: '/evenimente/cautare/'." +msgstr "Aceasta ar trebui să fie o cale absolută, excluzând numele de domeniu. Exemplu: '/evenimente/cautare/'." #: .\contrib\redirects\models.py:9 msgid "redirect to" @@ -3391,7 +3398,7 @@ msgstr "redirectat la" #: .\contrib\redirects\models.py:10 msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'." -msgstr "Aceasta poate fi o cale absolută (ca mai sus) sau un URL începînd cu 'http://'." +msgstr "Aceasta poate fi o cale absolută (ca mai sus) sau un URL începând cu 'http://'." #: .\contrib\redirects\models.py:13 msgid "redirect" @@ -3443,7 +3450,7 @@ msgstr "Această valoare trebuie să conţină numai litere, numere şi liniuţe #: .\core\validators.py:76 msgid "This value must contain only letters, numbers, underscores, dashes or slashes." -msgstr "Această valoare trebuie să conţină numai litere, numere, liniuţe de subliniere, slash-uri si dash-uri." +msgstr "Această valoare trebuie să conţină numai litere, numere, liniuţe de subliniere, slash-uri și dash-uri." #: .\core\validators.py:80 msgid "This value must contain only letters, numbers, underscores or hyphens." @@ -3451,11 +3458,11 @@ msgstr "Această valoare trebuie să conţină numai litere, numere, liniuţe de #: .\core\validators.py:84 msgid "Uppercase letters are not allowed here." -msgstr "Literele mari nu sînt permise aici." +msgstr "Literele mari nu sunt permise aici." #: .\core\validators.py:88 msgid "Lowercase letters are not allowed here." -msgstr "Literele mici nu sînt permise aici." +msgstr "Literele mici nu sunt permise aici." #: .\core\validators.py:95 msgid "Enter only digits separated by commas." @@ -3471,11 +3478,11 @@ msgstr "Introduceţi vă rog o adresă IP validă." #: .\core\validators.py:115 msgid "Empty values are not allowed here." -msgstr "Valorile vide nu sînt permise aici." +msgstr "Valorile vide nu sunt permise aici." #: .\core\validators.py:119 msgid "Non-numeric characters aren't allowed here." -msgstr "Caracterele ne-numerice nu sînt permise aici." +msgstr "Caracterele ne-numerice nu sunt permise aici." #: .\core\validators.py:123 msgid "This value can't be comprised solely of digits." @@ -3488,11 +3495,11 @@ msgstr "Introduceţi un număr întreg." #: .\core\validators.py:132 msgid "Only alphabetical characters are allowed here." -msgstr "Numai caractere alfabetice sînt permise aici." +msgstr "Numai caractere alfabetice sunt permise aici." #: .\core\validators.py:147 msgid "Year must be 1900 or later." -msgstr "Anul trebuie sa fie 1900 sau posterior." +msgstr "Anul trebuie să fie 1900 sau posterior." #: .\core\validators.py:151 #, python-format @@ -3502,7 +3509,7 @@ msgstr "Data invalida: %s" #: .\core\validators.py:156 #: .\db\models\fields\__init__.py:527 msgid "Enter a valid date in YYYY-MM-DD format." -msgstr "Introduceţi o dată validă in format: AAAA-LL-ZZ." +msgstr "Introduceţi o dată validă în format: AAAA-LL-ZZ." #: .\core\validators.py:161 msgid "Enter a valid time in HH:MM format." @@ -3537,7 +3544,7 @@ msgstr "URL-ul %s nu pointează către o imagine validă." #: .\core\validators.py:204 #, python-format msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." -msgstr "Numerele de telefon trebuie să fie in format XXX-XXX-XXXX. \"%s\" e invalid." +msgstr "Numerele de telefon trebuie să fie în format XXX-XXX-XXXX. \"%s\" e invalid." #: .\core\validators.py:212 #, python-format @@ -3554,7 +3561,7 @@ msgid "" "Valid HTML is required. Specific errors are:\n" "%s" msgstr "" -"E necesar cod HTML valid. Erorile specifice sînt:\n" +"E necesar cod HTML valid. Erorile specifice sunt:\n" "%s" #: .\core\validators.py:237 @@ -3581,46 +3588,46 @@ msgstr "Introduceţi o abreviere validă în U.S." #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." -msgstr[0] "Îngrijiţi-vă limbajul! Cuvîntul %s nu este permis aici." -msgstr[1] "Îngrijiţi-vă limbajul! Cuvintele %s nu sînt permise aici." +msgstr[0] "Îngrijiţi-vă limbajul! Cuvântul %s nu este permis aici." +msgstr[1] "Îngrijiţi-vă limbajul! Cuvintele %s nu sunt permise aici." #: .\core\validators.py:288 #, python-format msgid "This field must match the '%s' field." -msgstr "Acest camp trebuie sa fie identic cu '%s'." +msgstr "Acest câmp trebuie să fie identic cu '%s'." #: .\core\validators.py:307 msgid "Please enter something for at least one field." -msgstr "Va rog completati cel putin un camp." +msgstr "Vă rog completați cel puțin un câmp." #: .\core\validators.py:316 #: .\core\validators.py:327 msgid "Please enter both fields or leave them both empty." -msgstr "Vă rog comletaţi ambele cîmpuri sau lăsaţi-le goale pe ambele." +msgstr "Vă rog completaţi ambele câmpuri sau lăsaţi-le goale pe ambele." #: .\core\validators.py:335 #, python-format msgid "This field must be given if %(field)s is %(value)s" -msgstr "Acest cîmp e necesar dacă %(field)s este %(value)s" +msgstr "Acest câmp e necesar dacă %(field)s este %(value)s" #: .\core\validators.py:348 #, python-format msgid "This field must be given if %(field)s is not %(value)s" -msgstr "Acest cîmp e necesar dacă %(field)s nu este %(value)s" +msgstr "Acest câmp e necesar dacă %(field)s nu este %(value)s" #: .\core\validators.py:367 msgid "Duplicate values are not allowed." -msgstr "Valorile duplicate nu sînt permise." +msgstr "Valorile duplicate nu sunt permise." #: .\core\validators.py:382 #, python-format msgid "This value must be between %(lower)s and %(upper)s." -msgstr "Aceasta valoare trebuie sa fie cuprinsa intre %(lower)s si %(upper)s." +msgstr "Această valoare trebuie să fie cuprinsa între %(lower)s și %(upper)s." #: .\core\validators.py:384 #, python-format msgid "This value must be at least %s." -msgstr "Această valoare trebuie să fie cel putin %s." +msgstr "Această valoare trebuie să fie cel puțin %s." #: .\core\validators.py:386 #, python-format @@ -3647,8 +3654,8 @@ msgstr[1] "Vă rog introduceţi un număr zecimal valid cu cel mult %s cifre." #, python-format msgid "Please enter a valid decimal number with a whole part of at most %s digit." msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits." -msgstr[0] "Vă rog introduceţi un număr zecimal valid cu partea intreaga cel mult %s cifră." -msgstr[1] "Vă rog introduceţi un număr zecimal valid cu partea intreaga cel mult %s cifre." +msgstr[0] "Vă rog introduceţi un număr zecimal valid cu partea întreagă de cel mult %s cifră." +msgstr[1] "Vă rog introduceţi un număr zecimal valid cu partea întreagă de cel mult %s cifre." #: .\core\validators.py:450 #, python-format @@ -3659,12 +3666,12 @@ msgstr[1] "Vă rog introduceţi un număr zecimal valid cu cel mult %s zecimale. #: .\core\validators.py:458 msgid "Please enter a valid floating point number." -msgstr "Vă rog introduceţi un număr cu virgula valid." +msgstr "Vă rog introduceţi un număr cu virgulă valid." #: .\core\validators.py:467 #, python-format msgid "Make sure your uploaded file is at least %s bytes big." -msgstr "Asigură-te că fişierul încărcact are cel puţin %s octeţi." +msgstr "Asigură-te că fişierul încărcat are cel puţin %s octeţi." #: .\core\validators.py:468 #, python-format @@ -3673,11 +3680,11 @@ msgstr "Asigură-te că fişierul încărcact are cel mult %s octeţi." #: .\core\validators.py:485 msgid "The format for this field is wrong." -msgstr "Formatul acestui cîmp este invalid." +msgstr "Formatul acestui câmp este invalid." #: .\core\validators.py:500 msgid "This field is invalid." -msgstr "Cîmpul este invalid." +msgstr "Câmpul este invalid." #: .\core\validators.py:536 #, python-format @@ -3697,12 +3704,12 @@ msgstr "Te rog închide tagurile %(tag)s din linia %(line)s. ( Linia începe cu #: .\core\validators.py:576 #, python-format msgid "Some text starting on line %(line)s is not allowed in that context. (Line starts with \"%(start)s\".)" -msgstr "Textul începînd cu linia %(line)s nu e permis în acest context. (Linia începînd cu \"%(start)s\".)" +msgstr "Textul începând cu linia %(line)s nu e permis în acest context. (Linia începând cu \"%(start)s\".)" #: .\core\validators.py:581 #, python-format msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)" -msgstr "\"%(attr)s\" în linia %(line)s e un atribut invalid. (Linia începînd cu \"%(start)s\".)" +msgstr "\"%(attr)s\" în linia %(line)s e un atribut invalid. (Linia începând cu \"%(start)s\".)" #: .\core\validators.py:586 #, python-format @@ -3722,12 +3729,12 @@ msgstr "Atributul \"%(attr)s\" din linia %(line)s are o valoare invalidă. ( Lin #: .\db\models\manipulators.py:308 #, python-format msgid "%(object)s with this %(type)s already exists for the given %(field)s." -msgstr "%(object)s de acest tip %(type)s exista deja pentru %(field)s dat." +msgstr "%(object)s de acest tip %(type)s există deja pentru %(field)s dat." #: .\db\models\fields\__init__.py:52 #, python-format msgid "%(optname)s with this %(fieldname)s already exists." -msgstr "%(optname)s cu acest %(fieldname)s exista deja." +msgstr "%(optname)s cu acest %(fieldname)s există deja." #: .\db\models\fields\__init__.py:161 #: .\db\models\fields\__init__.py:327 @@ -3736,36 +3743,36 @@ msgstr "%(optname)s cu acest %(fieldname)s exista deja." #: .\newforms\fields.py:46 #: .\oldforms\__init__.py:374 msgid "This field is required." -msgstr "Campul acesta trebuie completat obligatoriu." +msgstr "Acest câmp este obligatoriu." #: .\db\models\fields\__init__.py:427 msgid "This value must be an integer." -msgstr "Această valoare trebuie să fie un numar intreg" +msgstr "Această valoare trebuie să fie un număr intreg." #: .\db\models\fields\__init__.py:466 msgid "This value must be either True or False." -msgstr "Această valoare trebuie să fie ori falsa ori adevarata" +msgstr "Această valoare trebuie să fie ori falsă ori adevarată." #: .\db\models\fields\__init__.py:490 msgid "This field cannot be null." -msgstr "Cîmpul nu poate fi gol" +msgstr "Câmpul nu poate fi gol" #: .\db\models\fields\__init__.py:668 msgid "This value must be a decimal number." -msgstr "Această valoare trebuie să fie un numar zecimal." +msgstr "Această valoare trebuie să fie un număr zecimal." #: .\db\models\fields\__init__.py:779 msgid "Enter a valid filename." -msgstr "Introduceti un nume de fisier valid." +msgstr "Introduceți un nume de fișier valid." #: .\db\models\fields\__init__.py:960 msgid "This value must be either None, True or False." -msgstr "Această valoare trebuie să fie falsa, adevarata sau nici una." +msgstr "Această valoare trebuie să fie falsă, adevarată sau nici una." #: .\db\models\fields\related.py:93 #, python-format msgid "Please enter a valid %s." -msgstr "Introduceti va rog un %s valid." +msgstr "Introduceți vă rog un %s valid." #: .\db\models\fields\related.py:701 msgid "Separate multiple IDs with commas." @@ -3773,42 +3780,42 @@ msgstr "Separă ID-urile multiple cu virgulă." #: .\db\models\fields\related.py:703 msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr " Ţine apăsat \"Control\", sau \"Command\" pe un Mac, pentru a selectie multipla." +msgstr " Ţine apăsat \"Control\", sau \"Command\" pe un Mac, pentru selecție multiplă." #: .\db\models\fields\related.py:750 #, 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] "Introduceti un ID valid pentru %(self)s. Valoarea %(value)r nu este valida." -msgstr[1] "Introduceti ID-uri valide pentru %(self)s. Valorile %(value)r nu sunt valide." +msgstr[0] "Introduceți un ID valid pentru %(self)s. Valoarea %(value)r nu este validă." +msgstr[1] "Introduceți ID-uri valide pentru %(self)s. Valorile %(value)r nu sunt valide." #: .\newforms\fields.py:47 msgid "Enter a valid value." -msgstr "Introduceti o valoare valida." +msgstr "Introduceți o valoare validă." #: .\newforms\fields.py:124 #, python-format msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." -msgstr "Asigurati-va ca aceasta valoare are cel mult %(max)d caractere (are %(length)d)." +msgstr "Asigurați-vă că această valoare are cel mult %(max)d caractere (are %(length)d)." #: .\newforms\fields.py:125 #, python-format msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." -msgstr "Asigurati-va ca aceasta valoare are cel putin %(min)d caractere (are %(length)d)." +msgstr "Asigurați-vă că această valoare are cel puțin %(min)d caractere (are %(length)d)." #: .\newforms\fields.py:153 #: .\newforms\fields.py:182 #: .\newforms\fields.py:211 #, python-format msgid "Ensure this value is less than or equal to %s." -msgstr "Asigurati-va ca aceasta valoare este mai mica sau egala cu %s." +msgstr "Asigurați-vă că această valoare este mai mică sau egală cu %s." #: .\newforms\fields.py:154 #: .\newforms\fields.py:183 #: .\newforms\fields.py:212 #, python-format msgid "Ensure this value is greater than or equal to %s." -msgstr "Asigurati-va ca aceasta valoare este mai mare sau egala cu %s." +msgstr "Asigurați-vă că aceasta valoare este mai mare sau egală cu %s." #: .\newforms\fields.py:181 #: .\newforms\fields.py:210 @@ -3818,44 +3825,44 @@ msgstr "Introduceţi un număr." #: .\newforms\fields.py:213 #, python-format msgid "Ensure that there are no more than %s digits in total." -msgstr "Asigurati-va ca nu exista mai mult de %s cifre in total." +msgstr "Asigurați-vă că nu exista mai mult de %s cifre în total." #: .\newforms\fields.py:214 #, python-format msgid "Ensure that there are no more than %s decimal places." -msgstr "Asigurati-va ca nu exista mai mult de %s spatii zecimale." +msgstr "Asigurați-vă că nu exista mai mult de %s spații zecimale." #: .\newforms\fields.py:215 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." -msgstr "Asigurati-va ca nu exista mai mult de %s cifre inainte de virgula." +msgstr "Asigurați-vă că nu exista mai mult de %s cifre înainte de virgulă." #: .\newforms\fields.py:263 #: .\newforms\fields.py:751 msgid "Enter a valid date." -msgstr "Introduceti o data valida." +msgstr "Introduceți o dată validă." #: .\newforms\fields.py:296 #: .\newforms\fields.py:752 msgid "Enter a valid time." -msgstr "Introduceti o ora valida." +msgstr "Introduceți o oră validă." #: .\newforms\fields.py:335 msgid "Enter a valid date/time." -msgstr "Introduceti o data/ora valida." +msgstr "Introduceți o dată/oră validă." #: .\newforms\fields.py:434 msgid "No file was submitted." -msgstr "Nici un fisier nu a fost trimis." +msgstr "Nici un fișier nu a fost trimis." #: .\newforms\fields.py:435 #: .\oldforms\__init__.py:689 msgid "The submitted file is empty." -msgstr "Fisierul uploadat este gol" +msgstr "Fișierul uploadat este gol" #: .\newforms\fields.py:497 msgid "Enter a valid URL." -msgstr "Introduceti un URL valid." +msgstr "Introduceți un URL valid." #: .\newforms\fields.py:498 msgid "This URL appears to be a broken link." @@ -3864,49 +3871,49 @@ msgstr "URL-ul e invalid." #: .\newforms\fields.py:560 #: .\newforms\models.py:299 msgid "Select a valid choice. That choice is not one of the available choices." -msgstr "Selectati o optiune valida. Aceasta optiune nu face parte din optiunile disponibile." +msgstr "Selectați o opțiune validă. Această opțiune nu face parte din opțiunile disponibile." #: .\newforms\fields.py:599 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." -msgstr "Selectati o optiune valida. %(value)s nu face parte din optiunile disponibile." +msgstr "Selectați o opțiune validă. %(value)s nu face parte din opțiunile disponibile." #: .\newforms\fields.py:600 #: .\newforms\fields.py:662 #: .\newforms\models.py:371 msgid "Enter a list of values." -msgstr "Introduceti o lista de valori." +msgstr "Introduceți o listă de valori." #: .\newforms\fields.py:780 msgid "Enter a valid IPv4 address." -msgstr "Introduceţi o adresă IPv4 valida." +msgstr "Introduceţi o adresă IPv4 validă." #: .\newforms\models.py:372 #, python-format msgid "Select a valid choice. %s is not one of the available choices." -msgstr "Selectati o optiune valida. %s nu face parte din optiunile disponibile." +msgstr "Selectați o opțiune validă. %s nu face parte din opțiunile disponibile." #: .\oldforms\__init__.py:409 #, python-format msgid "Ensure your text is less than %s character." msgid_plural "Ensure your text is less than %s characters." -msgstr[0] "Asigurati-va ca textul dumneavoastra are mai putin de %s caracter." -msgstr[1] "Asigurati-va ca textul dumneavoastra are mai putin de %s caractere." +msgstr[0] "Asigurați-va că textul dumneavoastră are mai puțin de %s caracter." +msgstr[1] "Asigurați-va că textul dumneavoastră are mai puțin de %s caractere." #: .\oldforms\__init__.py:414 msgid "Line breaks are not allowed here." -msgstr "Randurile noi nu sînt permise aici." +msgstr "Randurile noi nu sunt permise aici." #: .\oldforms\__init__.py:512 #: .\oldforms\__init__.py:586 #: .\oldforms\__init__.py:625 #, python-format msgid "Select a valid choice; '%(data)s' is not in %(choices)s." -msgstr "Selectati o optiune valida. '%(data)s' nu face parte din %(choices)s." +msgstr "Selectați o opțiune validă. '%(data)s' nu face parte din %(choices)s." #: .\oldforms\__init__.py:745 msgid "Enter a whole number between -32,768 and 32,767." -msgstr "Introduceţi un număr întreg cu valoare intre -32,768 si 32,767." +msgstr "Introduceţi un număr întreg cu valoare intre -32,768 și 32,767." #: .\oldforms\__init__.py:755 msgid "Enter a positive number." @@ -3914,7 +3921,7 @@ msgstr "Introduceţi un număr pozitiv." #: .\oldforms\__init__.py:765 msgid "Enter a whole number between 0 and 32,767." -msgstr "Introduceţi un număr întreg cu valoare intre 0 si 32,767." +msgstr "Introduceţi un număr întreg cu valoare intre 0 și 32,767." #: .\template\defaultfilters.py:698 msgid "yes,no,maybe" @@ -3960,11 +3967,11 @@ msgstr "AM" #: .\utils\dateformat.py:97 msgid "midnight" -msgstr "miezul noptii" +msgstr "miezul nopții" #: .\utils\dateformat.py:99 msgid "noon" -msgstr "amiaza" +msgstr "amiază" #: .\utils\dates.py:6 msgid "Monday" @@ -3988,7 +3995,7 @@ msgstr "Vineri" #: .\utils\dates.py:7 msgid "Saturday" -msgstr "Sîmbătă" +msgstr "Sâmbătă" #: .\utils\dates.py:7 msgid "Sunday" @@ -4016,7 +4023,7 @@ msgstr "Vin" #: .\utils\dates.py:11 msgid "Sat" -msgstr "Sam" +msgstr "Sâm" #: .\utils\dates.py:11 msgid "Sun" @@ -4164,14 +4171,14 @@ msgstr[1] "ani" #: .\utils\timesince.py:22 msgid "month" msgid_plural "months" -msgstr[0] "luna" +msgstr[0] "lună" msgstr[1] "luni" #: .\utils\timesince.py:23 msgid "week" msgid_plural "weeks" -msgstr[0] "saptamana" -msgstr[1] "saptamani" +msgstr[0] "săptămână" +msgstr[1] "săptămâni" #: .\utils\timesince.py:24 msgid "day" @@ -4182,7 +4189,7 @@ msgstr[1] "zile" #: .\utils\timesince.py:25 msgid "hour" msgid_plural "hours" -msgstr[0] "ora" +msgstr[0] "oră" msgstr[1] "ore" #: .\utils\timesince.py:26 @@ -4238,7 +4245,7 @@ msgstr "%(verbose_name)s a fost actualizat cu succes." #: .\views\generic\create_update.py:184 #, python-format msgid "The %(verbose_name)s was deleted." -msgstr "%(verbose_name)s a fost sters." +msgstr "%(verbose_name)s a fost șters." #~ msgid "Have you forgotten your password?" #~ msgstr "Ai uitat parola?" diff --git a/django/conf/locale/sk/LC_MESSAGES/django.mo b/django/conf/locale/sk/LC_MESSAGES/django.mo index 8ebfbdf6bbb1..0848deaf282f 100644 Binary files a/django/conf/locale/sk/LC_MESSAGES/django.mo and b/django/conf/locale/sk/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/sk/LC_MESSAGES/django.po b/django/conf/locale/sk/LC_MESSAGES/django.po index 71d55d394582..8736ae46401b 100644 --- a/django/conf/locale/sk/LC_MESSAGES/django.po +++ b/django/conf/locale/sk/LC_MESSAGES/django.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-03-20 20:16+0100\n" -"PO-Revision-Date: 2009-03-18 19:18+0100\n" +"POT-Creation-Date: 2009-09-17 11:59+0200\n" +"PO-Revision-Date: 2009-09-17 12:25+0100\n" "Last-Translator: Marian Andre \n" "Language-Team: Slovak \n" "MIME-Version: 1.0\n" @@ -218,6 +218,21 @@ msgstr "čínsky (zjednodušene)" msgid "Traditional Chinese" msgstr "čínsky (tradične)" +#: contrib/admin/actions.py:60 +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "Úspešne zmazaných %(count)d %(items)s." + +#: contrib/admin/actions.py:67 +#: contrib/admin/options.py:1027 +msgid "Are you sure?" +msgstr "Ste si istý?" + +#: contrib/admin/actions.py:85 +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "Zmazať označené %(verbose_name_plural)s" + #: contrib/admin/filterspecs.py:44 #, python-format msgid "" @@ -227,43 +242,52 @@ msgstr "" "

            Od %s:

            \n" "
              \n" -#: contrib/admin/filterspecs.py:74 contrib/admin/filterspecs.py:91 -#: contrib/admin/filterspecs.py:146 contrib/admin/filterspecs.py:172 +#: contrib/admin/filterspecs.py:75 +#: contrib/admin/filterspecs.py:92 +#: contrib/admin/filterspecs.py:147 +#: contrib/admin/filterspecs.py:173 msgid "All" msgstr "Všetko" -#: contrib/admin/filterspecs.py:112 +#: contrib/admin/filterspecs.py:113 msgid "Any date" msgstr "Ľubovoľný dátum" -#: contrib/admin/filterspecs.py:113 +#: contrib/admin/filterspecs.py:114 msgid "Today" msgstr "Dnes" -#: contrib/admin/filterspecs.py:116 +#: contrib/admin/filterspecs.py:117 msgid "Past 7 days" msgstr "Posledných 7 dní" -#: contrib/admin/filterspecs.py:118 +#: contrib/admin/filterspecs.py:119 msgid "This month" msgstr "Tento mesiac" -#: contrib/admin/filterspecs.py:120 +#: contrib/admin/filterspecs.py:121 msgid "This year" msgstr "Tento rok" -#: contrib/admin/filterspecs.py:146 forms/widgets.py:390 +#: contrib/admin/filterspecs.py:147 +#: forms/widgets.py:435 msgid "Yes" msgstr "Áno" -#: contrib/admin/filterspecs.py:146 forms/widgets.py:390 +#: contrib/admin/filterspecs.py:147 +#: forms/widgets.py:435 msgid "No" msgstr "Nie" -#: contrib/admin/filterspecs.py:153 forms/widgets.py:390 +#: contrib/admin/filterspecs.py:154 +#: forms/widgets.py:435 msgid "Unknown" msgstr "Neznámy" +#: contrib/admin/helpers.py:14 +msgid "Action:" +msgstr "Akcia:" + #: contrib/admin/models.py:19 msgid "action time" msgstr "čas udalosti" @@ -292,87 +316,92 @@ msgstr "položka záznamu" msgid "log entries" msgstr "položky záznamu" -#: contrib/admin/options.py:130 contrib/admin/options.py:144 +#: contrib/admin/options.py:133 +#: contrib/admin/options.py:147 msgid "None" msgstr "Žiadne" -#: contrib/admin/options.py:400 +#: contrib/admin/options.py:519 #, python-format msgid "Changed %s." msgstr "Zmenené %s." -#: contrib/admin/options.py:400 contrib/admin/options.py:410 -#: contrib/comments/templates/comments/preview.html:15 forms/models.py:296 +#: contrib/admin/options.py:519 +#: contrib/admin/options.py:529 +#: contrib/comments/templates/comments/preview.html:16 +#: forms/models.py:388 +#: forms/models.py:600 msgid "and" msgstr "a" -#: contrib/admin/options.py:405 +#: contrib/admin/options.py:524 #, python-format msgid "Added %(name)s \"%(object)s\"." msgstr "Pridaný %(name)s \"%(object)s\"." -#: contrib/admin/options.py:409 +#: contrib/admin/options.py:528 #, python-format msgid "Changed %(list)s for %(name)s \"%(object)s\"." msgstr "Zmenený %(list)s pre %(name)s \"%(object)s\"." -#: contrib/admin/options.py:414 +#: contrib/admin/options.py:533 #, python-format msgid "Deleted %(name)s \"%(object)s\"." msgstr "Zmazaný %(name)s \"%(object)s\"." -#: contrib/admin/options.py:418 +#: contrib/admin/options.py:537 msgid "No fields changed." msgstr "Polia nezmenené." -#: contrib/admin/options.py:479 contrib/auth/admin.py:67 +#: contrib/admin/options.py:599 +#: contrib/auth/admin.py:67 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." msgstr "Objekt %(name)s \"%(obj)s\" bol úspešne pridaný." -#: contrib/admin/options.py:483 contrib/admin/options.py:516 +#: contrib/admin/options.py:603 +#: contrib/admin/options.py:636 #: contrib/auth/admin.py:75 msgid "You may edit it again below." msgstr "Nižšie to môžete znova upraviť." -#: contrib/admin/options.py:493 contrib/admin/options.py:526 +#: contrib/admin/options.py:613 +#: contrib/admin/options.py:646 #, python-format msgid "You may add another %s below." msgstr "Nižšie môžete pridať ďalšie %s." -#: contrib/admin/options.py:514 +#: contrib/admin/options.py:634 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." msgstr "Objekt %(name)s \"%(obj)s\" bol úspešne zmenený." -#: contrib/admin/options.py:522 +#: contrib/admin/options.py:642 #, python-format -msgid "" -"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." -msgstr "" -"Objekt %(name)s \"%(obj)s\" bol úspešne pridaný. Ďalšie zmeny môžete urobiť " -"nižšie." +msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." +msgstr "Objekt %(name)s \"%(obj)s\" bol úspešne pridaný. Ďalšie zmeny môžete urobiť nižšie." -#: contrib/admin/options.py:601 +#: contrib/admin/options.py:773 #, python-format msgid "Add %s" msgstr "Pridať %s" -#: contrib/admin/options.py:632 contrib/admin/options.py:802 +#: contrib/admin/options.py:804 +#: contrib/admin/options.py:1005 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." msgstr "Objekt %(name)s s primárnym kľúčom %(key)r neexistuje." -#: contrib/admin/options.py:689 +#: contrib/admin/options.py:861 #, python-format msgid "Change %s" msgstr "Zmeniť %s" -#: contrib/admin/options.py:721 +#: contrib/admin/options.py:905 msgid "Database error" msgstr "Chyba databázy" -#: contrib/admin/options.py:749 +#: contrib/admin/options.py:941 #, python-format msgid "%(count)s %(name)s was changed successfully." msgid_plural "%(count)s %(name)s were changed successfully." @@ -380,99 +409,91 @@ msgstr[0] "%(count)s %(name)s bolo úspešne zmenených." msgstr[1] "%(count)s %(name)s bol úspešne zmenený." msgstr[2] "%(count)s %(name)s boli úspešne zmenené." -#: contrib/admin/options.py:817 +#: contrib/admin/options.py:1020 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "Objekt %(name)s \"%(obj)s\" bol úspešne vymazaný." -#: contrib/admin/options.py:824 -msgid "Are you sure?" -msgstr "Ste si istý?" - -#: contrib/admin/options.py:853 +#: contrib/admin/options.py:1057 #, python-format msgid "Change history: %s" msgstr "Zmeniť históriu: %s" -#: contrib/admin/sites.py:15 contrib/admin/views/decorators.py:14 +#: contrib/admin/sites.py:21 +#: contrib/admin/views/decorators.py:14 #: contrib/auth/forms.py:80 -msgid "" -"Please enter a correct username and password. Note that both fields are case-" -"sensitive." -msgstr "" -"Prosím, zadajte správne používateľské meno a heslo. Rešpektujte malé a veľké " -"písmená." +msgid "Please enter a correct username and password. Note that both fields are case-sensitive." +msgstr "Prosím, zadajte správne používateľské meno a heslo. Rešpektujte malé a veľké písmená." -#: contrib/admin/sites.py:243 contrib/admin/views/decorators.py:40 +#: contrib/admin/sites.py:285 +#: contrib/admin/views/decorators.py:40 msgid "Please log in again, because your session has expired." msgstr "Vaše prihlásenie vypršalo. Prosím, prihláste sa znovu." -#: contrib/admin/sites.py:250 contrib/admin/views/decorators.py:47 -msgid "" -"Looks like your browser isn't configured to accept cookies. Please enable " -"cookies, reload this page, and try again." -msgstr "" -"Zdá sa, že váš prehliadač nemá povolené cookies. Prosím, povoľte cookies, " -"znova načítajte túto stránku a skúste to znova." +#: contrib/admin/sites.py:292 +#: contrib/admin/views/decorators.py:47 +msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again." +msgstr "Zdá sa, že váš prehliadač nemá povolené cookies. Prosím, povoľte cookies, znova načítajte túto stránku a skúste to znova." -#: contrib/admin/sites.py:266 contrib/admin/sites.py:272 +#: contrib/admin/sites.py:308 +#: contrib/admin/sites.py:314 #: contrib/admin/views/decorators.py:66 msgid "Usernames cannot contain the '@' character." msgstr "Používateľské mená nemožu obsahovať znak '@'." -#: contrib/admin/sites.py:269 contrib/admin/views/decorators.py:62 +#: contrib/admin/sites.py:311 +#: contrib/admin/views/decorators.py:62 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." -msgstr "" -"Vaša e-mail adresa nie je vašim používateľským menom. Skúste namiesto toho " -"použiť '%s'." +msgstr "Vaša e-mail adresa nie je vašim používateľským menom. Skúste namiesto toho použiť '%s'." -#: contrib/admin/sites.py:329 +#: contrib/admin/sites.py:367 msgid "Site administration" msgstr "Správa stránky" -#: contrib/admin/sites.py:342 contrib/admin/templates/admin/login.html:26 +#: contrib/admin/sites.py:381 +#: contrib/admin/templates/admin/login.html:26 #: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/views/decorators.py:20 msgid "Log in" msgstr "Prihlásenie" -#: contrib/admin/sites.py:389 +#: contrib/admin/sites.py:426 #, python-format msgid "%s administration" msgstr "%s správa" -#: contrib/admin/util.py:144 +#: contrib/admin/util.py:168 #, python-format msgid "One or more %(fieldname)s in %(name)s: %(obj)s" msgstr "Jeden alebo viac %(fieldname)s v %(name)s: %(obj)s" -#: contrib/admin/util.py:149 +#: contrib/admin/util.py:173 #, python-format msgid "One or more %(fieldname)s in %(name)s:" msgstr "Jeden alebo viac %(fieldname)s v %(name)s:" -#: contrib/admin/widgets.py:70 +#: contrib/admin/widgets.py:72 msgid "Date:" msgstr "Dátum:" -#: contrib/admin/widgets.py:70 +#: contrib/admin/widgets.py:72 msgid "Time:" msgstr "Čas:" -#: contrib/admin/widgets.py:94 +#: contrib/admin/widgets.py:96 msgid "Currently:" msgstr "Aktuálne:" -#: contrib/admin/widgets.py:94 +#: contrib/admin/widgets.py:96 msgid "Change:" msgstr "Zmeniť:" -#: contrib/admin/widgets.py:123 +#: contrib/admin/widgets.py:125 msgid "Lookup" msgstr "Vyhľadanie" -#: contrib/admin/widgets.py:230 +#: contrib/admin/widgets.py:237 msgid "Add Another" msgstr "Pridať ďalší" @@ -487,10 +508,11 @@ msgstr "Ľutujeme, ale požadovanú stránku nie je možné nájsť." #: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/app_index.html:8 -#: contrib/admin/templates/admin/base.html:33 +#: contrib/admin/templates/admin/base.html:54 #: contrib/admin/templates/admin/change_form.html:17 -#: contrib/admin/templates/admin/change_list.html:20 +#: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/delete_confirmation.html:6 +#: contrib/admin/templates/admin/delete_selected_confirmation.html:6 #: contrib/admin/templates/admin/invalid_setup.html:4 #: contrib/admin/templates/admin/object_history.html:6 #: contrib/admin/templates/admin/auth/user/change_password.html:10 @@ -518,12 +540,16 @@ msgid "Server Error (500)" msgstr "Chyba servera (500)" #: contrib/admin/templates/admin/500.html:10 -msgid "" -"There's been an error. It's been reported to the site administrators via e-" -"mail and should be fixed shortly. Thanks for your patience." -msgstr "" -"Vyskytla sa chyba. Bola oznámená správcovi stránky e-mailom a mala by byť " -"čoskoro opravená.Ďakujeme za pochopenie." +msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience." +msgstr "Vyskytla sa chyba. Bola oznámená správcovi stránky e-mailom a mala by byť čoskoro opravená.Ďakujeme za pochopenie." + +#: contrib/admin/templates/admin/actions.html:4 +msgid "Run the selected action" +msgstr "Spustiť označenú akciu" + +#: contrib/admin/templates/admin/actions.html:4 +msgid "Go" +msgstr "Ísť" #: contrib/admin/templates/admin/app_index.html:10 #: contrib/admin/templates/admin/index.html:19 @@ -531,26 +557,26 @@ msgstr "" msgid "%(name)s" msgstr "%(name)s" -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:27 msgid "Welcome," msgstr "Vitajte," -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:32 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 msgid "Documentation" msgstr "Dokumentácia" -#: contrib/admin/templates/admin/base.html:28 -#: contrib/admin/templates/admin/auth/user/change_password.html:13 -#: contrib/admin/templates/admin/auth/user/change_password.html:46 +#: contrib/admin/templates/admin/base.html:40 +#: contrib/admin/templates/admin/auth/user/change_password.html:14 +#: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 msgid "Change password" msgstr "Zmeniť heslo" -#: contrib/admin/templates/admin/base.html:28 +#: contrib/admin/templates/admin/base.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 msgid "Log out" @@ -576,57 +602,63 @@ msgstr "História" #: contrib/admin/templates/admin/change_form.html:28 #: contrib/admin/templates/admin/edit_inline/stacked.html:13 -#: contrib/admin/templates/admin/edit_inline/tabular.html:27 +#: contrib/admin/templates/admin/edit_inline/tabular.html:28 msgid "View on site" msgstr "Pozrieť na stránke" #: contrib/admin/templates/admin/change_form.html:38 -#: contrib/admin/templates/admin/change_list.html:49 -#: contrib/admin/templates/admin/auth/user/change_password.html:22 +#: contrib/admin/templates/admin/change_list.html:54 +#: contrib/admin/templates/admin/auth/user/change_password.html:23 msgid "Please correct the error below." msgid_plural "Please correct the errors below." msgstr[0] "Prosím, opravte chyby uvedené nižšie." msgstr[1] "Prosím, opravte chybu uvedenú nižšie." msgstr[2] "Prosím, opravte chyby uvedené nižšie." -#: contrib/admin/templates/admin/change_list.html:41 +#: contrib/admin/templates/admin/change_list.html:46 #, python-format msgid "Add %(name)s" msgstr "Pridať %(name)s" -#: contrib/admin/templates/admin/change_list.html:60 +#: contrib/admin/templates/admin/change_list.html:65 msgid "Filter" msgstr "Filtrovať" #: contrib/admin/templates/admin/delete_confirmation.html:10 -#: contrib/admin/templates/admin/submit_line.html:4 forms/formsets.py:251 +#: contrib/admin/templates/admin/submit_line.html:4 +#: forms/formsets.py:275 msgid "Delete" msgstr "Odstrániť" #: contrib/admin/templates/admin/delete_confirmation.html:16 #, python-format -msgid "" -"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " -"related objects, but your account doesn't have permission to delete the " -"following types of objects:" -msgstr "" -"Odstránenie objektu %(object_name)s '%(escaped_object)s' by malo za následok " -"aj odstránenie súvisiacich objektov, avšak váš účet nemá oprávnenie na " -"odstránenie nasledujúcich typov objektov:" +msgid "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:" +msgstr "Odstránenie objektu %(object_name)s '%(escaped_object)s' by malo za následok aj odstránenie súvisiacich objektov, avšak váš účet nemá oprávnenie na odstránenie nasledujúcich typov objektov:" #: contrib/admin/templates/admin/delete_confirmation.html:23 #, python-format -msgid "" -"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " -"All of the following related items will be deleted:" -msgstr "" -"Ste si istý, že chcete odstrániť objekt %(object_name)s \"%(escaped_object)s" -"\"? Všetky nasledujúce súvisiace objekty budú odstránené:" +msgid "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? All of the following related items will be deleted:" +msgstr "Ste si istý, že chcete odstrániť objekt %(object_name)s \"%(escaped_object)s\"? Všetky nasledujúce súvisiace objekty budú odstránené:" #: contrib/admin/templates/admin/delete_confirmation.html:28 +#: contrib/admin/templates/admin/delete_selected_confirmation.html:33 msgid "Yes, I'm sure" msgstr "Áno, som si istý" +#: contrib/admin/templates/admin/delete_selected_confirmation.html:9 +msgid "Delete multiple objects" +msgstr "Zmazať viacero objektov" + +#: contrib/admin/templates/admin/delete_selected_confirmation.html:15 +#, python-format +msgid "Deleting the %(object_name)s would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:" +msgstr "Odstránenie objektu %(object_name)s by malo za následok aj odstránenie súvisiacich objektov, avšak váš účet nemá oprávnenie na odstránenie nasledujúcich typov objektov:" + +#: contrib/admin/templates/admin/delete_selected_confirmation.html:22 +#, python-format +msgid "Are you sure you want to delete the selected %(object_name)s objects? All of the following objects and their related items will be deleted:" +msgstr "Ste si istý, že chcete odstrániť objekty %(object_name)s? Budú odstránené nasledujúce objekty a položky s nimi súvisiace:" + #: contrib/admin/templates/admin/filter.html:2 #, python-format msgid " By %(filter_title)s " @@ -657,15 +689,13 @@ msgstr "Moje udalosti" msgid "None available" msgstr "Nedostupné" +#: contrib/admin/templates/admin/index.html:72 +msgid "Unknown content" +msgstr "Neznámy obsah" + #: contrib/admin/templates/admin/invalid_setup.html:7 -msgid "" -"Something's wrong with your database installation. Make sure the appropriate " -"database tables have been created, and make sure the database is readable by " -"the appropriate user." -msgstr "" -"Niečo nie je v poriadku s vašou inštaláciou databázy. Uistite sa, že boli " -"vytvorené potrebné databázové tabuľky a taktiež skontrolujte, či príslušný " -"používateľ môže databázu čítať." +msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user." +msgstr "Niečo nie je v poriadku s vašou inštaláciou databázy. Uistite sa, že boli vytvorené potrebné databázové tabuľky a taktiež skontrolujte, či príslušný používateľ môže databázu čítať." #: contrib/admin/templates/admin/login.html:19 msgid "Username:" @@ -694,20 +724,21 @@ msgid "DATETIME_FORMAT" msgstr "j. F Y o G:i" #: contrib/admin/templates/admin/object_history.html:38 -msgid "" -"This object doesn't have a change history. It probably wasn't added via this " -"admin site." -msgstr "" -"Tento objekt nemá históriu zmien. Pravdepodobne nebol pridaný " -"prostredníctvom tejto správcovskej stránky." +msgid "This object doesn't have a change history. It probably wasn't added via this admin site." +msgstr "Tento objekt nemá históriu zmien. Pravdepodobne nebol pridaný prostredníctvom tejto správcovskej stránky." #: contrib/admin/templates/admin/pagination.html:10 msgid "Show all" msgstr "Zobraziť všetky" +#: contrib/admin/templates/admin/pagination.html:11 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Save" +msgstr "Uložiť" + #: contrib/admin/templates/admin/search_form.html:8 -msgid "Go" -msgstr "Ísť" +msgid "Search" +msgstr "Vyhľadávanie" #: contrib/admin/templates/admin/search_form.html:10 #, python-format @@ -722,10 +753,6 @@ msgstr[2] "%(counter)s výsledky" msgid "%(full_result_count)s total" msgstr "%(full_result_count)s spolu" -#: contrib/admin/templates/admin/submit_line.html:3 -msgid "Save" -msgstr "Uložiť" - #: contrib/admin/templates/admin/submit_line.html:5 msgid "Save as new" msgstr "Uložiť ako nový" @@ -739,36 +766,36 @@ msgid "Save and continue editing" msgstr "Uložiť a pokračovať v úpravách" #: contrib/admin/templates/admin/auth/user/add_form.html:6 -msgid "" -"First, enter a username and password. Then, you'll be able to edit more user " -"options." -msgstr "" -"Najskôr zadajte používateľské meno a heslo. Potom budete môcť upraviť viac " -"používateľských nastavení." +msgid "First, enter a username and password. Then, you'll be able to edit more user options." +msgstr "Najskôr zadajte používateľské meno a heslo. Potom budete môcť upraviť viac používateľských nastavení." #: contrib/admin/templates/admin/auth/user/add_form.html:13 -#: contrib/auth/forms.py:14 contrib/auth/forms.py:47 contrib/auth/forms.py:59 +#: contrib/auth/forms.py:14 +#: contrib/auth/forms.py:47 +#: contrib/auth/forms.py:59 msgid "Username" msgstr "Používateľské meno" #: contrib/admin/templates/admin/auth/user/add_form.html:20 -#: contrib/admin/templates/admin/auth/user/change_password.html:33 -#: contrib/auth/forms.py:17 contrib/auth/forms.py:60 contrib/auth/forms.py:185 +#: contrib/admin/templates/admin/auth/user/change_password.html:34 +#: contrib/auth/forms.py:17 +#: contrib/auth/forms.py:60 +#: contrib/auth/forms.py:185 msgid "Password" msgstr "Heslo" #: contrib/admin/templates/admin/auth/user/add_form.html:26 -#: contrib/admin/templates/admin/auth/user/change_password.html:39 +#: contrib/admin/templates/admin/auth/user/change_password.html:40 #: contrib/auth/forms.py:186 msgid "Password (again)" msgstr "Heslo (znova)" #: contrib/admin/templates/admin/auth/user/add_form.html:27 -#: contrib/admin/templates/admin/auth/user/change_password.html:40 +#: contrib/admin/templates/admin/auth/user/change_password.html:41 msgid "Enter the same password as above, for verification." msgstr "Kvôli overeniu zadajte rovnaké heslo ako vyššie." -#: contrib/admin/templates/admin/auth/user/change_password.html:26 +#: contrib/admin/templates/admin/auth/user/change_password.html:27 #, python-format msgid "Enter a new password for the user %(username)s." msgstr "Zadajte nové heslo pre používateľa %(username)s." @@ -802,12 +829,8 @@ msgid "Your password was changed." msgstr "Vaše heslo bolo zmenené." #: contrib/admin/templates/registration/password_change_form.html:12 -msgid "" -"Please enter your old password, for security's sake, and then enter your new " -"password twice so we can verify you typed it in correctly." -msgstr "" -"Z bezpečnostných dôvodov zadajte staré heslo a potom nové heslo dvakrát, aby " -"sme mohli overiť, že ste ho zadali správne." +msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." +msgstr "Z bezpečnostných dôvodov zadajte staré heslo a potom nové heslo dvakrát, aby sme mohli overiť, že ste ho zadali správne." #: contrib/admin/templates/registration/password_change_form.html:17 msgid "Old password:" @@ -855,23 +878,16 @@ msgid "Enter new password" msgstr "Zadajte nové heslo" #: contrib/admin/templates/registration/password_reset_confirm.html:14 -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Zadajte nové heslo dvakrát, aby sme mohli overiť, že ste ho zadali správne." +msgid "Please enter your new password twice so we can verify you typed it in correctly." +msgstr "Zadajte nové heslo dvakrát, aby sme mohli overiť, že ste ho zadali správne." #: contrib/admin/templates/registration/password_reset_confirm.html:26 msgid "Password reset unsuccessful" msgstr "Obnova hesla sa nepodarila" #: contrib/admin/templates/registration/password_reset_confirm.html:28 -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Odkaz na obnovenie hesla je neplatný, pretože pravdepodobne už bol raz " -"použitý. Požiadajte znovu o obnovu hesla, prosím." +msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." +msgstr "Odkaz na obnovenie hesla je neplatný, pretože pravdepodobne už bol raz použitý. Požiadajte znovu o obnovu hesla, prosím." #: contrib/admin/templates/registration/password_reset_done.html:6 #: contrib/admin/templates/registration/password_reset_done.html:10 @@ -879,17 +895,12 @@ msgid "Password reset successful" msgstr "Obnovenie hesla úspešné" #: contrib/admin/templates/registration/password_reset_done.html:12 -msgid "" -"We've e-mailed you instructions for setting your password to the e-mail " -"address you submitted. You should be receiving it shortly." -msgstr "" -"Poslali sme vám e-mailom návod na nastavenie vášho hesla na mailovú adresu, " -"ktorú ste zadali.Mali by ste ho zakrátko dostať." +msgid "We've e-mailed you instructions for setting your password to the e-mail address you submitted. You should be receiving it shortly." +msgstr "Poslali sme vám e-mailom návod na nastavenie vášho hesla na mailovú adresu, ktorú ste zadali.Mali by ste ho zakrátko dostať." #: contrib/admin/templates/registration/password_reset_email.html:2 msgid "You're receiving this e-mail because you requested a password reset" -msgstr "" -"Dostávate túto elektronickú poštu, pretože ste si vyžiadali obnovenie hesla." +msgstr "Dostávate túto elektronickú poštu, pretože ste si vyžiadali obnovenie hesla." #: contrib/admin/templates/registration/password_reset_email.html:3 #, python-format @@ -914,12 +925,8 @@ msgid "The %(site_name)s team" msgstr "Tím %(site_name)s" #: contrib/admin/templates/registration/password_reset_form.html:12 -msgid "" -"Forgotten your password? Enter your e-mail address below, and we'll e-mail " -"instructions for setting a new one." -msgstr "" -"Zabudli ste svoje heslo? Zadajte svoju e-mail adresu a my Vám pošleme " -"inštrukcie pre nastavenie nového." +msgid "Forgotten your password? Enter your e-mail address below, and we'll e-mail instructions for setting a new one." +msgstr "Zabudli ste svoje heslo? Zadajte svoju e-mail adresu a my Vám pošleme inštrukcie pre nastavenie nového." #: contrib/admin/templates/registration/password_reset_form.html:16 msgid "E-mail address:" @@ -943,7 +950,8 @@ msgstr "Vybrať %s" msgid "Select %s to change" msgstr "Vybrať \"%s\" na úpravu" -#: contrib/admin/views/template.py:37 contrib/sites/models.py:38 +#: contrib/admin/views/template.py:37 +#: contrib/sites/models.py:38 msgid "site" msgstr "stránka" @@ -951,144 +959,162 @@ msgstr "stránka" msgid "template" msgstr "šablóna" -#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 -#: contrib/admindocs/views.py:62 +#: contrib/admindocs/views.py:61 +#: contrib/admindocs/views.py:63 +#: contrib/admindocs/views.py:65 msgid "tag:" msgstr "značka:" -#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 -#: contrib/admindocs/views.py:95 +#: contrib/admindocs/views.py:94 +#: contrib/admindocs/views.py:96 +#: contrib/admindocs/views.py:98 msgid "filter:" msgstr "filter:" -#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 -#: contrib/admindocs/views.py:159 +#: contrib/admindocs/views.py:158 +#: contrib/admindocs/views.py:160 +#: contrib/admindocs/views.py:162 msgid "view:" msgstr "pohľad:" -#: contrib/admindocs/views.py:187 +#: contrib/admindocs/views.py:190 #, python-format msgid "App %r not found" msgstr "Aplikácia %r nenájdená" -#: contrib/admindocs/views.py:194 +#: contrib/admindocs/views.py:197 #, python-format msgid "Model %(model_name)r not found in app %(app_label)r" msgstr "Model %(model_name)r sa nenachádza v aplikácii %(app_label)r" -#: contrib/admindocs/views.py:206 +#: contrib/admindocs/views.py:209 #, python-format msgid "the related `%(app_label)s.%(data_type)s` object" msgstr "súvisiaci objekt `%(app_label)s.%(data_type)s`" -#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228 -#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:209 +#: contrib/admindocs/views.py:228 +#: contrib/admindocs/views.py:233 +#: contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:261 +#: contrib/admindocs/views.py:266 msgid "model:" msgstr "model:" -#: contrib/admindocs/views.py:237 +#: contrib/admindocs/views.py:224 +#: contrib/admindocs/views.py:256 #, python-format msgid "related `%(app_label)s.%(object_name)s` objects" msgstr "súvisiace objekty `%(app_label)s.%(object_name)s`" -#: contrib/admindocs/views.py:242 +#: contrib/admindocs/views.py:228 +#: contrib/admindocs/views.py:261 #, python-format msgid "all %s" msgstr "všetky %s" -#: contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:233 +#: contrib/admindocs/views.py:266 #, python-format msgid "number of %s" msgstr "počet %s" -#: contrib/admindocs/views.py:252 +#: contrib/admindocs/views.py:271 #, python-format msgid "Fields on %s objects" msgstr "Polia objektov %s" -#: contrib/admindocs/views.py:315 contrib/admindocs/views.py:326 -#: contrib/admindocs/views.py:328 contrib/admindocs/views.py:334 -#: contrib/admindocs/views.py:335 contrib/admindocs/views.py:337 +#: contrib/admindocs/views.py:334 +#: contrib/admindocs/views.py:345 +#: contrib/admindocs/views.py:347 +#: contrib/admindocs/views.py:353 +#: contrib/admindocs/views.py:354 +#: contrib/admindocs/views.py:356 msgid "Integer" msgstr "Celé číslo" -#: contrib/admindocs/views.py:316 +#: contrib/admindocs/views.py:335 msgid "Boolean (Either True or False)" msgstr "Logická hodnota (buď True alebo False)" -#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:336 +#: contrib/admindocs/views.py:336 +#: contrib/admindocs/views.py:355 #, python-format msgid "String (up to %(max_length)s)" msgstr "Reťazec (až do %(max_length)s)" -#: contrib/admindocs/views.py:318 +#: contrib/admindocs/views.py:337 msgid "Comma-separated integers" msgstr "Celé čísla oddelené čiarkou" -#: contrib/admindocs/views.py:319 +#: contrib/admindocs/views.py:338 msgid "Date (without time)" msgstr "Dátum (bez času)" -#: contrib/admindocs/views.py:320 +#: contrib/admindocs/views.py:339 msgid "Date (with time)" msgstr "Dátum (a čas)" -#: contrib/admindocs/views.py:321 +#: contrib/admindocs/views.py:340 msgid "Decimal number" msgstr "Desatinné číslo" -#: contrib/admindocs/views.py:322 +#: contrib/admindocs/views.py:341 msgid "E-mail address" msgstr "E-mail adresa" -#: contrib/admindocs/views.py:323 contrib/admindocs/views.py:324 -#: contrib/admindocs/views.py:327 +#: contrib/admindocs/views.py:342 +#: contrib/admindocs/views.py:343 +#: contrib/admindocs/views.py:346 msgid "File path" msgstr "Cesta k súboru" -#: contrib/admindocs/views.py:325 +#: contrib/admindocs/views.py:344 msgid "Floating point number" msgstr "Číslo s plávajúcou desatinnou čiarkou" -#: contrib/admindocs/views.py:329 contrib/comments/models.py:58 +#: contrib/admindocs/views.py:348 +#: contrib/comments/models.py:60 msgid "IP address" msgstr "IP adresa" -#: contrib/admindocs/views.py:331 +#: contrib/admindocs/views.py:350 msgid "Boolean (Either True, False or None)" msgstr "Logická hodnota (buď True, False alebo None)" -#: contrib/admindocs/views.py:332 +#: contrib/admindocs/views.py:351 msgid "Relation to parent model" msgstr "Vzťah k nadradenému modelu" -#: contrib/admindocs/views.py:333 +#: contrib/admindocs/views.py:352 msgid "Phone number" msgstr "Telefónne číslo" -#: contrib/admindocs/views.py:338 +#: contrib/admindocs/views.py:357 msgid "Text" msgstr "Text" -#: contrib/admindocs/views.py:339 +#: contrib/admindocs/views.py:358 msgid "Time" msgstr "Čas" -#: contrib/admindocs/views.py:340 contrib/comments/forms.py:19 +#: contrib/admindocs/views.py:359 +#: contrib/comments/forms.py:95 #: contrib/comments/templates/comments/moderation_queue.html:37 -#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 +#: contrib/flatpages/admin.py:8 +#: contrib/flatpages/models.py:7 msgid "URL" msgstr "URL" -#: contrib/admindocs/views.py:341 +#: contrib/admindocs/views.py:360 msgid "U.S. state (two uppercase letters)" msgstr "Štát USA (dve veľké písmená)" -#: contrib/admindocs/views.py:342 +#: contrib/admindocs/views.py:361 msgid "XML text" msgstr "XML text" -#: contrib/admindocs/views.py:368 +#: contrib/admindocs/views.py:387 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s nevyzerá ako urlpattern objekt" @@ -1113,36 +1139,24 @@ msgid "" msgstr "" "\n" "

              Ak chete nainštalovať záložky, pretiahnite odkaz do\n" -"nástrojovej lišty so záložkami, alebo kliknite pravým tlačidlom myši na " -"odkaz a pridajte ho do záložiek.\n" -"Následne môžete záložky použiť na stránkach. Poznamenávame, že použitie " -"niektorých záložiek vyžaduje, aby bol váš počítač \"interný\" (ak si nie ste " -"istý, že váš počítač je \"interný\", oslovte svojho systémového správcu).\n" +"nástrojovej lišty so záložkami, alebo kliknite pravým tlačidlom myši na odkaz a pridajte ho do záložiek.\n" +"Následne môžete záložky použiť na stránkach. Poznamenávame, že použitie niektorých záložiek vyžaduje, aby bol váš počítač \"interný\" (ak si nie ste istý, že váš počítač je \"interný\", oslovte svojho systémového správcu).

              \n" #: contrib/admindocs/templates/admin_doc/bookmarklets.html:18 msgid "Documentation for this page" msgstr "Dokumentácia k tejto stránke" #: contrib/admindocs/templates/admin_doc/bookmarklets.html:19 -msgid "" -"Jumps you from any page to the documentation for the view that generates " -"that page." -msgstr "" -"Nasmeruje vás z ľubovoľnej stránky do dokumentácie, kde je popísané, ako sa " -"táto stránka generuje." +msgid "Jumps you from any page to the documentation for the view that generates that page." +msgstr "Nasmeruje vás z ľubovoľnej stránky do dokumentácie, kde je popísané, ako sa táto stránka generuje." #: contrib/admindocs/templates/admin_doc/bookmarklets.html:21 msgid "Show object ID" msgstr "Zobraziť identifikátor objektu" #: contrib/admindocs/templates/admin_doc/bookmarklets.html:22 -msgid "" -"Shows the content-type and unique ID for pages that represent a single " -"object." -msgstr "" -"Zobrazí content-type a jedinečný identifikátor pre stránky, ktoré " -"reprezentujú samostatný objekt." +msgid "Shows the content-type and unique ID for pages that represent a single object." +msgstr "Zobrazí content-type a jedinečný identifikátor pre stránky, ktoré reprezentujú samostatný objekt." #: contrib/admindocs/templates/admin_doc/bookmarklets.html:24 msgid "Edit this object (current window)" @@ -1150,8 +1164,7 @@ msgstr "Upraviť tento objekt (aktuálne okno)" #: contrib/admindocs/templates/admin_doc/bookmarklets.html:25 msgid "Jumps to the admin page for pages that represent a single object." -msgstr "" -"Skočí na stránku správy pre stránky, ktoré reprezentujú samostatný objekt." +msgstr "Skočí na stránku správy pre stránky, ktoré reprezentujú samostatný objekt." #: contrib/admindocs/templates/admin_doc/bookmarklets.html:27 msgid "Edit this object (new window)" @@ -1190,16 +1203,14 @@ msgstr "Heslo úspešne zmenené." msgid "Change password: %s" msgstr "Zmeniť heslo: %s" -#: contrib/auth/forms.py:15 contrib/auth/forms.py:48 -#: contrib/auth/models.py:127 -msgid "" -"Required. 30 characters or fewer. Alphanumeric characters only (letters, " -"digits and underscores)." -msgstr "" -"Povinné. 30 znakov alebo menej. Len alfanumerické znaky (písmená, čísla a " -"podčiarkovníky)." +#: contrib/auth/forms.py:15 +#: contrib/auth/forms.py:48 +#: contrib/auth/models.py:128 +msgid "Required. 30 characters or fewer. Alphanumeric characters only (letters, digits and underscores)." +msgstr "Povinné. 30 znakov alebo menej. Len alfanumerické znaky (písmená, čísla a podčiarkovníky)." -#: contrib/auth/forms.py:16 contrib/auth/forms.py:49 +#: contrib/auth/forms.py:16 +#: contrib/auth/forms.py:49 msgid "This value must contain only letters, numbers and underscores." msgstr "Táto hodnota môže obsahovať len písmená, číslice a podčiarkovníky." @@ -1211,7 +1222,8 @@ msgstr "Potvrdenie hesla" msgid "A user with that username already exists." msgstr "Používateľ s takým používateľským menom už existuje." -#: contrib/auth/forms.py:36 contrib/auth/forms.py:155 +#: contrib/auth/forms.py:36 +#: contrib/auth/forms.py:155 #: contrib/auth/forms.py:197 msgid "The two password fields didn't match." msgstr "Pole hesla a jeho potvrdenie sa nezhodujú." @@ -1221,23 +1233,16 @@ msgid "This account is inactive." msgstr "Tento účet je neaktívny." #: contrib/auth/forms.py:87 -msgid "" -"Your Web browser doesn't appear to have cookies enabled. Cookies are " -"required for logging in." -msgstr "" -"Váš prehliadač nemá povolené cookies. Cookies sú potrebné pre prihlásenie." +msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in." +msgstr "Váš prehliadač nemá povolené cookies. Cookies sú potrebné pre prihlásenie." #: contrib/auth/forms.py:100 msgid "E-mail" msgstr "E-mail" #: contrib/auth/forms.py:109 -msgid "" -"That e-mail address doesn't have an associated user account. Are you sure " -"you've registered?" -msgstr "" -"Táto e-mail adresa nemá priradený žiadny používateľský účet. Ste si istý, že " -"ste sa zaregistrovali?" +msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?" +msgstr "Táto e-mail adresa nemá priradený žiadny používateľský účet. Ste si istý, že ste sa zaregistrovali?" #: contrib/auth/forms.py:135 #, python-format @@ -1260,7 +1265,8 @@ msgstr "Staré heslo" msgid "Your old password was entered incorrectly. Please enter it again." msgstr "Nezadali ste správne svoje staré heslo. Napíšte ho znovu, prosím." -#: contrib/auth/models.py:63 contrib/auth/models.py:86 +#: contrib/auth/models.py:63 +#: contrib/auth/models.py:86 msgid "name" msgstr "meno" @@ -1272,7 +1278,8 @@ msgstr "kódový názov" msgid "permission" msgstr "oprávnenie" -#: contrib/auth/models.py:69 contrib/auth/models.py:87 +#: contrib/auth/models.py:69 +#: contrib/auth/models.py:87 msgid "permissions" msgstr "oprávnenia" @@ -1280,106 +1287,95 @@ msgstr "oprávnenia" msgid "group" msgstr "skupina" -#: contrib/auth/models.py:91 contrib/auth/models.py:137 +#: contrib/auth/models.py:91 +#: contrib/auth/models.py:138 msgid "groups" msgstr "skupiny" -#: contrib/auth/models.py:127 +#: contrib/auth/models.py:128 msgid "username" msgstr "používateľské meno" -#: contrib/auth/models.py:128 +#: contrib/auth/models.py:129 msgid "first name" msgstr "krstné meno" -#: contrib/auth/models.py:129 +#: contrib/auth/models.py:130 msgid "last name" msgstr "priezvisko" -#: contrib/auth/models.py:130 +#: contrib/auth/models.py:131 msgid "e-mail address" msgstr "e-mail adresa" -#: contrib/auth/models.py:131 +#: contrib/auth/models.py:132 msgid "password" msgstr "heslo" -#: contrib/auth/models.py:131 -msgid "" -"Use '[algo]$[salt]$[hexdigest]' or use the change " -"password form." -msgstr "" -"Použite '[algo]$[salt]$[hexdigest]' alebo formulár na " -"zmenu hesla." - #: contrib/auth/models.py:132 +msgid "Use '[algo]$[salt]$[hexdigest]' or use the change password form." +msgstr "Použite '[algo]$[salt]$[hexdigest]' alebo formulár na zmenu hesla." + +#: contrib/auth/models.py:133 msgid "staff status" msgstr "postavenie zamestnanca" -#: contrib/auth/models.py:132 +#: contrib/auth/models.py:133 msgid "Designates whether the user can log into this admin site." msgstr "Určuje, či sa používateľ môže prihlásiť do správy stránok." -#: contrib/auth/models.py:133 +#: contrib/auth/models.py:134 msgid "active" msgstr "aktívny" -#: contrib/auth/models.py:133 -msgid "" -"Designates whether this user should be treated as active. Unselect this " -"instead of deleting accounts." -msgstr "" -"Určuje, či je účet aktívny. Odškrtnite, ak chcete vypnúť používateľský účet." - #: contrib/auth/models.py:134 +msgid "Designates whether this user should be treated as active. Unselect this instead of deleting accounts." +msgstr "Určuje, či je účet aktívny. Odškrtnite, ak chcete vypnúť používateľský účet." + +#: contrib/auth/models.py:135 msgid "superuser status" msgstr "stav superpoužívateľa" -#: contrib/auth/models.py:134 -msgid "" -"Designates that this user has all permissions without explicitly assigning " -"them." -msgstr "" -"Určuje, či používateľ získava automaticky všetky práva aj bez priameho " -"priradenia." - #: contrib/auth/models.py:135 +msgid "Designates that this user has all permissions without explicitly assigning them." +msgstr "Určuje, či používateľ získava automaticky všetky práva aj bez priameho priradenia." + +#: contrib/auth/models.py:136 msgid "last login" msgstr "naposledy prihlásený" -#: contrib/auth/models.py:136 +#: contrib/auth/models.py:137 msgid "date joined" msgstr "dátum registrácie" -#: contrib/auth/models.py:138 -msgid "" -"In addition to the permissions manually assigned, this user will also get " -"all permissions granted to each group he/she is in." -msgstr "" -"Okrem ručne zadaných práv bude mať používateľ aj všetky práva prislúchajúce " -"skupinám, v ktorých sa nachádza." - #: contrib/auth/models.py:139 +msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in." +msgstr "Okrem ručne zadaných práv bude mať používateľ aj všetky práva prislúchajúce skupinám, v ktorých sa nachádza." + +#: contrib/auth/models.py:140 msgid "user permissions" msgstr "používateľské práva" -#: contrib/auth/models.py:143 +#: contrib/auth/models.py:144 +#: contrib/comments/models.py:50 +#: contrib/comments/models.py:168 msgid "user" msgstr "používateľ" -#: contrib/auth/models.py:144 +#: contrib/auth/models.py:145 msgid "users" msgstr "používatelia" -#: contrib/auth/models.py:300 +#: contrib/auth/models.py:301 msgid "message" msgstr "správa" -#: contrib/auth/views.py:50 +#: contrib/auth/views.py:56 msgid "Logged out" msgstr "Odhlásený" -#: contrib/auth/management/commands/createsuperuser.py:23 forms/fields.py:428 +#: contrib/auth/management/commands/createsuperuser.py:23 +#: forms/fields.py:428 msgid "Enter a valid e-mail address." msgstr "Zadajte platnú e-mail adresu." @@ -1391,27 +1387,31 @@ msgstr "Obsah" msgid "Metadata" msgstr "Metaúdaje" -#: contrib/comments/forms.py:17 +#: contrib/comments/feeds.py:13 +#, python-format +msgid "%(site_name)s comments" +msgstr "%(site_name)s komentáre" + +#: contrib/comments/feeds.py:23 +#, python-format +msgid "Latest comments on %(site_name)s" +msgstr "Najnovšie komentáre na %(site_name)s" + +#: contrib/comments/forms.py:93 #: contrib/comments/templates/comments/moderation_queue.html:34 msgid "Name" msgstr "Meno" -#: contrib/comments/forms.py:18 +#: contrib/comments/forms.py:94 msgid "Email address" msgstr "E-mail adresa" -#: contrib/comments/forms.py:20 +#: contrib/comments/forms.py:96 #: contrib/comments/templates/comments/moderation_queue.html:35 msgid "Comment" msgstr "Komentár" -#: contrib/comments/forms.py:23 -msgid "" -"If you enter anything in this field your comment will be treated as spam" -msgstr "" -"Ak ste do tohoto poľa čokoľvek zadali, váš komentár bude považovaný za spam" - -#: contrib/comments/forms.py:146 +#: contrib/comments/forms.py:173 #, python-format msgid "Watch your mouth! The word %s is not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here." @@ -1419,69 +1419,70 @@ msgstr[0] "Vyjadrujte sa slušne! Slová %s tu nie je dovolené používať." msgstr[1] "Vyjadrujte sa slušne! Slovo %s tu nie je dovolené používať." msgstr[2] "Vyjadrujte sa slušne! Slová %s tu nie je dovolené používať." -#: contrib/comments/models.py:23 +#: contrib/comments/forms.py:180 +msgid "If you enter anything in this field your comment will be treated as spam" +msgstr "Ak ste do tohoto poľa čokoľvek zadali, váš komentár bude považovaný za spam" + +#: contrib/comments/models.py:22 +#: contrib/contenttypes/models.py:74 +msgid "content type" +msgstr "typ obsahu" + +#: contrib/comments/models.py:24 msgid "object ID" msgstr "identifikátor objektu" -#: contrib/comments/models.py:50 +#: contrib/comments/models.py:52 msgid "user's name" msgstr "meno používateľa" -#: contrib/comments/models.py:51 +#: contrib/comments/models.py:53 msgid "user's email address" msgstr "e-mail adresa používateľa" -#: contrib/comments/models.py:52 +#: contrib/comments/models.py:54 msgid "user's URL" msgstr "URL používateľa" -#: contrib/comments/models.py:54 +#: contrib/comments/models.py:56 +#: contrib/comments/models.py:76 +#: contrib/comments/models.py:169 msgid "comment" msgstr "komentár" -#: contrib/comments/models.py:57 +#: contrib/comments/models.py:59 msgid "date/time submitted" msgstr "dátum a čas odoslania" -#: contrib/comments/models.py:59 +#: contrib/comments/models.py:61 msgid "is public" msgstr "je verejný" -#: contrib/comments/models.py:60 -msgid "" -"Uncheck this box to make the comment effectively disappear from the site." -msgstr "" -"Ak chcete, aby komentár zmizol zo stránky, zrušte zaškrtnutie tohoto políčka." - #: contrib/comments/models.py:62 +msgid "Uncheck this box to make the comment effectively disappear from the site." +msgstr "Ak chcete, aby komentár zmizol zo stránky, zrušte zaškrtnutie tohoto políčka." + +#: contrib/comments/models.py:64 msgid "is removed" msgstr "je odstránený" -#: contrib/comments/models.py:63 -msgid "" -"Check this box if the comment is inappropriate. A \"This comment has been " -"removed\" message will be displayed instead." -msgstr "" -"Zaškrtnite toto pole, ak je komentár nevhodný. Namiesto neho sa zobrazí " -"správa \"Tento komenár bol odstránený\"." +#: contrib/comments/models.py:65 +msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead." +msgstr "Zaškrtnite toto pole, ak je komentár nevhodný. Namiesto neho sa zobrazí správa \"Tento komenár bol odstránený\"." -#: contrib/comments/models.py:115 -msgid "" -"This comment was posted by an authenticated user and thus the name is read-" -"only." -msgstr "" -"Tento komentár je od autentifikovaného používateľa a preto je jeho meno len " -"na čítanie." +#: contrib/comments/models.py:77 +msgid "comments" +msgstr "komentáre" -#: contrib/comments/models.py:124 -msgid "" -"This comment was posted by an authenticated user and thus the email is read-" -"only." -msgstr "" -"Tento komentár je od autentifikovaného používateľa a preto je jeho e-mail " -"len na čítanie." +#: contrib/comments/models.py:119 +msgid "This comment was posted by an authenticated user and thus the name is read-only." +msgstr "Tento komentár je od autentifikovaného používateľa a preto je jeho meno len na čítanie." + +#: contrib/comments/models.py:128 +msgid "This comment was posted by an authenticated user and thus the email is read-only." +msgstr "Tento komentár je od autentifikovaného používateľa a preto je jeho e-mail len na čítanie." -#: contrib/comments/models.py:149 +#: contrib/comments/models.py:153 #, python-format msgid "" "Posted by %(user)s at %(date)s\n" @@ -1496,6 +1497,22 @@ msgstr "" "\n" "http://%(domain)s%(url)s" +#: contrib/comments/models.py:170 +msgid "flag" +msgstr "príznak" + +#: contrib/comments/models.py:171 +msgid "date" +msgstr "dátum" + +#: contrib/comments/models.py:181 +msgid "comment flag" +msgstr "komentárový príznak" + +#: contrib/comments/models.py:182 +msgid "comment flags" +msgstr "komentárové príznaky" + #: contrib/comments/templates/comments/approve.html:4 msgid "Approve a comment" msgstr "Povoliť komentár" @@ -1516,10 +1533,8 @@ msgstr "Ďakujeme za povolenie" #: contrib/comments/templates/comments/approved.html:7 #: contrib/comments/templates/comments/deleted.html:7 #: contrib/comments/templates/comments/flagged.html:7 -msgid "" -"Thanks for taking the time to improve the quality of discussion on our site" -msgstr "" -"Ďakujeme za čas, ktorý ste venovali zvýšniu kvality diskusie na našej stránke" +msgid "Thanks for taking the time to improve the quality of discussion on our site" +msgstr "Ďakujeme za čas, ktorý ste venovali zvýšniu kvality diskusie na našej stránke" #: contrib/comments/templates/comments/delete.html:4 msgid "Remove a comment" @@ -1554,13 +1569,13 @@ msgstr "Príznak" msgid "Thanks for flagging" msgstr "Ďakujeme za označenie" -#: contrib/comments/templates/comments/form.html:16 -#: contrib/comments/templates/comments/preview.html:31 +#: contrib/comments/templates/comments/form.html:17 +#: contrib/comments/templates/comments/preview.html:32 msgid "Post" msgstr "Poslať" -#: contrib/comments/templates/comments/form.html:17 -#: contrib/comments/templates/comments/preview.html:32 +#: contrib/comments/templates/comments/form.html:18 +#: contrib/comments/templates/comments/preview.html:33 msgid "Preview" msgstr "Náhľad" @@ -1606,50 +1621,40 @@ msgid "Thank you for your comment" msgstr "Ďakujeme za váš komentár" #: contrib/comments/templates/comments/preview.html:4 -#: contrib/comments/templates/comments/preview.html:12 +#: contrib/comments/templates/comments/preview.html:13 msgid "Preview your comment" msgstr "Náhľad komentára" -#: contrib/comments/templates/comments/preview.html:10 +#: contrib/comments/templates/comments/preview.html:11 msgid "Please correct the error below" msgid_plural "Please correct the errors below" msgstr[0] "Opravte, prosím, chyby uvedené nižšie" msgstr[1] "Opravte, prosím, chybu uvedenú nižšie" msgstr[2] "Opravte, prosím, chyby uvedené nižšie" -#: contrib/comments/templates/comments/preview.html:15 +#: contrib/comments/templates/comments/preview.html:16 msgid "Post your comment" msgstr "Poslať váš komentár" -#: contrib/comments/templates/comments/preview.html:15 +#: contrib/comments/templates/comments/preview.html:16 msgid "or make changes" msgstr "alebo urobiť zmeny" -#: contrib/contenttypes/models.py:67 +#: contrib/contenttypes/models.py:70 msgid "python model class name" msgstr "pythonovské meno triedy modelu" -#: contrib/contenttypes/models.py:71 -msgid "content type" -msgstr "typ obsahu" - -#: contrib/contenttypes/models.py:72 +#: contrib/contenttypes/models.py:75 msgid "content types" msgstr "typy obsahu" #: contrib/flatpages/admin.py:9 -msgid "" -"Example: '/about/contact/'. Make sure to have leading and trailing slashes." -msgstr "" -"Príklad: '/about/contact/'. Uistite sa, že máte lomky na začiatku a na konci." +msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes." +msgstr "Príklad: '/about/contact/'. Uistite sa, že máte lomky na začiatku a na konci." #: contrib/flatpages/admin.py:11 -msgid "" -"This value must contain only letters, numbers, underscores, dashes or " -"slashes." -msgstr "" -"Táto hodnota môže obsahovať len písmená, číslice, podčiarkovniky, pomlčky a " -"lomky." +msgid "This value must contain only letters, numbers, underscores, dashes or slashes." +msgstr "Táto hodnota môže obsahovať len písmená, číslice, podčiarkovniky, pomlčky a lomky." #: contrib/flatpages/admin.py:22 msgid "Advanced options" @@ -1672,12 +1677,8 @@ msgid "template name" msgstr "názov šablóny" #: contrib/flatpages/models.py:12 -msgid "" -"Example: 'flatpages/contact_page.html'. If this isn't provided, the system " -"will use 'flatpages/default.html'." -msgstr "" -"Príklad: 'flatpages/contact_page.html'. Ak nič nenapíšete, systém použije " -"'flatpages/default.html'." +msgid "Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'." +msgstr "Príklad: 'flatpages/contact_page.html'. Ak nič nenapíšete, systém použije 'flatpages/default.html'." #: contrib/flatpages/models.py:13 msgid "registration required" @@ -1685,9 +1686,7 @@ msgstr "nutná registrácia" #: contrib/flatpages/models.py:13 msgid "If this is checked, only logged-in users will be able to view the page." -msgstr "" -"Ak je toto zaškrtnuté, stránku budú môcť prezerať len prihlásení " -"používatelia." +msgstr "Ak je toto zaškrtnuté, stránku budú môcť prezerať len prihlásení používatelia." #: contrib/flatpages/models.py:18 msgid "flat page" @@ -1698,25 +1697,25 @@ msgid "flat pages" msgstr "statické stránky" #: contrib/formtools/wizard.py:130 -msgid "" -"We apologize, but your form has expired. Please continue filling out the " -"form from this page." -msgstr "" -"Ospravedlňujeme sa, ale platnosť formulára vypršala. Prosím, pokračujte vo " -"vypĺňaní z tejto stránky." +msgid "We apologize, but your form has expired. Please continue filling out the form from this page." +msgstr "Ospravedlňujeme sa, ale platnosť formulára vypršala. Prosím, pokračujte vo vypĺňaní z tejto stránky." -#: contrib/gis/forms/fields.py:14 +#: contrib/gis/forms/fields.py:17 msgid "No geometry value provided." msgstr "Nie je zadaná žiadna geometrická hodnota." -#: contrib/gis/forms/fields.py:15 +#: contrib/gis/forms/fields.py:18 msgid "Invalid geometry value." msgstr "Chybná geometrická hodnota." -#: contrib/gis/forms/fields.py:16 +#: contrib/gis/forms/fields.py:19 msgid "Invalid geometry type." msgstr "Chybný geometrický typ." +#: contrib/gis/forms/fields.py:20 +msgid "An error occurred when transforming the geometry to the SRID of the geometry form field." +msgstr "Nastala chyba pri prevode geometrie do SRID z formulárového poľa." + #: contrib/humanize/templatetags/humanize.py:19 msgid "th" msgstr "th" @@ -1809,8 +1808,10 @@ msgstr "včera" msgid "Enter a postal code in the format NNNN or ANNNNAAA." msgstr "Zadajte poštové smerovacie číslo v tvare NNNN alebo ANNNNAAA." -#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96 -#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23 +#: contrib/localflavor/ar/forms.py:49 +#: contrib/localflavor/br/forms.py:96 +#: contrib/localflavor/br/forms.py:135 +#: contrib/localflavor/pe/forms.py:23 #: contrib/localflavor/pe/forms.py:51 msgid "This field requires only numbers." msgstr "Toto pole môže obsahovať len čísla." @@ -1863,15 +1864,15 @@ msgstr "Vorarlbersko" msgid "Vienna" msgstr "Viedeň" -#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16 +#: contrib/localflavor/at/forms.py:20 +#: contrib/localflavor/ch/forms.py:16 #: contrib/localflavor/no/forms.py:12 msgid "Enter a zip code in the format XXXX." msgstr "Zadajte poštové smerovacie číslo v tvare XXXX." #: contrib/localflavor/at/forms.py:48 msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." -msgstr "" -"Zadajte platné rakúske číslo sociálneho poistenia vo formáte XXXX XXXXXX." +msgstr "Zadajte platné rakúske číslo sociálneho poistenia vo formáte XXXX XXXXXX." #: contrib/localflavor/au/forms.py:16 msgid "Enter a 4 digit post code." @@ -1886,11 +1887,8 @@ msgid "Phone numbers must be in XX-XXXX-XXXX format." msgstr "Telefónne čísla musia byť vo formáte XX-XXXX-XXXX." #: contrib/localflavor/br/forms.py:58 -msgid "" -"Select a valid brazilian state. That state is not one of the available " -"states." -msgstr "" -"Vyberte platný brazílsky štát. Tento štát nepatrí medzi existujúce štáty." +msgid "Select a valid brazilian state. That state is not one of the available states." +msgstr "Vyberte platný brazílsky štát. Tento štát nepatrí medzi existujúce štáty." #: contrib/localflavor/br/forms.py:94 msgid "Invalid CPF number." @@ -1914,8 +1912,7 @@ msgstr "Zadajte poštové smerovacie číslo v tvare XXX XXX." #: contrib/localflavor/ca/forms.py:88 msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." -msgstr "" -"Zadajte platné číslo kanadského sociálneho poistenia vo formáte XXX-XXX-XX." +msgstr "Zadajte platné číslo kanadského sociálneho poistenia vo formáte XXX-XXX-XX." #: contrib/localflavor/ch/ch_states.py:5 msgid "Aargau" @@ -2022,12 +2019,8 @@ msgid "Zurich" msgstr "Zurich" #: contrib/localflavor/ch/forms.py:64 -msgid "" -"Enter a valid Swiss identity or passport card number in X1234567<0 or " -"1234567890 format." -msgstr "" -"Vložte platné švajčiarske číslo občianskeho preukazu alebo pasu vo formáte " -"X1234567<0 alebo 1234567890." +msgid "Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format." +msgstr "Vložte platné švajčiarske číslo občianskeho preukazu alebo pasu vo formáte X1234567<0 alebo 1234567890." #: contrib/localflavor/cl/forms.py:29 msgid "Enter a valid Chilean RUT." @@ -2097,7 +2090,8 @@ msgstr "Žlínsky kraj" msgid "Moravian-Silesian Region" msgstr "Moravskosliezsky kraj" -#: contrib/localflavor/cz/forms.py:27 contrib/localflavor/sk/forms.py:30 +#: contrib/localflavor/cz/forms.py:27 +#: contrib/localflavor/sk/forms.py:30 msgid "Enter a postal code in the format XXXXX or XXX XX." msgstr "Zadajte poštové smerovacie číslo v tvare XXXXX alebo XXX XX." @@ -2181,18 +2175,15 @@ msgstr "Schleswigsko-Holsteinsko" msgid "Thuringia" msgstr "Thuringia" -#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12 +#: contrib/localflavor/de/forms.py:14 +#: contrib/localflavor/fi/forms.py:12 #: contrib/localflavor/fr/forms.py:15 msgid "Enter a zip code in the format XXXXX." msgstr "Vložte poštové smerovacie číslo v tvare XXXXX." #: contrib/localflavor/de/forms.py:41 -msgid "" -"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " -"format." -msgstr "" -"Vložte platné nemecké číslo občianskeho preukazu vo formáte XXXXXXXXXXX-" -"XXXXXXX-XXXXXXX-X." +msgid "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X format." +msgstr "Vložte platné nemecké číslo občianskeho preukazu vo formáte XXXXXXXXXXX-XXXXXXX-XXXXXXX-X." #: contrib/localflavor/es/es_provinces.py:5 msgid "Arava" @@ -2463,15 +2454,11 @@ msgstr "Valencijské spoločenstvo" #: contrib/localflavor/es/forms.py:19 msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." -msgstr "" -"Zadajte platné poštové smerovacie číslo v rozmedzí a v tvare 01XXX - 52XXX." +msgstr "Zadajte platné poštové smerovacie číslo v rozmedzí a v tvare 01XXX - 52XXX." #: contrib/localflavor/es/forms.py:39 -msgid "" -"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " -"9XXXXXXXX." -msgstr "" -"Zadajte platné telefónne číslo v tvare 6XXXXXXXX, 8XXXXXXXX alebo 9XXXXXXXX." +msgid "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX." +msgstr "Zadajte platné telefónne číslo v tvare 6XXXXXXXX, 8XXXXXXXX alebo 9XXXXXXXX." #: contrib/localflavor/es/forms.py:66 msgid "Please enter a valid NIF, NIE, or CIF." @@ -2494,10 +2481,8 @@ msgid "Invalid checksum for CIF." msgstr "Neplatný kontrolný súčet pre CIF." #: contrib/localflavor/es/forms.py:142 -msgid "" -"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." -msgstr "" -"Zadajte, prosím, platné číslo bankového účtu v tvare XXXX-XXXX-XX-XXXXXXXXXX." +msgid "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." +msgstr "Zadajte, prosím, platné číslo bankového účtu v tvare XXXX-XXXX-XX-XXXXXXXXXX." #: contrib/localflavor/es/forms.py:143 msgid "Invalid checksum for bank account number." @@ -2507,13 +2492,16 @@ msgstr "Neplatný kontrolný súčet čísla bankového účtu." msgid "Enter a valid Finnish social security number." msgstr "Vložte platné fínske číslo sociálneho poistenia." +#: contrib/localflavor/fr/forms.py:30 +msgid "Phone numbers must be in 0X XX XX XX XX format." +msgstr "Telefónne čísla musia mať formát 0X XX XX XX XX." + #: contrib/localflavor/in_/forms.py:14 msgid "Enter a zip code in the format XXXXXXX." msgstr "Vložte poštové smerovacie číslo v tvare XXXXXXX." #: contrib/localflavor/is_/forms.py:17 -msgid "" -"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." +msgid "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." msgstr "Zadajte platné islandské identifikačné číslo. Formát je XXXXXX-XXXX." #: contrib/localflavor/is_/forms.py:18 @@ -2933,27 +2921,22 @@ msgid "Wrong checksum for the National Identification Number." msgstr "Nesprávny kontrolný súčet pre národné identifikačné číslo." #: contrib/localflavor/pl/forms.py:71 -msgid "" -"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." -msgstr "" -"Zadajte platné daňové číselné pole (NIP) v tvare XXX-XXX-XX-XX alebo XX-XX-" -"XXX-XXX." +msgid "Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." +msgstr "Zadajte platné daňové číselné pole (NIP) v tvare XXX-XXX-XX-XX alebo XX-XX-XXX-XXX." #: contrib/localflavor/pl/forms.py:72 msgid "Wrong checksum for the Tax Number (NIP)." msgstr "Nesprávny kontrolný súčet pre daňové číslo (NIP)." -#: contrib/localflavor/pl/forms.py:111 -msgid "National Business Register Number (REGON) consists of 7 or 9 digits." -msgstr "" -"Číslo národného obchodného registra (REGON) sa skladá zo 7 alebo z 9 číslic." +#: contrib/localflavor/pl/forms.py:109 +msgid "National Business Register Number (REGON) consists of 9 or 14 digits." +msgstr "Číslo národného obchodného registra (REGON) sa skladá z 9 alebo zo 14 číslic." -#: contrib/localflavor/pl/forms.py:112 +#: contrib/localflavor/pl/forms.py:110 msgid "Wrong checksum for the National Business Register Number (REGON)." -msgstr "" -"Nesprávny kontrolný súčet pre číslo národného obchodného registra (REGON)." +msgstr "Nesprávny kontrolný súčet pre číslo národného obchodného registra (REGON)." -#: contrib/localflavor/pl/forms.py:155 +#: contrib/localflavor/pl/forms.py:148 msgid "Enter a postal code in the format XX-XXX." msgstr "Vložte poštové smerovacie číslo v tvare XX-XXX." @@ -3730,24 +3713,16 @@ msgid "redirect from" msgstr "presmerovať z" #: contrib/redirects/models.py:8 -msgid "" -"This should be an absolute path, excluding the domain name. Example: '/" -"events/search/'." -msgstr "" -"Tu by sa mala použiť absolútna cesta bez názvu domény. Napríklad: '/events/" -"search/'." +msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'." +msgstr "Tu by sa mala použiť absolútna cesta bez názvu domény. Napríklad: '/events/search/'." #: contrib/redirects/models.py:9 msgid "redirect to" msgstr "presmerovať na" #: contrib/redirects/models.py:10 -msgid "" -"This can be either an absolute path (as above) or a full URL starting with " -"'http://'." -msgstr "" -"Toto môže byť buď absolútna cesta (ako vyššie) alebo úplné URL začínajúce na " -"'http://'." +msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'." +msgstr "Toto môže byť buď absolútna cesta (ako vyššie) alebo úplné URL začínajúce na 'http://'." #: contrib/redirects/models.py:13 msgid "redirect" @@ -3789,128 +3764,129 @@ msgstr "zobrazené meno" msgid "sites" msgstr "weby" -#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:700 +#: db/models/fields/__init__.py:356 +#: db/models/fields/__init__.py:710 msgid "This value must be an integer." msgstr "Táto hodnota musí byť celé číslo." -#: db/models/fields/__init__.py:387 +#: db/models/fields/__init__.py:388 msgid "This value must be either True or False." msgstr "Táto hodnota musí byť True alebo False." -#: db/models/fields/__init__.py:420 +#: db/models/fields/__init__.py:427 msgid "This field cannot be null." msgstr "Toto pole nemôže byť prázdne." -#: db/models/fields/__init__.py:436 +#: db/models/fields/__init__.py:443 msgid "Enter only digits separated by commas." msgstr "Zadajte len číslice oddelené čiarkami." -#: db/models/fields/__init__.py:467 +#: db/models/fields/__init__.py:474 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Zadajte platný dátum vo formáte RRRR-MM-DD." -#: db/models/fields/__init__.py:476 +#: db/models/fields/__init__.py:483 #, python-format msgid "Invalid date: %s" msgstr "Neplatný dátum: %s" -#: db/models/fields/__init__.py:540 db/models/fields/__init__.py:558 +#: db/models/fields/__init__.py:547 +#: db/models/fields/__init__.py:565 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format." msgstr "Zadajte platný dátum a čas vo formáte RRRR-MM-DD HH:MM[:ss[.uuuuuu]]." -#: db/models/fields/__init__.py:594 +#: db/models/fields/__init__.py:601 msgid "This value must be a decimal number." msgstr "Táto hodnota musí byť desiatkové číslo." -#: db/models/fields/__init__.py:676 +#: db/models/fields/__init__.py:686 msgid "This value must be a float." msgstr "Táto hodnota musí byť číslo s plávajúcou desatinnou čiarkou." -#: db/models/fields/__init__.py:736 +#: db/models/fields/__init__.py:746 msgid "This value must be either None, True or False." msgstr "Táto hodnota musí byť buď None, True alebo False." -#: db/models/fields/__init__.py:839 db/models/fields/__init__.py:853 +#: db/models/fields/__init__.py:849 +#: db/models/fields/__init__.py:863 msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgstr "Zadajte platný čas vo formáte HH:MM[:ss[.uuuuuu]]." -#: db/models/fields/related.py:779 -msgid "" -"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." -msgstr "" -"Ak chcete vybrať viac ako jednu položku, podržte \"Control\", alebo \"Command" -"\" na počítači Mac." +#: db/models/fields/related.py:816 +msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "Ak chcete vybrať viac ako jednu položku, podržte \"Control\", alebo \"Command\" na počítači Mac." -#: db/models/fields/related.py:857 +#: db/models/fields/related.py:894 #, 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] "" -"Prosím, zadajte platný identifikátor %(self)s. Hodnoty %(value)r sú neplatné." -msgstr[1] "" -"Prosím, zadajte platný identifikátor %(self)s. Hodnota %(value)r je neplatná." -msgstr[2] "" -"Prosím, zadajte platný identifikátor %(self)s. Hodnoty %(value)r sú neplatné." +msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid." +msgstr[0] "Prosím, zadajte platný identifikátor %(self)s. Hodnoty %(value)r sú neplatné." +msgstr[1] "Prosím, zadajte platný identifikátor %(self)s. Hodnota %(value)r je neplatná." +msgstr[2] "Prosím, zadajte platný identifikátor %(self)s. Hodnoty %(value)r sú neplatné." -#: forms/fields.py:54 +#: forms/fields.py:53 msgid "This field is required." msgstr "Toto pole je povinné." -#: forms/fields.py:55 +#: forms/fields.py:54 msgid "Enter a valid value." msgstr "Zadajte platnú hodnotu." -#: forms/fields.py:138 +#: forms/fields.py:137 #, python-format msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." msgstr "Uistite sa, že táto hodnota má najviac %(max)d znakov (má %(length)d)." -#: forms/fields.py:139 +#: forms/fields.py:138 #, python-format msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." -msgstr "" -"Uistite sa, že zadaná hodnota má najmenej %(min)d znakov (má %(length)d)." +msgstr "Uistite sa, že zadaná hodnota má najmenej %(min)d znakov (má %(length)d)." -#: forms/fields.py:166 +#: forms/fields.py:165 msgid "Enter a whole number." msgstr "Zadajte celé číslo." -#: forms/fields.py:167 forms/fields.py:196 forms/fields.py:225 +#: forms/fields.py:166 +#: forms/fields.py:195 +#: forms/fields.py:224 #, python-format msgid "Ensure this value is less than or equal to %s." msgstr "Uistite sa, že táto hodnota je menšia alebo rovná %s." -#: forms/fields.py:168 forms/fields.py:197 forms/fields.py:226 +#: forms/fields.py:167 +#: forms/fields.py:196 +#: forms/fields.py:225 #, python-format msgid "Ensure this value is greater than or equal to %s." msgstr "Uistite sa, že hodnota je väčšia alebo rovná %s." -#: forms/fields.py:195 forms/fields.py:224 +#: forms/fields.py:194 +#: forms/fields.py:223 msgid "Enter a number." msgstr "Zadajte číslo." -#: forms/fields.py:227 +#: forms/fields.py:226 #, python-format msgid "Ensure that there are no more than %s digits in total." msgstr "Uistite sa, že nie je zadaných celkovo viac ako %s číslic." -#: forms/fields.py:228 +#: forms/fields.py:227 #, python-format msgid "Ensure that there are no more than %s decimal places." msgstr "Uistite sa, že nie je zadaných viac ako %s desatinných miest." -#: forms/fields.py:229 +#: forms/fields.py:228 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." -msgstr "" -"Uistite sa, že nie je zadaných viac ako %s číslic pred desatinnou čiarkou." +msgstr "Uistite sa, že nie je zadaných viac ako %s číslic pred desatinnou čiarkou." -#: forms/fields.py:287 forms/fields.py:849 +#: forms/fields.py:287 +#: forms/fields.py:862 msgid "Enter a valid date." msgstr "Zadajte platný dátum." -#: forms/fields.py:321 forms/fields.py:850 +#: forms/fields.py:321 +#: forms/fields.py:863 msgid "Enter a valid time." msgstr "Zadajte platný čas." @@ -3930,71 +3906,101 @@ msgstr "Žiaden súbor nebol odoslaný." msgid "The submitted file is empty." msgstr "Odoslaný súbor je prázdny." -#: forms/fields.py:477 -msgid "" -"Upload a valid image. The file you uploaded was either not an image or a " -"corrupted image." -msgstr "" -"Nahrajte platný obrázok. Súbor, ktorý ste odoslali nebol obrázok alebo bol " -"poškodený." +#: forms/fields.py:449 +#, python-format +msgid "Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr "Uistite sa, že názov súboru má najviac %(max)d znakov (má %(length)d)." -#: forms/fields.py:538 +#: forms/fields.py:482 +msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image." +msgstr "Nahrajte platný obrázok. Súbor, ktorý ste odoslali nebol obrázok alebo bol poškodený." + +#: forms/fields.py:543 msgid "Enter a valid URL." msgstr "Zadajte platnú URL adresu." -#: forms/fields.py:539 +#: forms/fields.py:544 msgid "This URL appears to be a broken link." msgstr "Toto URL je chybný odkaz." -#: forms/fields.py:618 forms/fields.py:696 +#: forms/fields.py:624 +#: forms/fields.py:702 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "Vyberte platnú voľbu. %(value)s nepatrí medzi dostupné možnosti." -#: forms/fields.py:697 forms/fields.py:758 forms/models.py:729 +#: forms/fields.py:703 +#: forms/fields.py:764 +#: forms/models.py:1003 msgid "Enter a list of values." msgstr "Vložte zoznam hodnôt." -#: forms/fields.py:878 +#: forms/fields.py:891 msgid "Enter a valid IPv4 address." msgstr "Zadajte platnú IPv4 adresu." -#: forms/fields.py:888 -msgid "" -"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." -msgstr "" -"Zadajte platný 'slug' pozostávajúci z písmen, čísel, podčiarkovníkov alebo " -"pomlčiek." +#: forms/fields.py:901 +msgid "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." +msgstr "Zadajte platný 'slug' pozostávajúci z písmen, čísel, podčiarkovníkov alebo pomlčiek." -#: forms/formsets.py:247 forms/formsets.py:249 +#: forms/formsets.py:271 +#: forms/formsets.py:273 msgid "Order" msgstr "Poradie" -#: forms/models.py:289 forms/models.py:298 +#: forms/models.py:367 +#, python-format +msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s." +msgstr "%(field_name)s musí byť unikátne pre %(date_field)s %(lookup)s." + +#: forms/models.py:381 +#: forms/models.py:389 #, python-format msgid "%(model_name)s with this %(field_label)s already exists." msgstr "%(model_name)s s týmto %(field_label)s už existuje." -#: forms/models.py:602 +#: forms/models.py:594 +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "Prosím, opravte duplicitné dáta pre %(field)s." + +#: forms/models.py:598 +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "Dáta pre %(field)s musia byť unikátne, prosím, opravte duplikáty." + +#: forms/models.py:604 +#, python-format +msgid "Please correct the duplicate data for %(field_name)s which must be unique for the %(lookup)s in %(date_field)s." +msgstr "Dáta pre %(field_name)s musia byť unikátne pre %(lookup)s v %(date_field)s, prosím, opravte duplikáty." + +#: forms/models.py:612 +msgid "Please correct the duplicate values below." +msgstr "Prosím, opravte nižšie uvedené duplicitné hodnoty. " + +#: forms/models.py:867 msgid "The inline foreign key did not match the parent instance primary key." -msgstr "" -"Vnorený cudzí kľúč sa nezhoduje s nadradenou inštanciou primárnho kľúča." +msgstr "Vnorený cudzí kľúč sa nezhoduje s nadradenou inštanciou primárnho kľúča." -#: forms/models.py:659 +#: forms/models.py:930 msgid "Select a valid choice. That choice is not one of the available choices." -msgstr "" -"Vyberte platnú možnosť. Vybraná položka nepatrí medzi dostupné možnosti." +msgstr "Vyberte platnú možnosť. Vybraná položka nepatrí medzi dostupné možnosti." -#: forms/models.py:730 +#: forms/models.py:1004 #, python-format msgid "Select a valid choice. %s is not one of the available choices." msgstr "Vyberte platnú možnost. %s nepatrí medzi dostupné možnosti." -#: template/defaultfilters.py:751 +#: forms/models.py:1006 +#, python-format +msgid "\"%s\" is not a valid value for a primary key." +msgstr "\"%s\" nie je platná hodnota pre primárny kľúč." + +#: template/defaultfilters.py:767 msgid "yes,no,maybe" msgstr "áno,nie,možno" -#: template/defaultfilters.py:782 +#: template/defaultfilters.py:798 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" @@ -4002,42 +4008,42 @@ msgstr[0] "%(size)d bajtov" msgstr[1] "%(size)d bajt" msgstr[2] "%(size)d bajty" -#: template/defaultfilters.py:784 +#: template/defaultfilters.py:800 #, python-format msgid "%.1f KB" msgstr "%.1f KB" -#: template/defaultfilters.py:786 +#: template/defaultfilters.py:802 #, python-format msgid "%.1f MB" msgstr "%.1f MB" -#: template/defaultfilters.py:787 +#: template/defaultfilters.py:803 #, python-format msgid "%.1f GB" msgstr "%.1f GB" -#: utils/dateformat.py:41 +#: utils/dateformat.py:42 msgid "p.m." msgstr "popoludní" -#: utils/dateformat.py:42 +#: utils/dateformat.py:43 msgid "a.m." msgstr "dopoludnia" -#: utils/dateformat.py:47 +#: utils/dateformat.py:48 msgid "PM" msgstr "popoludní" -#: utils/dateformat.py:48 +#: utils/dateformat.py:49 msgid "AM" msgstr "dopoludnia" -#: utils/dateformat.py:97 +#: utils/dateformat.py:98 msgid "midnight" msgstr "polnoc" -#: utils/dateformat.py:99 +#: utils/dateformat.py:100 msgid "noon" msgstr "poludnie" @@ -4105,23 +4111,28 @@ msgstr "január" msgid "February" msgstr "február" -#: utils/dates.py:18 utils/dates.py:31 +#: utils/dates.py:18 +#: utils/dates.py:31 msgid "March" msgstr "marec" -#: utils/dates.py:18 utils/dates.py:31 +#: utils/dates.py:18 +#: utils/dates.py:31 msgid "April" msgstr "apríl" -#: utils/dates.py:18 utils/dates.py:31 +#: utils/dates.py:18 +#: utils/dates.py:31 msgid "May" msgstr "máj" -#: utils/dates.py:18 utils/dates.py:31 +#: utils/dates.py:18 +#: utils/dates.py:31 msgid "June" msgstr "jún" -#: utils/dates.py:19 utils/dates.py:31 +#: utils/dates.py:19 +#: utils/dates.py:31 msgid "July" msgstr "júl" @@ -4267,16 +4278,16 @@ msgstr[0] "minút" msgstr[1] "minúta" msgstr[2] "minúty" -#: utils/timesince.py:43 +#: utils/timesince.py:45 msgid "minutes" msgstr "minúty" -#: utils/timesince.py:48 +#: utils/timesince.py:50 #, python-format msgid "%(number)d %(type)s" msgstr "%(number)d %(type)s" -#: utils/timesince.py:54 +#: utils/timesince.py:56 #, python-format msgid ", %(number)d %(type)s" msgstr ", %(number)d %(type)s" @@ -4311,3 +4322,4 @@ msgstr "Objekt %(verbose_name)s bol úspešne zmenený." #, python-format msgid "The %(verbose_name)s was deleted." msgstr "Objekt %(verbose_name)s bol zmazaný." + diff --git a/django/conf/locale/sk/LC_MESSAGES/djangojs.mo b/django/conf/locale/sk/LC_MESSAGES/djangojs.mo index 7d8d805dcd14..a9246a3f7cb1 100644 Binary files a/django/conf/locale/sk/LC_MESSAGES/djangojs.mo and b/django/conf/locale/sk/LC_MESSAGES/djangojs.mo differ diff --git a/django/conf/locale/sk/LC_MESSAGES/djangojs.po b/django/conf/locale/sk/LC_MESSAGES/djangojs.po index f5d7c2951c0d..0a82c2e811a0 100644 --- a/django/conf/locale/sk/LC_MESSAGES/djangojs.po +++ b/django/conf/locale/sk/LC_MESSAGES/djangojs.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-03-20 20:16+0100\n" +"POT-Creation-Date: 2009-09-17 12:00+0200\n" "PO-Revision-Date: 2009-03-15 17:23+0100\n" "Last-Translator: Marian Andre \n" "Language-Team: Slovak \n" diff --git a/django/conf/locale/sq/LC_MESSAGES/django.mo b/django/conf/locale/sq/LC_MESSAGES/django.mo new file mode 100644 index 000000000000..379de3faea49 Binary files /dev/null and b/django/conf/locale/sq/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/sq/LC_MESSAGES/django.po b/django/conf/locale/sq/LC_MESSAGES/django.po new file mode 100644 index 000000000000..4750c511488f --- /dev/null +++ b/django/conf/locale/sq/LC_MESSAGES/django.po @@ -0,0 +1,5011 @@ +# This file is distributed under the same license as the Django package. +# +msgid "" +msgstr "" +"Project-Id-Version: Django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-01-27 22:39-0800\n" +"PO-Revision-Date: 2010-01-27 23:01+0200\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:8 +msgid "" +"\n" +"

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

              \n" +msgstr "" + +#: contrib/admin/templates/admin/filter.html:2 +#, python-format +msgid " By %(filter_title)s " +msgstr "" + +#: forms/models.py:964 +#, python-format +msgid "\"%s\" is not a valid value for a primary key." +msgstr "" + +#: contrib/admin/options.py:1006 +#, python-format +msgid "%(count)s %(name)s was changed successfully." +msgid_plural "%(count)s %(name)s were changed successfully." +msgstr[0] "" +msgstr[1] "" + +#: db/models/base.py:775 +#, python-format +msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s." +msgstr "" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +#: db/models/base.py:790 db/models/base.py:798 +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Ka tashmë një %(model_name)s me këtë %(field_label)s." + +#: contrib/admin/templates/admin/app_index.html:10 +#: contrib/admin/templates/admin/index.html:19 +#, python-format +msgid "%(name)s" +msgstr "" + +#: contrib/admin/options.py:860 contrib/admin/options.py:1072 +#, python-format +msgid "%(name)s object with primary key %(key)r does not exist." +msgstr "" + +#: utils/timesince.py:50 +#, python-format +msgid "%(number)d %(type)s" +msgstr "" + +#: contrib/comments/feeds.py:13 +#, python-format +msgid "%(site_name)s comments" +msgstr "" + +#: template/defaultfilters.py:806 +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" + +#: contrib/humanize/templatetags/humanize.py:54 +#, python-format +msgid "%(value).1f billion" +msgid_plural "%(value).1f billion" +msgstr[0] "" +msgstr[1] "" + +#: contrib/humanize/templatetags/humanize.py:51 +#, python-format +msgid "%(value).1f million" +msgid_plural "%(value).1f million" +msgstr[0] "" +msgstr[1] "" + +#: contrib/humanize/templatetags/humanize.py:57 +#, python-format +msgid "%(value).1f trillion" +msgid_plural "%(value).1f trillion" +msgstr[0] "" +msgstr[1] "" + +#: template/defaultfilters.py:811 +#, python-format +msgid "%.1f GB" +msgstr "" + +#: template/defaultfilters.py:808 +#, python-format +msgid "%.1f KB" +msgstr "" + +#: template/defaultfilters.py:810 +#, python-format +msgid "%.1f MB" +msgstr "" + +#: contrib/admin/sites.py:447 +#, python-format +msgid "%s administration" +msgstr "" + +#: contrib/admindocs/views.py:361 +#, python-format +msgid "%s does not appear to be a urlpattern object" +msgstr "" + +#: utils/timesince.py:56 +#, python-format +msgid ", %(number)d %(type)s" +msgstr "" + +#: contrib/comments/admin.py:60 +#, python-format +msgid "1 comment was successfully %(action)s." +msgid_plural "%(count)s comments were successfully %(action)s." +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/templates/admin/search_form.html:10 +#, python-format +msgid "1 result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/filterspecs.py:44 +#, python-format +msgid "" +"

              By %s:

              \n" +"
                \n" +msgstr "" + +#: contrib/admin/templates/admin/actions.html:7 +#, python-format +msgid "" +"0 of %(total_count)s %(module_name)s selected" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:19 +msgid "A Coruna" +msgstr "" + +#: contrib/auth/forms.py:31 +msgid "A user with that username already exists." +msgstr "" + +#: utils/dateformat.py:49 +msgid "AM" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:5 +msgid "Aargau" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:24 +msgid "Action" +msgstr "" + +#: contrib/admin/helpers.py:19 +msgid "Action:" +msgstr "" + +#: contrib/admin/templates/admin/change_form.html:21 +#: contrib/admin/templates/admin/index.html:29 +msgid "Add" +msgstr "" + +#: contrib/admin/templates/admin/change_list.html:57 +#, python-format +msgid "Add %(name)s" +msgstr "" + +#: contrib/admin/options.py:834 +#, python-format +msgid "Add %s" +msgstr "" + +#: contrib/admin/widgets.py:238 +msgid "Add Another" +msgstr "" + +#: contrib/admin/templates/admin/edit_inline/stacked.html:33 +#: contrib/admin/templates/admin/edit_inline/tabular.html:78 +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "" + +#: contrib/admin/options.py:561 +#, python-format +msgid "Added %(name)s \"%(object)s\"." +msgstr "" + +#: contrib/flatpages/admin.py:22 +msgid "Advanced options" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:12 +msgid "Aguascalientes" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:26 +msgid "Aichi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:8 +msgid "Akita" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:7 +msgid "Alacant" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:6 +msgid "Albacete" +msgstr "" + +#: contrib/admin/filterspecs.py:75 contrib/admin/filterspecs.py:92 +#: contrib/admin/filterspecs.py:147 contrib/admin/filterspecs.py:173 +msgid "All" +msgstr "" + +#: contrib/admin/templates/admin/actions.html:11 +#, python-format +msgid "All %(total_count)s %(module_name)s selected" +msgstr "" + +#: contrib/admin/templatetags/admin_list.py:240 +msgid "All dates" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:8 +msgid "Almeria" +msgstr "" + +#: contrib/gis/forms/fields.py:20 +msgid "" +"An error occurred when transforming the geometry to the SRID of the geometry " +"form field." +msgstr "" + +#: contrib/localflavor/es/es_regions.py:5 +msgid "Andalusia" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:8 +msgid "Antrim" +msgstr "" + +#: contrib/admin/filterspecs.py:113 +msgid "Any date" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:5 +msgid "Aomori" +msgstr "" + +#: contrib/admindocs/views.py:190 +#, python-format +msgid "App %r not found" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:7 +msgid "Appenzell Ausserrhoden" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:6 +msgid "Appenzell Innerrhoden" +msgstr "" + +#: contrib/comments/templates/comments/approve.html:12 +msgid "Approve" +msgstr "" + +#: contrib/comments/templates/comments/approve.html:4 +msgid "Approve a comment" +msgstr "" + +#: contrib/comments/admin.py:44 +msgid "Approve selected comments" +msgstr "" + +#: utils/dates.py:18 utils/dates.py:31 +msgid "April" +msgstr "" + +#: conf/global_settings.py:44 +msgid "Arabic" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:6 +msgid "Aragon" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:5 +msgid "Arava" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:23 +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"? " +"All of the following related items will be deleted:" +msgstr "" + +#: contrib/admin/templates/admin/delete_selected_confirmation.html:22 +#, python-format +msgid "" +"Are you sure you want to delete the selected %(object_name)s objects? All of " +"the following objects and their related items will be deleted:" +msgstr "" + +#: contrib/admin/actions.py:67 contrib/admin/options.py:1094 +msgid "Are you sure?" +msgstr "" + +#: conf/global_settings.py:56 +msgid "Argentinean Spanish" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:9 +msgid "Armagh" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:28 +msgid "As above, but opens the admin page in a new window." +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:37 +msgid "Asturias" +msgstr "" + +#: utils/dates.py:32 +msgid "Aug." +msgstr "" + +#: utils/dates.py:19 +msgid "August" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:9 +msgid "Avila" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:10 +msgid "Badajoz" +msgstr "" + +#: contrib/localflavor/de/de_states.py:5 +msgid "Baden-Wuerttemberg" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:13 +msgid "Baja California" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:14 +msgid "Baja California Sur" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:8 +msgid "Balearic Islands" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:9 +#: contrib/localflavor/id/id_choices.py:73 +msgid "Bali" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:65 +msgid "Bandung" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:11 +msgid "Banovce nad Bebravou" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:8 +msgid "Banska Bystrica" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:8 +msgid "Banska Bystrica region" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:9 +msgid "Banska Stiavnica" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:10 +#: contrib/localflavor/id/id_choices.py:45 +msgid "Banten" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:95 +msgid "Banyumas" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:12 +msgid "Barcelona" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:10 +msgid "Bardejov" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:9 +msgid "Basel-Land" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:8 +msgid "Basel-Stadt" +msgstr "" + +#: conf/global_settings.py:58 +msgid "Basque" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:9 +msgid "Basque Country" +msgstr "" + +#: contrib/localflavor/de/de_states.py:6 +msgid "Bavaria" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:11 +msgid "Bedfordshire" +msgstr "" + +#: conf/global_settings.py:46 +msgid "Bengali" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:11 +#: contrib/localflavor/id/id_choices.py:54 +msgid "Bengkulu" +msgstr "" + +#: contrib/localflavor/de/de_states.py:7 +msgid "Berlin" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:10 +msgid "Berne" +msgstr "" + +#: db/models/fields/__init__.py:892 +msgid "Big (8 byte) integer" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:52 +msgid "Bizkaia" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:25 +msgid "Blekinge" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:84 +msgid "Bogor" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:97 +msgid "Bojonegoro" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 +msgid "Bookmarklets" +msgstr "" + +#: db/models/fields/__init__.py:512 +msgid "Boolean (Either True or False)" +msgstr "" + +#: db/models/fields/__init__.py:923 +msgid "Boolean (Either True, False or None)" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:75 +msgid "Borders" +msgstr "" + +#: conf/global_settings.py:47 +msgid "Bosnian" +msgstr "" + +#: contrib/localflavor/de/de_states.py:8 +msgid "Brandenburg" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:13 +msgid "Bratislava I" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:14 +msgid "Bratislava II" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:15 +msgid "Bratislava III" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:16 +msgid "Bratislava IV" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:17 +msgid "Bratislava V" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:9 +msgid "Bratislava region" +msgstr "" + +#: conf/global_settings.py:83 +msgid "Brazilian Portuguese" +msgstr "" + +#: contrib/localflavor/de/de_states.py:9 +msgid "Bremen" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:12 +msgid "Brezno" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:12 +msgid "Buckinghamshire" +msgstr "" + +#: conf/global_settings.py:45 +msgid "Bulgarian" +msgstr "" + +#: contrib/localflavor/at/at_states.py:5 +msgid "Burgenland" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:13 +msgid "Burgos" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:18 +msgid "Bytca" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:14 +msgid "Caceres" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:19 +msgid "Cadca" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:15 +msgid "Cadiz" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:15 +msgid "Campeche" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:10 +msgid "Canary Islands" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:43 +#: contrib/localflavor/es/es_regions.py:11 +msgid "Cantabria" +msgstr "" + +#: contrib/localflavor/at/at_states.py:6 +msgid "Carinthia" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:10 +msgid "Carlow" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:12 +msgid "Carlsbad Region" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:16 +msgid "Castello" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:13 +msgid "Castile and Leon" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:12 +msgid "Castile-La Mancha" +msgstr "" + +#: conf/global_settings.py:48 +msgid "Catalan" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:14 +msgid "Catalonia" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:11 +msgid "Cavan" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:9 +msgid "Central Bohemian Region" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:76 +msgid "Central Scotland" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:55 +msgid "Ceuta" +msgstr "" + +#: contrib/admin/templates/admin/index.html:35 +msgid "Change" +msgstr "" + +#: contrib/admin/options.py:925 +#, python-format +msgid "Change %s" +msgstr "" + +#: contrib/admin/options.py:1124 +#, python-format +msgid "Change history: %s" +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:43 +#: contrib/admin/templates/registration/password_reset_confirm.html:21 +msgid "Change my password" +msgstr "" + +#: contrib/admin/templates/admin/base.html:40 +#: contrib/admin/templates/admin/auth/user/change_password.html:15 +#: contrib/admin/templates/admin/auth/user/change_password.html:48 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/registration/password_change_form.html:4 +msgid "Change password" +msgstr "" + +#: contrib/auth/admin.py:121 +#, python-format +msgid "Change password: %s" +msgstr "" + +#: contrib/admin/widgets.py:96 +msgid "Change:" +msgstr "" + +#: contrib/admin/options.py:565 +#, python-format +msgid "Changed %(list)s for %(name)s \"%(object)s\"." +msgstr "" + +#: contrib/admin/options.py:556 +#, python-format +msgid "Changed %s." +msgstr "" + +#: contrib/comments/models.py:65 +msgid "" +"Check this box if the comment is inappropriate. A \"This comment has been " +"removed\" message will be displayed instead." +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:14 +msgid "Cheshire" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:17 +msgid "Chiapas" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:15 +msgid "Chiba" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:16 +msgid "Chihuahua" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:80 +msgid "Cirebon" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:17 +msgid "Ciudad Real" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:12 +msgid "Clare" +msgstr "" + +#: contrib/admin/templates/admin/actions.html:16 +msgid "Clear selection" +msgstr "" + +#: contrib/admin/templates/admin/actions.html:14 +msgid "Click here to select all objects across all pages" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:64 +msgid "Clwyd" +msgstr "" + +#: contrib/localflavor/se/forms.py:108 +msgid "Co-ordination numbers are not allowed." +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:18 +msgid "Coahuila" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:19 +msgid "Colima" +msgstr "" + +#: db/models/fields/__init__.py:582 +msgid "Comma-separated integers" +msgstr "" + +#: contrib/comments/forms.py:96 +msgid "Comment" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:20 +msgid "Confirm password:" +msgstr "" + +#: contrib/comments/admin.py:12 +msgid "Content" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:18 +msgid "Cordoba" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:13 +msgid "Cork" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:15 +msgid "Cornwall and Isles of Scilly" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:63 +msgid "Corps Consulate" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:64 +msgid "Corps Diplomatic" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:55 +msgid "County Antrim" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:56 +msgid "County Armagh" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:57 +msgid "County Down" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:58 +msgid "County Fermanagh" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:59 +msgid "County Londonderry" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:60 +msgid "County Tyrone" +msgstr "" + +#: conf/global_settings.py:67 +msgid "Croatian" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:20 +msgid "Cuenca" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:16 +msgid "Cumbria" +msgstr "" + +#: contrib/admin/widgets.py:96 +msgid "Currently:" +msgstr "" + +#: conf/global_settings.py:49 +msgid "Czech" +msgstr "" + +#: utils/translation/trans_real.py:531 +msgid "DATETIME_FORMAT" +msgstr "" + +#: utils/translation/trans_real.py:530 +msgid "DATE_FORMAT" +msgstr "N j, Y" + +#: contrib/localflavor/se/se_counties.py:32 +msgid "Dalarna" +msgstr "" + +#: conf/global_settings.py:51 +msgid "Danish" +msgstr "" + +#: contrib/admin/options.py:970 +msgid "Database error" +msgstr "" + +#: db/models/fields/__init__.py:684 +msgid "Date (with time)" +msgstr "" + +#: db/models/fields/__init__.py:596 +msgid "Date (without time)" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:22 +msgid "Date/time" +msgstr "" + +#: contrib/admin/widgets.py:72 +msgid "Date:" +msgstr "" + +#: utils/dates.py:32 +msgid "Dec." +msgstr "" + +#: utils/dates.py:20 +msgid "December" +msgstr "" + +#: db/models/fields/__init__.py:752 +msgid "Decimal number" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:10 +#: contrib/admin/templates/admin/submit_line.html:4 forms/formsets.py:291 +msgid "Delete" +msgstr "" + +#: contrib/admin/templates/admin/delete_selected_confirmation.html:9 +msgid "Delete multiple objects" +msgstr "" + +#: contrib/admin/actions.py:85 +#, python-format +msgid "Delete selected %(verbose_name_plural)s" +msgstr "" + +#: contrib/admin/templates/admin/edit_inline/tabular.html:15 +msgid "Delete?" +msgstr "" + +#: contrib/admin/options.py:570 +#, python-format +msgid "Deleted %(name)s \"%(object)s\"." +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:16 +#, python-format +msgid "" +"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " +"related objects, but your account doesn't have permission to delete the " +"following types of objects:" +msgstr "" + +#: contrib/admin/templates/admin/delete_selected_confirmation.html:15 +#, python-format +msgid "" +"Deleting the %(object_name)s would result in deleting related objects, but " +"your account doesn't have permission to delete the following types of " +"objects:" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:17 +msgid "Derbyshire" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:14 +msgid "Derry" +msgstr "" + +#: contrib/auth/models.py:187 +msgid "" +"Designates that this user has all permissions without explicitly assigning " +"them." +msgstr "" + +#: contrib/auth/models.py:185 +msgid "Designates whether the user can log into this admin site." +msgstr "" + +#: contrib/auth/models.py:186 +msgid "" +"Designates whether this user should be treated as active. Unselect this " +"instead of deleting accounts." +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:20 +msgid "Detva" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:18 +msgid "Devon" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:20 +msgid "Distrito Federal" +msgstr "" + +#: contrib/admin/templates/admin/base_site.html:7 +msgid "Django administration" +msgstr "" + +#: contrib/admin/templates/admin/base_site.html:4 +msgid "Django site admin" +msgstr "" + +#: contrib/admin/templates/admin/base.html:32 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 +msgid "Documentation" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:4 +msgid "Documentation bookmarklets" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:18 +msgid "Documentation for this page" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:21 +msgid "Dolny Kubin" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:15 +msgid "Donegal" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:19 +msgid "Dorset" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:16 +msgid "Down" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:4 +msgid "Drenthe" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:17 +msgid "Dublin" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:77 +msgid "Dumfries and Galloway" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:22 +msgid "Dunajska Streda" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:21 +msgid "Durango" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:20 +msgid "Durham" +msgstr "" + +#: conf/global_settings.py:79 +msgid "Dutch" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:65 +msgid "Dyfed" +msgstr "" + +#: contrib/auth/forms.py:101 +msgid "E-mail" +msgstr "" + +#: db/models/fields/__init__.py:807 +msgid "E-mail address" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "E-mail address:" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:21 +msgid "East Sussex" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:4 +msgid "Eastern Cape" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:24 +msgid "Edit this object (current window)" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:27 +msgid "Edit this object (new window)" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:41 +msgid "Ehime" +msgstr "" + +#: contrib/comments/forms.py:94 +msgid "Email address" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:90 +msgid "England" +msgstr "" + +#: conf/global_settings.py:54 +msgid "English" +msgstr "" + +#: forms/fields.py:251 +#, python-format +msgid "Ensure that there are no more than %s decimal places." +msgstr "Sigurohuni që nuk ka më shumë se %s vende dhjetore." + +#: forms/fields.py:252 +#, python-format +msgid "Ensure that there are no more than %s digits before the decimal point." +msgstr "Sigurohuni që nuk ka më tepër se %s shifra para presjes dhjetore." + +#: forms/fields.py:250 +#, python-format +msgid "Ensure that there are no more than %s digits in total." +msgstr "Sigurohuni që nuk ka më tepër se %s shifra gjithsej." + +#: forms/fields.py:424 +#, python-format +msgid "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr "" + +#: core/validators.py:129 +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d characters (it has %" +"(show_value)d)." +msgstr "" + +#: core/validators.py:135 +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d characters (it has %" +"(show_value)d)." +msgstr "" + +#: core/validators.py:100 +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" + +#: core/validators.py:123 forms/fields.py:197 forms/fields.py:249 +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" + +#: core/validators.py:118 forms/fields.py:196 forms/fields.py:248 +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" + +#: contrib/localflavor/au/forms.py:17 +msgid "Enter a 4 digit post code." +msgstr "" + +#: contrib/localflavor/se/forms.py:150 +msgid "Enter a Swedish postal code in the format XXXXX." +msgstr "" + +#: contrib/localflavor/us/forms.py:88 +msgid "Enter a U.S. state or territory." +msgstr "" + +#: contrib/localflavor/cz/forms.py:48 +msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." +msgstr "" + +#: forms/fields.py:653 forms/fields.py:715 forms/models.py:961 +msgid "Enter a list of values." +msgstr "Jepni një listë vlerash." + +#: contrib/admin/templates/admin/auth/user/change_password.html:28 +#, python-format +msgid "Enter a new password for the user %(username)s." +msgstr "" + +#: forms/fields.py:225 forms/fields.py:247 +msgid "Enter a number." +msgstr "Jepni një numër." + +#: contrib/localflavor/ar/forms.py:28 +msgid "Enter a postal code in the format NNNN or ANNNNAAA." +msgstr "" + +#: contrib/localflavor/pl/forms.py:148 +msgid "Enter a postal code in the format XX-XXX." +msgstr "" + +#: contrib/localflavor/ca/forms.py:25 +msgid "Enter a postal code in the format XXX XXX." +msgstr "" + +#: contrib/localflavor/cz/forms.py:28 contrib/localflavor/sk/forms.py:30 +msgid "Enter a postal code in the format XXXXX or XXX XX." +msgstr "" + +#: contrib/localflavor/jp/forms.py:16 +msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX." +msgstr "" + +#: contrib/localflavor/pl/forms.py:71 +msgid "" +"Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX." +msgstr "" + +#: core/validators.py:88 forms/fields.py:854 +msgid "" +"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Jepni një 'slug' të vlefshëm, të përbërë nga shkronja, numra, nëvija ose " +"vija në mes." + +#: contrib/localflavor/at/forms.py:48 +msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." +msgstr "" + +#: contrib/localflavor/uy/forms.py:28 +msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." +msgstr "" + +#: contrib/localflavor/uy/forms.py:30 +msgid "Enter a valid CI number." +msgstr "" + +#: contrib/localflavor/ro/forms.py:19 +msgid "Enter a valid CIF." +msgstr "" + +#: contrib/localflavor/ro/forms.py:56 +msgid "Enter a valid CNP." +msgstr "" + +#: contrib/localflavor/ar/forms.py:80 +msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." +msgstr "" + +#: contrib/localflavor/ca/forms.py:96 +msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." +msgstr "" + +#: contrib/localflavor/cl/forms.py:30 +msgid "Enter a valid Chilean RUT." +msgstr "" + +#: contrib/localflavor/cl/forms.py:31 +msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." +msgstr "" + +#: contrib/localflavor/fi/forms.py:29 +msgid "Enter a valid Finnish social security number." +msgstr "" + +#: contrib/localflavor/de/forms.py:42 +msgid "" +"Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " +"format." +msgstr "" + +#: contrib/localflavor/ro/forms.py:141 +msgid "Enter a valid IBAN in ROXX-XXXX-XXXX-XXXX-XXXX-XXXX format" +msgstr "" + +#: contrib/localflavor/cz/forms.py:107 +msgid "Enter a valid IC number." +msgstr "" + +#: core/validators.py:91 forms/fields.py:847 +msgid "Enter a valid IPv4 address." +msgstr "Jepni një vendndodhje të vlefshme IPv4." + +#: contrib/localflavor/is_/forms.py:18 +msgid "" +"Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." +msgstr "" + +#: contrib/localflavor/kw/forms.py:25 +msgid "Enter a valid Kuwaiti Civil ID number" +msgstr "" + +#: contrib/localflavor/id/forms.py:170 +msgid "Enter a valid NIK/KTP number" +msgstr "" + +#: contrib/localflavor/no/forms.py:34 +msgid "Enter a valid Norwegian social security number." +msgstr "" + +#: contrib/localflavor/nl/forms.py:79 +msgid "Enter a valid SoFi number" +msgstr "" + +#: contrib/localflavor/it/forms.py:44 +msgid "Enter a valid Social Security number." +msgstr "" + +#: contrib/localflavor/za/forms.py:21 +msgid "Enter a valid South African ID number" +msgstr "" + +#: contrib/localflavor/za/forms.py:55 +msgid "Enter a valid South African postal code" +msgstr "" + +#: contrib/localflavor/se/forms.py:50 +msgid "Enter a valid Swedish organisation number." +msgstr "" + +#: contrib/localflavor/se/forms.py:107 +msgid "Enter a valid Swedish personal identity number." +msgstr "" + +#: contrib/localflavor/ch/forms.py:65 +msgid "" +"Enter a valid Swiss identity or passport card number in X1234567<0 or " +"1234567890 format." +msgstr "" + +#: contrib/localflavor/us/forms.py:55 +msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." +msgstr "" + +#: core/validators.py:69 forms/fields.py:510 +msgid "Enter a valid URL." +msgstr "Jepni një URL të vlefshme." + +#: contrib/localflavor/it/forms.py:69 +msgid "Enter a valid VAT number." +msgstr "" + +#: contrib/localflavor/cz/forms.py:50 +msgid "Enter a valid birth number." +msgstr "" + +#: db/models/fields/__init__.py:600 +msgid "Enter a valid date in YYYY-MM-DD format." +msgstr "Jepni një datë të vlefshme në formatin YYYY-MM-DD." + +#: forms/fields.py:309 forms/fields.py:819 +msgid "Enter a valid date." +msgstr "Jepni një datë të vlefshme." + +#: db/models/fields/__init__.py:682 +msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format." +msgstr "" +"Jepni një datë/kohë të vlefshme, në formatin YYYY-MM-DD HH:MM[:ss[.uuuuuu]]." + +#: forms/fields.py:363 +msgid "Enter a valid date/time." +msgstr "Jepni një datë/kohë të vlefshme." + +#: contrib/auth/management/commands/createsuperuser.py:23 +#: core/validators.py:85 forms/fields.py:414 +msgid "Enter a valid e-mail address." +msgstr "" + +#: contrib/localflavor/id/forms.py:68 contrib/localflavor/nl/forms.py:53 +msgid "Enter a valid phone number" +msgstr "" + +#: contrib/localflavor/es/forms.py:40 +msgid "" +"Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " +"9XXXXXXXX." +msgstr "" + +#: contrib/localflavor/id/forms.py:28 +msgid "Enter a valid post code" +msgstr "" + +#: contrib/localflavor/nl/forms.py:22 +msgid "Enter a valid postal code" +msgstr "" + +#: contrib/localflavor/ro/forms.py:194 +msgid "Enter a valid postal code in the format XXXXXX" +msgstr "" + +#: contrib/localflavor/es/forms.py:20 +msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." +msgstr "" + +#: contrib/localflavor/uk/forms.py:21 +msgid "Enter a valid postcode." +msgstr "" + +#: db/models/fields/__init__.py:1027 +msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." +msgstr "Jepni një kohë të vlefshme, në formatin HH:MM[:ss[.uuuuuu]]." + +#: forms/fields.py:337 forms/fields.py:820 +msgid "Enter a valid time." +msgstr "Jepni një kohë të vlefshme." + +#: core/validators.py:19 forms/fields.py:66 +msgid "Enter a valid value." +msgstr "Jepni vlerë të vlefshme." + +#: contrib/localflavor/id/forms.py:107 +msgid "Enter a valid vehicle license plate number" +msgstr "" + +#: contrib/localflavor/it/forms.py:15 +msgid "Enter a valid zip code." +msgstr "" + +#: forms/fields.py:195 +msgid "Enter a whole number." +msgstr "Jepni një numër të tërë." + +#: contrib/localflavor/pt/forms.py:17 +msgid "Enter a zip code in the format XXXX-XXX." +msgstr "" + +#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:17 +#: contrib/localflavor/no/forms.py:13 +msgid "Enter a zip code in the format XXXX." +msgstr "" + +#: contrib/localflavor/us/forms.py:17 +msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." +msgstr "" + +#: contrib/localflavor/br/forms.py:22 +msgid "Enter a zip code in the format XXXXX-XXX." +msgstr "" + +#: contrib/localflavor/de/forms.py:15 contrib/localflavor/fi/forms.py:13 +#: contrib/localflavor/fr/forms.py:16 +msgid "Enter a zip code in the format XXXXX." +msgstr "" + +#: contrib/localflavor/in_/forms.py:15 +msgid "Enter a zip code in the format XXXXXXX." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:12 +msgid "Enter new password" +msgstr "" + +#: core/validators.py:94 db/models/fields/__init__.py:587 +msgid "Enter only digits separated by commas." +msgstr "Jepni vetëm shifra të ndara nga presje." + +#: contrib/admin/templates/admin/auth/user/change_password.html:42 +#: contrib/auth/forms.py:19 +msgid "Enter the same password as above, for verification." +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:22 +msgid "Essex" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:26 +msgid "Estado de México" +msgstr "" + +#: conf/global_settings.py:57 +msgid "Estonian" +msgstr "" + +#: contrib/flatpages/admin.py:9 +msgid "" +"Example: '/about/contact/'. Make sure to have leading and trailing slashes." +msgstr "" + +#: contrib/flatpages/models.py:12 +msgid "" +"Example: 'flatpages/contact_page.html'. If this isn't provided, the system " +"will use 'flatpages/default.html'." +msgstr "" + +#: contrib/localflavor/es/es_regions.py:15 +msgid "Extremadura" +msgstr "" + +#: utils/dates.py:31 +msgid "Feb." +msgstr "" + +#: utils/dates.py:18 +msgid "February" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:96 +msgid "Federal Government" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:18 +msgid "Fermanagh" +msgstr "" + +#: db/models/fields/__init__.py:72 +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "" + +#: contrib/admindocs/views.py:271 +#, python-format +msgid "Fields on %s objects" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:78 +msgid "Fife" +msgstr "" + +#: db/models/fields/__init__.py:814 db/models/fields/files.py:220 +#: db/models/fields/files.py:331 +msgid "File path" +msgstr "" + +#: contrib/admin/templates/admin/change_list.html:76 +msgid "Filter" +msgstr "" + +#: conf/global_settings.py:60 +msgid "Finnish" +msgstr "" + +#: contrib/admin/templates/admin/auth/user/add_form.html:5 +msgid "" +"First, enter a username and password. Then, you'll be able to edit more user " +"options." +msgstr "" + +#: contrib/comments/templates/comments/flag.html:12 +msgid "Flag" +msgstr "" + +#: contrib/comments/admin.py:40 +msgid "Flag selected comments" +msgstr "" + +#: contrib/comments/templates/comments/flag.html:4 +msgid "Flag this comment" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:5 +msgid "Flevoland" +msgstr "" + +#: db/models/fields/__init__.py:839 +msgid "Floating point number" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:20 +msgid "Foral Community of Navarre" +msgstr "" + +#: db/models/fields/related.py:757 +msgid "Foreign Key (type determined by related field)" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_form.html:12 +msgid "" +"Forgotten your password? Enter your e-mail address below, and we'll e-mail " +"instructions for setting a new one." +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:5 +msgid "Free State" +msgstr "" + +#: conf/global_settings.py:61 +msgid "French" +msgstr "" + +#: utils/dates.py:10 +msgid "Fri" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:11 +msgid "Fribourg" +msgstr "" + +#: utils/dates.py:6 +msgid "Friday" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:6 +msgid "Friesland" +msgstr "" + +#: conf/global_settings.py:62 +msgid "Frisian" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:23 +msgid "Fukui" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:43 +msgid "Fukuoka" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:10 +msgid "Fukushima" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:23 +msgid "Galanta" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:16 +msgid "Galicia" +msgstr "" + +#: conf/global_settings.py:64 +msgid "Galician" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:19 +msgid "Galway" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:100 +msgid "Garut" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:6 +msgid "Gauteng" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:7 +msgid "Gelderland" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:24 +msgid "Gelnica" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:12 +msgid "Geneva" +msgstr "" + +#: contrib/gis/db/models/fields.py:293 +msgid "Geometry collection" +msgstr "" + +#: conf/global_settings.py:72 +msgid "Georgian" +msgstr "" + +#: conf/global_settings.py:52 +msgid "German" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:24 +msgid "Gifu" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:21 +msgid "Girona" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:13 +msgid "Glarus" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:23 +msgid "Gloucestershire" +msgstr "" + +#: contrib/admin/templates/admin/actions.html:4 +msgid "Go" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:14 +#: contrib/localflavor/id/id_choices.py:75 +msgid "Gorontalo" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:24 +msgid "Gotland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:79 +msgid "Grampian" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:22 +msgid "Granada" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:14 +msgid "Graubuenden" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:24 +msgid "Greater London" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:25 +msgid "Greater Manchester" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:22 +msgid "Greater Poland" +msgstr "" + +#: conf/global_settings.py:53 +msgid "Greek" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:8 +msgid "Groningen" +msgstr "" + +#: contrib/auth/admin.py:29 +msgid "Groups" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:23 +msgid "Guadalajara" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:23 +msgid "Guanajuato" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:22 +msgid "Guerrero" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:24 +msgid "Guipuzkoa" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:13 +msgid "Gunma" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:66 +msgid "Gwent" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:67 +msgid "Gwynedd" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:33 +msgid "Gävleborg" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:27 +msgid "Halland" +msgstr "" + +#: contrib/localflavor/de/de_states.py:10 +msgid "Hamburg" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:26 +msgid "Hampshire" +msgstr "" + +#: conf/global_settings.py:65 +msgid "Hebrew" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:27 +msgid "Hertfordshire" +msgstr "" + +#: contrib/localflavor/de/de_states.py:11 +msgid "Hessen" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:24 +msgid "Hidalgo" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:80 +msgid "Highland" +msgstr "" + +#: conf/global_settings.py:66 +msgid "Hindi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:37 +msgid "Hiroshima" +msgstr "" + +#: contrib/admin/templates/admin/change_form.html:28 +#: contrib/admin/templates/admin/object_history.html:10 +msgid "History" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:25 +msgid "Hlohovec" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:4 +msgid "Hokkaido" +msgstr "" + +#: db/models/fields/related.py:959 +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" +"Mbani të shtypur \"Control\", ose \"Command\" në Mac, për të përzgjedhur më " +"shumë se një." + +#: contrib/admin/templates/admin/500.html:4 +#: contrib/admin/templates/admin/app_index.html:8 +#: contrib/admin/templates/admin/base.html:54 +#: contrib/admin/templates/admin/change_form.html:18 +#: contrib/admin/templates/admin/change_list.html:36 +#: contrib/admin/templates/admin/delete_confirmation.html:6 +#: contrib/admin/templates/admin/delete_selected_confirmation.html:6 +#: contrib/admin/templates/admin/invalid_setup.html:4 +#: contrib/admin/templates/admin/object_history.html:6 +#: contrib/admin/templates/admin/auth/user/change_password.html:11 +#: contrib/admin/templates/registration/logged_out.html:4 +#: contrib/admin/templates/registration/password_change_done.html:4 +#: contrib/admin/templates/registration/password_change_form.html:5 +#: contrib/admin/templates/registration/password_reset_complete.html:4 +#: contrib/admin/templates/registration/password_reset_confirm.html:4 +#: contrib/admin/templates/registration/password_reset_done.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 +msgid "Home" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:15 +msgid "Hradec Region" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:25 +msgid "Huelva" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:26 +msgid "Huesca" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:26 +msgid "Humenne" +msgstr "" + +#: conf/global_settings.py:68 +msgid "Hungarian" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:31 +msgid "Hyogo" +msgstr "" + +#: contrib/comments/models.py:60 db/models/fields/__init__.py:905 +msgid "IP address" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:11 +msgid "Ibaraki" +msgstr "" + +#: conf/global_settings.py:69 +msgid "Icelandic" +msgstr "" + +#: contrib/flatpages/models.py:13 +msgid "If this is checked, only logged-in users will be able to view the page." +msgstr "" + +#: contrib/comments/forms.py:182 +msgid "" +"If you enter anything in this field your comment will be treated as spam" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:27 +msgid "Ilava" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:11 +msgid "Illes Balears" +msgstr "" + +#: contrib/auth/admin.py:28 +msgid "Important dates" +msgstr "" + +#: contrib/auth/models.py:191 +msgid "" +"In addition to the permissions manually assigned, this user will also get " +"all permissions granted to each group he/she is in." +msgstr "" + +#: db/models/fields/__init__.py:471 db/models/fields/__init__.py:867 +#: db/models/fields/__init__.py:963 db/models/fields/__init__.py:974 +#: db/models/fields/__init__.py:1001 +msgid "Integer" +msgstr "" + +#: contrib/localflavor/br/forms.py:135 +msgid "Invalid CNPJ number." +msgstr "" + +#: contrib/localflavor/br/forms.py:95 +msgid "Invalid CPF number." +msgstr "" + +#: contrib/localflavor/ar/forms.py:81 +msgid "Invalid CUIT." +msgstr "" + +#: contrib/localflavor/es/forms.py:71 +msgid "Invalid checksum for CIF." +msgstr "" + +#: contrib/localflavor/es/forms.py:70 +msgid "Invalid checksum for NIE." +msgstr "" + +#: contrib/localflavor/es/forms.py:69 +msgid "Invalid checksum for NIF." +msgstr "" + +#: contrib/localflavor/es/forms.py:144 +msgid "Invalid checksum for bank account number." +msgstr "" + +#: db/models/fields/__init__.py:601 +#, python-format +msgid "Invalid date: %s" +msgstr "Datë e pavlefshme: %s" + +#: contrib/gis/forms/fields.py:19 +msgid "Invalid geometry type." +msgstr "" + +#: contrib/gis/forms/fields.py:18 +msgid "Invalid geometry value." +msgstr "" + +#: contrib/localflavor/cz/forms.py:49 +msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" +msgstr "" + +#: conf/global_settings.py:63 +msgid "Irish" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:22 +msgid "Ishikawa" +msgstr "" + +#: conf/global_settings.py:70 +msgid "Italian" +msgstr "" + +#: contrib/admin/options.py:736 +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:6 +msgid "Iwate" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:27 +msgid "Jaen" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:13 +#: contrib/localflavor/id/id_choices.py:51 +msgid "Jakarta" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:25 +msgid "Jalisco" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:15 +#: contrib/localflavor/id/id_choices.py:57 +msgid "Jambi" +msgstr "" + +#: utils/dates.py:31 +msgid "Jan." +msgstr "" + +#: utils/dates.py:18 +msgid "January" +msgstr "" + +#: conf/global_settings.py:71 +msgid "Japanese" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:16 +msgid "Jawa Barat" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:17 +msgid "Jawa Tengah" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:18 +msgid "Jawa Timur" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:94 +msgid "Jember" +msgstr "" + +#: utils/dates.py:19 utils/dates.py:31 +msgid "July" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:25 +msgid "Jumps to the admin page for pages that represent a single object." +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:19 +msgid "" +"Jumps you from any page to the documentation for the view that generates " +"that page." +msgstr "" + +#: utils/dates.py:18 utils/dates.py:31 +msgid "June" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:15 +msgid "Jura" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:35 +msgid "Jämtland" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:21 +msgid "Jönköping" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:40 +msgid "Kagawa" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:49 +msgid "Kagoshima" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:19 +#: contrib/localflavor/id/id_choices.py:88 +msgid "Kalimantan Barat" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:20 +#: contrib/localflavor/id/id_choices.py:66 +msgid "Kalimantan Selatan" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:21 +#: contrib/localflavor/id/id_choices.py:89 +msgid "Kalimantan Tengah" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:22 +#: contrib/localflavor/id/id_choices.py:90 +msgid "Kalimantan Timur" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:23 +msgid "Kalmar" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:17 +msgid "Kanagawa" +msgstr "" + +#: conf/global_settings.py:74 +msgid "Kannada" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:50 +msgid "Kediri" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:28 +msgid "Kent" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:61 +msgid "Kepulauan Bangka Belitung" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:23 +msgid "Kepulauan Bangka-Belitung" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:24 +#: contrib/localflavor/id/id_choices.py:62 +msgid "Kepulauan Riau" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:20 +msgid "Kerry" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:28 +msgid "Kezmarok" +msgstr "" + +#: conf/global_settings.py:73 +msgid "Khmer" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:21 +msgid "Kildare" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:22 +msgid "Kilkenny" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:42 +msgid "Kochi" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:29 +msgid "Komarno" +msgstr "" + +#: conf/global_settings.py:75 +msgid "Korean" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:34 +msgid "Kosice - okolie" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:30 +msgid "Kosice I" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:31 +msgid "Kosice II" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:32 +msgid "Kosice III" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:33 +msgid "Kosice IV" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:10 +msgid "Kosice region" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:22 +msgid "Kronoberg" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:35 +msgid "Krupina" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:46 +msgid "Kumamoto" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:9 +msgid "Kuyavia-Pomerania" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:7 +msgid "KwaZulu-Natal" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:29 +msgid "Kyoto" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:36 +msgid "Kysucke Nove Mesto" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:30 +#: contrib/localflavor/es/es_regions.py:17 +msgid "La Rioja" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:25 +#: contrib/localflavor/id/id_choices.py:55 +msgid "Lampung" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:29 +msgid "Lancashire" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:23 +msgid "Laois" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:39 +msgid "Las Palmas" +msgstr "" + +#: contrib/comments/feeds.py:23 +#, python-format +msgid "Latest comments on %(site_name)s" +msgstr "" + +#: conf/global_settings.py:77 +msgid "Latvian" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:30 +msgid "Leicestershire" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:24 +msgid "Leitrim" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:28 +msgid "Leon" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:13 +msgid "Lesser Poland" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:37 +msgid "Levice" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:38 +msgid "Levoca" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:14 +msgid "Liberec Region" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:9 +msgid "Limburg" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:25 +msgid "Limerick" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:8 +msgid "Limpopo" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:31 +msgid "Lincolnshire" +msgstr "" + +#: contrib/gis/db/models/fields.py:273 +msgid "Line string" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:39 +msgid "Liptovsky Mikulas" +msgstr "" + +#: conf/global_settings.py:76 +msgid "Lithuanian" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:29 +msgid "Lleida" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:12 +msgid "Lodz" +msgstr "" + +#: contrib/admin/sites.py:402 contrib/admin/templates/admin/login.html:26 +#: contrib/admin/templates/registration/password_reset_complete.html:14 +#: contrib/admin/views/decorators.py:20 +msgid "Log in" +msgstr "" + +#: contrib/admin/templates/registration/logged_out.html:10 +msgid "Log in again" +msgstr "" + +#: contrib/admin/templates/admin/base.html:47 +#: contrib/admin/templates/registration/password_change_done.html:3 +#: contrib/admin/templates/registration/password_change_form.html:4 +msgid "Log out" +msgstr "" + +#: contrib/auth/views.py:60 +msgid "Logged out" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:26 +msgid "Longford" +msgstr "" + +#: contrib/admin/sites.py:313 contrib/admin/views/decorators.py:47 +msgid "" +"Looks like your browser isn't configured to accept cookies. Please enable " +"cookies, reload this page, and try again." +msgstr "" + +#: contrib/admin/widgets.py:126 +msgid "Lookup" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:81 +msgid "Lothian" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:27 +msgid "Louth" +msgstr "" + +#: contrib/localflavor/at/at_states.py:7 +msgid "Lower Austria" +msgstr "" + +#: contrib/localflavor/de/de_states.py:13 +msgid "Lower Saxony" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:8 +msgid "Lower Silesia" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:10 +msgid "Lublin" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:11 +msgid "Lubusz" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:40 +msgid "Lucenec" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:16 +msgid "Lucerne" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:31 +msgid "Lugo" +msgstr "" + +#: utils/translation/trans_real.py:554 +msgid "MONTH_DAY_FORMAT" +msgstr "F j" + +#: conf/global_settings.py:78 +msgid "Macedonian" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:49 +msgid "Madiun" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:32 +#: contrib/localflavor/es/es_regions.py:18 +msgid "Madrid" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:92 +msgid "Madura" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:46 +msgid "Magelang" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:41 +msgid "Malacky" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:33 +msgid "Malaga" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:93 +msgid "Malang" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:26 +#: contrib/localflavor/id/id_choices.py:70 +msgid "Maluku" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:27 +#: contrib/localflavor/id/id_choices.py:71 +msgid "Maluku Utara" +msgstr "" + +#: db/models/fields/related.py:939 +msgid "Many-to-many relationship" +msgstr "" + +#: utils/dates.py:18 utils/dates.py:31 +msgid "March" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:42 +msgid "Martin" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:14 +msgid "Masovia" +msgstr "" + +#: utils/dates.py:18 utils/dates.py:31 +msgid "May" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:28 +msgid "Mayo" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:29 +msgid "Meath" +msgstr "" + +#: contrib/localflavor/de/de_states.py:12 +msgid "Mecklenburg-Western Pomerania" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:43 +msgid "Medzilaborce" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:56 +msgid "Melilla" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:32 +msgid "Merseyside" +msgstr "" + +#: contrib/comments/admin.py:15 +msgid "Metadata" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:44 +msgid "Michalovce" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:27 +msgid "Michoacán" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:68 +msgid "Mid Glamorgan" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:27 +msgid "Mie" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:7 +msgid "Miyagi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:48 +msgid "Miyazaki" +msgstr "" + +#: db/models/fields/related.py:755 +#, python-format +msgid "Model %(model)s with pk %(pk)r does not exist." +msgstr "" + +#: contrib/admindocs/views.py:197 +#, python-format +msgid "Model %(model_name)r not found in app %(app_label)r" +msgstr "" + +#: contrib/admin/templates/admin/index.html:18 +#, python-format +msgid "Models available in the %(name)s application." +msgstr "" + +#: utils/dates.py:10 +msgid "Mon" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:30 +msgid "Monaghan" +msgstr "" + +#: utils/dates.py:6 +msgid "Monday" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:21 +msgid "Moravian-Silesian Region" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:28 +msgid "Morelos" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:9 +msgid "Mpumalanga" +msgstr "" + +#: contrib/gis/db/models/fields.py:289 +msgid "Multi polygon" +msgstr "" + +#: contrib/gis/db/models/fields.py:285 +msgid "Multi-line string" +msgstr "" + +#: contrib/gis/db/models/fields.py:281 +msgid "Multi-point" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:34 +msgid "Murcia" +msgstr "" + +#: contrib/admin/templates/admin/index.html:54 +msgid "My Actions" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:45 +msgid "Myjava" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:77 +msgid "NTB - Lombok" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:81 +msgid "NTB - Sumbawa" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:82 +msgid "NTT - Flores" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:83 +msgid "NTT - Sumba" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:72 +msgid "NTT - Timor" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:19 +msgid "Nagano" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:45 +msgid "Nagasaki" +msgstr "" + +#: contrib/comments/forms.py:93 +msgid "Name" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:46 +msgid "Namestovo" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:28 +#: contrib/localflavor/id/id_choices.py:59 +msgid "Nanggroe Aceh Darussalam" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:32 +msgid "Nara" +msgstr "" + +#: contrib/localflavor/pl/forms.py:109 +msgid "National Business Register Number (REGON) consists of 9 or 14 digits." +msgstr "" + +#: contrib/localflavor/pl/forms.py:38 +msgid "National Identification Number consists of 11 digits." +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:35 +msgid "Navarre" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:29 +msgid "Nayarit" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:17 +msgid "Neuchatel" +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:32 +#: contrib/auth/forms.py:144 +msgid "New password" +msgstr "" + +#: contrib/auth/forms.py:145 +msgid "New password confirmation" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:18 +msgid "New password:" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:18 +msgid "Nidwalden" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:20 +msgid "Niigata" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:47 +msgid "Nitra" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:11 +msgid "Nitra region" +msgstr "" + +#: contrib/admin/filterspecs.py:147 forms/widgets.py:435 +msgid "No" +msgstr "" + +#: contrib/admin/options.py:754 +msgid "No action selected." +msgstr "" + +#: contrib/admin/options.py:574 +msgid "No fields changed." +msgstr "" + +#: forms/fields.py:422 +msgid "No file was submitted." +msgstr "Nuk u parashtrua kartelë." + +#: forms/fields.py:421 +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" +"Nuk u parashtrua ndonjë kartelë. Kontrolloni llojin e kodimit te forma." + +#: contrib/gis/forms/fields.py:17 +msgid "No geometry value provided." +msgstr "" + +#: contrib/admin/options.py:137 contrib/admin/options.py:152 +msgid "None" +msgstr "" + +#: contrib/admin/templates/admin/index.html:58 +msgid "None available" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:10 +msgid "Noord-Brabant" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:11 +msgid "Noord-Holland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:33 +msgid "Norfolk" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:17 +msgid "Norrbotten" +msgstr "" + +#: contrib/localflavor/de/de_states.py:14 +msgid "North Rhine-Westphalia" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:11 +msgid "North West" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:34 +msgid "North Yorkshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:35 +msgid "Northamptonshire" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:10 +msgid "Northern Cape" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:91 +msgid "Northern Ireland" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:36 +msgid "Northumberland" +msgstr "" + +#: conf/global_settings.py:80 +msgid "Norwegian" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:37 +msgid "Nottinghamshire" +msgstr "" + +#: utils/dates.py:32 +msgid "Nov." +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:48 +msgid "Nove Mesto nad Vahom" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:49 +msgid "Nove Zamky" +msgstr "" + +#: utils/dates.py:19 +msgid "November" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:30 +msgid "Nuevo León" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:29 +msgid "Nusa Tenggara Barat" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:30 +msgid "Nusa Tenggara Timur" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:31 +msgid "Oaxaca" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:19 +msgid "Obwalden" +msgstr "" + +#: utils/dates.py:32 +msgid "Oct." +msgstr "" + +#: utils/dates.py:19 +msgid "October" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:31 +msgid "Offaly" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:47 +msgid "Oita" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:36 +msgid "Okayama" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:50 +msgid "Okinawa" +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:27 +#: contrib/auth/forms.py:170 +msgid "Old password" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:19 +msgid "Olomouc Region" +msgstr "" + +#: contrib/admin/util.py:175 +#, python-format +msgid "One or more %(fieldname)s in %(name)s:" +msgstr "" + +#: contrib/admin/util.py:170 +#, python-format +msgid "One or more %(fieldname)s in %(name)s: %(obj)s" +msgstr "" + +#: db/models/fields/related.py:879 +msgid "One-to-one relationship" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:15 +msgid "Opole" +msgstr "" + +#: forms/formsets.py:287 forms/formsets.py:289 +msgid "Order" +msgstr "Rend" + +#: contrib/localflavor/uk/uk_regions.py:82 +msgid "Orkney Islands" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:30 +msgid "Osaka" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:36 +msgid "Ourense" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:12 +msgid "Overijssel" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:38 +msgid "Oxfordshire" +msgstr "" + +#: utils/dateformat.py:48 +msgid "PM" +msgstr "" + +#: contrib/admin/templates/admin/404.html:4 +#: contrib/admin/templates/admin/404.html:8 +msgid "Page not found" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:38 +msgid "Palencia" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:31 +msgid "Papua" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:32 +msgid "Papua Barat" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:78 +msgid "Papua dan Papua Barat" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:16 +msgid "Pardubice Region" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:50 +msgid "Partizanske" +msgstr "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:35 +#: contrib/auth/forms.py:17 contrib/auth/forms.py:61 contrib/auth/forms.py:186 +msgid "Password" +msgstr "" + +#: contrib/admin/templates/admin/auth/user/change_password.html:41 +#: contrib/admin/templates/registration/password_change_form.html:37 +#: contrib/auth/forms.py:187 +msgid "Password (again)" +msgstr "" + +#: contrib/admin/templates/registration/password_change_done.html:4 +#: contrib/admin/templates/registration/password_change_form.html:5 +#: contrib/admin/templates/registration/password_change_form.html:7 +#: contrib/admin/templates/registration/password_change_form.html:19 +msgid "Password change" +msgstr "" + +#: contrib/admin/templates/registration/password_change_done.html:6 +#: contrib/admin/templates/registration/password_change_done.html:10 +msgid "Password change successful" +msgstr "" + +#: contrib/auth/admin.py:111 +msgid "Password changed successfully." +msgstr "" + +#: contrib/auth/forms.py:18 +msgid "Password confirmation" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_complete.html:4 +#: contrib/admin/templates/registration/password_reset_confirm.html:6 +#: contrib/admin/templates/registration/password_reset_done.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:6 +#: contrib/admin/templates/registration/password_reset_form.html:10 +msgid "Password reset" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_complete.html:6 +#: contrib/admin/templates/registration/password_reset_complete.html:10 +msgid "Password reset complete" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:4 +msgid "Password reset confirmation" +msgstr "" + +#: contrib/auth/forms.py:136 +#, python-format +msgid "Password reset on %s" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_done.html:6 +#: contrib/admin/templates/registration/password_reset_done.html:10 +msgid "Password reset successful" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:26 +msgid "Password reset unsuccessful" +msgstr "" + +#: contrib/admin/templates/admin/login.html:22 +msgid "Password:" +msgstr "" + +#: contrib/admin/filterspecs.py:117 +msgid "Past 7 days" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:87 +msgid "Pati" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:85 +msgid "Pekalongan" +msgstr "" + +#: contrib/auth/admin.py:27 +msgid "Permissions" +msgstr "" + +#: conf/global_settings.py:59 +msgid "Persian" +msgstr "" + +#: contrib/auth/admin.py:26 +msgid "Personal info" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:51 +msgid "Pezinok" +msgstr "" + +#: contrib/localflavor/us/models.py:17 +msgid "Phone number" +msgstr "" + +#: contrib/localflavor/fr/forms.py:31 +msgid "Phone numbers must be in 0X XX XX XX XX format." +msgstr "" + +#: contrib/localflavor/br/forms.py:31 +msgid "Phone numbers must be in XX-XXXX-XXXX format." +msgstr "" + +#: contrib/localflavor/us/forms.py:26 +msgid "Phone numbers must be in XXX-XXX-XXXX format." +msgstr "" + +#: contrib/localflavor/ro/forms.py:171 +msgid "Phone numbers must be in XXXX-XXXXXX format." +msgstr "" + +#: contrib/localflavor/pt/forms.py:37 +msgid "Phone numbers must have 9 digits, or start by + or 00." +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:52 +msgid "Piestany" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:11 +msgid "Pilsen Region" +msgstr "" + +#: forms/models.py:542 +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" + +#: forms/models.py:538 +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "" + +#: forms/models.py:548 +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +#: forms/models.py:556 +msgid "Please correct the duplicate values below." +msgstr "" + +#: contrib/comments/templates/comments/preview.html:11 +msgid "Please correct the error below" +msgid_plural "Please correct the errors below" +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/templates/admin/change_form.html:39 +#: contrib/admin/templates/admin/change_list.html:65 +#: contrib/admin/templates/admin/auth/user/change_password.html:24 +#: contrib/admin/templates/registration/password_change_form.html:15 +msgid "Please correct the error below." +msgid_plural "Please correct the errors below." +msgstr[0] "" +msgstr[1] "" + +#: contrib/admin/sites.py:22 contrib/admin/views/decorators.py:14 +#: contrib/auth/forms.py:81 +msgid "" +"Please enter a correct username and password. Note that both fields are case-" +"sensitive." +msgstr "" + +#: contrib/localflavor/es/forms.py:68 +msgid "Please enter a valid NIF or NIE." +msgstr "" + +#: contrib/localflavor/es/forms.py:67 +msgid "Please enter a valid NIF, NIE, or CIF." +msgstr "" + +#: contrib/localflavor/es/forms.py:143 +msgid "" +"Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." +msgstr "" + +#: db/models/fields/related.py:1020 +#, 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] "" +"Ju lutem, jepni ID-ra %(self)s të vlefshme. Vlera %(value)r është e " +"pavlefshme." +msgstr[1] "" +"Ju lutem, jepni ID-ra %(self)s të vlefshme. Vlerat %(value)r janë të " +"pavlefshme" + +#: contrib/admin/templates/registration/password_reset_confirm.html:14 +msgid "" +"Please enter your new password twice so we can verify you typed it in " +"correctly." +msgstr "" + +#: contrib/admin/templates/registration/password_change_form.html:21 +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:5 +msgid "Please go to the following page and choose a new password:" +msgstr "" + +#: contrib/admin/sites.py:306 contrib/admin/views/decorators.py:40 +msgid "Please log in again, because your session has expired." +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:17 +msgid "Podlasie" +msgstr "" + +#: contrib/gis/db/models/fields.py:269 +msgid "Point" +msgstr "" + +#: conf/global_settings.py:81 +msgid "Polish" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:53 +msgid "Poltar" +msgstr "" + +#: contrib/gis/db/models/fields.py:277 +msgid "Polygon" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:18 +msgid "Pomerania" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:40 +msgid "Pontevedra" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:54 +msgid "Poprad" +msgstr "" + +#: conf/global_settings.py:82 +msgid "Portuguese" +msgstr "" + +#: contrib/comments/templates/comments/form.html:17 +#: contrib/comments/templates/comments/preview.html:32 +msgid "Post" +msgstr "" + +#: contrib/comments/templates/comments/preview.html:16 +msgid "Post your comment" +msgstr "" + +#: contrib/comments/models.py:153 +#, python-format +msgid "" +"Posted by %(user)s at %(date)s\n" +"\n" +"%(comment)s\n" +"\n" +"http://%(domain)s%(url)s" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:55 +msgid "Povazska Bystrica" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:69 +msgid "Powys" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:8 +msgid "Prague" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:56 +msgid "Presov" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:12 +msgid "Presov region" +msgstr "" + +#: contrib/comments/templates/comments/form.html:18 +#: contrib/comments/templates/comments/preview.html:33 +msgid "Preview" +msgstr "" + +#: contrib/comments/templates/comments/preview.html:4 +#: contrib/comments/templates/comments/preview.html:13 +msgid "Preview your comment" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:57 +msgid "Prievidza" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:7 +msgid "Principality of Asturias" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:58 +msgid "Puchov" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:32 +msgid "Puebla" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:98 +msgid "Purwakarta" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:33 +msgid "Querétaro" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:34 +msgid "Quintana Roo" +msgstr "" + +#: contrib/comments/templates/comments/flag.html:7 +msgid "Really flag this comment?" +msgstr "" + +#: contrib/comments/templates/comments/approve.html:7 +msgid "Really make this comment public?" +msgstr "" + +#: contrib/comments/templates/comments/delete.html:7 +msgid "Really remove this comment?" +msgstr "" + +#: contrib/admin/templates/admin/index.html:53 +msgid "Recent Actions" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:19 +msgid "Region of Murcia" +msgstr "" + +#: contrib/admin/templates/admin/edit_inline/stacked.html:36 +#: contrib/admin/templates/admin/edit_inline/tabular.html:81 +#: contrib/comments/templates/comments/delete.html:12 +msgid "Remove" +msgstr "" + +#: contrib/comments/templates/comments/delete.html:4 +msgid "Remove a comment" +msgstr "" + +#: contrib/comments/admin.py:48 +msgid "Remove selected comments" +msgstr "" + +#: contrib/auth/forms.py:15 contrib/auth/forms.py:49 +#: contrib/auth/models.py:180 +msgid "" +"Required. 30 characters or fewer. Alphanumeric characters only (letters, " +"digits and underscores)." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "Reset my password" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:59 +msgid "Revuca" +msgstr "" + +#: contrib/localflavor/de/de_states.py:15 +msgid "Rhineland-Palatinate" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:33 +#: contrib/localflavor/id/id_choices.py:60 +msgid "Riau" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:60 +msgid "Rimavska Sobota" +msgstr "" + +#: conf/global_settings.py:84 +msgid "Romanian" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:32 +msgid "Roscommon" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:61 +msgid "Roznava" +msgstr "" + +#: contrib/admin/templates/admin/actions.html:4 +msgid "Run the selected action" +msgstr "" + +#: conf/global_settings.py:85 +msgid "Russian" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:62 +msgid "Ruzomberok" +msgstr "" + +#: contrib/localflavor/de/de_states.py:16 +msgid "Saarland" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:63 +msgid "Sabinov" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:44 +msgid "Saga" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:14 +msgid "Saitama" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:73 +msgid "Sala" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:41 +msgid "Salamanca" +msgstr "" + +#: contrib/localflavor/at/at_states.py:9 +msgid "Salzburg" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:36 +msgid "San Luis Potosí" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:42 +msgid "Santa Cruz de Tenerife" +msgstr "" + +#: utils/dates.py:11 +msgid "Sat" +msgstr "" + +#: utils/dates.py:7 +msgid "Saturday" +msgstr "" + +#: contrib/admin/templates/admin/pagination.html:11 +#: contrib/admin/templates/admin/submit_line.html:3 +msgid "Save" +msgstr "" + +#: contrib/admin/templates/admin/submit_line.html:6 +msgid "Save and add another" +msgstr "" + +#: contrib/admin/templates/admin/submit_line.html:7 +msgid "Save and continue editing" +msgstr "" + +#: contrib/admin/templates/admin/submit_line.html:5 +msgid "Save as new" +msgstr "" + +#: contrib/localflavor/de/de_states.py:17 +msgid "Saxony" +msgstr "" + +#: contrib/localflavor/de/de_states.py:18 +msgid "Saxony-Anhalt" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:20 +msgid "Schaffhausen" +msgstr "" + +#: contrib/localflavor/de/de_states.py:19 +msgid "Schleswig-Holstein" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:21 +msgid "Schwyz" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:92 +msgid "Scotland" +msgstr "" + +#: contrib/admin/templates/admin/search_form.html:8 +msgid "Search" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:44 +msgid "Segovia" +msgstr "" + +#: contrib/admin/views/main.py:70 +#, python-format +msgid "Select %s" +msgstr "" + +#: contrib/admin/views/main.py:70 +#, python-format +msgid "Select %s to change" +msgstr "" + +#: contrib/localflavor/br/forms.py:59 +msgid "" +"Select a valid brazilian state. That state is not one of the available " +"states." +msgstr "" + +#: forms/fields.py:577 forms/fields.py:652 +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" +"Përzgjidhni një zgjedhje të vlefshme. %(value)s nuk është nga zgjedhjet e " +"mundshme." + +#: forms/models.py:962 +#, python-format +msgid "Select a valid choice. %s is not one of the available choices." +msgstr "" +"Përzgjidhni një zgjedhje të vlefshme. %s nuk është një nga zgjedhjet e " +"mundshme." + +#: forms/models.py:886 +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Përzgjidhni një zgjedhje të vlefshme. Ajo zgjedhje nuk është një nga " +"zgjedhjet e mundshme." + +#: contrib/admin/templates/admin/actions.html:14 +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:86 +msgid "Semarang" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:64 +msgid "Senec" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:65 +msgid "Senica" +msgstr "" + +#: utils/dates.py:32 +msgid "Sept." +msgstr "" + +#: utils/dates.py:19 +msgid "September" +msgstr "" + +#: conf/global_settings.py:88 +msgid "Serbian" +msgstr "" + +#: conf/global_settings.py:89 +msgid "Serbian Latin" +msgstr "" + +#: contrib/admin/templates/admin/500.html:9 +msgid "Server Error (500)" +msgstr "" + +#: contrib/admin/templates/admin/500.html:4 +msgid "Server error" +msgstr "" + +#: contrib/admin/templates/admin/500.html:6 +msgid "Server error (500)" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:45 +msgid "Seville" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:83 +msgid "Shetland Islands" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:28 +msgid "Shiga" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:35 +msgid "Shimane" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:25 +msgid "Shizuoka" +msgstr "" + +#: contrib/admin/templates/admin/pagination.html:10 +msgid "Show all" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:21 +msgid "Show object ID" +msgstr "" + +#: contrib/admindocs/templates/admin_doc/bookmarklets.html:22 +msgid "" +"Shows the content-type and unique ID for pages that represent a single " +"object." +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:39 +msgid "Shropshire" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:99 +msgid "Sidoarjo" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:19 +msgid "Silesia" +msgstr "" + +#: conf/global_settings.py:96 +msgid "Simplified Chinese" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:35 +msgid "Sinaloa" +msgstr "" + +#: contrib/admin/sites.py:388 +msgid "Site administration" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:66 +msgid "Skalica" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:26 +msgid "Skåne" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:33 +msgid "Sligo" +msgstr "" + +#: conf/global_settings.py:86 +msgid "Slovak" +msgstr "" + +#: conf/global_settings.py:87 +msgid "Slovenian" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:67 +msgid "Snina" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:68 +msgid "Sobrance" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:22 +msgid "Solothurn" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:40 +msgid "Somerset" +msgstr "" + +#: contrib/admin/templates/admin/invalid_setup.html:7 +msgid "" +"Something's wrong with your database installation. Make sure the appropriate " +"database tables have been created, and make sure the database is readable by " +"the appropriate user." +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:37 +msgid "Sonora" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:46 +msgid "Soria" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:10 +msgid "South Bohemian Region" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:70 +msgid "South Glamorgan" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:18 +msgid "South Moravian Region" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:41 +msgid "South Yorkshire" +msgstr "" + +#: conf/global_settings.py:55 +msgid "Spanish" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:69 +msgid "Spisska Nova Ves" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:23 +msgid "St. Gallen" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:42 +msgid "Staffordshire" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:70 +msgid "Stara Lubovna" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:15 +msgid "Stockholm" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:84 +msgid "Strathclyde" +msgstr "" + +#: db/models/fields/__init__.py:554 db/models/fields/__init__.py:984 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:71 +msgid "Stropkov" +msgstr "" + +#: contrib/localflavor/at/at_states.py:10 +msgid "Styria" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:16 +msgid "Subcarpatia" +msgstr "" + +#: contrib/admin/actions.py:60 +#, python-format +msgid "Successfully deleted %(count)d %(items)s." +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:43 +msgid "Suffolk" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:34 +#: contrib/localflavor/id/id_choices.py:68 +msgid "Sulawesi Barat" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:35 +#: contrib/localflavor/id/id_choices.py:69 +msgid "Sulawesi Selatan" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:36 +#: contrib/localflavor/id/id_choices.py:76 +msgid "Sulawesi Tengah" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:37 +#: contrib/localflavor/id/id_choices.py:79 +msgid "Sulawesi Tenggara" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:38 +msgid "Sulawesi Utara" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:67 +msgid "Sulawesi Utara Daratan" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:74 +msgid "Sulawesi Utara Kepulauan" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:39 +#: contrib/localflavor/id/id_choices.py:52 +msgid "Sumatera Barat" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:40 +#: contrib/localflavor/id/id_choices.py:56 +msgid "Sumatera Selatan" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:41 +#: contrib/localflavor/id/id_choices.py:58 +msgid "Sumatera Utara" +msgstr "" + +#: utils/dates.py:11 +msgid "Sun" +msgstr "" + +#: utils/dates.py:7 +msgid "Sunday" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:91 +msgid "Surabaya" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:48 +msgid "Surakarta - Solo" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:44 +msgid "Surrey" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:72 +msgid "Svidnik" +msgstr "" + +#: conf/global_settings.py:90 +msgid "Swedish" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:20 +msgid "Swietokrzyskie" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:19 +msgid "Södermanland" +msgstr "" + +#: utils/translation/trans_real.py:532 +msgid "TIME_FORMAT" +msgstr "P" + +#: contrib/localflavor/mx/mx_states.py:38 +msgid "Tabasco" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:39 +msgid "Tamaulipas" +msgstr "" + +#: conf/global_settings.py:91 +msgid "Tamil" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:53 +msgid "Tapanuli" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:47 +msgid "Tarragona" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:85 +msgid "Tayside" +msgstr "" + +#: conf/global_settings.py:92 +msgid "Telugu" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:48 +msgid "Teruel" +msgstr "" + +#: db/models/fields/__init__.py:1007 +msgid "Text" +msgstr "" + +#: conf/global_settings.py:93 +msgid "Thai" +msgstr "" + +#: contrib/comments/templates/comments/posted.html:7 +msgid "Thank you for your comment" +msgstr "" + +#: contrib/comments/templates/comments/approved.html:4 +msgid "Thanks for approving" +msgstr "" + +#: contrib/comments/templates/comments/posted.html:4 +msgid "Thanks for commenting" +msgstr "" + +#: contrib/comments/templates/comments/flagged.html:4 +msgid "Thanks for flagging" +msgstr "" + +#: contrib/comments/templates/comments/deleted.html:4 +msgid "Thanks for removing" +msgstr "" + +#: contrib/admin/templates/registration/logged_out.html:8 +msgid "Thanks for spending some quality time with the Web site today." +msgstr "" + +#: contrib/comments/templates/comments/approved.html:7 +#: contrib/comments/templates/comments/deleted.html:7 +#: contrib/comments/templates/comments/flagged.html:7 +msgid "" +"Thanks for taking the time to improve the quality of discussion on our site" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:11 +msgid "Thanks for using our site!" +msgstr "" + +#: contrib/auth/forms.py:110 +msgid "" +"That e-mail address doesn't have an associated user account. Are you sure " +"you've registered?" +msgstr "" + +#: contrib/admin/options.py:640 +#, python-format +msgid "The %(name)s \"%(obj)s\" was added successfully." +msgstr "" + +#: contrib/admin/options.py:683 +#, python-format +msgid "" +"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." +msgstr "" + +#: contrib/admin/options.py:675 +#, python-format +msgid "The %(name)s \"%(obj)s\" was changed successfully." +msgstr "" + +#: contrib/admin/options.py:1087 +#, python-format +msgid "The %(name)s \"%(obj)s\" was deleted successfully." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:13 +#, python-format +msgid "The %(site_name)s team" +msgstr "" + +#: views/generic/create_update.py:115 +#, python-format +msgid "The %(verbose_name)s was created successfully." +msgstr "%(verbose_name)s u krijua me sukses." + +#: views/generic/create_update.py:201 +#, python-format +msgid "The %(verbose_name)s was deleted." +msgstr "%(verbose_name)s u fshi." + +#: views/generic/create_update.py:158 +#, python-format +msgid "The %(verbose_name)s was updated successfully." +msgstr "%(verbose_name)s u përditësua me sukses." + +#: contrib/localflavor/cl/forms.py:32 +msgid "The Chilean RUT is not valid." +msgstr "" + +#: contrib/localflavor/is_/forms.py:19 +msgid "The Icelandic identification number is not valid." +msgstr "" + +#: contrib/gis/db/models/fields.py:50 +msgid "The base GIS field -- maps to the OpenGIS Specification Geometry type." +msgstr "" + +#: forms/models.py:820 +msgid "The inline foreign key did not match the parent instance primary key." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_confirm.html:28 +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" + +#: forms/fields.py:423 +msgid "The submitted file is empty." +msgstr "Kartela e parashtruar është bosh." + +#: contrib/auth/forms.py:37 contrib/auth/forms.py:156 +#: contrib/auth/forms.py:198 +msgid "The two password fields didn't match." +msgstr "" + +#: contrib/admin/templates/admin/500.html:10 +msgid "" +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." +msgstr "" + +#: core/validators.py:71 forms/fields.py:511 +msgid "This URL appears to be a broken link." +msgstr "Kjo URL duket se është lidhje e dëmtuar." + +#: contrib/auth/forms.py:83 +msgid "This account is inactive." +msgstr "" + +#: contrib/redirects/models.py:10 +msgid "" +"This can be either an absolute path (as above) or a full URL starting with " +"'http://'." +msgstr "" + +#: contrib/comments/models.py:128 +msgid "" +"This comment was posted by an authenticated user and thus the email is read-" +"only." +msgstr "" + +#: contrib/comments/models.py:119 +msgid "" +"This comment was posted by an authenticated user and thus the name is read-" +"only." +msgstr "" + +#: db/models/fields/__init__.py:67 +msgid "This field cannot be blank." +msgstr "" + +#: db/models/fields/__init__.py:66 +msgid "This field cannot be null." +msgstr "Kjo fushë nuk mund të jetë bosh." + +#: forms/fields.py:65 +msgid "This field is required." +msgstr "Kjo fushë është e domosdoshme." + +#: contrib/localflavor/pe/forms.py:53 +msgid "This field requires 11 digits." +msgstr "" + +#: contrib/localflavor/ar/forms.py:51 +msgid "This field requires 7 or 8 digits." +msgstr "" + +#: contrib/localflavor/pe/forms.py:25 +msgid "This field requires 8 digits." +msgstr "" + +#: contrib/localflavor/br/forms.py:137 +msgid "This field requires at least 14 digits" +msgstr "" + +#: contrib/localflavor/br/forms.py:96 +msgid "This field requires at most 11 digits or 14 characters." +msgstr "" + +#: contrib/localflavor/ar/forms.py:50 contrib/localflavor/br/forms.py:97 +#: contrib/localflavor/br/forms.py:136 contrib/localflavor/pe/forms.py:24 +#: contrib/localflavor/pe/forms.py:52 +msgid "This field requires only numbers." +msgstr "" + +#: contrib/admin/filterspecs.py:119 +msgid "This month" +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:38 +msgid "" +"This object doesn't have a change history. It probably wasn't added via this " +"admin site." +msgstr "" + +#: contrib/redirects/models.py:8 +msgid "" +"This should be an absolute path, excluding the domain name. Example: '/" +"events/search/'." +msgstr "" + +#: db/models/fields/__init__.py:750 +msgid "This value must be a decimal number." +msgstr "Kjo vlerë duhet të jetë një numër dhjetor." + +#: db/models/fields/__init__.py:837 db/models/fields/__init__.py:865 +msgid "This value must be a float." +msgstr "" + +#: db/models/fields/__init__.py:475 +msgid "This value must be an integer." +msgstr "Kjo vlerë duhet të jetë numër i plotë." + +#: db/models/fields/__init__.py:921 +msgid "This value must be either None, True or False." +msgstr "Kjo vlerë duhet të jetë None, True ose False." + +#: db/models/fields/__init__.py:510 +msgid "This value must be either True or False." +msgstr "Kjo vlerë duhet të jetë True ose False." + +#: contrib/auth/forms.py:16 contrib/auth/forms.py:50 +msgid "This value must contain only letters, numbers and underscores." +msgstr "" + +#: contrib/flatpages/admin.py:11 +msgid "" +"This value must contain only letters, numbers, underscores, dashes or " +"slashes." +msgstr "" + +#: contrib/admin/filterspecs.py:121 +msgid "This year" +msgstr "" + +#: utils/dates.py:10 +msgid "Thu" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:24 +msgid "Thurgau" +msgstr "" + +#: contrib/localflavor/de/de_states.py:20 +msgid "Thuringia" +msgstr "" + +#: utils/dates.py:6 +msgid "Thursday" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:25 +msgid "Ticino" +msgstr "" + +#: db/models/fields/__init__.py:1023 +msgid "Time" +msgstr "" + +#: contrib/admin/widgets.py:72 +msgid "Time:" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:34 +msgid "Tipperary" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:40 +msgid "Tlaxcala" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:12 +msgid "Tochigi" +msgstr "" + +#: contrib/admin/filterspecs.py:114 +msgid "Today" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:39 +msgid "Tokushima" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:16 +msgid "Tokyo" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:49 +msgid "Toledo" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:74 +msgid "Topolcany" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:34 +msgid "Tottori" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:21 +msgid "Toyama" +msgstr "" + +#: conf/global_settings.py:97 +msgid "Traditional Chinese" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:75 +msgid "Trebisov" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:76 +msgid "Trencin" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:13 +msgid "Trencin region" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:77 +msgid "Trnava" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:14 +msgid "Trnava region" +msgstr "" + +#: utils/dates.py:10 +msgid "Tue" +msgstr "" + +#: utils/dates.py:6 +msgid "Tuesday" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:78 +msgid "Turcianske Teplice" +msgstr "" + +#: conf/global_settings.py:94 +msgid "Turkish" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:79 +msgid "Tvrdosin" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:45 +msgid "Tyne and Wear" +msgstr "" + +#: contrib/localflavor/at/at_states.py:11 +msgid "Tyrol" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:35 +msgid "Tyrone" +msgstr "" + +#: contrib/localflavor/us/models.py:8 +msgid "U.S. state (two uppercase letters)" +msgstr "" + +#: contrib/comments/forms.py:95 contrib/flatpages/admin.py:8 +#: contrib/flatpages/models.py:7 db/models/fields/__init__.py:1103 +msgid "URL" +msgstr "" + +#: conf/global_settings.py:95 +msgid "Ukrainian" +msgstr "" + +#: contrib/comments/models.py:62 +msgid "" +"Uncheck this box to make the comment effectively disappear from the site." +msgstr "" + +#: contrib/admin/filterspecs.py:154 forms/widgets.py:435 +msgid "Unknown" +msgstr "" + +#: contrib/admin/templates/admin/index.html:72 +msgid "Unknown content" +msgstr "" + +#: forms/fields.py:459 +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Ngarkoni një figurë të vlefshme. Kartela që ngarkuat ose nuk qe figurë, ose " +"qe figurë e dëmtuar." + +#: contrib/localflavor/at/at_states.py:8 +msgid "Upper Austria" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:18 +msgid "Uppsala" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:26 +msgid "Uri" +msgstr "" + +#: contrib/auth/models.py:184 +msgid "" +"Use '[algo]$[salt]$[hexdigest]' or use the change " +"password form." +msgstr "" + +#: contrib/admin/templates/admin/object_history.html:23 +msgid "User" +msgstr "" + +#: contrib/auth/forms.py:14 contrib/auth/forms.py:48 contrib/auth/forms.py:60 +msgid "Username" +msgstr "" + +#: contrib/admin/templates/admin/login.html:19 +msgid "Username:" +msgstr "" + +#: contrib/admin/sites.py:329 contrib/admin/sites.py:335 +#: contrib/admin/views/decorators.py:66 +msgid "Usernames cannot contain the '@' character." +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:13 +msgid "Usti Region" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:13 +msgid "Utrecht" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:27 +msgid "Valais" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:50 +msgid "Valencia" +msgstr "" + +#: contrib/localflavor/es/es_regions.py:21 +msgid "Valencian Community" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:51 +msgid "Valladolid" +msgstr "" + +#: db/models/fields/__init__.py:65 +#, python-format +msgid "Value %r is not a valid choice." +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:28 +msgid "Vaud" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:80 +msgid "Velky Krtis" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:41 +msgid "Veracruz" +msgstr "" + +#: contrib/localflavor/at/at_states.py:13 +msgid "Vienna" +msgstr "" + +#: contrib/admin/templates/admin/change_form.html:29 +#: contrib/admin/templates/admin/edit_inline/stacked.html:9 +#: contrib/admin/templates/admin/edit_inline/tabular.html:28 +msgid "View on site" +msgstr "" + +#: contrib/localflavor/at/at_states.py:12 +msgid "Vorarlberg" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:81 +msgid "Vranov nad Toplou" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:17 +msgid "Vysocina Region" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:29 +msgid "Värmland" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:16 +msgid "Västerbotten" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:34 +msgid "Västernorrland" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:31 +msgid "Västmanland" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:28 +msgid "Västra Götaland" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:33 +msgid "Wakayama" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:93 +msgid "Wales" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:21 +msgid "Warmia-Masuria" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:46 +msgid "Warwickshire" +msgstr "" + +#: contrib/comments/forms.py:175 +#, python-format +msgid "Watch your mouth! The word %s is not allowed here." +msgid_plural "Watch your mouth! The words %s are not allowed here." +msgstr[0] "" +msgstr[1] "" + +#: contrib/localflavor/ie/ie_counties.py:36 +msgid "Waterford" +msgstr "" + +#: contrib/formtools/wizard.py:132 +msgid "" +"We apologize, but your form has expired. Please continue filling out the " +"form from this page." +msgstr "" + +#: contrib/admin/templates/admin/404.html:10 +msgid "We're sorry, but the requested page could not be found." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_done.html:12 +msgid "" +"We've e-mailed you instructions for setting your password to the e-mail " +"address you submitted. You should be receiving it shortly." +msgstr "" + +#: utils/dates.py:10 +msgid "Wed" +msgstr "" + +#: utils/dates.py:6 +msgid "Wednesday" +msgstr "" + +#: contrib/admin/templates/admin/base.html:27 +msgid "Welcome," +msgstr "" + +#: conf/global_settings.py:50 +msgid "Welsh" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:71 +msgid "West Glamorgan" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:47 +msgid "West Midlands" +msgstr "" + +#: contrib/localflavor/pl/pl_voivodeships.py:23 +msgid "West Pomerania" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:48 +msgid "West Sussex" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:49 +msgid "West Yorkshire" +msgstr "" + +#: contrib/localflavor/za/za_provinces.py:12 +msgid "Western Cape" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:86 +msgid "Western Isles" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:37 +msgid "Westmeath" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:38 +msgid "Wexford" +msgstr "" + +#: contrib/localflavor/ie/ie_counties.py:39 +msgid "Wicklow" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:50 +msgid "Wiltshire" +msgstr "" + +#: contrib/localflavor/uk/uk_regions.py:51 +msgid "Worcestershire" +msgstr "" + +#: contrib/localflavor/pl/forms.py:110 +msgid "Wrong checksum for the National Business Register Number (REGON)." +msgstr "" + +#: contrib/localflavor/pl/forms.py:39 +msgid "Wrong checksum for the National Identification Number." +msgstr "" + +#: contrib/localflavor/pl/forms.py:72 +msgid "Wrong checksum for the Tax Number (NIP)." +msgstr "" + +#: db/models/fields/__init__.py:1111 +msgid "XML text" +msgstr "" + +#: utils/translation/trans_real.py:553 +msgid "YEAR_MONTH_FORMAT" +msgstr "F Y" + +#: contrib/localflavor/jp/jp_prefectures.py:9 +msgid "Yamagata" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:38 +msgid "Yamaguchi" +msgstr "" + +#: contrib/localflavor/jp/jp_prefectures.py:18 +msgid "Yamanashi" +msgstr "" + +#: contrib/admin/filterspecs.py:147 forms/widgets.py:435 +msgid "Yes" +msgstr "" + +#: contrib/admin/templates/admin/delete_confirmation.html:28 +#: contrib/admin/templates/admin/delete_selected_confirmation.html:33 +msgid "Yes, I'm sure" +msgstr "" + +#: contrib/localflavor/id/id_choices.py:12 +#: contrib/localflavor/id/id_choices.py:47 +msgid "Yogyakarta" +msgstr "" + +#: contrib/admin/templates/admin/index.html:45 +msgid "You don't have permission to edit anything." +msgstr "" + +#: contrib/admin/options.py:654 contrib/admin/options.py:687 +#, python-format +msgid "You may add another %s below." +msgstr "" + +#: contrib/admin/options.py:644 contrib/admin/options.py:677 +msgid "You may edit it again below." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:2 +msgid "You're receiving this e-mail because you requested a password reset" +msgstr "" + +#: contrib/auth/forms.py:88 +msgid "" +"Your Web browser doesn't appear to have cookies enabled. Cookies are " +"required for logging in." +msgstr "" + +#: contrib/admin/sites.py:332 contrib/admin/views/decorators.py:62 +#, python-format +msgid "Your e-mail address is not your username. Try '%s' instead." +msgstr "" + +#: contrib/auth/forms.py:178 +msgid "Your old password was entered incorrectly. Please enter it again." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_complete.html:12 +msgid "Your password has been set. You may go ahead and log in now." +msgstr "" + +#: contrib/admin/templates/registration/password_change_done.html:12 +msgid "Your password was changed." +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:9 +msgid "Your username, in case you've forgotten:" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:42 +msgid "Yucatán" +msgstr "" + +#: contrib/localflavor/mx/mx_states.py:43 +msgid "Zacatecas" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:53 +msgid "Zamora" +msgstr "" + +#: contrib/localflavor/es/es_provinces.py:54 +msgid "Zaragoza" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:84 +msgid "Zarnovica" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:14 +msgid "Zeeland" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:85 +msgid "Ziar nad Hronom" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:86 +msgid "Zilina" +msgstr "" + +#: contrib/localflavor/sk/sk_regions.py:15 +msgid "Zilina region" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:82 +msgid "Zlate Moravce" +msgstr "" + +#: contrib/localflavor/cz/cz_regions.py:20 +msgid "Zlin Region" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:29 +msgid "Zug" +msgstr "" + +#: contrib/localflavor/nl/nl_provinces.py:15 +msgid "Zuid-Holland" +msgstr "" + +#: contrib/localflavor/ch/ch_states.py:30 +msgid "Zurich" +msgstr "" + +#: contrib/localflavor/sk/sk_districts.py:83 +msgid "Zvolen" +msgstr "" + +#: utils/dateformat.py:43 +msgid "a.m." +msgstr "" + +#: contrib/admin/models.py:24 +msgid "action flag" +msgstr "" + +#: contrib/admin/models.py:19 +msgid "action time" +msgstr "" + +#: contrib/auth/models.py:186 +msgid "active" +msgstr "" + +#: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261 +#, python-format +msgid "all %s" +msgstr "" + +#: contrib/admin/options.py:556 contrib/admin/options.py:566 +#: contrib/comments/templates/comments/preview.html:16 db/models/base.py:797 +#: forms/models.py:544 +msgid "and" +msgstr "" + +#: contrib/comments/admin.py:43 +msgid "approved" +msgstr "" + +#: utils/dates.py:23 +msgid "apr" +msgstr "" + +#: utils/dates.py:24 +msgid "aug" +msgstr "" + +#: contrib/admin/models.py:25 +msgid "change message" +msgstr "" + +#: contrib/auth/models.py:68 +msgid "codename" +msgstr "" + +#: contrib/comments/models.py:56 contrib/comments/models.py:76 +#: contrib/comments/models.py:169 +msgid "comment" +msgstr "" + +#: contrib/comments/models.py:181 +msgid "comment flag" +msgstr "" + +#: contrib/comments/models.py:182 +msgid "comment flags" +msgstr "" + +#: contrib/comments/models.py:77 +msgid "comments" +msgstr "" + +#: contrib/flatpages/models.py:9 +msgid "content" +msgstr "" + +#: contrib/comments/models.py:22 contrib/contenttypes/models.py:81 +msgid "content type" +msgstr "" + +#: contrib/contenttypes/models.py:82 +msgid "content types" +msgstr "" + +#: contrib/comments/models.py:171 +msgid "date" +msgstr "" + +#: contrib/auth/models.py:189 +msgid "date joined" +msgstr "" + +#: contrib/comments/models.py:59 +msgid "date/time submitted" +msgstr "" + +#: utils/timesince.py:24 +msgid "day" +msgid_plural "days" +msgstr[0] "" +msgstr[1] "" + +#: utils/dates.py:24 +msgid "dec" +msgstr "" + +#: contrib/sites/models.py:33 +msgid "display name" +msgstr "" + +#: contrib/sites/models.py:32 +msgid "domain name" +msgstr "" + +#: contrib/auth/models.py:183 +msgid "e-mail address" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "eight" +msgstr "" + +#: contrib/flatpages/models.py:10 +msgid "enable comments" +msgstr "" + +#: contrib/sessions/models.py:48 +msgid "expire date" +msgstr "" + +#: utils/dates.py:23 +msgid "feb" +msgstr "" + +#: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96 +#: contrib/admindocs/views.py:98 +msgid "filter:" +msgstr "" + +#: contrib/auth/models.py:181 +msgid "first name" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "five" +msgstr "" + +#: contrib/comments/models.py:170 +msgid "flag" +msgstr "" + +#: contrib/comments/admin.py:39 +msgid "flagged" +msgstr "" + +#: contrib/flatpages/models.py:18 +msgid "flat page" +msgstr "" + +#: contrib/flatpages/models.py:19 +msgid "flat pages" +msgstr "" + +#: contrib/admin/templates/registration/password_reset_email.html:3 +#, python-format +msgid "for your user account at %(site_name)s" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "four" +msgstr "" + +#: contrib/auth/models.py:98 +msgid "group" +msgstr "" + +#: contrib/auth/models.py:99 contrib/auth/models.py:190 +msgid "groups" +msgstr "" + +#: utils/timesince.py:25 +msgid "hour" +msgid_plural "hours" +msgstr[0] "" +msgstr[1] "" + +#: contrib/comments/models.py:61 +msgid "is public" +msgstr "" + +#: contrib/comments/models.py:64 +msgid "is removed" +msgstr "" + +#: utils/dates.py:23 +msgid "jan" +msgstr "" + +#: utils/dates.py:24 +msgid "jul" +msgstr "" + +#: utils/dates.py:23 +msgid "jun" +msgstr "" + +#: contrib/auth/models.py:188 +msgid "last login" +msgstr "" + +#: contrib/auth/models.py:182 +msgid "last name" +msgstr "" + +#: contrib/messages/tests/base.py:101 +msgid "lazy message" +msgstr "" + +#: contrib/admin/models.py:29 +msgid "log entries" +msgstr "" + +#: contrib/admin/models.py:28 +msgid "log entry" +msgstr "" + +#: utils/dates.py:23 +msgid "mar" +msgstr "" + +#: utils/dates.py:23 +msgid "may" +msgstr "" + +#: contrib/auth/models.py:367 +msgid "message" +msgstr "" + +#: utils/dateformat.py:98 +msgid "midnight" +msgstr "" + +#: utils/timesince.py:26 +msgid "minute" +msgid_plural "minutes" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:45 +msgid "minutes" +msgstr "" + +#: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228 +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247 +#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266 +msgid "model:" +msgstr "" + +#: utils/timesince.py:22 +msgid "month" +msgid_plural "months" +msgstr[0] "" +msgstr[1] "" + +#: contrib/auth/models.py:66 contrib/auth/models.py:94 +msgid "name" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:19 +msgid "nd" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "nine" +msgstr "" + +#: utils/dateformat.py:100 +msgid "noon" +msgstr "" + +#: utils/dates.py:24 +msgid "nov" +msgstr "" + +#: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266 +#, python-format +msgid "number of %s" +msgstr "" + +#: contrib/comments/models.py:24 +msgid "object ID" +msgstr "" + +#: contrib/admin/models.py:22 +msgid "object id" +msgstr "" + +#: contrib/admin/models.py:23 +msgid "object repr" +msgstr "" + +#: utils/dates.py:24 +msgid "oct" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "one" +msgstr "" + +#: utils/text.py:128 +msgid "or" +msgstr "" + +#: contrib/comments/templates/comments/preview.html:16 +msgid "or make changes" +msgstr "" + +#: utils/dateformat.py:42 +msgid "p.m." +msgstr "" + +#: contrib/auth/models.py:184 +msgid "password" +msgstr "" + +#: contrib/auth/models.py:72 +msgid "permission" +msgstr "" + +#: contrib/auth/models.py:73 contrib/auth/models.py:95 +msgid "permissions" +msgstr "" + +#: contrib/contenttypes/models.py:77 +msgid "python model class name" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:19 +msgid "rd" +msgstr "" + +#: contrib/redirects/models.py:13 +msgid "redirect" +msgstr "" + +#: contrib/redirects/models.py:7 +msgid "redirect from" +msgstr "" + +#: contrib/redirects/models.py:9 +msgid "redirect to" +msgstr "" + +#: contrib/redirects/models.py:14 +msgid "redirects" +msgstr "" + +#: contrib/flatpages/models.py:13 +msgid "registration required" +msgstr "" + +#: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256 +#, python-format +msgid "related `%(app_label)s.%(object_name)s` objects" +msgstr "" + +#: contrib/comments/admin.py:47 +msgid "removed" +msgstr "" + +#: utils/dates.py:24 +msgid "sep" +msgstr "" + +#: contrib/sessions/models.py:53 +msgid "session" +msgstr "" + +#: contrib/sessions/models.py:47 +msgid "session data" +msgstr "" + +#: contrib/sessions/models.py:45 +msgid "session key" +msgstr "" + +#: contrib/sessions/models.py:54 +msgid "sessions" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "seven" +msgstr "" + +#: contrib/admin/views/template.py:38 contrib/sites/models.py:38 +msgid "site" +msgstr "" + +#: contrib/sites/models.py:39 +msgid "sites" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "six" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:19 +msgid "st" +msgstr "" + +#: contrib/auth/models.py:185 +msgid "staff status" +msgstr "" + +#: contrib/auth/models.py:187 +msgid "superuser status" +msgstr "" + +#: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63 +#: contrib/admindocs/views.py:65 +msgid "tag:" +msgstr "" + +#: contrib/admin/views/template.py:40 +msgid "template" +msgstr "" + +#: contrib/flatpages/models.py:11 +msgid "template name" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:19 +msgid "th" +msgstr "" + +#: contrib/admindocs/views.py:209 +#, python-format +msgid "the related `%(app_label)s.%(data_type)s` object" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "three" +msgstr "" + +#: contrib/flatpages/models.py:8 +msgid "title" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:93 +msgid "today" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:95 +msgid "tomorrow" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:73 +msgid "two" +msgstr "" + +#: contrib/auth/models.py:196 contrib/comments/models.py:50 +#: contrib/comments/models.py:168 +msgid "user" +msgstr "" + +#: contrib/auth/models.py:192 +msgid "user permissions" +msgstr "" + +#: contrib/comments/models.py:54 +msgid "user's URL" +msgstr "" + +#: contrib/comments/models.py:53 +msgid "user's email address" +msgstr "" + +#: contrib/comments/models.py:52 +msgid "user's name" +msgstr "" + +#: contrib/auth/models.py:180 +msgid "username" +msgstr "" + +#: contrib/auth/models.py:197 +msgid "users" +msgstr "" + +#: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160 +#: contrib/admindocs/views.py:162 +msgid "view:" +msgstr "" + +#: utils/timesince.py:23 +msgid "week" +msgid_plural "weeks" +msgstr[0] "" +msgstr[1] "" + +#: utils/timesince.py:21 +msgid "year" +msgid_plural "years" +msgstr[0] "" +msgstr[1] "" + +#: template/defaultfilters.py:775 +msgid "yes,no,maybe" +msgstr "" + +#: contrib/humanize/templatetags/humanize.py:97 +msgid "yesterday" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:30 +msgid "Örebro" +msgstr "" + +#: contrib/localflavor/se/se_counties.py:20 +msgid "Östergötland" +msgstr "" + +#~ msgid "" +#~ "Ensure this value has at least %(min)d characters (it has %(length)d)." +#~ msgstr "" +#~ "Sigurohuni që kjo vlerë ka të paktën %(min)d shenja (ka gjatësinë %" +#~ "(length)d)." + +#~ msgid "" +#~ "Ensure this value has at most %(max)d characters (it has %(length)d)." +#~ msgstr "" +#~ "Sigurohuni që kjo vlerë ka e shumta %(max)d shenja (ka gjatësinë %(length)" +#~ "d)." + +#~ msgid "Ensure this value is greater than or equal to %s." +#~ msgstr "Sigurohuni që vlera është më e madhe ose e barabartë me %s." + +#~ msgid "Ensure this value is less than or equal to %s." +#~ msgstr "Sigurohuni që vlera është më e vogël ose e barabartë me %s." diff --git a/django/conf/locale/sq/LC_MESSAGES/djangojs.mo b/django/conf/locale/sq/LC_MESSAGES/djangojs.mo new file mode 100644 index 000000000000..96682be6953b Binary files /dev/null and b/django/conf/locale/sq/LC_MESSAGES/djangojs.mo differ diff --git a/django/conf/locale/sq/LC_MESSAGES/djangojs.po b/django/conf/locale/sq/LC_MESSAGES/djangojs.po new file mode 100644 index 000000000000..ed28fe0a7c2a --- /dev/null +++ b/django/conf/locale/sq/LC_MESSAGES/djangojs.po @@ -0,0 +1,119 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2010-01-27 22:39-0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: contrib/admin/media/js/SelectFilter2.js:33 +#, perl-format +msgid "Available %s" +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:41 +msgid "Choose all" +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:46 +msgid "Add" +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:48 +msgid "Remove" +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:53 +#, perl-format +msgid "Chosen %s" +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:54 +msgid "Select your choice(s) and click " +msgstr "" + +#: contrib/admin/media/js/SelectFilter2.js:59 +msgid "Clear all" +msgstr "" + +#: contrib/admin/media/js/calendar.js:24 +#: contrib/admin/media/js/dateparse.js:32 +msgid "" +"January February March April May June July August September October November " +"December" +msgstr "" + +#: contrib/admin/media/js/calendar.js:25 +msgid "S M T W T F S" +msgstr "" + +#: contrib/admin/media/js/collapse.js:9 contrib/admin/media/js/collapse.js:21 +#: contrib/admin/media/js/collapse.min.js:1 +msgid "Show" +msgstr "" + +#: contrib/admin/media/js/collapse.js:16 +#: contrib/admin/media/js/collapse.min.js:1 +msgid "Hide" +msgstr "" + +#: contrib/admin/media/js/dateparse.js:33 +msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82 +msgid "Now" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51 +msgid "Clock" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78 +msgid "Choose a time" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83 +msgid "Midnight" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84 +msgid "6 a.m." +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:85 +msgid "Noon" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:89 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:184 +msgid "Cancel" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:129 +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:178 +msgid "Today" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:133 +msgid "Calendar" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:176 +msgid "Yesterday" +msgstr "" + +#: contrib/admin/media/js/admin/DateTimeShortcuts.js:180 +msgid "Tomorrow" +msgstr "" diff --git a/django/conf/locale/uk/LC_MESSAGES/django.mo b/django/conf/locale/uk/LC_MESSAGES/django.mo index 088549f2503c..f57a32b1c832 100644 Binary files a/django/conf/locale/uk/LC_MESSAGES/django.mo and b/django/conf/locale/uk/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/uk/LC_MESSAGES/django.po b/django/conf/locale/uk/LC_MESSAGES/django.po index d3fd66a89e04..8589a6cf5b7d 100644 --- a/django/conf/locale/uk/LC_MESSAGES/django.po +++ b/django/conf/locale/uk/LC_MESSAGES/django.po @@ -4185,7 +4185,7 @@ msgstr "" #: .\forms\fields.py:139 .\newforms\fields.py:125 msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." msgstr "" -"Переконайтеся, що це значення має не менще %(max)d символів (зараз %(length)" +"Переконайтеся, що це значення має не менще %(min)d символів (зараз %(length)" "d)." #: .\forms\fields.py:167 .\forms\fields.py:196 .\forms\fields.py:225 diff --git a/django/conf/project_template/settings.py b/django/conf/project_template/settings.py index bbf005ddead9..df99e51c3cea 100644 --- a/django/conf/project_template/settings.py +++ b/django/conf/project_template/settings.py @@ -19,6 +19,8 @@ # Local time zone for this installation. Choices can be found here: # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name # although not all choices may be available on all operating systems. +# On Unix systems, a value of None will cause Django to use the same +# timezone as the operating system. # If running in a Windows environment this must be set to the same as your # system time zone. TIME_ZONE = 'America/Chicago' @@ -76,4 +78,6 @@ 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', + # Uncomment the next line to enable the admin: + # 'django.contrib.admin', ) diff --git a/django/contrib/admin/__init__.py b/django/contrib/admin/__init__.py index 810597659157..92886ab8d384 100644 --- a/django/contrib/admin/__init__.py +++ b/django/contrib/admin/__init__.py @@ -2,11 +2,7 @@ from django.contrib.admin.options import ModelAdmin, HORIZONTAL, VERTICAL from django.contrib.admin.options import StackedInline, TabularInline from django.contrib.admin.sites import AdminSite, site -from django.utils.importlib import import_module -# A flag to tell us if autodiscover is running. autodiscover will set this to -# True while running, and False when it finishes. -LOADING = False def autodiscover(): """ @@ -14,45 +10,27 @@ def autodiscover(): not present. This forces an import on them to register any admin bits they may want. """ - # Bail out if autodiscover didn't finish loading from a previous call so - # that we avoid running autodiscover again when the URLconf is loaded by - # the exception handler to resolve the handler500 view. This prevents an - # admin.py module with errors from re-registering models and raising a - # spurious AlreadyRegistered exception (see #8245). - global LOADING - if LOADING: - return - LOADING = True - import imp + import copy from django.conf import settings + from django.utils.importlib import import_module + from django.utils.module_loading import module_has_submodule for app in settings.INSTALLED_APPS: - # For each app, we need to look for an admin.py inside that app's - # package. We can't use os.path here -- recall that modules may be - # imported different ways (think zip files) -- so we need to get - # the app's __path__ and look for admin.py on that path. - - # Step 1: find out the app's __path__ Import errors here will (and - # should) bubble up, but a missing __path__ (which is legal, but weird) - # fails silently -- apps that do weird things with __path__ might - # need to roll their own admin registration. - try: - app_path = import_module(app).__path__ - except AttributeError: - continue - - # Step 2: use imp.find_module to find the app's admin.py. For some - # reason imp.find_module raises ImportError if the app can't be found - # but doesn't actually try to import the module. So skip this app if - # its admin.py doesn't exist + mod = import_module(app) + # Attempt to import the app's admin module. try: - imp.find_module('admin', app_path) - except ImportError: - continue + before_import_registry = copy.copy(site._registry) + import_module('%s.admin' % app) + except: + # Reset the model registry to the state before the last import as + # this import will have to reoccur on the next request and this + # could raise NotRegistered and AlreadyRegistered exceptions + # (see #8245). + site._registry = before_import_registry - # Step 3: import the app's admin file. If this has errors we want them - # to bubble up. - import_module("%s.admin" % app) - # autodiscover was successful, reset loading flag. - LOADING = False + # Decide whether to bubble up this error. If the app just + # doesn't have an admin module, we can ignore the error + # attempting to import it, otherwise we want it to bubble up. + if module_has_submodule(mod, 'admin'): + raise diff --git a/django/contrib/admin/actions.py b/django/contrib/admin/actions.py index 86edb0adfd2f..b75c91b75abe 100644 --- a/django/contrib/admin/actions.py +++ b/django/contrib/admin/actions.py @@ -12,10 +12,6 @@ from django.utils.safestring import mark_safe from django.utils.text import capfirst from django.utils.translation import ugettext_lazy, ugettext as _ -try: - set -except NameError: - from sets import Set as set # Python 2.3 fallback def delete_selected(modeladmin, request, queryset): """ @@ -36,15 +32,7 @@ def delete_selected(modeladmin, request, queryset): # Populate deletable_objects, a data structure of all related objects that # will also be deleted. - - # deletable_objects must be a list if we want to use '|unordered_list' in the template - deletable_objects = [] - perms_needed = set() - i = 0 - for obj in queryset: - deletable_objects.append([mark_safe(u'%s: %s' % (escape(force_unicode(capfirst(opts.verbose_name))), obj.pk, escape(obj))), []]) - get_deleted_objects(deletable_objects[i], perms_needed, request.user, obj, opts, 1, modeladmin.admin_site, levels_to_root=2) - i=i+1 + deletable_objects, perms_needed = get_deleted_objects(queryset, opts, request.user, modeladmin.admin_site, levels_to_root=2) # The user has already confirmed the deletion. # Do the deletion and return a None to display the change list view again. @@ -66,7 +54,7 @@ def delete_selected(modeladmin, request, queryset): context = { "title": _("Are you sure?"), "object_name": force_unicode(opts.verbose_name), - "deletable_objects": deletable_objects, + "deletable_objects": [deletable_objects], 'queryset': queryset, "perms_lacking": perms_needed, "opts": opts, @@ -76,7 +64,7 @@ def delete_selected(modeladmin, request, queryset): } # Display the confirmation page - return render_to_response(modeladmin.delete_confirmation_template or [ + return render_to_response(modeladmin.delete_selected_confirmation_template or [ "admin/%s/%s/delete_selected_confirmation.html" % (app_label, opts.object_name.lower()), "admin/%s/delete_selected_confirmation.html" % app_label, "admin/delete_selected_confirmation.html" diff --git a/django/contrib/admin/media/css/changelists.css b/django/contrib/admin/media/css/changelists.css index 5eb66b4d36ab..43033780ac4d 100644 --- a/django/contrib/admin/media/css/changelists.css +++ b/django/contrib/admin/media/css/changelists.css @@ -53,7 +53,7 @@ vertical-align: middle; } -#changelist table thead th:first-child { +#changelist table thead th.action-checkbox-column { width: 1.5em; text-align: center; } diff --git a/django/contrib/admin/media/css/forms.css b/django/contrib/admin/media/css/forms.css index fbe4b753af35..085a282528e7 100644 --- a/django/contrib/admin/media/css/forms.css +++ b/django/contrib/admin/media/css/forms.css @@ -67,6 +67,12 @@ form ul.inline li { width: 8em; } +.aligned ul label { + display: inline; + float: none; + width: auto; +} + .colMS .aligned .vLargeTextField, .colMS .aligned .vXMLLargeTextField { width: 350px; } diff --git a/django/contrib/admin/media/css/rtl.css b/django/contrib/admin/media/css/rtl.css index 6819a231bbc3..651e10653f95 100644 --- a/django/contrib/admin/media/css/rtl.css +++ b/django/contrib/admin/media/css/rtl.css @@ -112,6 +112,13 @@ div.breadcrumbs { margin-right: -10px; } +.filtered .actions { + border-left:1px solid #DDDDDD; + margin-left:160px !important; + border-right: 0 none; + margin-right:0 !important; +} + /* FORMS */ .aligned label { @@ -189,7 +196,7 @@ fieldset .field-box { /* MISC */ -.inline-related h2 { +.inline-related h2, .inline-group h2 { text-align: right } diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 3144a22a2a51..1419fe37721f 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -6,9 +6,11 @@ from django.contrib.admin import widgets from django.contrib.admin import helpers from django.contrib.admin.util import unquote, flatten_fieldsets, get_deleted_objects, model_ngettext, model_format_dict -from django.core.exceptions import PermissionDenied +from django.core.exceptions import PermissionDenied, ValidationError from django.db import models, transaction -from django.db.models.fields import BLANK_CHOICE_DASH +from django.db.models.related import RelatedObject +from django.db.models.fields import BLANK_CHOICE_DASH, FieldDoesNotExist +from django.db.models.sql.constants import LOOKUP_SEP, QUERY_TERMS from django.http import Http404, HttpResponse, HttpResponseRedirect from django.shortcuts import get_object_or_404, render_to_response from django.utils.datastructures import SortedDict @@ -20,10 +22,6 @@ from django.utils.translation import ugettext as _ from django.utils.translation import ungettext, ugettext_lazy from django.utils.encoding import force_unicode -try: - set -except NameError: - from sets import Set as set # Python 2.3 fallback HORIZONTAL, VERTICAL = 1, 2 # returns the
                  class for a given radio_admin field @@ -53,6 +51,7 @@ class IncorrectLookupParameters(Exception): class BaseModelAdmin(object): """Functionality common to both ModelAdmin and InlineAdmin.""" + __metaclass__ = forms.MediaDefiningClass raw_id_fields = () fields = None @@ -66,7 +65,9 @@ class BaseModelAdmin(object): formfield_overrides = {} def __init__(self): - self.formfield_overrides = dict(FORMFIELD_FOR_DBFIELD_DEFAULTS, **self.formfield_overrides) + overrides = FORMFIELD_FOR_DBFIELD_DEFAULTS.copy() + overrides.update(self.formfield_overrides) + self.formfield_overrides = overrides def formfield_for_dbfield(self, db_field, **kwargs): """ @@ -172,9 +173,56 @@ def _declared_fieldsets(self): return None declared_fieldsets = property(_declared_fieldsets) + def lookup_allowed(self, lookup, value): + model = self.model + # Check FKey lookups that are allowed, so that popups produced by + # ForeignKeyRawIdWidget, on the basis of ForeignKey.limit_choices_to, + # are allowed to work. + for l in model._meta.related_fkey_lookups: + for k, v in widgets.url_params_from_lookup_dict(l).items(): + if k == lookup and v == value: + return True + + parts = lookup.split(LOOKUP_SEP) + + # Last term in lookup is a query term (__exact, __startswith etc) + # This term can be ignored. + if len(parts) > 1 and parts[-1] in QUERY_TERMS: + parts.pop() + + # Special case -- foo__id__exact and foo__id queries are implied + # if foo has been specificially included in the lookup list; so + # drop __id if it is the last part. However, first we need to find + # the pk attribute name. + model = self.model + pk_attr_name = None + for part in parts[:-1]: + field, _, _, _ = model._meta.get_field_by_name(part) + if hasattr(field, 'rel'): + model = field.rel.to + pk_attr_name = model._meta.pk.name + elif isinstance(field, RelatedObject): + model = field.model + pk_attr_name = model._meta.pk.name + else: + pk_attr_name = None + if pk_attr_name and len(parts) > 1 and parts[-1] == pk_attr_name: + parts.pop() + + try: + self.model._meta.get_field_by_name(parts[0]) + except FieldDoesNotExist: + # Lookups on non-existants fields are ok, since they're ignored + # later. + return True + else: + if len(parts) == 1: + return True + clean_lookup = LOOKUP_SEP.join(parts) + return clean_lookup in self.list_filter or clean_lookup == self.date_hierarchy + class ModelAdmin(BaseModelAdmin): "Encapsulates all admin options and functionality for a given model." - __metaclass__ = forms.MediaDefiningClass list_display = ('__str__',) list_display_links = () @@ -193,6 +241,7 @@ class ModelAdmin(BaseModelAdmin): change_form_template = None change_list_template = None delete_confirmation_template = None + delete_selected_confirmation_template = None object_history_template = None # Actions @@ -347,6 +396,20 @@ def get_form(self, request, obj=None, **kwargs): defaults.update(kwargs) return modelform_factory(self.model, **defaults) + def get_object(self, request, object_id): + """ + Returns an instance matching the primary key provided. ``None`` is + returned if no match is found (or the object_id failed validation + against the primary key field). + """ + queryset = self.queryset(request) + model = queryset.model + try: + object_id = model._meta.pk.to_python(object_id) + return queryset.get(pk=object_id) + except (model.DoesNotExist, ValidationError): + return None + def get_changelist_form(self, request, **kwargs): """ Returns a Form class for use in the Formset on the changelist page. @@ -522,16 +585,16 @@ def construct_change_message(self, request, form, formsets): for formset in formsets: for added_object in formset.new_objects: change_message.append(_('Added %(name)s "%(object)s".') - % {'name': added_object._meta.verbose_name, + % {'name': force_unicode(added_object._meta.verbose_name), 'object': force_unicode(added_object)}) for changed_object, changed_fields in formset.changed_objects: change_message.append(_('Changed %(list)s for %(name)s "%(object)s".') % {'list': get_text_list(changed_fields, _('and')), - 'name': changed_object._meta.verbose_name, + 'name': force_unicode(changed_object._meta.verbose_name), 'object': force_unicode(changed_object)}) for deleted_object in formset.deleted_objects: change_message.append(_('Deleted %(name)s "%(object)s".') - % {'name': deleted_object._meta.verbose_name, + % {'name': force_unicode(deleted_object._meta.verbose_name), 'object': force_unicode(deleted_object)}) change_message = ' '.join(change_message) return change_message or _('No fields changed.') @@ -655,6 +718,7 @@ def response_action(self, request, queryset): changelist; it returns an HttpResponse if the action was handled, and None otherwise. """ + # There can be multiple action forms on the page (at the top # and bottom of the change list, for example). Get the action # whose button was pushed. @@ -689,6 +753,9 @@ def response_action(self, request, queryset): # perform an action on it, so bail. selected = request.POST.getlist(helpers.ACTION_CHECKBOX_NAME) if not selected: + # Reminder that something needs to be selected or nothing will happen + msg = _("Items must be selected in order to perform actions on them. No items have been changed.") + self.message_user(request, msg) return None response = func(self, request, queryset.filter(pk__in=selected)) @@ -700,6 +767,9 @@ def response_action(self, request, queryset): return response else: return HttpResponseRedirect(".") + else: + msg = _("No action selected.") + self.message_user(request, msg) def add_view(self, request, form_url='', extra_context=None): "The 'add' admin view for this model." @@ -789,13 +859,7 @@ def change_view(self, request, object_id, extra_context=None): model = self.model opts = model._meta - try: - obj = self.queryset(request).get(pk=unquote(object_id)) - except model.DoesNotExist: - # Don't raise Http404 just yet, because we haven't checked - # permissions yet. We don't want an unauthenticated user to be able - # to determine whether a given object exists. - obj = None + obj = self.get_object(request, unquote(object_id)) if not self.has_change_permission(request, obj): raise PermissionDenied @@ -906,9 +970,9 @@ def changelist_view(self, request, extra_context=None): return HttpResponseRedirect(request.path + '?' + ERROR_FLAG + '=1') # If the request was POSTed, this might be a bulk action or a bulk edit. - # Try to look up an action first, but if this isn't an action the POST - # will fall through to the bulk edit check, below. - if actions and request.method == 'POST': + # Try to look up an action or confirmation first, but if this isn't an + # action the POST will fall through to the bulk edit check, below. + if actions and request.method == 'POST' and (helpers.ACTION_CHECKBOX_NAME in request.POST or 'index' in request.POST): response = self.response_action(request, queryset=cl.get_query_set()) if response: return response @@ -990,13 +1054,7 @@ def delete_view(self, request, object_id, extra_context=None): opts = self.model._meta app_label = opts.app_label - try: - obj = self.queryset(request).get(pk=unquote(object_id)) - except self.model.DoesNotExist: - # Don't raise Http404 just yet, because we haven't checked - # permissions yet. We don't want an unauthenticated user to be able - # to determine whether a given object exists. - obj = None + obj = self.get_object(request, unquote(object_id)) if not self.has_delete_permission(request, obj): raise PermissionDenied @@ -1006,9 +1064,7 @@ def delete_view(self, request, object_id, extra_context=None): # Populate deleted_objects, a data structure of all related objects that # will also be deleted. - deleted_objects = [mark_safe(u'%s: %s' % (escape(force_unicode(capfirst(opts.verbose_name))), object_id, escape(obj))), []] - perms_needed = set() - get_deleted_objects(deleted_objects, perms_needed, request.user, obj, opts, 1, self.admin_site) + (deleted_objects, perms_needed) = get_deleted_objects((obj,), opts, request.user, self.admin_site) if request.POST: # The user has already confirmed the deletion. if perms_needed: @@ -1052,7 +1108,7 @@ def history_view(self, request, object_id, extra_context=None): content_type__id__exact = ContentType.objects.get_for_model(model).id ).select_related().order_by('action_time') # If no history was found, see whether this object even exists. - obj = get_object_or_404(model, pk=object_id) + obj = get_object_or_404(model, pk=unquote(object_id)) context = { 'title': _('Change history: %s') % force_unicode(obj), 'action_list': action_list, @@ -1113,6 +1169,7 @@ class InlineModelAdmin(BaseModelAdmin): template = None verbose_name = None verbose_name_plural = None + can_delete = True def __init__(self, parent_model, admin_site): self.admin_site = admin_site @@ -1155,6 +1212,7 @@ def get_formset(self, request, obj=None, **kwargs): "formfield_callback": curry(self.formfield_for_dbfield, request=request), "extra": self.extra, "max_num": self.max_num, + "can_delete": self.can_delete, } defaults.update(kwargs) return inlineformset_factory(self.parent_model, self.model, **defaults) diff --git a/django/contrib/admin/sites.py b/django/contrib/admin/sites.py index 5f397ecb0183..2e81cbb8b945 100644 --- a/django/contrib/admin/sites.py +++ b/django/contrib/admin/sites.py @@ -191,6 +191,9 @@ def inner(request, *args, **kwargs): def get_urls(self): from django.conf.urls.defaults import patterns, url, include + if settings.DEBUG: + self.check_dependencies() + def wrap(view, cacheable=False): def wrapper(*args, **kwargs): return self.admin_view(view, cacheable)(*args, **kwargs) diff --git a/django/contrib/admin/templates/admin/auth/user/change_password.html b/django/contrib/admin/templates/admin/auth/user/change_password.html index d28dd0f45c16..19e0e8c9a7b0 100644 --- a/django/contrib/admin/templates/admin/auth/user/change_password.html +++ b/django/contrib/admin/templates/admin/auth/user/change_password.html @@ -1,7 +1,8 @@ {% extends "admin/base_site.html" %} {% load i18n admin_modify adminmedia %} {% block extrahead %}{{ block.super }} - +{% url admin:jsi18n as jsi18nurl %} + {% endblock %} {% block extrastyle %}{{ block.super }}{% endblock %} {% block bodyclass %}{{ opts.app_label }}-{{ opts.object_name.lower }} change-form{% endblock %} diff --git a/django/contrib/admin/templates/admin/base.html b/django/contrib/admin/templates/admin/base.html index 95257285eb70..637c10508ae0 100644 --- a/django/contrib/admin/templates/admin/base.html +++ b/django/contrib/admin/templates/admin/base.html @@ -25,7 +25,7 @@ {% if user.is_authenticated and user.is_staff %}
                  {% trans 'Welcome,' %} - {% firstof user.first_name user.username %}. + {% filter force_escape %}{% firstof user.first_name user.username %}{% endfilter %}. {% block userlinks %} {% url django-admindocs-docroot as docsroot %} {% if docsroot %} diff --git a/django/contrib/admin/templates/admin/change_form.html b/django/contrib/admin/templates/admin/change_form.html index f645d65a0f81..ca70653ed1fb 100644 --- a/django/contrib/admin/templates/admin/change_form.html +++ b/django/contrib/admin/templates/admin/change_form.html @@ -2,7 +2,8 @@ {% load i18n admin_modify adminmedia %} {% block extrahead %}{{ block.super }} - +{% url admin:jsi18n as jsi18nurl %} + {{ media }} {% endblock %} @@ -37,7 +38,7 @@

                  {% blocktrans count errors|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %}

                  -
                    {% for error in adminform.form.non_field_errors %}
                  • {{ error }}
                  • {% endfor %}
                  + {{ adminform.form.non_field_errors }} {% endif %} {% for fieldset in adminform %} diff --git a/django/contrib/admin/templates/admin/change_list.html b/django/contrib/admin/templates/admin/change_list.html index 31bf7bd29ac6..36ad5cfd0b89 100644 --- a/django/contrib/admin/templates/admin/change_list.html +++ b/django/contrib/admin/templates/admin/change_list.html @@ -6,7 +6,8 @@ {% if cl.formset %} - + {% url admin:jsi18n as jsi18nurl %} + {% endif %} {{ media }} {% if not actions_on_top and not actions_on_bottom %} @@ -53,7 +54,7 @@

                  {% blocktrans count cl.formset.errors|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %}

                  -
                    {% for error in cl.formset.non_field_errors %}
                  • {{ error }}
                  • {% endfor %}
                  + {{ cl.formset.non_form_errors }} {% endif %}
                  {% block search %}{% search_form cl %}{% endblock %} diff --git a/django/contrib/admin/templates/admin/delete_selected_confirmation.html b/django/contrib/admin/templates/admin/delete_selected_confirmation.html index 5550b73e2ebe..d65a31a0df69 100644 --- a/django/contrib/admin/templates/admin/delete_selected_confirmation.html +++ b/django/contrib/admin/templates/admin/delete_selected_confirmation.html @@ -20,8 +20,8 @@
                {% else %}

                {% blocktrans %}Are you sure you want to delete the selected {{ object_name }} objects? All of the following objects and their related items will be deleted:{% endblocktrans %}

                - {% for deleteable_object in deletable_objects %} -
                  {{ deleteable_object|unordered_list }}
                + {% for deletable_object in deletable_objects %} +
                  {{ deletable_object|unordered_list }}
                {% endfor %}
                diff --git a/django/contrib/admin/templatetags/admin_list.py b/django/contrib/admin/templatetags/admin_list.py index 9a4ce3b266bb..adb225ea1691 100644 --- a/django/contrib/admin/templatetags/admin_list.py +++ b/django/contrib/admin/templatetags/admin_list.py @@ -106,6 +106,11 @@ def result_headers(cl): else: header = field_name header = header.replace('_', ' ') + # if the field is the action checkbox: no sorting and special class + if field_name == 'action_checkbox': + yield {"text": header, + "class_attrib": mark_safe(' class="action-checkbox-column"')} + continue # It is a non-field, but perhaps one that is sortable admin_order_field = getattr(attr, "admin_order_field", None) @@ -237,7 +242,7 @@ def items_for_result(cl, result, form): result_repr = conditional_escape(result_repr) yield mark_safe(u'%s' % (row_class, result_repr)) if form: - yield mark_safe(force_unicode(form[cl.model._meta.pk.name])) + yield mark_safe(u'%s' % force_unicode(form[cl.model._meta.pk.name])) def results(cl): if cl.formset: diff --git a/django/contrib/admin/templatetags/adminmedia.py b/django/contrib/admin/templatetags/adminmedia.py index 77863435d494..5429810eb949 100644 --- a/django/contrib/admin/templatetags/adminmedia.py +++ b/django/contrib/admin/templatetags/adminmedia.py @@ -1,4 +1,5 @@ from django.template import Library +from django.utils.encoding import iri_to_uri register = Library() @@ -10,5 +11,5 @@ def admin_media_prefix(): from django.conf import settings except ImportError: return '' - return settings.ADMIN_MEDIA_PREFIX + return iri_to_uri(settings.ADMIN_MEDIA_PREFIX) admin_media_prefix = register.simple_tag(admin_media_prefix) diff --git a/django/contrib/admin/util.py b/django/contrib/admin/util.py index 4bdce45ebe28..e829d00eea4e 100644 --- a/django/contrib/admin/util.py +++ b/django/contrib/admin/util.py @@ -7,6 +7,13 @@ from django.utils.translation import ungettext, ugettext as _ from django.core.urlresolvers import reverse, NoReverseMatch +from django.utils.datastructures import SortedDict + +try: + set +except NameError: + from sets import Set as set # Python 2.3 fallback + def quote(s): """ Ensure that primary key values do not confuse the admin URLs by escaping @@ -55,135 +62,179 @@ def flatten_fieldsets(fieldsets): field_names.append(field) return field_names -def _nest_help(obj, depth, val): - current = obj - for i in range(depth): - current = current[-1] - current.append(val) - -def get_change_view_url(app_label, module_name, pk, admin_site, levels_to_root): - """ - Returns the url to the admin change view for the given app_label, - module_name and primary key. - """ +def _format_callback(obj, user, admin_site, levels_to_root, perms_needed): + has_admin = obj.__class__ in admin_site._registry + opts = obj._meta try: - return reverse('%sadmin_%s_%s_change' % (admin_site.name, app_label, module_name), None, (pk,)) + admin_url = reverse('%s:%s_%s_change' + % (admin_site.name, + opts.app_label, + opts.object_name.lower()), + None, (quote(obj._get_pk_val()),)) except NoReverseMatch: - return '%s%s/%s/%s/' % ('../'*levels_to_root, app_label, module_name, pk) + admin_url = '%s%s/%s/%s/' % ('../'*levels_to_root, + opts.app_label, + opts.object_name.lower(), + quote(obj._get_pk_val())) + if has_admin: + p = '%s.%s' % (opts.app_label, + opts.get_delete_permission()) + if not user.has_perm(p): + perms_needed.add(opts.verbose_name) + # Display a link to the admin page. + return mark_safe(u'%s: %s' % + (escape(capfirst(opts.verbose_name)), + admin_url, + escape(obj))) + else: + # Don't display link to edit, because it either has no + # admin or is edited inline. + return u'%s: %s' % (capfirst(opts.verbose_name), + force_unicode(obj)) -def get_deleted_objects(deleted_objects, perms_needed, user, obj, opts, current_depth, admin_site, levels_to_root=4): +def get_deleted_objects(objs, opts, user, admin_site, levels_to_root=4): """ - Helper function that recursively populates deleted_objects. + Find all objects related to ``objs`` that should also be + deleted. ``objs`` should be an iterable of objects. + + Returns a nested list of strings suitable for display in the + template with the ``unordered_list`` filter. - `levels_to_root` defines the number of directories (../) to reach the - admin root path. In a change_view this is 4, in a change_list view 2. + `levels_to_root` defines the number of directories (../) to reach + the admin root path. In a change_view this is 4, in a change_list + view 2. This is for backwards compatibility since the options.delete_selected method uses this function also from a change_list view. This will not be used if we can reverse the URL. """ - nh = _nest_help # Bind to local variable for performance - if current_depth > 16: - return # Avoid recursing too deep. - opts_seen = [] - for related in opts.get_all_related_objects(): - has_admin = related.model in admin_site._registry - if related.opts in opts_seen: - continue - opts_seen.append(related.opts) - rel_opts_name = related.get_accessor_name() - if isinstance(related.field.rel, models.OneToOneRel): - try: - sub_obj = getattr(obj, rel_opts_name) - except ObjectDoesNotExist: - pass - else: - if has_admin: - p = '%s.%s' % (related.opts.app_label, related.opts.get_delete_permission()) - if not user.has_perm(p): - perms_needed.add(related.opts.verbose_name) - # We don't care about populating deleted_objects now. - continue - if not has_admin: - # Don't display link to edit, because it either has no - # admin or is edited inline. - nh(deleted_objects, current_depth, - [u'%s: %s' % (capfirst(related.opts.verbose_name), force_unicode(sub_obj)), []]) - else: - # Display a link to the admin page. - nh(deleted_objects, current_depth, [mark_safe(u'%s: %s' % - (escape(capfirst(related.opts.verbose_name)), - get_change_view_url(related.opts.app_label, - related.opts.object_name.lower(), - sub_obj._get_pk_val(), - admin_site, - levels_to_root), - escape(sub_obj))), []]) - get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2, admin_site) + collector = NestedObjects() + for obj in objs: + # TODO using a private model API! + obj._collect_sub_objects(collector) + + # TODO This next bit is needed only because GenericRelations are + # cascade-deleted way down in the internals in + # DeleteQuery.delete_batch_related, instead of being found by + # _collect_sub_objects. Refs #12593. + from django.contrib.contenttypes import generic + for f in obj._meta.many_to_many: + if isinstance(f, generic.GenericRelation): + rel_manager = f.value_from_object(obj) + for related in rel_manager.all(): + # There's a wierdness here in the case that the + # generic-related object also has FKs pointing to it + # from elsewhere. DeleteQuery does not follow those + # FKs or delete any such objects explicitly (which is + # probably a bug). Some databases may cascade those + # deletes themselves, and some won't. So do we report + # those objects as to-be-deleted? No right answer; for + # now we opt to report only on objects that Django + # will explicitly delete, at risk that some further + # objects will be silently deleted by a + # referential-integrity-maintaining database. + collector.add(related.__class__, related.pk, related, + obj.__class__, obj) + + perms_needed = set() + + to_delete = collector.nested(_format_callback, + user=user, + admin_site=admin_site, + levels_to_root=levels_to_root, + perms_needed=perms_needed) + + return to_delete, perms_needed + + +class NestedObjects(object): + """ + A directed acyclic graph collection that exposes the add() API + expected by Model._collect_sub_objects and can present its data as + a nested list of objects. + + """ + def __init__(self): + # Use object keys of the form (model, pk) because actual model + # objects may not be unique + + # maps object key to list of child keys + self.children = SortedDict() + + # maps object key to parent key + self.parents = SortedDict() + + # maps object key to actual object + self.seen = SortedDict() + + def add(self, model, pk, obj, + parent_model=None, parent_obj=None, nullable=False): + """ + Add item ``obj`` to the graph. Returns True (and does nothing) + if the item has been seen already. + + The ``parent_obj`` argument must already exist in the graph; if + not, it's ignored (but ``obj`` is still added with no + parent). In any case, Model._collect_sub_objects (for whom + this API exists) will never pass a parent that hasn't already + been added itself. + + These restrictions in combination ensure the graph will remain + acyclic (but can have multiple roots). + + ``model``, ``pk``, and ``parent_model`` arguments are ignored + in favor of the appropriate lookups on ``obj`` and + ``parent_obj``; unlike CollectedObjects, we can't maintain + independence from the knowledge that we're operating on model + instances, and we don't want to allow for inconsistency. + + ``nullable`` arg is ignored: it doesn't affect how the tree of + collected objects should be nested for display. + """ + model, pk = type(obj), obj._get_pk_val() + + key = model, pk + + if key in self.seen: + return True + self.seen.setdefault(key, obj) + + if parent_obj is not None: + parent_model, parent_pk = (type(parent_obj), + parent_obj._get_pk_val()) + parent_key = (parent_model, parent_pk) + if parent_key in self.seen: + self.children.setdefault(parent_key, list()).append(key) + self.parents.setdefault(key, parent_key) + + def _nested(self, key, format_callback=None, **kwargs): + obj = self.seen[key] + if format_callback: + ret = [format_callback(obj, **kwargs)] else: - has_related_objs = False - for sub_obj in getattr(obj, rel_opts_name).all(): - has_related_objs = True - if not has_admin: - # Don't display link to edit, because it either has no - # admin or is edited inline. - nh(deleted_objects, current_depth, - [u'%s: %s' % (capfirst(related.opts.verbose_name), force_unicode(sub_obj)), []]) - else: - # Display a link to the admin page. - nh(deleted_objects, current_depth, [mark_safe(u'%s: %s' % - (escape(capfirst(related.opts.verbose_name)), - get_change_view_url(related.opts.app_label, - related.opts.object_name.lower(), - sub_obj._get_pk_val(), - admin_site, - levels_to_root), - escape(sub_obj))), []]) - get_deleted_objects(deleted_objects, perms_needed, user, sub_obj, related.opts, current_depth+2, admin_site) - # If there were related objects, and the user doesn't have - # permission to delete them, add the missing perm to perms_needed. - if has_admin and has_related_objs: - p = '%s.%s' % (related.opts.app_label, related.opts.get_delete_permission()) - if not user.has_perm(p): - perms_needed.add(related.opts.verbose_name) - for related in opts.get_all_related_many_to_many_objects(): - has_admin = related.model in admin_site._registry - if related.opts in opts_seen: - continue - opts_seen.append(related.opts) - rel_opts_name = related.get_accessor_name() - has_related_objs = False - - # related.get_accessor_name() could return None for symmetrical relationships - if rel_opts_name: - rel_objs = getattr(obj, rel_opts_name, None) - if rel_objs: - has_related_objs = True - - if has_related_objs: - for sub_obj in rel_objs.all(): - if not has_admin: - # Don't display link to edit, because it either has no - # admin or is edited inline. - nh(deleted_objects, current_depth, [_('One or more %(fieldname)s in %(name)s: %(obj)s') % \ - {'fieldname': force_unicode(related.field.verbose_name), 'name': force_unicode(related.opts.verbose_name), 'obj': escape(sub_obj)}, []]) - else: - # Display a link to the admin page. - nh(deleted_objects, current_depth, [ - mark_safe((_('One or more %(fieldname)s in %(name)s:') % {'fieldname': escape(force_unicode(related.field.verbose_name)), 'name': escape(force_unicode(related.opts.verbose_name))}) + \ - (u' %s' % \ - (get_change_view_url(related.opts.app_label, - related.opts.object_name.lower(), - sub_obj._get_pk_val(), - admin_site, - levels_to_root), - escape(sub_obj)))), []]) - # If there were related objects, and the user doesn't have - # permission to change them, add the missing perm to perms_needed. - if has_admin and has_related_objs: - p = u'%s.%s' % (related.opts.app_label, related.opts.get_change_permission()) - if not user.has_perm(p): - perms_needed.add(related.opts.verbose_name) + ret = [obj] + + children = [] + for child in self.children.get(key, ()): + children.extend(self._nested(child, format_callback, **kwargs)) + if children: + ret.append(children) + + return ret + + def nested(self, format_callback=None, **kwargs): + """ + Return the graph as a nested list. + + Passes **kwargs back to the format_callback as kwargs. + + """ + roots = [] + for key in self.seen.keys(): + if key not in self.parents: + roots.extend(self._nested(key, format_callback, **kwargs)) + return roots + def model_format_dict(obj): """ diff --git a/django/contrib/admin/validation.py b/django/contrib/admin/validation.py index 50e41437b8f0..04a03cf33a51 100644 --- a/django/contrib/admin/validation.py +++ b/django/contrib/admin/validation.py @@ -149,12 +149,16 @@ def validate(cls, model): validate_inline(inline, cls, model) def validate_inline(cls, parent, parent_model): + # model is already verified to exist and be a Model if cls.fk_name: # default value is None f = get_field(cls, cls.model, cls.model._meta, 'fk_name', cls.fk_name) if not isinstance(f, models.ForeignKey): raise ImproperlyConfigured("'%s.fk_name is not an instance of " "models.ForeignKey." % cls.__name__) + + fk = _get_foreign_key(parent_model, cls.model, fk_name=cls.fk_name, can_fail=True) + # extra = 3 # max_num = 0 for attr in ('extra', 'max_num'): @@ -169,7 +173,6 @@ def validate_inline(cls, parent, parent_model): # exclude if hasattr(cls, 'exclude') and cls.exclude: - fk = _get_foreign_key(parent_model, cls.model, can_fail=True) if fk and fk.name in cls.exclude: raise ImproperlyConfigured("%s cannot exclude the field " "'%s' - this is the foreign key to the parent model " @@ -217,6 +220,20 @@ def validate_base(cls, model): for field in flattened_fieldsets: check_formfield(cls, model, opts, "fieldsets[%d][1]['fields']" % idx, field) + # exclude + if cls.exclude: # default value is None + check_isseq(cls, 'exclude', cls.exclude) + for field in cls.exclude: + check_formfield(cls, model, opts, 'exclude', field) + try: + f = opts.get_field(field) + except models.FieldDoesNotExist: + # If we can't find a field on the model that matches, + # it could be an extra field on the form. + continue + if len(cls.exclude) > len(set(cls.exclude)): + raise ImproperlyConfigured('There are duplicate field(s) in %s.exclude' % cls.__name__) + # form if hasattr(cls, 'form') and not issubclass(cls.form, BaseModelForm): raise ImproperlyConfigured("%s.form does not inherit from " diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py index df0fd9fab4f3..911436adf943 100644 --- a/django/contrib/admin/views/main.py +++ b/django/contrib/admin/views/main.py @@ -1,6 +1,7 @@ from django.contrib.admin.filterspecs import FilterSpec from django.contrib.admin.options import IncorrectLookupParameters from django.contrib.admin.util import quote +from django.core.exceptions import SuspiciousOperation from django.core.paginator import Paginator, InvalidPage from django.db import models from django.db.models.query import QuerySet @@ -183,7 +184,21 @@ def get_query_set(self): # if key ends with __in, split parameter into separate values if key.endswith('__in'): - lookup_params[key] = value.split(',') + value = value.split(',') + lookup_params[key] = value + + # if key ends with __isnull, special case '' and false + if key.endswith('__isnull'): + if value.lower() in ('', 'false'): + value = False + else: + value = True + lookup_params[key] = value + + if not self.model_admin.lookup_allowed(key, value): + raise SuspiciousOperation( + "Filtering by %s not allowed" % key + ) # Apply lookup parameters from the query string. try: @@ -191,7 +206,7 @@ def get_query_set(self): # Naked except! Because we don't have any other way of validating "params". # They might be invalid if the keyword arguments are incorrect, or if the # values are not in the correct type, so we might get FieldError, ValueError, - # ValicationError, or ? from a custom field that raises yet something else + # ValicationError, or ? from a custom field that raises yet something else # when handed impossible data. except: raise IncorrectLookupParameters diff --git a/django/contrib/admin/widgets.py b/django/contrib/admin/widgets.py index fb5acb529569..228b592fdaa0 100644 --- a/django/contrib/admin/widgets.py +++ b/django/contrib/admin/widgets.py @@ -2,7 +2,7 @@ Form Widget classes specific to the Django admin site. """ -import copy +import django.utils.copycompat as copy from django import forms from django.forms.widgets import RadioFieldRenderer @@ -93,10 +93,27 @@ def render(self, name, value, attrs=None): output = [] if value and hasattr(value, "url"): output.append('%s %s
                %s ' % \ - (_('Currently:'), value.url, value, _('Change:'))) + (_('Currently:'), escape(value.url), escape(value), _('Change:'))) output.append(super(AdminFileWidget, self).render(name, value, attrs)) return mark_safe(u''.join(output)) +def url_params_from_lookup_dict(lookups): + """ + Converts the type of lookups specified in a ForeignKey limit_choices_to + attribute to a dictionary of query parameters + """ + params = {} + if lookups and hasattr(lookups, 'items'): + items = [] + for k, v in lookups.items(): + if isinstance(v, list): + v = u','.join([str(x) for x in v]) + else: + v = unicode(v) + items.append((k, v)) + params.update(dict(items)) + return params + class ForeignKeyRawIdWidget(forms.TextInput): """ A Widget for displaying ForeignKeys in the "raw_id" interface rather than @@ -112,33 +129,23 @@ def render(self, name, value, attrs=None): related_url = '../../../%s/%s/' % (self.rel.to._meta.app_label, self.rel.to._meta.object_name.lower()) params = self.url_parameters() if params: - url = '?' + '&'.join(['%s=%s' % (k, v) for k, v in params.items()]) + url = u'?' + u'&'.join([u'%s=%s' % (k, v) for k, v in params.items()]) else: - url = '' + url = u'' if not attrs.has_key('class'): attrs['class'] = 'vForeignKeyRawIdAdminField' # The JavaScript looks for this hook. output = [super(ForeignKeyRawIdWidget, self).render(name, value, attrs)] # TODO: "id_" is hard-coded here. This should instead use the correct # API to determine the ID dynamically. - output.append(' ' % \ + output.append(u' ' % \ (related_url, url, name)) - output.append('%s' % (settings.ADMIN_MEDIA_PREFIX, _('Lookup'))) + output.append(u'%s' % (settings.ADMIN_MEDIA_PREFIX, _('Lookup'))) if value: output.append(self.label_for_value(value)) return mark_safe(u''.join(output)) def base_url_parameters(self): - params = {} - if self.rel.limit_choices_to: - items = [] - for k, v in self.rel.limit_choices_to.items(): - if isinstance(v, list): - v = ','.join([str(x) for x in v]) - else: - v = str(v) - items.append((k, v)) - params.update(dict(items)) - return params + return url_params_from_lookup_dict(self.rel.limit_choices_to) def url_parameters(self): from django.contrib.admin.views.main import TO_FIELD_VAR @@ -148,7 +155,10 @@ def url_parameters(self): def label_for_value(self, value): key = self.rel.get_related_field().name - obj = self.rel.to._default_manager.get(**{key: value}) + try: + obj = self.rel.to._default_manager.get(**{key: value}) + except self.rel.to.DoesNotExist: + return '' return ' %s' % escape(truncate_words(obj, 14)) class ManyToManyRawIdWidget(ForeignKeyRawIdWidget): diff --git a/django/contrib/admindocs/models.py b/django/contrib/admindocs/models.py new file mode 100644 index 000000000000..a9f813a4cb12 --- /dev/null +++ b/django/contrib/admindocs/models.py @@ -0,0 +1 @@ +# Empty models.py to allow for specifying admindocs as a test label. diff --git a/django/contrib/admindocs/tests/__init__.py b/django/contrib/admindocs/tests/__init__.py new file mode 100644 index 000000000000..b4526c6a7ec4 --- /dev/null +++ b/django/contrib/admindocs/tests/__init__.py @@ -0,0 +1,30 @@ +import unittest +import fields +from django.contrib.admindocs import views +from django.db.models import fields as builtin_fields + + +class TestFieldType(unittest.TestCase): + def setUp(self): + pass + + def test_field_name(self): + self.assertRaises(AttributeError, + views.get_readable_field_data_type, "NotAField" + ) + + def test_builtin_fields(self): + self.assertEqual( + views.get_readable_field_data_type(builtin_fields.BooleanField()), + u'Boolean (Either True or False)' + ) + + def test_custom_fields(self): + self.assertEqual( + views.get_readable_field_data_type(fields.CustomField()), + u'A custom field type' + ) + self.assertEqual( + views.get_readable_field_data_type(fields.DescriptionLackingField()), + u'Field of type: DescriptionLackingField' + ) diff --git a/django/contrib/admindocs/tests/fields.py b/django/contrib/admindocs/tests/fields.py new file mode 100644 index 000000000000..e59498afb5a8 --- /dev/null +++ b/django/contrib/admindocs/tests/fields.py @@ -0,0 +1,7 @@ +from django.db import models + +class CustomField(models.Field): + description = "A custom field type" + +class DescriptionLackingField(models.Field): + pass diff --git a/django/contrib/admindocs/utils.py b/django/contrib/admindocs/utils.py index 24228541f6b2..41c627cc4d51 100644 --- a/django/contrib/admindocs/utils.py +++ b/django/contrib/admindocs/utils.py @@ -5,6 +5,7 @@ from email.Errors import HeaderParseError from django.utils.safestring import mark_safe from django.core.urlresolvers import reverse +from django.utils.encoding import smart_str try: import docutils.core import docutils.nodes @@ -64,7 +65,7 @@ def parse_rst(text, default_reference_context, thing_being_parsed=None): "link_base" : reverse('django-admindocs-docroot').rstrip('/') } if thing_being_parsed: - thing_being_parsed = "<%s>" % thing_being_parsed + thing_being_parsed = smart_str("<%s>" % thing_being_parsed) parts = docutils.core.publish_parts(text, source_path=thing_being_parsed, destination_path=None, writer_name='html', settings_overrides=overrides) diff --git a/django/contrib/admindocs/views.py b/django/contrib/admindocs/views.py index 571f393ff8a0..bcf835328779 100644 --- a/django/contrib/admindocs/views.py +++ b/django/contrib/admindocs/views.py @@ -326,43 +326,12 @@ def get_return_data_type(func_name): return 'Integer' return '' -# Maps Field objects to their human-readable data types, as strings. -# Column-type strings can contain format strings; they'll be interpolated -# against the values of Field.__dict__ before being output. -# If a column type is set to None, it won't be included in the output. -DATA_TYPE_MAPPING = { - 'AutoField' : _('Integer'), - 'BooleanField' : _('Boolean (Either True or False)'), - 'CharField' : _('String (up to %(max_length)s)'), - 'CommaSeparatedIntegerField': _('Comma-separated integers'), - 'DateField' : _('Date (without time)'), - 'DateTimeField' : _('Date (with time)'), - 'DecimalField' : _('Decimal number'), - 'EmailField' : _('E-mail address'), - 'FileField' : _('File path'), - 'FilePathField' : _('File path'), - 'FloatField' : _('Floating point number'), - 'ForeignKey' : _('Integer'), - 'ImageField' : _('File path'), - 'IntegerField' : _('Integer'), - 'IPAddressField' : _('IP address'), - 'ManyToManyField' : '', - 'NullBooleanField' : _('Boolean (Either True, False or None)'), - 'OneToOneField' : _('Relation to parent model'), - 'PhoneNumberField' : _('Phone number'), - 'PositiveIntegerField' : _('Integer'), - 'PositiveSmallIntegerField' : _('Integer'), - 'SlugField' : _('String (up to %(max_length)s)'), - 'SmallIntegerField' : _('Integer'), - 'TextField' : _('Text'), - 'TimeField' : _('Time'), - 'URLField' : _('URL'), - 'USStateField' : _('U.S. state (two uppercase letters)'), - 'XMLField' : _('XML text'), -} - def get_readable_field_data_type(field): - return DATA_TYPE_MAPPING[field.get_internal_type()] % field.__dict__ + """Returns the description for a given field type, if it exists, + Fields' descriptions can contain format strings, which will be interpolated + against the values of field.__dict__ before being output.""" + + return field.description % field.__dict__ def extract_views_from_urlpatterns(urlpatterns, base=''): """ diff --git a/django/contrib/auth/models.py b/django/contrib/auth/models.py index e337bec2620b..6402fffc9b62 100644 --- a/django/contrib/auth/models.py +++ b/django/contrib/auth/models.py @@ -95,9 +95,25 @@ def __unicode__(self): class UserManager(models.Manager): def create_user(self, username, email, password=None): - "Creates and saves a User with the given username, e-mail and password." + """ + Creates and saves a User with the given username, e-mail and password. + """ + now = datetime.datetime.now() - user = self.model(None, username, '', '', email.strip().lower(), 'placeholder', False, True, False, now, now) + + # Normalize the address by lowercasing the domain part of the email + # address. + try: + email_name, domain_part = email.strip().split('@', 1) + except ValueError: + pass + else: + email = '@'.join([email_name, domain_part.lower()]) + + user = self.model(username=username, email=email, is_staff=False, + is_active=True, is_superuser=False, last_login=now, + date_joined=now) + if password: user.set_password(password) else: diff --git a/django/contrib/auth/tests/forms.py b/django/contrib/auth/tests/forms.py index 482979c59ee1..ee1abe502378 100644 --- a/django/contrib/auth/tests/forms.py +++ b/django/contrib/auth/tests/forms.py @@ -219,4 +219,13 @@ >>> form.cleaned_data['email'] u'jsmith3@example.com' +# bug #5605, preserve the case of the user name (before the @ in the email address) +# when creating a user. +>>> user = User.objects.create_user('forms_test2', 'tesT@EXAMple.com', 'test') +>>> user.email +'tesT@example.com' +>>> user = User.objects.create_user('forms_test3', 'tesT', 'test') +>>> user.email +'tesT' + """ diff --git a/django/contrib/auth/tests/remote_user.py b/django/contrib/auth/tests/remote_user.py index 842d589a54d3..6115edcfd0f3 100644 --- a/django/contrib/auth/tests/remote_user.py +++ b/django/contrib/auth/tests/remote_user.py @@ -2,7 +2,7 @@ from django.conf import settings from django.contrib.auth.backends import RemoteUserBackend -from django.contrib.auth.models import AnonymousUser, User +from django.contrib.auth.models import User from django.test import TestCase @@ -30,15 +30,15 @@ def test_no_remote_user(self): num_users = User.objects.count() response = self.client.get('/remote_user/') - self.assert_(isinstance(response.context['user'], AnonymousUser)) + self.assert_(response.context['user'].is_anonymous()) self.assertEqual(User.objects.count(), num_users) response = self.client.get('/remote_user/', REMOTE_USER=None) - self.assert_(isinstance(response.context['user'], AnonymousUser)) + self.assert_(response.context['user'].is_anonymous()) self.assertEqual(User.objects.count(), num_users) response = self.client.get('/remote_user/', REMOTE_USER='') - self.assert_(isinstance(response.context['user'], AnonymousUser)) + self.assert_(response.context['user'].is_anonymous()) self.assertEqual(User.objects.count(), num_users) def test_unknown_user(self): @@ -115,7 +115,7 @@ class that doesn't create unknown users. def test_unknown_user(self): num_users = User.objects.count() response = self.client.get('/remote_user/', REMOTE_USER='newuser') - self.assert_(isinstance(response.context['user'], AnonymousUser)) + self.assert_(response.context['user'].is_anonymous()) self.assertEqual(User.objects.count(), num_users) diff --git a/django/contrib/auth/tests/templates/registration/password_reset_complete.html b/django/contrib/auth/tests/templates/registration/password_reset_complete.html new file mode 100644 index 000000000000..3dd79d86a4d9 --- /dev/null +++ b/django/contrib/auth/tests/templates/registration/password_reset_complete.html @@ -0,0 +1 @@ +Password reset successfully \ No newline at end of file diff --git a/django/contrib/auth/tests/templates/registration/password_reset_confirm.html b/django/contrib/auth/tests/templates/registration/password_reset_confirm.html new file mode 100644 index 000000000000..8f06c5779347 --- /dev/null +++ b/django/contrib/auth/tests/templates/registration/password_reset_confirm.html @@ -0,0 +1,5 @@ +{% if validlink %} +Please enter your new password: {{ form }} +{% else %} +The password reset link was invalid +{% endif %} \ No newline at end of file diff --git a/django/contrib/auth/tests/templates/registration/password_reset_done.html b/django/contrib/auth/tests/templates/registration/password_reset_done.html new file mode 100644 index 000000000000..d56b10f0d5bc --- /dev/null +++ b/django/contrib/auth/tests/templates/registration/password_reset_done.html @@ -0,0 +1 @@ +E-mail sent \ No newline at end of file diff --git a/django/contrib/auth/tests/templates/registration/password_reset_email.html b/django/contrib/auth/tests/templates/registration/password_reset_email.html new file mode 100644 index 000000000000..1b9a48255a20 --- /dev/null +++ b/django/contrib/auth/tests/templates/registration/password_reset_email.html @@ -0,0 +1 @@ +{{ protocol }}://{{ domain }}/reset/{{ uid }}-{{ token }}/ \ No newline at end of file diff --git a/django/contrib/auth/tests/templates/registration/password_reset_form.html b/django/contrib/auth/tests/templates/registration/password_reset_form.html new file mode 100644 index 000000000000..d96011199234 --- /dev/null +++ b/django/contrib/auth/tests/templates/registration/password_reset_form.html @@ -0,0 +1 @@ +{{ form }} \ No newline at end of file diff --git a/django/contrib/auth/tests/tokens.py b/django/contrib/auth/tests/tokens.py index 03cc1e3c1141..7a641fd81861 100644 --- a/django/contrib/auth/tests/tokens.py +++ b/django/contrib/auth/tests/tokens.py @@ -34,4 +34,9 @@ >>> p2.check_token(u, tk1) False +This will put a 14-digit base36 timestamp into the token, which is too large. +>>> tk1 = p0._make_token_with_timestamp(u, 175455491841851871349) +>>> p0.check_token(u, tk1) +False + """ diff --git a/django/contrib/auth/tests/views.py b/django/contrib/auth/tests/views.py index 532f92b52346..aea572f9c652 100644 --- a/django/contrib/auth/tests/views.py +++ b/django/contrib/auth/tests/views.py @@ -1,8 +1,9 @@ import os import re +import urllib from django.conf import settings -from django.contrib.auth import SESSION_KEY +from django.contrib.auth import SESSION_KEY, REDIRECT_FIELD_NAME from django.contrib.auth.forms import AuthenticationForm from django.contrib.sites.models import Site, RequestSite from django.contrib.auth.models import User @@ -37,16 +38,6 @@ def tearDown(self): class PasswordResetTest(AuthViewsTestCase): - def setUp(self): - self.old_LANGUAGES = settings.LANGUAGES - self.old_LANGUAGE_CODE = settings.LANGUAGE_CODE - settings.LANGUAGES = (('en', 'English'),) - settings.LANGUAGE_CODE = 'en' - - def tearDown(self): - settings.LANGUAGES = self.old_LANGUAGES - settings.LANGUAGE_CODE = self.old_LANGUAGE_CODE - def test_email_not_found(self): "Error is raised if the provided email address isn't currently registered" response = self.client.get('/password_reset/') @@ -191,9 +182,49 @@ def test_current_site_in_context_after_login(self): site = Site.objects.get_current() self.assertEquals(response.context['site'], site) self.assertEquals(response.context['site_name'], site.name) - self.assert_(isinstance(response.context['form'], AuthenticationForm), + self.assert_(isinstance(response.context['form'], AuthenticationForm), 'Login form is not an AuthenticationForm') - + + def test_security_check(self, password='password'): + login_url = reverse('django.contrib.auth.views.login') + + # Those URLs should not pass the security check + for bad_url in ('http://example.com', + 'https://example.com', + 'ftp://exampel.com', + '//example.com'): + + nasty_url = '%(url)s?%(next)s=%(bad_url)s' % { + 'url': login_url, + 'next': REDIRECT_FIELD_NAME, + 'bad_url': urllib.quote(bad_url) + } + response = self.client.post(nasty_url, { + 'username': 'testclient', + 'password': password, + } + ) + self.assertEquals(response.status_code, 302) + self.failIf(bad_url in response['Location'], "%s should be blocked" % bad_url) + + # Now, these URLs have an other URL as a GET parameter and therefore + # should be allowed + for url_ in ('http://example.com', 'https://example.com', + 'ftp://exampel.com', '//example.com'): + safe_url = '%(url)s?%(next)s=/view/?param=%(safe_param)s' % { + 'url': login_url, + 'next': REDIRECT_FIELD_NAME, + 'safe_param': urllib.quote(url_) + } + response = self.client.post(safe_url, { + 'username': 'testclient', + 'password': password, + } + ) + self.assertEquals(response.status_code, 302) + self.failUnless('/view/?param=%s' % url_ in response['Location'], "/view/?param=%s should be allowed" % url_) + + class LogoutTest(AuthViewsTestCase): urls = 'django.contrib.auth.tests.urls' @@ -218,7 +249,7 @@ def test_logout_default(self): self.assert_('Logged out' in response.content) self.confirm_logged_out() - def test_logout_with_next_page_specified(self): + def test_logout_with_next_page_specified(self): "Logout with next_page option given redirects to specified resource" self.login() response = self.client.get('/logout/next_page/') diff --git a/django/contrib/auth/urls.py b/django/contrib/auth/urls.py index 4f8a102e667f..42b4e8f212bd 100644 --- a/django/contrib/auth/urls.py +++ b/django/contrib/auth/urls.py @@ -1,4 +1,4 @@ -# These URLs are normally mapped to /admin/urls.py. This URLs file is +# These URLs are normally mapped to /admin/urls.py. This URLs file is # provided as a convenience to those who want to deploy these URLs elsewhere. # This file is also used to provide a reliable view deployment for test purposes. @@ -11,7 +11,7 @@ (r'^password_change/done/$', 'django.contrib.auth.views.password_change_done'), (r'^password_reset/$', 'django.contrib.auth.views.password_reset'), (r'^password_reset/done/$', 'django.contrib.auth.views.password_reset_done'), - (r'^reset/(?P[0-9A-Za-z]+)-(?P.+)/$', 'django.contrib.auth.views.password_reset_confirm'), + (r'^reset/(?P[0-9A-Za-z]{1,13})-(?P[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', 'django.contrib.auth.views.password_reset_confirm'), (r'^reset/done/$', 'django.contrib.auth.views.password_reset_complete'), ) diff --git a/django/contrib/auth/views.py b/django/contrib/auth/views.py index f753ed6de8dd..a6f9dbec26b8 100644 --- a/django/contrib/auth/views.py +++ b/django/contrib/auth/views.py @@ -1,5 +1,8 @@ +import re from django.conf import settings from django.contrib.auth import REDIRECT_FIELD_NAME +# Avoid shadowing the login() view below. +from django.contrib.auth import login as auth_login from django.contrib.auth.decorators import login_required from django.contrib.auth.forms import AuthenticationForm from django.contrib.auth.forms import PasswordResetForm, SetPasswordForm, PasswordChangeForm @@ -17,24 +20,38 @@ def login(request, template_name='registration/login.html', redirect_field_name=REDIRECT_FIELD_NAME): "Displays the login form and handles the login action." redirect_to = request.REQUEST.get(redirect_field_name, '') + if request.method == "POST": form = AuthenticationForm(data=request.POST) if form.is_valid(): # Light security check -- make sure redirect_to isn't garbage. - if not redirect_to or '//' in redirect_to or ' ' in redirect_to: + if not redirect_to or ' ' in redirect_to: redirect_to = settings.LOGIN_REDIRECT_URL - from django.contrib.auth import login - login(request, form.get_user()) + + # Heavier security check -- redirects to http://example.com should + # not be allowed, but things like /view/?param=http://example.com + # should be allowed. This regex checks if there is a '//' *before* a + # question mark. + elif '//' in redirect_to and re.match(r'[^\?]*//', redirect_to): + redirect_to = settings.LOGIN_REDIRECT_URL + + # Okay, security checks complete. Log the user in. + auth_login(request, form.get_user()) + if request.session.test_cookie_worked(): request.session.delete_test_cookie() + return HttpResponseRedirect(redirect_to) + else: form = AuthenticationForm(request) request.session.set_test_cookie() + if Site._meta.installed: current_site = Site.objects.get_current() else: current_site = RequestSite(request) + return render_to_response(template_name, { 'form': form, redirect_field_name: redirect_to, diff --git a/django/contrib/comments/admin.py b/django/contrib/comments/admin.py index 3b1fb14bcc49..c2f8e564f4f5 100644 --- a/django/contrib/comments/admin.py +++ b/django/contrib/comments/admin.py @@ -20,6 +20,7 @@ class CommentsAdmin(admin.ModelAdmin): list_filter = ('submit_date', 'site', 'is_public', 'is_removed') date_hierarchy = 'submit_date' ordering = ('-submit_date',) + raw_id_fields = ('user',) search_fields = ('comment', 'user__username', 'user_name', 'user_email', 'user_url', 'ip_address') # Only register the default admin if the model is the built-in comment model diff --git a/django/contrib/comments/moderation.py b/django/contrib/comments/moderation.py index e8cd08f5895b..fd6f318a7c2d 100644 --- a/django/contrib/comments/moderation.py +++ b/django/contrib/comments/moderation.py @@ -250,12 +250,11 @@ class Moderator(object): models registered for comment moderation, and their associated moderation classes, and apply moderation to all incoming comments. - To register a model, obtain an instance of ``CommentModerator`` - (this module exports one as ``moderator``), and call its - ``register`` method, passing the model class and a moderation - class (which should be a subclass of ``CommentModerator``). Note - that both of these should be the actual classes, not instances of - the classes. + To register a model, obtain an instance of ``Moderator`` (this + module exports one as ``moderator``), and call its ``register`` + method, passing the model class and a moderation class (which + should be a subclass of ``CommentModerator``). Note that both of + these should be the actual classes, not instances of the classes. To cease moderation for a model, call the ``unregister`` method, passing the model class. diff --git a/django/contrib/comments/templatetags/comments.py b/django/contrib/comments/templatetags/comments.py index 9f8180ab08c3..876c55500fef 100644 --- a/django/contrib/comments/templatetags/comments.py +++ b/django/contrib/comments/templatetags/comments.py @@ -248,7 +248,7 @@ def comment_form_target(): Example:: - + """ return comments.get_form_target() diff --git a/django/contrib/comments/views/comments.py b/django/contrib/comments/views/comments.py index 89a3dd9bba0f..c7e0cc06fae1 100644 --- a/django/contrib/comments/views/comments.py +++ b/django/contrib/comments/views/comments.py @@ -1,7 +1,7 @@ from django import http from django.conf import settings from utils import next_redirect, confirmation_view -from django.core.exceptions import ObjectDoesNotExist +from django.core.exceptions import ObjectDoesNotExist, ValidationError from django.db import models from django.shortcuts import render_to_response from django.template import RequestContext @@ -59,6 +59,10 @@ def post_comment(request, next=None): return CommentPostBadRequest( "No object matching content-type %r and object PK %r exists." % \ (escape(ctype), escape(object_pk))) + except (ValueError, ValidationError), e: + return CommentPostBadRequest( + "Attempting go get content-type %r and object PK %r exists raised %s" % \ + (escape(ctype), escape(object_pk), e.__class__.__name__)) # Do we want to preview the comment? preview = "preview" in data diff --git a/django/contrib/comments/views/utils.py b/django/contrib/comments/views/utils.py index c5c900d47f7b..8b729d2d95d1 100644 --- a/django/contrib/comments/views/utils.py +++ b/django/contrib/comments/views/utils.py @@ -39,7 +39,7 @@ def confirmed(request): if 'c' in request.GET: try: comment = comments.get_model().objects.get(pk=request.GET['c']) - except ObjectDoesNotExist: + except (ObjectDoesNotExist, ValueError): pass return render_to_response(template, {'comment': comment}, diff --git a/django/contrib/contenttypes/generic.py b/django/contrib/contenttypes/generic.py index 4df48ff9f5d8..a834a4426744 100644 --- a/django/contrib/contenttypes/generic.py +++ b/django/contrib/contenttypes/generic.py @@ -131,7 +131,7 @@ def m2m_column_name(self): return self.object_id_field_name def m2m_reverse_name(self): - return self.model._meta.pk.column + return self.rel.to._meta.pk.column def contribute_to_class(self, cls, name): super(GenericRelation, self).contribute_to_class(cls, name) @@ -291,18 +291,28 @@ class BaseGenericInlineFormSet(BaseModelFormSet): """ A formset for generic inline objects to a parent. """ - ct_field_name = "content_type" - ct_fk_field_name = "object_id" - def __init__(self, data=None, files=None, instance=None, save_as_new=None, prefix=None): + def __init__(self, data=None, files=None, instance=None, save_as_new=None, + prefix=None, queryset=None): + # Avoid a circular import. + from django.contrib.contenttypes.models import ContentType opts = self.model._meta self.instance = instance self.rel_name = '-'.join(( opts.app_label, opts.object_name.lower(), self.ct_field.name, self.ct_fk_field.name, )) + if self.instance is None or self.instance.pk is None: + qs = self.model._default_manager.none() + else: + if queryset is None: + queryset = self.model._default_manager + qs = queryset.filter(**{ + self.ct_field.name: ContentType.objects.get_for_model(self.instance), + self.ct_fk_field.name: self.instance.pk, + }) super(BaseGenericInlineFormSet, self).__init__( - queryset=self.get_queryset(), data=data, files=files, + queryset=qs, data=data, files=files, prefix=prefix ) @@ -314,16 +324,6 @@ def get_default_prefix(cls): )) get_default_prefix = classmethod(get_default_prefix) - def get_queryset(self): - # Avoid a circular import. - from django.contrib.contenttypes.models import ContentType - if self.instance is None or self.instance.pk is None: - return self.model._default_manager.none() - return self.model._default_manager.filter(**{ - self.ct_field.name: ContentType.objects.get_for_model(self.instance), - self.ct_fk_field.name: self.instance.pk, - }) - def save_new(self, form, commit=True): # Avoid a circular import. from django.contrib.contenttypes.models import ContentType @@ -386,7 +386,7 @@ def get_formset(self, request, obj=None): "formfield_callback": self.formfield_for_dbfield, "formset": self.formset, "extra": self.extra, - "can_delete": True, + "can_delete": self.can_delete, "can_order": False, "fields": fields, "max_num": self.max_num, diff --git a/django/contrib/contenttypes/management.py b/django/contrib/contenttypes/management.py index 736e21366548..27d12751f226 100644 --- a/django/contrib/contenttypes/management.py +++ b/django/contrib/contenttypes/management.py @@ -25,16 +25,34 @@ def update_contenttypes(app, created_models, verbosity=2, **kwargs): if verbosity >= 2: print "Adding content type '%s | %s'" % (ct.app_label, ct.model) # The presence of any remaining content types means the supplied app has an - # undefined model and can safely be removed, which cascades to also remove - # related permissions. - for ct in content_types: - if verbosity >= 2: - print "Deleting stale content type '%s | %s'" % (ct.app_label, ct.model) - ct.delete() - -def update_all_contenttypes(verbosity=2): + # undefined model. Confirm that the content type is stale before deletion. + if content_types: + if kwargs.get('interactive', False): + content_type_display = '\n'.join([' %s | %s' % (ct.app_label, ct.model) for ct in content_types]) + ok_to_delete = raw_input("""The following content types are stale and need to be deleted: + +%s + +Any objects related to these content types by a foreign key will also +be deleted. Are you sure you want to delete these content types? +If you're unsure, answer 'no'. + + Type 'yes' to continue, or 'no' to cancel: """ % content_type_display) + else: + ok_to_delete = False + + if ok_to_delete == 'yes': + for ct in content_types: + if verbosity >= 2: + print "Deleting stale content type '%s | %s'" % (ct.app_label, ct.model) + ct.delete() + else: + if verbosity >= 2: + print "Stale content types remain." + +def update_all_contenttypes(verbosity=2, **kwargs): for app in get_apps(): - update_contenttypes(app, None, verbosity) + update_contenttypes(app, None, verbosity, **kwargs) signals.post_syncdb.connect(update_contenttypes) diff --git a/django/contrib/contenttypes/views.py b/django/contrib/contenttypes/views.py index 4285be36cc2e..26961201cd17 100644 --- a/django/contrib/contenttypes/views.py +++ b/django/contrib/contenttypes/views.py @@ -9,7 +9,7 @@ def shortcut(request, content_type_id, object_id): try: content_type = ContentType.objects.get(pk=content_type_id) obj = content_type.get_object_for_this_type(pk=object_id) - except ObjectDoesNotExist: + except (ObjectDoesNotExist, ValueError): raise http.Http404("Content type %s object %s doesn't exist" % (content_type_id, object_id)) try: absurl = obj.get_absolute_url() diff --git a/django/contrib/csrf/middleware.py b/django/contrib/csrf/middleware.py index 0d0a8eca9e2b..db5173dcefb9 100644 --- a/django/contrib/csrf/middleware.py +++ b/django/contrib/csrf/middleware.py @@ -37,9 +37,6 @@ def process_view(self, request, callback, callback_args, callback_kwargs): if getattr(callback, 'csrf_exempt', False): return None - if request.is_ajax(): - return None - try: session_id = request.COOKIES[settings.SESSION_COOKIE_NAME] except KeyError: @@ -48,9 +45,12 @@ def process_view(self, request, callback, callback_args, callback_kwargs): csrf_token = _make_token(session_id) # check incoming token - try: - request_csrf_token = request.POST['csrfmiddlewaretoken'] - except KeyError: + request_csrf_token = request.POST.get('csrfmiddlewaretoken', '') + if request_csrf_token == "": + # Fall back to X-CSRFToken, to make things easier for AJAX + request_csrf_token = request.META.get('HTTP_X_CSRFTOKEN', '') + + if request_csrf_token == "": return HttpResponseForbidden(_ERROR_MSG) if request_csrf_token != csrf_token: @@ -101,7 +101,13 @@ def add_csrf_field(match): "' />
                ") # Modify any POST forms - response.content = _POST_FORM_RE.sub(add_csrf_field, response.content) + response.content, n = _POST_FORM_RE.subn(add_csrf_field, response.content) + if n > 0: + # Since the content has been modified, any Etag will now be + # incorrect. We could recalculate, but only is we assume that + # the Etag was set by CommonMiddleware. The safest thing is just + # to delete. See bug #9163 + del response['ETag'] return response class CsrfMiddleware(CsrfViewMiddleware, CsrfResponseMiddleware): diff --git a/django/contrib/csrf/tests.py b/django/contrib/csrf/tests.py index 3c533a01e6b9..429151eeae70 100644 --- a/django/contrib/csrf/tests.py +++ b/django/contrib/csrf/tests.py @@ -4,11 +4,12 @@ from django.http import HttpRequest, HttpResponse, HttpResponseForbidden from django.contrib.csrf.middleware import CsrfMiddleware, _make_token, csrf_exempt from django.conf import settings +from django.template import Template def post_form_response(): resp = HttpResponse(content=""" -
                +
                """, mimetype="text/html") return resp @@ -134,11 +135,17 @@ def test_process_request_session_no_token_exempt_view(self): req2 = CsrfMiddleware().process_view(req, csrf_exempt(self.get_view()), (), {}) self.assertEquals(None, req2) - def test_ajax_exemption(self): + def test_csrf_token_in_header(self): """ - Check that AJAX requests are automatically exempted. + Check that we can pass in the token in a header instead of in the form """ req = self._get_POST_session_request() - req.META['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest' + req.META['HTTP_X_CSRFTOKEN'] = _make_token(self._session_id) req2 = CsrfMiddleware().process_view(req, self.get_view(), (), {}) self.assertEquals(None, req2) + + def test_template_tag_noop(self): + """ + Check that the {% csrf_token %} works in 1.1.2 and later + """ + self.assertEquals(u"", Template("{% csrf_token %}").render({})) diff --git a/django/contrib/databrowse/templates/databrowse/calendar_month.html b/django/contrib/databrowse/templates/databrowse/calendar_month.html index f6a616911b80..8a417f4c93c1 100644 --- a/django/contrib/databrowse/templates/databrowse/calendar_month.html +++ b/django/contrib/databrowse/templates/databrowse/calendar_month.html @@ -6,7 +6,7 @@ -

                {{ object_list.count }} {% if object_list.count|pluralize %}{{ model.verbose_name_plural }}{% else %}{{ model.verbose_name }}{% endif %} with {{ field.verbose_name }} on {{ day|date:"F Y" }}

                +

                {{ object_list.count }} {% if object_list.count|pluralize %}{{ model.verbose_name_plural }}{% else %}{{ model.verbose_name }}{% endif %} with {{ field.verbose_name }} on {{ month|date:"F Y" }}

                  {% for object in object_list %} diff --git a/django/contrib/formtools/wizard.py b/django/contrib/formtools/wizard.py index b075628c49a8..147b3aaf4f17 100644 --- a/django/contrib/formtools/wizard.py +++ b/django/contrib/formtools/wizard.py @@ -16,19 +16,25 @@ from django.contrib.formtools.utils import security_hash class FormWizard(object): - # Dictionary of extra template context variables. - extra_context = {} - # The HTML (and POST data) field name for the "step" variable. step_field_name="wizard_step" # METHODS SUBCLASSES SHOULDN'T OVERRIDE ################################### def __init__(self, form_list, initial=None): - "form_list should be a list of Form classes (not instances)." + """ + Start a new wizard with a list of forms. + + form_list should be a list of Form classes (not instances). + """ self.form_list = form_list[:] self.initial = initial or {} - self.step = 0 # A zero-based counter keeping track of which step we're in. + + # Dictionary of extra template context variables. + self.extra_context = {} + + # A zero-based counter keeping track of which step we're in. + self.step = 0 def __repr__(self): return "step: %d\nform_list: %s\ninitial_data: %s" % (self.step, self.form_list, self.initial) diff --git a/django/contrib/gis/admin/options.py b/django/contrib/gis/admin/options.py index fff1cb20a6bd..a1da28108d73 100644 --- a/django/contrib/gis/admin/options.py +++ b/django/contrib/gis/admin/options.py @@ -64,7 +64,7 @@ def formfield_for_dbfield(self, db_field, **kwargs): def get_map_widget(self, db_field): """ Returns a subclass of the OpenLayersWidget (or whatever was specified - in the `widget` attribute) using the settings from the attributes set + in the `widget` attribute) using the settings from the attributes set in this class. """ is_collection = db_field.geom_type in ('MULTIPOINT', 'MULTILINESTRING', 'MULTIPOLYGON', 'GEOMETRYCOLLECTION') @@ -111,12 +111,6 @@ class OLMap(self.widget): } return OLMap -# Using the Beta OSM in the admin requires the following: -# (1) The Google Maps Mercator projection needs to be added -# to your `spatial_ref_sys` table. You'll need at least GDAL 1.5: -# >>> from django.contrib.gis.gdal import SpatialReference -# >>> from django.contrib.gis.utils import add_postgis_srs -# >>> add_postgis_srs(SpatialReference(900913)) # Adding the Google Projection from django.contrib.gis import gdal if gdal.HAS_GDAL: class OSMGeoAdmin(GeoModelAdmin): diff --git a/django/contrib/gis/db/backend/mysql/query.py b/django/contrib/gis/db/backend/mysql/query.py index 2fa984f32551..1631a678e4ce 100644 --- a/django/contrib/gis/db/backend/mysql/query.py +++ b/django/contrib/gis/db/backend/mysql/query.py @@ -7,9 +7,6 @@ indices may only be used on MyISAM tables -- if you need transactions, take a look at PostGIS. """ -from django.db import connection -qn = connection.ops.quote_name - # To ease implementation, WKT is passed to/from MySQL. GEOM_FROM_TEXT = 'GeomFromText' GEOM_FROM_WKB = 'GeomFromWKB' @@ -40,7 +37,7 @@ MYSQL_GIS_TERMS += MISC_TERMS MYSQL_GIS_TERMS = dict((term, None) for term in MYSQL_GIS_TERMS) # Making dictionary -def get_geo_where_clause(table_alias, name, lookup_type, geo_annot): +def get_geo_where_clause(table_alias, name, lookup_type, geo_annot, qn): "Returns the SQL WHERE clause for use in MySQL spatial SQL construction." # Getting the quoted field as `geo_col`. geo_col = '%s.%s' % (qn(table_alias), qn(name)) diff --git a/django/contrib/gis/db/backend/oracle/query.py b/django/contrib/gis/db/backend/oracle/query.py index dcf6f67ae281..46d4623db811 100644 --- a/django/contrib/gis/db/backend/oracle/query.py +++ b/django/contrib/gis/db/backend/oracle/query.py @@ -9,10 +9,8 @@ """ import re from decimal import Decimal -from django.db import connection from django.contrib.gis.db.backend.util import SpatialFunction from django.contrib.gis.measure import Distance -qn = connection.ops.quote_name # The GML, distance, transform, and union procedures. AREA = 'SDO_GEOM.SDO_AREA' @@ -110,7 +108,7 @@ def __init__(self, mask): ORACLE_SPATIAL_TERMS = dict((term, None) for term in ORACLE_SPATIAL_TERMS) # Making dictionary for fast lookups #### The `get_geo_where_clause` function for Oracle #### -def get_geo_where_clause(table_alias, name, lookup_type, geo_annot): +def get_geo_where_clause(table_alias, name, lookup_type, geo_annot, qn): "Returns the SQL WHERE clause for use in Oracle spatial SQL construction." # Getting the quoted table name as `geo_col`. geo_col = '%s.%s' % (qn(table_alias), qn(name)) diff --git a/django/contrib/gis/db/backend/postgis/management.py b/django/contrib/gis/db/backend/postgis/management.py index c1cb32a04fab..3174c0229aa6 100644 --- a/django/contrib/gis/db/backend/postgis/management.py +++ b/django/contrib/gis/db/backend/postgis/management.py @@ -12,7 +12,8 @@ def _get_postgis_func(func): cursor = connection.cursor() cursor.execute('SELECT %s()' % func) row = cursor.fetchone() - cursor.close() + # Close out the connection. See #9437. + connection.close() return row[0] ### PostGIS management functions ### diff --git a/django/contrib/gis/db/backend/postgis/query.py b/django/contrib/gis/db/backend/postgis/query.py index 74916760577d..a3f29d1fadb2 100644 --- a/django/contrib/gis/db/backend/postgis/query.py +++ b/django/contrib/gis/db/backend/postgis/query.py @@ -5,13 +5,10 @@ import re from decimal import Decimal -from django.db import connection from django.conf import settings from django.contrib.gis.measure import Distance from django.contrib.gis.db.backend.util import SpatialOperation, SpatialFunction -qn = connection.ops.quote_name - # Get the PostGIS version information. # To avoid the need to do a database query to determine the PostGIS version # each time the server starts up, one can optionally specify a @@ -250,7 +247,7 @@ def num_params(lookup_type, val): else: return exactly_two(val) #### The `get_geo_where_clause` function for PostGIS. #### -def get_geo_where_clause(table_alias, name, lookup_type, geo_annot): +def get_geo_where_clause(table_alias, name, lookup_type, geo_annot, qn): "Returns the SQL WHERE clause for use in PostGIS SQL construction." # Getting the quoted field as `geo_col`. geo_col = '%s.%s' % (qn(table_alias), qn(name)) diff --git a/django/contrib/gis/db/backend/spatialite/query.py b/django/contrib/gis/db/backend/spatialite/query.py index 462722fa5dcb..10c8825f3771 100644 --- a/django/contrib/gis/db/backend/spatialite/query.py +++ b/django/contrib/gis/db/backend/spatialite/query.py @@ -4,10 +4,8 @@ """ import re from decimal import Decimal -from django.db import connection from django.contrib.gis.measure import Distance from django.contrib.gis.db.backend.util import SpatialOperation, SpatialFunction -qn = connection.ops.quote_name GEOM_SELECT = 'AsText(%s)' @@ -115,7 +113,7 @@ def get_dist_ops(operator): SPATIALITE_TERMS = dict((term, None) for term in SPATIALITE_TERMS) # Making a dictionary for fast lookups #### The `get_geo_where_clause` function for SpatiaLite. #### -def get_geo_where_clause(table_alias, name, lookup_type, geo_annot): +def get_geo_where_clause(table_alias, name, lookup_type, geo_annot, qn): "Returns the SQL WHERE clause for use in SpatiaLite SQL construction." # Getting the quoted field as `geo_col`. geo_col = '%s.%s' % (qn(table_alias), qn(name)) diff --git a/django/contrib/gis/db/models/fields/__init__.py b/django/contrib/gis/db/models/fields/__init__.py index b2dacc85d768..2e846f8b81fc 100644 --- a/django/contrib/gis/db/models/fields/__init__.py +++ b/django/contrib/gis/db/models/fields/__init__.py @@ -1,3 +1,4 @@ +from django.utils.translation import ugettext_lazy as _ from django.contrib.gis import forms # Getting the SpatialBackend container and the geographic quoting method. from django.contrib.gis.db.backend import SpatialBackend, gqn @@ -38,6 +39,8 @@ class GeometryField(SpatialBackend.Field): # Geodetic units. geodetic_units = ('Decimal Degree', 'degree') + description = _("The base GIS field -- maps to the OpenGIS Specification Geometry type.") + def __init__(self, verbose_name=None, srid=4326, spatial_index=True, dim=2, **kwargs): """ The initialization function for geometry fields. Takes the following @@ -258,21 +261,28 @@ def get_db_prep_save(self, value): # The OpenGIS Geometry Type Fields class PointField(GeometryField): geom_type = 'POINT' + description = _("Point") class LineStringField(GeometryField): geom_type = 'LINESTRING' + description = _("Line string") class PolygonField(GeometryField): geom_type = 'POLYGON' + description = _("Polygon") class MultiPointField(GeometryField): geom_type = 'MULTIPOINT' + description = _("Multi-point") class MultiLineStringField(GeometryField): geom_type = 'MULTILINESTRING' + description = _("Multi-line string") class MultiPolygonField(GeometryField): geom_type = 'MULTIPOLYGON' + description = _("Multi polygon") class GeometryCollectionField(GeometryField): geom_type = 'GEOMETRYCOLLECTION' + description = _("Geometry collection") diff --git a/django/contrib/gis/db/models/proxy.py b/django/contrib/gis/db/models/proxy.py index 82158486b307..e569dd5c4fa1 100644 --- a/django/contrib/gis/db/models/proxy.py +++ b/django/contrib/gis/db/models/proxy.py @@ -1,42 +1,44 @@ """ - The GeometryProxy object, allows for lazy-geometries. The proxy uses - Python descriptors for instantiating and setting Geometry objects - corresponding to geographic model fields. +The GeometryProxy object, allows for lazy-geometries. The proxy uses +Python descriptors for instantiating and setting Geometry objects +corresponding to geographic model fields. - Thanks to Robert Coup for providing this functionality (see #4322). +Thanks to Robert Coup for providing this functionality (see #4322). """ -from types import NoneType, StringType, UnicodeType - -class GeometryProxy(object): - def __init__(self, klass, field): +class GeometryProxy(object): + def __init__(self, klass, field): """ - Proxy initializes on the given Geometry class (not an instance) and + Proxy initializes on the given Geometry class (not an instance) and the GeometryField. """ - self._field = field + self._field = field self._klass = klass - - def __get__(self, obj, type=None): + + def __get__(self, obj, type=None): """ This accessor retrieves the geometry, initializing it using the geometry - class specified during initialization and the HEXEWKB value of the field. + class specified during initialization and the HEXEWKB value of the field. Currently, only GEOS or OGR geometries are supported. """ + if obj is None: + # Accessed on a class, not an instance + return self + # Getting the value of the field. - geom_value = obj.__dict__[self._field.attname] - - if isinstance(geom_value, self._klass): + geom_value = obj.__dict__[self._field.attname] + + if isinstance(geom_value, self._klass): geom = geom_value elif (geom_value is None) or (geom_value==''): geom = None - else: + else: # Otherwise, a Geometry object is built using the field's contents, # and the model's corresponding attribute is set. geom = self._klass(geom_value) - setattr(obj, self._field.attname, geom) - return geom - + setattr(obj, self._field.attname, geom) + return geom + def __set__(self, obj, value): """ This accessor sets the proxied geometry with the geometry class @@ -45,18 +47,18 @@ def __set__(self, obj, value): """ # The OGC Geometry type of the field. gtype = self._field.geom_type - + # The geometry type must match that of the field -- unless the # general GeometryField is used. if isinstance(value, self._klass) and (str(value.geom_type).upper() == gtype or gtype == 'GEOMETRY'): # Assigning the SRID to the geometry. if value.srid is None: value.srid = self._field.srid - elif isinstance(value, (NoneType, StringType, UnicodeType)): - # Set with None, WKT, or HEX + elif value is None or isinstance(value, (basestring, buffer)): + # Set with None, WKT, HEX, or WKB pass else: raise TypeError('cannot set %s GeometryProxy with value of type: %s' % (obj.__class__.__name__, type(value))) # Setting the objects dictionary with the value, and returning. - obj.__dict__[self._field.attname] = value - return value + obj.__dict__[self._field.attname] = value + return value diff --git a/django/contrib/gis/db/models/sql/aggregates.py b/django/contrib/gis/db/models/sql/aggregates.py index 370182c721bb..b534288891a2 100644 --- a/django/contrib/gis/db/models/sql/aggregates.py +++ b/django/contrib/gis/db/models/sql/aggregates.py @@ -16,7 +16,7 @@ def convert_geom(wkt, geo_field): if SpatialBackend.postgis: def convert_extent(box): - # Box text will be something like "BOX(-90.0 30.0, -85.0 40.0)"; + # Box text will be something like "BOX(-90.0 30.0, -85.0 40.0)"; # parsing out and returning as a 4-tuple. ll, ur = box[4:-1].split(',') xmin, ymin = map(float, ll.split()) @@ -32,19 +32,28 @@ def convert_geom(hex, geo_field): def convert_extent(clob): if clob: - # Oracle returns a polygon for the extent, we construct - # the 4-tuple from the coordinates in the polygon. - poly = SpatialBackend.Geometry(clob.read()) - shell = poly.shell - ll, ur = shell[0], shell[2] + # Generally, Oracle returns a polygon for the extent -- however, + # it can return a single point if there's only one Point in the + # table. + ext_geom = SpatialBackend.Geometry(clob.read()) + gtype = str(ext_geom.geom_type) + if gtype == 'Polygon': + # Construct the 4-tuple from the coordinates in the polygon. + shell = ext_geom.shell + ll, ur = shell[0][:2], shell[2][:2] + elif gtype == 'Point': + ll = ext_geom.coords[:2] + ur = ll + else: + raise Exception('Unexpected geometry type returned for extent: %s' % gtype) xmin, ymin = ll xmax, ymax = ur return (xmin, ymin, xmax, ymax) else: return None - + def convert_geom(clob, geo_field): - if clob: + if clob: return SpatialBackend.Geometry(clob.read(), geo_field.srid) else: return None @@ -73,7 +82,7 @@ def __init__(self, col, source=None, is_summary=False, **extra): self.extra.setdefault('tolerance', 0.05) # Can't use geographic aggregates on non-geometry fields. - if not isinstance(self.source, GeometryField): + if not isinstance(self.source, GeometryField): raise ValueError('Geospatial aggregates only allowed on geometry fields.') # Making sure the SQL function is available for this spatial backend. @@ -87,7 +96,7 @@ class Collect(GeoAggregate): class Extent(GeoAggregate): is_extent = True sql_function = SpatialBackend.extent - + if SpatialBackend.oracle: # Have to change Extent's attributes here for Oracle. Extent.conversion_class = GeomField diff --git a/django/contrib/gis/db/models/sql/query.py b/django/contrib/gis/db/models/sql/query.py index 094fc5815f38..f4bce309c39a 100644 --- a/django/contrib/gis/db/models/sql/query.py +++ b/django/contrib/gis/db/models/sql/query.py @@ -229,7 +229,7 @@ def resolve_columns(self, row, fields=()): if SpatialBackend.oracle or getattr(self, 'geo_values', False): # We resolve the rest of the columns if we're on Oracle or if # the `geo_values` attribute is defined. - for value, field in izip(row[index_start:], fields): + for value, field in map(None, row[index_start:], fields): values.append(self.convert_values(value, field)) else: values.extend(row[index_start:]) @@ -245,7 +245,11 @@ def convert_values(self, value, field): # Running through Oracle's first. value = super(GeoQuery, self).convert_values(value, field or GeomField()) - if isinstance(field, DistanceField): + if value is None: + # Output from spatial function is NULL (e.g., called + # function on a geometry field with NULL value). + pass + elif isinstance(field, DistanceField): # Using the field's distance attribute, can instantiate # `Distance` with the right context. value = Distance(**{field.distance_att : value}) diff --git a/django/contrib/gis/db/models/sql/where.py b/django/contrib/gis/db/models/sql/where.py index 105cbfbec50d..4ac325fa3091 100644 --- a/django/contrib/gis/db/models/sql/where.py +++ b/django/contrib/gis/db/models/sql/where.py @@ -87,7 +87,7 @@ def make_atom(self, child, qn): # will be populated in the GeoFieldSQL object returned by the # GeometryField. alias, col, db_type = obj - gwc = get_geo_where_clause(alias, col, lookup_type, value_annot) + gwc = get_geo_where_clause(alias, col, lookup_type, value_annot, qn) return gwc % value_annot.where, params else: raise TypeError('Invalid lookup type: %r' % lookup_type) diff --git a/django/contrib/gis/gdal/__init__.py b/django/contrib/gis/gdal/__init__.py index b318850b289f..5cb68766499e 100644 --- a/django/contrib/gis/gdal/__init__.py +++ b/django/contrib/gis/gdal/__init__.py @@ -39,9 +39,9 @@ try: from django.contrib.gis.gdal.driver import Driver from django.contrib.gis.gdal.datasource import DataSource - from django.contrib.gis.gdal.libgdal import gdal_version, gdal_full_version, gdal_release_date + from django.contrib.gis.gdal.libgdal import gdal_version, gdal_full_version, gdal_release_date, GEOJSON, GDAL_VERSION from django.contrib.gis.gdal.srs import SpatialReference, CoordTransform - from django.contrib.gis.gdal.geometries import OGRGeometry, GEOJSON + from django.contrib.gis.gdal.geometries import OGRGeometry HAS_GDAL = True except: HAS_GDAL, GEOJSON = False, False diff --git a/django/contrib/gis/gdal/base.py b/django/contrib/gis/gdal/base.py index e19b748e6fce..f9455c783a1d 100644 --- a/django/contrib/gis/gdal/base.py +++ b/django/contrib/gis/gdal/base.py @@ -24,7 +24,7 @@ def _get_ptr(self): def _set_ptr(self, ptr): # Only allow the pointer to be set with pointers of the # compatible type or None (NULL). - if isinstance(ptr, int): + if isinstance(ptr, (int, long)): self._ptr = self.ptr_type(ptr) elif isinstance(ptr, (self.ptr_type, NoneType)): self._ptr = ptr diff --git a/django/contrib/gis/gdal/geometries.py b/django/contrib/gis/gdal/geometries.py index 05b824b95d24..ba0b3041592c 100644 --- a/django/contrib/gis/gdal/geometries.py +++ b/django/contrib/gis/gdal/geometries.py @@ -29,7 +29,7 @@ +proj=longlat +ellps=clrk66 +datum=NAD27 +no_defs >>> print mpnt MULTIPOINT (-89.999930378602485 29.999797886557641,-89.999930378602485 29.999797886557641) - + The OGRGeomType class is to make it easy to specify an OGR geometry type: >>> from django.contrib.gis.gdal import OGRGeomType >>> gt1 = OGRGeomType(3) # Using an integer for the type @@ -48,11 +48,11 @@ from django.contrib.gis.gdal.envelope import Envelope, OGREnvelope from django.contrib.gis.gdal.error import OGRException, OGRIndexError, SRSException from django.contrib.gis.gdal.geomtype import OGRGeomType +from django.contrib.gis.gdal.libgdal import GEOJSON, GDAL_VERSION from django.contrib.gis.gdal.srs import SpatialReference, CoordTransform # Getting the ctypes prototype functions that interface w/the GDAL C library. from django.contrib.gis.gdal.prototypes import geom as capi, srs as srs_api -GEOJSON = capi.GEOJSON # For more information, see the OGR C API source code: # http://www.gdal.org/ogr/ogr__api_8h.html @@ -78,7 +78,7 @@ def __init__(self, geom_input, srs=None): geom_input = buffer(a2b_hex(geom_input.upper())) str_instance = False - # Constructing the geometry, + # Constructing the geometry, if str_instance: # Checking if unicode if isinstance(geom_input, unicode): @@ -130,12 +130,12 @@ def __init__(self, geom_input, srs=None): self.__class__ = GEO_CLASSES[self.geom_type.num] @classmethod - def from_bbox(cls, bbox): + def from_bbox(cls, bbox): "Constructs a Polygon from a bounding box (4-tuple)." x0, y0, x1, y1 = bbox return OGRGeometry( 'POLYGON((%s %s, %s %s, %s %s, %s %s, %s %s))' % ( x0, y0, x0, y1, x1, y1, x1, y0, x0, y0) ) - + def __del__(self): "Deletes this Geometry." if self._ptr: capi.destroy_geom(self._ptr) @@ -163,11 +163,14 @@ def __xor__(self, other): def __eq__(self, other): "Is this Geometry equal to the other?" - return self.equals(other) + if isinstance(other, OGRGeometry): + return self.equals(other) + else: + return False def __ne__(self, other): "Tests for inequality." - return not self.equals(other) + return not (self == other) def __str__(self): "WKT is used for the string representation." @@ -179,10 +182,25 @@ def dimension(self): "Returns 0 for points, 1 for lines, and 2 for surfaces." return capi.get_dims(self.ptr) - @property - def coord_dim(self): + def _get_coord_dim(self): "Returns the coordinate dimension of the Geometry." - return capi.get_coord_dims(self.ptr) + if isinstance(self, GeometryCollection) and GDAL_VERSION < (1, 5, 2): + # On GDAL versions prior to 1.5.2, there exists a bug in which + # the coordinate dimension of geometry collections is always 2: + # http://trac.osgeo.org/gdal/ticket/2334 + # Here we workaround by returning the coordinate dimension of the + # first geometry in the collection instead. + if len(self): + return capi.get_coord_dim(capi.get_geom_ref(self.ptr, 0)) + return capi.get_coord_dim(self.ptr) + + def _set_coord_dim(self, dim): + "Sets the coordinate dimension of this Geometry." + if not dim in (2, 3): + raise ValueError('Geometry dimension must be either 2 or 3') + capi.set_coord_dim(self.ptr, dim) + + coord_dim = property(_get_coord_dim, _set_coord_dim) @property def geom_count(self): @@ -207,13 +225,7 @@ def num_coords(self): @property def geom_type(self): "Returns the Type for this Geometry." - try: - return OGRGeomType(capi.get_geom_type(self.ptr)) - except OGRException: - # VRT datasources return an invalid geometry type - # number, but a valid name -- we'll try that instead. - # See: http://trac.osgeo.org/gdal/ticket/2491 - return OGRGeomType(capi.get_geom_name(self.ptr)) + return OGRGeomType(capi.get_geom_type(self.ptr)) @property def geom_name(self): @@ -237,7 +249,7 @@ def extent(self): return self.envelope.tuple #### SpatialReference-related Properties #### - + # The SRS property def _get_srs(self): "Returns the Spatial Reference for this Geometry." @@ -249,11 +261,15 @@ def _get_srs(self): def _set_srs(self, srs): "Sets the SpatialReference for this geometry." + # Do not have to clone the `SpatialReference` object pointer because + # when it is assigned to this `OGRGeometry` it's internal OGR + # reference count is incremented, and will likewise be released + # (decremented) when this geometry's destructor is called. if isinstance(srs, SpatialReference): - srs_ptr = srs_api.clone_srs(srs.ptr) + srs_ptr = srs.ptr elif isinstance(srs, (int, long, basestring)): sr = SpatialReference(srs) - srs_ptr = srs_api.clone_srs(sr.ptr) + srs_ptr = sr.ptr else: raise TypeError('Cannot assign spatial reference with object of type: %s' % type(srs)) capi.assign_srs(self.ptr, srs_ptr) @@ -298,7 +314,7 @@ def json(self): Returns the GeoJSON representation of this Geometry (requires GDAL 1.5+). """ - if GEOJSON: + if GEOJSON: return capi.to_json(self.ptr) else: raise NotImplementedError('GeoJSON output only supported on GDAL 1.5+.') @@ -335,7 +351,7 @@ def wkb(self): def wkt(self): "Returns the WKT representation of the Geometry." return capi.to_wkt(self.ptr, byref(c_char_p())) - + #### Geometry Methods #### def clone(self): "Clones this OGR Geometry." @@ -363,6 +379,17 @@ def transform(self, coord_trans, clone=False): klone = self.clone() klone.transform(coord_trans) return klone + + # Have to get the coordinate dimension of the original geometry + # so it can be used to reset the transformed geometry's dimension + # afterwards. This is done because of GDAL bug (in versions prior + # to 1.7) that turns geometries 3D after transformation, see: + # http://trac.osgeo.org/gdal/changeset/17792 + if GDAL_VERSION < (1, 7): + orig_dim = self.coord_dim + + # Depending on the input type, use the appropriate OGR routine + # to perform the transformation. if isinstance(coord_trans, CoordTransform): capi.geom_transform(self.ptr, coord_trans.ptr) elif isinstance(coord_trans, SpatialReference): @@ -371,7 +398,22 @@ def transform(self, coord_trans, clone=False): sr = SpatialReference(coord_trans) capi.geom_transform_to(self.ptr, sr.ptr) else: - raise TypeError('Transform only accepts CoordTransform, SpatialReference, string, and integer objects.') + raise TypeError('Transform only accepts CoordTransform, ' + 'SpatialReference, string, and integer objects.') + + # Setting with original dimension, see comment above. + if GDAL_VERSION < (1, 7): + if isinstance(self, GeometryCollection): + # With geometry collections have to set dimension on + # each internal geometry reference, as the collection + # dimension isn't affected. + for i in xrange(len(self)): + internal_ptr = capi.get_geom_ref(self.ptr, i) + if orig_dim != capi.get_coord_dim(internal_ptr): + capi.set_coord_dim(internal_ptr, orig_dim) + else: + if self.coord_dim != orig_dim: + self.coord_dim = orig_dim def transform_to(self, srs): "For backwards-compatibility." @@ -391,7 +433,7 @@ def _topology(self, func, other): def intersects(self, other): "Returns True if this geometry intersects with the other." return self._topology(capi.ogr_intersects, other) - + def equals(self, other): "Returns True if this geometry is equivalent to the other." return self._topology(capi.ogr_equals, other) @@ -436,7 +478,7 @@ def boundary(self): @property def convex_hull(self): """ - Returns the smallest convex Polygon that contains all the points in + Returns the smallest convex Polygon that contains all the points in this Geometry. """ return self._geomgen(capi.geom_convex_hull) @@ -456,7 +498,7 @@ def intersection(self, other): return self._geomgen(capi.geom_intersection, other) def sym_difference(self, other): - """ + """ Returns a new geometry which is the symmetric difference of this geometry and the other. """ @@ -545,7 +587,7 @@ def x(self): def y(self): "Returns the Y coordinates in a list." return self._listarr(capi.gety) - + @property def z(self): "Returns the Z coordinates in a list." @@ -610,7 +652,7 @@ def __getitem__(self, index): raise OGRIndexError('index out of range: %s' % index) else: return OGRGeometry(capi.clone_geom(capi.get_geom_ref(self.ptr, index)), self.srs) - + def __iter__(self): "Iterates over each Geometry." for i in xrange(self.geom_count): @@ -658,5 +700,12 @@ class MultiPolygon(GeometryCollection): pass 5 : MultiLineString, 6 : MultiPolygon, 7 : GeometryCollection, - 101: LinearRing, + 101: LinearRing, + 1 + OGRGeomType.wkb25bit : Point, + 2 + OGRGeomType.wkb25bit : LineString, + 3 + OGRGeomType.wkb25bit : Polygon, + 4 + OGRGeomType.wkb25bit : MultiPoint, + 5 + OGRGeomType.wkb25bit : MultiLineString, + 6 + OGRGeomType.wkb25bit : MultiPolygon, + 7 + OGRGeomType.wkb25bit : GeometryCollection, } diff --git a/django/contrib/gis/gdal/geomtype.py b/django/contrib/gis/gdal/geomtype.py index b3309531c03a..3bf94d4815e8 100644 --- a/django/contrib/gis/gdal/geomtype.py +++ b/django/contrib/gis/gdal/geomtype.py @@ -4,6 +4,8 @@ class OGRGeomType(object): "Encapulates OGR Geometry Types." + wkb25bit = -2147483648 + # Dictionary of acceptable OGRwkbGeometryType s and their string names. _types = {0 : 'Unknown', 1 : 'Point', @@ -15,6 +17,13 @@ class OGRGeomType(object): 7 : 'GeometryCollection', 100 : 'None', 101 : 'LinearRing', + 1 + wkb25bit: 'Point25D', + 2 + wkb25bit: 'LineString25D', + 3 + wkb25bit: 'Polygon25D', + 4 + wkb25bit: 'MultiPoint25D', + 5 + wkb25bit : 'MultiLineString25D', + 6 + wkb25bit : 'MultiPolygon25D', + 7 + wkb25bit : 'GeometryCollection25D', } # Reverse type dictionary, keyed by lower-case of the name. _str_types = dict([(v.lower(), k) for k, v in _types.items()]) @@ -68,7 +77,7 @@ def name(self): @property def django(self): "Returns the Django GeometryField for this OGR Type." - s = self.name + s = self.name.replace('25D', '') if s in ('LinearRing', 'None'): return None elif s == 'Unknown': diff --git a/django/contrib/gis/gdal/libgdal.py b/django/contrib/gis/gdal/libgdal.py index 92e3165680a4..6589c5647c27 100644 --- a/django/contrib/gis/gdal/libgdal.py +++ b/django/contrib/gis/gdal/libgdal.py @@ -1,4 +1,4 @@ -import os, sys +import os, re, sys from ctypes import c_char_p, CDLL from ctypes.util import find_library from django.contrib.gis.gdal.error import OGRException @@ -81,3 +81,24 @@ def gdal_release_date(date=False): d = date_type(yy, mm, dd) if date: return d else: return d.strftime('%Y/%m/%d') + +version_regex = re.compile(r'^(?P\d+)\.(?P\d+)(\.(?P\d+))?') +def gdal_version_info(): + ver = gdal_version() + m = version_regex.match(ver) + if not m: raise OGRException('Could not parse GDAL version string "%s"' % ver) + return dict([(key, m.group(key)) for key in ('major', 'minor', 'subminor')]) + +_verinfo = gdal_version_info() +GDAL_MAJOR_VERSION = int(_verinfo['major']) +GDAL_MINOR_VERSION = int(_verinfo['minor']) +GDAL_SUBMINOR_VERSION = _verinfo['subminor'] and int(_verinfo['subminor']) +GDAL_VERSION = (GDAL_MAJOR_VERSION, GDAL_MINOR_VERSION, GDAL_SUBMINOR_VERSION) +del _verinfo + +# GeoJSON support is available only in GDAL 1.5+. +if GDAL_VERSION >= (1, 5): + GEOJSON = True +else: + GEOJSON = False + diff --git a/django/contrib/gis/gdal/prototypes/errcheck.py b/django/contrib/gis/gdal/prototypes/errcheck.py index 3a0e0d617009..91858ea57205 100644 --- a/django/contrib/gis/gdal/prototypes/errcheck.py +++ b/django/contrib/gis/gdal/prototypes/errcheck.py @@ -109,6 +109,8 @@ def check_errcode(result, func, cargs): def check_pointer(result, func, cargs): "Makes sure the result pointer is valid." + if isinstance(result, (int, long)): + result = c_void_p(result) if bool(result): return result else: diff --git a/django/contrib/gis/gdal/prototypes/geom.py b/django/contrib/gis/gdal/prototypes/geom.py index 2898198d0d88..e002590e31a2 100644 --- a/django/contrib/gis/gdal/prototypes/geom.py +++ b/django/contrib/gis/gdal/prototypes/geom.py @@ -1,19 +1,13 @@ +import re from datetime import date from ctypes import c_char, c_char_p, c_double, c_int, c_ubyte, c_void_p, POINTER from django.contrib.gis.gdal.envelope import OGREnvelope -from django.contrib.gis.gdal.libgdal import lgdal, gdal_version +from django.contrib.gis.gdal.libgdal import lgdal, GEOJSON from django.contrib.gis.gdal.prototypes.errcheck import check_bool, check_envelope from django.contrib.gis.gdal.prototypes.generation import \ const_string_output, double_output, geom_output, int_output, \ srs_output, string_output, void_output -# Some prototypes need to be aware of what version GDAL we have. -major, minor = map(int, gdal_version().split('.')[:2]) -if major <= 1 and minor <= 4: - GEOJSON = False -else: - GEOJSON = True - ### Generation routines specific to this module ### def env_func(f, argtypes): "For getting OGREnvelopes." @@ -83,7 +77,8 @@ def topology_func(f): get_area = double_output(lgdal.OGR_G_GetArea, [c_void_p]) get_centroid = void_output(lgdal.OGR_G_Centroid, [c_void_p, c_void_p]) get_dims = int_output(lgdal.OGR_G_GetDimension, [c_void_p]) -get_coord_dims = int_output(lgdal.OGR_G_GetCoordinateDimension, [c_void_p]) +get_coord_dim = int_output(lgdal.OGR_G_GetCoordinateDimension, [c_void_p]) +set_coord_dim = void_output(lgdal.OGR_G_SetCoordinateDimension, [c_void_p, c_int], errcheck=False) get_geom_count = int_output(lgdal.OGR_G_GetGeometryCount, [c_void_p]) get_geom_name = const_string_output(lgdal.OGR_G_GetGeometryName, [c_void_p]) diff --git a/django/contrib/gis/gdal/tests/test_ds.py b/django/contrib/gis/gdal/tests/test_ds.py index 30ce4624758b..53758691229d 100644 --- a/django/contrib/gis/gdal/tests/test_ds.py +++ b/django/contrib/gis/gdal/tests/test_ds.py @@ -25,7 +25,7 @@ def __init__(self, name, **kwargs): srs_wkt='GEOGCS["GCS_WGS_1984",DATUM["WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]', field_values={'dbl' : [float(i) for i in range(1, 6)], 'int' : range(1, 6), 'str' : [str(i) for i in range(1, 6)]}, fids=range(5)), - TestDS('test_vrt', ext='vrt', nfeat=3, nfld=3, geom='POINT', gtype=1, driver='VRT', + TestDS('test_vrt', ext='vrt', nfeat=3, nfld=3, geom='POINT', gtype='Point25D', driver='VRT', fields={'POINT_X' : OFTString, 'POINT_Y' : OFTString, 'NUM' : OFTString}, # VRT uses CSV, which all types are OFTString. extent=(1.0, 2.0, 100.0, 523.5), # Min/Max from CSV field_values={'POINT_X' : ['1.0', '5.0', '100.0'], 'POINT_Y' : ['2.0', '23.0', '523.5'], 'NUM' : ['5', '17', '23']}, diff --git a/django/contrib/gis/gdal/tests/test_envelope.py b/django/contrib/gis/gdal/tests/test_envelope.py index 6c0c13724c5a..f181fa237c1c 100644 --- a/django/contrib/gis/gdal/tests/test_envelope.py +++ b/django/contrib/gis/gdal/tests/test_envelope.py @@ -55,7 +55,7 @@ def test04_expand_to_include_pt_2_params(self): self.assertEqual((0, 0, 5, 6), self.e) self.e.expand_to_include(-1, -1) self.assertEqual((-1, -1, 5, 6), self.e) - + def test05_expand_to_include_pt_2_tuple(self): "Testing Envelope expand_to_include -- point as a single 2-tuple parameter." self.e.expand_to_include((10, 10)) @@ -67,17 +67,17 @@ def test06_expand_to_include_extent_4_params(self): "Testing Envelope expand_to_include -- extent as 4 parameters." self.e.expand_to_include(-1, 1, 3, 7) self.assertEqual((-1, 0, 5, 7), self.e) - + def test06_expand_to_include_extent_4_tuple(self): "Testing Envelope expand_to_include -- extent as a single 4-tuple parameter." self.e.expand_to_include((-1, 1, 3, 7)) self.assertEqual((-1, 0, 5, 7), self.e) - + def test07_expand_to_include_envelope(self): "Testing Envelope expand_to_include with Envelope as parameter." self.e.expand_to_include(Envelope(-1, 1, 3, 7)) self.assertEqual((-1, 0, 5, 7), self.e) - + def test08_expand_to_include_point(self): "Testing Envelope expand_to_include with Point as parameter." self.e.expand_to_include(TestPoint(-1, 1)) diff --git a/django/contrib/gis/gdal/tests/test_geom.py b/django/contrib/gis/gdal/tests/test_geom.py index c920adc6c087..c712633e9cb7 100644 --- a/django/contrib/gis/gdal/tests/test_geom.py +++ b/django/contrib/gis/gdal/tests/test_geom.py @@ -46,6 +46,13 @@ def test00a_geomtype(self): self.assertEqual(0, gt.num) self.assertEqual('Unknown', gt.name) + def test00b_geomtype_25d(self): + "Testing OGRGeomType object with 25D types." + wkb25bit = OGRGeomType.wkb25bit + self.failUnless(OGRGeomType(wkb25bit + 1) == 'Point25D') + self.failUnless(OGRGeomType('MultiLineString25D') == (5 + wkb25bit)) + self.assertEqual('GeometryCollectionField', OGRGeomType('GeometryCollection25D').django) + def test01a_wkt(self): "Testing WKT output." for g in wkt_out: @@ -118,7 +125,7 @@ def test03_multipoints(self): self.assertEqual(mgeom1, mgeom3) self.assertEqual(mp.points, mgeom2.tuple) self.assertEqual(mp.n_p, mgeom2.point_count) - + def test04_linestring(self): "Testing LineString objects." prev = OGRGeometry('POINT(0 0)') @@ -154,7 +161,7 @@ def test05_multilinestring(self): for ls in mlinestr: self.assertEqual(2, ls.geom_type) self.assertEqual('LINESTRING', ls.geom_name) - self.assertRaises(OGRIndexError, mlinestr.__getitem__, len(mlinestr)) + self.assertRaises(OGRIndexError, mlinestr.__getitem__, len(mlinestr)) def test06_linearring(self): "Testing LinearRing objects." @@ -172,7 +179,7 @@ def test07a_polygons(self): "Testing Polygon objects." # Testing `from_bbox` class method - bbox = (-180,-90,180,90) + bbox = (-180,-90,180,90) p = OGRGeometry.from_bbox( bbox ) self.assertEqual(bbox, p.extent) @@ -193,13 +200,13 @@ def test07a_polygons(self): # Testing equivalence self.assertEqual(True, poly == OGRGeometry(p.wkt)) self.assertEqual(True, poly != prev) - + if p.ext_ring_cs: ring = poly[0] self.assertEqual(p.ext_ring_cs, ring.tuple) self.assertEqual(p.ext_ring_cs, poly[0].tuple) self.assertEqual(len(p.ext_ring_cs), ring.point_count) - + for r in poly: self.assertEqual('LINEARRING', r.geom_name) @@ -251,11 +258,11 @@ def test09a_srs(self): sr = SpatialReference('WGS84') mpoly = OGRGeometry(mp.wkt, sr) self.assertEqual(sr.wkt, mpoly.srs.wkt) - + # Ensuring that SRS is propagated to clones. klone = mpoly.clone() self.assertEqual(sr.wkt, klone.srs.wkt) - + # Ensuring all children geometries (polygons and their rings) all # return the assigned spatial reference as well. for poly in mpoly: @@ -277,7 +284,7 @@ def test09a_srs(self): mpoly.srs = SpatialReference(4269) self.assertEqual(4269, mpoly.srid) self.assertEqual('NAD83', mpoly.srs.name) - + # Incrementing through the multipolyogn after the spatial reference # has been re-assigned. for poly in mpoly: @@ -319,6 +326,18 @@ def test09b_srs_transform(self): self.assertAlmostEqual(trans.x, p.x, prec) self.assertAlmostEqual(trans.y, p.y, prec) + def test09c_transform_dim(self): + "Testing coordinate dimension is the same on transformed geometries." + ls_orig = OGRGeometry('LINESTRING(-104.609 38.255)', 4326) + ls_trans = OGRGeometry('LINESTRING(992385.4472045 481455.4944650)', 2774) + + prec = 3 + ls_orig.transform(ls_trans.srs) + # Making sure the coordinate dimension is still 2D. + self.assertEqual(2, ls_orig.coord_dim) + self.assertAlmostEqual(ls_trans.x[0], ls_orig.x[0], prec) + self.assertAlmostEqual(ls_trans.y[0], ls_orig.y[0], prec) + def test10_difference(self): "Testing difference()." for i in xrange(len(topology_geoms)): @@ -358,7 +377,7 @@ def test12_symdifference(self): self.assertEqual(d1, a ^ b) # __xor__ is symmetric difference operator a ^= b # testing __ixor__ self.assertEqual(d1, a) - + def test13_union(self): "Testing union()." for i in xrange(len(topology_geoms)): @@ -406,6 +425,47 @@ def test15_extent(self): xmax, ymax = max(x), max(y) self.assertEqual((xmin, ymin, xmax, ymax), poly.extent) + def test16_25D(self): + "Testing 2.5D geometries." + pnt_25d = OGRGeometry('POINT(1 2 3)') + self.assertEqual('Point25D', pnt_25d.geom_type.name) + self.assertEqual(3.0, pnt_25d.z) + self.assertEqual(3, pnt_25d.coord_dim) + ls_25d = OGRGeometry('LINESTRING(1 1 1,2 2 2,3 3 3)') + self.assertEqual('LineString25D', ls_25d.geom_type.name) + self.assertEqual([1.0, 2.0, 3.0], ls_25d.z) + self.assertEqual(3, ls_25d.coord_dim) + + def test18_ogrgeometry_transform_workaround(self): + "Testing coordinate dimensions on geometries after transformation." + # A bug in GDAL versions prior to 1.7 changes the coordinate + # dimension of a geometry after it has been transformed. + # This test ensures that the bug workarounds employed within + # `OGRGeometry.transform` indeed work. + wkt_2d = "MULTILINESTRING ((0 0,1 1,2 2))" + wkt_3d = "MULTILINESTRING ((0 0 0,1 1 1,2 2 2))" + srid = 4326 + + # For both the 2D and 3D MultiLineString, ensure _both_ the dimension + # of the collection and the component LineString have the expected + # coordinate dimension after transform. + geom = OGRGeometry(wkt_2d, srid) + geom.transform(srid) + self.assertEqual(2, geom.coord_dim) + self.assertEqual(2, geom[0].coord_dim) + self.assertEqual(wkt_2d, geom.wkt) + + geom = OGRGeometry(wkt_3d, srid) + geom.transform(srid) + self.assertEqual(3, geom.coord_dim) + self.assertEqual(3, geom[0].coord_dim) + self.assertEqual(wkt_3d, geom.wkt) + + def test19_equivalence_regression(self): + "Testing equivalence methods with non-OGRGeometry instances." + self.assertNotEqual(None, OGRGeometry('POINT(0 0)')) + self.assertEqual(False, OGRGeometry('LINESTRING(0 0, 1 1)') == 3) + def suite(): s = unittest.TestSuite() s.addTest(unittest.makeSuite(OGRGeomTest)) diff --git a/django/contrib/gis/geos/geometry.py b/django/contrib/gis/geos/geometry.py index 866a852d493c..c1e3c66dde6c 100644 --- a/django/contrib/gis/geos/geometry.py +++ b/django/contrib/gis/geos/geometry.py @@ -142,7 +142,7 @@ def __getstate__(self): def __setstate__(self, state): # Instantiating from the tuple state that was pickled. wkb, srid = state - ptr = capi.from_wkb(wkb, len(wkb)) + ptr = wkb_r.read(buffer(wkb)) if not ptr: raise GEOSException('Invalid Geometry loaded from pickled state.') self.ptr = ptr self._post_init(srid) diff --git a/django/contrib/gis/geos/libgeos.py b/django/contrib/gis/geos/libgeos.py index f1aecb0de56a..244bfa79679b 100644 --- a/django/contrib/gis/geos/libgeos.py +++ b/django/contrib/gis/geos/libgeos.py @@ -104,7 +104,7 @@ def get_pointer_arr(n): # Regular expression should be able to parse version strings such as # '3.0.0rc4-CAPI-1.3.3', or '3.0.0-CAPI-1.4.1' -version_regex = re.compile(r'^(?P(?P\d+)\.(?P\d+)\.\d+)(rc(?P\d+))?-CAPI-(?P\d+\.\d+\.\d+)$') +version_regex = re.compile(r'^(?P(?P\d+)\.(?P\d+)\.(?P\d+))(rc(?P\d+))?-CAPI-(?P\d+\.\d+\.\d+)$') def geos_version_info(): """ Returns a dictionary containing the various version metadata parsed from @@ -115,14 +115,16 @@ def geos_version_info(): ver = geos_version() m = version_regex.match(ver) if not m: raise GEOSException('Could not parse version info string "%s"' % ver) - return dict((key, m.group(key)) for key in ('version', 'release_candidate', 'capi_version', 'major', 'minor')) + return dict((key, m.group(key)) for key in ('version', 'release_candidate', 'capi_version', 'major', 'minor', 'subminor')) # Version numbers and whether or not prepared geometry support is available. _verinfo = geos_version_info() GEOS_MAJOR_VERSION = int(_verinfo['major']) GEOS_MINOR_VERSION = int(_verinfo['minor']) +GEOS_SUBMINOR_VERSION = int(_verinfo['subminor']) del _verinfo -GEOS_PREPARE = GEOS_MAJOR_VERSION > 3 or GEOS_MAJOR_VERSION == 3 and GEOS_MINOR_VERSION >= 1 +GEOS_VERSION = (GEOS_MAJOR_VERSION, GEOS_MINOR_VERSION, GEOS_SUBMINOR_VERSION) +GEOS_PREPARE = GEOS_VERSION >= (3, 1, 0) # Calling the finishGEOS() upon exit of the interpreter. atexit.register(lgeos.finishGEOS) diff --git a/django/contrib/gis/geos/prototypes/errcheck.py b/django/contrib/gis/geos/prototypes/errcheck.py index d96a1ac75350..a00b93be6e6d 100644 --- a/django/contrib/gis/geos/prototypes/errcheck.py +++ b/django/contrib/gis/geos/prototypes/errcheck.py @@ -2,21 +2,31 @@ Error checking functions for GEOS ctypes prototype functions. """ import os -from ctypes import string_at, CDLL -from ctypes.util import find_library +from ctypes import c_void_p, string_at, CDLL from django.contrib.gis.geos.error import GEOSException +from django.contrib.gis.geos.libgeos import lgeos, GEOS_VERSION -# Getting the C library, needed to free the string pointers -# returned from GEOS. -if os.name == 'nt': - libc_name = 'msvcrt' +# Getting the `free` routine used to free the memory allocated for +# string pointers returned by GEOS. +if GEOS_VERSION >= (3, 1, 1): + # In versions 3.1.1 and above, `GEOSFree` was added to the C API + # because `free` isn't always available on all platforms. + free = lgeos.GEOSFree + free.argtypes = [c_void_p] + free.restype = None else: - libc_name = 'libc' -libc = CDLL(find_library(libc_name)) + # Getting the `free` routine from the C library of the platform. + if os.name == 'nt': + # On NT, use the MS C library. + libc = CDLL('msvcrt') + else: + # On POSIX platforms C library is obtained by passing None into `CDLL`. + libc = CDLL(None) + free = libc.free ### ctypes error checking routines ### def last_arg_byref(args): - "Returns the last C argument's by reference value." + "Returns the last C argument's value by reference." return args[-1]._obj.value def check_dbl(result, func, cargs): @@ -60,7 +70,7 @@ def check_sized_string(result, func, cargs): # correct size. s = string_at(result, last_arg_byref(cargs)) # Freeing the memory allocated within GEOS - libc.free(result) + free(result) return s def check_string(result, func, cargs): @@ -73,7 +83,7 @@ def check_string(result, func, cargs): # Getting the string value at the pointer address. s = string_at(result) # Freeing the memory allocated within GEOS - libc.free(result) + free(result) return s def check_zero(result, func, cargs): diff --git a/django/contrib/gis/geos/tests/test_geos.py b/django/contrib/gis/geos/tests/test_geos.py index 070ccf6d5f71..0d318e86a559 100644 --- a/django/contrib/gis/geos/tests/test_geos.py +++ b/django/contrib/gis/geos/tests/test_geos.py @@ -778,7 +778,7 @@ def test21_test_gdal(self): def test22_copy(self): "Testing use with the Python `copy` module." - import copy + import django.utils.copycompat as copy poly = GEOSGeometry('POLYGON((0 0, 0 23, 23 23, 23 0, 0 0), (5 5, 5 10, 10 10, 10 5, 5 5))') cpy1 = copy.copy(poly) cpy2 = copy.deepcopy(poly) diff --git a/django/contrib/gis/geos/tests/test_geos_mutation.py b/django/contrib/gis/geos/tests/test_geos_mutation.py index 260a4689a637..28f484dca7da 100644 --- a/django/contrib/gis/geos/tests/test_geos_mutation.py +++ b/django/contrib/gis/geos/tests/test_geos_mutation.py @@ -2,9 +2,11 @@ # Modified from original contribution by Aryeh Leib Taurog, which was # released under the New BSD license. import unittest + +import django.utils.copycompat as copy + from django.contrib.gis.geos import * from django.contrib.gis.geos.error import GEOSIndexError -import copy def getItem(o,i): return o[i] def delItem(o,i): del o[i] diff --git a/django/contrib/gis/measure.py b/django/contrib/gis/measure.py index 37922040df76..a60398bccdbe 100644 --- a/django/contrib/gis/measure.py +++ b/django/contrib/gis/measure.py @@ -27,7 +27,7 @@ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # """ -Distance and Area objects to allow for sensible and convienient calculation +Distance and Area objects to allow for sensible and convienient calculation and conversions. Authors: Robert Coup, Justin Bronn @@ -70,7 +70,7 @@ def default_units(self, kwargs): @classmethod def unit_attname(cls, unit_str): """ - Retrieves the unit attribute name for the given unit string. + Retrieves the unit attribute name for the given unit string. For example, if the given unit string is 'metre', 'm' would be returned. An exception is raised if an attribute cannot be found. """ @@ -165,51 +165,51 @@ def __init__(self, default_unit=None, **kwargs): self.m, self._default_unit = self.default_units(kwargs) if default_unit and isinstance(default_unit, str): self._default_unit = default_unit - + def __getattr__(self, name): if name in self.UNITS: return self.m / self.UNITS[name] else: raise AttributeError('Unknown unit type: %s' % name) - + def __repr__(self): return 'Distance(%s=%s)' % (self._default_unit, getattr(self, self._default_unit)) def __str__(self): return '%s %s' % (getattr(self, self._default_unit), self._default_unit) - + def __cmp__(self, other): if isinstance(other, Distance): return cmp(self.m, other.m) else: return NotImplemented - + def __add__(self, other): if isinstance(other, Distance): return Distance(default_unit=self._default_unit, m=(self.m + other.m)) else: raise TypeError('Distance must be added with Distance') - + def __iadd__(self, other): if isinstance(other, Distance): self.m += other.m return self else: raise TypeError('Distance must be added with Distance') - + def __sub__(self, other): if isinstance(other, Distance): return Distance(default_unit=self._default_unit, m=(self.m - other.m)) else: raise TypeError('Distance must be subtracted from Distance') - + def __isub__(self, other): if isinstance(other, Distance): self.m -= other.m return self else: raise TypeError('Distance must be subtracted from Distance') - + def __mul__(self, other): if isinstance(other, (int, float, long, Decimal)): return Distance(default_unit=self._default_unit, m=(self.m * float(other))) @@ -217,14 +217,17 @@ def __mul__(self, other): return Area(default_unit='sq_' + self._default_unit, sq_m=(self.m * other.m)) else: raise TypeError('Distance must be multiplied with number or Distance') - + def __imul__(self, other): if isinstance(other, (int, float, long, Decimal)): self.m *= float(other) return self else: raise TypeError('Distance must be multiplied with number') - + + def __rmul__(self, other): + return self * other + def __div__(self, other): if isinstance(other, (int, float, long, Decimal)): return Distance(default_unit=self._default_unit, m=(self.m / float(other))) @@ -251,13 +254,13 @@ def __init__(self, default_unit=None, **kwargs): self.sq_m, self._default_unit = self.default_units(kwargs) if default_unit and isinstance(default_unit, str): self._default_unit = default_unit - + def __getattr__(self, name): if name in self.UNITS: return self.sq_m / self.UNITS[name] else: raise AttributeError('Unknown unit type: ' + name) - + def __repr__(self): return 'Area(%s=%s)' % (self._default_unit, getattr(self, self._default_unit)) @@ -269,46 +272,49 @@ def __cmp__(self, other): return cmp(self.sq_m, other.sq_m) else: return NotImplemented - + def __add__(self, other): if isinstance(other, Area): return Area(default_unit=self._default_unit, sq_m=(self.sq_m + other.sq_m)) else: raise TypeError('Area must be added with Area') - + def __iadd__(self, other): if isinstance(other, Area): self.sq_m += other.sq_m return self else: raise TypeError('Area must be added with Area') - + def __sub__(self, other): if isinstance(other, Area): return Area(default_unit=self._default_unit, sq_m=(self.sq_m - other.sq_m)) else: raise TypeError('Area must be subtracted from Area') - + def __isub__(self, other): if isinstance(other, Area): self.sq_m -= other.sq_m return self else: raise TypeError('Area must be subtracted from Area') - + def __mul__(self, other): if isinstance(other, (int, float, long, Decimal)): return Area(default_unit=self._default_unit, sq_m=(self.sq_m * float(other))) else: raise TypeError('Area must be multiplied with number') - + def __imul__(self, other): if isinstance(other, (int, float, long, Decimal)): self.sq_m *= float(other) return self else: raise TypeError('Area must be multiplied with number') - + + def __rmul__(self, other): + return self * other + def __div__(self, other): if isinstance(other, (int, float, long, Decimal)): return Area(default_unit=self._default_unit, sq_m=(self.sq_m / float(other))) @@ -324,7 +330,7 @@ def __idiv__(self, other): def __nonzero__(self): return bool(self.sq_m) - + # Shortcuts D = Distance A = Area diff --git a/django/contrib/gis/shortcuts.py b/django/contrib/gis/shortcuts.py index e62e2b6bc8dc..a6fb8927d01f 100644 --- a/django/contrib/gis/shortcuts.py +++ b/django/contrib/gis/shortcuts.py @@ -1,4 +1,5 @@ import cStringIO, zipfile +from django.conf import settings from django.http import HttpResponse from django.template import loader @@ -6,7 +7,7 @@ def compress_kml(kml): "Returns compressed KMZ from the given KML string." kmz = cStringIO.StringIO() zf = zipfile.ZipFile(kmz, 'a', zipfile.ZIP_DEFLATED) - zf.writestr('doc.kml', kml) + zf.writestr('doc.kml', kml.encode(settings.DEFAULT_CHARSET)) zf.close() kmz.seek(0) return kmz.read() diff --git a/django/contrib/gis/templates/gis/admin/openlayers.js b/django/contrib/gis/templates/gis/admin/openlayers.js index 93286cc46478..4324693c7822 100644 --- a/django/contrib/gis/templates/gis/admin/openlayers.js +++ b/django/contrib/gis/templates/gis/admin/openlayers.js @@ -1,6 +1,7 @@ {# Author: Justin Bronn, Travis Pinney & Dane Springmeyer #} {% block vars %}var {{ module }} = {}; -{{ module }}.map = null; {{ module }}.controls = null; {{ module }}.panel = null; {{ module }}.re = new RegExp("^SRID=\d+;(.+)", "i"); {{ module }}.layers = {}; +{{ module }}.map = null; {{ module }}.controls = null; {{ module }}.panel = null; {{ module }}.re = new RegExp("^SRID=\d+;(.+)", "i"); {{ module }}.layers = {}; +{{ module }}.modifiable = {{ modifiable|yesno:"true,false" }}; {{ module }}.wkt_f = new OpenLayers.Format.WKT(); {{ module }}.is_collection = {{ is_collection|yesno:"true,false" }}; {{ module }}.collection_type = '{{ collection_type }}'; @@ -43,10 +44,10 @@ {{ module }}.modify_wkt = function(event){ if ({{ module }}.is_collection){ if ({{ module }}.is_point){ - {{ module }}.add_wkt(event); + {{ module }}.add_wkt(event); return; } else { - // When modifying the selected components are added to the + // When modifying the selected components are added to the // vector layer so we only increment to the `num_geom` value. var feat = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.{{ geom_type }}()); for (var i = 0; i < {{ module }}.num_geom; i++){ @@ -69,7 +70,7 @@ {{ module }}.map.setCenter(new OpenLayers.LonLat({{ default_lon }}, {{ default_lat }}), {{ default_zoom }}); } // Add Select control -{{ module }}.addSelectControl = function(){ +{{ module }}.addSelectControl = function(){ var select = new OpenLayers.Control.SelectFeature({{ module }}.layers.vector, {'toggle' : true, 'clickout' : true}); {{ module }}.map.addControl(select); select.activate(); @@ -88,16 +89,20 @@ } else if ({{ module }}.is_point){ draw_ctl = new OpenLayers.Control.DrawFeature(lyr, OpenLayers.Handler.Point, {'displayClass': 'olControlDrawFeaturePoint'}); } - {% if modifiable %} - var mod = new OpenLayers.Control.ModifyFeature(lyr, {'displayClass': 'olControlModifyFeature'}); - {{ module }}.controls = [nav, draw_ctl, mod]; - {% else %} - {{ module }}.controls = [nav, darw_ctl]; - {% endif %} + if ({{ module }}.modifiable){ + var mod = new OpenLayers.Control.ModifyFeature(lyr, {'displayClass': 'olControlModifyFeature'}); + {{ module }}.controls = [nav, draw_ctl, mod]; + } else { + if(!lyr.features.length){ + {{ module }}.controls = [nav, draw_ctl]; + } else { + {{ module }}.controls = [nav]; + } + } } {{ module }}.init = function(){ {% block map_options %}// The options hash, w/ zoom, resolution, and projection settings. - var options = { + var options = { {% autoescape off %}{% for item in map_options.items %} '{{ item.0 }}' : {{ item.1 }}{% if not forloop.last %},{% endif %} {% endfor %}{% endautoescape %} };{% endblock %} // The admin map for this geometry field. @@ -112,7 +117,7 @@ // Read WKT from the text field. var wkt = document.getElementById('{{ id }}').value; if (wkt){ - // After reading into geometry, immediately write back to + // After reading into geometry, immediately write back to // WKT