mirror of
https://github.com/django/django.git
synced 2025-07-04 01:39:20 +00:00
multi-auth: Merged to [2997]
git-svn-id: http://code.djangoproject.com/svn/django/branches/multi-auth@2998 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
681763a29c
commit
aeb807989f
2
AUTHORS
2
AUTHORS
@ -65,6 +65,7 @@ answer newbie questions, and generally made Django that much better:
|
|||||||
Robert Rock Howard <http://djangomojo.com/>
|
Robert Rock Howard <http://djangomojo.com/>
|
||||||
Jason Huggins <http://www.jrandolph.com/blog/>
|
Jason Huggins <http://www.jrandolph.com/blog/>
|
||||||
Michael Josephson <http://www.sdjournal.com/>
|
Michael Josephson <http://www.sdjournal.com/>
|
||||||
|
jpellerin@gmail.com
|
||||||
junzhang.jn@gmail.com
|
junzhang.jn@gmail.com
|
||||||
Russell Keith-Magee <freakboy@iinet.net.au>
|
Russell Keith-Magee <freakboy@iinet.net.au>
|
||||||
Garth Kidd <http://www.deadlybloodyserious.com/>
|
Garth Kidd <http://www.deadlybloodyserious.com/>
|
||||||
@ -93,6 +94,7 @@ answer newbie questions, and generally made Django that much better:
|
|||||||
oggie rob <oz.robharvey@gmail.com>
|
oggie rob <oz.robharvey@gmail.com>
|
||||||
pgross@thoughtworks.com
|
pgross@thoughtworks.com
|
||||||
phaedo <http://phaedo.cx/>
|
phaedo <http://phaedo.cx/>
|
||||||
|
phil@produxion.net
|
||||||
Gustavo Picon
|
Gustavo Picon
|
||||||
Luke Plant <http://lukeplant.me.uk/>
|
Luke Plant <http://lukeplant.me.uk/>
|
||||||
plisk
|
plisk
|
||||||
|
@ -42,6 +42,7 @@ LANGUAGES = (
|
|||||||
('el', _('Greek')),
|
('el', _('Greek')),
|
||||||
('en', _('English')),
|
('en', _('English')),
|
||||||
('es', _('Spanish')),
|
('es', _('Spanish')),
|
||||||
|
('es_AR', _('Argentinean Spanish')),
|
||||||
('fr', _('French')),
|
('fr', _('French')),
|
||||||
('gl', _('Galician')),
|
('gl', _('Galician')),
|
||||||
('hu', _('Hungarian')),
|
('hu', _('Hungarian')),
|
||||||
@ -218,12 +219,12 @@ TRANSACTIONS_MANAGED = False
|
|||||||
# this middleware classes will be applied in the order given, and in the
|
# this middleware classes will be applied in the order given, and in the
|
||||||
# response phase the middleware will be applied in reverse order.
|
# response phase the middleware will be applied in reverse order.
|
||||||
MIDDLEWARE_CLASSES = (
|
MIDDLEWARE_CLASSES = (
|
||||||
"django.contrib.sessions.middleware.SessionMiddleware",
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||||
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
# "django.middleware.http.ConditionalGetMiddleware",
|
# 'django.middleware.http.ConditionalGetMiddleware',
|
||||||
# "django.middleware.gzip.GZipMiddleware",
|
# 'django.middleware.gzip.GZipMiddleware',
|
||||||
"django.middleware.common.CommonMiddleware",
|
'django.middleware.common.CommonMiddleware',
|
||||||
"django.middleware.doc.XViewMiddleware",
|
'django.middleware.doc.XViewMiddleware',
|
||||||
)
|
)
|
||||||
|
|
||||||
############
|
############
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -18,81 +18,81 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/comments/models.py:67 contrib/comments/models.py:166
|
#: contrib/comments/models.py:67 contrib/comments/models.py:166
|
||||||
msgid "object ID"
|
msgid "object ID"
|
||||||
msgstr "ID αντικειμένου"
|
msgstr "ID αντικειμένου"
|
||||||
|
|
||||||
#: contrib/comments/models.py:68
|
#: contrib/comments/models.py:68
|
||||||
msgid "headline"
|
msgid "headline"
|
||||||
msgstr "Επικεφαλίδα"
|
msgstr "Επικεφαλίδα"
|
||||||
|
|
||||||
#: contrib/comments/models.py:69 contrib/comments/models.py:90
|
#: contrib/comments/models.py:69 contrib/comments/models.py:90
|
||||||
#: contrib/comments/models.py:167
|
#: contrib/comments/models.py:167
|
||||||
msgid "comment"
|
msgid "comment"
|
||||||
msgstr "σχόλιο"
|
msgstr "σχόλιο"
|
||||||
|
|
||||||
#: contrib/comments/models.py:70
|
#: contrib/comments/models.py:70
|
||||||
msgid "rating #1"
|
msgid "rating #1"
|
||||||
msgstr "κατάταξη #1"
|
msgstr "κατάταξη #1"
|
||||||
|
|
||||||
#: contrib/comments/models.py:71
|
#: contrib/comments/models.py:71
|
||||||
msgid "rating #2"
|
msgid "rating #2"
|
||||||
msgstr "βαθμολογία #2"
|
msgstr "βαθμολογία #2"
|
||||||
|
|
||||||
#: contrib/comments/models.py:72
|
#: contrib/comments/models.py:72
|
||||||
msgid "rating #3"
|
msgid "rating #3"
|
||||||
msgstr "βαθμολογία #3"
|
msgstr "βαθμολογία #3"
|
||||||
|
|
||||||
#: contrib/comments/models.py:73
|
#: contrib/comments/models.py:73
|
||||||
msgid "rating #4"
|
msgid "rating #4"
|
||||||
msgstr "βαθμολογία #4"
|
msgstr "βαθμολογία #4"
|
||||||
|
|
||||||
#: contrib/comments/models.py:74
|
#: contrib/comments/models.py:74
|
||||||
msgid "rating #5"
|
msgid "rating #5"
|
||||||
msgstr "βαθμολογία #5"
|
msgstr "βαθμολογία #5"
|
||||||
|
|
||||||
#: contrib/comments/models.py:75
|
#: contrib/comments/models.py:75
|
||||||
msgid "rating #6"
|
msgid "rating #6"
|
||||||
msgstr "βαθμολογία #6"
|
msgstr "βαθμολογία #6"
|
||||||
|
|
||||||
#: contrib/comments/models.py:76
|
#: contrib/comments/models.py:76
|
||||||
msgid "rating #7"
|
msgid "rating #7"
|
||||||
msgstr "βαθμολογία #7"
|
msgstr "βαθμολογία #7"
|
||||||
|
|
||||||
#: contrib/comments/models.py:77
|
#: contrib/comments/models.py:77
|
||||||
msgid "rating #8"
|
msgid "rating #8"
|
||||||
msgstr "βαθμολογία #8"
|
msgstr "βαθμολογία #8"
|
||||||
|
|
||||||
#: contrib/comments/models.py:82
|
#: contrib/comments/models.py:82
|
||||||
msgid "is valid rating"
|
msgid "is valid rating"
|
||||||
msgstr "είναι έγκυρη βαθμολογία"
|
msgstr "είναι έγκυρη βαθμολογία"
|
||||||
|
|
||||||
#: contrib/comments/models.py:83 contrib/comments/models.py:169
|
#: contrib/comments/models.py:83 contrib/comments/models.py:169
|
||||||
msgid "date/time submitted"
|
msgid "date/time submitted"
|
||||||
msgstr "ημερομηνία/ώρα υποβολής"
|
msgstr "ημερομηνία/ώρα υποβολής"
|
||||||
|
|
||||||
#: contrib/comments/models.py:84 contrib/comments/models.py:170
|
#: contrib/comments/models.py:84 contrib/comments/models.py:170
|
||||||
msgid "is public"
|
msgid "is public"
|
||||||
msgstr "είναι δημόσιο"
|
msgstr "είναι δημόσιο"
|
||||||
|
|
||||||
#: contrib/comments/models.py:85 contrib/admin/views/doc.py:289
|
#: contrib/comments/models.py:85 contrib/admin/views/doc.py:289
|
||||||
msgid "IP address"
|
msgid "IP address"
|
||||||
msgstr "IP διεύθυνση"
|
msgstr "IP διεύθυνση"
|
||||||
|
|
||||||
#: contrib/comments/models.py:86
|
#: contrib/comments/models.py:86
|
||||||
msgid "is removed"
|
msgid "is removed"
|
||||||
msgstr "είναι διεγραμμένο"
|
msgstr "είναι διεγραμμένο"
|
||||||
|
|
||||||
#: contrib/comments/models.py:86
|
#: contrib/comments/models.py:86
|
||||||
msgid ""
|
msgid ""
|
||||||
"Check this box if the comment is inappropriate. A \"This comment has been "
|
"Check this box if the comment is inappropriate. A \"This comment has been "
|
||||||
"removed\" message will be displayed instead."
|
"removed\" message will be displayed instead."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Σημειώστε αυτό το κουτί εάν το σχόλιο είναι ανάρμοστο. Ένα Αυτό το σχόλιο "
|
"Σημειώστε αυτό το κουτί εάν το σχόλιο είναι ανάρμοστο. Ένα Αυτό το σχόλιο "
|
||||||
"εσβήσθει\" μήνυμα θα εμφανιστεί αντί αυτού."
|
"εσβήσθει\" μήνυμα θα εμφανιστεί αντί αυτού."
|
||||||
|
|
||||||
#: contrib/comments/models.py:91
|
#: contrib/comments/models.py:91
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "comments"
|
msgid "comments"
|
||||||
msgstr "σχόλιο"
|
msgstr "σχόλιο"
|
||||||
|
|
||||||
#: contrib/comments/models.py:131 contrib/comments/models.py:207
|
#: contrib/comments/models.py:131 contrib/comments/models.py:207
|
||||||
msgid "Content object"
|
msgid "Content object"
|
||||||
@ -110,38 +110,38 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/comments/models.py:168
|
#: contrib/comments/models.py:168
|
||||||
msgid "person's name"
|
msgid "person's name"
|
||||||
msgstr "όνομα ατόμου"
|
msgstr "όνομα ατόμου"
|
||||||
|
|
||||||
#: contrib/comments/models.py:171
|
#: contrib/comments/models.py:171
|
||||||
msgid "ip address"
|
msgid "ip address"
|
||||||
msgstr "ip διεύθυνση"
|
msgstr "ip διεύθυνση"
|
||||||
|
|
||||||
#: contrib/comments/models.py:173
|
#: contrib/comments/models.py:173
|
||||||
msgid "approved by staff"
|
msgid "approved by staff"
|
||||||
msgstr "εγκεκριμένο από το προσωπικό"
|
msgstr "εγκεκριμένο από το προσωπικό"
|
||||||
|
|
||||||
#: contrib/comments/models.py:176
|
#: contrib/comments/models.py:176
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "free comment"
|
msgid "free comment"
|
||||||
msgstr "Ελεύθερο σχόλιο"
|
msgstr "Ελεύθερο σχόλιο"
|
||||||
|
|
||||||
#: contrib/comments/models.py:177
|
#: contrib/comments/models.py:177
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "free comments"
|
msgid "free comments"
|
||||||
msgstr "Ελεύθερα σχόλια"
|
msgstr "Ελεύθερα σχόλια"
|
||||||
|
|
||||||
#: contrib/comments/models.py:233
|
#: contrib/comments/models.py:233
|
||||||
msgid "score"
|
msgid "score"
|
||||||
msgstr "βαθμολογία"
|
msgstr "βαθμολογία"
|
||||||
|
|
||||||
#: contrib/comments/models.py:234
|
#: contrib/comments/models.py:234
|
||||||
msgid "score date"
|
msgid "score date"
|
||||||
msgstr "ημερομηνία βαθμολογίας"
|
msgstr "ημερομηνία βαθμολογίας"
|
||||||
|
|
||||||
#: contrib/comments/models.py:237
|
#: contrib/comments/models.py:237
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "karma score"
|
msgid "karma score"
|
||||||
msgstr "βαθμολογία"
|
msgstr "βαθμολογία"
|
||||||
|
|
||||||
#: contrib/comments/models.py:238
|
#: contrib/comments/models.py:238
|
||||||
msgid "karma scores"
|
msgid "karma scores"
|
||||||
@ -159,9 +159,9 @@ msgid ""
|
|||||||
"\n"
|
"\n"
|
||||||
"%(text)s"
|
"%(text)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Αυτο το σχόλιο σημειώθει απο %(χρήστη)ες\n"
|
"Αυτο το σχόλιο σημειώθει απο %(χρήστη)ες\n"
|
||||||
"\n"
|
"\n"
|
||||||
"%(κείμενο)α"
|
"%(κείμενο)α"
|
||||||
|
|
||||||
#: contrib/comments/models.py:265
|
#: contrib/comments/models.py:265
|
||||||
msgid "flag date"
|
msgid "flag date"
|
||||||
@ -182,7 +182,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/comments/models.py:278
|
#: contrib/comments/models.py:278
|
||||||
msgid "deletion date"
|
msgid "deletion date"
|
||||||
msgstr "ημερομηνία διαγραφής"
|
msgstr "ημερομηνία διαγραφής"
|
||||||
|
|
||||||
#: contrib/comments/models.py:280
|
#: contrib/comments/models.py:280
|
||||||
msgid "moderator deletion"
|
msgid "moderator deletion"
|
||||||
@ -199,7 +199,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/comments/views/karma.py:19
|
#: contrib/comments/views/karma.py:19
|
||||||
msgid "Anonymous users cannot vote"
|
msgid "Anonymous users cannot vote"
|
||||||
msgstr "Ανώνυμοι χρήστες δέν μπορούν να ψηφήσουν"
|
msgstr "Ανώνυμοι χρήστες δέν μπορούν να ψηφήσουν"
|
||||||
|
|
||||||
#: contrib/comments/views/karma.py:23
|
#: contrib/comments/views/karma.py:23
|
||||||
msgid "Invalid comment ID"
|
msgid "Invalid comment ID"
|
||||||
@ -212,7 +212,7 @@ msgstr ""
|
|||||||
#: contrib/comments/views/comments.py:28
|
#: contrib/comments/views/comments.py:28
|
||||||
msgid ""
|
msgid ""
|
||||||
"This rating is required because you've entered at least one other rating."
|
"This rating is required because you've entered at least one other rating."
|
||||||
msgstr "Αυτή η βαθμολογία απαιτείται επειδή τουλάχιστον ακόμα μια βαθμολογία"
|
msgstr "Αυτή η βαθμολογία απαιτείται επειδή τουλάχιστον ακόμα μια βαθμολογία"
|
||||||
|
|
||||||
#: contrib/comments/views/comments.py:112
|
#: contrib/comments/views/comments.py:112
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -245,7 +245,7 @@ msgstr ""
|
|||||||
#: contrib/comments/views/comments.py:193
|
#: contrib/comments/views/comments.py:193
|
||||||
#: 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:197
|
#: contrib/comments/views/comments.py:197
|
||||||
#: contrib/comments/views/comments.py:286
|
#: contrib/comments/views/comments.py:286
|
||||||
@ -273,11 +273,11 @@ msgstr ""
|
|||||||
#: contrib/comments/templates/comments/form.html:6
|
#: contrib/comments/templates/comments/form.html:6
|
||||||
#: contrib/admin/templates/admin/login.html:20
|
#: contrib/admin/templates/admin/login.html:20
|
||||||
msgid "Password:"
|
msgid "Password:"
|
||||||
msgstr "Κωδικός"
|
msgstr "Κωδικός"
|
||||||
|
|
||||||
#: contrib/comments/templates/comments/form.html:6
|
#: contrib/comments/templates/comments/form.html:6
|
||||||
msgid "Forgotten your password?"
|
msgid "Forgotten your password?"
|
||||||
msgstr "Ξεχάσατε τον κωδικό σας;"
|
msgstr "Ξεχάσατε τον κωδικό σας;"
|
||||||
|
|
||||||
#: contrib/comments/templates/comments/form.html:8
|
#: contrib/comments/templates/comments/form.html:8
|
||||||
#: contrib/admin/templates/admin/object_history.html:3
|
#: contrib/admin/templates/admin/object_history.html:3
|
||||||
@ -321,7 +321,7 @@ msgstr ""
|
|||||||
#: contrib/comments/templates/comments/form.html:27
|
#: contrib/comments/templates/comments/form.html:27
|
||||||
#: contrib/comments/templates/comments/freeform.html:5
|
#: contrib/comments/templates/comments/freeform.html:5
|
||||||
msgid "Comment:"
|
msgid "Comment:"
|
||||||
msgstr "Σχόλιο:"
|
msgstr "Σχόλιο:"
|
||||||
|
|
||||||
#: contrib/comments/templates/comments/form.html:32
|
#: contrib/comments/templates/comments/form.html:32
|
||||||
#: contrib/comments/templates/comments/freeform.html:9
|
#: contrib/comments/templates/comments/freeform.html:9
|
||||||
@ -350,7 +350,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/filterspecs.py:110
|
#: contrib/admin/filterspecs.py:110
|
||||||
msgid "Today"
|
msgid "Today"
|
||||||
msgstr "Σήμερα"
|
msgstr "Σήμερα"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:113
|
#: contrib/admin/filterspecs.py:113
|
||||||
msgid "Past 7 days"
|
msgid "Past 7 days"
|
||||||
@ -358,23 +358,23 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/filterspecs.py:115
|
#: contrib/admin/filterspecs.py:115
|
||||||
msgid "This month"
|
msgid "This month"
|
||||||
msgstr "Αυτό το μήνα"
|
msgstr "Αυτό το μήνα"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:117
|
#: contrib/admin/filterspecs.py:117
|
||||||
msgid "This year"
|
msgid "This year"
|
||||||
msgstr "Αυτό το χρόνο"
|
msgstr "Αυτό το χρόνο"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:143
|
#: contrib/admin/filterspecs.py:143
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Ναί"
|
msgstr "Ναί"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:143
|
#: contrib/admin/filterspecs.py:143
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Όχι"
|
msgstr "Όχι"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:150
|
#: contrib/admin/filterspecs.py:150
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "’γνωστο"
|
msgstr "’γνωστο"
|
||||||
|
|
||||||
#: contrib/admin/models.py:16
|
#: contrib/admin/models.py:16
|
||||||
msgid "action time"
|
msgid "action time"
|
||||||
@ -394,7 +394,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/models.py:22
|
#: contrib/admin/models.py:22
|
||||||
msgid "change message"
|
msgid "change message"
|
||||||
msgstr "αλλάξτε το μήνυμα"
|
msgstr "αλλάξτε το μήνυμα"
|
||||||
|
|
||||||
#: contrib/admin/models.py:25
|
#: contrib/admin/models.py:25
|
||||||
msgid "log entry"
|
msgid "log entry"
|
||||||
@ -406,7 +406,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/templatetags/admin_list.py:228
|
#: contrib/admin/templatetags/admin_list.py:228
|
||||||
msgid "All dates"
|
msgid "All dates"
|
||||||
msgstr "Όλες οι ημερομηνίες"
|
msgstr "Όλες οι ημερομηνίες"
|
||||||
|
|
||||||
#: contrib/admin/views/decorators.py:9 contrib/auth/forms.py:36
|
#: contrib/admin/views/decorators.py:9 contrib/auth/forms.py:36
|
||||||
#: contrib/auth/forms.py:41
|
#: contrib/auth/forms.py:41
|
||||||
@ -414,45 +414,45 @@ 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."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Παρακαλώ εισάγετε ένα σωστό όνομα χρήστη και κωδικό. Να σημειωθεί ότι και τα "
|
"Παρακαλώ εισάγετε ένα σωστό όνομα χρήστη και κωδικό. Να σημειωθεί ότι και τα "
|
||||||
"δύο πεδία είναι case-sensitive."
|
"δύο πεδία είναι case-sensitive."
|
||||||
|
|
||||||
#: contrib/admin/views/decorators.py:23
|
#: contrib/admin/views/decorators.py:23
|
||||||
#: contrib/admin/templates/admin/login.html:25
|
#: contrib/admin/templates/admin/login.html:25
|
||||||
msgid "Log in"
|
msgid "Log in"
|
||||||
msgstr "Συνδεθείτε"
|
msgstr "Συνδεθείτε"
|
||||||
|
|
||||||
#: contrib/admin/views/decorators.py:61
|
#: contrib/admin/views/decorators.py:61
|
||||||
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."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Παρακαλώ ξανασυνδεθείτε, γιατί η session σας έληξε. Μην ανησυχείτε: Η "
|
"Παρακαλώ ξανασυνδεθείτε, γιατί η session σας έληξε. Μην ανησυχείτε: Η "
|
||||||
"submission σας έχει αποθηκευτεί."
|
"submission σας έχει αποθηκευτεί."
|
||||||
|
|
||||||
#: contrib/admin/views/decorators.py:68
|
#: contrib/admin/views/decorators.py:68
|
||||||
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."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Απ'οτι φαίνεται, ο φυλλομετρητής σας δεν έχει ρυθμιστεί να δέχεται cookies. "
|
"Απ'οτι φαίνεται, ο φυλλομετρητής σας δεν έχει ρυθμιστεί να δέχεται cookies. "
|
||||||
"Παρακαλώ ενεργοποιείστε τα cookies, ξαναφορτώστε αυτή την σελίδα, και "
|
"Παρακαλώ ενεργοποιείστε τα cookies, ξαναφορτώστε αυτή την σελίδα, και "
|
||||||
"δοκιμάστε ξανά."
|
"δοκιμάστε ξανά."
|
||||||
|
|
||||||
#: contrib/admin/views/decorators.py:82
|
#: contrib/admin/views/decorators.py:82
|
||||||
msgid "Usernames cannot contain the '@' character."
|
msgid "Usernames cannot contain the '@' character."
|
||||||
msgstr "Τα ονόματα των Χρηστών δεν μπορόυν να περιέχουν τον χαρακτήρα '@'."
|
msgstr "Τα ονόματα των Χρηστών δεν μπορόυν να περιέχουν τον χαρακτήρα '@'."
|
||||||
|
|
||||||
#: contrib/admin/views/decorators.py:84
|
#: contrib/admin/views/decorators.py:84
|
||||||
#, 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 ""
|
msgstr ""
|
||||||
"Η ηλεκτρονική σας διεύθυνση δεν είναι το ονόμα χρήστη σας. Δοκιμάστε '%s' "
|
"Η ηλεκτρονική σας διεύθυνση δεν είναι το ονόμα χρήστη σας. Δοκιμάστε '%s' "
|
||||||
"έναντι αυτού."
|
"έναντι αυτού."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:226
|
#: contrib/admin/views/main.py:226
|
||||||
msgid "Site administration"
|
msgid "Site administration"
|
||||||
msgstr "Διαχείριση του Διαδυκτιακού χώρου"
|
msgstr "Διαχείριση του Διαδυκτιακού χώρου"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:260
|
#: contrib/admin/views/main.py:260
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -466,7 +466,7 @@ msgstr ""
|
|||||||
#: contrib/admin/views/main.py:272 contrib/admin/views/main.py:357
|
#: contrib/admin/views/main.py:272 contrib/admin/views/main.py:357
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "You may add another %s below."
|
msgid "You may add another %s below."
|
||||||
msgstr "Μπορείτε να προσθέσετε ακόμα ένα %s απο κάτω."
|
msgstr "Μπορείτε να προσθέσετε ακόμα ένα %s απο κάτω."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:290
|
#: contrib/admin/views/main.py:290
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -481,7 +481,7 @@ msgstr ""
|
|||||||
#: contrib/admin/views/main.py:336 contrib/admin/views/main.py:338
|
#: contrib/admin/views/main.py:336 contrib/admin/views/main.py:338
|
||||||
#: contrib/admin/views/main.py:340
|
#: contrib/admin/views/main.py:340
|
||||||
msgid "and"
|
msgid "and"
|
||||||
msgstr "και"
|
msgstr "και"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:338
|
#: contrib/admin/views/main.py:338
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -530,7 +530,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/views/main.py:511
|
#: contrib/admin/views/main.py:511
|
||||||
msgid "Are you sure?"
|
msgid "Are you sure?"
|
||||||
msgstr "Είστε σίγουρος;"
|
msgstr "Είστε σίγουρος;"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:533
|
#: contrib/admin/views/main.py:533
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -551,11 +551,11 @@ msgstr ""
|
|||||||
#: contrib/admin/views/doc.py:288 contrib/admin/views/doc.py:294
|
#: contrib/admin/views/doc.py:288 contrib/admin/views/doc.py:294
|
||||||
#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:297
|
#: contrib/admin/views/doc.py:295 contrib/admin/views/doc.py:297
|
||||||
msgid "Integer"
|
msgid "Integer"
|
||||||
msgstr "Ακέραιος"
|
msgstr "Ακέραιος"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:278
|
#: contrib/admin/views/doc.py:278
|
||||||
msgid "Boolean (Either True or False)"
|
msgid "Boolean (Either True or False)"
|
||||||
msgstr "Boolean (Είτε Αλήθεια ή Ψέμα)"
|
msgstr "Boolean (Είτε Αλήθεια ή Ψέμα)"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:296
|
#: contrib/admin/views/doc.py:279 contrib/admin/views/doc.py:296
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -568,15 +568,15 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/views/doc.py:281
|
#: contrib/admin/views/doc.py:281
|
||||||
msgid "Date (without time)"
|
msgid "Date (without time)"
|
||||||
msgstr "Ημερομηνία (χωρίς την ώρα)"
|
msgstr "Ημερομηνία (χωρίς την ώρα)"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:282
|
#: contrib/admin/views/doc.py:282
|
||||||
msgid "Date (with time)"
|
msgid "Date (with time)"
|
||||||
msgstr "Ημερομηνία (με την ώρα)"
|
msgstr "Ημερομηνία (με την ώρα)"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:283
|
#: contrib/admin/views/doc.py:283
|
||||||
msgid "E-mail address"
|
msgid "E-mail address"
|
||||||
msgstr "Ηλεκτρονική διεύθυνση"
|
msgstr "Ηλεκτρονική διεύθυνση"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:284 contrib/admin/views/doc.py:287
|
#: contrib/admin/views/doc.py:284 contrib/admin/views/doc.py:287
|
||||||
msgid "File path"
|
msgid "File path"
|
||||||
@ -584,7 +584,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/views/doc.py:285
|
#: contrib/admin/views/doc.py:285
|
||||||
msgid "Decimal number"
|
msgid "Decimal number"
|
||||||
msgstr "Δεκαδικός αριθμός"
|
msgstr "Δεκαδικός αριθμός"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:291
|
#: contrib/admin/views/doc.py:291
|
||||||
msgid "Boolean (Either True, False or None)"
|
msgid "Boolean (Either True, False or None)"
|
||||||
@ -596,15 +596,15 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/views/doc.py:293
|
#: contrib/admin/views/doc.py:293
|
||||||
msgid "Phone number"
|
msgid "Phone number"
|
||||||
msgstr "Αριθμός τηλεφώνου"
|
msgstr "Αριθμός τηλεφώνου"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:298
|
#: contrib/admin/views/doc.py:298
|
||||||
msgid "Text"
|
msgid "Text"
|
||||||
msgstr "Κείμενο"
|
msgstr "Κείμενο"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:299
|
#: contrib/admin/views/doc.py:299
|
||||||
msgid "Time"
|
msgid "Time"
|
||||||
msgstr "Ώρα"
|
msgstr "Ώρα"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:300 contrib/flatpages/models.py:7
|
#: contrib/admin/views/doc.py:300 contrib/flatpages/models.py:7
|
||||||
msgid "URL"
|
msgid "URL"
|
||||||
@ -647,7 +647,7 @@ msgstr ""
|
|||||||
#: contrib/admin/templates/admin_doc/index.html:4
|
#: contrib/admin/templates/admin_doc/index.html:4
|
||||||
#: contrib/admin/templates/admin_doc/model_index.html:5
|
#: contrib/admin/templates/admin_doc/model_index.html:5
|
||||||
msgid "Change password"
|
msgid "Change password"
|
||||||
msgstr "Αλλαγή κωδικού"
|
msgstr "Αλλαγή κωδικού"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/object_history.html:5
|
#: contrib/admin/templates/admin/object_history.html:5
|
||||||
#: contrib/admin/templates/admin/500.html:4
|
#: contrib/admin/templates/admin/500.html:4
|
||||||
@ -675,7 +675,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/templates/admin/object_history.html:19
|
#: contrib/admin/templates/admin/object_history.html:19
|
||||||
msgid "User"
|
msgid "User"
|
||||||
msgstr "Χρήστης"
|
msgstr "Χρήστης"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/object_history.html:20
|
#: contrib/admin/templates/admin/object_history.html:20
|
||||||
msgid "Action"
|
msgid "Action"
|
||||||
@ -693,7 +693,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/templates/admin/base_site.html:4
|
#: contrib/admin/templates/admin/base_site.html:4
|
||||||
msgid "Django site admin"
|
msgid "Django site admin"
|
||||||
msgstr "Διαχειριστής ιστοσελίδας Django"
|
msgstr "Διαχειριστής ιστοσελίδας Django"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/base_site.html:7
|
#: contrib/admin/templates/admin/base_site.html:7
|
||||||
msgid "Django administration"
|
msgid "Django administration"
|
||||||
@ -750,7 +750,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/templates/admin/index.html:53
|
#: contrib/admin/templates/admin/index.html:53
|
||||||
msgid "My Actions"
|
msgid "My Actions"
|
||||||
msgstr "Οι πράξεις μου"
|
msgstr "Οι πράξεις μου"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/index.html:57
|
#: contrib/admin/templates/admin/index.html:57
|
||||||
msgid "None available"
|
msgid "None available"
|
||||||
@ -767,7 +767,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/templates/admin/base.html:23
|
#: contrib/admin/templates/admin/base.html:23
|
||||||
msgid "Welcome,"
|
msgid "Welcome,"
|
||||||
msgstr "Καλωσήρθατε,"
|
msgstr "Καλωσήρθατε,"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/delete_confirmation.html:9
|
#: contrib/admin/templates/admin/delete_confirmation.html:9
|
||||||
#: contrib/admin/templates/admin/submit_line.html:3
|
#: contrib/admin/templates/admin/submit_line.html:3
|
||||||
@ -791,7 +791,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/templates/admin/delete_confirmation.html:26
|
#: contrib/admin/templates/admin/delete_confirmation.html:26
|
||||||
msgid "Yes, I'm sure"
|
msgid "Yes, I'm sure"
|
||||||
msgstr "Ναι, είμαι σίγουρος"
|
msgstr "Ναι, είμαι σίγουρος"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/filter.html:2
|
#: contrib/admin/templates/admin/filter.html:2
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -834,7 +834,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/templates/admin/submit_line.html:7
|
#: contrib/admin/templates/admin/submit_line.html:7
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Αποθήκευση"
|
msgstr "Αποθήκευση"
|
||||||
|
|
||||||
#: contrib/admin/templates/registration/password_change_done.html:4
|
#: contrib/admin/templates/registration/password_change_done.html:4
|
||||||
#: contrib/admin/templates/registration/password_change_form.html:4
|
#: contrib/admin/templates/registration/password_change_form.html:4
|
||||||
@ -850,7 +850,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/templates/registration/password_change_done.html:12
|
#: contrib/admin/templates/registration/password_change_done.html:12
|
||||||
msgid "Your password was changed."
|
msgid "Your password was changed."
|
||||||
msgstr "Ο κωδίκός σας άλλαξε."
|
msgstr "Ο κωδίκός σας άλλαξε."
|
||||||
|
|
||||||
#: contrib/admin/templates/registration/password_reset_form.html:4
|
#: contrib/admin/templates/registration/password_reset_form.html:4
|
||||||
#: contrib/admin/templates/registration/password_reset_form.html:6
|
#: contrib/admin/templates/registration/password_reset_form.html:6
|
||||||
@ -876,7 +876,7 @@ msgstr ""
|
|||||||
#: contrib/admin/templates/registration/logged_out.html:8
|
#: contrib/admin/templates/registration/logged_out.html:8
|
||||||
msgid "Thanks for spending some quality time with the Web site today."
|
msgid "Thanks for spending some quality time with the Web site today."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ευχαριστούμε που διαθέσατε χρόνο στο να βελτίωσετε την ιστοσελίδα σήμερα."
|
"Ευχαριστούμε που διαθέσατε χρόνο στο να βελτίωσετε την ιστοσελίδα σήμερα."
|
||||||
|
|
||||||
#: contrib/admin/templates/registration/logged_out.html:10
|
#: contrib/admin/templates/registration/logged_out.html:10
|
||||||
msgid "Log in again"
|
msgid "Log in again"
|
||||||
@ -901,11 +901,11 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/templates/registration/password_change_form.html:17
|
#: contrib/admin/templates/registration/password_change_form.html:17
|
||||||
msgid "Old password:"
|
msgid "Old password:"
|
||||||
msgstr "Παλιός κωδικός:"
|
msgstr "Παλιός κωδικός:"
|
||||||
|
|
||||||
#: contrib/admin/templates/registration/password_change_form.html:19
|
#: contrib/admin/templates/registration/password_change_form.html:19
|
||||||
msgid "New password:"
|
msgid "New password:"
|
||||||
msgstr "Νέος κωδικός:"
|
msgstr "Νέος κωδικός:"
|
||||||
|
|
||||||
#: contrib/admin/templates/registration/password_change_form.html:21
|
#: contrib/admin/templates/registration/password_change_form.html:21
|
||||||
msgid "Confirm password:"
|
msgid "Confirm password:"
|
||||||
@ -1173,12 +1173,12 @@ msgstr ""
|
|||||||
#: contrib/auth/models.py:70
|
#: contrib/auth/models.py:70
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "user"
|
msgid "user"
|
||||||
msgstr "Χρήστης"
|
msgstr "Χρήστης"
|
||||||
|
|
||||||
#: contrib/auth/models.py:71
|
#: contrib/auth/models.py:71
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "users"
|
msgid "users"
|
||||||
msgstr "Χρήστης"
|
msgstr "Χρήστης"
|
||||||
|
|
||||||
#: contrib/auth/models.py:76
|
#: contrib/auth/models.py:76
|
||||||
msgid "Personal info"
|
msgid "Personal info"
|
||||||
@ -1199,15 +1199,15 @@ msgstr ""
|
|||||||
#: contrib/auth/models.py:219
|
#: contrib/auth/models.py:219
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "message"
|
msgid "message"
|
||||||
msgstr "αλλάξτε το μήνυμα"
|
msgstr "αλλάξτε το μήνυμα"
|
||||||
|
|
||||||
#: contrib/auth/forms.py:30
|
#: contrib/auth/forms.py:30
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your Web browser doesn't appear to have cookies enabled. Cookies are "
|
"Your Web browser doesn't appear to have cookies enabled. Cookies are "
|
||||||
"required for logging in."
|
"required for logging in."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Ο φυλλομετρητής σας δεν φαίνεται να έχει ενεργοποιημένα τα cookies. Τα "
|
"Ο φυλλομετρητής σας δεν φαίνεται να έχει ενεργοποιημένα τα cookies. Τα "
|
||||||
"cookies απαιτούνται για να συνδεθείτε"
|
"cookies απαιτούνται για να συνδεθείτε"
|
||||||
|
|
||||||
#: contrib/contenttypes/models.py:25
|
#: contrib/contenttypes/models.py:25
|
||||||
msgid "python model class name"
|
msgid "python model class name"
|
||||||
@ -1348,7 +1348,7 @@ msgstr ""
|
|||||||
#: utils/dates.py:19
|
#: utils/dates.py:19
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "jan"
|
msgid "jan"
|
||||||
msgstr "και"
|
msgstr "και"
|
||||||
|
|
||||||
#: utils/dates.py:19
|
#: utils/dates.py:19
|
||||||
msgid "feb"
|
msgid "feb"
|
||||||
@ -1677,7 +1677,7 @@ msgstr ""
|
|||||||
#: core/validators.py:206 core/validators.py:208
|
#: core/validators.py:206 core/validators.py:208
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "The URL %s is a broken link."
|
msgid "The URL %s is a broken link."
|
||||||
msgstr "Η διεύθυνση (URL) %s είναι χαλασμένη σύνδεση."
|
msgstr "Η διεύθυνση (URL) %s είναι χαλασμένη σύνδεση."
|
||||||
|
|
||||||
#: core/validators.py:214
|
#: core/validators.py:214
|
||||||
msgid "Enter a valid U.S. state abbreviation."
|
msgid "Enter a valid U.S. state abbreviation."
|
||||||
@ -1701,7 +1701,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: core/validators.py:264 core/validators.py:275
|
#: core/validators.py:264 core/validators.py:275
|
||||||
msgid "Please enter both fields or leave them both empty."
|
msgid "Please enter both fields or leave them both empty."
|
||||||
msgstr "Παρακαλώ συμπληρώστε και τα δύο πεδία ή αφήστε τα και τα δύο άδεια."
|
msgstr "Παρακαλώ συμπληρώστε και τα δύο πεδία ή αφήστε τα και τα δύο άδεια."
|
||||||
|
|
||||||
#: core/validators.py:282
|
#: core/validators.py:282
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -1724,7 +1724,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: core/validators.py:347
|
#: core/validators.py:347
|
||||||
msgid "Please enter a valid decimal number."
|
msgid "Please enter a valid decimal number."
|
||||||
msgstr "Παρακαλώ είσάγετε έναν έγκυρο δεκαδίκο αριθμό."
|
msgstr "Παρακαλώ είσάγετε έναν έγκυρο δεκαδίκο αριθμό."
|
||||||
|
|
||||||
#: core/validators.py:349
|
#: core/validators.py:349
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -1745,7 +1745,7 @@ msgstr[1] ""
|
|||||||
#: core/validators.py:362
|
#: core/validators.py:362
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Make sure your uploaded file is at least %s bytes big."
|
msgid "Make sure your uploaded file is at least %s bytes big."
|
||||||
msgstr "Σιγουρευτείτε ότι το αρχείου που ανεβάζετε είναι %s bytes τουλάχιστον."
|
msgstr "Σιγουρευτείτε ότι το αρχείου που ανεβάζετε είναι %s bytes τουλάχιστον."
|
||||||
|
|
||||||
#: core/validators.py:363
|
#: core/validators.py:363
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -1754,11 +1754,11 @@ msgstr ""
|
|||||||
|
|
||||||
#: core/validators.py:376
|
#: core/validators.py:376
|
||||||
msgid "The format for this field is wrong."
|
msgid "The format for this field is wrong."
|
||||||
msgstr "Η διάταξη αυτού του πεδίου έιναι λάθος"
|
msgstr "Η διάταξη αυτού του πεδίου έιναι λάθος"
|
||||||
|
|
||||||
#: core/validators.py:391
|
#: core/validators.py:391
|
||||||
msgid "This field is invalid."
|
msgid "This field is invalid."
|
||||||
msgstr "Αυτό το πεδίο είναι άκυρο"
|
msgstr "Αυτό το πεδίο είναι άκυρο"
|
||||||
|
|
||||||
#: core/validators.py:426
|
#: core/validators.py:426
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -1836,16 +1836,16 @@ msgstr ""
|
|||||||
#: db/models/fields/__init__.py:369
|
#: db/models/fields/__init__.py:369
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "This value must be either True or False."
|
msgid "This value must be either True or False."
|
||||||
msgstr "Boolean (Είτε Αλήθεια ή Ψέμα)"
|
msgstr "Boolean (Είτε Αλήθεια ή Ψέμα)"
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:385
|
#: db/models/fields/__init__.py:385
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "This field cannot be null."
|
msgid "This field cannot be null."
|
||||||
msgstr "Αυτό το πεδίο είναι άκυρο"
|
msgstr "Αυτό το πεδίο είναι άκυρο"
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:562
|
#: db/models/fields/__init__.py:562
|
||||||
msgid "Enter a valid filename."
|
msgid "Enter a valid filename."
|
||||||
msgstr "Εισάγετε ένα έγκυρο όνομα αρχείου"
|
msgstr "Εισάγετε ένα έγκυρο όνομα αρχείου"
|
||||||
|
|
||||||
#: db/models/fields/related.py:43
|
#: db/models/fields/related.py:43
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -1855,7 +1855,7 @@ msgstr ""
|
|||||||
#: db/models/fields/related.py:579
|
#: db/models/fields/related.py:579
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Separate multiple IDs with commas."
|
msgid "Separate multiple IDs with commas."
|
||||||
msgstr "Ξεχωρίστε πολλαπλές ΙDs με κόμματα"
|
msgstr "Ξεχωρίστε πολλαπλές ΙDs με κόμματα"
|
||||||
|
|
||||||
#: db/models/fields/related.py:581
|
#: db/models/fields/related.py:581
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -1904,10 +1904,10 @@ msgstr ""
|
|||||||
|
|
||||||
#: template/defaultfilters.py:379
|
#: template/defaultfilters.py:379
|
||||||
msgid "yes,no,maybe"
|
msgid "yes,no,maybe"
|
||||||
msgstr "ναί,όχι,ίσως"
|
msgstr "ναί,όχι,ίσως"
|
||||||
|
|
||||||
#~ msgid "Comment"
|
#~ msgid "Comment"
|
||||||
#~ msgstr "Σχόλιο"
|
#~ msgstr "Σχόλιο"
|
||||||
|
|
||||||
#~ msgid "Comments"
|
#~ msgid "Comments"
|
||||||
#~ msgstr "Σχόλια"
|
#~ msgstr "Σχόλια"
|
||||||
|
BIN
django/conf/locale/es_AR/LC_MESSAGES/django.mo
Normal file
BIN
django/conf/locale/es_AR/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
2029
django/conf/locale/es_AR/LC_MESSAGES/django.po
Normal file
2029
django/conf/locale/es_AR/LC_MESSAGES/django.po
Normal file
File diff suppressed because it is too large
Load Diff
BIN
django/conf/locale/es_AR/LC_MESSAGES/djangojs.mo
Normal file
BIN
django/conf/locale/es_AR/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
110
django/conf/locale/es_AR/LC_MESSAGES/djangojs.po
Normal file
110
django/conf/locale/es_AR/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
# Argentinean spanish translation for the django-admin JS files, based on
|
||||||
|
# Spanish translation work by Jorge Gajon.
|
||||||
|
# Copyright (C)
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# Ramiro Morales <rm0@gmx.net>, 2006.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Django JavaScript 1.0\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2005-12-09 11:51+0100\n"
|
||||||
|
"PO-Revision-Date: 2006-05-16 10:20-0300\n"
|
||||||
|
"Last-Translator: Ramiro Morales <rm0@gmx.net>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=ISO-8859-1\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||||
|
#, perl-format
|
||||||
|
msgid "Available %s"
|
||||||
|
msgstr "%s disponibles"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||||
|
msgid "Choose all"
|
||||||
|
msgstr "Selecciona todos"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||||
|
msgid "Add"
|
||||||
|
msgstr "Agregar"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr "Eliminar"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||||
|
#, perl-format
|
||||||
|
msgid "Chosen %s"
|
||||||
|
msgstr "%s elegidos"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||||
|
msgid "Select your choice(s) and click "
|
||||||
|
msgstr "Haga sus elecciones y haga click en "
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||||
|
msgid "Clear all"
|
||||||
|
msgstr "Elimina todos"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/dateparse.js:26
|
||||||
|
#: contrib/admin/media/js/calendar.js:24
|
||||||
|
msgid ""
|
||||||
|
"January February March April May June July August September October November "
|
||||||
|
"December"
|
||||||
|
msgstr ""
|
||||||
|
"Enero Febrero Marzo Abril Mayo Junio Julio Agosto Septiembre Octubre "
|
||||||
|
"Noviembre Diciembre"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/dateparse.js:27
|
||||||
|
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||||
|
msgstr "Domingo Lunes Martes Miércoles Jueves Viernes Sábado"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/calendar.js:25
|
||||||
|
msgid "S M T W T F S"
|
||||||
|
msgstr "D L M M J V S"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
|
||||||
|
msgid "Now"
|
||||||
|
msgstr "Ahora"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
|
||||||
|
msgid "Clock"
|
||||||
|
msgstr "Reloj"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
|
||||||
|
msgid "Choose a time"
|
||||||
|
msgstr "Elija una hora"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
|
||||||
|
msgid "Midnight"
|
||||||
|
msgstr "Medianoche"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
|
||||||
|
msgid "6 a.m."
|
||||||
|
msgstr "6 a.m."
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
|
||||||
|
msgid "Noon"
|
||||||
|
msgstr "Mediodía"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "Cancelar"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
|
||||||
|
msgid "Today"
|
||||||
|
msgstr "Hoy"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
|
||||||
|
msgid "Calendar"
|
||||||
|
msgstr "Calendario"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
|
||||||
|
msgid "Yesterday"
|
||||||
|
msgstr "Ayer"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
|
||||||
|
msgid "Tomorrow"
|
||||||
|
msgstr "Mañana"
|
Binary file not shown.
@ -16,9 +16,8 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
#: contrib/comments/models.py:67 contrib/comments/models.py:166
|
#: contrib/comments/models.py:67 contrib/comments/models.py:166
|
||||||
#, fuzzy
|
|
||||||
msgid "object ID"
|
msgid "object ID"
|
||||||
msgstr "id de l'objet"
|
msgstr "ID de l'objet"
|
||||||
|
|
||||||
#: contrib/comments/models.py:68
|
#: contrib/comments/models.py:68
|
||||||
msgid "headline"
|
msgid "headline"
|
||||||
@ -26,9 +25,8 @@ msgstr "titre"
|
|||||||
|
|
||||||
#: contrib/comments/models.py:69 contrib/comments/models.py:90
|
#: contrib/comments/models.py:69 contrib/comments/models.py:90
|
||||||
#: contrib/comments/models.py:167
|
#: contrib/comments/models.py:167
|
||||||
#, fuzzy
|
|
||||||
msgid "comment"
|
msgid "comment"
|
||||||
msgstr "contenu"
|
msgstr "commentaire"
|
||||||
|
|
||||||
#: contrib/comments/models.py:70
|
#: contrib/comments/models.py:70
|
||||||
msgid "rating #1"
|
msgid "rating #1"
|
||||||
@ -75,7 +73,6 @@ msgid "is public"
|
|||||||
msgstr "est public"
|
msgstr "est public"
|
||||||
|
|
||||||
#: contrib/comments/models.py:85 contrib/admin/views/doc.py:289
|
#: contrib/comments/models.py:85 contrib/admin/views/doc.py:289
|
||||||
#, fuzzy
|
|
||||||
msgid "IP address"
|
msgid "IP address"
|
||||||
msgstr "adresse IP"
|
msgstr "adresse IP"
|
||||||
|
|
||||||
@ -92,14 +89,12 @@ msgstr ""
|
|||||||
"commentaire a été supprimé\" sera affiché en lieu et place de celui-ci."
|
"commentaire a été supprimé\" sera affiché en lieu et place de celui-ci."
|
||||||
|
|
||||||
#: contrib/comments/models.py:91
|
#: contrib/comments/models.py:91
|
||||||
#, fuzzy
|
|
||||||
msgid "comments"
|
msgid "comments"
|
||||||
msgstr "contenu"
|
msgstr "commentaires"
|
||||||
|
|
||||||
#: contrib/comments/models.py:131 contrib/comments/models.py:207
|
#: contrib/comments/models.py:131 contrib/comments/models.py:207
|
||||||
#, fuzzy
|
|
||||||
msgid "Content object"
|
msgid "Content object"
|
||||||
msgstr "type de contenu"
|
msgstr "Type de contenu"
|
||||||
|
|
||||||
#: contrib/comments/models.py:159
|
#: contrib/comments/models.py:159
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -117,12 +112,10 @@ msgstr ""
|
|||||||
"http://%(domain)s%(url)s"
|
"http://%(domain)s%(url)s"
|
||||||
|
|
||||||
#: contrib/comments/models.py:168
|
#: contrib/comments/models.py:168
|
||||||
#, fuzzy
|
|
||||||
msgid "person's name"
|
msgid "person's name"
|
||||||
msgstr "nom"
|
msgstr "nom"
|
||||||
|
|
||||||
#: contrib/comments/models.py:171
|
#: contrib/comments/models.py:171
|
||||||
#, fuzzy
|
|
||||||
msgid "ip address"
|
msgid "ip address"
|
||||||
msgstr "adresse IP"
|
msgstr "adresse IP"
|
||||||
|
|
||||||
@ -131,33 +124,28 @@ msgid "approved by staff"
|
|||||||
msgstr "approuvé par l'équipe"
|
msgstr "approuvé par l'équipe"
|
||||||
|
|
||||||
#: contrib/comments/models.py:176
|
#: contrib/comments/models.py:176
|
||||||
#, fuzzy
|
|
||||||
msgid "free comment"
|
msgid "free comment"
|
||||||
msgstr "Commentaire libre"
|
msgstr "commentaire libre"
|
||||||
|
|
||||||
#: contrib/comments/models.py:177
|
#: contrib/comments/models.py:177
|
||||||
#, fuzzy
|
|
||||||
msgid "free comments"
|
msgid "free comments"
|
||||||
msgstr "Commentaires libres"
|
msgstr "commentaires libres"
|
||||||
|
|
||||||
#: contrib/comments/models.py:233
|
#: contrib/comments/models.py:233
|
||||||
msgid "score"
|
msgid "score"
|
||||||
msgstr "Évaluation"
|
msgstr "evaluation"
|
||||||
|
|
||||||
#: contrib/comments/models.py:234
|
#: contrib/comments/models.py:234
|
||||||
#, fuzzy
|
|
||||||
msgid "score date"
|
msgid "score date"
|
||||||
msgstr "Date d'évaluation"
|
msgstr "date d'évaluation"
|
||||||
|
|
||||||
#: contrib/comments/models.py:237
|
#: contrib/comments/models.py:237
|
||||||
#, fuzzy
|
|
||||||
msgid "karma score"
|
msgid "karma score"
|
||||||
msgstr "Point de Karma"
|
msgstr "point de Karma"
|
||||||
|
|
||||||
#: contrib/comments/models.py:238
|
#: contrib/comments/models.py:238
|
||||||
#, fuzzy
|
|
||||||
msgid "karma scores"
|
msgid "karma scores"
|
||||||
msgstr "Points de Karma"
|
msgstr "points de Karma"
|
||||||
|
|
||||||
#: contrib/comments/models.py:242
|
#: contrib/comments/models.py:242
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -176,19 +164,16 @@ msgstr ""
|
|||||||
"%(text)s"
|
"%(text)s"
|
||||||
|
|
||||||
#: contrib/comments/models.py:265
|
#: contrib/comments/models.py:265
|
||||||
#, fuzzy
|
|
||||||
msgid "flag date"
|
msgid "flag date"
|
||||||
msgstr "date d'indicateur"
|
msgstr "date d'indicateur"
|
||||||
|
|
||||||
#: contrib/comments/models.py:268
|
#: contrib/comments/models.py:268
|
||||||
#, fuzzy
|
|
||||||
msgid "user flag"
|
msgid "user flag"
|
||||||
msgstr "Indicateur utilisateur"
|
msgstr "indicateur utilisateur"
|
||||||
|
|
||||||
#: contrib/comments/models.py:269
|
#: contrib/comments/models.py:269
|
||||||
#, fuzzy
|
|
||||||
msgid "user flags"
|
msgid "user flags"
|
||||||
msgstr "Indicateurs utilisateur"
|
msgstr "indicateurs utilisateur"
|
||||||
|
|
||||||
#: contrib/comments/models.py:273
|
#: contrib/comments/models.py:273
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -196,19 +181,16 @@ msgid "Flag by %r"
|
|||||||
msgstr "Indicateur par %r"
|
msgstr "Indicateur par %r"
|
||||||
|
|
||||||
#: contrib/comments/models.py:278
|
#: contrib/comments/models.py:278
|
||||||
#, fuzzy
|
|
||||||
msgid "deletion date"
|
msgid "deletion date"
|
||||||
msgstr "date de suppression"
|
msgstr "date de suppression"
|
||||||
|
|
||||||
#: contrib/comments/models.py:280
|
#: contrib/comments/models.py:280
|
||||||
#, fuzzy
|
|
||||||
msgid "moderator deletion"
|
msgid "moderator deletion"
|
||||||
msgstr "Suppression de modérateur"
|
msgstr "suppression de modérateur"
|
||||||
|
|
||||||
#: contrib/comments/models.py:281
|
#: contrib/comments/models.py:281
|
||||||
#, fuzzy
|
|
||||||
msgid "moderator deletions"
|
msgid "moderator deletions"
|
||||||
msgstr "Suppressions de modérateur"
|
msgstr "suppressions de modérateur"
|
||||||
|
|
||||||
#: contrib/comments/models.py:285
|
#: contrib/comments/models.py:285
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -220,7 +202,6 @@ msgid "Anonymous users cannot vote"
|
|||||||
msgstr "Les utilisateurs anonymes ne peuvent pas voter"
|
msgstr "Les utilisateurs anonymes ne peuvent pas voter"
|
||||||
|
|
||||||
#: contrib/comments/views/karma.py:23
|
#: contrib/comments/views/karma.py:23
|
||||||
#, fuzzy
|
|
||||||
msgid "Invalid comment ID"
|
msgid "Invalid comment ID"
|
||||||
msgstr "ID de commentaire invalide"
|
msgstr "ID de commentaire invalide"
|
||||||
|
|
||||||
@ -282,7 +263,7 @@ msgstr "Un ou plusieurs champs requis n'ont pas
|
|||||||
#: contrib/comments/views/comments.py:286
|
#: contrib/comments/views/comments.py:286
|
||||||
msgid "Somebody tampered with the comment form (security violation)"
|
msgid "Somebody tampered with the comment form (security violation)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Quelqu'un a trifouillé le formulaire de commentaire (violation des règles de "
|
"Quelqu'un a trafiqué le formulaire de commentaire (violation des règles de "
|
||||||
"sécurité)"
|
"sécurité)"
|
||||||
|
|
||||||
#: contrib/comments/views/comments.py:207
|
#: contrib/comments/views/comments.py:207
|
||||||
@ -313,7 +294,6 @@ msgid "Password:"
|
|||||||
msgstr "Mot de passe"
|
msgstr "Mot de passe"
|
||||||
|
|
||||||
#: contrib/comments/templates/comments/form.html:6
|
#: contrib/comments/templates/comments/form.html:6
|
||||||
#, fuzzy
|
|
||||||
msgid "Forgotten your password?"
|
msgid "Forgotten your password?"
|
||||||
msgstr "Mot de passe oublié?"
|
msgstr "Mot de passe oublié?"
|
||||||
|
|
||||||
@ -346,33 +326,30 @@ msgstr "vote n
|
|||||||
#: contrib/comments/templates/comments/form.html:12
|
#: contrib/comments/templates/comments/form.html:12
|
||||||
#: contrib/comments/templates/comments/form.html:23
|
#: contrib/comments/templates/comments/form.html:23
|
||||||
msgid "Required"
|
msgid "Required"
|
||||||
msgstr ""
|
msgstr "Requis"
|
||||||
|
|
||||||
#: contrib/comments/templates/comments/form.html:12
|
#: contrib/comments/templates/comments/form.html:12
|
||||||
#: contrib/comments/templates/comments/form.html:23
|
#: contrib/comments/templates/comments/form.html:23
|
||||||
msgid "Optional"
|
msgid "Optional"
|
||||||
msgstr ""
|
msgstr "Optionel"
|
||||||
|
|
||||||
#: contrib/comments/templates/comments/form.html:23
|
#: contrib/comments/templates/comments/form.html:23
|
||||||
msgid "Post a photo"
|
msgid "Post a photo"
|
||||||
msgstr ""
|
msgstr "Poster une photo"
|
||||||
|
|
||||||
#: contrib/comments/templates/comments/form.html:27
|
#: contrib/comments/templates/comments/form.html:27
|
||||||
#: contrib/comments/templates/comments/freeform.html:5
|
#: contrib/comments/templates/comments/freeform.html:5
|
||||||
#, fuzzy
|
|
||||||
msgid "Comment:"
|
msgid "Comment:"
|
||||||
msgstr "Commentaire"
|
msgstr "Commentaire :"
|
||||||
|
|
||||||
#: contrib/comments/templates/comments/form.html:32
|
#: contrib/comments/templates/comments/form.html:32
|
||||||
#: contrib/comments/templates/comments/freeform.html:9
|
#: contrib/comments/templates/comments/freeform.html:9
|
||||||
#, fuzzy
|
|
||||||
msgid "Preview comment"
|
msgid "Preview comment"
|
||||||
msgstr "Prévisualisation du commentaire"
|
msgstr "Prévisualisation du commentaire"
|
||||||
|
|
||||||
#: contrib/comments/templates/comments/freeform.html:4
|
#: contrib/comments/templates/comments/freeform.html:4
|
||||||
#, fuzzy
|
|
||||||
msgid "Your name:"
|
msgid "Your name:"
|
||||||
msgstr "nom d'utilisateur"
|
msgstr "Votre nom :"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:40
|
#: contrib/admin/filterspecs.py:40
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -393,7 +370,6 @@ msgid "Any date"
|
|||||||
msgstr "Toutes les dates"
|
msgstr "Toutes les dates"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:110
|
#: contrib/admin/filterspecs.py:110
|
||||||
#, fuzzy
|
|
||||||
msgid "Today"
|
msgid "Today"
|
||||||
msgstr "Aujourd'hui"
|
msgstr "Aujourd'hui"
|
||||||
|
|
||||||
@ -414,7 +390,6 @@ msgid "Yes"
|
|||||||
msgstr "Oui"
|
msgstr "Oui"
|
||||||
|
|
||||||
#: contrib/admin/filterspecs.py:143
|
#: contrib/admin/filterspecs.py:143
|
||||||
#, fuzzy
|
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Non"
|
msgstr "Non"
|
||||||
|
|
||||||
@ -496,7 +471,6 @@ msgstr ""
|
|||||||
"Votre courriel n'est pas votre nom d'utilisateur. Essayez '%s' à la place."
|
"Votre courriel n'est pas votre nom d'utilisateur. Essayez '%s' à la place."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:226
|
#: contrib/admin/views/main.py:226
|
||||||
#, fuzzy
|
|
||||||
msgid "Site administration"
|
msgid "Site administration"
|
||||||
msgstr "Gestion du site"
|
msgstr "Gestion du site"
|
||||||
|
|
||||||
@ -515,7 +489,7 @@ msgid "You may add another %s below."
|
|||||||
msgstr "Vous pouvez ajouter un autre %s ci-dessous."
|
msgstr "Vous pouvez ajouter un autre %s ci-dessous."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:290
|
#: contrib/admin/views/main.py:290
|
||||||
#, fuzzy, python-format
|
#, python-format
|
||||||
msgid "Add %s"
|
msgid "Add %s"
|
||||||
msgstr "Ajouter %s"
|
msgstr "Ajouter %s"
|
||||||
|
|
||||||
@ -530,7 +504,7 @@ msgid "and"
|
|||||||
msgstr "et"
|
msgstr "et"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:338
|
#: contrib/admin/views/main.py:338
|
||||||
#, fuzzy, python-format
|
#, python-format
|
||||||
msgid "Changed %s."
|
msgid "Changed %s."
|
||||||
msgstr "Modifié %s."
|
msgstr "Modifié %s."
|
||||||
|
|
||||||
@ -557,7 +531,7 @@ msgstr ""
|
|||||||
"de l'éditez ci-dessous."
|
"de l'éditez ci-dessous."
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:392
|
#: contrib/admin/views/main.py:392
|
||||||
#, fuzzy, python-format
|
#, python-format
|
||||||
msgid "Change %s"
|
msgid "Change %s"
|
||||||
msgstr "Changement %s"
|
msgstr "Changement %s"
|
||||||
|
|
||||||
@ -581,7 +555,7 @@ msgid "Are you sure?"
|
|||||||
msgstr "Êtes-vous sûr ?"
|
msgstr "Êtes-vous sûr ?"
|
||||||
|
|
||||||
#: contrib/admin/views/main.py:533
|
#: contrib/admin/views/main.py:533
|
||||||
#, fuzzy, python-format
|
#, python-format
|
||||||
msgid "Change history: %s"
|
msgid "Change history: %s"
|
||||||
msgstr "Historique des changements : %s"
|
msgstr "Historique des changements : %s"
|
||||||
|
|
||||||
@ -615,17 +589,14 @@ msgid "Comma-separated integers"
|
|||||||
msgstr "Des entiers séparés par une virgule"
|
msgstr "Des entiers séparés par une virgule"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:281
|
#: contrib/admin/views/doc.py:281
|
||||||
#, fuzzy
|
|
||||||
msgid "Date (without time)"
|
msgid "Date (without time)"
|
||||||
msgstr "Date (sans l'heure)"
|
msgstr "Date (sans l'heure)"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:282
|
#: contrib/admin/views/doc.py:282
|
||||||
#, fuzzy
|
|
||||||
msgid "Date (with time)"
|
msgid "Date (with time)"
|
||||||
msgstr "Date (avec l'heure)"
|
msgstr "Date (avec l'heure)"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:283
|
#: contrib/admin/views/doc.py:283
|
||||||
#, fuzzy
|
|
||||||
msgid "E-mail address"
|
msgid "E-mail address"
|
||||||
msgstr "Courriel :"
|
msgstr "Courriel :"
|
||||||
|
|
||||||
@ -634,7 +605,6 @@ msgid "File path"
|
|||||||
msgstr "Chemin vers le fichier"
|
msgstr "Chemin vers le fichier"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:285
|
#: contrib/admin/views/doc.py:285
|
||||||
#, fuzzy
|
|
||||||
msgid "Decimal number"
|
msgid "Decimal number"
|
||||||
msgstr "Nombre décimal"
|
msgstr "Nombre décimal"
|
||||||
|
|
||||||
@ -647,7 +617,6 @@ msgid "Relation to parent model"
|
|||||||
msgstr "Relation au modèle parent"
|
msgstr "Relation au modèle parent"
|
||||||
|
|
||||||
#: contrib/admin/views/doc.py:293
|
#: contrib/admin/views/doc.py:293
|
||||||
#, fuzzy
|
|
||||||
msgid "Phone number"
|
msgid "Phone number"
|
||||||
msgstr "Numéro de téléphone"
|
msgstr "Numéro de téléphone"
|
||||||
|
|
||||||
@ -755,9 +724,8 @@ msgid "Django administration"
|
|||||||
msgstr "Administration de Django"
|
msgstr "Administration de Django"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/500.html:4
|
#: contrib/admin/templates/admin/500.html:4
|
||||||
#, fuzzy
|
|
||||||
msgid "Server error"
|
msgid "Server error"
|
||||||
msgstr "Erreur du serveur (500)"
|
msgstr "Erreur du serveur"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/500.html:6
|
#: contrib/admin/templates/admin/500.html:6
|
||||||
msgid "Server error (500)"
|
msgid "Server error (500)"
|
||||||
@ -788,7 +756,7 @@ msgstr "Nous sommes d
|
|||||||
#: contrib/admin/templates/admin/index.html:17
|
#: contrib/admin/templates/admin/index.html:17
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Models available in the %(name)s application."
|
msgid "Models available in the %(name)s application."
|
||||||
msgstr ""
|
msgstr "Modèles disponibles dans l'application %(name)s."
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/index.html:28
|
#: contrib/admin/templates/admin/index.html:28
|
||||||
#: contrib/admin/templates/admin/change_form.html:15
|
#: contrib/admin/templates/admin/change_form.html:15
|
||||||
@ -816,7 +784,7 @@ msgid "None available"
|
|||||||
msgstr "Aucun(e) disponible"
|
msgstr "Aucun(e) disponible"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/change_list.html:11
|
#: contrib/admin/templates/admin/change_list.html:11
|
||||||
#, fuzzy, python-format
|
#, python-format
|
||||||
msgid "Add %(name)s"
|
msgid "Add %(name)s"
|
||||||
msgstr "Ajouter %(name)s"
|
msgstr "Ajouter %(name)s"
|
||||||
|
|
||||||
@ -834,7 +802,7 @@ msgid "Delete"
|
|||||||
msgstr "Supprimer"
|
msgstr "Supprimer"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/delete_confirmation.html:14
|
#: contrib/admin/templates/admin/delete_confirmation.html:14
|
||||||
#, fuzzy, python-format
|
#, python-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Deleting the %(object_name)s '%(object)s' would result in deleting related "
|
"Deleting the %(object_name)s '%(object)s' would result in deleting related "
|
||||||
"objects, but your account doesn't have permission to delete the following "
|
"objects, but your account doesn't have permission to delete the following "
|
||||||
@ -897,7 +865,6 @@ msgid "Save and continue editing"
|
|||||||
msgstr "Sauver et continuer les modifications"
|
msgstr "Sauver et continuer les modifications"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/submit_line.html:7
|
#: contrib/admin/templates/admin/submit_line.html:7
|
||||||
#, fuzzy
|
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Sauver"
|
msgstr "Sauver"
|
||||||
|
|
||||||
@ -1051,9 +1018,8 @@ msgstr ""
|
|||||||
"généré cette page."
|
"généré cette page."
|
||||||
|
|
||||||
#: contrib/admin/templates/admin_doc/bookmarklets.html:22
|
#: contrib/admin/templates/admin_doc/bookmarklets.html:22
|
||||||
#, fuzzy
|
|
||||||
msgid "Show object ID"
|
msgid "Show object ID"
|
||||||
msgstr "Montrer l'ID de l'objet"
|
msgstr "Afficher l'ID de l'objet"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin_doc/bookmarklets.html:23
|
#: contrib/admin/templates/admin_doc/bookmarklets.html:23
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -1094,7 +1060,6 @@ msgid "Currently:"
|
|||||||
msgstr "Actuellement :"
|
msgstr "Actuellement :"
|
||||||
|
|
||||||
#: contrib/admin/templates/widget/file.html:3
|
#: contrib/admin/templates/widget/file.html:3
|
||||||
#, fuzzy
|
|
||||||
msgid "Change:"
|
msgid "Change:"
|
||||||
msgstr "Modification :"
|
msgstr "Modification :"
|
||||||
|
|
||||||
@ -1154,7 +1119,6 @@ msgid "template name"
|
|||||||
msgstr "nom du template"
|
msgstr "nom du template"
|
||||||
|
|
||||||
#: contrib/flatpages/models.py:13
|
#: contrib/flatpages/models.py:13
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Example: 'flatpages/contact_page'. If this isn't provided, the system will "
|
"Example: 'flatpages/contact_page'. If this isn't provided, the system will "
|
||||||
"use 'flatpages/default'."
|
"use 'flatpages/default'."
|
||||||
@ -1189,24 +1153,20 @@ msgid "codename"
|
|||||||
msgstr "nom de code"
|
msgstr "nom de code"
|
||||||
|
|
||||||
#: contrib/auth/models.py:17
|
#: contrib/auth/models.py:17
|
||||||
#, fuzzy
|
|
||||||
msgid "permission"
|
msgid "permission"
|
||||||
msgstr "Permission"
|
msgstr "permission"
|
||||||
|
|
||||||
#: contrib/auth/models.py:18 contrib/auth/models.py:27
|
#: contrib/auth/models.py:18 contrib/auth/models.py:27
|
||||||
#, fuzzy
|
|
||||||
msgid "permissions"
|
msgid "permissions"
|
||||||
msgstr "Permissions"
|
msgstr "permissions"
|
||||||
|
|
||||||
#: contrib/auth/models.py:29
|
#: contrib/auth/models.py:29
|
||||||
#, fuzzy
|
|
||||||
msgid "group"
|
msgid "group"
|
||||||
msgstr "Groupe"
|
msgstr "groupe"
|
||||||
|
|
||||||
#: contrib/auth/models.py:30 contrib/auth/models.py:65
|
#: contrib/auth/models.py:30 contrib/auth/models.py:65
|
||||||
#, fuzzy
|
|
||||||
msgid "groups"
|
msgid "groups"
|
||||||
msgstr "Groupes"
|
msgstr "groupes"
|
||||||
|
|
||||||
#: contrib/auth/models.py:55
|
#: contrib/auth/models.py:55
|
||||||
msgid "username"
|
msgid "username"
|
||||||
@ -1266,19 +1226,16 @@ msgstr ""
|
|||||||
"appartient. "
|
"appartient. "
|
||||||
|
|
||||||
#: contrib/auth/models.py:67
|
#: contrib/auth/models.py:67
|
||||||
#, fuzzy
|
|
||||||
msgid "user permissions"
|
msgid "user permissions"
|
||||||
msgstr "Permissions"
|
msgstr "permissions de l'utilisateur"
|
||||||
|
|
||||||
#: contrib/auth/models.py:70
|
#: contrib/auth/models.py:70
|
||||||
#, fuzzy
|
|
||||||
msgid "user"
|
msgid "user"
|
||||||
msgstr "Utilisateur"
|
msgstr "utilisateur"
|
||||||
|
|
||||||
#: contrib/auth/models.py:71
|
#: contrib/auth/models.py:71
|
||||||
#, fuzzy
|
|
||||||
msgid "users"
|
msgid "users"
|
||||||
msgstr "Utilisateurs"
|
msgstr "utilisateurs"
|
||||||
|
|
||||||
#: contrib/auth/models.py:76
|
#: contrib/auth/models.py:76
|
||||||
msgid "Personal info"
|
msgid "Personal info"
|
||||||
@ -1297,9 +1254,8 @@ msgid "Groups"
|
|||||||
msgstr "Groupes"
|
msgstr "Groupes"
|
||||||
|
|
||||||
#: contrib/auth/models.py:219
|
#: contrib/auth/models.py:219
|
||||||
#, fuzzy
|
|
||||||
msgid "message"
|
msgid "message"
|
||||||
msgstr "Message"
|
msgstr "message"
|
||||||
|
|
||||||
#: contrib/auth/forms.py:30
|
#: contrib/auth/forms.py:30
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -1310,7 +1266,6 @@ msgstr ""
|
|||||||
"nécessaire pour se connecter"
|
"nécessaire pour se connecter"
|
||||||
|
|
||||||
#: contrib/contenttypes/models.py:25
|
#: contrib/contenttypes/models.py:25
|
||||||
#, fuzzy
|
|
||||||
msgid "python model class name"
|
msgid "python model class name"
|
||||||
msgstr "nom du module python"
|
msgstr "nom du module python"
|
||||||
|
|
||||||
@ -1447,54 +1402,52 @@ msgid "December"
|
|||||||
msgstr "Décembre"
|
msgstr "Décembre"
|
||||||
|
|
||||||
#: utils/dates.py:19
|
#: utils/dates.py:19
|
||||||
#, fuzzy
|
|
||||||
msgid "jan"
|
msgid "jan"
|
||||||
msgstr "et"
|
msgstr "jan"
|
||||||
|
|
||||||
#: utils/dates.py:19
|
#: utils/dates.py:19
|
||||||
msgid "feb"
|
msgid "feb"
|
||||||
msgstr ""
|
msgstr "fév"
|
||||||
|
|
||||||
#: utils/dates.py:19
|
#: utils/dates.py:19
|
||||||
msgid "mar"
|
msgid "mar"
|
||||||
msgstr ""
|
msgstr "mar"
|
||||||
|
|
||||||
#: utils/dates.py:19
|
#: utils/dates.py:19
|
||||||
msgid "apr"
|
msgid "apr"
|
||||||
msgstr ""
|
msgstr "avr"
|
||||||
|
|
||||||
#: utils/dates.py:19
|
#: utils/dates.py:19
|
||||||
#, fuzzy
|
|
||||||
msgid "may"
|
msgid "may"
|
||||||
msgstr "journée"
|
msgstr "mai"
|
||||||
|
|
||||||
#: utils/dates.py:19
|
#: utils/dates.py:19
|
||||||
msgid "jun"
|
msgid "jun"
|
||||||
msgstr ""
|
msgstr "jui"
|
||||||
|
|
||||||
#: utils/dates.py:20
|
#: utils/dates.py:20
|
||||||
msgid "jul"
|
msgid "jul"
|
||||||
msgstr ""
|
msgstr "jul"
|
||||||
|
|
||||||
#: utils/dates.py:20
|
#: utils/dates.py:20
|
||||||
msgid "aug"
|
msgid "aug"
|
||||||
msgstr ""
|
msgstr "aout"
|
||||||
|
|
||||||
#: utils/dates.py:20
|
#: utils/dates.py:20
|
||||||
msgid "sep"
|
msgid "sep"
|
||||||
msgstr ""
|
msgstr "sep"
|
||||||
|
|
||||||
#: utils/dates.py:20
|
#: utils/dates.py:20
|
||||||
msgid "oct"
|
msgid "oct"
|
||||||
msgstr ""
|
msgstr "oct"
|
||||||
|
|
||||||
#: utils/dates.py:20
|
#: utils/dates.py:20
|
||||||
msgid "nov"
|
msgid "nov"
|
||||||
msgstr ""
|
msgstr "nov"
|
||||||
|
|
||||||
#: utils/dates.py:20
|
#: utils/dates.py:20
|
||||||
msgid "dec"
|
msgid "dec"
|
||||||
msgstr ""
|
msgstr "déc"
|
||||||
|
|
||||||
#: utils/dates.py:27
|
#: utils/dates.py:27
|
||||||
msgid "Jan."
|
msgid "Jan."
|
||||||
@ -1544,7 +1497,6 @@ msgstr[0] ""
|
|||||||
msgstr[1] ""
|
msgstr[1] ""
|
||||||
|
|
||||||
#: utils/timesince.py:15
|
#: utils/timesince.py:15
|
||||||
#, fuzzy
|
|
||||||
msgid "day"
|
msgid "day"
|
||||||
msgid_plural "days"
|
msgid_plural "days"
|
||||||
msgstr[0] "journée"
|
msgstr[0] "journée"
|
||||||
@ -1557,7 +1509,6 @@ msgstr[0] "heure"
|
|||||||
msgstr[1] "heures"
|
msgstr[1] "heures"
|
||||||
|
|
||||||
#: utils/timesince.py:17
|
#: utils/timesince.py:17
|
||||||
#, fuzzy
|
|
||||||
msgid "minute"
|
msgid "minute"
|
||||||
msgid_plural "minutes"
|
msgid_plural "minutes"
|
||||||
msgstr[0] "minute"
|
msgstr[0] "minute"
|
||||||
@ -1576,7 +1527,6 @@ msgid "Welsh"
|
|||||||
msgstr "Gallois"
|
msgstr "Gallois"
|
||||||
|
|
||||||
#: conf/global_settings.py:40
|
#: conf/global_settings.py:40
|
||||||
#, fuzzy
|
|
||||||
msgid "Danish"
|
msgid "Danish"
|
||||||
msgstr "Dannois"
|
msgstr "Dannois"
|
||||||
|
|
||||||
@ -1617,13 +1567,12 @@ msgid "Icelandic"
|
|||||||
msgstr "Islandais"
|
msgstr "Islandais"
|
||||||
|
|
||||||
#: conf/global_settings.py:50
|
#: conf/global_settings.py:50
|
||||||
#, fuzzy
|
|
||||||
msgid "Italian"
|
msgid "Italian"
|
||||||
msgstr "Italien"
|
msgstr "Italien"
|
||||||
|
|
||||||
#: conf/global_settings.py:51
|
#: conf/global_settings.py:51
|
||||||
msgid "Japanese"
|
msgid "Japanese"
|
||||||
msgstr ""
|
msgstr "Japonais"
|
||||||
|
|
||||||
#: conf/global_settings.py:52
|
#: conf/global_settings.py:52
|
||||||
msgid "Dutch"
|
msgid "Dutch"
|
||||||
@ -1655,7 +1604,6 @@ msgid "Slovenian"
|
|||||||
msgstr "Slovaque"
|
msgstr "Slovaque"
|
||||||
|
|
||||||
#: conf/global_settings.py:59
|
#: conf/global_settings.py:59
|
||||||
#, fuzzy
|
|
||||||
msgid "Serbian"
|
msgid "Serbian"
|
||||||
msgstr "Serbe"
|
msgstr "Serbe"
|
||||||
|
|
||||||
@ -1664,9 +1612,8 @@ msgid "Swedish"
|
|||||||
msgstr "Suédois"
|
msgstr "Suédois"
|
||||||
|
|
||||||
#: conf/global_settings.py:61
|
#: conf/global_settings.py:61
|
||||||
#, fuzzy
|
|
||||||
msgid "Ukrainian"
|
msgid "Ukrainian"
|
||||||
msgstr "Brésilien"
|
msgstr "Ukrainien"
|
||||||
|
|
||||||
#: conf/global_settings.py:62
|
#: conf/global_settings.py:62
|
||||||
msgid "Simplified Chinese"
|
msgid "Simplified Chinese"
|
||||||
@ -1683,7 +1630,6 @@ msgstr ""
|
|||||||
"('_')."
|
"('_')."
|
||||||
|
|
||||||
#: core/validators.py:64
|
#: core/validators.py:64
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"This value must contain only letters, numbers, underscores, dashes or "
|
"This value must contain only letters, numbers, underscores, dashes or "
|
||||||
"slashes."
|
"slashes."
|
||||||
@ -1968,42 +1914,35 @@ msgstr "%(optname)s avec le champs %(fieldname)s existe d
|
|||||||
#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
|
#: db/models/fields/__init__.py:114 db/models/fields/__init__.py:265
|
||||||
#: db/models/fields/__init__.py:542 db/models/fields/__init__.py:553
|
#: db/models/fields/__init__.py:542 db/models/fields/__init__.py:553
|
||||||
#: forms/__init__.py:346
|
#: forms/__init__.py:346
|
||||||
#, fuzzy
|
|
||||||
msgid "This field is required."
|
msgid "This field is required."
|
||||||
msgstr "Ce champ est obligatoire."
|
msgstr "Ce champ est obligatoire."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:337
|
#: db/models/fields/__init__.py:337
|
||||||
#, fuzzy
|
|
||||||
msgid "This value must be an integer."
|
msgid "This value must be an integer."
|
||||||
msgstr "Cette valeur doit être une puissance de %s."
|
msgstr "Cette valeur doit être un entier."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:369
|
#: db/models/fields/__init__.py:369
|
||||||
#, fuzzy
|
|
||||||
msgid "This value must be either True or False."
|
msgid "This value must be either True or False."
|
||||||
msgstr "Cette valeur doit être une puissance de %s."
|
msgstr "Cette valeur doit être soit Vraie soit Fausse."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:385
|
#: db/models/fields/__init__.py:385
|
||||||
#, fuzzy
|
|
||||||
msgid "This field cannot be null."
|
msgid "This field cannot be null."
|
||||||
msgstr "Ce champ est invalide."
|
msgstr "Ce champ ne peut pas être vide."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:562
|
#: db/models/fields/__init__.py:562
|
||||||
#, fuzzy
|
|
||||||
msgid "Enter a valid filename."
|
msgid "Enter a valid filename."
|
||||||
msgstr "Entrez un nom de fichier valide."
|
msgstr "Entrez un nom de fichier valide."
|
||||||
|
|
||||||
#: db/models/fields/related.py:43
|
#: db/models/fields/related.py:43
|
||||||
#, fuzzy, python-format
|
#, python-format
|
||||||
msgid "Please enter a valid %s."
|
msgid "Please enter a valid %s."
|
||||||
msgstr "Entrez une adresse IP valide."
|
msgstr "Entrez un %s valide."
|
||||||
|
|
||||||
#: db/models/fields/related.py:579
|
#: db/models/fields/related.py:579
|
||||||
#, fuzzy
|
|
||||||
msgid "Separate multiple IDs with commas."
|
msgid "Separate multiple IDs with commas."
|
||||||
msgstr "Séparez les ID par des virgules."
|
msgstr "Séparez les ID par des virgules."
|
||||||
|
|
||||||
#: db/models/fields/related.py:581
|
#: db/models/fields/related.py:581
|
||||||
#, fuzzy
|
|
||||||
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 ""
|
||||||
@ -2029,7 +1968,7 @@ msgstr[1] "Assurez-vous que votre texte fais moins de %s caract
|
|||||||
#: forms/__init__.py:385
|
#: forms/__init__.py:385
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Line breaks are not allowed here."
|
msgid "Line breaks are not allowed here."
|
||||||
msgstr "Les lettres minuscules ne sont pas autorisées ici."
|
msgstr "Les retours à la ligne ne sont pas autorisés ici."
|
||||||
|
|
||||||
#: forms/__init__.py:480 forms/__init__.py:551 forms/__init__.py:589
|
#: forms/__init__.py:480 forms/__init__.py:551 forms/__init__.py:589
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -2041,17 +1980,14 @@ msgid "The submitted file is empty."
|
|||||||
msgstr "Le fichier soumis est vide."
|
msgstr "Le fichier soumis est vide."
|
||||||
|
|
||||||
#: forms/__init__.py:699
|
#: forms/__init__.py:699
|
||||||
#, fuzzy
|
|
||||||
msgid "Enter a whole number between -32,768 and 32,767."
|
msgid "Enter a whole number between -32,768 and 32,767."
|
||||||
msgstr "Entrez un nombre entier entre -32 768 et 32 767."
|
msgstr "Entrez un nombre entier entre -32 768 et 32 767."
|
||||||
|
|
||||||
#: forms/__init__.py:708
|
#: forms/__init__.py:708
|
||||||
#, fuzzy
|
|
||||||
msgid "Enter a positive number."
|
msgid "Enter a positive number."
|
||||||
msgstr "Entrez un nombre entier positif."
|
msgstr "Entrez un nombre entier positif."
|
||||||
|
|
||||||
#: forms/__init__.py:717
|
#: forms/__init__.py:717
|
||||||
#, fuzzy
|
|
||||||
msgid "Enter a whole number between 0 and 32,767."
|
msgid "Enter a whole number between 0 and 32,767."
|
||||||
msgstr "Entrez un nombre entier entre 0 et 32 767."
|
msgstr "Entrez un nombre entier entre 0 et 32 767."
|
||||||
|
|
||||||
@ -2062,7 +1998,6 @@ msgstr "oui,non,peut-
|
|||||||
#~ msgid "Comment"
|
#~ msgid "Comment"
|
||||||
#~ msgstr "Commentaire"
|
#~ msgstr "Commentaire"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
#~ msgid "Comments"
|
#~ msgid "Comments"
|
||||||
#~ msgstr "Commentaires"
|
#~ msgstr "Commentaires"
|
||||||
|
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -1,7 +1,7 @@
|
|||||||
# Italian translation for the django-admin JS files
|
# Italian translation for the django-admin JS files
|
||||||
# Copyright (C) 2005
|
# Copyright (C) 2006 the Lawrence Journal-World
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
# This file is distributed under the same license as the Django package.
|
||||||
# Antonio Cavedoni <antonio@cavedoni.org>, 2005.
|
# Carlo C8E Miron <carlo.miron AT gmail.com>, 2006.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -9,41 +9,42 @@ msgstr ""
|
|||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2005-12-09 11:51+0100\n"
|
"POT-Creation-Date: 2005-12-09 11:51+0100\n"
|
||||||
"PO-Revision-Date: 2005-12-04 21:47+0100\n"
|
"PO-Revision-Date: 2005-12-04 21:47+0100\n"
|
||||||
"Last-Translator: Antonio Cavedoni <antonio@cavedoni.org>\n"
|
"Last-Translator: Carlo C8E Miron <carlo.miron AT gmail.com>\n"
|
||||||
|
"Language-Team: Italian <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"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#: contrib/admin/media/js/SelectFilter2.js:33
|
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||||
#, perl-format
|
#, perl-format
|
||||||
msgid "Available %s"
|
msgid "Available %s"
|
||||||
msgstr ""
|
msgstr "Disponibile %s"
|
||||||
|
|
||||||
#: contrib/admin/media/js/SelectFilter2.js:41
|
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||||
#, fuzzy
|
|
||||||
msgid "Choose all"
|
msgid "Choose all"
|
||||||
msgstr "Seleziona un orario"
|
msgstr "Seleziona tutto"
|
||||||
|
|
||||||
#: contrib/admin/media/js/SelectFilter2.js:46
|
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||||
msgid "Add"
|
msgid "Add"
|
||||||
msgstr ""
|
msgstr "Aggiungi"
|
||||||
|
|
||||||
#: contrib/admin/media/js/SelectFilter2.js:48
|
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||||
msgid "Remove"
|
msgid "Remove"
|
||||||
msgstr ""
|
msgstr "Rimuovi"
|
||||||
|
|
||||||
#: contrib/admin/media/js/SelectFilter2.js:53
|
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||||
#, perl-format
|
#, perl-format
|
||||||
msgid "Chosen %s"
|
msgid "Chosen %s"
|
||||||
msgstr ""
|
msgstr "Selezionato %s"
|
||||||
|
|
||||||
#: contrib/admin/media/js/SelectFilter2.js:54
|
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||||
msgid "Select your choice(s) and click "
|
msgid "Select your choice(s) and click "
|
||||||
msgstr ""
|
msgstr "Seleziona le tue scelte e clicca "
|
||||||
|
|
||||||
#: contrib/admin/media/js/SelectFilter2.js:59
|
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||||
msgid "Clear all"
|
msgid "Clear all"
|
||||||
msgstr ""
|
msgstr "Cancella tutto"
|
||||||
|
|
||||||
#: contrib/admin/media/js/dateparse.js:26
|
#: contrib/admin/media/js/dateparse.js:26
|
||||||
#: contrib/admin/media/js/calendar.js:24
|
#: contrib/admin/media/js/calendar.js:24
|
||||||
@ -56,7 +57,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: contrib/admin/media/js/dateparse.js:27
|
#: contrib/admin/media/js/dateparse.js:27
|
||||||
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||||
msgstr ""
|
msgstr "Domenica Lunedì Martedì Mercoledì Giovedì Venerdì Sabato"
|
||||||
|
|
||||||
#: contrib/admin/media/js/calendar.js:25
|
#: contrib/admin/media/js/calendar.js:25
|
||||||
msgid "S M T W T F S"
|
msgid "S M T W T F S"
|
||||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -1,16 +1,16 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
# Dutch Javascript translations.
|
||||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
# Copyright (C) 2006
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
# This file is distributed under the same license as the Django package.
|
||||||
# Rudolph Froger <rfroger@estrate.nl>, 2006.
|
# Rudolph Froger <rfroger@estrate.nl>, 2006.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2006-05-02 16:52+0200\n"
|
"POT-Creation-Date: 2006-05-16 17:39+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: Rudolph Froger <rfroger@estrate.nl>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: nl <LL@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"
|
||||||
@ -30,12 +30,12 @@ msgstr "Z M D W D V Z"
|
|||||||
|
|
||||||
#: contrib/admin/media/js/dateparse.js:33
|
#: contrib/admin/media/js/dateparse.js:33
|
||||||
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||||
msgstr "Zondag Maandag Dinsdag Woensdag Donderdag Vrijdag Zaterdag"
|
msgstr "zondag maandag dinsdag woensdag donderdag vrijdag zaterdag"
|
||||||
|
|
||||||
#: contrib/admin/media/js/SelectFilter2.js:33
|
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||||
#, perl-format
|
#, perl-format
|
||||||
msgid "Available %s"
|
msgid "Available %s"
|
||||||
msgstr "Beschikbaar"
|
msgstr "Beschikbare %s"
|
||||||
|
|
||||||
#: contrib/admin/media/js/SelectFilter2.js:41
|
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||||
msgid "Choose all"
|
msgid "Choose all"
|
||||||
|
Binary file not shown.
@ -822,7 +822,7 @@ msgid ""
|
|||||||
"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
|
"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of "
|
||||||
"the following related items will be deleted:"
|
"the following related items will be deleted:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Er du sikker på at du vill slette %(object_name) \"%(object)s\"? Alle de "
|
"Er du sikker på at du vill slette %(object_name)s \"%(object)s\"? Alle de "
|
||||||
"følgende relaterte objektene vill bli slettet:"
|
"følgende relaterte objektene vill bli slettet:"
|
||||||
|
|
||||||
#: contrib/admin/templates/admin/delete_confirmation.html:26
|
#: contrib/admin/templates/admin/delete_confirmation.html:26
|
||||||
|
Binary file not shown.
@ -90,9 +90,8 @@ msgstr ""
|
|||||||
"\" táto správa sa objaví namiesto neho."
|
"\" táto správa sa objaví namiesto neho."
|
||||||
|
|
||||||
#: contrib/comments/models.py:91
|
#: contrib/comments/models.py:91
|
||||||
#, fuzzy
|
|
||||||
msgid "comments"
|
msgid "comments"
|
||||||
msgstr "komentár"
|
msgstr "komentáre"
|
||||||
|
|
||||||
#: contrib/comments/models.py:131 contrib/comments/models.py:207
|
#: contrib/comments/models.py:131 contrib/comments/models.py:207
|
||||||
msgid "Content object"
|
msgid "Content object"
|
||||||
@ -126,14 +125,12 @@ msgid "approved by staff"
|
|||||||
msgstr "je zamestnancom"
|
msgstr "je zamestnancom"
|
||||||
|
|
||||||
#: contrib/comments/models.py:176
|
#: contrib/comments/models.py:176
|
||||||
#, fuzzy
|
|
||||||
msgid "free comment"
|
msgid "free comment"
|
||||||
msgstr "Voľný komentár"
|
msgstr "voľný komentár"
|
||||||
|
|
||||||
#: contrib/comments/models.py:177
|
#: contrib/comments/models.py:177
|
||||||
#, fuzzy
|
|
||||||
msgid "free comments"
|
msgid "free comments"
|
||||||
msgstr "Voľné komentáre"
|
msgstr "voľné komentáre"
|
||||||
|
|
||||||
#: contrib/comments/models.py:233
|
#: contrib/comments/models.py:233
|
||||||
msgid "score"
|
msgid "score"
|
||||||
@ -144,14 +141,12 @@ msgid "score date"
|
|||||||
msgstr "údaje stavu"
|
msgstr "údaje stavu"
|
||||||
|
|
||||||
#: contrib/comments/models.py:237
|
#: contrib/comments/models.py:237
|
||||||
#, fuzzy
|
|
||||||
msgid "karma score"
|
msgid "karma score"
|
||||||
msgstr "Karma údaj"
|
msgstr "karma údaj"
|
||||||
|
|
||||||
#: contrib/comments/models.py:238
|
#: contrib/comments/models.py:238
|
||||||
#, fuzzy
|
|
||||||
msgid "karma scores"
|
msgid "karma scores"
|
||||||
msgstr "Karma údaje"
|
msgstr "karma údaje"
|
||||||
|
|
||||||
#: contrib/comments/models.py:242
|
#: contrib/comments/models.py:242
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -174,14 +169,12 @@ msgid "flag date"
|
|||||||
msgstr "dátumové návestie"
|
msgstr "dátumové návestie"
|
||||||
|
|
||||||
#: contrib/comments/models.py:268
|
#: contrib/comments/models.py:268
|
||||||
#, fuzzy
|
|
||||||
msgid "user flag"
|
msgid "user flag"
|
||||||
msgstr "Návestie uživateľa"
|
msgstr "návestie uživateľa"
|
||||||
|
|
||||||
#: contrib/comments/models.py:269
|
#: contrib/comments/models.py:269
|
||||||
#, fuzzy
|
|
||||||
msgid "user flags"
|
msgid "user flags"
|
||||||
msgstr "Návestia užívateľa"
|
msgstr "návestia užívateľa"
|
||||||
|
|
||||||
#: contrib/comments/models.py:273
|
#: contrib/comments/models.py:273
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -193,14 +186,12 @@ msgid "deletion date"
|
|||||||
msgstr "odstránené dátumy"
|
msgstr "odstránené dátumy"
|
||||||
|
|
||||||
#: contrib/comments/models.py:280
|
#: contrib/comments/models.py:280
|
||||||
#, fuzzy
|
|
||||||
msgid "moderator deletion"
|
msgid "moderator deletion"
|
||||||
msgstr "Moderátor odstránenia"
|
msgstr "moderátor odstránenia"
|
||||||
|
|
||||||
#: contrib/comments/models.py:281
|
#: contrib/comments/models.py:281
|
||||||
#, fuzzy
|
|
||||||
msgid "moderator deletions"
|
msgid "moderator deletions"
|
||||||
msgstr "Moderátor odstránení"
|
msgstr "moderátor odstránení"
|
||||||
|
|
||||||
#: contrib/comments/models.py:285
|
#: contrib/comments/models.py:285
|
||||||
#, python-format
|
#, python-format
|
||||||
@ -1157,24 +1148,20 @@ msgid "codename"
|
|||||||
msgstr "codename"
|
msgstr "codename"
|
||||||
|
|
||||||
#: contrib/auth/models.py:17
|
#: contrib/auth/models.py:17
|
||||||
#, fuzzy
|
|
||||||
msgid "permission"
|
msgid "permission"
|
||||||
msgstr "Povolenie"
|
msgstr "povolenie"
|
||||||
|
|
||||||
#: contrib/auth/models.py:18 contrib/auth/models.py:27
|
#: contrib/auth/models.py:18 contrib/auth/models.py:27
|
||||||
#, fuzzy
|
|
||||||
msgid "permissions"
|
msgid "permissions"
|
||||||
msgstr "Povolenia"
|
msgstr "povolenia"
|
||||||
|
|
||||||
#: contrib/auth/models.py:29
|
#: contrib/auth/models.py:29
|
||||||
#, fuzzy
|
|
||||||
msgid "group"
|
msgid "group"
|
||||||
msgstr "Skupina"
|
msgstr "skupina"
|
||||||
|
|
||||||
#: contrib/auth/models.py:30 contrib/auth/models.py:65
|
#: contrib/auth/models.py:30 contrib/auth/models.py:65
|
||||||
#, fuzzy
|
|
||||||
msgid "groups"
|
msgid "groups"
|
||||||
msgstr "Skupiny"
|
msgstr "skupiny"
|
||||||
|
|
||||||
#: contrib/auth/models.py:55
|
#: contrib/auth/models.py:55
|
||||||
msgid "username"
|
msgid "username"
|
||||||
@ -1233,17 +1220,14 @@ msgstr ""
|
|||||||
"skupin, v ktorých sa nachádza."
|
"skupin, v ktorých sa nachádza."
|
||||||
|
|
||||||
#: contrib/auth/models.py:67
|
#: contrib/auth/models.py:67
|
||||||
#, fuzzy
|
|
||||||
msgid "user permissions"
|
msgid "user permissions"
|
||||||
msgstr "Povolenia"
|
msgstr "pridelené povolenia"
|
||||||
|
|
||||||
#: contrib/auth/models.py:70
|
#: contrib/auth/models.py:70
|
||||||
#, fuzzy
|
|
||||||
msgid "user"
|
msgid "user"
|
||||||
msgstr "Uživateľ"
|
msgstr "Uživateľ"
|
||||||
|
|
||||||
#: contrib/auth/models.py:71
|
#: contrib/auth/models.py:71
|
||||||
#, fuzzy
|
|
||||||
msgid "users"
|
msgid "users"
|
||||||
msgstr "Užívatelia"
|
msgstr "Užívatelia"
|
||||||
|
|
||||||
@ -1264,9 +1248,8 @@ msgid "Groups"
|
|||||||
msgstr "Skupiny"
|
msgstr "Skupiny"
|
||||||
|
|
||||||
#: contrib/auth/models.py:219
|
#: contrib/auth/models.py:219
|
||||||
#, fuzzy
|
|
||||||
msgid "message"
|
msgid "message"
|
||||||
msgstr "Zpráva"
|
msgstr "zpráva"
|
||||||
|
|
||||||
#: contrib/auth/forms.py:30
|
#: contrib/auth/forms.py:30
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -1277,9 +1260,8 @@ msgstr ""
|
|||||||
"nevýhnutné aby ste sa mohli prilásiť."
|
"nevýhnutné aby ste sa mohli prilásiť."
|
||||||
|
|
||||||
#: contrib/contenttypes/models.py:25
|
#: contrib/contenttypes/models.py:25
|
||||||
#, fuzzy
|
|
||||||
msgid "python model class name"
|
msgid "python model class name"
|
||||||
msgstr "meno python modulu"
|
msgstr "pythonové meno triedy modelu"
|
||||||
|
|
||||||
#: contrib/contenttypes/models.py:28
|
#: contrib/contenttypes/models.py:28
|
||||||
msgid "content type"
|
msgid "content type"
|
||||||
@ -1414,7 +1396,6 @@ msgid "December"
|
|||||||
msgstr "December"
|
msgstr "December"
|
||||||
|
|
||||||
#: utils/dates.py:19
|
#: utils/dates.py:19
|
||||||
#, fuzzy
|
|
||||||
msgid "jan"
|
msgid "jan"
|
||||||
msgstr "a"
|
msgstr "a"
|
||||||
|
|
||||||
@ -1431,17 +1412,16 @@ msgid "apr"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: utils/dates.py:19
|
#: utils/dates.py:19
|
||||||
#, fuzzy
|
|
||||||
msgid "may"
|
msgid "may"
|
||||||
msgstr "ďeň"
|
msgstr "máj"
|
||||||
|
|
||||||
#: utils/dates.py:19
|
#: utils/dates.py:19
|
||||||
msgid "jun"
|
msgid "jun"
|
||||||
msgstr ""
|
msgstr "jún"
|
||||||
|
|
||||||
#: utils/dates.py:20
|
#: utils/dates.py:20
|
||||||
msgid "jul"
|
msgid "jul"
|
||||||
msgstr ""
|
msgstr "júl"
|
||||||
|
|
||||||
#: utils/dates.py:20
|
#: utils/dates.py:20
|
||||||
msgid "aug"
|
msgid "aug"
|
||||||
@ -1453,7 +1433,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: utils/dates.py:20
|
#: utils/dates.py:20
|
||||||
msgid "oct"
|
msgid "oct"
|
||||||
msgstr ""
|
msgstr "okt"
|
||||||
|
|
||||||
#: utils/dates.py:20
|
#: utils/dates.py:20
|
||||||
msgid "nov"
|
msgid "nov"
|
||||||
@ -1624,9 +1604,8 @@ msgid "Swedish"
|
|||||||
msgstr "Švédsky"
|
msgstr "Švédsky"
|
||||||
|
|
||||||
#: conf/global_settings.py:61
|
#: conf/global_settings.py:61
|
||||||
#, fuzzy
|
|
||||||
msgid "Ukrainian"
|
msgid "Ukrainian"
|
||||||
msgstr "Brazílsky"
|
msgstr "Ukrajínsky"
|
||||||
|
|
||||||
#: conf/global_settings.py:62
|
#: conf/global_settings.py:62
|
||||||
msgid "Simplified Chinese"
|
msgid "Simplified Chinese"
|
||||||
@ -1922,19 +1901,16 @@ msgid "This field is required."
|
|||||||
msgstr "Toto pole je nevyhnutné."
|
msgstr "Toto pole je nevyhnutné."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:337
|
#: db/models/fields/__init__.py:337
|
||||||
#, fuzzy
|
|
||||||
msgid "This value must be an integer."
|
msgid "This value must be an integer."
|
||||||
msgstr "Táto hodnota musí byť mocninou %s."
|
msgstr "Táto hodnota musí byť integer."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:369
|
#: db/models/fields/__init__.py:369
|
||||||
#, fuzzy
|
|
||||||
msgid "This value must be either True or False."
|
msgid "This value must be either True or False."
|
||||||
msgstr "Táto hodnota musí byť mocninou %s."
|
msgstr "Táto hodnota musí byť buď True alebo False."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:385
|
#: db/models/fields/__init__.py:385
|
||||||
#, fuzzy
|
|
||||||
msgid "This field cannot be null."
|
msgid "This field cannot be null."
|
||||||
msgstr "Toto pole nie je platné."
|
msgstr "Toto pole nemôže obsahovať null."
|
||||||
|
|
||||||
#: db/models/fields/__init__.py:562
|
#: db/models/fields/__init__.py:562
|
||||||
msgid "Enter a valid filename."
|
msgid "Enter a valid filename."
|
||||||
@ -1946,12 +1922,10 @@ msgid "Please enter a valid %s."
|
|||||||
msgstr "Prosím vložte platné %s."
|
msgstr "Prosím vložte platné %s."
|
||||||
|
|
||||||
#: db/models/fields/related.py:579
|
#: db/models/fields/related.py:579
|
||||||
#, fuzzy
|
|
||||||
msgid "Separate multiple IDs with commas."
|
msgid "Separate multiple IDs with commas."
|
||||||
msgstr "Identifikátory oddeľte čiarkami."
|
msgstr "Oddeľte viacnásobné ID čiarkami."
|
||||||
|
|
||||||
#: db/models/fields/related.py:581
|
#: db/models/fields/related.py:581
|
||||||
#, fuzzy
|
|
||||||
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 ""
|
||||||
|
@ -51,10 +51,10 @@ TEMPLATE_LOADERS = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
MIDDLEWARE_CLASSES = (
|
MIDDLEWARE_CLASSES = (
|
||||||
"django.middleware.common.CommonMiddleware",
|
'django.middleware.common.CommonMiddleware',
|
||||||
"django.contrib.sessions.middleware.SessionMiddleware",
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||||
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
"django.middleware.doc.XViewMiddleware",
|
'django.middleware.doc.XViewMiddleware',
|
||||||
)
|
)
|
||||||
|
|
||||||
ROOT_URLCONF = '{{ project_name }}.urls'
|
ROOT_URLCONF = '{{ project_name }}.urls'
|
||||||
|
@ -118,7 +118,7 @@ class AdminBoundField(object):
|
|||||||
self.raw_id_admin = use_raw_id_admin(field)
|
self.raw_id_admin = use_raw_id_admin(field)
|
||||||
self.is_date_time = isinstance(field, models.DateTimeField)
|
self.is_date_time = isinstance(field, models.DateTimeField)
|
||||||
self.is_file_field = isinstance(field, models.FileField)
|
self.is_file_field = isinstance(field, models.FileField)
|
||||||
self.needs_add_label = field.rel and isinstance(field.rel, models.ManyToOneRel) or isinstance(field.rel, models.ManyToManyRel) and field.rel.to._meta.admin
|
self.needs_add_label = field.rel and (isinstance(field.rel, models.ManyToOneRel) or isinstance(field.rel, models.ManyToManyRel)) and field.rel.to._meta.admin
|
||||||
self.hidden = isinstance(self.field, models.AutoField)
|
self.hidden = isinstance(self.field, models.AutoField)
|
||||||
self.first = False
|
self.first = False
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ from django.core.exceptions import ObjectDoesNotExist
|
|||||||
from django.contrib.sites.models import Site
|
from django.contrib.sites.models import Site
|
||||||
|
|
||||||
class LatestFreeCommentsFeed(Feed):
|
class LatestFreeCommentsFeed(Feed):
|
||||||
"""Feed of latest comments on the current site"""
|
"Feed of latest comments on the current site."
|
||||||
|
|
||||||
comments_class = FreeComment
|
comments_class = FreeComment
|
||||||
|
|
||||||
@ -25,24 +25,18 @@ class LatestFreeCommentsFeed(Feed):
|
|||||||
return "Latest comments on %s" % self._site.name
|
return "Latest comments on %s" % self._site.name
|
||||||
|
|
||||||
def items(self):
|
def items(self):
|
||||||
return self.comments_class.objects.filter(**self._get_lookup_kwargs())
|
return self.comments_class.objects.filter(site__pk=settings.SITE_ID, is_public=True)[:40]
|
||||||
|
|
||||||
def _get_lookup_kwargs(self):
|
|
||||||
return {
|
|
||||||
'site__pk': settings.SITE_ID,
|
|
||||||
'is_public__exact': True,
|
|
||||||
'limit': 40,
|
|
||||||
}
|
|
||||||
|
|
||||||
class LatestCommentsFeed(LatestFreeCommentsFeed):
|
class LatestCommentsFeed(LatestFreeCommentsFeed):
|
||||||
"""Feed of latest free comments on the current site"""
|
"""Feed of latest free comments on the current site"""
|
||||||
|
|
||||||
comments_class = Comment
|
comments_class = Comment
|
||||||
|
|
||||||
def _get_lookup_kwargs(self):
|
def items(self):
|
||||||
kwargs = LatestFreeCommentsFeed._get_lookup_kwargs(self)
|
qs = LatestFreeCommentsFeed.items(self)
|
||||||
kwargs['is_removed__exact'] = False
|
qs = qs.filter(is_removed=False)
|
||||||
if settings.COMMENTS_BANNED_USERS_GROUP:
|
if settings.COMMENTS_BANNED_USERS_GROUP:
|
||||||
kwargs['where'] = ['user_id NOT IN (SELECT user_id FROM auth_users_group WHERE group_id = %s)']
|
where = ['user_id NOT IN (SELECT user_id FROM auth_users_group WHERE group_id = %s)']
|
||||||
kwargs['params'] = [COMMENTS_BANNED_USERS_GROUP]
|
params = [COMMENTS_BANNED_USERS_GROUP]
|
||||||
return kwargs
|
qs = qs.extra(where=where, params=params)
|
||||||
|
return qs
|
||||||
|
@ -252,7 +252,7 @@ def post_comment(request):
|
|||||||
else:
|
else:
|
||||||
manipulator.do_html2python(new_data)
|
manipulator.do_html2python(new_data)
|
||||||
comment = manipulator.save(new_data)
|
comment = manipulator.save(new_data)
|
||||||
return HttpResponseRedirect("/comments/posted/?c=%s:%s" % (content_type_id, object_id))
|
return HttpResponseRedirect("../posted/?c=%s:%s" % (content_type_id, object_id))
|
||||||
else:
|
else:
|
||||||
raise Http404, _("The comment form didn't provide either 'preview' or 'post'")
|
raise Http404, _("The comment form didn't provide either 'preview' or 'post'")
|
||||||
|
|
||||||
@ -316,7 +316,7 @@ def post_free_comment(request):
|
|||||||
else:
|
else:
|
||||||
manipulator.do_html2python(new_data)
|
manipulator.do_html2python(new_data)
|
||||||
comment = manipulator.save(new_data)
|
comment = manipulator.save(new_data)
|
||||||
return HttpResponseRedirect("/comments/posted/?c=%s:%s" % (content_type_id, object_id))
|
return HttpResponseRedirect("../posted/?c=%s:%s" % (content_type_id, object_id))
|
||||||
else:
|
else:
|
||||||
raise Http404, _("The comment form didn't provide either 'preview' or 'post'")
|
raise Http404, _("The comment form didn't provide either 'preview' or 'post'")
|
||||||
|
|
||||||
|
@ -7,20 +7,14 @@ class CurrentSiteManager(models.Manager):
|
|||||||
def __init__(self, field_name='site'):
|
def __init__(self, field_name='site'):
|
||||||
super(CurrentSiteManager, self).__init__()
|
super(CurrentSiteManager, self).__init__()
|
||||||
self.__field_name = field_name
|
self.__field_name = field_name
|
||||||
|
self.__is_validated = False
|
||||||
def contribute_to_class(self, *args, **kwargs):
|
|
||||||
# This method is overridden purely to check for errors in
|
|
||||||
# self.field_name. We can't do this in __init__() because of
|
|
||||||
# how Managers are implemented -- self.model isn't available
|
|
||||||
# until after contribute_to_class() is called.
|
|
||||||
super(CurrentSiteManager, self).contribute_to_class(*args, **kwargs)
|
|
||||||
try:
|
|
||||||
self.model._meta.get_field(self.__field_name)
|
|
||||||
except FieldDoesNotExist:
|
|
||||||
raise ValueError, "%s couldn't find a field named %s in %s." % \
|
|
||||||
(self.__class__.__name__, self.__field_name, self.model._meta.object_name)
|
|
||||||
self.__lookup = self.__field_name + '__id__exact'
|
|
||||||
del self.__field_name
|
|
||||||
|
|
||||||
def get_query_set(self):
|
def get_query_set(self):
|
||||||
return super(SiteLimitManager, self).get_query_set().filter(**{self.__lookup: settings.SITE_ID})
|
if not self.__is_validated:
|
||||||
|
try:
|
||||||
|
self.model._meta.get_field(self.__field_name)
|
||||||
|
except FieldDoesNotExist:
|
||||||
|
raise ValueError, "%s couldn't find a field named %s in %s." % \
|
||||||
|
(self.__class__.__name__, self.__field_name, self.model._meta.object_name)
|
||||||
|
self.__is_validated = True
|
||||||
|
return super(CurrentSiteManager, self).get_query_set().filter(**{self.__field_name + '__id__exact': settings.SITE_ID})
|
||||||
|
@ -95,6 +95,8 @@ class BaseHandler:
|
|||||||
return callback(request, **param_dict)
|
return callback(request, **param_dict)
|
||||||
except exceptions.PermissionDenied:
|
except exceptions.PermissionDenied:
|
||||||
return http.HttpResponseForbidden('<h1>Permission denied</h1>')
|
return http.HttpResponseForbidden('<h1>Permission denied</h1>')
|
||||||
|
except SystemExit:
|
||||||
|
pass # See http://code.djangoproject.com/ticket/1023
|
||||||
except: # Handle everything else, including SuspiciousOperation, etc.
|
except: # Handle everything else, including SuspiciousOperation, etc.
|
||||||
if settings.DEBUG:
|
if settings.DEBUG:
|
||||||
return self.get_technical_error_response(request)
|
return self.get_technical_error_response(request)
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from email.MIMEText import MIMEText
|
from email.MIMEText import MIMEText
|
||||||
from email.Header import Header
|
from email.Header import Header
|
||||||
import smtplib
|
import smtplib, rfc822
|
||||||
|
|
||||||
class BadHeaderError(ValueError):
|
class BadHeaderError(ValueError):
|
||||||
pass
|
pass
|
||||||
@ -49,6 +49,7 @@ def send_mass_mail(datatuple, fail_silently=False, auth_user=settings.EMAIL_HOST
|
|||||||
msg['Subject'] = subject
|
msg['Subject'] = subject
|
||||||
msg['From'] = from_email
|
msg['From'] = from_email
|
||||||
msg['To'] = ', '.join(recipient_list)
|
msg['To'] = ', '.join(recipient_list)
|
||||||
|
msg['Date'] = rfc822.formatdate()
|
||||||
try:
|
try:
|
||||||
server.sendmail(from_email, recipient_list, msg.as_string())
|
server.sendmail(from_email, recipient_list, msg.as_string())
|
||||||
num_sent += 1
|
num_sent += 1
|
||||||
|
@ -328,13 +328,23 @@ def get_sql_initial_data_for_model(model):
|
|||||||
app_dir = os.path.normpath(os.path.join(os.path.dirname(models.get_app(model._meta.app_label).__file__), 'sql'))
|
app_dir = os.path.normpath(os.path.join(os.path.dirname(models.get_app(model._meta.app_label).__file__), 'sql'))
|
||||||
output = []
|
output = []
|
||||||
|
|
||||||
|
# Some backends can't execute more than one SQL statement at a time,
|
||||||
|
# so split into separate statements.
|
||||||
|
sql_expr = re.compile(
|
||||||
|
r"""( # each statement is...
|
||||||
|
(?: # one or more chunks of ...
|
||||||
|
(?:[^;'"]+) # not the end of a statement or start of a quote
|
||||||
|
| (?:'[^']+') # something in single quotes
|
||||||
|
| (?:"[^"]+") # something in double quotes
|
||||||
|
)+)""", re.VERBOSE)
|
||||||
|
|
||||||
# Find custom SQL, if it's available.
|
# Find custom SQL, if it's available.
|
||||||
sql_files = [os.path.join(app_dir, "%s.%s.sql" % (opts.object_name.lower(), settings.DATABASE_ENGINE)),
|
sql_files = [os.path.join(app_dir, "%s.%s.sql" % (opts.object_name.lower(), settings.DATABASE_ENGINE)),
|
||||||
os.path.join(app_dir, "%s.sql" % opts.object_name.lower())]
|
os.path.join(app_dir, "%s.sql" % opts.object_name.lower())]
|
||||||
for sql_file in sql_files:
|
for sql_file in sql_files:
|
||||||
if os.path.exists(sql_file):
|
if os.path.exists(sql_file):
|
||||||
fp = open(sql_file)
|
fp = open(sql_file)
|
||||||
output.append(fp.read())
|
output.extend(sql_expr.findall(fp.read()))
|
||||||
fp.close()
|
fp.close()
|
||||||
|
|
||||||
return output
|
return output
|
||||||
|
@ -17,8 +17,11 @@ except ImportError, e:
|
|||||||
backend_dir = os.path.join(__path__[0], 'backends')
|
backend_dir = os.path.join(__path__[0], 'backends')
|
||||||
available_backends = [f for f in os.listdir(backend_dir) if not f.startswith('_') and not f.startswith('.') and not f.endswith('.py') and not f.endswith('.pyc')]
|
available_backends = [f for f in os.listdir(backend_dir) if not f.startswith('_') and not f.startswith('.') and not f.endswith('.py') and not f.endswith('.pyc')]
|
||||||
available_backends.sort()
|
available_backends.sort()
|
||||||
raise ImproperlyConfigured, "Could not load database backend: %s. Is your DATABASE_ENGINE setting (currently, %r) spelled correctly? Available options are: %s" % \
|
if settings.DATABASE_ENGINE not in available_backends:
|
||||||
(e, settings.DATABASE_ENGINE, ", ".join(map(repr, available_backends)))
|
raise ImproperlyConfigured, "%r isn't an available database backend. vailable options are: %s" % \
|
||||||
|
(settings.DATABASE_ENGINE, ", ".join(map(repr, available_backends)))
|
||||||
|
else:
|
||||||
|
raise # If there's some other error, this must be an error in Django itself.
|
||||||
|
|
||||||
get_introspection_module = lambda: __import__('django.db.backends.%s.introspection' % settings.DATABASE_ENGINE, '', '', [''])
|
get_introspection_module = lambda: __import__('django.db.backends.%s.introspection' % settings.DATABASE_ENGINE, '', '', [''])
|
||||||
get_creation_module = lambda: __import__('django.db.backends.%s.creation' % settings.DATABASE_ENGINE, '', '', [''])
|
get_creation_module = lambda: __import__('django.db.backends.%s.creation' % settings.DATABASE_ENGINE, '', '', [''])
|
||||||
|
@ -5,7 +5,11 @@ Requires adodbapi 2.0.1: http://adodbapi.sourceforge.net/
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.db.backends import util
|
from django.db.backends import util
|
||||||
import adodbapi as Database
|
try:
|
||||||
|
import adodbapi as Database
|
||||||
|
except ImportError, e:
|
||||||
|
from django.core.exceptions import ImproperlyConfigured
|
||||||
|
raise ImproperlyConfigured, "Error loading adodbapi module: %s" % e
|
||||||
import datetime
|
import datetime
|
||||||
try:
|
try:
|
||||||
import mx
|
import mx
|
||||||
|
@ -5,7 +5,11 @@ Requires MySQLdb: http://sourceforge.net/projects/mysql-python
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.db.backends import util
|
from django.db.backends import util
|
||||||
import MySQLdb as Database
|
try:
|
||||||
|
import MySQLdb as Database
|
||||||
|
except ImportError, e:
|
||||||
|
from django.core.exceptions import ImproperlyConfigured
|
||||||
|
raise ImproperlyConfigured, "Error loading MySQLdb module: %s" % e
|
||||||
from MySQLdb.converters import conversions
|
from MySQLdb.converters import conversions
|
||||||
from MySQLdb.constants import FIELD_TYPE
|
from MySQLdb.constants import FIELD_TYPE
|
||||||
import types
|
import types
|
||||||
|
0
django/db/backends/oracle/__init__.py
Normal file
0
django/db/backends/oracle/__init__.py
Normal file
126
django/db/backends/oracle/base.py
Normal file
126
django/db/backends/oracle/base.py
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
"""
|
||||||
|
Oracle database backend for Django.
|
||||||
|
|
||||||
|
Requires cx_Oracle: http://www.python.net/crew/atuining/cx_Oracle/
|
||||||
|
"""
|
||||||
|
|
||||||
|
from django.db.backends import util
|
||||||
|
try:
|
||||||
|
import cx_Oracle as Database
|
||||||
|
except ImportError, e:
|
||||||
|
from django.core.exceptions import ImproperlyConfigured
|
||||||
|
raise ImproperlyConfigured, "Error loading cx_Oracle module: %s" % e
|
||||||
|
import types
|
||||||
|
|
||||||
|
DatabaseError = Database.Error
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Only exists in Python 2.4+
|
||||||
|
from threading import local
|
||||||
|
except ImportError:
|
||||||
|
# Import copy of _thread_local.py from Python 2.4
|
||||||
|
from django.utils._threading_local import local
|
||||||
|
|
||||||
|
class DatabaseWrapper(local):
|
||||||
|
def __init__(self):
|
||||||
|
self.connection = None
|
||||||
|
self.queries = []
|
||||||
|
|
||||||
|
def _valid_connection(self):
|
||||||
|
return self.connection is not None
|
||||||
|
|
||||||
|
def cursor(self):
|
||||||
|
from django.conf import settings
|
||||||
|
if not self._valid_connection():
|
||||||
|
if len(settings.DATABASE_HOST.strip()) == 0:
|
||||||
|
settings.DATABASE_HOST = 'localhost'
|
||||||
|
if len(settings.DATABASE_PORT.strip()) != 0:
|
||||||
|
dsn = Database.makedsn(settings.DATABASE_HOST, int(settings.DATABASE_PORT), settings.DATABASE_NAME)
|
||||||
|
self.connection = Database.connect(settings.DATABASE_USER, settings.DATABASE_PASSWORD, dsn)
|
||||||
|
else:
|
||||||
|
conn_string = "%s/%s@%s" % (settings.DATABASE_USER, settings.DATABASE_PASSWORD, settings.DATABASE_NAME)
|
||||||
|
self.connection = Database.connect(conn_string)
|
||||||
|
return FormatStylePlaceholderCursor(self.connection)
|
||||||
|
|
||||||
|
def _commit(self):
|
||||||
|
self.connection.commit()
|
||||||
|
|
||||||
|
def _rollback(self):
|
||||||
|
if self.connection:
|
||||||
|
try:
|
||||||
|
self.connection.rollback()
|
||||||
|
except Database.NotSupportedError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def close(self):
|
||||||
|
if self.connection is not None:
|
||||||
|
self.connection.close()
|
||||||
|
self.connection = None
|
||||||
|
|
||||||
|
supports_constraints = True
|
||||||
|
|
||||||
|
class FormatStylePlaceholderCursor(Database.Cursor):
|
||||||
|
"""
|
||||||
|
Django uses "format" (e.g. '%s') style placeholders, but Oracle uses ":var" style.
|
||||||
|
This fixes it -- but note that if you want to use a literal "%s" in a query,
|
||||||
|
you'll need to use "%%s".
|
||||||
|
"""
|
||||||
|
def execute(self, query, params=[]):
|
||||||
|
query = self.convert_arguments(query, len(params))
|
||||||
|
return Database.Cursor.execute(self, query, params)
|
||||||
|
|
||||||
|
def executemany(self, query, params=[]):
|
||||||
|
query = self.convert_arguments(query, len(params[0]))
|
||||||
|
return Database.Cursor.executemany(self, query, params)
|
||||||
|
|
||||||
|
def convert_arguments(self, query, num_params):
|
||||||
|
# replace occurances of "%s" with ":arg" - Oracle requires colons for parameter placeholders.
|
||||||
|
args = [':arg' for i in range(num_params)]
|
||||||
|
return query % tuple(args)
|
||||||
|
|
||||||
|
def quote_name(name):
|
||||||
|
return name
|
||||||
|
|
||||||
|
dictfetchone = util.dictfetchone
|
||||||
|
dictfetchmany = util.dictfetchmany
|
||||||
|
dictfetchall = util.dictfetchall
|
||||||
|
|
||||||
|
def get_last_insert_id(cursor, table_name, pk_name):
|
||||||
|
query = "SELECT %s_sq.currval from dual" % table_name
|
||||||
|
cursor.execute(query)
|
||||||
|
return cursor.fetchone()[0]
|
||||||
|
|
||||||
|
def get_date_extract_sql(lookup_type, table_name):
|
||||||
|
# lookup_type is 'year', 'month', 'day'
|
||||||
|
# http://www.psoug.org/reference/date_func.html
|
||||||
|
return "EXTRACT(%s FROM %s)" % (lookup_type, table_name)
|
||||||
|
|
||||||
|
def get_date_trunc_sql(lookup_type, field_name):
|
||||||
|
return "EXTRACT(%s FROM TRUNC(%s))" % (lookup_type, field_name)
|
||||||
|
|
||||||
|
def get_limit_offset_sql(limit, offset=None):
|
||||||
|
# Limits and offset are too complicated to be handled here.
|
||||||
|
# Instead, they are handled in django/db/query.py.
|
||||||
|
pass
|
||||||
|
|
||||||
|
def get_random_function_sql():
|
||||||
|
return "DBMS_RANDOM.RANDOM"
|
||||||
|
|
||||||
|
def get_drop_foreignkey_sql():
|
||||||
|
return "DROP FOREIGN KEY"
|
||||||
|
|
||||||
|
OPERATOR_MAPPING = {
|
||||||
|
'exact': '= %s',
|
||||||
|
'iexact': 'LIKE %s',
|
||||||
|
'contains': 'LIKE %s',
|
||||||
|
'icontains': 'LIKE %s',
|
||||||
|
'ne': '!= %s',
|
||||||
|
'gt': '> %s',
|
||||||
|
'gte': '>= %s',
|
||||||
|
'lt': '< %s',
|
||||||
|
'lte': '<= %s',
|
||||||
|
'startswith': 'LIKE %s',
|
||||||
|
'endswith': 'LIKE %s',
|
||||||
|
'istartswith': 'LIKE %s',
|
||||||
|
'iendswith': 'LIKE %s',
|
||||||
|
}
|
10
django/db/backends/oracle/client.py
Normal file
10
django/db/backends/oracle/client.py
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
from django.conf import settings
|
||||||
|
import os
|
||||||
|
|
||||||
|
def runshell():
|
||||||
|
args = ''
|
||||||
|
args += settings.DATABASE_USER
|
||||||
|
if settings.DATABASE_PASSWORD:
|
||||||
|
args += "/%s" % settings.DATABASE_PASSWORD
|
||||||
|
args += "@%s" % settings.DATABASE_NAME
|
||||||
|
os.execvp('sqlplus', args)
|
26
django/db/backends/oracle/creation.py
Normal file
26
django/db/backends/oracle/creation.py
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
DATA_TYPES = {
|
||||||
|
'AutoField': 'number(38)',
|
||||||
|
'BooleanField': 'number(1)',
|
||||||
|
'CharField': 'varchar2(%(maxlength)s)',
|
||||||
|
'CommaSeparatedIntegerField': 'varchar2(%(maxlength)s)',
|
||||||
|
'DateField': 'date',
|
||||||
|
'DateTimeField': 'date',
|
||||||
|
'FileField': 'varchar2(100)',
|
||||||
|
'FilePathField': 'varchar2(100)',
|
||||||
|
'FloatField': 'number(%(max_digits)s, %(decimal_places)s)',
|
||||||
|
'ImageField': 'varchar2(100)',
|
||||||
|
'IntegerField': 'integer',
|
||||||
|
'IPAddressField': 'char(15)',
|
||||||
|
'ManyToManyField': None,
|
||||||
|
'NullBooleanField': 'integer',
|
||||||
|
'OneToOneField': 'integer',
|
||||||
|
'PhoneNumberField': 'varchar(20)',
|
||||||
|
'PositiveIntegerField': 'integer',
|
||||||
|
'PositiveSmallIntegerField': 'smallint',
|
||||||
|
'SlugField': 'varchar(50)',
|
||||||
|
'SmallIntegerField': 'smallint',
|
||||||
|
'TextField': 'long',
|
||||||
|
'TimeField': 'timestamp',
|
||||||
|
'URLField': 'varchar(200)',
|
||||||
|
'USStateField': 'varchar(2)',
|
||||||
|
}
|
52
django/db/backends/oracle/introspection.py
Normal file
52
django/db/backends/oracle/introspection.py
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
from django.db import transaction
|
||||||
|
from django.db.backends.oracle.base import quote_name
|
||||||
|
import re
|
||||||
|
|
||||||
|
foreign_key_re = re.compile(r"\sCONSTRAINT `[^`]*` FOREIGN KEY \(`([^`]*)`\) REFERENCES `([^`]*)` \(`([^`]*)`\)")
|
||||||
|
|
||||||
|
def get_table_list(cursor):
|
||||||
|
"Returns a list of table names in the current database."
|
||||||
|
cursor.execute("SELECT TABLE_NAME FROM USER_TABLES")
|
||||||
|
return [row[0] for row in cursor.fetchall()]
|
||||||
|
|
||||||
|
def get_table_description(cursor, table_name):
|
||||||
|
return table_name
|
||||||
|
|
||||||
|
def _name_to_index(cursor, table_name):
|
||||||
|
"""
|
||||||
|
Returns a dictionary of {field_name: field_index} for the given table.
|
||||||
|
Indexes are 0-based.
|
||||||
|
"""
|
||||||
|
return dict([(d[0], i) for i, d in enumerate(get_table_description(cursor, table_name))])
|
||||||
|
|
||||||
|
def get_relations(cursor, table_name):
|
||||||
|
"""
|
||||||
|
Returns a dictionary of {field_index: (field_index_other_table, other_table)}
|
||||||
|
representing all relationships to the given table. Indexes are 0-based.
|
||||||
|
"""
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
|
def get_indexes(cursor, table_name):
|
||||||
|
"""
|
||||||
|
Returns a dictionary of fieldname -> infodict for the given table,
|
||||||
|
where each infodict is in the format:
|
||||||
|
{'primary_key': boolean representing whether it's the primary key,
|
||||||
|
'unique': boolean representing whether it's a unique index}
|
||||||
|
"""
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
|
# Maps type codes to Django Field types.
|
||||||
|
DATA_TYPES_REVERSE = {
|
||||||
|
16: 'BooleanField',
|
||||||
|
21: 'SmallIntegerField',
|
||||||
|
23: 'IntegerField',
|
||||||
|
25: 'TextField',
|
||||||
|
869: 'IPAddressField',
|
||||||
|
1043: 'CharField',
|
||||||
|
1082: 'DateField',
|
||||||
|
1083: 'TimeField',
|
||||||
|
1114: 'DateTimeField',
|
||||||
|
1184: 'DateTimeField',
|
||||||
|
1266: 'TimeField',
|
||||||
|
1700: 'FloatField',
|
||||||
|
}
|
@ -5,7 +5,11 @@ Requires psycopg 1: http://initd.org/projects/psycopg1
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.db.backends import util
|
from django.db.backends import util
|
||||||
import psycopg as Database
|
try:
|
||||||
|
import psycopg as Database
|
||||||
|
except ImportError, e:
|
||||||
|
from django.core.exceptions import ImproperlyConfigured
|
||||||
|
raise ImproperlyConfigured, "Error loading psycopg module: %s" % e
|
||||||
|
|
||||||
DatabaseError = Database.DatabaseError
|
DatabaseError = Database.DatabaseError
|
||||||
|
|
||||||
|
@ -5,7 +5,11 @@ Requires psycopg 2: http://initd.org/projects/psycopg2
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.db.backends import util
|
from django.db.backends import util
|
||||||
import psycopg2 as Database
|
try:
|
||||||
|
import psycopg2 as Database
|
||||||
|
except ImportError, e:
|
||||||
|
from django.core.exceptions import ImproperlyConfigured
|
||||||
|
raise ImproperlyConfigured, "Error loading psycopg2 module: %s" % e
|
||||||
|
|
||||||
DatabaseError = Database.DatabaseError
|
DatabaseError = Database.DatabaseError
|
||||||
|
|
||||||
|
@ -3,7 +3,11 @@ SQLite3 backend for django. Requires pysqlite2 (http://pysqlite.org/).
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.db.backends import util
|
from django.db.backends import util
|
||||||
from pysqlite2 import dbapi2 as Database
|
try:
|
||||||
|
from pysqlite2 import dbapi2 as Database
|
||||||
|
except ImportError, e:
|
||||||
|
from django.core.exceptions import ImproperlyConfigured
|
||||||
|
raise ImproperlyConfigured, "Error loading pysqlite2 module: %s" % e
|
||||||
|
|
||||||
DatabaseError = Database.DatabaseError
|
DatabaseError = Database.DatabaseError
|
||||||
|
|
||||||
|
@ -269,8 +269,8 @@ class Model(object):
|
|||||||
q._params.extend([param, param, getattr(self, self._meta.pk.attname)])
|
q._params.extend([param, param, getattr(self, self._meta.pk.attname)])
|
||||||
try:
|
try:
|
||||||
return q[0]
|
return q[0]
|
||||||
except IndexError, e:
|
except IndexError:
|
||||||
raise self.DoesNotExist, e.args
|
raise self.DoesNotExist, "%s matching query does not exist." % self.__class__._meta.object_name
|
||||||
|
|
||||||
def _get_next_or_previous_in_order(self, is_next):
|
def _get_next_or_previous_in_order(self, is_next):
|
||||||
cachename = "__%s_order_cache" % is_next
|
cachename = "__%s_order_cache" % is_next
|
||||||
|
@ -17,9 +17,15 @@ def get_apps():
|
|||||||
_app_list = []
|
_app_list = []
|
||||||
for app_name in settings.INSTALLED_APPS:
|
for app_name in settings.INSTALLED_APPS:
|
||||||
try:
|
try:
|
||||||
_app_list.append(__import__(app_name, '', '', ['models']).models)
|
mod = __import__(app_name, '', '', ['models'])
|
||||||
except (ImportError, AttributeError), e:
|
except ImportError:
|
||||||
pass
|
pass # Assume this app doesn't have a models.py in it.
|
||||||
|
# GOTCHA: It may have a models.py that raises ImportError.
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
_app_list.append(mod.models)
|
||||||
|
except AttributeError:
|
||||||
|
pass # This app doesn't have a models.py in it.
|
||||||
return _app_list
|
return _app_list
|
||||||
|
|
||||||
def get_app(app_label):
|
def get_app(app_label):
|
||||||
|
@ -95,6 +95,9 @@ class QuerySet(object):
|
|||||||
|
|
||||||
def __getitem__(self, k):
|
def __getitem__(self, k):
|
||||||
"Retrieve an item or slice from the set of results."
|
"Retrieve an item or slice from the set of results."
|
||||||
|
assert (not isinstance(k, slice) and (k >= 0)) \
|
||||||
|
or (isinstance(k, slice) and (k.start is None or k.start >= 0) and (k.stop is None or k.stop >= 0)), \
|
||||||
|
"Negative indexing is not supported."
|
||||||
if self._result_cache is None:
|
if self._result_cache is None:
|
||||||
if isinstance(k, slice):
|
if isinstance(k, slice):
|
||||||
# Offset:
|
# Offset:
|
||||||
@ -129,7 +132,7 @@ class QuerySet(object):
|
|||||||
return list(self._clone(_offset=offset, _limit=limit))[::k.step]
|
return list(self._clone(_offset=offset, _limit=limit))[::k.step]
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
return self._clone(_offset=k, _limit=1).get()
|
return list(self._clone(_offset=k, _limit=1))[0]
|
||||||
except self.model.DoesNotExist, e:
|
except self.model.DoesNotExist, e:
|
||||||
raise IndexError, e.args
|
raise IndexError, e.args
|
||||||
else:
|
else:
|
||||||
@ -193,6 +196,7 @@ class QuerySet(object):
|
|||||||
def get(self, *args, **kwargs):
|
def get(self, *args, **kwargs):
|
||||||
"Performs the SELECT and returns a single object matching the given keyword arguments."
|
"Performs the SELECT and returns a single object matching the given keyword arguments."
|
||||||
clone = self.filter(*args, **kwargs)
|
clone = self.filter(*args, **kwargs)
|
||||||
|
# clean up SQL by removing unneeded ORDER BY
|
||||||
if not clone._order_by:
|
if not clone._order_by:
|
||||||
clone._order_by = ()
|
clone._order_by = ()
|
||||||
obj_list = list(clone)
|
obj_list = list(clone)
|
||||||
@ -287,22 +291,26 @@ class QuerySet(object):
|
|||||||
|
|
||||||
def filter(self, *args, **kwargs):
|
def filter(self, *args, **kwargs):
|
||||||
"Returns a new QuerySet instance with the args ANDed to the existing set."
|
"Returns a new QuerySet instance with the args ANDed to the existing set."
|
||||||
return self._filter_or_exclude(Q, *args, **kwargs)
|
return self._filter_or_exclude(None, *args, **kwargs)
|
||||||
|
|
||||||
def exclude(self, *args, **kwargs):
|
def exclude(self, *args, **kwargs):
|
||||||
"Returns a new QuerySet instance with NOT (args) ANDed to the existing set."
|
"Returns a new QuerySet instance with NOT (args) ANDed to the existing set."
|
||||||
return self._filter_or_exclude(QNot, *args, **kwargs)
|
return self._filter_or_exclude(QNot, *args, **kwargs)
|
||||||
|
|
||||||
def _filter_or_exclude(self, qtype, *args, **kwargs):
|
def _filter_or_exclude(self, mapper, *args, **kwargs):
|
||||||
|
# mapper is a callable used to transform Q objects,
|
||||||
|
# or None for identity transform
|
||||||
|
if mapper is None:
|
||||||
|
mapper = lambda x: x
|
||||||
if len(args) > 0 or len(kwargs) > 0:
|
if len(args) > 0 or len(kwargs) > 0:
|
||||||
assert self._limit is None and self._offset is None, \
|
assert self._limit is None and self._offset is None, \
|
||||||
"Cannot filter a query once a slice has been taken."
|
"Cannot filter a query once a slice has been taken."
|
||||||
|
|
||||||
clone = self._clone()
|
clone = self._clone()
|
||||||
if len(kwargs) > 0:
|
if len(kwargs) > 0:
|
||||||
clone._filters = clone._filters & qtype(**kwargs)
|
clone._filters = clone._filters & mapper(Q(**kwargs))
|
||||||
if len(args) > 0:
|
if len(args) > 0:
|
||||||
clone._filters = clone._filters & reduce(operator.and_, args)
|
clone._filters = clone._filters & reduce(operator.and_, map(mapper, args))
|
||||||
return clone
|
return clone
|
||||||
|
|
||||||
def complex_filter(self, filter_obj):
|
def complex_filter(self, filter_obj):
|
||||||
@ -314,7 +322,7 @@ class QuerySet(object):
|
|||||||
if hasattr(filter_obj, 'get_sql'):
|
if hasattr(filter_obj, 'get_sql'):
|
||||||
return self._filter_or_exclude(None, filter_obj)
|
return self._filter_or_exclude(None, filter_obj)
|
||||||
else:
|
else:
|
||||||
return self._filter_or_exclude(Q, **filter_obj)
|
return self._filter_or_exclude(None, **filter_obj)
|
||||||
|
|
||||||
def select_related(self, true_or_false=True):
|
def select_related(self, true_or_false=True):
|
||||||
"Returns a new QuerySet instance with '_select_related' modified."
|
"Returns a new QuerySet instance with '_select_related' modified."
|
||||||
@ -578,9 +586,12 @@ class Q(object):
|
|||||||
|
|
||||||
class QNot(Q):
|
class QNot(Q):
|
||||||
"Encapsulates NOT (...) queries as objects"
|
"Encapsulates NOT (...) queries as objects"
|
||||||
|
def __init__(self, q):
|
||||||
|
"Creates a negation of the q object passed in."
|
||||||
|
self.q = q
|
||||||
|
|
||||||
def get_sql(self, opts):
|
def get_sql(self, opts):
|
||||||
tables, joins, where, params = super(QNot, self).get_sql(opts)
|
tables, joins, where, params = self.q.get_sql(opts)
|
||||||
where2 = ['(NOT (%s))' % " AND ".join(where)]
|
where2 = ['(NOT (%s))' % " AND ".join(where)]
|
||||||
return tables, joins, where2, params
|
return tables, joins, where2, params
|
||||||
|
|
||||||
|
@ -34,7 +34,6 @@ def object_list(request, queryset, paginate_by=None, allow_empty=False,
|
|||||||
number of objects, total
|
number of objects, total
|
||||||
"""
|
"""
|
||||||
queryset = queryset._clone()
|
queryset = queryset._clone()
|
||||||
model = queryset.model
|
|
||||||
if paginate_by:
|
if paginate_by:
|
||||||
paginator = ObjectPaginator(queryset, paginate_by)
|
paginator = ObjectPaginator(queryset, paginate_by)
|
||||||
page = request.GET.get('page', 1)
|
page = request.GET.get('page', 1)
|
||||||
@ -71,6 +70,7 @@ def object_list(request, queryset, paginate_by=None, allow_empty=False,
|
|||||||
else:
|
else:
|
||||||
c[key] = value
|
c[key] = value
|
||||||
if not template_name:
|
if not template_name:
|
||||||
|
model = queryset.model
|
||||||
template_name = "%s/%s_list.html" % (model._meta.app_label, model._meta.object_name.lower())
|
template_name = "%s/%s_list.html" % (model._meta.app_label, model._meta.object_name.lower())
|
||||||
t = template_loader.get_template(template_name)
|
t = template_loader.get_template(template_name)
|
||||||
return HttpResponse(t.render(c))
|
return HttpResponse(t.render(c))
|
||||||
|
@ -209,12 +209,12 @@ The per-site cache
|
|||||||
==================
|
==================
|
||||||
|
|
||||||
Once the cache is set up, the simplest way to use caching is to cache your
|
Once the cache is set up, the simplest way to use caching is to cache your
|
||||||
entire site. Just add ``django.middleware.cache.CacheMiddleware`` to your
|
entire site. Just add ``'django.middleware.cache.CacheMiddleware'`` to your
|
||||||
``MIDDLEWARE_CLASSES`` setting, as in this example::
|
``MIDDLEWARE_CLASSES`` setting, as in this example::
|
||||||
|
|
||||||
MIDDLEWARE_CLASSES = (
|
MIDDLEWARE_CLASSES = (
|
||||||
"django.middleware.cache.CacheMiddleware",
|
'django.middleware.cache.CacheMiddleware',
|
||||||
"django.middleware.common.CommonMiddleware",
|
'django.middleware.common.CommonMiddleware',
|
||||||
)
|
)
|
||||||
|
|
||||||
(The order of ``MIDDLEWARE_CLASSES`` matters. See "Order of MIDDLEWARE_CLASSES"
|
(The order of ``MIDDLEWARE_CLASSES`` matters. See "Order of MIDDLEWARE_CLASSES"
|
||||||
|
@ -17,7 +17,7 @@ middleware into your list of installed middleware.
|
|||||||
|
|
||||||
How to use it
|
How to use it
|
||||||
=============
|
=============
|
||||||
Add the middleware ``"django.contrib.csrf.middleware.CsrfMiddleware"`` to
|
Add the middleware ``'django.contrib.csrf.middleware.CsrfMiddleware'`` to
|
||||||
your list of middleware classes, ``MIDDLEWARE_CLASSES``. It needs to process
|
your list of middleware classes, ``MIDDLEWARE_CLASSES``. It needs to process
|
||||||
the response after the SessionMiddleware, so must come before it in the
|
the response after the SessionMiddleware, so must come before it in the
|
||||||
list. It also must process the response before things like compression
|
list. It also must process the response before things like compression
|
||||||
|
@ -23,10 +23,10 @@ name. For example, here's the default ``MIDDLEWARE_CLASSES`` created by
|
|||||||
``django-admin.py startproject``::
|
``django-admin.py startproject``::
|
||||||
|
|
||||||
MIDDLEWARE_CLASSES = (
|
MIDDLEWARE_CLASSES = (
|
||||||
"django.middleware.common.CommonMiddleware",
|
'django.middleware.common.CommonMiddleware',
|
||||||
"django.contrib.sessions.middleware.SessionMiddleware",
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||||
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
"django.middleware.doc.XViewMiddleware",
|
'django.middleware.doc.XViewMiddleware',
|
||||||
)
|
)
|
||||||
|
|
||||||
Django applies middleware in the order it's defined in ``MIDDLEWARE_CLASSES``,
|
Django applies middleware in the order it's defined in ``MIDDLEWARE_CLASSES``,
|
||||||
|
@ -14,7 +14,7 @@ Sessions are implemented via middleware_.
|
|||||||
|
|
||||||
Turn session functionality on and off by editing the ``MIDDLEWARE_CLASSES``
|
Turn session functionality on and off by editing the ``MIDDLEWARE_CLASSES``
|
||||||
setting. To activate sessions, make sure ``MIDDLEWARE_CLASSES`` contains
|
setting. To activate sessions, make sure ``MIDDLEWARE_CLASSES`` contains
|
||||||
``"django.contrib.sessions.middleware.SessionMiddleware"``.
|
``'django.contrib.sessions.middleware.SessionMiddleware'``.
|
||||||
|
|
||||||
The default ``settings.py`` created by ``django-admin.py startproject`` has
|
The default ``settings.py`` created by ``django-admin.py startproject`` has
|
||||||
``SessionMiddleware`` activated.
|
``SessionMiddleware`` activated.
|
||||||
|
@ -308,4 +308,4 @@ Here's how Django uses the sites framework:
|
|||||||
.. _redirects framework: http://www.djangoproject.com/documentation/redirects/
|
.. _redirects framework: http://www.djangoproject.com/documentation/redirects/
|
||||||
.. _flatpages framework: http://www.djangoproject.com/documentation/flatpages/
|
.. _flatpages framework: http://www.djangoproject.com/documentation/flatpages/
|
||||||
.. _syndication framework: http://www.djangoproject.com/documentation/syndication/
|
.. _syndication framework: http://www.djangoproject.com/documentation/syndication/
|
||||||
.. _authentication framework: http://www.djangoproject.com/documentation/syndication/
|
.. _authentication framework: http://www.djangoproject.com/documentation/authentication/
|
||||||
|
@ -784,27 +784,23 @@ In Python 2.4, the decorator syntax also works::
|
|||||||
Inclusion tags
|
Inclusion tags
|
||||||
~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Another type of template tag that is sometimes useful is when you want to
|
Another common type of template tag is the type that displays some data by
|
||||||
display some data that is computed at render time in a template fragment. For
|
rendering *another* template. For example, Django's admin interface uses custom
|
||||||
example, in Django's admin interface, there is a line of buttons along the
|
template tags to display the buttons along the botton of the "add/change" form
|
||||||
bottom of the `create/edit record` screen. These buttons always look the same,
|
pages. Those buttons always look the same, but the link targets change depending
|
||||||
but the link targets change depending upon the object being edited. So they
|
on the object being edited -- so they're a perfect case for using a small
|
||||||
are a perfect example for using a small template that is filled in with
|
template that is filled with details from the current object. (In the admin's
|
||||||
details from the current object. To save typing, it would also be nice if we
|
case, this is the ``submit_row`` tag.)
|
||||||
could wrap this whole display up in a single tag (in the admin templates this
|
|
||||||
is the ``submit_row`` tag).
|
|
||||||
|
|
||||||
We call these sorts of tags `inclusion tags`. In your template, you pass in
|
These sorts of tags are called `inclusion tags`.
|
||||||
any appropriate arguments and the tag uses those arguments, together with the
|
|
||||||
current context to render a template and include the result in the output.
|
|
||||||
|
|
||||||
Writing inclusion tags is probably best demonstrated by example. We will write
|
Writing inclusion tags is probably best demonstrated by example. Let's write a
|
||||||
a tag that outputs a list of choices for a Poll object, such as was created in
|
tag that outputs a list of choices for a given ``Poll`` object, such as was
|
||||||
the tutorials_. We will use this tag like this::
|
created in the tutorials_. We'll use the tag like this::
|
||||||
|
|
||||||
{{ show_results poll }}
|
{% show_results poll %}
|
||||||
|
|
||||||
and the output will be something like this::
|
...and the output will be something like this::
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>First choice</li>
|
<li>First choice</li>
|
||||||
@ -812,21 +808,18 @@ and the output will be something like this::
|
|||||||
<li>Third choice</li>
|
<li>Third choice</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
First, we define the function which takes the argument and produces a
|
First, define the function that takes the argument and produces a dictionary of
|
||||||
dictionary of data for the result. The important point here is we only need to
|
data for the result. The important point here is we only need to return a
|
||||||
return a dictionary, not anything more complex. This will be used to substitue
|
dictionary, not anything more complex. This will be used as a template context
|
||||||
for values in the template fragment, just as when templates are used
|
for the template fragment. Example::
|
||||||
elsewhere.
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
def show_results(poll):
|
def show_results(poll):
|
||||||
choices = poll.choice_set.all()
|
choices = poll.choice_set.all()
|
||||||
return {'choices': choices}
|
return {'choices': choices}
|
||||||
|
|
||||||
We also need to create the template that is used to render the output. This
|
Next, create the template used to render the tag's output. This template is a
|
||||||
template is a fixed feature of the tag: the tag writer specifies it, not the
|
fixed feature of the tag: the tag writer specifies it, not the template
|
||||||
template designer. In our case, the template is very simple::
|
designer. Following our example, the template is very simple::
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
{% for choice in choices %}
|
{% for choice in choices %}
|
||||||
@ -834,50 +827,33 @@ template designer. In our case, the template is very simple::
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
Now we can create the inclusion tag. Suppose the above template is in a file
|
Now, create and register the inclusion tag by calling the ``inclusion_tag()``
|
||||||
called ``results.html`` in a directory that is searched by the template
|
method on a ``Library`` object. Following our example, if the above template is
|
||||||
loader. We register our new tag similarly to a normal tag.
|
in a file called ``results.html`` in a directory that's searched by the template
|
||||||
|
loader, we'd register the tag like this::
|
||||||
::
|
|
||||||
|
|
||||||
# Here, register is a django.template.Library instance, as before
|
# Here, register is a django.template.Library instance, as before
|
||||||
register.inclusion_tag('results.html')(show_results)
|
register.inclusion_tag('results.html')(show_results)
|
||||||
|
|
||||||
As always, Python 2.4 decorator syntax works as well, so we could have
|
As always, Python 2.4 decorator syntax works as well, so we could have
|
||||||
written
|
written::
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
@inclusion_tag('results.html')
|
@inclusion_tag('results.html')
|
||||||
def show_results(poll):
|
def show_results(poll):
|
||||||
...
|
...
|
||||||
|
|
||||||
when first creating the function.
|
...when first creating the function.
|
||||||
|
|
||||||
In some cases, an inclusion tag might require a large number of arguments to
|
Sometimes, your inclusion tags might require a large number of arguments,
|
||||||
display itself properly. In essence, it would depend largely on the current
|
making it a pain for template authors to pass in all the arguments and remember
|
||||||
context it was being rendered with. We can make these sorts of tags easier to
|
their order. To solve this, Django provides a ``takes_context`` option for
|
||||||
write by telling the ``inclusion_tag`` function that the whole context
|
inclusion tags. If you specify ``takes_context`` in creating a template tag,
|
||||||
should be passed in as an argument to the function. This will be done
|
the tag will have no required arguments, and the underlying Python function
|
||||||
invisibly as far as the template tag user is concerned: they will not need to
|
will have one argument -- the template context as of when the tag was called.
|
||||||
do anything to pass in the context.
|
|
||||||
|
|
||||||
For example, suppose we are writing an inclusion tag that will always be used
|
For example, say you're writing an inclusion tag that will always be used in a
|
||||||
in a context that contains ``home_link`` and ``home_title`` variables that
|
context that contains ``home_link`` and ``home_title`` variables that point
|
||||||
point back to the main page. We can write a tag that is used like this::
|
back to the main page. Here's what the Python function would look like::
|
||||||
|
|
||||||
{{ jump_link }}
|
|
||||||
|
|
||||||
and renders this::
|
|
||||||
|
|
||||||
Jump directly to <a href="http://example.com/home">Home</a>
|
|
||||||
|
|
||||||
The tag function is almost as simple as before. This time it takes no
|
|
||||||
arguments except the ``context`` (and the parameter `must` be called
|
|
||||||
``context`` in this case; the special parameter named is used internally by
|
|
||||||
Django to fill in the values correctly).
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
# The first argument *must* be called "context" here.
|
# The first argument *must* be called "context" here.
|
||||||
def jump_link(context):
|
def jump_link(context):
|
||||||
@ -885,19 +861,28 @@ Django to fill in the values correctly).
|
|||||||
'link': context['home_link'],
|
'link': context['home_link'],
|
||||||
'title': context['home_title'],
|
'title': context['home_title'],
|
||||||
}
|
}
|
||||||
|
# Register the custom tag as an inclusion tag with takes_context=True.
|
||||||
|
register.inclusion_tag('link.html', takes_context=True)(jump_link)
|
||||||
|
|
||||||
Our template is very simple again::
|
(Note that the first parameter to the function *must* be called ``context``.)
|
||||||
|
|
||||||
|
In that ``register.inclusion_tag()`` line, we specified ``takes_context=True``
|
||||||
|
and the name of the template. Here's what the template ``link.html`` might look
|
||||||
|
like::
|
||||||
|
|
||||||
Jump directly to <a href="{{ link }}">{{ title }}</a>.
|
Jump directly to <a href="{{ link }}">{{ title }}</a>.
|
||||||
|
|
||||||
Assuming the template is in a file called ``link.html``, we register this new
|
Then, any time you want to use that custom tag, load its library and call it
|
||||||
tag as follows::
|
without any arguments, like so::
|
||||||
|
|
||||||
register.inclusion_tag('link.html', takes_context = True)(jump_link)
|
{% jump_link %}
|
||||||
|
|
||||||
The ``takes_context`` parameter here defaults to *False*. When it is set to
|
Note that when you're using ``takes_context=True``, there's no need to pass
|
||||||
*True*, our tag is passed the implicit context as in this example. That is the
|
arguments to the template tag. It automatically gets access to the context.
|
||||||
only difference between this case and our previous use of ``inclusion_tag``.
|
|
||||||
|
The ``takes_context`` parameter defaults to ``False``. When it's set to *True*,
|
||||||
|
the tag is passed the context object, as in this example. That's the only
|
||||||
|
difference between this case and the previous ``inclusion_tag`` example.
|
||||||
|
|
||||||
.. _tutorials: http://www.djangoproject.com/documentation/tutorial1/#creating-models
|
.. _tutorials: http://www.djangoproject.com/documentation/tutorial1/#creating-models
|
||||||
|
|
||||||
|
@ -32,10 +32,10 @@ To activate this feature, just add the ``TransactionMiddleware`` middleware to
|
|||||||
your ``MIDDLEWARE_CLASSES`` setting::
|
your ``MIDDLEWARE_CLASSES`` setting::
|
||||||
|
|
||||||
MIDDLEWARE_CLASSES = (
|
MIDDLEWARE_CLASSES = (
|
||||||
"django.contrib.sessions.middleware.SessionMiddleware",
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||||
"django.middleware.common.CommonMiddleware",
|
'django.middleware.common.CommonMiddleware',
|
||||||
"django.middleware.cache.CacheMiddleware",
|
'django.middleware.cache.CacheMiddleware',
|
||||||
"django.middleware.transaction.TransactionMiddleware",
|
'django.middleware.transaction.TransactionMiddleware',
|
||||||
)
|
)
|
||||||
|
|
||||||
The order is quite important. The transaction middleware applies not only to
|
The order is quite important. The transaction middleware applies not only to
|
||||||
|
@ -284,8 +284,8 @@ Here's what it looks like at this point:
|
|||||||
:alt: Polls change list page
|
:alt: Polls change list page
|
||||||
:target: http://media.djangoproject.com/img/doc/tutorial/admin04.png
|
:target: http://media.djangoproject.com/img/doc/tutorial/admin04.png
|
||||||
|
|
||||||
By default, Django displays the ``repr()`` of each object. But it'd be more
|
By default, Django displays the ``str()`` of each object. But sometimes it'd
|
||||||
helpful if we could display individual fields. To do that, use the
|
be more helpful if we could display individual fields. To do that, use the
|
||||||
``list_display`` option, which is a tuple of field names to display, as columns,
|
``list_display`` option, which is a tuple of field names to display, as columns,
|
||||||
on the change list page for the object::
|
on the change list page for the object::
|
||||||
|
|
||||||
|
2
setup.py
2
setup.py
@ -22,8 +22,10 @@ setup(
|
|||||||
'locale/el/LC_MESSAGES/*',
|
'locale/el/LC_MESSAGES/*',
|
||||||
'locale/en/LC_MESSAGES/*',
|
'locale/en/LC_MESSAGES/*',
|
||||||
'locale/es/LC_MESSAGES/*',
|
'locale/es/LC_MESSAGES/*',
|
||||||
|
'locale/es_AR/LC_MESSAGES/*',
|
||||||
'locale/fr/LC_MESSAGES/*',
|
'locale/fr/LC_MESSAGES/*',
|
||||||
'locale/gl/LC_MESSAGES/*',
|
'locale/gl/LC_MESSAGES/*',
|
||||||
|
'locale/hu/LC_MESSAGES/*',
|
||||||
'locale/he/LC_MESSAGES/*',
|
'locale/he/LC_MESSAGES/*',
|
||||||
'locale/is/LC_MESSAGES/*',
|
'locale/is/LC_MESSAGES/*',
|
||||||
'locale/it/LC_MESSAGES/*',
|
'locale/it/LC_MESSAGES/*',
|
||||||
|
@ -283,6 +283,16 @@ Traceback (most recent call last):
|
|||||||
...
|
...
|
||||||
AssertionError: Cannot combine queries once a slice has been taken.
|
AssertionError: Cannot combine queries once a slice has been taken.
|
||||||
|
|
||||||
|
# Negative slices are not supported, due to database constraints.
|
||||||
|
# (hint: inverting your ordering might do what you need).
|
||||||
|
>>> Article.objects.all()[-1]
|
||||||
|
Traceback (most recent call last):
|
||||||
|
...
|
||||||
|
AssertionError: Negative indexing is not supported.
|
||||||
|
>>> Article.objects.all()[0:-5]
|
||||||
|
Traceback (most recent call last):
|
||||||
|
...
|
||||||
|
AssertionError: Negative indexing is not supported.
|
||||||
|
|
||||||
# An Article instance doesn't have access to the "objects" attribute.
|
# An Article instance doesn't have access to the "objects" attribute.
|
||||||
# That's only available on the class.
|
# That's only available on the class.
|
||||||
|
@ -89,6 +89,10 @@ Hello and goodbye
|
|||||||
>>> Article.objects.filter(Q(headline__startswith='Hello')).in_bulk([1,2])
|
>>> Article.objects.filter(Q(headline__startswith='Hello')).in_bulk([1,2])
|
||||||
{1: Hello}
|
{1: Hello}
|
||||||
|
|
||||||
|
# Demonstrating exclude with a Q object
|
||||||
|
>>> Article.objects.exclude(Q(headline__startswith='Hello'))
|
||||||
|
[Goodbye]
|
||||||
|
|
||||||
# The 'complex_filter' method supports framework features such as
|
# The 'complex_filter' method supports framework features such as
|
||||||
# 'limit_choices_to' which normally take a single dictionary of lookup arguments
|
# 'limit_choices_to' which normally take a single dictionary of lookup arguments
|
||||||
# but need to support arbitrary queries via Q objects too.
|
# but need to support arbitrary queries via Q objects too.
|
||||||
|
@ -56,6 +56,10 @@ API_TESTS = """
|
|||||||
>>> Article.objects.order_by('headline')[1:3]
|
>>> Article.objects.order_by('headline')[1:3]
|
||||||
[Article 2, Article 3]
|
[Article 2, Article 3]
|
||||||
|
|
||||||
|
# Getting a single item should work too:
|
||||||
|
>>> Article.objects.all()[0]
|
||||||
|
Article 4
|
||||||
|
|
||||||
# Use '?' to order randomly. (We're using [...] in the output to indicate we
|
# Use '?' to order randomly. (We're using [...] in the output to indicate we
|
||||||
# don't know what order the output will be in.
|
# don't know what order the output will be in.
|
||||||
>>> Article.objects.order_by('?')
|
>>> Article.objects.order_by('?')
|
||||||
|
@ -20,6 +20,17 @@ def log_error(model_name, title, description):
|
|||||||
|
|
||||||
MODEL_TEST_DIR = os.path.join(os.path.dirname(__file__), MODEL_TESTS_DIR_NAME)
|
MODEL_TEST_DIR = os.path.join(os.path.dirname(__file__), MODEL_TESTS_DIR_NAME)
|
||||||
|
|
||||||
|
ALWAYS_INSTALLED_APPS = [
|
||||||
|
'django.contrib.admin',
|
||||||
|
'django.contrib.auth',
|
||||||
|
'django.contrib.comments',
|
||||||
|
'django.contrib.contenttypes',
|
||||||
|
'django.contrib.flatpages',
|
||||||
|
'django.contrib.redirects',
|
||||||
|
'django.contrib.sessions',
|
||||||
|
'django.contrib.sites',
|
||||||
|
]
|
||||||
|
|
||||||
def get_test_models():
|
def get_test_models():
|
||||||
return [f for f in os.listdir(MODEL_TEST_DIR) if not f.startswith('__init__') and not f.startswith('.')]
|
return [f for f in os.listdir(MODEL_TEST_DIR) if not f.startswith('__init__') and not f.startswith('.')]
|
||||||
|
|
||||||
@ -78,7 +89,7 @@ class TestRunner:
|
|||||||
settings.INSTALLED_APPS
|
settings.INSTALLED_APPS
|
||||||
|
|
||||||
# Manually set INSTALLED_APPS to point to the test models.
|
# Manually set INSTALLED_APPS to point to the test models.
|
||||||
settings.INSTALLED_APPS = [MODEL_TESTS_DIR_NAME + '.' + a for a in get_test_models()]
|
settings.INSTALLED_APPS = ALWAYS_INSTALLED_APPS + [MODEL_TESTS_DIR_NAME + '.' + a for a in get_test_models()]
|
||||||
|
|
||||||
# Manually set DEBUG = False.
|
# Manually set DEBUG = False.
|
||||||
settings.DEBUG = False
|
settings.DEBUG = False
|
||||||
|
Loading…
x
Reference in New Issue
Block a user