mirror of
https://github.com/django/django.git
synced 2025-07-04 01:39:20 +00:00
gis: Merged revisions 7355-7403 via svnmerge from trunk.
git-svn-id: http://code.djangoproject.com/svn/django/branches/gis@7405 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
147bd6ac36
commit
b0291347db
8
AUTHORS
8
AUTHORS
@ -136,6 +136,7 @@ answer newbie questions, and generally made Django that much better:
|
|||||||
Szilveszter Farkas <szilveszter.farkas@gmail.com>
|
Szilveszter Farkas <szilveszter.farkas@gmail.com>
|
||||||
favo@exoweb.net
|
favo@exoweb.net
|
||||||
Dmitri Fedortchenko <zeraien@gmail.com>
|
Dmitri Fedortchenko <zeraien@gmail.com>
|
||||||
|
Liang Feng <hutuworm@gmail.com>
|
||||||
Bill Fenner <fenner@gmail.com>
|
Bill Fenner <fenner@gmail.com>
|
||||||
Stefane Fermgier <sf@fermigier.com>
|
Stefane Fermgier <sf@fermigier.com>
|
||||||
Afonso Fernández Nogueira <fonzzo.django@gmail.com>
|
Afonso Fernández Nogueira <fonzzo.django@gmail.com>
|
||||||
@ -154,6 +155,7 @@ answer newbie questions, and generally made Django that much better:
|
|||||||
martin.glueck@gmail.com
|
martin.glueck@gmail.com
|
||||||
Artyom Gnilov <boobsd@gmail.com>
|
Artyom Gnilov <boobsd@gmail.com>
|
||||||
GomoX <gomo@datafull.com>
|
GomoX <gomo@datafull.com>
|
||||||
|
Guilherme Mesquita Gondim <semente@taurinus.org>
|
||||||
Mario Gonzalez <gonzalemario@gmail.com>
|
Mario Gonzalez <gonzalemario@gmail.com>
|
||||||
pradeep.gowda@gmail.com
|
pradeep.gowda@gmail.com
|
||||||
Simon Greenhill <dev@simon.net.nz>
|
Simon Greenhill <dev@simon.net.nz>
|
||||||
@ -166,6 +168,7 @@ answer newbie questions, and generally made Django that much better:
|
|||||||
Hawkeye
|
Hawkeye
|
||||||
Joe Heck <http://www.rhonabwy.com/wp/>
|
Joe Heck <http://www.rhonabwy.com/wp/>
|
||||||
Joel Heenan <joelh-django@planetjoel.com>
|
Joel Heenan <joelh-django@planetjoel.com>
|
||||||
|
Mikko Hellsing <mikko@sorl.net>
|
||||||
hipertracker@gmail.com
|
hipertracker@gmail.com
|
||||||
Deryck Hodge <http://www.devurandom.org/>
|
Deryck Hodge <http://www.devurandom.org/>
|
||||||
Brett Hoerner <bretthoerner@bretthoerner.com>
|
Brett Hoerner <bretthoerner@bretthoerner.com>
|
||||||
@ -227,6 +230,7 @@ answer newbie questions, and generally made Django that much better:
|
|||||||
Waylan Limberg <waylan@gmail.com>
|
Waylan Limberg <waylan@gmail.com>
|
||||||
limodou
|
limodou
|
||||||
Philip Lindborg <philip.lindborg@gmail.com>
|
Philip Lindborg <philip.lindborg@gmail.com>
|
||||||
|
Daniel Lindsley <polarcowz@gmail.com>
|
||||||
Trey Long <trey@ktrl.com>
|
Trey Long <trey@ktrl.com>
|
||||||
msaelices <msaelices@gmail.com>
|
msaelices <msaelices@gmail.com>
|
||||||
Matt McClanahan <http://mmcc.cx/>
|
Matt McClanahan <http://mmcc.cx/>
|
||||||
@ -238,15 +242,13 @@ answer newbie questions, and generally made Django that much better:
|
|||||||
Nuno Mariz <nmariz@gmail.com>
|
Nuno Mariz <nmariz@gmail.com>
|
||||||
Marijn Vriens <marijn@metronomo.cl>
|
Marijn Vriens <marijn@metronomo.cl>
|
||||||
mark@junklight.com
|
mark@junklight.com
|
||||||
|
Orestis Markou <orestis@orestis.gr>
|
||||||
Yasushi Masuda <whosaysni@gmail.com>
|
Yasushi Masuda <whosaysni@gmail.com>
|
||||||
mattycakes@gmail.com
|
mattycakes@gmail.com
|
||||||
Jason McBrayer <http://www.carcosa.net/jason/>
|
Jason McBrayer <http://www.carcosa.net/jason/>
|
||||||
mccutchen@gmail.com
|
mccutchen@gmail.com
|
||||||
michael.mcewan@gmail.com
|
michael.mcewan@gmail.com
|
||||||
michal@plovarna.cz
|
michal@plovarna.cz
|
||||||
Mikko Hellsing <mikko@sorl.net>
|
|
||||||
Daniel Lindsley <polarcowz@gmail.com>
|
|
||||||
Orestis Markou <orestis@orestis.gr>
|
|
||||||
Slawek Mikula <slawek dot mikula at gmail dot com>
|
Slawek Mikula <slawek dot mikula at gmail dot com>
|
||||||
mitakummaa@gmail.com
|
mitakummaa@gmail.com
|
||||||
mmarshall
|
mmarshall
|
||||||
|
@ -70,7 +70,7 @@ LANGUAGES = (
|
|||||||
('no', gettext_noop('Norwegian')),
|
('no', gettext_noop('Norwegian')),
|
||||||
('pl', gettext_noop('Polish')),
|
('pl', gettext_noop('Polish')),
|
||||||
('pt', gettext_noop('Portugese')),
|
('pt', gettext_noop('Portugese')),
|
||||||
('pt-br', gettext_noop('Brazilian')),
|
('pt-br', gettext_noop('Brazilian Portuguese')),
|
||||||
('ro', gettext_noop('Romanian')),
|
('ro', gettext_noop('Romanian')),
|
||||||
('ru', gettext_noop('Russian')),
|
('ru', gettext_noop('Russian')),
|
||||||
('sk', gettext_noop('Slovak')),
|
('sk', gettext_noop('Slovak')),
|
||||||
@ -114,7 +114,7 @@ SERVER_EMAIL = 'root@localhost'
|
|||||||
SEND_BROKEN_LINK_EMAILS = False
|
SEND_BROKEN_LINK_EMAILS = False
|
||||||
|
|
||||||
# Database connection info.
|
# Database connection info.
|
||||||
DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
|
DATABASE_ENGINE = '' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
|
||||||
DATABASE_NAME = '' # Or path to database file if using sqlite3.
|
DATABASE_NAME = '' # Or path to database file if using sqlite3.
|
||||||
DATABASE_USER = '' # Not used with sqlite3.
|
DATABASE_USER = '' # Not used with sqlite3.
|
||||||
DATABASE_PASSWORD = '' # Not used with sqlite3.
|
DATABASE_PASSWORD = '' # Not used with sqlite3.
|
||||||
@ -287,7 +287,7 @@ SESSION_COOKIE_PATH = '/' # The path of the sessio
|
|||||||
SESSION_SAVE_EVERY_REQUEST = False # Whether to save the session data on every request.
|
SESSION_SAVE_EVERY_REQUEST = False # Whether to save the session data on every request.
|
||||||
SESSION_EXPIRE_AT_BROWSER_CLOSE = False # Whether sessions expire when a user closes his browser.
|
SESSION_EXPIRE_AT_BROWSER_CLOSE = False # Whether sessions expire when a user closes his browser.
|
||||||
SESSION_ENGINE = 'django.contrib.sessions.backends.db' # The module to store session data
|
SESSION_ENGINE = 'django.contrib.sessions.backends.db' # The module to store session data
|
||||||
SESSION_FILE_PATH = None # Directory to store session files if using the file session module. If set to None the backend will use a sensible default.
|
SESSION_FILE_PATH = None # Directory to store session files if using the file session module. If None, the backend will use a sensible default.
|
||||||
|
|
||||||
#########
|
#########
|
||||||
# CACHE #
|
# CACHE #
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -1,21 +1,17 @@
|
|||||||
# translation of djangojs.po to español
|
# translation of djangojs.po to catalan
|
||||||
# translation of djangojs.po to
|
|
||||||
# Catalan translation for the django-admin JS files.
|
|
||||||
# This file is distributed under the same license as the Django package.
|
# This file is distributed under the same license as the Django package.
|
||||||
#
|
|
||||||
# Antoni Aloy <antoni.aloy@trespams.com>, 2007.
|
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Django\n"
|
"Project-Id-Version: Django\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2007-05-20 18:25+0200\n"
|
"POT-Creation-Date: 2007-02-15 01:00+0200\n"
|
||||||
"PO-Revision-Date: 2008-01-22 19:39+0100\n"
|
"PO-Revision-Date: 2008-03-25 18:54+0100\n"
|
||||||
"Last-Translator: Marc Garcia <marc.garcia@accopensys.com>\n"
|
"Last-Translator: Django Catalan Group <django-cat@googlegroups.com>\n"
|
||||||
"Language-Team: español <ca@li.org>\n"
|
"Language-Team: Catalan <ca@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: KBabel 1.11.4\n"
|
"X-Generator: VIM 7.1\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: contrib/admin/media/js/SelectFilter2.js:33
|
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -1,14 +1,14 @@
|
|||||||
# Spanish translation for the django-admin JS files.
|
# Spanish translation for the django-admin JS files.
|
||||||
# Copyright (C)
|
# Copyright (C) 2008, The Django Project
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
# This file is distributed under the same license as the django package.
|
||||||
#
|
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Django\n"
|
"Project-Id-Version: Django\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2007-07-14 13:47-0500\n"
|
"POT-Creation-Date: 2005-10-04 00:00+0200\n"
|
||||||
"PO-Revision-Date: 2007-07-14 13:41-0500\n"
|
"PO-Revision-Date: 2008-03-30 00:54+0100\n"
|
||||||
"Last-Translator: Jorge Gajon <gajon@gajon.org>\n"
|
"Last-Translator: Django Spanish Group <django-i18n@googlegroups.com>\n"
|
||||||
|
"Language-Team: Spanish <django-i18n@googlegroups.com>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
Binary file not shown.
@ -5,7 +5,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Django\n"
|
"Project-Id-Version: Django\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2008-02-25 12:45+0100\n"
|
"POT-Creation-Date: 2008-03-29 20:56+0100\n"
|
||||||
"PO-Revision-Date: 2008-02-25 15:53+0100\n"
|
"PO-Revision-Date: 2008-02-25 15:53+0100\n"
|
||||||
"Last-Translator: Łukasz Czyżykowki <lukasz.czyzykowski@gmail.com>\n"
|
"Last-Translator: Łukasz Czyżykowki <lukasz.czyzykowski@gmail.com>\n"
|
||||||
"Language-Team: Polish <pl@li.org>\n"
|
"Language-Team: Polish <pl@li.org>\n"
|
||||||
@ -65,134 +65,142 @@ msgid "Argentinean Spanish"
|
|||||||
msgstr "Hiszpański argentyński"
|
msgstr "Hiszpański argentyński"
|
||||||
|
|
||||||
#: conf/global_settings.py:51
|
#: conf/global_settings.py:51
|
||||||
|
msgid "Basque"
|
||||||
|
msgstr "Baskijski"
|
||||||
|
|
||||||
|
#: conf/global_settings.py:52
|
||||||
msgid "Persian"
|
msgid "Persian"
|
||||||
msgstr "Perski"
|
msgstr "Perski"
|
||||||
|
|
||||||
#: conf/global_settings.py:52
|
#: conf/global_settings.py:53
|
||||||
msgid "Finnish"
|
msgid "Finnish"
|
||||||
msgstr "Fiński"
|
msgstr "Fiński"
|
||||||
|
|
||||||
#: conf/global_settings.py:53
|
#: conf/global_settings.py:54
|
||||||
msgid "French"
|
msgid "French"
|
||||||
msgstr "Francuski"
|
msgstr "Francuski"
|
||||||
|
|
||||||
#: conf/global_settings.py:54
|
|
||||||
msgid "Gaeilge"
|
|
||||||
msgstr "Gaelicki"
|
|
||||||
|
|
||||||
#: conf/global_settings.py:55
|
#: conf/global_settings.py:55
|
||||||
|
msgid "Irish"
|
||||||
|
msgstr "Irlandzki"
|
||||||
|
|
||||||
|
#: conf/global_settings.py:56
|
||||||
msgid "Galician"
|
msgid "Galician"
|
||||||
msgstr "Galicyjski"
|
msgstr "Galicyjski"
|
||||||
|
|
||||||
#: conf/global_settings.py:56
|
#: conf/global_settings.py:57
|
||||||
msgid "Hungarian"
|
msgid "Hungarian"
|
||||||
msgstr "Węgierski"
|
msgstr "Węgierski"
|
||||||
|
|
||||||
#: conf/global_settings.py:57
|
#: conf/global_settings.py:58
|
||||||
msgid "Hebrew"
|
msgid "Hebrew"
|
||||||
msgstr "Hebrajski"
|
msgstr "Hebrajski"
|
||||||
|
|
||||||
#: conf/global_settings.py:58
|
#: conf/global_settings.py:59
|
||||||
msgid "Croatian"
|
msgid "Croatian"
|
||||||
msgstr "Horwacki"
|
msgstr "Horwacki"
|
||||||
|
|
||||||
#: conf/global_settings.py:59
|
#: conf/global_settings.py:60
|
||||||
msgid "Icelandic"
|
msgid "Icelandic"
|
||||||
msgstr "Islandzki"
|
msgstr "Islandzki"
|
||||||
|
|
||||||
#: conf/global_settings.py:60
|
#: conf/global_settings.py:61
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr "Włoski"
|
msgstr "Włoski"
|
||||||
|
|
||||||
#: conf/global_settings.py:61
|
#: conf/global_settings.py:62
|
||||||
msgid "Japanese"
|
msgid "Japanese"
|
||||||
msgstr "Japoński"
|
msgstr "Japoński"
|
||||||
|
|
||||||
#: conf/global_settings.py:62
|
#: conf/global_settings.py:63
|
||||||
|
msgid "Georgian"
|
||||||
|
msgstr "Gruziński"
|
||||||
|
|
||||||
|
#: conf/global_settings.py:64
|
||||||
msgid "Korean"
|
msgid "Korean"
|
||||||
msgstr "Koreański"
|
msgstr "Koreański"
|
||||||
|
|
||||||
#: conf/global_settings.py:63
|
#: conf/global_settings.py:65
|
||||||
msgid "Khmer"
|
msgid "Khmer"
|
||||||
msgstr "Khmerski"
|
msgstr "Khmerski"
|
||||||
|
|
||||||
#: conf/global_settings.py:64
|
#: conf/global_settings.py:66
|
||||||
msgid "Kannada"
|
msgid "Kannada"
|
||||||
msgstr "Kannada"
|
msgstr "Kannada"
|
||||||
|
|
||||||
#: conf/global_settings.py:65
|
#: conf/global_settings.py:67
|
||||||
msgid "Latvian"
|
msgid "Latvian"
|
||||||
msgstr "Łotewski"
|
msgstr "Łotewski"
|
||||||
|
|
||||||
#: conf/global_settings.py:66
|
#: conf/global_settings.py:68
|
||||||
msgid "Macedonian"
|
msgid "Macedonian"
|
||||||
msgstr "Macedoński"
|
msgstr "Macedoński"
|
||||||
|
|
||||||
#: conf/global_settings.py:67
|
#: conf/global_settings.py:69
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
msgstr "Holenderski"
|
msgstr "Holenderski"
|
||||||
|
|
||||||
#: conf/global_settings.py:68
|
#: conf/global_settings.py:70
|
||||||
msgid "Norwegian"
|
msgid "Norwegian"
|
||||||
msgstr "Norweski"
|
msgstr "Norweski"
|
||||||
|
|
||||||
#: conf/global_settings.py:69
|
#: conf/global_settings.py:71
|
||||||
msgid "Polish"
|
msgid "Polish"
|
||||||
msgstr "Polski"
|
msgstr "Polski"
|
||||||
|
|
||||||
#: conf/global_settings.py:70
|
#: conf/global_settings.py:72
|
||||||
msgid "Portugese"
|
msgid "Portugese"
|
||||||
msgstr "Portugalski"
|
msgstr "Portugalski"
|
||||||
|
|
||||||
#: conf/global_settings.py:71
|
#: conf/global_settings.py:73
|
||||||
msgid "Brazilian"
|
msgid "Brazilian"
|
||||||
msgstr "Brazylijski"
|
msgstr "Brazylijski"
|
||||||
|
|
||||||
#: conf/global_settings.py:72
|
#: conf/global_settings.py:74
|
||||||
msgid "Romanian"
|
msgid "Romanian"
|
||||||
msgstr "Rumuński"
|
msgstr "Rumuński"
|
||||||
|
|
||||||
#: conf/global_settings.py:73
|
#: conf/global_settings.py:75
|
||||||
msgid "Russian"
|
msgid "Russian"
|
||||||
msgstr "Rosyjski"
|
msgstr "Rosyjski"
|
||||||
|
|
||||||
#: conf/global_settings.py:74
|
#: conf/global_settings.py:76
|
||||||
msgid "Slovak"
|
msgid "Slovak"
|
||||||
msgstr "Słowacki"
|
msgstr "Słowacki"
|
||||||
|
|
||||||
#: conf/global_settings.py:75
|
#: conf/global_settings.py:77
|
||||||
msgid "Slovenian"
|
msgid "Slovenian"
|
||||||
msgstr "Słoweński"
|
msgstr "Słoweński"
|
||||||
|
|
||||||
#: conf/global_settings.py:76
|
#: conf/global_settings.py:78
|
||||||
msgid "Serbian"
|
msgid "Serbian"
|
||||||
msgstr "Serbski"
|
msgstr "Serbski"
|
||||||
|
|
||||||
#: conf/global_settings.py:77
|
#: conf/global_settings.py:79
|
||||||
msgid "Swedish"
|
msgid "Swedish"
|
||||||
msgstr "Szwedzki"
|
msgstr "Szwedzki"
|
||||||
|
|
||||||
#: conf/global_settings.py:78
|
#: conf/global_settings.py:80
|
||||||
msgid "Tamil"
|
msgid "Tamil"
|
||||||
msgstr "Tamilski"
|
msgstr "Tamilski"
|
||||||
|
|
||||||
#: conf/global_settings.py:79
|
#: conf/global_settings.py:81
|
||||||
msgid "Telugu"
|
msgid "Telugu"
|
||||||
msgstr "Telugu"
|
msgstr "Telugu"
|
||||||
|
|
||||||
#: conf/global_settings.py:80
|
#: conf/global_settings.py:82
|
||||||
msgid "Turkish"
|
msgid "Turkish"
|
||||||
msgstr "Turecki"
|
msgstr "Turecki"
|
||||||
|
|
||||||
#: conf/global_settings.py:81
|
#: conf/global_settings.py:83
|
||||||
msgid "Ukrainian"
|
msgid "Ukrainian"
|
||||||
msgstr "Ukraiński"
|
msgstr "Ukraiński"
|
||||||
|
|
||||||
#: conf/global_settings.py:82
|
#: conf/global_settings.py:84
|
||||||
msgid "Simplified Chinese"
|
msgid "Simplified Chinese"
|
||||||
msgstr "Uproszczony chiński"
|
msgstr "Uproszczony chiński"
|
||||||
|
|
||||||
#: conf/global_settings.py:83
|
#: conf/global_settings.py:85
|
||||||
msgid "Traditional Chinese"
|
msgid "Traditional Chinese"
|
||||||
msgstr "Chiński tradycyjny"
|
msgstr "Chiński tradycyjny"
|
||||||
|
|
||||||
@ -472,7 +480,7 @@ msgid "Password:"
|
|||||||
msgstr "Hasło:"
|
msgstr "Hasło:"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/login.html:25
|
#: contrib/admin/templates/admin/login.html:25
|
||||||
#: contrib/admin/views/decorators.py:25
|
#: contrib/admin/views/decorators.py:31
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "Zaloguj się"
|
msgstr "Zaloguj się"
|
||||||
|
|
||||||
@ -791,7 +799,7 @@ msgstr "Hasło zostało zmienione pomyślnie."
|
|||||||
msgid "Change password: %s"
|
msgid "Change password: %s"
|
||||||
msgstr "Zmień hasło: %s"
|
msgstr "Zmień hasło: %s"
|
||||||
|
|
||||||
#: contrib/admin/views/decorators.py:11 contrib/auth/forms.py:60
|
#: contrib/admin/views/decorators.py:17 contrib/auth/forms.py:60
|
||||||
msgid ""
|
msgid ""
|
||||||
"Please enter a correct username and password. Note that both fields are case-"
|
"Please enter a correct username and password. Note that both fields are case-"
|
||||||
"sensitive."
|
"sensitive."
|
||||||
@ -799,7 +807,7 @@ msgstr ""
|
|||||||
"Proszę wpisać poprawną nazwę użytkownika i hasło. Uwaga: wielkość liter ma "
|
"Proszę wpisać poprawną nazwę użytkownika i hasło. Uwaga: wielkość liter ma "
|
||||||
"znaczenie."
|
"znaczenie."
|
||||||
|
|
||||||
#: contrib/admin/views/decorators.py:63
|
#: contrib/admin/views/decorators.py:69
|
||||||
msgid ""
|
msgid ""
|
||||||
"Please log in again, because your session has expired. Don't worry: Your "
|
"Please log in again, because your session has expired. Don't worry: Your "
|
||||||
"submission has been saved."
|
"submission has been saved."
|
||||||
@ -807,7 +815,7 @@ msgstr ""
|
|||||||
"Zaloguj się ponownie. Twoja sesja wygasła lecz twoje zgłoszenie zostało "
|
"Zaloguj się ponownie. Twoja sesja wygasła lecz twoje zgłoszenie zostało "
|
||||||
"zapisane."
|
"zapisane."
|
||||||
|
|
||||||
#: contrib/admin/views/decorators.py:70
|
#: contrib/admin/views/decorators.py:76
|
||||||
msgid ""
|
msgid ""
|
||||||
"Looks like your browser isn't configured to accept cookies. Please enable "
|
"Looks like your browser isn't configured to accept cookies. Please enable "
|
||||||
"cookies, reload this page, and try again."
|
"cookies, reload this page, and try again."
|
||||||
@ -815,11 +823,11 @@ msgstr ""
|
|||||||
"Twoja przeglądarka nie chce akceptować ciasteczek. Zmień jej ustawienia i "
|
"Twoja przeglądarka nie chce akceptować ciasteczek. Zmień jej ustawienia i "
|
||||||
"spróbuj ponownie."
|
"spróbuj ponownie."
|
||||||
|
|
||||||
#: contrib/admin/views/decorators.py:84
|
#: contrib/admin/views/decorators.py:90
|
||||||
msgid "Usernames cannot contain the '@' character."
|
msgid "Usernames cannot contain the '@' character."
|
||||||
msgstr "Nazwy użytkowników nie mogą zawierać znaków '@'."
|
msgstr "Nazwy użytkowników nie mogą zawierać znaków '@'."
|
||||||
|
|
||||||
#: contrib/admin/views/decorators.py:86
|
#: contrib/admin/views/decorators.py:92
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Your e-mail address is not your username. Try '%s' instead."
|
msgid "Your e-mail address is not your username. Try '%s' instead."
|
||||||
msgstr "Twój adres e-mail to nie jest twój login. Spróbuj '%s'."
|
msgstr "Twój adres e-mail to nie jest twój login. Spróbuj '%s'."
|
||||||
@ -947,7 +955,7 @@ msgstr "Tekst"
|
|||||||
msgid "Time"
|
msgid "Time"
|
||||||
msgstr "Czas"
|
msgstr "Czas"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:7
|
#: contrib/admin/views/doc.py:318 contrib/flatpages/models.py:8
|
||||||
msgid "URL"
|
msgid "URL"
|
||||||
msgstr "URL"
|
msgstr "URL"
|
||||||
|
|
||||||
@ -1542,42 +1550,42 @@ msgstr "Błędny ID komentarza"
|
|||||||
msgid "No voting for yourself"
|
msgid "No voting for yourself"
|
||||||
msgstr "Nie można głosować na siebie"
|
msgstr "Nie można głosować na siebie"
|
||||||
|
|
||||||
#: contrib/contenttypes/models.py:37
|
#: contrib/contenttypes/models.py:67
|
||||||
msgid "python model class name"
|
msgid "python model class name"
|
||||||
msgstr "nazwa pythonowa modelu klasy"
|
msgstr "nazwa pythonowa modelu klasy"
|
||||||
|
|
||||||
#: contrib/contenttypes/models.py:40
|
#: contrib/contenttypes/models.py:71
|
||||||
msgid "content type"
|
msgid "content type"
|
||||||
msgstr "typ zawartości"
|
msgstr "typ zawartości"
|
||||||
|
|
||||||
#: contrib/contenttypes/models.py:41
|
#: contrib/contenttypes/models.py:72
|
||||||
msgid "content types"
|
msgid "content types"
|
||||||
msgstr "typy zawartości"
|
msgstr "typy zawartości"
|
||||||
|
|
||||||
#: contrib/flatpages/models.py:8
|
#: contrib/flatpages/models.py:9
|
||||||
msgid ""
|
msgid ""
|
||||||
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Przykład: '/about/contact/'. Upewnij się że wpisałeś otwierający i "
|
"Przykład: '/about/contact/'. Upewnij się że wpisałeś otwierający i "
|
||||||
"zamykający ukośnik."
|
"zamykający ukośnik."
|
||||||
|
|
||||||
#: contrib/flatpages/models.py:9
|
#: contrib/flatpages/models.py:10
|
||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr "tytuł"
|
msgstr "tytuł"
|
||||||
|
|
||||||
#: contrib/flatpages/models.py:10
|
#: contrib/flatpages/models.py:11
|
||||||
msgid "content"
|
msgid "content"
|
||||||
msgstr "zawartość"
|
msgstr "zawartość"
|
||||||
|
|
||||||
#: contrib/flatpages/models.py:11
|
#: contrib/flatpages/models.py:12
|
||||||
msgid "enable comments"
|
msgid "enable comments"
|
||||||
msgstr "włącz komentarze"
|
msgstr "włącz komentarze"
|
||||||
|
|
||||||
#: contrib/flatpages/models.py:12
|
#: contrib/flatpages/models.py:13
|
||||||
msgid "template name"
|
msgid "template name"
|
||||||
msgstr "nazwa szablonu"
|
msgstr "nazwa szablonu"
|
||||||
|
|
||||||
#: contrib/flatpages/models.py:13
|
#: contrib/flatpages/models.py:14
|
||||||
msgid ""
|
msgid ""
|
||||||
"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
|
"Example: 'flatpages/contact_page.html'. If this isn't provided, the system "
|
||||||
"will use 'flatpages/default.html'."
|
"will use 'flatpages/default.html'."
|
||||||
@ -1585,40 +1593,44 @@ msgstr ""
|
|||||||
"Przykład: 'flatpages/contact_page.html'. Jeżeli nie zostanie podane, system "
|
"Przykład: 'flatpages/contact_page.html'. Jeżeli nie zostanie podane, system "
|
||||||
"użyje 'flatpages/default.html'."
|
"użyje 'flatpages/default.html'."
|
||||||
|
|
||||||
#: contrib/flatpages/models.py:14
|
#: contrib/flatpages/models.py:15
|
||||||
msgid "registration required"
|
msgid "registration required"
|
||||||
msgstr "wymagana rejestracja"
|
msgstr "wymagana rejestracja"
|
||||||
|
|
||||||
#: contrib/flatpages/models.py:14
|
#: contrib/flatpages/models.py:15
|
||||||
msgid "If this is checked, only logged-in users will be able to view the page."
|
msgid "If this is checked, only logged-in users will be able to view the page."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Jeżeli zaznaczone - tylko zalogowani użytkownicy będą mogli zobaczyć stronę."
|
"Jeżeli zaznaczone - tylko zalogowani użytkownicy będą mogli zobaczyć stronę."
|
||||||
|
|
||||||
#: contrib/flatpages/models.py:18
|
#: contrib/flatpages/models.py:20
|
||||||
msgid "flat page"
|
msgid "flat page"
|
||||||
msgstr "strona statyczna"
|
msgstr "strona statyczna"
|
||||||
|
|
||||||
#: contrib/flatpages/models.py:19
|
#: contrib/flatpages/models.py:21
|
||||||
msgid "flat pages"
|
msgid "flat pages"
|
||||||
msgstr "strony statyczne"
|
msgstr "strony statyczne"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:20
|
#: contrib/flatpages/models.py:27
|
||||||
|
msgid "Advanced options"
|
||||||
|
msgstr "Opcje zaawansowane"
|
||||||
|
|
||||||
|
#: contrib/humanize/templatetags/humanize.py:19
|
||||||
msgid "th"
|
msgid "th"
|
||||||
msgstr "-y"
|
msgstr "-y"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:20
|
#: contrib/humanize/templatetags/humanize.py:19
|
||||||
msgid "st"
|
msgid "st"
|
||||||
msgstr "-szy"
|
msgstr "-szy"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:20
|
#: contrib/humanize/templatetags/humanize.py:19
|
||||||
msgid "nd"
|
msgid "nd"
|
||||||
msgstr "-gi"
|
msgstr "-gi"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:20
|
#: contrib/humanize/templatetags/humanize.py:19
|
||||||
msgid "rd"
|
msgid "rd"
|
||||||
msgstr "-ci"
|
msgstr "-ci"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:52
|
#: contrib/humanize/templatetags/humanize.py:51
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(value).1f million"
|
msgid "%(value).1f million"
|
||||||
msgid_plural "%(value).1f million"
|
msgid_plural "%(value).1f million"
|
||||||
@ -1626,7 +1638,7 @@ msgstr[0] "%(value).1f milion"
|
|||||||
msgstr[1] "%(value).1f miliony"
|
msgstr[1] "%(value).1f miliony"
|
||||||
msgstr[2] "%(value).1f milionów"
|
msgstr[2] "%(value).1f milionów"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:55
|
#: contrib/humanize/templatetags/humanize.py:54
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(value).1f billion"
|
msgid "%(value).1f billion"
|
||||||
msgid_plural "%(value).1f billion"
|
msgid_plural "%(value).1f billion"
|
||||||
@ -1634,7 +1646,7 @@ msgstr[0] "%(value).1f miliard"
|
|||||||
msgstr[1] "%(value).1f miliardy"
|
msgstr[1] "%(value).1f miliardy"
|
||||||
msgstr[2] "%(value).1f miliardów"
|
msgstr[2] "%(value).1f miliardów"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:58
|
#: contrib/humanize/templatetags/humanize.py:57
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(value).1f trillion"
|
msgid "%(value).1f trillion"
|
||||||
msgid_plural "%(value).1f trillion"
|
msgid_plural "%(value).1f trillion"
|
||||||
@ -1642,73 +1654,73 @@ msgstr[0] "%(value).1f bilion"
|
|||||||
msgstr[1] "%(value).1f biliony"
|
msgstr[1] "%(value).1f biliony"
|
||||||
msgstr[2] "%(value).1f bilionów"
|
msgstr[2] "%(value).1f bilionów"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:74
|
#: contrib/humanize/templatetags/humanize.py:73
|
||||||
msgid "one"
|
msgid "one"
|
||||||
msgstr "jeden"
|
msgstr "jeden"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:74
|
#: contrib/humanize/templatetags/humanize.py:73
|
||||||
msgid "two"
|
msgid "two"
|
||||||
msgstr "dwa"
|
msgstr "dwa"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:74
|
#: contrib/humanize/templatetags/humanize.py:73
|
||||||
msgid "three"
|
msgid "three"
|
||||||
msgstr "trzy"
|
msgstr "trzy"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:74
|
#: contrib/humanize/templatetags/humanize.py:73
|
||||||
msgid "four"
|
msgid "four"
|
||||||
msgstr "cztery"
|
msgstr "cztery"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:74
|
#: contrib/humanize/templatetags/humanize.py:73
|
||||||
msgid "five"
|
msgid "five"
|
||||||
msgstr "pięć"
|
msgstr "pięć"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:74
|
#: contrib/humanize/templatetags/humanize.py:73
|
||||||
msgid "six"
|
msgid "six"
|
||||||
msgstr "sześć"
|
msgstr "sześć"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:74
|
#: contrib/humanize/templatetags/humanize.py:73
|
||||||
msgid "seven"
|
msgid "seven"
|
||||||
msgstr "siedem"
|
msgstr "siedem"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:74
|
#: contrib/humanize/templatetags/humanize.py:73
|
||||||
msgid "eight"
|
msgid "eight"
|
||||||
msgstr "osiem"
|
msgstr "osiem"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:74
|
#: contrib/humanize/templatetags/humanize.py:73
|
||||||
msgid "nine"
|
msgid "nine"
|
||||||
msgstr "dziewięć"
|
msgstr "dziewięć"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:94
|
#: contrib/humanize/templatetags/humanize.py:93
|
||||||
msgid "today"
|
msgid "today"
|
||||||
msgstr "dzisiaj"
|
msgstr "dzisiaj"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:96
|
#: contrib/humanize/templatetags/humanize.py:95
|
||||||
msgid "tomorrow"
|
msgid "tomorrow"
|
||||||
msgstr "jutro"
|
msgstr "jutro"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:98
|
#: contrib/humanize/templatetags/humanize.py:97
|
||||||
msgid "yesterday"
|
msgid "yesterday"
|
||||||
msgstr "wczoraj"
|
msgstr "wczoraj"
|
||||||
|
|
||||||
#: contrib/localflavor/ar/forms.py:28
|
#: contrib/localflavor/ar/forms.py:27
|
||||||
msgid "Enter a postal code in the format NNNN or ANNNNAAA."
|
msgid "Enter a postal code in the format NNNN or ANNNNAAA."
|
||||||
msgstr "Wpisz kod pocztowy w formacie NNNN lub ANNNNAAA."
|
msgstr "Wpisz kod pocztowy w formacie NNNN lub ANNNNAAA."
|
||||||
|
|
||||||
#: contrib/localflavor/ar/forms.py:50 contrib/localflavor/br/forms.py:96
|
#: 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/br/forms.py:135 contrib/localflavor/pe/forms.py:23
|
||||||
#: contrib/localflavor/pe/forms.py:51
|
#: contrib/localflavor/pe/forms.py:51
|
||||||
msgid "This field requires only numbers."
|
msgid "This field requires only numbers."
|
||||||
msgstr "To pole może zawierać jedynie liczby."
|
msgstr "To pole może zawierać jedynie liczby."
|
||||||
|
|
||||||
#: contrib/localflavor/ar/forms.py:51
|
#: contrib/localflavor/ar/forms.py:50
|
||||||
msgid "This field requires 7 or 8 digits."
|
msgid "This field requires 7 or 8 digits."
|
||||||
msgstr "To pole musi zawierać 7 lub 8 cyfr."
|
msgstr "To pole musi zawierać 7 lub 8 cyfr."
|
||||||
|
|
||||||
#: contrib/localflavor/ar/forms.py:80
|
#: contrib/localflavor/ar/forms.py:79
|
||||||
msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
|
msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format."
|
||||||
msgstr "Podaj poprawny numer CUIT w formacie XX-XXXXXXXX-X lub XXXXXXXXXXXX."
|
msgstr "Podaj poprawny numer CUIT w formacie XX-XXXXXXXX-X lub XXXXXXXXXXXX."
|
||||||
|
|
||||||
#: contrib/localflavor/ar/forms.py:81
|
#: contrib/localflavor/ar/forms.py:80
|
||||||
msgid "Invalid CUIT."
|
msgid "Invalid CUIT."
|
||||||
msgstr "Niepoprawny CUIT"
|
msgstr "Niepoprawny CUIT"
|
||||||
|
|
||||||
@ -2300,7 +2312,7 @@ msgstr "Wpisz poprawny numer ubezpieczenia socjalnego."
|
|||||||
msgid "Enter a valid VAT number."
|
msgid "Enter a valid VAT number."
|
||||||
msgstr "Wpisz poprawny numer VAT."
|
msgstr "Wpisz poprawny numer VAT."
|
||||||
|
|
||||||
#: contrib/localflavor/jp/forms.py:19
|
#: contrib/localflavor/jp/forms.py:17
|
||||||
msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
|
msgid "Enter a postal code in the format XXXXXXX or XXX-XXXX."
|
||||||
msgstr "Wpisz kod pocztowy w formacie XXXXXXX lub XXX-XXXX."
|
msgstr "Wpisz kod pocztowy w formacie XXXXXXX lub XXX-XXXX."
|
||||||
|
|
||||||
@ -2549,11 +2561,13 @@ msgid "Jalisco"
|
|||||||
msgstr "Jalisco"
|
msgstr "Jalisco"
|
||||||
|
|
||||||
#: contrib/localflavor/mx/mx_states.py:26
|
#: contrib/localflavor/mx/mx_states.py:26
|
||||||
msgid "Estado de México"
|
#, fuzzy
|
||||||
|
msgid "Estado de México"
|
||||||
msgstr "Meksyk (stan)"
|
msgstr "Meksyk (stan)"
|
||||||
|
|
||||||
#: contrib/localflavor/mx/mx_states.py:27
|
#: contrib/localflavor/mx/mx_states.py:27
|
||||||
msgid "Michoacán"
|
#, fuzzy
|
||||||
|
msgid "Michoacán"
|
||||||
msgstr "Michocan"
|
msgstr "Michocan"
|
||||||
|
|
||||||
#: contrib/localflavor/mx/mx_states.py:28
|
#: contrib/localflavor/mx/mx_states.py:28
|
||||||
@ -2565,7 +2579,8 @@ msgid "Nayarit"
|
|||||||
msgstr "Nayarit"
|
msgstr "Nayarit"
|
||||||
|
|
||||||
#: contrib/localflavor/mx/mx_states.py:30
|
#: contrib/localflavor/mx/mx_states.py:30
|
||||||
msgid "Nuevo León"
|
#, fuzzy
|
||||||
|
msgid "Nuevo León"
|
||||||
msgstr "Nuevo Leon"
|
msgstr "Nuevo Leon"
|
||||||
|
|
||||||
#: contrib/localflavor/mx/mx_states.py:31
|
#: contrib/localflavor/mx/mx_states.py:31
|
||||||
@ -2577,7 +2592,8 @@ msgid "Puebla"
|
|||||||
msgstr "Puebla"
|
msgstr "Puebla"
|
||||||
|
|
||||||
#: contrib/localflavor/mx/mx_states.py:33
|
#: contrib/localflavor/mx/mx_states.py:33
|
||||||
msgid "Querétaro"
|
#, fuzzy
|
||||||
|
msgid "Querétaro"
|
||||||
msgstr "Queretaro"
|
msgstr "Queretaro"
|
||||||
|
|
||||||
#: contrib/localflavor/mx/mx_states.py:34
|
#: contrib/localflavor/mx/mx_states.py:34
|
||||||
@ -2589,7 +2605,8 @@ msgid "Sinaloa"
|
|||||||
msgstr "Sinaloa"
|
msgstr "Sinaloa"
|
||||||
|
|
||||||
#: contrib/localflavor/mx/mx_states.py:36
|
#: contrib/localflavor/mx/mx_states.py:36
|
||||||
msgid "San Luis PotosÃ"
|
#, fuzzy
|
||||||
|
msgid "San Luis Potosí"
|
||||||
msgstr "San Luis Potasi"
|
msgstr "San Luis Potasi"
|
||||||
|
|
||||||
#: contrib/localflavor/mx/mx_states.py:37
|
#: contrib/localflavor/mx/mx_states.py:37
|
||||||
@ -2613,7 +2630,8 @@ msgid "Veracruz"
|
|||||||
msgstr "Veracruz"
|
msgstr "Veracruz"
|
||||||
|
|
||||||
#: contrib/localflavor/mx/mx_states.py:42
|
#: contrib/localflavor/mx/mx_states.py:42
|
||||||
msgid "Yucatán"
|
#, fuzzy
|
||||||
|
msgid "Yucatán"
|
||||||
msgstr "Jukatan"
|
msgstr "Jukatan"
|
||||||
|
|
||||||
#: contrib/localflavor/mx/mx_states.py:43
|
#: contrib/localflavor/mx/mx_states.py:43
|
||||||
@ -3501,23 +3519,23 @@ msgstr "przekieruj"
|
|||||||
msgid "redirects"
|
msgid "redirects"
|
||||||
msgstr "przekierowania"
|
msgstr "przekierowania"
|
||||||
|
|
||||||
#: contrib/sessions/models.py:46
|
#: contrib/sessions/models.py:41
|
||||||
msgid "session key"
|
msgid "session key"
|
||||||
msgstr "klucz sesji"
|
msgstr "klucz sesji"
|
||||||
|
|
||||||
#: contrib/sessions/models.py:47
|
#: contrib/sessions/models.py:42
|
||||||
msgid "session data"
|
msgid "session data"
|
||||||
msgstr "data sesji"
|
msgstr "data sesji"
|
||||||
|
|
||||||
#: contrib/sessions/models.py:48
|
#: contrib/sessions/models.py:43
|
||||||
msgid "expire date"
|
msgid "expire date"
|
||||||
msgstr "data wygaśnięcia sesji"
|
msgstr "data wygaśnięcia sesji"
|
||||||
|
|
||||||
#: contrib/sessions/models.py:53
|
#: contrib/sessions/models.py:48
|
||||||
msgid "session"
|
msgid "session"
|
||||||
msgstr "sesja"
|
msgstr "sesja"
|
||||||
|
|
||||||
#: contrib/sessions/models.py:54
|
#: contrib/sessions/models.py:49
|
||||||
msgid "sessions"
|
msgid "sessions"
|
||||||
msgstr "sesje"
|
msgstr "sesje"
|
||||||
|
|
||||||
@ -3585,7 +3603,7 @@ msgstr "Tu mogą być tylko cyfry."
|
|||||||
msgid "This value can't be comprised solely of digits."
|
msgid "This value can't be comprised solely of digits."
|
||||||
msgstr "To pole nie może zawierać jedynie cyfr."
|
msgstr "To pole nie może zawierać jedynie cyfr."
|
||||||
|
|
||||||
#: core/validators.py:128 newforms/fields.py:151
|
#: core/validators.py:128 newforms/fields.py:152
|
||||||
msgid "Enter a whole number."
|
msgid "Enter a whole number."
|
||||||
msgstr "Wpisz liczbę całkowitą."
|
msgstr "Wpisz liczbę całkowitą."
|
||||||
|
|
||||||
@ -3602,7 +3620,7 @@ msgstr "Rok nie może być wcześniejszy niż 1900."
|
|||||||
msgid "Invalid date: %s"
|
msgid "Invalid date: %s"
|
||||||
msgstr "Niepoprawna data: %s"
|
msgstr "Niepoprawna data: %s"
|
||||||
|
|
||||||
#: core/validators.py:156 db/models/fields/__init__.py:509
|
#: core/validators.py:156 db/models/fields/__init__.py:527
|
||||||
msgid "Enter a valid date in YYYY-MM-DD format."
|
msgid "Enter a valid date in YYYY-MM-DD format."
|
||||||
msgstr "Proszę wpisać poprawną datę w formacie RRRR-MM-DD."
|
msgstr "Proszę wpisać poprawną datę w formacie RRRR-MM-DD."
|
||||||
|
|
||||||
@ -3610,20 +3628,20 @@ msgstr "Proszę wpisać poprawną datę w formacie RRRR-MM-DD."
|
|||||||
msgid "Enter a valid time in HH:MM format."
|
msgid "Enter a valid time in HH:MM format."
|
||||||
msgstr "Proszę wpisać poprawną godzinę w formacie HH:MM."
|
msgstr "Proszę wpisać poprawną godzinę w formacie HH:MM."
|
||||||
|
|
||||||
#: core/validators.py:165 db/models/fields/__init__.py:583
|
#: core/validators.py:165 db/models/fields/__init__.py:604
|
||||||
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
|
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
|
||||||
msgstr "Wprowadź poprawną datę i godzinę w formacie RRRR-MM-DD GG:MM."
|
msgstr "Wprowadź poprawną datę i godzinę w formacie RRRR-MM-DD GG:MM."
|
||||||
|
|
||||||
#: core/validators.py:170 newforms/fields.py:402
|
#: core/validators.py:170 newforms/fields.py:403
|
||||||
msgid "Enter a valid e-mail address."
|
msgid "Enter a valid e-mail address."
|
||||||
msgstr "Wprowadź poprawny adres e-mail."
|
msgstr "Wprowadź poprawny adres e-mail."
|
||||||
|
|
||||||
#: core/validators.py:182 core/validators.py:474 newforms/fields.py:432
|
#: core/validators.py:182 core/validators.py:474 newforms/fields.py:433
|
||||||
#: oldforms/__init__.py:687
|
#: oldforms/__init__.py:687
|
||||||
msgid "No file was submitted. Check the encoding type on the form."
|
msgid "No file was submitted. Check the encoding type on the form."
|
||||||
msgstr "Nie wysłano żadnego pliku. Sprawdź typ kodowania formularza."
|
msgstr "Nie wysłano żadnego pliku. Sprawdź typ kodowania formularza."
|
||||||
|
|
||||||
#: core/validators.py:193 newforms/fields.py:458
|
#: core/validators.py:193 newforms/fields.py:459
|
||||||
msgid ""
|
msgid ""
|
||||||
"Upload a valid image. The file you uploaded was either not an image or a "
|
"Upload a valid image. The file you uploaded was either not an image or a "
|
||||||
"corrupted image."
|
"corrupted image."
|
||||||
@ -3879,54 +3897,54 @@ msgstr "%(object)s z %(type)s już istnieje dla %(field)s."
|
|||||||
msgid "%(optname)s with this %(fieldname)s already exists."
|
msgid "%(optname)s with this %(fieldname)s already exists."
|
||||||
msgstr "Już istnieje %(optname)s z %(fieldname)s."
|
msgstr "Już istnieje %(optname)s z %(fieldname)s."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:318
|
#: db/models/fields/__init__.py:161 db/models/fields/__init__.py:327
|
||||||
#: db/models/fields/__init__.py:735 db/models/fields/__init__.py:746
|
#: db/models/fields/__init__.py:759 db/models/fields/__init__.py:770
|
||||||
#: newforms/fields.py:45 oldforms/__init__.py:374
|
#: newforms/fields.py:46 oldforms/__init__.py:374
|
||||||
msgid "This field is required."
|
msgid "This field is required."
|
||||||
msgstr "To pole jest wymagane."
|
msgstr "To pole jest wymagane."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:418
|
#: db/models/fields/__init__.py:427
|
||||||
msgid "This value must be an integer."
|
msgid "This value must be an integer."
|
||||||
msgstr "Ta wartość musi być liczbą całkowitą."
|
msgstr "Ta wartość musi być liczbą całkowitą."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:454
|
#: db/models/fields/__init__.py:466
|
||||||
msgid "This value must be either True or False."
|
msgid "This value must be either True or False."
|
||||||
msgstr "Ta wartość musi być logiczna (True, False - prawda lub fałsz)."
|
msgstr "Ta wartość musi być logiczna (True, False - prawda lub fałsz)."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:475
|
#: db/models/fields/__init__.py:490
|
||||||
msgid "This field cannot be null."
|
msgid "This field cannot be null."
|
||||||
msgstr "To pole nie może być puste."
|
msgstr "To pole nie może być puste."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:644
|
#: db/models/fields/__init__.py:668
|
||||||
msgid "This value must be a decimal number."
|
msgid "This value must be a decimal number."
|
||||||
msgstr "Ta wartość musi być liczbą dziesiętną."
|
msgstr "Ta wartość musi być liczbą dziesiętną."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:755
|
#: db/models/fields/__init__.py:779
|
||||||
msgid "Enter a valid filename."
|
msgid "Enter a valid filename."
|
||||||
msgstr "Wpisz poprawną nazwę pliku."
|
msgstr "Wpisz poprawną nazwę pliku."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:908
|
#: db/models/fields/__init__.py:960
|
||||||
msgid "This value must be either None, True or False."
|
msgid "This value must be either None, True or False."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ta wartość musi być jedną z None (żadne), True (prawda) lub False (fałsz)."
|
"Ta wartość musi być jedną z None (żadne), True (prawda) lub False (fałsz)."
|
||||||
|
|
||||||
#: db/models/fields/related.py:55
|
#: db/models/fields/related.py:93
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Please enter a valid %s."
|
msgid "Please enter a valid %s."
|
||||||
msgstr "Proszę wpisać poprawne %s."
|
msgstr "Proszę wpisać poprawne %s."
|
||||||
|
|
||||||
#: db/models/fields/related.py:658
|
#: db/models/fields/related.py:701
|
||||||
msgid "Separate multiple IDs with commas."
|
msgid "Separate multiple IDs with commas."
|
||||||
msgstr "Oddziel identyfikatory przecinkami."
|
msgstr "Oddziel identyfikatory przecinkami."
|
||||||
|
|
||||||
#: db/models/fields/related.py:660
|
#: db/models/fields/related.py:703
|
||||||
msgid ""
|
msgid ""
|
||||||
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Przytrzymaj wciśnięty klawisz \"Ctrl\" lub \"Command\" na Mac'u aby "
|
"Przytrzymaj wciśnięty klawisz \"Ctrl\" lub \"Command\" na Mac'u aby "
|
||||||
"zaznaczyć więcej niż jeden wybór."
|
"zaznaczyć więcej niż jeden wybór."
|
||||||
|
|
||||||
#: db/models/fields/related.py:707
|
#: db/models/fields/related.py:750
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
|
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
|
||||||
msgid_plural ""
|
msgid_plural ""
|
||||||
@ -3941,100 +3959,100 @@ msgstr[2] ""
|
|||||||
"Proszę podać poprawne identyfikatory %(self)s. Wartości %(value)r są "
|
"Proszę podać poprawne identyfikatory %(self)s. Wartości %(value)r są "
|
||||||
"niepoprawne."
|
"niepoprawne."
|
||||||
|
|
||||||
#: newforms/fields.py:46
|
#: newforms/fields.py:47
|
||||||
msgid "Enter a valid value."
|
msgid "Enter a valid value."
|
||||||
msgstr "Wpisz poprawną wartość."
|
msgstr "Wpisz poprawną wartość."
|
||||||
|
|
||||||
#: newforms/fields.py:123
|
#: newforms/fields.py:124
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
|
msgid "Ensure this value has at most %(max)d characters (it has %(length)d)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Upewnij się, że ta wartość ma co najwyżej %(max)d znaków (ma długość %"
|
"Upewnij się, że ta wartość ma co najwyżej %(max)d znaków (ma długość %"
|
||||||
"(length)d)."
|
"(length)d)."
|
||||||
|
|
||||||
#: newforms/fields.py:124
|
#: newforms/fields.py:125
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
|
msgid "Ensure this value has at least %(min)d characters (it has %(length)d)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Upewnij się, że ta wartość ma co najmniej %(min)d znaków (ma długość %"
|
"Upewnij się, że ta wartość ma co najmniej %(min)d znaków (ma długość %"
|
||||||
"(length)d)."
|
"(length)d)."
|
||||||
|
|
||||||
#: newforms/fields.py:152 newforms/fields.py:181 newforms/fields.py:210
|
#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Ensure this value is less than or equal to %s."
|
msgid "Ensure this value is less than or equal to %s."
|
||||||
msgstr "Upewnij się, że ta wartość jest mniejsza lub równa %s."
|
msgstr "Upewnij się, że ta wartość jest mniejsza lub równa %s."
|
||||||
|
|
||||||
#: newforms/fields.py:153 newforms/fields.py:182 newforms/fields.py:211
|
#: newforms/fields.py:154 newforms/fields.py:183 newforms/fields.py:212
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Ensure this value is greater than or equal to %s."
|
msgid "Ensure this value is greater than or equal to %s."
|
||||||
msgstr "Upewnij się, że ta wartość jest większa lub równa %s."
|
msgstr "Upewnij się, że ta wartość jest większa lub równa %s."
|
||||||
|
|
||||||
#: newforms/fields.py:180 newforms/fields.py:209
|
#: newforms/fields.py:181 newforms/fields.py:210
|
||||||
msgid "Enter a number."
|
msgid "Enter a number."
|
||||||
msgstr "Wpisz liczbę."
|
msgstr "Wpisz liczbę."
|
||||||
|
|
||||||
#: newforms/fields.py:212
|
#: newforms/fields.py:213
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Ensure that there are no more than %s digits in total."
|
msgid "Ensure that there are no more than %s digits in total."
|
||||||
msgstr "Upewnij się, że jest nie więcej niż %s cyfr."
|
msgstr "Upewnij się, że jest nie więcej niż %s cyfr."
|
||||||
|
|
||||||
#: newforms/fields.py:213
|
#: newforms/fields.py:214
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Ensure that there are no more than %s decimal places."
|
msgid "Ensure that there are no more than %s decimal places."
|
||||||
msgstr "Upewnij się, że jest nie więcej niż %s miejsc po przecinku."
|
msgstr "Upewnij się, że jest nie więcej niż %s miejsc po przecinku."
|
||||||
|
|
||||||
#: newforms/fields.py:214
|
#: newforms/fields.py:215
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Ensure that there are no more than %s digits before the decimal point."
|
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."
|
msgstr "Upewnij się, że jest nie więcej niż %s miejsc przed przecinkiem."
|
||||||
|
|
||||||
#: newforms/fields.py:262 newforms/fields.py:723
|
#: newforms/fields.py:263 newforms/fields.py:751
|
||||||
msgid "Enter a valid date."
|
msgid "Enter a valid date."
|
||||||
msgstr "Wpisz poprawną datę."
|
msgstr "Wpisz poprawną datę."
|
||||||
|
|
||||||
#: newforms/fields.py:295 newforms/fields.py:724
|
#: newforms/fields.py:296 newforms/fields.py:752
|
||||||
msgid "Enter a valid time."
|
msgid "Enter a valid time."
|
||||||
msgstr "Wpisz poprawną godzinę."
|
msgstr "Wpisz poprawną godzinę."
|
||||||
|
|
||||||
#: newforms/fields.py:334
|
#: newforms/fields.py:335
|
||||||
msgid "Enter a valid date/time."
|
msgid "Enter a valid date/time."
|
||||||
msgstr "Wpisz poprawną datę/godzinę."
|
msgstr "Wpisz poprawną datę/godzinę."
|
||||||
|
|
||||||
#: newforms/fields.py:433
|
#: newforms/fields.py:434
|
||||||
msgid "No file was submitted."
|
msgid "No file was submitted."
|
||||||
msgstr "Żaden plik nie został przesłany."
|
msgstr "Żaden plik nie został przesłany."
|
||||||
|
|
||||||
#: newforms/fields.py:434 oldforms/__init__.py:689
|
#: newforms/fields.py:435 oldforms/__init__.py:689
|
||||||
msgid "The submitted file is empty."
|
msgid "The submitted file is empty."
|
||||||
msgstr "Wysłany plik jest pusty."
|
msgstr "Wysłany plik jest pusty."
|
||||||
|
|
||||||
#: newforms/fields.py:496
|
#: newforms/fields.py:497
|
||||||
msgid "Enter a valid URL."
|
msgid "Enter a valid URL."
|
||||||
msgstr "Wpisz poprawny URL."
|
msgstr "Wpisz poprawny URL."
|
||||||
|
|
||||||
#: newforms/fields.py:497
|
#: newforms/fields.py:498
|
||||||
msgid "This URL appears to be a broken link."
|
msgid "This URL appears to be a broken link."
|
||||||
msgstr "Ten odnośnik jest nieprawidłowy."
|
msgstr "Ten odnośnik jest nieprawidłowy."
|
||||||
|
|
||||||
#: newforms/fields.py:559 newforms/models.py:317
|
#: newforms/fields.py:560 newforms/models.py:299
|
||||||
msgid "Select a valid choice. That choice is not one of the available choices."
|
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."
|
msgstr "Wybierz poprawną wartość. Podana nie jest jednym z dostępnych wyborów."
|
||||||
|
|
||||||
#: newforms/fields.py:598
|
#: newforms/fields.py:599
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Select a valid choice. %(value)s is not one of the available choices."
|
msgid "Select a valid choice. %(value)s is not one of the available choices."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Wybierz poprawną wartość. %(value)s nie jest jednym z dostępnych wyborów."
|
"Wybierz poprawną wartość. %(value)s nie jest jednym z dostępnych wyborów."
|
||||||
|
|
||||||
#: newforms/fields.py:599 newforms/fields.py:661 newforms/models.py:377
|
#: newforms/fields.py:600 newforms/fields.py:662 newforms/models.py:371
|
||||||
msgid "Enter a list of values."
|
msgid "Enter a list of values."
|
||||||
msgstr "Podaj listę wartości."
|
msgstr "Podaj listę wartości."
|
||||||
|
|
||||||
#: newforms/fields.py:752
|
#: newforms/fields.py:780
|
||||||
msgid "Enter a valid IPv4 address."
|
msgid "Enter a valid IPv4 address."
|
||||||
msgstr "Wprowadź poprawny adres IPv4."
|
msgstr "Wprowadź poprawny adres IPv4."
|
||||||
|
|
||||||
#: newforms/models.py:378
|
#: newforms/models.py:372
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Select a valid choice. %s is not one of the available choices."
|
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."
|
msgstr "Wybierz poprawną wartość. %s nie jest jednym z dostępnych wyborów."
|
||||||
@ -4068,11 +4086,11 @@ msgstr "Proszę wpisać liczbę dodatnią."
|
|||||||
msgid "Enter a whole number between 0 and 32,767."
|
msgid "Enter a whole number between 0 and 32,767."
|
||||||
msgstr "Proszę wpisać liczbę całkowitą z zakresu od 0 do 32 767"
|
msgstr "Proszę wpisać liczbę całkowitą z zakresu od 0 do 32 767"
|
||||||
|
|
||||||
#: template/defaultfilters.py:691
|
#: template/defaultfilters.py:698
|
||||||
msgid "yes,no,maybe"
|
msgid "yes,no,maybe"
|
||||||
msgstr "tak,nie,może"
|
msgstr "tak,nie,może"
|
||||||
|
|
||||||
#: template/defaultfilters.py:722
|
#: template/defaultfilters.py:729
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(size)d byte"
|
msgid "%(size)d byte"
|
||||||
msgid_plural "%(size)d bytes"
|
msgid_plural "%(size)d bytes"
|
||||||
@ -4080,17 +4098,17 @@ msgstr[0] "%(size)d bajt"
|
|||||||
msgstr[1] "%(size)d bajty"
|
msgstr[1] "%(size)d bajty"
|
||||||
msgstr[2] "%(size)d bajtów"
|
msgstr[2] "%(size)d bajtów"
|
||||||
|
|
||||||
#: template/defaultfilters.py:724
|
#: template/defaultfilters.py:731
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%.1f KB"
|
msgid "%.1f KB"
|
||||||
msgstr "%.1f KB"
|
msgstr "%.1f KB"
|
||||||
|
|
||||||
#: template/defaultfilters.py:726
|
#: template/defaultfilters.py:733
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%.1f MB"
|
msgid "%.1f MB"
|
||||||
msgstr "%.1f MB"
|
msgstr "%.1f MB"
|
||||||
|
|
||||||
#: template/defaultfilters.py:727
|
#: template/defaultfilters.py:734
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%.1f GB"
|
msgid "%.1f GB"
|
||||||
msgstr "%.1f GB"
|
msgstr "%.1f GB"
|
||||||
@ -4359,23 +4377,23 @@ msgstr "%(number)d %(type)s"
|
|||||||
msgid ", %(number)d %(type)s"
|
msgid ", %(number)d %(type)s"
|
||||||
msgstr ", %(number)d %(type)s"
|
msgstr ", %(number)d %(type)s"
|
||||||
|
|
||||||
#: utils/translation/trans_real.py:404
|
#: utils/translation/trans_real.py:403
|
||||||
msgid "DATE_FORMAT"
|
msgid "DATE_FORMAT"
|
||||||
msgstr "Y-m-d"
|
msgstr "Y-m-d"
|
||||||
|
|
||||||
#: utils/translation/trans_real.py:405
|
#: utils/translation/trans_real.py:404
|
||||||
msgid "DATETIME_FORMAT"
|
msgid "DATETIME_FORMAT"
|
||||||
msgstr "Y-m-d H:i:s"
|
msgstr "Y-m-d H:i:s"
|
||||||
|
|
||||||
#: utils/translation/trans_real.py:406
|
#: utils/translation/trans_real.py:405
|
||||||
msgid "TIME_FORMAT"
|
msgid "TIME_FORMAT"
|
||||||
msgstr "H:i:s"
|
msgstr "H:i:s"
|
||||||
|
|
||||||
#: utils/translation/trans_real.py:422
|
#: utils/translation/trans_real.py:421
|
||||||
msgid "YEAR_MONTH_FORMAT"
|
msgid "YEAR_MONTH_FORMAT"
|
||||||
msgstr "Y-m"
|
msgstr "Y-m"
|
||||||
|
|
||||||
#: utils/translation/trans_real.py:423
|
#: utils/translation/trans_real.py:422
|
||||||
msgid "MONTH_DAY_FORMAT"
|
msgid "MONTH_DAY_FORMAT"
|
||||||
msgstr "m-d"
|
msgstr "m-d"
|
||||||
|
|
||||||
@ -4394,6 +4412,9 @@ msgstr "%(verbose_name)s zostało pomyślnie zmienione."
|
|||||||
msgid "The %(verbose_name)s was deleted."
|
msgid "The %(verbose_name)s was deleted."
|
||||||
msgstr "%(verbose_name)s zostało usunięte."
|
msgstr "%(verbose_name)s zostało usunięte."
|
||||||
|
|
||||||
|
#~ msgid "Gaeilge"
|
||||||
|
#~ msgstr "Gaelicki"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "Enter a postcode. A space is required between the two postcode parts."
|
#~ "Enter a postcode. A space is required between the two postcode parts."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -8,8 +8,8 @@ msgstr ""
|
|||||||
"Project-Id-Version: Django\n"
|
"Project-Id-Version: Django\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2006-05-16 10:10+0200\n"
|
"POT-Creation-Date: 2006-05-16 10:10+0200\n"
|
||||||
"PO-Revision-Date: 2007-07-05 12:44+0800\n"
|
"PO-Revision-Date: 2008-04-02 11:43+0800\n"
|
||||||
"Last-Translator: limodou <limodou@gmail.com>\n"
|
"Last-Translator: hutuworm <hutuworm@gmail.com>\n"
|
||||||
"Language-Team: Simplified Chinese <limodou@gmail.com>\n"
|
"Language-Team: Simplified Chinese <limodou@gmail.com>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
@ -66,7 +66,7 @@ msgstr "%(optname)s 带有 %(fieldname)s 已经存在。"
|
|||||||
#: newforms/fields.py:463
|
#: newforms/fields.py:463
|
||||||
#: newforms/models.py:178
|
#: newforms/models.py:178
|
||||||
msgid "This field is required."
|
msgid "This field is required."
|
||||||
msgstr "这个字段是必输项。"
|
msgstr "这个字段是必填项。"
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:367
|
#: db/models/fields/__init__.py:367
|
||||||
msgid "This value must be an integer."
|
msgid "This value must be an integer."
|
||||||
@ -443,19 +443,19 @@ msgstr "十二月"
|
|||||||
|
|
||||||
#: utils/dateformat.py:40
|
#: utils/dateformat.py:40
|
||||||
msgid "p.m."
|
msgid "p.m."
|
||||||
msgstr ""
|
msgstr "p.m."
|
||||||
|
|
||||||
#: utils/dateformat.py:41
|
#: utils/dateformat.py:41
|
||||||
msgid "a.m."
|
msgid "a.m."
|
||||||
msgstr ""
|
msgstr "a.m."
|
||||||
|
|
||||||
#: utils/dateformat.py:46
|
#: utils/dateformat.py:46
|
||||||
msgid "PM"
|
msgid "PM"
|
||||||
msgstr ""
|
msgstr "PM"
|
||||||
|
|
||||||
#: utils/dateformat.py:47
|
#: utils/dateformat.py:47
|
||||||
msgid "AM"
|
msgid "AM"
|
||||||
msgstr ""
|
msgstr "AM"
|
||||||
|
|
||||||
#: utils/dateformat.py:95
|
#: utils/dateformat.py:95
|
||||||
msgid "midnight"
|
msgid "midnight"
|
||||||
@ -667,7 +667,7 @@ msgstr "京都"
|
|||||||
|
|
||||||
#: contrib/localflavor/jp/jp_prefectures.py:30
|
#: contrib/localflavor/jp/jp_prefectures.py:30
|
||||||
msgid "Osaka"
|
msgid "Osaka"
|
||||||
msgstr " 大坂"
|
msgstr "大坂"
|
||||||
|
|
||||||
#: contrib/localflavor/jp/jp_prefectures.py:31
|
#: contrib/localflavor/jp/jp_prefectures.py:31
|
||||||
msgid "Hyogo"
|
msgid "Hyogo"
|
||||||
@ -800,7 +800,7 @@ msgstr "黑森州"
|
|||||||
|
|
||||||
#: contrib/localflavor/de/de_states.py:12
|
#: contrib/localflavor/de/de_states.py:12
|
||||||
msgid "Mecklenburg-Western Pomerania"
|
msgid "Mecklenburg-Western Pomerania"
|
||||||
msgstr ""
|
msgstr "梅克伦堡-西部米拉尼亚"
|
||||||
|
|
||||||
#: contrib/localflavor/de/de_states.py:13
|
#: contrib/localflavor/de/de_states.py:13
|
||||||
msgid "Lower Saxony"
|
msgid "Lower Saxony"
|
||||||
@ -812,7 +812,7 @@ msgstr "北莱茵-威斯特法伦州"
|
|||||||
|
|
||||||
#: contrib/localflavor/de/de_states.py:15
|
#: contrib/localflavor/de/de_states.py:15
|
||||||
msgid "Rhineland-Palatinate"
|
msgid "Rhineland-Palatinate"
|
||||||
msgstr ""
|
msgstr "莱茵河法耳茨地区"
|
||||||
|
|
||||||
#: contrib/localflavor/de/de_states.py:16
|
#: contrib/localflavor/de/de_states.py:16
|
||||||
msgid "Saarland"
|
msgid "Saarland"
|
||||||
@ -824,7 +824,7 @@ msgstr "萨克森"
|
|||||||
|
|
||||||
#: contrib/localflavor/de/de_states.py:18
|
#: contrib/localflavor/de/de_states.py:18
|
||||||
msgid "Saxony-Anhalt"
|
msgid "Saxony-Anhalt"
|
||||||
msgstr ""
|
msgstr "萨克森-安哈尔特"
|
||||||
|
|
||||||
#: contrib/localflavor/de/de_states.py:19
|
#: contrib/localflavor/de/de_states.py:19
|
||||||
msgid "Schleswig-Holstein"
|
msgid "Schleswig-Holstein"
|
||||||
@ -1025,19 +1025,19 @@ msgstr "消息"
|
|||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:17
|
#: contrib/humanize/templatetags/humanize.py:17
|
||||||
msgid "th"
|
msgid "th"
|
||||||
msgstr ""
|
msgstr "th"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:17
|
#: contrib/humanize/templatetags/humanize.py:17
|
||||||
msgid "st"
|
msgid "st"
|
||||||
msgstr ""
|
msgstr "st"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:17
|
#: contrib/humanize/templatetags/humanize.py:17
|
||||||
msgid "nd"
|
msgid "nd"
|
||||||
msgstr ""
|
msgstr "nd"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:17
|
#: contrib/humanize/templatetags/humanize.py:17
|
||||||
msgid "rd"
|
msgid "rd"
|
||||||
msgstr ""
|
msgstr "rd"
|
||||||
|
|
||||||
#: contrib/humanize/templatetags/humanize.py:47
|
#: contrib/humanize/templatetags/humanize.py:47
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -1465,7 +1465,7 @@ msgid ""
|
|||||||
"\n"
|
"\n"
|
||||||
"%(text)s"
|
"%(text)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"此评论由一个肤浅的用户张贴:\n"
|
"此评论由一个粗率的用户张贴:\n"
|
||||||
"\n"
|
"\n"
|
||||||
"%(text)s"
|
"%(text)s"
|
||||||
|
|
||||||
@ -1477,7 +1477,7 @@ msgstr "只允许张贴"
|
|||||||
#: contrib/comments/views/comments.py:192
|
#: contrib/comments/views/comments.py:192
|
||||||
#: contrib/comments/views/comments.py:284
|
#: contrib/comments/views/comments.py:284
|
||||||
msgid "One or more of the required fields wasn't submitted"
|
msgid "One or more of the required fields wasn't submitted"
|
||||||
msgstr "一个或多个必输字段没有被提交"
|
msgstr "一个或多个必填字段没有被提交"
|
||||||
|
|
||||||
#: contrib/comments/views/comments.py:196
|
#: contrib/comments/views/comments.py:196
|
||||||
#: contrib/comments/views/comments.py:286
|
#: contrib/comments/views/comments.py:286
|
||||||
|
@ -22,7 +22,7 @@ def paginator_number(cl,i):
|
|||||||
elif i == cl.page_num:
|
elif i == cl.page_num:
|
||||||
return mark_safe(u'<span class="this-page">%d</span> ' % (i+1))
|
return mark_safe(u'<span class="this-page">%d</span> ' % (i+1))
|
||||||
else:
|
else:
|
||||||
return mark_safe(u'<a href="%s"%s>%d</a> ' % (cl.get_query_string({PAGE_VAR: i}), (i == cl.paginator.pages-1 and ' class="end"' or ''), i+1))
|
return mark_safe(u'<a href="%s"%s>%d</a> ' % (cl.get_query_string({PAGE_VAR: i}), (i == cl.paginator.num_pages-1 and ' class="end"' or ''), i+1))
|
||||||
paginator_number = register.simple_tag(paginator_number)
|
paginator_number = register.simple_tag(paginator_number)
|
||||||
|
|
||||||
def pagination(cl):
|
def pagination(cl):
|
||||||
@ -37,8 +37,8 @@ def pagination(cl):
|
|||||||
|
|
||||||
# If there are 10 or fewer pages, display links to every page.
|
# If there are 10 or fewer pages, display links to every page.
|
||||||
# Otherwise, do some fancy
|
# Otherwise, do some fancy
|
||||||
if paginator.pages <= 10:
|
if paginator.num_pages <= 10:
|
||||||
page_range = range(paginator.pages)
|
page_range = range(paginator.num_pages)
|
||||||
else:
|
else:
|
||||||
# Insert "smart" pagination links, so that there are always ON_ENDS
|
# Insert "smart" pagination links, so that there are always ON_ENDS
|
||||||
# links at either end of the list of pages, and there are always
|
# links at either end of the list of pages, and there are always
|
||||||
@ -50,12 +50,12 @@ def pagination(cl):
|
|||||||
page_range.extend(range(page_num - ON_EACH_SIDE, page_num + 1))
|
page_range.extend(range(page_num - ON_EACH_SIDE, page_num + 1))
|
||||||
else:
|
else:
|
||||||
page_range.extend(range(0, page_num + 1))
|
page_range.extend(range(0, page_num + 1))
|
||||||
if page_num < (paginator.pages - ON_EACH_SIDE - ON_ENDS - 1):
|
if page_num < (paginator.num_pages - ON_EACH_SIDE - ON_ENDS - 1):
|
||||||
page_range.extend(range(page_num + 1, page_num + ON_EACH_SIDE + 1))
|
page_range.extend(range(page_num + 1, page_num + ON_EACH_SIDE + 1))
|
||||||
page_range.append(DOT)
|
page_range.append(DOT)
|
||||||
page_range.extend(range(paginator.pages - ON_ENDS, paginator.pages))
|
page_range.extend(range(paginator.num_pages - ON_ENDS, paginator.num_pages))
|
||||||
else:
|
else:
|
||||||
page_range.extend(range(page_num + 1, paginator.pages))
|
page_range.extend(range(page_num + 1, paginator.num_pages))
|
||||||
|
|
||||||
need_show_all_link = cl.can_show_all and not cl.show_all and cl.multi_page
|
need_show_all_link = cl.can_show_all and not cl.show_all and cl.multi_page
|
||||||
return {
|
return {
|
||||||
|
@ -5,7 +5,7 @@ from django.contrib.admin.views.decorators import staff_member_required
|
|||||||
from django.views.decorators.cache import never_cache
|
from django.views.decorators.cache import never_cache
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.core.exceptions import ImproperlyConfigured, ObjectDoesNotExist, PermissionDenied
|
from django.core.exceptions import ImproperlyConfigured, ObjectDoesNotExist, PermissionDenied
|
||||||
from django.core.paginator import ObjectPaginator, InvalidPage
|
from django.core.paginator import QuerySetPaginator, InvalidPage
|
||||||
from django.shortcuts import get_object_or_404, render_to_response
|
from django.shortcuts import get_object_or_404, render_to_response
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.db.models.query import handle_legacy_orderlist, QuerySet
|
from django.db.models.query import handle_legacy_orderlist, QuerySet
|
||||||
@ -611,11 +611,11 @@ class ChangeList(object):
|
|||||||
return mark_safe('?' + '&'.join([u'%s=%s' % (k, v) for k, v in p.items()]).replace(' ', '%20'))
|
return mark_safe('?' + '&'.join([u'%s=%s' % (k, v) for k, v in p.items()]).replace(' ', '%20'))
|
||||||
|
|
||||||
def get_results(self, request):
|
def get_results(self, request):
|
||||||
paginator = ObjectPaginator(self.query_set, self.lookup_opts.admin.list_per_page)
|
paginator = QuerySetPaginator(self.query_set, self.lookup_opts.admin.list_per_page)
|
||||||
|
|
||||||
# Get the number of objects, with admin filters applied.
|
# Get the number of objects, with admin filters applied.
|
||||||
try:
|
try:
|
||||||
result_count = paginator.hits
|
result_count = paginator.count
|
||||||
# Naked except! Because we don't have any other way of validating
|
# Naked except! Because we don't have any other way of validating
|
||||||
# "params". They might be invalid if the keyword arguments are
|
# "params". They might be invalid if the keyword arguments are
|
||||||
# incorrect, or if the values are not in the correct type (which would
|
# incorrect, or if the values are not in the correct type (which would
|
||||||
@ -640,7 +640,7 @@ class ChangeList(object):
|
|||||||
result_list = list(self.query_set)
|
result_list = list(self.query_set)
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
result_list = paginator.get_page(self.page_num)
|
result_list = paginator.page(self.page_num+1).object_list
|
||||||
except InvalidPage:
|
except InvalidPage:
|
||||||
result_list = ()
|
result_list = ()
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ from django.db import models
|
|||||||
from django.contrib.sites.models import Site
|
from django.contrib.sites.models import Site
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class FlatPage(models.Model):
|
class FlatPage(models.Model):
|
||||||
url = models.CharField(_('URL'), max_length=100, validator_list=[validators.isAlphaNumericURL], db_index=True,
|
url = models.CharField(_('URL'), max_length=100, validator_list=[validators.isAlphaNumericURL], db_index=True,
|
||||||
help_text=_("Example: '/about/contact/'. Make sure to have leading and trailing slashes."))
|
help_text=_("Example: '/about/contact/'. Make sure to have leading and trailing slashes."))
|
||||||
@ -13,15 +14,17 @@ class FlatPage(models.Model):
|
|||||||
help_text=_("Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."))
|
help_text=_("Example: 'flatpages/contact_page.html'. If this isn't provided, the system will use 'flatpages/default.html'."))
|
||||||
registration_required = models.BooleanField(_('registration required'), help_text=_("If this is checked, only logged-in users will be able to view the page."))
|
registration_required = models.BooleanField(_('registration required'), help_text=_("If this is checked, only logged-in users will be able to view the page."))
|
||||||
sites = models.ManyToManyField(Site)
|
sites = models.ManyToManyField(Site)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
db_table = 'django_flatpage'
|
db_table = 'django_flatpage'
|
||||||
verbose_name = _('flat page')
|
verbose_name = _('flat page')
|
||||||
verbose_name_plural = _('flat pages')
|
verbose_name_plural = _('flat pages')
|
||||||
ordering = ('url',)
|
ordering = ('url',)
|
||||||
|
|
||||||
class Admin:
|
class Admin:
|
||||||
fields = (
|
fields = (
|
||||||
(None, {'fields': ('url', 'title', 'content', 'sites')}),
|
(None, {'fields': ('url', 'title', 'content', 'sites')}),
|
||||||
('Advanced options', {'classes': 'collapse', 'fields': ('enable_comments', 'registration_required', 'template_name')}),
|
(_('Advanced options'), {'classes': 'collapse', 'fields': ('enable_comments', 'registration_required', 'template_name')}),
|
||||||
)
|
)
|
||||||
list_filter = ('sites',)
|
list_filter = ('sites',)
|
||||||
search_fields = ('url', 'title')
|
search_fields = ('url', 'title')
|
||||||
|
@ -294,8 +294,14 @@ def sql_model_create(model, style, known_models=set()):
|
|||||||
style.SQL_COLTYPE(models.IntegerField().db_type()) + ' ' + \
|
style.SQL_COLTYPE(models.IntegerField().db_type()) + ' ' + \
|
||||||
style.SQL_KEYWORD('NULL'))
|
style.SQL_KEYWORD('NULL'))
|
||||||
for field_constraints in opts.unique_together:
|
for field_constraints in opts.unique_together:
|
||||||
table_output.append(style.SQL_KEYWORD('UNIQUE') + ' (%s)' % \
|
constraint_output = [style.SQL_KEYWORD('UNIQUE')]
|
||||||
|
constraint_output.append('(%s)' % \
|
||||||
", ".join([style.SQL_FIELD(qn(opts.get_field(f).column)) for f in field_constraints]))
|
", ".join([style.SQL_FIELD(qn(opts.get_field(f).column)) for f in field_constraints]))
|
||||||
|
if opts.db_tablespace and connection.features.supports_tablespaces \
|
||||||
|
and connection.features.autoindexes_primary_keys:
|
||||||
|
constraint_output.append(connection.ops.tablespace_sql(
|
||||||
|
opts.db_tablespace, inline=True))
|
||||||
|
table_output.append(' '.join(constraint_output))
|
||||||
|
|
||||||
full_statement = [style.SQL_KEYWORD('CREATE TABLE') + ' ' + style.SQL_TABLE(qn(opts.db_table)) + ' (']
|
full_statement = [style.SQL_KEYWORD('CREATE TABLE') + ' ' + style.SQL_TABLE(qn(opts.db_table)) + ' (']
|
||||||
for i, line in enumerate(table_output): # Combine and add commas.
|
for i, line in enumerate(table_output): # Combine and add commas.
|
||||||
|
@ -1,112 +0,0 @@
|
|||||||
"""
|
|
||||||
ADO MSSQL database backend for Django.
|
|
||||||
|
|
||||||
Requires adodbapi 2.0.1: http://adodbapi.sourceforge.net/
|
|
||||||
"""
|
|
||||||
|
|
||||||
from django.db.backends import BaseDatabaseWrapper, BaseDatabaseFeatures, BaseDatabaseOperations, util
|
|
||||||
try:
|
|
||||||
import adodbapi as Database
|
|
||||||
except ImportError, e:
|
|
||||||
from django.core.exceptions import ImproperlyConfigured
|
|
||||||
raise ImproperlyConfigured("Error loading adodbapi module: %s" % e)
|
|
||||||
import datetime
|
|
||||||
try:
|
|
||||||
import mx
|
|
||||||
except ImportError:
|
|
||||||
mx = None
|
|
||||||
|
|
||||||
DatabaseError = Database.DatabaseError
|
|
||||||
IntegrityError = Database.IntegrityError
|
|
||||||
|
|
||||||
# We need to use a special Cursor class because adodbapi expects question-mark
|
|
||||||
# param style, but Django expects "%s". This cursor converts question marks to
|
|
||||||
# format-string style.
|
|
||||||
class Cursor(Database.Cursor):
|
|
||||||
def executeHelper(self, operation, isStoredProcedureCall, parameters=None):
|
|
||||||
if parameters is not None and "%s" in operation:
|
|
||||||
operation = operation.replace("%s", "?")
|
|
||||||
Database.Cursor.executeHelper(self, operation, isStoredProcedureCall, parameters)
|
|
||||||
|
|
||||||
class Connection(Database.Connection):
|
|
||||||
def cursor(self):
|
|
||||||
return Cursor(self)
|
|
||||||
Database.Connection = Connection
|
|
||||||
|
|
||||||
origCVtoP = Database.convertVariantToPython
|
|
||||||
def variantToPython(variant, adType):
|
|
||||||
if type(variant) == bool and adType == 11:
|
|
||||||
return variant # bool not 1/0
|
|
||||||
res = origCVtoP(variant, adType)
|
|
||||||
if mx is not None and type(res) == mx.DateTime.mxDateTime.DateTimeType:
|
|
||||||
# Convert ms.DateTime objects to Python datetime.datetime objects.
|
|
||||||
tv = list(res.tuple()[:7])
|
|
||||||
tv[-2] = int(tv[-2])
|
|
||||||
return datetime.datetime(*tuple(tv))
|
|
||||||
if type(res) == float and str(res)[-2:] == ".0":
|
|
||||||
return int(res) # If float but int, then int.
|
|
||||||
return res
|
|
||||||
Database.convertVariantToPython = variantToPython
|
|
||||||
|
|
||||||
class DatabaseFeatures(BaseDatabaseFeatures):
|
|
||||||
supports_tablespaces = True
|
|
||||||
|
|
||||||
class DatabaseOperations(BaseDatabaseOperations):
|
|
||||||
def date_extract_sql(self, lookup_type, field_name):
|
|
||||||
return "DATEPART(%s, %s)" % (lookup_type, field_name)
|
|
||||||
|
|
||||||
def date_trunc_sql(self, lookup_type, field_name):
|
|
||||||
if lookup_type == 'year':
|
|
||||||
return "Convert(datetime, Convert(varchar, DATEPART(year, %s)) + '/01/01')" % field_name
|
|
||||||
if lookup_type == 'month':
|
|
||||||
return "Convert(datetime, Convert(varchar, DATEPART(year, %s)) + '/' + Convert(varchar, DATEPART(month, %s)) + '/01')" % (field_name, field_name)
|
|
||||||
if lookup_type == 'day':
|
|
||||||
return "Convert(datetime, Convert(varchar(12), %s))" % field_name
|
|
||||||
|
|
||||||
def deferrable_sql(self):
|
|
||||||
return " DEFERRABLE INITIALLY DEFERRED"
|
|
||||||
|
|
||||||
def last_insert_id(self, cursor, table_name, pk_name):
|
|
||||||
cursor.execute("SELECT %s FROM %s WHERE %s = @@IDENTITY" % (pk_name, table_name, pk_name))
|
|
||||||
return cursor.fetchone()[0]
|
|
||||||
|
|
||||||
def quote_name(self, name):
|
|
||||||
if name.startswith('[') and name.endswith(']'):
|
|
||||||
return name # Quoting once is enough.
|
|
||||||
return '[%s]' % name
|
|
||||||
|
|
||||||
def random_function_sql(self):
|
|
||||||
return 'RAND()'
|
|
||||||
|
|
||||||
def tablespace_sql(self, tablespace, inline=False):
|
|
||||||
return "ON %s" % self.quote_name(tablespace)
|
|
||||||
|
|
||||||
class DatabaseWrapper(BaseDatabaseWrapper):
|
|
||||||
features = DatabaseFeatures()
|
|
||||||
ops = DatabaseOperations()
|
|
||||||
operators = {
|
|
||||||
'exact': '= %s',
|
|
||||||
'iexact': 'LIKE %s',
|
|
||||||
'contains': 'LIKE %s',
|
|
||||||
'icontains': 'LIKE %s',
|
|
||||||
'gt': '> %s',
|
|
||||||
'gte': '>= %s',
|
|
||||||
'lt': '< %s',
|
|
||||||
'lte': '<= %s',
|
|
||||||
'startswith': 'LIKE %s',
|
|
||||||
'endswith': 'LIKE %s',
|
|
||||||
'istartswith': 'LIKE %s',
|
|
||||||
'iendswith': 'LIKE %s',
|
|
||||||
}
|
|
||||||
|
|
||||||
def _cursor(self, settings):
|
|
||||||
if self.connection is None:
|
|
||||||
if settings.DATABASE_NAME == '' or settings.DATABASE_USER == '':
|
|
||||||
from django.core.exceptions import ImproperlyConfigured
|
|
||||||
raise ImproperlyConfigured("You need to specify both DATABASE_NAME and DATABASE_USER in your Django settings file.")
|
|
||||||
if not settings.DATABASE_HOST:
|
|
||||||
settings.DATABASE_HOST = "127.0.0.1"
|
|
||||||
# TODO: Handle DATABASE_PORT.
|
|
||||||
conn_string = "PROVIDER=SQLOLEDB;DATA SOURCE=%s;UID=%s;PWD=%s;DATABASE=%s" % (settings.DATABASE_HOST, settings.DATABASE_USER, settings.DATABASE_PASSWORD, settings.DATABASE_NAME)
|
|
||||||
self.connection = Database.connect(conn_string)
|
|
||||||
return self.connection.cursor()
|
|
@ -1,2 +0,0 @@
|
|||||||
def runshell():
|
|
||||||
raise NotImplementedError
|
|
@ -1,26 +0,0 @@
|
|||||||
DATA_TYPES = {
|
|
||||||
'AutoField': 'int IDENTITY (1, 1)',
|
|
||||||
'BooleanField': 'bit',
|
|
||||||
'CharField': 'varchar(%(max_length)s)',
|
|
||||||
'CommaSeparatedIntegerField': 'varchar(%(max_length)s)',
|
|
||||||
'DateField': 'smalldatetime',
|
|
||||||
'DateTimeField': 'smalldatetime',
|
|
||||||
'DecimalField': 'numeric(%(max_digits)s, %(decimal_places)s)',
|
|
||||||
'FileField': 'varchar(%(max_length)s)',
|
|
||||||
'FilePathField': 'varchar(%(max_length)s)',
|
|
||||||
'FloatField': 'double precision',
|
|
||||||
'ImageField': 'varchar(%(max_length)s)',
|
|
||||||
'IntegerField': 'int',
|
|
||||||
'IPAddressField': 'char(15)',
|
|
||||||
'NullBooleanField': 'bit',
|
|
||||||
'OneToOneField': 'int',
|
|
||||||
'PhoneNumberField': 'varchar(20)',
|
|
||||||
'PositiveIntegerField': 'int CONSTRAINT [CK_int_pos_%(column)s] CHECK ([%(column)s] > 0)',
|
|
||||||
'PositiveSmallIntegerField': 'smallint CONSTRAINT [CK_smallint_pos_%(column)s] CHECK ([%(column)s] > 0)',
|
|
||||||
'SlugField': 'varchar(%(max_length)s)',
|
|
||||||
'SmallIntegerField': 'smallint',
|
|
||||||
'TextField': 'text',
|
|
||||||
'TimeField': 'time',
|
|
||||||
'USStateField': 'varchar(2)',
|
|
||||||
'NoField': None,
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
def get_table_list(cursor):
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
def get_table_description(cursor, table_name):
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
def get_relations(cursor, table_name):
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
def get_indexes(cursor, table_name):
|
|
||||||
raise NotImplementedError
|
|
||||||
|
|
||||||
DATA_TYPES_REVERSE = {}
|
|
@ -17,7 +17,8 @@ except ImportError, e:
|
|||||||
version = Database.version_info
|
version = Database.version_info
|
||||||
if (version < (1,2,1) or (version[:3] == (1, 2, 1) and
|
if (version < (1,2,1) or (version[:3] == (1, 2, 1) and
|
||||||
(len(version) < 5 or version[3] != 'final' or version[4] < 2))):
|
(len(version) < 5 or version[3] != 'final' or version[4] < 2))):
|
||||||
raise ImportError("MySQLdb-1.2.1p2 or newer is required; you have %s" % Database.__version__)
|
from django.core.exceptions import ImproperlyConfigured
|
||||||
|
raise ImproperlyConfigured("MySQLdb-1.2.1p2 or newer is required; you have %s" % Database.__version__)
|
||||||
|
|
||||||
from MySQLdb.converters import conversions
|
from MySQLdb.converters import conversions
|
||||||
from MySQLdb.constants import FIELD_TYPE
|
from MySQLdb.constants import FIELD_TYPE
|
||||||
|
@ -508,7 +508,7 @@ class ForeignKey(RelatedField, Field):
|
|||||||
|
|
||||||
if 'edit_inline_type' in kwargs:
|
if 'edit_inline_type' in kwargs:
|
||||||
import warnings
|
import warnings
|
||||||
warnings.warn("edit_inline_type is deprecated. Use edit_inline instead.")
|
warnings.warn("edit_inline_type is deprecated. Use edit_inline instead.", DeprecationWarning)
|
||||||
kwargs['edit_inline'] = kwargs.pop('edit_inline_type')
|
kwargs['edit_inline'] = kwargs.pop('edit_inline_type')
|
||||||
|
|
||||||
kwargs['rel'] = ManyToOneRel(to, to_field,
|
kwargs['rel'] = ManyToOneRel(to, to_field,
|
||||||
@ -618,7 +618,7 @@ class OneToOneField(RelatedField, IntegerField):
|
|||||||
|
|
||||||
if 'edit_inline_type' in kwargs:
|
if 'edit_inline_type' in kwargs:
|
||||||
import warnings
|
import warnings
|
||||||
warnings.warn("edit_inline_type is deprecated. Use edit_inline instead.")
|
warnings.warn("edit_inline_type is deprecated. Use edit_inline instead.", DeprecationWarning)
|
||||||
kwargs['edit_inline'] = kwargs.pop('edit_inline_type')
|
kwargs['edit_inline'] = kwargs.pop('edit_inline_type')
|
||||||
|
|
||||||
kwargs['rel'] = OneToOneRel(to, to_field,
|
kwargs['rel'] = OneToOneRel(to, to_field,
|
||||||
|
@ -82,6 +82,17 @@ function interpolate(fmt, obj, named) {
|
|||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
PluralIdx = r"""
|
||||||
|
function pluralidx(n) {
|
||||||
|
var v=%s;
|
||||||
|
if (typeof(v) == 'boolean') {
|
||||||
|
return v ? 1 : 0;
|
||||||
|
} else {
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
def null_javascript_catalog(request, domain=None, packages=None):
|
def null_javascript_catalog(request, domain=None, packages=None):
|
||||||
"""
|
"""
|
||||||
Returns "identity" versions of the JavaScript i18n functions -- i.e.,
|
Returns "identity" versions of the JavaScript i18n functions -- i.e.,
|
||||||
@ -154,7 +165,7 @@ def javascript_catalog(request, domain='djangojs', packages=None):
|
|||||||
# this should actually be a compiled function of a typical plural-form:
|
# this should actually be a compiled function of a typical plural-form:
|
||||||
# Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
|
# Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
|
||||||
plural = [el.strip() for el in plural.split(';') if el.strip().startswith('plural=')][0].split('=',1)[1]
|
plural = [el.strip() for el in plural.split(';') if el.strip().startswith('plural=')][0].split('=',1)[1]
|
||||||
src.append('function pluralidx(n) {\n return %s;\n}\n' % plural)
|
src.append(PluralIdx % plural)
|
||||||
else:
|
else:
|
||||||
src.append(SimplePlural)
|
src.append(SimplePlural)
|
||||||
csrc = []
|
csrc = []
|
||||||
|
68
docs/Makefile
Normal file
68
docs/Makefile
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# Makefile for Sphinx documentation
|
||||||
|
#
|
||||||
|
|
||||||
|
# You can set these variables from the command line.
|
||||||
|
SPHINXOPTS =
|
||||||
|
SPHINXBUILD = sphinx-build
|
||||||
|
PAPER =
|
||||||
|
|
||||||
|
# Internal variables.
|
||||||
|
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||||
|
PAPEROPT_letter = -D latex_paper_size=letter
|
||||||
|
ALLSPHINXOPTS = -d _build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||||
|
|
||||||
|
.PHONY: help clean html web htmlhelp latex changes linkcheck
|
||||||
|
|
||||||
|
help:
|
||||||
|
@echo "Please use \`make <target>' where <target> is one of"
|
||||||
|
@echo " html to make standalone HTML files"
|
||||||
|
@echo " web to make files usable by Sphinx.web"
|
||||||
|
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||||
|
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||||
|
@echo " changes to make an overview over all changed/added/deprecated items"
|
||||||
|
@echo " linkcheck to check all external links for integrity"
|
||||||
|
|
||||||
|
clean:
|
||||||
|
-rm -rf _build/*
|
||||||
|
|
||||||
|
html:
|
||||||
|
mkdir -p _build/html _build/doctrees
|
||||||
|
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) _build/html
|
||||||
|
@echo
|
||||||
|
@echo "Build finished. The HTML pages are in _build/html."
|
||||||
|
|
||||||
|
web:
|
||||||
|
mkdir -p _build/web _build/doctrees
|
||||||
|
$(SPHINXBUILD) -b web $(ALLSPHINXOPTS) _build/web
|
||||||
|
@echo
|
||||||
|
@echo "Build finished; now you can run"
|
||||||
|
@echo " python -m sphinx.web _build/web"
|
||||||
|
@echo "to start the server."
|
||||||
|
|
||||||
|
htmlhelp:
|
||||||
|
mkdir -p _build/htmlhelp _build/doctrees
|
||||||
|
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) _build/htmlhelp
|
||||||
|
@echo
|
||||||
|
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
||||||
|
".hhp project file in _build/htmlhelp."
|
||||||
|
|
||||||
|
latex:
|
||||||
|
mkdir -p _build/latex _build/doctrees
|
||||||
|
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) _build/latex
|
||||||
|
@echo
|
||||||
|
@echo "Build finished; the LaTeX files are in _build/latex."
|
||||||
|
@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
|
||||||
|
"run these through (pdf)latex."
|
||||||
|
|
||||||
|
changes:
|
||||||
|
mkdir -p _build/changes _build/doctrees
|
||||||
|
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) _build/changes
|
||||||
|
@echo
|
||||||
|
@echo "The overview file is in _build/changes."
|
||||||
|
|
||||||
|
linkcheck:
|
||||||
|
mkdir -p _build/linkcheck _build/doctrees
|
||||||
|
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) _build/linkcheck
|
||||||
|
@echo
|
||||||
|
@echo "Link check complete; look for any errors in the above output " \
|
||||||
|
"or in _build/linkcheck/output.txt."
|
@ -819,16 +819,17 @@ Django developers are currently discussing.
|
|||||||
Default permissions
|
Default permissions
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
Three basic permissions -- add, change and delete -- are automatically created
|
When ``django.contrib.auth`` is listed in your ``INSTALLED_APPS``
|
||||||
for each Django model that has a ``class Admin`` set. Behind the scenes, these
|
setting, it will ensure that three default permissions -- add, change
|
||||||
permissions are added to the ``auth_permission`` database table when you run
|
and delete -- are created for each Django model defined in one of your
|
||||||
``manage.py syncdb``.
|
installed applications.
|
||||||
|
|
||||||
Note that if your model doesn't have ``class Admin`` set when you run
|
These permissions will be created when you run ``manage.py syncdb``;
|
||||||
``syncdb``, the permissions won't be created. If you initialize your database
|
the first time you run ``syncdb`` after adding ``django.contrib.auth``
|
||||||
and add ``class Admin`` to models after the fact, you'll need to run
|
to ``INSTALLED_APPS``, the default permissions will be created for all
|
||||||
``manage.py syncdb`` again. It will create any missing permissions for
|
previously-installed models, as well as for any new models being
|
||||||
all of your installed apps.
|
installed at that time. Afterward, it will create default permissions
|
||||||
|
for new models each time you run ``manage.py syncdb``.
|
||||||
|
|
||||||
Custom permissions
|
Custom permissions
|
||||||
------------------
|
------------------
|
||||||
|
132
docs/conf.py
Normal file
132
docs/conf.py
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# Django documentation build configuration file, created by
|
||||||
|
# sphinx-quickstart on Thu Mar 27 09:06:53 2008.
|
||||||
|
#
|
||||||
|
# This file is execfile()d with the current directory set to its containing dir.
|
||||||
|
#
|
||||||
|
# The contents of this file are pickled, so don't put values in the namespace
|
||||||
|
# that aren't pickleable (module imports are okay, they're removed automatically).
|
||||||
|
#
|
||||||
|
# All configuration values have a default value; values that are commented out
|
||||||
|
# serve to show the default value.
|
||||||
|
|
||||||
|
import sys
|
||||||
|
|
||||||
|
# If your extensions are in another directory, add it here.
|
||||||
|
#sys.path.append('some/directory')
|
||||||
|
|
||||||
|
# General configuration
|
||||||
|
# ---------------------
|
||||||
|
|
||||||
|
# Add any Sphinx extension module names here, as strings. They can be extensions
|
||||||
|
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
||||||
|
#extensions = []
|
||||||
|
|
||||||
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
|
templates_path = []
|
||||||
|
|
||||||
|
# The suffix of source filenames.
|
||||||
|
source_suffix = '.txt'
|
||||||
|
|
||||||
|
# The master toctree document.
|
||||||
|
master_doc = 'index'
|
||||||
|
|
||||||
|
# General substitutions.
|
||||||
|
project = 'Django'
|
||||||
|
copyright = '2008, Django Software Foundation'
|
||||||
|
|
||||||
|
# The default replacements for |version| and |release|, also used in various
|
||||||
|
# other places throughout the built documents.
|
||||||
|
#
|
||||||
|
# The short X.Y version.
|
||||||
|
version = 'SVN'
|
||||||
|
# The full version, including alpha/beta/rc tags.
|
||||||
|
release = version
|
||||||
|
|
||||||
|
# There are two options for replacing |today|: either, you set today to some
|
||||||
|
# non-false value, then it is used:
|
||||||
|
#today = ''
|
||||||
|
# Else, today_fmt is used as the format for a strftime call.
|
||||||
|
today_fmt = '%B %d, %Y'
|
||||||
|
|
||||||
|
# List of documents that shouldn't be included in the build.
|
||||||
|
#unused_docs = []
|
||||||
|
|
||||||
|
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||||
|
add_function_parentheses = True
|
||||||
|
|
||||||
|
# If true, the current module name will be prepended to all description
|
||||||
|
# unit titles (such as .. function::).
|
||||||
|
add_module_names = False
|
||||||
|
|
||||||
|
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||||
|
# output. They are ignored by default.
|
||||||
|
show_authors = False
|
||||||
|
|
||||||
|
# The name of the Pygments (syntax highlighting) style to use.
|
||||||
|
pygments_style = 'sphinx'
|
||||||
|
|
||||||
|
|
||||||
|
# Options for HTML output
|
||||||
|
# -----------------------
|
||||||
|
|
||||||
|
# The style sheet to use for HTML and HTML Help pages. A file of that name
|
||||||
|
# must exist either in Sphinx' static/ path, or in one of the custom paths
|
||||||
|
# given in html_static_path.
|
||||||
|
html_style = 'default.css'
|
||||||
|
|
||||||
|
# Add any paths that contain custom static files (such as style sheets) here,
|
||||||
|
# relative to this directory. They are copied after the builtin static files,
|
||||||
|
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||||
|
html_static_path = []
|
||||||
|
|
||||||
|
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||||
|
# using the given strftime format.
|
||||||
|
html_last_updated_fmt = '%b %d, %Y'
|
||||||
|
|
||||||
|
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||||
|
# typographically correct entities.
|
||||||
|
html_use_smartypants = True
|
||||||
|
|
||||||
|
# Content template for the index page.
|
||||||
|
#html_index = ''
|
||||||
|
|
||||||
|
# Custom sidebar templates, maps document names to template names.
|
||||||
|
#html_sidebars = {}
|
||||||
|
|
||||||
|
# Additional templates that should be rendered to pages, maps page names to
|
||||||
|
# template names.
|
||||||
|
#html_additional_pages = {}
|
||||||
|
|
||||||
|
# If false, no module index is generated.
|
||||||
|
#html_use_modindex = True
|
||||||
|
|
||||||
|
# If true, the reST sources are included in the HTML build as _sources/<name>.
|
||||||
|
html_copy_source = True
|
||||||
|
|
||||||
|
# Output file base name for HTML help builder.
|
||||||
|
htmlhelp_basename = 'Djangodoc'
|
||||||
|
|
||||||
|
|
||||||
|
# Options for LaTeX output
|
||||||
|
# ------------------------
|
||||||
|
|
||||||
|
# The paper size ('letter' or 'a4').
|
||||||
|
#latex_paper_size = 'letter'
|
||||||
|
|
||||||
|
# The font size ('10pt', '11pt' or '12pt').
|
||||||
|
#latex_font_size = '10pt'
|
||||||
|
|
||||||
|
# Grouping the document tree into LaTeX files. List of tuples
|
||||||
|
# (source start file, target name, title, author, document class [howto/manual]).
|
||||||
|
#latex_documents = []
|
||||||
|
|
||||||
|
# Additional stuff for the LaTeX preamble.
|
||||||
|
#latex_preamble = ''
|
||||||
|
|
||||||
|
# Documents to append as an appendix to all manuals.
|
||||||
|
#latex_appendices = []
|
||||||
|
|
||||||
|
# If false, no module index is generated.
|
||||||
|
#latex_use_modindex = True
|
@ -1306,9 +1306,6 @@ SQL equivalents::
|
|||||||
Using raw strings (e.g., ``r'foo'`` instead of ``'foo'``) for passing in the
|
Using raw strings (e.g., ``r'foo'`` instead of ``'foo'``) for passing in the
|
||||||
regular expression syntax is recommended.
|
regular expression syntax is recommended.
|
||||||
|
|
||||||
Regular expression matching is not supported on the ``ado_mssql`` backend.
|
|
||||||
It will raise a ``NotImplementedError`` at runtime.
|
|
||||||
|
|
||||||
iregex
|
iregex
|
||||||
~~~~~~
|
~~~~~~
|
||||||
|
|
||||||
|
@ -789,7 +789,7 @@ JavaScript that uses strings from different applications.
|
|||||||
You can make the view dynamic by putting the packages into the URL pattern::
|
You can make the view dynamic by putting the packages into the URL pattern::
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
(r'^jsi18n/(?P<packages>\S+?)/$, 'django.views.i18n.javascript_catalog'),
|
(r'^jsi18n/(?P<packages>\S+?)/$', 'django.views.i18n.javascript_catalog'),
|
||||||
)
|
)
|
||||||
|
|
||||||
With this, you specify the packages as a list of package names delimited by '+'
|
With this, you specify the packages as a list of package names delimited by '+'
|
||||||
@ -811,24 +811,47 @@ interface to access it::
|
|||||||
|
|
||||||
document.write(gettext('this is to be translated'));
|
document.write(gettext('this is to be translated'));
|
||||||
|
|
||||||
There even is a ``ungettext`` interface and a string interpolation function::
|
There is also an ``ngettext`` interface::
|
||||||
|
|
||||||
|
var object_cnt = 1 // or 0, or 2, or 3, ...
|
||||||
|
s = ngettext('literal for the singular case',
|
||||||
|
'literal for the plural case', object_cnt);
|
||||||
|
|
||||||
|
and even a string interpolation function::
|
||||||
|
|
||||||
|
function interpolate(fmt, obj, named);
|
||||||
|
|
||||||
|
The interpolation syntax is borrowed from Python, so the ``interpolate``
|
||||||
|
function supports both positional and named interpolation:
|
||||||
|
|
||||||
|
* Positional interpolation: ``obj`` contains a JavaScript Array object
|
||||||
|
whose elements values are then sequentially interpolated in their
|
||||||
|
corresponding ``fmt`` placeholders in the same order they appear.
|
||||||
|
For example::
|
||||||
|
|
||||||
|
fmts = ngettext('There is %s object. Remaining: %s',
|
||||||
|
'There are %s objects. Remaining: %s', 11);
|
||||||
|
s = interpolate(fmts, [11, 20]);
|
||||||
|
// s is 'There are 11 objects. Remaining: 20'
|
||||||
|
|
||||||
|
* Named interpolation: This mode is selected by passing the optional
|
||||||
|
boolean ``named`` parameter as true. ``obj`` contains a JavaScript
|
||||||
|
object or associative array. For example::
|
||||||
|
|
||||||
d = {
|
d = {
|
||||||
count: 10
|
count: 10
|
||||||
|
total: 50
|
||||||
};
|
};
|
||||||
s = interpolate(ungettext('this is %(count)s object', 'this are %(count)s objects', d.count), d);
|
|
||||||
|
|
||||||
The ``interpolate`` function supports both positional interpolation and named
|
fmts = ngettext('Total: %(total)s, there is %(count)s object',
|
||||||
interpolation. So the above could have been written as::
|
'there are %(count)s of a total of %(total)s objects', d.count);
|
||||||
|
s = interpolate(fmts, d, true);
|
||||||
|
|
||||||
s = interpolate(ungettext('this is %s object', 'this are %s objects', 11), [11]);
|
You shouldn't go over the top with string interpolation, though: this is still
|
||||||
|
JavaScript, so the code has to make repeated regular-expression substitutions.
|
||||||
The interpolation syntax is borrowed from Python. You shouldn't go over the top
|
This isn't as fast as string interpolation in Python, so keep it to those
|
||||||
with string interpolation, though: this is still JavaScript, so the code will
|
cases where you really need it (for example, in conjunction with ``ngettext``
|
||||||
have to do repeated regular-expression substitutions. This isn't as fast as
|
to produce proper pluralizations).
|
||||||
string interpolation in Python, so keep it to those cases where you really
|
|
||||||
need it (for example, in conjunction with ``ungettext`` to produce proper
|
|
||||||
pluralizations).
|
|
||||||
|
|
||||||
Creating JavaScript translation catalogs
|
Creating JavaScript translation catalogs
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
128
docs/index.txt
Normal file
128
docs/index.txt
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
====================
|
||||||
|
Django Documentation
|
||||||
|
====================
|
||||||
|
|
||||||
|
The essential documentation
|
||||||
|
===========================
|
||||||
|
|
||||||
|
If you're new to Django, make sure to read the following documentation in
|
||||||
|
order.. The rest (in the "reference" section below) can be ready in any order as
|
||||||
|
you need various functionality.
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
overview
|
||||||
|
install
|
||||||
|
tutorial01
|
||||||
|
tutorial02
|
||||||
|
tutorial03
|
||||||
|
tutorial04
|
||||||
|
faq
|
||||||
|
documentation
|
||||||
|
|
||||||
|
Reference
|
||||||
|
=========
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
django-admin
|
||||||
|
model-api
|
||||||
|
db-api
|
||||||
|
transactions
|
||||||
|
templates
|
||||||
|
templates_python
|
||||||
|
newforms
|
||||||
|
modelforms
|
||||||
|
testing
|
||||||
|
sessions
|
||||||
|
cache
|
||||||
|
settings
|
||||||
|
url_dispatch
|
||||||
|
request_response
|
||||||
|
generic_views
|
||||||
|
authentication
|
||||||
|
shortcuts
|
||||||
|
unicode
|
||||||
|
pagination
|
||||||
|
serialization
|
||||||
|
i18n
|
||||||
|
middleware
|
||||||
|
custom_model_fields
|
||||||
|
databases
|
||||||
|
|
||||||
|
``django.contrib`` add-ons
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
add_ons
|
||||||
|
contenttypes
|
||||||
|
csrf
|
||||||
|
databrowse
|
||||||
|
flatpages
|
||||||
|
form_preview
|
||||||
|
form_wizard
|
||||||
|
localflavor
|
||||||
|
redirects
|
||||||
|
sites
|
||||||
|
sitemaps
|
||||||
|
syndication_feeds
|
||||||
|
webdesign
|
||||||
|
|
||||||
|
Deployment
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
modpython
|
||||||
|
fastcgi
|
||||||
|
|
||||||
|
Solving specific problems
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
apache_auth
|
||||||
|
static_files
|
||||||
|
email
|
||||||
|
legacy_databases
|
||||||
|
outputting_pdf
|
||||||
|
outputting_csv
|
||||||
|
|
||||||
|
Et cetera
|
||||||
|
---------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
design_philosophies
|
||||||
|
contributing
|
||||||
|
admin_css
|
||||||
|
api_stability
|
||||||
|
|
||||||
|
Release notes
|
||||||
|
-------------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
release_notes_0.96
|
||||||
|
release_notes_0.95
|
||||||
|
|
||||||
|
Also see the list of `backwards-incompatible changes`__ for changes made between
|
||||||
|
releases.
|
||||||
|
|
||||||
|
__ http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges
|
||||||
|
|
||||||
|
Indices and tables
|
||||||
|
==================
|
||||||
|
|
||||||
|
* :ref:`genindex`
|
||||||
|
* :ref:`modindex`
|
||||||
|
* :ref:`search`
|
||||||
|
|
@ -172,11 +172,11 @@ Installing the development version
|
|||||||
If you decide to use the latest development version of Django,
|
If you decide to use the latest development version of Django,
|
||||||
you'll want to pay close attention to `the development timeline`_,
|
you'll want to pay close attention to `the development timeline`_,
|
||||||
and you'll want to keep an eye on `the list of
|
and you'll want to keep an eye on `the list of
|
||||||
backwards-incompatible changes`_; this will help you stay on top
|
backwards-incompatible changes`_. This will help you stay on top
|
||||||
of any new features you might want to use, as well as any changes
|
of any new features you might want to use, as well as any changes
|
||||||
you'll need to make to your code when updating your copy of Django
|
you'll need to make to your code when updating your copy of Django.
|
||||||
(for stable releases, any necessary changes are documented in the
|
(For stable releases, any necessary changes are documented in the
|
||||||
release notes).
|
release notes.)
|
||||||
|
|
||||||
.. _the development timeline: http://code.djangoproject.com/timeline
|
.. _the development timeline: http://code.djangoproject.com/timeline
|
||||||
.. _the list of backwards-incompatible changes: http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges
|
.. _the list of backwards-incompatible changes: http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges
|
||||||
|
@ -236,7 +236,7 @@ works exactly the same way as any other ``newforms`` form. For
|
|||||||
example, the ``is_valid()`` method is used to check for validity, the
|
example, the ``is_valid()`` method is used to check for validity, the
|
||||||
``is_multipart()`` method is used to determine whether a form requires
|
``is_multipart()`` method is used to determine whether a form requires
|
||||||
multipart file upload (and hence whether ``request.FILES`` must be
|
multipart file upload (and hence whether ``request.FILES`` must be
|
||||||
passed to the form), etc.; see `the standard newforms documentation`_
|
passed to the form), etc. See `the standard newforms documentation`_
|
||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
.. _the standard newforms documentation: ../newforms/
|
.. _the standard newforms documentation: ../newforms/
|
||||||
|
@ -1549,12 +1549,14 @@ additional required argument:
|
|||||||
``ModelChoiceField``
|
``ModelChoiceField``
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Allows the selection of a single model object, suitable for representing a
|
Allows the selection of a single model object, suitable for
|
||||||
foreign key. The method receives an object as an argument and must return a
|
representing a foreign key.
|
||||||
string to represent it.
|
|
||||||
|
|
||||||
The labels for the choice field call the ``__unicode__`` method of the model to
|
The ``__unicode__`` method of the model will be called to generate
|
||||||
generate string representations. To provide custom labels, subclass ``ModelChoiceField`` and override ``label_for_model``::
|
string representations of the objects for use in the field's choices;
|
||||||
|
to provide customized representations, subclass ``ModelChoiceField``
|
||||||
|
and override ``label_for_model``. This method will receive model
|
||||||
|
object, and should return a string suitable for representing it::
|
||||||
|
|
||||||
class MyModelChoiceField(ModelChoiceField):
|
class MyModelChoiceField(ModelChoiceField):
|
||||||
def label_from_instance(self, obj):
|
def label_from_instance(self, obj):
|
||||||
@ -1563,9 +1565,10 @@ generate string representations. To provide custom labels, subclass ``ModelChoic
|
|||||||
``ModelMultipleChoiceField``
|
``ModelMultipleChoiceField``
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Allows the selection of one or more model objects, suitable for representing a
|
Allows the selection of one or more model objects, suitable for
|
||||||
many-to-many relation. As with ``ModelChoiceField``, you can use
|
representing a many-to-many relation. As with ``ModelChoiceField``,
|
||||||
``label_from_instance`` to customize the object labels.
|
you can use ``label_from_instance`` to customize the object
|
||||||
|
representations.
|
||||||
|
|
||||||
Creating custom fields
|
Creating custom fields
|
||||||
----------------------
|
----------------------
|
||||||
|
@ -143,14 +143,13 @@ All attributes except ``session`` should be considered read-only.
|
|||||||
|
|
||||||
``urlconf``
|
``urlconf``
|
||||||
Not defined by Django itself, but will be read if other code
|
Not defined by Django itself, but will be read if other code
|
||||||
(e.g., a custom middleware class) sets it; when present, this will
|
(e.g., a custom middleware class) sets it. When present, this will
|
||||||
be used as the root URLConf for the current request, overriding
|
be used as the root URLconf for the current request, overriding
|
||||||
the ``ROOT_URLCONF`` setting. See `How Django processes a
|
the ``ROOT_URLCONF`` setting. See `How Django processes a
|
||||||
request`_ for details.
|
request`_ for details.
|
||||||
|
|
||||||
.. _How Django processes a request: ../url_dispatch/#how-django-processes-a-request
|
.. _How Django processes a request: ../url_dispatch/#how-django-processes-a-request
|
||||||
|
|
||||||
|
|
||||||
Methods
|
Methods
|
||||||
-------
|
-------
|
||||||
|
|
||||||
@ -202,9 +201,9 @@ Methods
|
|||||||
``is_ajax()``
|
``is_ajax()``
|
||||||
**New in Django development version**
|
**New in Django development version**
|
||||||
|
|
||||||
Returns ``True`` if the request was made via an XMLHttpRequest by checking
|
Returns ``True`` if the request was made via an ``XMLHttpRequest``, by checking
|
||||||
the ``HTTP_X_REQUESTED_WITH`` header for the string *'XMLHttpRequest'*. The
|
the ``HTTP_X_REQUESTED_WITH`` header for the string ``'XMLHttpRequest'``. The
|
||||||
following major Javascript libraries all send this header:
|
following major JavaScript libraries all send this header:
|
||||||
|
|
||||||
* jQuery
|
* jQuery
|
||||||
* Dojo
|
* Dojo
|
||||||
@ -213,8 +212,8 @@ Methods
|
|||||||
* Prototype
|
* Prototype
|
||||||
* YUI
|
* YUI
|
||||||
|
|
||||||
If you write your own XMLHttpRequest call (on the browser side), you will
|
If you write your own XMLHttpRequest call (on the browser side), you'll
|
||||||
have to set this header manually to use this method.
|
have to set this header manually if you want ``is_ajax()`` to work.
|
||||||
|
|
||||||
QueryDict objects
|
QueryDict objects
|
||||||
-----------------
|
-----------------
|
||||||
|
@ -279,7 +279,7 @@ Default: ``''`` (Empty string)
|
|||||||
|
|
||||||
The database backend to use. The build-in database backends are
|
The database backend to use. The build-in database backends are
|
||||||
``'postgresql_psycopg2'``, ``'postgresql'``, ``'mysql'``, ``'mysql_old'``,
|
``'postgresql_psycopg2'``, ``'postgresql'``, ``'mysql'``, ``'mysql_old'``,
|
||||||
``'sqlite3'``, ``'oracle'``, or ``'ado_mssql'``.
|
``'sqlite3'`` and ``'oracle'``.
|
||||||
|
|
||||||
In the Django development version, you can use a database backend that doesn't
|
In the Django development version, you can use a database backend that doesn't
|
||||||
ship with Django by setting ``DATABASE_ENGINE`` to a fully-qualified path (i.e.
|
ship with Django by setting ``DATABASE_ENGINE`` to a fully-qualified path (i.e.
|
||||||
|
@ -250,7 +250,7 @@ request to the URL ``/rss/beats/0613/``:
|
|||||||
will be an empty list. In our example, ``len(bits) != 1`` and an
|
will be an empty list. In our example, ``len(bits) != 1`` and an
|
||||||
``ObjectDoesNotExist`` exception will be raised, so ``/rss/beats/`` will
|
``ObjectDoesNotExist`` exception will be raised, so ``/rss/beats/`` will
|
||||||
generate a 404 page. But you can handle this case however you like. For
|
generate a 404 page. But you can handle this case however you like. For
|
||||||
example you could generate a combined feed for all beats.
|
example, you could generate a combined feed for all beats.
|
||||||
|
|
||||||
* To generate the feed's ``<title>``, ``<link>`` and ``<description>``,
|
* To generate the feed's ``<title>``, ``<link>`` and ``<description>``,
|
||||||
Django uses the ``title()``, ``link()`` and ``description()`` methods. In
|
Django uses the ``title()``, ``link()`` and ``description()`` methods. In
|
||||||
|
@ -80,7 +80,7 @@ read Python's official documentation for the details.
|
|||||||
.. admonition:: What's a **docstring**?
|
.. admonition:: What's a **docstring**?
|
||||||
|
|
||||||
A good explanation of docstrings (and some guidelines for using them
|
A good explanation of docstrings (and some guidelines for using them
|
||||||
effectively) can be found in :PEP:`257`:
|
effectively) can be found in :pep:`257`:
|
||||||
|
|
||||||
A docstring is a string literal that occurs as the first statement in
|
A docstring is a string literal that occurs as the first statement in
|
||||||
a module, function, class, or method definition. Such a docstring
|
a module, function, class, or method definition. Such a docstring
|
||||||
|
@ -39,7 +39,7 @@ A quick rundown:
|
|||||||
Django; it's just good Web development practice.
|
Django; it's just good Web development practice.
|
||||||
|
|
||||||
* ``forloop.counter`` indicates how many times the ``for`` tag has
|
* ``forloop.counter`` indicates how many times the ``for`` tag has
|
||||||
gone through its loop; for more information, see `the
|
gone through its loop. For more information, see `the
|
||||||
documentation for the "for" tag`_.
|
documentation for the "for" tag`_.
|
||||||
|
|
||||||
.. _the documentation for the "for" tag: ../templates/#for
|
.. _the documentation for the "for" tag: ../templates/#for
|
||||||
@ -266,9 +266,8 @@ from ``polls/views.py``. We don't need them anymore -- they have been replaced
|
|||||||
by generic views.
|
by generic views.
|
||||||
|
|
||||||
The ``vote()`` view is still required. However, it must be modified to match
|
The ``vote()`` view is still required. However, it must be modified to match
|
||||||
the new templates and context variables. Change the template call from
|
the new context variables. In the ``render_to_repsonse()`` call, rename the
|
||||||
``polls/detail.html`` to ``polls/poll_detail.html``, and pass ``object`` in the
|
``poll`` context variable to ``object``.
|
||||||
context instead of ``poll``.
|
|
||||||
|
|
||||||
The last thing to do is fix the URL handling to account for the use of generic
|
The last thing to do is fix the URL handling to account for the use of generic
|
||||||
views. In the vote view above, we used the ``reverse()`` function to avoid
|
views. In the vote view above, we used the ``reverse()`` function to avoid
|
||||||
|
@ -32,7 +32,7 @@ How Django processes a request
|
|||||||
When a user requests a page from your Django-powered site, this is the
|
When a user requests a page from your Django-powered site, this is the
|
||||||
algorithm the system follows to determine which Python code to execute:
|
algorithm the system follows to determine which Python code to execute:
|
||||||
|
|
||||||
1. Django determines the root URLConf module to use; ordinarily
|
1. Django determines the root URLconf module to use. Ordinarily,
|
||||||
this is the value of the ``ROOT_URLCONF`` setting in your
|
this is the value of the ``ROOT_URLCONF`` setting in your
|
||||||
`settings file`_, but if the incoming ``HttpRequest`` object
|
`settings file`_, but if the incoming ``HttpRequest`` object
|
||||||
has an attribute called ``urlconf``, its value will be used in
|
has an attribute called ``urlconf``, its value will be used in
|
||||||
|
@ -92,7 +92,7 @@ __test__ = {'API_TESTS':"""
|
|||||||
>>> Article.objects.filter(Q(headline__contains='bye'), headline__startswith='Hello')
|
>>> Article.objects.filter(Q(headline__contains='bye'), headline__startswith='Hello')
|
||||||
[<Article: Hello and goodbye>]
|
[<Article: Hello and goodbye>]
|
||||||
|
|
||||||
# Try some arg queries with operations other than get_list
|
# Try some arg queries with operations other than filter.
|
||||||
>>> Article.objects.get(Q(headline__startswith='Hello'), Q(headline__contains='bye'))
|
>>> Article.objects.get(Q(headline__startswith='Hello'), Q(headline__contains='bye'))
|
||||||
<Article: Hello and goodbye>
|
<Article: Hello and goodbye>
|
||||||
|
|
||||||
|
@ -1135,29 +1135,39 @@ u''
|
|||||||
|
|
||||||
# FilePathField ###############################################################
|
# FilePathField ###############################################################
|
||||||
|
|
||||||
|
>>> def fix_os_paths(x):
|
||||||
|
... if isinstance(x, basestring):
|
||||||
|
... return x.replace('\\', '/')
|
||||||
|
... elif isinstance(x, tuple):
|
||||||
|
... return tuple(fix_os_paths(list(x)))
|
||||||
|
... elif isinstance(x, list):
|
||||||
|
... return [fix_os_paths(y) for y in x]
|
||||||
|
... else:
|
||||||
|
... return x
|
||||||
|
...
|
||||||
>>> import os
|
>>> import os
|
||||||
>>> from django import newforms as forms
|
>>> from django import newforms as forms
|
||||||
>>> path = forms.__file__
|
>>> path = forms.__file__
|
||||||
>>> path = os.path.dirname(path) + '/'
|
>>> path = os.path.dirname(path) + '/'
|
||||||
>>> path
|
>>> fix_os_paths(path)
|
||||||
'.../django/newforms/'
|
'.../django/newforms/'
|
||||||
>>> f = forms.FilePathField(path=path)
|
>>> f = forms.FilePathField(path=path)
|
||||||
>>> f.choices.sort()
|
>>> f.choices.sort()
|
||||||
>>> f.choices
|
>>> fix_os_paths(f.choices)
|
||||||
[('.../django/newforms/__init__.py', '__init__.py'), ('.../django/newforms/__init__.pyc', '__init__.pyc'), ('.../django/newforms/fields.py', 'fields.py'), ('.../django/newforms/fields.pyc', 'fields.pyc'), ('.../django/newforms/forms.py', 'forms.py'), ('.../django/newforms/forms.pyc', 'forms.pyc'), ('.../django/newforms/models.py', 'models.py'), ('.../django/newforms/models.pyc', 'models.pyc'), ('.../django/newforms/util.py', 'util.py'), ('.../django/newforms/util.pyc', 'util.pyc'), ('.../django/newforms/widgets.py', 'widgets.py'), ('.../django/newforms/widgets.pyc', 'widgets.pyc')]
|
[('.../django/newforms/__init__.py', '__init__.py'), ('.../django/newforms/__init__.pyc', '__init__.pyc'), ('.../django/newforms/fields.py', 'fields.py'), ('.../django/newforms/fields.pyc', 'fields.pyc'), ('.../django/newforms/forms.py', 'forms.py'), ('.../django/newforms/forms.pyc', 'forms.pyc'), ('.../django/newforms/models.py', 'models.py'), ('.../django/newforms/models.pyc', 'models.pyc'), ('.../django/newforms/util.py', 'util.py'), ('.../django/newforms/util.pyc', 'util.pyc'), ('.../django/newforms/widgets.py', 'widgets.py'), ('.../django/newforms/widgets.pyc', 'widgets.pyc')]
|
||||||
>>> f.clean('fields.py')
|
>>> f.clean('fields.py')
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
ValidationError: [u'Select a valid choice. That choice is not one of the available choices.']
|
ValidationError: [u'Select a valid choice. That choice is not one of the available choices.']
|
||||||
>>> f.clean(path + 'fields.py')
|
>>> fix_os_paths(f.clean(path + 'fields.py'))
|
||||||
u'.../django/newforms/fields.py'
|
u'.../django/newforms/fields.py'
|
||||||
>>> f = forms.FilePathField(path=path, match='^.*?\.py$')
|
>>> f = forms.FilePathField(path=path, match='^.*?\.py$')
|
||||||
>>> f.choices.sort()
|
>>> f.choices.sort()
|
||||||
>>> f.choices
|
>>> fix_os_paths(f.choices)
|
||||||
[('.../django/newforms/__init__.py', '__init__.py'), ('.../django/newforms/fields.py', 'fields.py'), ('.../django/newforms/forms.py', 'forms.py'), ('.../django/newforms/models.py', 'models.py'), ('.../django/newforms/util.py', 'util.py'), ('.../django/newforms/widgets.py', 'widgets.py')]
|
[('.../django/newforms/__init__.py', '__init__.py'), ('.../django/newforms/fields.py', 'fields.py'), ('.../django/newforms/forms.py', 'forms.py'), ('.../django/newforms/models.py', 'models.py'), ('.../django/newforms/util.py', 'util.py'), ('.../django/newforms/widgets.py', 'widgets.py')]
|
||||||
>>> f = forms.FilePathField(path=path, recursive=True, match='^.*?\.py$')
|
>>> f = forms.FilePathField(path=path, recursive=True, match='^.*?\.py$')
|
||||||
>>> f.choices.sort()
|
>>> f.choices.sort()
|
||||||
>>> f.choices
|
>>> fix_os_paths(f.choices)
|
||||||
[('.../django/newforms/__init__.py', '__init__.py'), ('.../django/newforms/extras/__init__.py', 'extras/__init__.py'), ('.../django/newforms/extras/widgets.py', 'extras/widgets.py'), ('.../django/newforms/fields.py', 'fields.py'), ('.../django/newforms/forms.py', 'forms.py'), ('.../django/newforms/models.py', 'models.py'), ('.../django/newforms/util.py', 'util.py'), ('.../django/newforms/widgets.py', 'widgets.py')]
|
[('.../django/newforms/__init__.py', '__init__.py'), ('.../django/newforms/extras/__init__.py', 'extras/__init__.py'), ('.../django/newforms/extras/widgets.py', 'extras/widgets.py'), ('.../django/newforms/fields.py', 'fields.py'), ('.../django/newforms/forms.py', 'forms.py'), ('.../django/newforms/models.py', 'models.py'), ('.../django/newforms/util.py', 'util.py'), ('.../django/newforms/widgets.py', 'widgets.py')]
|
||||||
|
|
||||||
# SplitDateTimeField ##########################################################
|
# SplitDateTimeField ##########################################################
|
||||||
|
@ -26,6 +26,9 @@ class Movie(models.Model):
|
|||||||
movie_id = models.AutoField(primary_key=True)
|
movie_id = models.AutoField(primary_key=True)
|
||||||
name = models.CharField(max_length=60)
|
name = models.CharField(max_length=60)
|
||||||
|
|
||||||
|
class Party(models.Model):
|
||||||
|
when = models.DateField()
|
||||||
|
|
||||||
__test__ = {'API_TESTS': """
|
__test__ = {'API_TESTS': """
|
||||||
(NOTE: Part of the regression test here is merely parsing the model
|
(NOTE: Part of the regression test here is merely parsing the model
|
||||||
declaration. The verbose_name, in particular, did not always work.)
|
declaration. The verbose_name, in particular, did not always work.)
|
||||||
@ -51,5 +54,19 @@ u''
|
|||||||
>>> len(a4.article_text)
|
>>> len(a4.article_text)
|
||||||
5000
|
5000
|
||||||
|
|
||||||
|
# #659 regression test
|
||||||
|
>>> import datetime
|
||||||
|
>>> p = Party.objects.create(when = datetime.datetime(1999, 12, 31))
|
||||||
|
>>> p = Party.objects.create(when = datetime.datetime(1998, 12, 31))
|
||||||
|
>>> p = Party.objects.create(when = datetime.datetime(1999, 1, 1))
|
||||||
|
>>> [p.when for p in Party.objects.filter(when__month = 2)]
|
||||||
|
[]
|
||||||
|
>>> [p.when for p in Party.objects.filter(when__month = 1)]
|
||||||
|
[datetime.date(1999, 1, 1)]
|
||||||
|
>>> [p.when for p in Party.objects.filter(when__month = 12)]
|
||||||
|
[datetime.date(1999, 12, 31), datetime.date(1998, 12, 31)]
|
||||||
|
>>> [p.when for p in Party.objects.filter(when__year = 1998)]
|
||||||
|
[datetime.date(1998, 12, 31)]
|
||||||
|
|
||||||
"""
|
"""
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user