1
0
mirror of https://github.com/django/django.git synced 2025-07-04 09:49:12 +00:00

[soc2009/admin-ui] Merging up to trunk svn:r11382 into my branch (this time from the right directory)

git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/admin-ui@11400 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Zain Memon 2009-08-05 04:16:35 +00:00
parent 98fc6a1b68
commit ba47aebc6d
126 changed files with 22311 additions and 11080 deletions

View File

@ -14,6 +14,7 @@ The PRIMARY AUTHORS are (and/or have been):
* Robert Wittams * Robert Wittams
* Gary Wilson * Gary Wilson
* Brian Rosner * Brian Rosner
* Justin Bronn
* Karen Tracey * Karen Tracey
More information on the main contributors to Django can be found in More information on the main contributors to Django can be found in
@ -131,6 +132,7 @@ answer newbie questions, and generally made Django that much better:
Andrew Durdin <adurdin@gmail.com> Andrew Durdin <adurdin@gmail.com>
dusk@woofle.net dusk@woofle.net
Andy Dustman <farcepest@gmail.com> Andy Dustman <farcepest@gmail.com>
J. Clifford Dyer <jcd@unc.edu>
Clint Ecker Clint Ecker
Nick Efford <nick@efford.org> Nick Efford <nick@efford.org>
eibaan@gmail.com eibaan@gmail.com
@ -199,6 +201,7 @@ answer newbie questions, and generally made Django that much better:
Ian Holsman <http://feh.holsman.net/> Ian Holsman <http://feh.holsman.net/>
Kieran Holland <http://www.kieranholland.com> Kieran Holland <http://www.kieranholland.com>
Sung-Jin Hong <serialx.net@gmail.com> Sung-Jin Hong <serialx.net@gmail.com>
Leo "hylje" Honkanen <sealage@gmail.com>
Richard House <Richard.House@i-logue.com> Richard House <Richard.House@i-logue.com>
Robert Rock Howard <http://djangomojo.com/> Robert Rock Howard <http://djangomojo.com/>
John Huddleston <huddlej@wwu.edu> John Huddleston <huddlej@wwu.edu>
@ -217,7 +220,7 @@ answer newbie questions, and generally made Django that much better:
Michael Josephson <http://www.sdjournal.com/> Michael Josephson <http://www.sdjournal.com/>
jpellerin@gmail.com jpellerin@gmail.com
junzhang.jn@gmail.com junzhang.jn@gmail.com
Antti Kaihola <http://akaihola.blogspot.com/> Antti Kaihola <http://djangopeople.net/akaihola/>
Bahadır Kandemir <bahadir@pardus.org.tr> Bahadır Kandemir <bahadir@pardus.org.tr>
Karderio <karderio@gmail.com> Karderio <karderio@gmail.com>
Nagy Károly <charlie@rendszergazda.com> Nagy Károly <charlie@rendszergazda.com>
@ -436,6 +439,7 @@ answer newbie questions, and generally made Django that much better:
viestards.lists@gmail.com viestards.lists@gmail.com
George Vilches <gav@thataddress.com> George Vilches <gav@thataddress.com>
Vlado <vlado@labath.org> Vlado <vlado@labath.org>
Zachary Voase <zacharyvoase@gmail.com>
Milton Waddams Milton Waddams
Chris Wagner <cw264701@ohio.edu> Chris Wagner <cw264701@ohio.edu>
Rick Wagner <rwagner@physics.ucsd.edu> Rick Wagner <rwagner@physics.ucsd.edu>

View File

@ -1,4 +1,4 @@
VERSION = (1, 1, 0, 'beta', 1) VERSION = (1, 2, 0, 'alpha', 0)
def get_version(): def get_version():
version = '%s.%s' % (VERSION[0], VERSION[1]) version = '%s.%s' % (VERSION[0], VERSION[1])
@ -7,9 +7,8 @@ def get_version():
if VERSION[3:] == ('alpha', 0): if VERSION[3:] == ('alpha', 0):
version = '%s pre-alpha' % version version = '%s pre-alpha' % version
else: else:
version = '%s %s' % (version, VERSION[3])
if VERSION[3] != 'final': if VERSION[3] != 'final':
version = '%s %s' % (version, VERSION[4]) version = '%s %s %s' % (version, VERSION[3], VERSION[4])
from django.utils.version import get_svn_revision from django.utils.version import get_svn_revision
svn_rev = get_svn_revision() svn_rev = get_svn_revision()
if svn_rev != u'SVN-unknown': if svn_rev != u'SVN-unknown':

View File

@ -1,19 +1,20 @@
# translation of django.po to Arabic # translation of django.po to Arabic
# This file is distributed under the same license as the django package. # This file is distributed under the same license as the django package.
# #
# Ossama M. Khayat <okhayat@yahoo.com>, 2009.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: django\n" "Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-04-12 07:33+0300\n" "POT-Creation-Date: 2009-05-10 15:09+0300\n"
"PO-Revision-Date: 2009-04-12 08:01+0300\n" "PO-Revision-Date: 2009-05-10 15:18+0300\n"
"Last-Translator: Ossama M. Khayat <okhayat@yahoo.com>\n"
"Language-Team: Arabic <support@arabeyes.org>\n" "Language-Team: Arabic <support@arabeyes.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n" "X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=4; plural=(n == 1? 0 : (n == 2? 1 : (n <= 10? 2 : 3)))\n\n" "Plural-Forms: nplurals=4; plural=(n == 1? 0 : (n == 2? 1 : (n <= 10? 2 : 3)))\n\n"
"\n"
#: conf/global_settings.py:44 #: conf/global_settings.py:44
msgid "Arabic" msgid "Arabic"
@ -219,16 +220,16 @@ msgstr "الصينيّة المبسطة"
msgid "Traditional Chinese" msgid "Traditional Chinese"
msgstr "الصينيّة التقليدية" msgstr "الصينيّة التقليدية"
#: contrib/admin/actions.py:56 #: contrib/admin/actions.py:60
#, python-format #, python-format
msgid "Successfully deleted %(count)d %(items)s." msgid "Successfully deleted %(count)d %(items)s."
msgstr "تم حذف %(count)d %(items)s بنجاح." msgstr "تم حذف %(count)d %(items)s بنجاح."
#: contrib/admin/actions.py:63 contrib/admin/options.py:1023 #: contrib/admin/actions.py:67 contrib/admin/options.py:1025
msgid "Are you sure?" msgid "Are you sure?"
msgstr "هل أنت متأكد؟" msgstr "هل أنت متأكد؟"
#: contrib/admin/actions.py:81 #: contrib/admin/actions.py:85
#, python-format #, python-format
msgid "Delete selected %(verbose_name_plural)s" msgid "Delete selected %(verbose_name_plural)s"
msgstr "حذف %(verbose_name_plural)s المحددون" msgstr "حذف %(verbose_name_plural)s المحددون"
@ -267,15 +268,15 @@ msgstr "هذا الشهر"
msgid "This year" msgid "This year"
msgstr "هذه السنة" msgstr "هذه السنة"
#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 #: contrib/admin/filterspecs.py:147 forms/widgets.py:434
msgid "Yes" msgid "Yes"
msgstr "نعم" msgstr "نعم"
#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 #: contrib/admin/filterspecs.py:147 forms/widgets.py:434
msgid "No" msgid "No"
msgstr "لا" msgstr "لا"
#: contrib/admin/filterspecs.py:154 forms/widgets.py:413 #: contrib/admin/filterspecs.py:154 forms/widgets.py:434
msgid "Unknown" msgid "Unknown"
msgstr "مجهول" msgstr "مجهول"
@ -315,80 +316,81 @@ msgstr "مُدخلات السجل"
msgid "None" msgid "None"
msgstr "لاشيء" msgstr "لاشيء"
#: contrib/admin/options.py:517 #: contrib/admin/options.py:519
#, python-format #, python-format
msgid "Changed %s." msgid "Changed %s."
msgstr "عدّل %s." msgstr "عدّل %s."
#: contrib/admin/options.py:517 contrib/admin/options.py:527 #: contrib/admin/options.py:519 contrib/admin/options.py:529
#: contrib/comments/templates/comments/preview.html:16 forms/models.py:306 #: contrib/comments/templates/comments/preview.html:16 forms/models.py:388
#: forms/models.py:587
msgid "and" msgid "and"
msgstr "و" msgstr "و"
#: contrib/admin/options.py:522 #: contrib/admin/options.py:524
#, python-format #, python-format
msgid "Added %(name)s \"%(object)s\"." msgid "Added %(name)s \"%(object)s\"."
msgstr "أضاف %(name)s \"%(object)s\"." msgstr "أضاف %(name)s \"%(object)s\"."
#: contrib/admin/options.py:526 #: contrib/admin/options.py:528
#, python-format #, python-format
msgid "Changed %(list)s for %(name)s \"%(object)s\"." msgid "Changed %(list)s for %(name)s \"%(object)s\"."
msgstr "غيّر %(list)s في %(name)s \"%(object)s\"." msgstr "غيّر %(list)s في %(name)s \"%(object)s\"."
#: contrib/admin/options.py:531 #: contrib/admin/options.py:533
#, python-format #, python-format
msgid "Deleted %(name)s \"%(object)s\"." msgid "Deleted %(name)s \"%(object)s\"."
msgstr "حذف %(name)s \"%(object)s\"." msgstr "حذف %(name)s \"%(object)s\"."
#: contrib/admin/options.py:535 #: contrib/admin/options.py:537
msgid "No fields changed." msgid "No fields changed."
msgstr "لم يتم تغيير أية حقول." msgstr "لم يتم تغيير أية حقول."
#: contrib/admin/options.py:596 contrib/auth/admin.py:67 #: contrib/admin/options.py:598 contrib/auth/admin.py:67
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully." msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "تم اضافة %(name)s \"%(obj)s\" بنجاح." msgstr "تم اضافة %(name)s \"%(obj)s\" بنجاح."
#: contrib/admin/options.py:600 contrib/admin/options.py:633 #: contrib/admin/options.py:602 contrib/admin/options.py:635
#: contrib/auth/admin.py:75 #: contrib/auth/admin.py:75
msgid "You may edit it again below." msgid "You may edit it again below."
msgstr "يمكنك تعديله مجددا في الأسفل." msgstr "يمكنك تعديله مجددا في الأسفل."
#: contrib/admin/options.py:610 contrib/admin/options.py:643 #: contrib/admin/options.py:612 contrib/admin/options.py:645
#, python-format #, python-format
msgid "You may add another %s below." msgid "You may add another %s below."
msgstr "يمكنك إضافة %s آخر بالأسفل." msgstr "يمكنك إضافة %s آخر بالأسفل."
#: contrib/admin/options.py:631 #: contrib/admin/options.py:633
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully." msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr "تم تغيير %(name)s \"%(obj)s\" بنجاح." msgstr "تم تغيير %(name)s \"%(obj)s\" بنجاح."
#: contrib/admin/options.py:639 #: contrib/admin/options.py:641
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr "تمت إضافة %(name)s \"%(obj)s\" بنجاح، يمكنك تعديله مرة أخرى بالأسفل." msgstr "تمت إضافة %(name)s \"%(obj)s\" بنجاح، يمكنك تعديله مرة أخرى بالأسفل."
#: contrib/admin/options.py:770 #: contrib/admin/options.py:772
#, python-format #, python-format
msgid "Add %s" msgid "Add %s"
msgstr "أضف %s" msgstr "أضف %s"
#: contrib/admin/options.py:801 contrib/admin/options.py:1001 #: contrib/admin/options.py:803 contrib/admin/options.py:1003
#, python-format #, python-format
msgid "%(name)s object with primary key %(key)r does not exist." msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "العنصر %(name)s الذي به الحقل الأساسي %(key)r غير موجود." msgstr "العنصر %(name)s الذي به الحقل الأساسي %(key)r غير موجود."
#: contrib/admin/options.py:858 #: contrib/admin/options.py:860
#, python-format #, python-format
msgid "Change %s" msgid "Change %s"
msgstr "عدّل %s" msgstr "عدّل %s"
#: contrib/admin/options.py:902 #: contrib/admin/options.py:904
msgid "Database error" msgid "Database error"
msgstr "خطـأ في قاعدة البيانات" msgstr "خطـأ في قاعدة البيانات"
#: contrib/admin/options.py:938 #: contrib/admin/options.py:940
#, python-format #, python-format
msgid "%(count)s %(name)s was changed successfully." msgid "%(count)s %(name)s was changed successfully."
msgid_plural "%(count)s %(name)s were changed successfully." msgid_plural "%(count)s %(name)s were changed successfully."
@ -397,12 +399,12 @@ msgstr[1] "تم تغيير عنصري %(name)s بنجاح."
msgstr[2] "تم تغيير %(count)s %(name)s بنجاح." msgstr[2] "تم تغيير %(count)s %(name)s بنجاح."
msgstr[3] "تم تغيير %(count)s %(name)s بنجاح." msgstr[3] "تم تغيير %(count)s %(name)s بنجاح."
#: contrib/admin/options.py:1016 #: contrib/admin/options.py:1018
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "تم حذف %(name)s \"%(obj)s\" بنجاح." msgstr "تم حذف %(name)s \"%(obj)s\" بنجاح."
#: contrib/admin/options.py:1052 #: contrib/admin/options.py:1054
#, python-format #, python-format
msgid "Change history: %s" msgid "Change history: %s"
msgstr "تاريخ التغيير: %s" msgstr "تاريخ التغيير: %s"
@ -498,7 +500,7 @@ msgstr "نحن آسفون، لكننا لم نعثر على الصفحة الم
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/app_index.html:8 #: contrib/admin/templates/admin/app_index.html:8
#: contrib/admin/templates/admin/base.html:33 #: contrib/admin/templates/admin/base.html:31
#: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_form.html:17
#: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/change_list.html:25
#: contrib/admin/templates/admin/delete_confirmation.html:6 #: contrib/admin/templates/admin/delete_confirmation.html:6
@ -542,7 +544,6 @@ msgid "Run the selected action"
msgstr "نفذ العملية المحدّدة" msgstr "نفذ العملية المحدّدة"
#: contrib/admin/templates/admin/actions.html:4 #: contrib/admin/templates/admin/actions.html:4
#: contrib/admin/templates/admin/search_form.html:8
msgid "Go" msgid "Go"
msgstr "نفّذ" msgstr "نفّذ"
@ -552,18 +553,18 @@ msgstr "نفّذ"
msgid "%(name)s" msgid "%(name)s"
msgstr "%(name)s" msgstr "%(name)s"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:26
msgid "Welcome," msgid "Welcome,"
msgstr "أهلا، " msgstr "أهلا، "
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:26
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
msgid "Documentation" msgid "Documentation"
msgstr "الوثائق" msgstr "الوثائق"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:26
#: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:14
#: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/admin/auth/user/change_password.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
@ -571,7 +572,7 @@ msgstr "الوثائق"
msgid "Change password" msgid "Change password"
msgstr "غيّر كلمة المرور" msgstr "غيّر كلمة المرور"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:26
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
msgid "Log out" msgid "Log out"
@ -702,6 +703,10 @@ msgstr "عملياتي"
msgid "None available" msgid "None available"
msgstr "لا يوجد" msgstr "لا يوجد"
#: contrib/admin/templates/admin/index.html:72
msgid "Unknown content"
msgstr "مُحتوى مجهول"
#: contrib/admin/templates/admin/invalid_setup.html:7 #: contrib/admin/templates/admin/invalid_setup.html:7
msgid "" msgid ""
"Something's wrong with your database installation. Make sure the appropriate " "Something's wrong with your database installation. Make sure the appropriate "
@ -749,6 +754,10 @@ msgstr ""
msgid "Show all" msgid "Show all"
msgstr "أظهر الكل" msgstr "أظهر الكل"
#: contrib/admin/templates/admin/search_form.html:8
msgid "Search"
msgstr "ابحث"
#: contrib/admin/templates/admin/search_form.html:10 #: contrib/admin/templates/admin/search_form.html:10
#, python-format #, python-format
msgid "1 result" msgid "1 result"
@ -1755,18 +1764,24 @@ msgid ""
"form from this page." "form from this page."
msgstr "نعتذر، لكنّ استمارتك انتهت صلاحيتها. رجاء أكمل تعبئة الاستمارة من هذه الصفحة." msgstr "نعتذر، لكنّ استمارتك انتهت صلاحيتها. رجاء أكمل تعبئة الاستمارة من هذه الصفحة."
#: contrib/gis/forms/fields.py:14 #: contrib/gis/forms/fields.py:17
msgid "No geometry value provided." msgid "No geometry value provided."
msgstr "لم تُدخل أي أحداثيات." msgstr "لم تُدخل أي أحداثيات."
#: contrib/gis/forms/fields.py:15 #: contrib/gis/forms/fields.py:18
msgid "Invalid geometry value." msgid "Invalid geometry value."
msgstr "الإحداثيات غير صحيحة." msgstr "الإحداثيات غير صحيحة."
#: contrib/gis/forms/fields.py:16 #: contrib/gis/forms/fields.py:19
msgid "Invalid geometry type." msgid "Invalid geometry type."
msgstr "نوع الإحداثيات غير صحيح." msgstr "نوع الإحداثيات غير صحيح."
#: contrib/gis/forms/fields.py:20
msgid ""
"An error occurred when transforming the geometry to the SRID of the geometry "
"form field."
msgstr "حدث خطأ أثناء تحويل geometry إلى حقل SRID."
#: contrib/humanize/templatetags/humanize.py:19 #: contrib/humanize/templatetags/humanize.py:19
msgid "th" msgid "th"
msgstr " " msgstr " "
@ -3699,7 +3714,7 @@ msgstr "إنجلترا"
#: contrib/localflavor/uk/uk_regions.py:91 #: contrib/localflavor/uk/uk_regions.py:91
msgid "Northern Ireland" msgid "Northern Ireland"
msgstr "" msgstr "شمال ايرلندا"
#: contrib/localflavor/uk/uk_regions.py:92 #: contrib/localflavor/uk/uk_regions.py:92
msgid "Scotland" msgid "Scotland"
@ -3727,7 +3742,7 @@ msgstr "أدخل رمز بريد جنوب إفريقي صحيح"
#: contrib/localflavor/za/za_provinces.py:4 #: contrib/localflavor/za/za_provinces.py:4
msgid "Eastern Cape" msgid "Eastern Cape"
msgstr "" msgstr "شرق كيب"
#: contrib/localflavor/za/za_provinces.py:5 #: contrib/localflavor/za/za_provinces.py:5
msgid "Free State" msgid "Free State"
@ -3751,15 +3766,15 @@ msgstr ""
#: contrib/localflavor/za/za_provinces.py:10 #: contrib/localflavor/za/za_provinces.py:10
msgid "Northern Cape" msgid "Northern Cape"
msgstr "" msgstr "شمال كيب"
#: contrib/localflavor/za/za_provinces.py:11 #: contrib/localflavor/za/za_provinces.py:11
msgid "North West" msgid "North West"
msgstr "" msgstr "شمال شرق"
#: contrib/localflavor/za/za_provinces.py:12 #: contrib/localflavor/za/za_provinces.py:12
msgid "Western Cape" msgid "Western Cape"
msgstr "" msgstr "غير كيب"
#: contrib/redirects/models.py:7 #: contrib/redirects/models.py:7
msgid "redirect from" msgid "redirect from"
@ -3823,7 +3838,7 @@ msgstr "اسم العرض"
msgid "sites" msgid "sites"
msgstr "مواقع" msgstr "مواقع"
#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:707 #: db/models/fields/__init__.py:356 db/models/fields/__init__.py:710
msgid "This value must be an integer." msgid "This value must be an integer."
msgstr "هذه القيمة يجب أن تكون رقما صحيحا." msgstr "هذه القيمة يجب أن تكون رقما صحيحا."
@ -3856,15 +3871,15 @@ msgstr "أدخل تاريخ/وقت صحيح بالنسق YYYY-MM-DD HH:MM[:ss[.u
msgid "This value must be a decimal number." msgid "This value must be a decimal number."
msgstr "يجب أن تكون هذه القيمة رقماً عشرياً." msgstr "يجب أن تكون هذه القيمة رقماً عشرياً."
#: db/models/fields/__init__.py:683 #: db/models/fields/__init__.py:686
msgid "This value must be a float." msgid "This value must be a float."
msgstr "هذه القيمة يجب أن تكون عدد فاصلة عائمة." msgstr "هذه القيمة يجب أن تكون عدد فاصلة عائمة."
#: db/models/fields/__init__.py:743 #: db/models/fields/__init__.py:746
msgid "This value must be either None, True or False." msgid "This value must be either None, True or False."
msgstr "يجب أن تكون هذه القيمة None، أو True أو False." msgstr "يجب أن تكون هذه القيمة None، أو True أو False."
#: db/models/fields/__init__.py:846 db/models/fields/__init__.py:860 #: db/models/fields/__init__.py:849 db/models/fields/__init__.py:863
msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
msgstr "أدخل توقيتاً صحيحاً بالنسق HH:MM[:ss[.uuuuuu]]." msgstr "أدخل توقيتاً صحيحاً بالنسق HH:MM[:ss[.uuuuuu]]."
@ -3934,11 +3949,11 @@ msgstr "تحقق من أن تدخل %s خانات عشرية لا أكثر."
msgid "Ensure that there are no more than %s digits before the decimal point." msgid "Ensure that there are no more than %s digits before the decimal point."
msgstr "تحقق من أن تدخل %s أرقام قبل الفاصل العشري لا أكثر." msgstr "تحقق من أن تدخل %s أرقام قبل الفاصل العشري لا أكثر."
#: forms/fields.py:288 forms/fields.py:862 #: forms/fields.py:288 forms/fields.py:863
msgid "Enter a valid date." msgid "Enter a valid date."
msgstr "أدخل تاريخاً صحيحاً." msgstr "أدخل تاريخاً صحيحاً."
#: forms/fields.py:322 forms/fields.py:863 #: forms/fields.py:322 forms/fields.py:864
msgid "Enter a valid time." msgid "Enter a valid time."
msgstr "أدخل وقتاً صحيحاً." msgstr "أدخل وقتاً صحيحاً."
@ -3981,20 +3996,20 @@ msgstr "أدخل رابطاً صحيحاً."
msgid "This URL appears to be a broken link." msgid "This URL appears to be a broken link."
msgstr "يبدو أن هذا الرابط غير متوفر." msgstr "يبدو أن هذا الرابط غير متوفر."
#: forms/fields.py:624 forms/fields.py:702 #: forms/fields.py:625 forms/fields.py:703
#, python-format #, python-format
msgid "Select a valid choice. %(value)s is not one of the available choices." msgid "Select a valid choice. %(value)s is not one of the available choices."
msgstr "انتق خياراً صحيحاً. %(value)s ليس أحد الخيارات المتاحة." msgstr "انتق خياراً صحيحاً. %(value)s ليس أحد الخيارات المتاحة."
#: forms/fields.py:703 forms/fields.py:764 forms/models.py:776 #: forms/fields.py:704 forms/fields.py:765 forms/models.py:965
msgid "Enter a list of values." msgid "Enter a list of values."
msgstr "أدخل قائمة من القيم." msgstr "أدخل قائمة من القيم."
#: forms/fields.py:891 #: forms/fields.py:892
msgid "Enter a valid IPv4 address." msgid "Enter a valid IPv4 address."
msgstr "أدخل عنوان IPv4 صحيح." msgstr "أدخل عنوان IPv4 صحيح."
#: forms/fields.py:901 #: forms/fields.py:902
msgid "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." msgid "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens."
msgstr "أدخل اختصار 'slug' صحيح يتكوّن من أحرف، أرقام، شرطات سفلية وعاديّة." msgstr "أدخل اختصار 'slug' صحيح يتكوّن من أحرف، أرقام، شرطات سفلية وعاديّة."
@ -4002,34 +4017,62 @@ msgstr "أدخل اختصار 'slug' صحيح يتكوّن من أحرف، أر
msgid "Order" msgid "Order"
msgstr "الترتيب" msgstr "الترتيب"
#: forms/models.py:299 forms/models.py:308 #: forms/models.py:367
#, python-format
msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s."
msgstr "%(field_name)s يجب أن يكون مُميّزاً مع %(date_field)s %(lookup)s."
#: forms/models.py:381 forms/models.py:389
#, python-format #, python-format
msgid "%(model_name)s with this %(field_label)s already exists." msgid "%(model_name)s with this %(field_label)s already exists."
msgstr "النموذج %(model_name)s والحقل %(field_label)s موجود مسبقاً." msgstr "النموذج %(model_name)s والحقل %(field_label)s موجود مسبقاً."
#: forms/models.py:651 #: forms/models.py:581
#, python-format
msgid "Please correct the duplicate data for %(field)s."
msgstr "رجاء صحّح بيانات %(field)s المتكررة."
#: forms/models.py:585
#, python-format
msgid "Please correct the duplicate data for %(field)s, which must be unique."
msgstr "رجاء صحّح بيانات %(field)s المتكررة والتي يجب أن تكون مُميّزة."
#: forms/models.py:591
#, python-format
msgid ""
"Please correct the duplicate data for %(field_name)s which must be unique "
"for the %(lookup)s in %(date_field)s."
msgstr ""
"رجاء صحّح بيانات %(field_name)s المتكررة والتي يجب أن تكون مُميّزة "
"لـ%(lookup)s في %(date_field)s."
#: forms/models.py:599
msgid "Please correct the duplicate values below."
msgstr "رجاءً صحّح القيم المُكرّرة أدناه."
#: forms/models.py:837
msgid "The inline foreign key did not match the parent instance primary key." msgid "The inline foreign key did not match the parent instance primary key."
msgstr "حقل foreign key المحدد لا يطابق الحقل الرئيسي له." msgstr "حقل foreign key المحدد لا يطابق الحقل الرئيسي له."
#: forms/models.py:706 #: forms/models.py:892
msgid "Select a valid choice. That choice is not one of the available choices." msgid "Select a valid choice. That choice is not one of the available choices."
msgstr "انتق خياراً صحيحاً. اختيارك ليس أحد الخيارات المتاحة." msgstr "انتق خياراً صحيحاً. اختيارك ليس أحد الخيارات المتاحة."
#: forms/models.py:777 #: forms/models.py:966
#, python-format #, python-format
msgid "Select a valid choice. %s is not one of the available choices." msgid "Select a valid choice. %s is not one of the available choices."
msgstr "انتق خياراً صحيحاً. %s ليس أحد الخيارات المتاحة." msgstr "انتق خياراً صحيحاً. %s ليس أحد الخيارات المتاحة."
#: forms/models.py:779 #: forms/models.py:968
#, python-format #, python-format
msgid "\"%s\" is not a valid value for a primary key." msgid "\"%s\" is not a valid value for a primary key."
msgstr "القيمة \"%s\" هي صحيحة للحقل المرجعي." msgstr "القيمة \"%s\" هي صحيحة للحقل المرجعي."
#: template/defaultfilters.py:765 #: template/defaultfilters.py:767
msgid "yes,no,maybe" msgid "yes,no,maybe"
msgstr "نعم,لا,ربما" msgstr "نعم,لا,ربما"
#: template/defaultfilters.py:796 #: template/defaultfilters.py:798
#, python-format #, python-format
msgid "%(size)d byte" msgid "%(size)d byte"
msgid_plural "%(size)d bytes" msgid_plural "%(size)d bytes"
@ -4038,42 +4081,42 @@ msgstr[1] "%(size)d بايت"
msgstr[2] "%(size)d بايت" msgstr[2] "%(size)d بايت"
msgstr[3] "%(size)d بايت" msgstr[3] "%(size)d بايت"
#: template/defaultfilters.py:798 #: template/defaultfilters.py:800
#, python-format #, python-format
msgid "%.1f KB" msgid "%.1f KB"
msgstr "%.1f ك.ب" msgstr "%.1f ك.ب"
#: template/defaultfilters.py:800 #: template/defaultfilters.py:802
#, python-format #, python-format
msgid "%.1f MB" msgid "%.1f MB"
msgstr "%.1f م.ب" msgstr "%.1f م.ب"
#: template/defaultfilters.py:801 #: template/defaultfilters.py:803
#, python-format #, python-format
msgid "%.1f GB" msgid "%.1f GB"
msgstr "%.1f ج.ب" msgstr "%.1f ج.ب"
#: utils/dateformat.py:41 #: utils/dateformat.py:42
msgid "p.m." msgid "p.m."
msgstr "م" msgstr "م"
#: utils/dateformat.py:42 #: utils/dateformat.py:43
msgid "a.m." msgid "a.m."
msgstr "ص" msgstr "ص"
#: utils/dateformat.py:47 #: utils/dateformat.py:48
msgid "PM" msgid "PM"
msgstr "م" msgstr "م"
#: utils/dateformat.py:48 #: utils/dateformat.py:49
msgid "AM" msgid "AM"
msgstr "ص" msgstr "ص"
#: utils/dateformat.py:97 #: utils/dateformat.py:98
msgid "midnight" msgid "midnight"
msgstr "منتصف الليل" msgstr "منتصف الليل"
#: utils/dateformat.py:99 #: utils/dateformat.py:100
msgid "noon" msgid "noon"
msgstr "ظهراً" msgstr "ظهراً"

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,13 @@
# SOME DESCRIPTIVE TITLE. # This file is distributed under the same license as the Django package.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django\n" "Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-06-28 17:36+1000\n" "POT-Creation-Date: 2008-09-02 22:36-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: 2009-07-19 22:49+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: Nasimul Haque <nasim.haque@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: Nasimul Haque <nasim.haque@gmail.com>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -19,100 +15,100 @@ msgstr ""
#: 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 "%s বিদ্যমান"
#: contrib/admin/media/js/SelectFilter2.js:41 #: contrib/admin/media/js/SelectFilter2.js:41
msgid "Choose all" msgid "Choose all"
msgstr "" msgstr "সব বাছাই করুন"
#: contrib/admin/media/js/SelectFilter2.js:46 #: contrib/admin/media/js/SelectFilter2.js:46
msgid "Add" msgid "Add"
msgstr "" msgstr "যোগ করুন"
#: contrib/admin/media/js/SelectFilter2.js:48 #: contrib/admin/media/js/SelectFilter2.js:48
msgid "Remove" msgid "Remove"
msgstr "" msgstr "মুছে ফেলুন"
#: 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 "%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 "আপনার পছন্দ বাছাই এবং ক্লিক করুন"
#: contrib/admin/media/js/SelectFilter2.js:59 #: contrib/admin/media/js/SelectFilter2.js:59
msgid "Clear all" msgid "Clear all"
msgstr "" msgstr "সব পরিষ্কার করুন"
#: contrib/admin/media/js/dateparse.js:32
#: contrib/admin/media/js/calendar.js:24 #: contrib/admin/media/js/calendar.js:24
#: contrib/admin/media/js/dateparse.js:32
msgid "" msgid ""
"January February March April May June July August September October November " "January February March April May June July August September October November "
"December" "December"
msgstr "" msgstr "জানুয়ারি ফেব্রুয়ারি মার্চ এপ্রিল মে জুন জুলাই অাগস্ট সেপ্টেম্বর অক্টোবর নভেম্বর ডিসেম্বর"
#: contrib/admin/media/js/dateparse.js:33
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
msgstr ""
#: 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"
msgstr "" msgstr "র স ম ব ব শ শ"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47 #: contrib/admin/media/js/dateparse.js:33
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81 msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
msgid "Now" msgstr "রবিবার সোমবার মঙ্গলবার বুধবার বৃহস্পতিবার শুক্রবার শনিবার"
msgstr ""
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
msgid "Clock"
msgstr ""
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
msgid "Choose a time"
msgstr ""
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
msgid "Midnight"
msgstr ""
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
msgid "6 a.m."
msgstr ""
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
msgid "Noon"
msgstr ""
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
msgid "Cancel"
msgstr ""
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
msgid "Today"
msgstr ""
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
msgid "Calendar"
msgstr ""
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
msgid "Yesterday"
msgstr ""
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
msgid "Tomorrow"
msgstr ""
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34 #: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72 #: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
msgid "Show" msgid "Show"
msgstr "" msgstr "দেখান"
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63 #: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
msgid "Hide" msgid "Hide"
msgstr "" msgstr "লুকান"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
msgid "Now"
msgstr "এখন"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
msgid "Clock"
msgstr "ঘড়ি"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
msgid "Choose a time"
msgstr "সময় নির্বাচন করুন"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
msgid "Midnight"
msgstr "মধ্যরাত"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
msgid "6 a.m."
msgstr "৬ পূর্বাহ্ন"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
msgid "Noon"
msgstr "দুপুর"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
msgid "Cancel"
msgstr "বাতিল"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
msgid "Today"
msgstr "আজ"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
msgid "Calendar"
msgstr "দিনপঞ্জিকা"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
msgid "Yesterday"
msgstr "গতকাল"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
msgid "Tomorrow"
msgstr "আগামীকাল"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,13 @@
# Translation of django.po to German # Translation of django.po to German
# #
# Copyright (C) 2005-2008, # Copyright (C) 2005-2009,
# This file is distributed under the same license as the django package. # This file is distributed under the same license as the django package.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django\n" "Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-04-28 09:32+0200\n" "POT-Creation-Date: 2009-07-23 18:58+0200\n"
"PO-Revision-Date: 2008-08-28 22:58+0100\n" "PO-Revision-Date: 2008-08-28 22:58+0100\n"
"Last-Translator: Jannis Leidel <jannis@leidel.info>\n" "Last-Translator: Jannis Leidel <jannis@leidel.info>\n"
"Language-Team: \n" "Language-Team: \n"
@ -223,16 +223,16 @@ msgstr "Vereinfachtes Chinesisch"
msgid "Traditional Chinese" msgid "Traditional Chinese"
msgstr "Traditionelles Chinesisch" msgstr "Traditionelles Chinesisch"
#: contrib/admin/actions.py:56 #: contrib/admin/actions.py:60
#, python-format #, python-format
msgid "Successfully deleted %(count)d %(items)s." msgid "Successfully deleted %(count)d %(items)s."
msgstr "Erfolgreich %(count)d %(items)s gelöscht." msgstr "Erfolgreich %(count)d %(items)s gelöscht."
#: contrib/admin/actions.py:63 contrib/admin/options.py:1025 #: contrib/admin/actions.py:67 contrib/admin/options.py:1027
msgid "Are you sure?" msgid "Are you sure?"
msgstr "Sind Sie sicher?" msgstr "Sind Sie sicher?"
#: contrib/admin/actions.py:81 #: contrib/admin/actions.py:85
#, python-format #, python-format
msgid "Delete selected %(verbose_name_plural)s" msgid "Delete selected %(verbose_name_plural)s"
msgstr "Ausgewählte %(verbose_name_plural)s löschen" msgstr "Ausgewählte %(verbose_name_plural)s löschen"
@ -271,15 +271,15 @@ msgstr "Diesen Monat"
msgid "This year" msgid "This year"
msgstr "Dieses Jahr" msgstr "Dieses Jahr"
#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 #: contrib/admin/filterspecs.py:147 forms/widgets.py:434
msgid "Yes" msgid "Yes"
msgstr "Ja" msgstr "Ja"
#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 #: contrib/admin/filterspecs.py:147 forms/widgets.py:434
msgid "No" msgid "No"
msgstr "Nein" msgstr "Nein"
#: contrib/admin/filterspecs.py:154 forms/widgets.py:413 #: contrib/admin/filterspecs.py:154 forms/widgets.py:434
msgid "Unknown" msgid "Unknown"
msgstr "Unbekannt" msgstr "Unbekannt"
@ -325,7 +325,8 @@ msgid "Changed %s."
msgstr "%s geändert." msgstr "%s geändert."
#: contrib/admin/options.py:519 contrib/admin/options.py:529 #: contrib/admin/options.py:519 contrib/admin/options.py:529
#: contrib/comments/templates/comments/preview.html:16 forms/models.py:306 #: contrib/comments/templates/comments/preview.html:16 forms/models.py:388
#: forms/models.py:600
msgid "and" msgid "and"
msgstr "und" msgstr "und"
@ -348,27 +349,27 @@ msgstr "%(name)s \"%(object)s\" gelöscht."
msgid "No fields changed." msgid "No fields changed."
msgstr "Keine Felder geändert." msgstr "Keine Felder geändert."
#: contrib/admin/options.py:598 contrib/auth/admin.py:67 #: contrib/admin/options.py:599 contrib/auth/admin.py:67
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully." msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "%(name)s \"%(obj)s\" wurde erfolgreich hinzugefügt." msgstr "%(name)s \"%(obj)s\" wurde erfolgreich hinzugefügt."
#: contrib/admin/options.py:602 contrib/admin/options.py:635 #: contrib/admin/options.py:603 contrib/admin/options.py:636
#: contrib/auth/admin.py:75 #: contrib/auth/admin.py:75
msgid "You may edit it again below." msgid "You may edit it again below."
msgstr "Das Element kann jetzt erneut bearbeitet werden." msgstr "Das Element kann jetzt erneut bearbeitet werden."
#: contrib/admin/options.py:612 contrib/admin/options.py:645 #: contrib/admin/options.py:613 contrib/admin/options.py:646
#, python-format #, python-format
msgid "You may add another %s below." msgid "You may add another %s below."
msgstr "Es kann ein weiteres Element des Typs %s angelegt werden." msgstr "Es kann ein weiteres Element des Typs %s angelegt werden."
#: contrib/admin/options.py:633 #: contrib/admin/options.py:634
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully." msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr "%(name)s \"%(obj)s\" wurde erfolgreich geändert." msgstr "%(name)s \"%(obj)s\" wurde erfolgreich geändert."
#: contrib/admin/options.py:641 #: contrib/admin/options.py:642
#, python-format #, python-format
msgid "" msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
@ -376,44 +377,44 @@ msgstr ""
"%(name)s \"%(obj)s\" wurde erfolgreich hinzugefügt. Das Element kann jetzt " "%(name)s \"%(obj)s\" wurde erfolgreich hinzugefügt. Das Element kann jetzt "
"geändert werden." "geändert werden."
#: contrib/admin/options.py:772 #: contrib/admin/options.py:773
#, python-format #, python-format
msgid "Add %s" msgid "Add %s"
msgstr "%s hinzufügen" msgstr "%s hinzufügen"
#: contrib/admin/options.py:803 contrib/admin/options.py:1003 #: contrib/admin/options.py:804 contrib/admin/options.py:1005
#, python-format #, python-format
msgid "%(name)s object with primary key %(key)r does not exist." msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "" msgstr ""
"Das %(name)s-Objekt mit dem Primärschlüssel %(key)r ist nicht vorhanden." "Das %(name)s-Objekt mit dem Primärschlüssel %(key)r ist nicht vorhanden."
#: contrib/admin/options.py:860 #: contrib/admin/options.py:861
#, python-format #, python-format
msgid "Change %s" msgid "Change %s"
msgstr "%s ändern" msgstr "%s ändern"
#: contrib/admin/options.py:904 #: contrib/admin/options.py:905
msgid "Database error" msgid "Database error"
msgstr "Datenbankfehler" msgstr "Datenbankfehler"
#: contrib/admin/options.py:940 #: contrib/admin/options.py:941
#, python-format #, python-format
msgid "%(count)s %(name)s was changed successfully." msgid "%(count)s %(name)s was changed successfully."
msgid_plural "%(count)s %(name)s were changed successfully." msgid_plural "%(count)s %(name)s were changed successfully."
msgstr[0] "%(count)s \"%(name)s\" wurde erfolgreich geändert." msgstr[0] "%(count)s \"%(name)s\" wurde erfolgreich geändert."
msgstr[1] "%(count)s \"%(name)s\" wurden erfolgreich geändert." msgstr[1] "%(count)s \"%(name)s\" wurden erfolgreich geändert."
#: contrib/admin/options.py:1018 #: contrib/admin/options.py:1020
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "%(name)s \"%(obj)s\" wurde erfolgreich gelöscht." msgstr "%(name)s \"%(obj)s\" wurde erfolgreich gelöscht."
#: contrib/admin/options.py:1054 #: contrib/admin/options.py:1057
#, python-format #, python-format
msgid "Change history: %s" msgid "Change history: %s"
msgstr "Änderungsgeschichte: %s" msgstr "Änderungsgeschichte: %s"
#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 #: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14
#: contrib/auth/forms.py:80 #: contrib/auth/forms.py:80
msgid "" msgid ""
"Please enter a correct username and password. Note that both fields are case-" "Please enter a correct username and password. Note that both fields are case-"
@ -422,11 +423,11 @@ msgstr ""
"Bitte einen gültigen Benutzernamen und ein Passwort eingeben. Beide Felder " "Bitte einen gültigen Benutzernamen und ein Passwort eingeben. Beide Felder "
"berücksichtigen die Groß-/Kleinschreibung." "berücksichtigen die Groß-/Kleinschreibung."
#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 #: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40
msgid "Please log in again, because your session has expired." msgid "Please log in again, because your session has expired."
msgstr "Bitte melden Sie sich erneut an, da Ihre Sitzung abgelaufen ist." msgstr "Bitte melden Sie sich erneut an, da Ihre Sitzung abgelaufen ist."
#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 #: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47
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."
@ -434,29 +435,29 @@ msgstr ""
"Ihr Browser scheint keine Cookies zu akzeptieren. Bitte aktivieren Sie diese " "Ihr Browser scheint keine Cookies zu akzeptieren. Bitte aktivieren Sie diese "
"und laden Sie die Seite neu." "und laden Sie die Seite neu."
#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 #: contrib/admin/sites.py:308 contrib/admin/sites.py:314
#: contrib/admin/views/decorators.py:66 #: contrib/admin/views/decorators.py:66
msgid "Usernames cannot contain the '@' character." msgid "Usernames cannot contain the '@' character."
msgstr "Benutzernamen dürfen das Zeichen '@' nicht enthalten." msgstr "Benutzernamen dürfen das Zeichen '@' nicht enthalten."
#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 #: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62
#, 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 ""
"Die E-Mail-Adresse entspricht nicht Ihrem Benutzernamen. Bitte stattdessen '%" "Die E-Mail-Adresse entspricht nicht Ihrem Benutzernamen. Bitte stattdessen '%"
"s' versuchen." "s' versuchen."
#: contrib/admin/sites.py:360 #: contrib/admin/sites.py:367
msgid "Site administration" msgid "Site administration"
msgstr "Website-Verwaltung" msgstr "Website-Verwaltung"
#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 #: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26
#: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/templates/registration/password_reset_complete.html:14
#: contrib/admin/views/decorators.py:20 #: contrib/admin/views/decorators.py:20
msgid "Log in" msgid "Log in"
msgstr "Anmelden" msgstr "Anmelden"
#: contrib/admin/sites.py:417 #: contrib/admin/sites.py:426
#, python-format #, python-format
msgid "%s administration" msgid "%s administration"
msgstr "%s-Verwaltung" msgstr "%s-Verwaltung"
@ -507,7 +508,7 @@ msgstr ""
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/app_index.html:8 #: contrib/admin/templates/admin/app_index.html:8
#: contrib/admin/templates/admin/base.html:31 #: contrib/admin/templates/admin/base.html:54
#: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_form.html:17
#: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/change_list.html:25
#: contrib/admin/templates/admin/delete_confirmation.html:6 #: contrib/admin/templates/admin/delete_confirmation.html:6
@ -552,7 +553,6 @@ msgid "Run the selected action"
msgstr "Ausgewählte Aktion ausführen" msgstr "Ausgewählte Aktion ausführen"
#: contrib/admin/templates/admin/actions.html:4 #: contrib/admin/templates/admin/actions.html:4
#: contrib/admin/templates/admin/search_form.html:8
msgid "Go" msgid "Go"
msgstr "Los" msgstr "Los"
@ -562,18 +562,18 @@ msgstr "Los"
msgid "%(name)s" msgid "%(name)s"
msgstr "%(name)s" msgstr "%(name)s"
#: contrib/admin/templates/admin/base.html:26 #: contrib/admin/templates/admin/base.html:27
msgid "Welcome," msgid "Welcome,"
msgstr "Willkommen," msgstr "Willkommen,"
#: contrib/admin/templates/admin/base.html:26 #: contrib/admin/templates/admin/base.html:32
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
msgid "Documentation" msgid "Documentation"
msgstr "Dokumentation" msgstr "Dokumentation"
#: contrib/admin/templates/admin/base.html:26 #: contrib/admin/templates/admin/base.html:40
#: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:14
#: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/admin/auth/user/change_password.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
@ -581,7 +581,7 @@ msgstr "Dokumentation"
msgid "Change password" msgid "Change password"
msgstr "Passwort ändern" msgstr "Passwort ändern"
#: contrib/admin/templates/admin/base.html:26 #: contrib/admin/templates/admin/base.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
msgid "Log out" msgid "Log out"
@ -712,6 +712,10 @@ msgstr "Meine Aktionen"
msgid "None available" msgid "None available"
msgstr "Keine vorhanden" msgstr "Keine vorhanden"
#: contrib/admin/templates/admin/index.html:72
msgid "Unknown content"
msgstr "Unbekannter Inhalt"
#: contrib/admin/templates/admin/invalid_setup.html:7 #: contrib/admin/templates/admin/invalid_setup.html:7
msgid "" msgid ""
"Something's wrong with your database installation. Make sure the appropriate " "Something's wrong with your database installation. Make sure the appropriate "
@ -760,6 +764,15 @@ msgstr ""
msgid "Show all" msgid "Show all"
msgstr "Zeige alle" msgstr "Zeige alle"
#: contrib/admin/templates/admin/pagination.html:11
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Sichern"
#: contrib/admin/templates/admin/search_form.html:8
msgid "Search"
msgstr "Suchen"
#: contrib/admin/templates/admin/search_form.html:10 #: contrib/admin/templates/admin/search_form.html:10
#, python-format #, python-format
msgid "1 result" msgid "1 result"
@ -772,10 +785,6 @@ msgstr[1] "%(counter)s Ergebnisse"
msgid "%(full_result_count)s total" msgid "%(full_result_count)s total"
msgstr "%(full_result_count)s gesamt" msgstr "%(full_result_count)s gesamt"
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Sichern"
#: contrib/admin/templates/admin/submit_line.html:5 #: contrib/admin/templates/admin/submit_line.html:5
msgid "Save as new" msgid "Save as new"
msgstr "Als neu sichern" msgstr "Als neu sichern"
@ -1005,144 +1014,145 @@ msgstr "Site"
msgid "template" msgid "template"
msgstr "Template" msgstr "Template"
#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 #: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63
#: contrib/admindocs/views.py:62 #: contrib/admindocs/views.py:65
msgid "tag:" msgid "tag:"
msgstr "Schlagwort:" msgstr "Schlagwort:"
#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 #: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96
#: contrib/admindocs/views.py:95 #: contrib/admindocs/views.py:98
msgid "filter:" msgid "filter:"
msgstr "Filter:" msgstr "Filter:"
#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 #: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160
#: contrib/admindocs/views.py:159 #: contrib/admindocs/views.py:162
msgid "view:" msgid "view:"
msgstr "Ansicht:" msgstr "Ansicht:"
#: contrib/admindocs/views.py:187 #: contrib/admindocs/views.py:190
#, python-format #, python-format
msgid "App %r not found" msgid "App %r not found"
msgstr "Anwendung %r nicht gefunden" msgstr "Anwendung %r nicht gefunden"
#: contrib/admindocs/views.py:194 #: contrib/admindocs/views.py:197
#, python-format #, python-format
msgid "Model %(model_name)r not found in app %(app_label)r" msgid "Model %(model_name)r not found in app %(app_label)r"
msgstr "Modell %(model_name)r wurde nicht in Anwendung %(app_label)r gefunden" msgstr "Modell %(model_name)r wurde nicht in Anwendung %(app_label)r gefunden"
#: contrib/admindocs/views.py:206 #: contrib/admindocs/views.py:209
#, python-format #, python-format
msgid "the related `%(app_label)s.%(data_type)s` object" msgid "the related `%(app_label)s.%(data_type)s` object"
msgstr "Das verknüpfte `%(app_label)s.%(data_type)s` Objekt" msgstr "Das verknüpfte `%(app_label)s.%(data_type)s` Objekt"
#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228 #: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228
#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247
#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266
msgid "model:" msgid "model:"
msgstr "Modell:" msgstr "Modell:"
#: contrib/admindocs/views.py:237 #: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256
#, python-format #, python-format
msgid "related `%(app_label)s.%(object_name)s` objects" msgid "related `%(app_label)s.%(object_name)s` objects"
msgstr "verknüpftes `%(app_label)s.%(object_name)s` Objekt" msgstr "verknüpftes `%(app_label)s.%(object_name)s` Objekt"
#: contrib/admindocs/views.py:242 #: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261
#, python-format #, python-format
msgid "all %s" msgid "all %s"
msgstr "Alle %s" msgstr "Alle %s"
#: contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266
#, python-format #, python-format
msgid "number of %s" msgid "number of %s"
msgstr "Anzahl von %s" msgstr "Anzahl von %s"
#: contrib/admindocs/views.py:252 #: contrib/admindocs/views.py:271
#, python-format #, python-format
msgid "Fields on %s objects" msgid "Fields on %s objects"
msgstr "Felder am %s Objekt" msgstr "Felder am %s Objekt"
#: contrib/admindocs/views.py:315 contrib/admindocs/views.py:326 #: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345
#: contrib/admindocs/views.py:328 contrib/admindocs/views.py:334 #: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353
#: contrib/admindocs/views.py:335 contrib/admindocs/views.py:337 #: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356
msgid "Integer" msgid "Integer"
msgstr "Ganzzahl" msgstr "Ganzzahl"
#: contrib/admindocs/views.py:316 #: contrib/admindocs/views.py:335
msgid "Boolean (Either True or False)" msgid "Boolean (Either True or False)"
msgstr "Boolescher Wert (True oder False)" msgstr "Boolescher Wert (True oder False)"
#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:336 #: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355
#, python-format #, python-format
msgid "String (up to %(max_length)s)" msgid "String (up to %(max_length)s)"
msgstr "Zeichenkette (bis zu %(max_length)s Zeichen)" msgstr "Zeichenkette (bis zu %(max_length)s Zeichen)"
#: contrib/admindocs/views.py:318 #: contrib/admindocs/views.py:337
msgid "Comma-separated integers" msgid "Comma-separated integers"
msgstr "Kommaseparierte Liste von Ganzzahlen" msgstr "Kommaseparierte Liste von Ganzzahlen"
#: contrib/admindocs/views.py:319 #: contrib/admindocs/views.py:338
msgid "Date (without time)" msgid "Date (without time)"
msgstr "Datum (ohne Uhrzeit)" msgstr "Datum (ohne Uhrzeit)"
#: contrib/admindocs/views.py:320 #: contrib/admindocs/views.py:339
msgid "Date (with time)" msgid "Date (with time)"
msgstr "Datum (mit Uhrzeit)" msgstr "Datum (mit Uhrzeit)"
#: contrib/admindocs/views.py:321 #: contrib/admindocs/views.py:340
msgid "Decimal number" msgid "Decimal number"
msgstr "Dezimalzahl" msgstr "Dezimalzahl"
#: contrib/admindocs/views.py:322 #: contrib/admindocs/views.py:341
msgid "E-mail address" msgid "E-mail address"
msgstr "E-Mail-Adresse" msgstr "E-Mail-Adresse"
#: contrib/admindocs/views.py:323 contrib/admindocs/views.py:324 #: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343
#: contrib/admindocs/views.py:327 #: contrib/admindocs/views.py:346
msgid "File path" msgid "File path"
msgstr "Dateipfad" msgstr "Dateipfad"
#: contrib/admindocs/views.py:325 #: contrib/admindocs/views.py:344
msgid "Floating point number" msgid "Floating point number"
msgstr "Gleitkommazahl" msgstr "Gleitkommazahl"
#: contrib/admindocs/views.py:329 contrib/comments/models.py:60 #: contrib/admindocs/views.py:348 contrib/comments/models.py:60
msgid "IP address" msgid "IP address"
msgstr "IP-Adresse" msgstr "IP-Adresse"
#: contrib/admindocs/views.py:331 #: contrib/admindocs/views.py:350
msgid "Boolean (Either True, False or None)" msgid "Boolean (Either True, False or None)"
msgstr "Boolescher Wert (True, False oder None)" msgstr "Boolescher Wert (True, False oder None)"
#: contrib/admindocs/views.py:332 #: contrib/admindocs/views.py:351
msgid "Relation to parent model" msgid "Relation to parent model"
msgstr "Beziehung zum Eltern-Modell" msgstr "Beziehung zum Eltern-Modell"
#: contrib/admindocs/views.py:333 #: contrib/admindocs/views.py:352
msgid "Phone number" msgid "Phone number"
msgstr "Telefonnummer" msgstr "Telefonnummer"
#: contrib/admindocs/views.py:338 #: contrib/admindocs/views.py:357
msgid "Text" msgid "Text"
msgstr "Text" msgstr "Text"
#: contrib/admindocs/views.py:339 #: contrib/admindocs/views.py:358
msgid "Time" msgid "Time"
msgstr "Zeit" msgstr "Zeit"
#: contrib/admindocs/views.py:340 contrib/comments/forms.py:95 #: contrib/admindocs/views.py:359 contrib/comments/forms.py:95
#: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/comments/templates/comments/moderation_queue.html:37
#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7
msgid "URL" msgid "URL"
msgstr "Adresse (URL)" msgstr "Adresse (URL)"
#: contrib/admindocs/views.py:341 #: contrib/admindocs/views.py:360
msgid "U.S. state (two uppercase letters)" msgid "U.S. state (two uppercase letters)"
msgstr "U.S.-Bundesstaat (zwei Großbuchstaben)" msgstr "U.S.-Bundesstaat (zwei Großbuchstaben)"
#: contrib/admindocs/views.py:342 #: contrib/admindocs/views.py:361
msgid "XML text" msgid "XML text"
msgstr "XML-Text" msgstr "XML-Text"
#: contrib/admindocs/views.py:368 #: contrib/admindocs/views.py:387
#, python-format #, python-format
msgid "%s does not appear to be a urlpattern object" msgid "%s does not appear to be a urlpattern object"
msgstr "%s ist scheinbar kein urlpattern-Objekt" msgstr "%s ist scheinbar kein urlpattern-Objekt"
@ -1815,7 +1825,7 @@ msgstr "Ungültiger geometrischer Typ."
#: contrib/gis/forms/fields.py:20 #: contrib/gis/forms/fields.py:20
msgid "" msgid ""
"An error occurred when transforming the geometryto the SRID of the geometry " "An error occurred when transforming the geometry to the SRID of the geometry "
"form field." "form field."
msgstr "" msgstr ""
"Ein Fehler ist beim Umwandeln der Geometrie-Werte in die SRID des Geometrie-" "Ein Fehler ist beim Umwandeln der Geometrie-Werte in die SRID des Geometrie-"
@ -3948,14 +3958,14 @@ msgstr "Dieser Wert muss None, True oder False sein."
msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
msgstr "Bitte eine gültige Zeit im Format HH:MM[:ss[.uuuuuu]] eingeben." msgstr "Bitte eine gültige Zeit im Format HH:MM[:ss[.uuuuuu]] eingeben."
#: db/models/fields/related.py:792 #: db/models/fields/related.py:816
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 ""
"Halten Sie die Strg-Taste (⌘ für Mac) während des Klickens gedrückt, um " "Halten Sie die Strg-Taste (⌘ für Mac) während des Klickens gedrückt, um "
"mehrere Einträge auszuwählen." "mehrere Einträge auszuwählen."
#: db/models/fields/related.py:870 #: db/models/fields/related.py:894
#, python-format #, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
msgid_plural "" msgid_plural ""
@ -4020,11 +4030,11 @@ msgstr "Bitte geben Sie nicht mehr als %s Dezimalstellen ein."
msgid "Ensure that there are no more than %s digits before the decimal point." msgid "Ensure that there are no more than %s digits before the decimal point."
msgstr "Bitte geben Sie nicht mehr als %s Ziffern vor dem Komma ein." msgstr "Bitte geben Sie nicht mehr als %s Ziffern vor dem Komma ein."
#: forms/fields.py:288 forms/fields.py:862 #: forms/fields.py:288 forms/fields.py:863
msgid "Enter a valid date." msgid "Enter a valid date."
msgstr "Bitte ein gültiges Datum eingeben." msgstr "Bitte ein gültiges Datum eingeben."
#: forms/fields.py:322 forms/fields.py:863 #: forms/fields.py:322 forms/fields.py:864
msgid "Enter a valid time." msgid "Enter a valid time."
msgstr "Bitte eine gültige Uhrzeit eingeben." msgstr "Bitte eine gültige Uhrzeit eingeben."
@ -4069,21 +4079,21 @@ msgstr "Bitte eine gültige Adresse eingeben."
msgid "This URL appears to be a broken link." msgid "This URL appears to be a broken link."
msgstr "Diese Adresse scheint nicht gültig zu sein." msgstr "Diese Adresse scheint nicht gültig zu sein."
#: forms/fields.py:624 forms/fields.py:702 #: forms/fields.py:625 forms/fields.py:703
#, python-format #, python-format
msgid "Select a valid choice. %(value)s is not one of the available choices." msgid "Select a valid choice. %(value)s is not one of the available choices."
msgstr "" msgstr ""
"Bitte eine gültige Auswahl treffen. %(value)s ist keine gültige Auswahl." "Bitte eine gültige Auswahl treffen. %(value)s ist keine gültige Auswahl."
#: forms/fields.py:703 forms/fields.py:764 forms/models.py:798 #: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003
msgid "Enter a list of values." msgid "Enter a list of values."
msgstr "Bitte eine Liste mit Werten eingeben." msgstr "Bitte eine Liste mit Werten eingeben."
#: forms/fields.py:891 #: forms/fields.py:892
msgid "Enter a valid IPv4 address." msgid "Enter a valid IPv4 address."
msgstr "Bitte eine gültige IPv4-Adresse eingeben." msgstr "Bitte eine gültige IPv4-Adresse eingeben."
#: forms/fields.py:901 #: forms/fields.py:902
msgid "" msgid ""
"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens."
msgstr "" msgstr ""
@ -4094,27 +4104,55 @@ msgstr ""
msgid "Order" msgid "Order"
msgstr "Reihenfolge" msgstr "Reihenfolge"
#: forms/models.py:299 forms/models.py:308 #: forms/models.py:367
#, python-format
msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s."
msgstr "%(field_name)s muss für %(date_field)s %(lookup)s eindeutig sein."
#: forms/models.py:381 forms/models.py:389
#, python-format #, python-format
msgid "%(model_name)s with this %(field_label)s already exists." msgid "%(model_name)s with this %(field_label)s already exists."
msgstr "%(model_name)s mit diesem %(field_label)s existiert bereits." msgstr "%(model_name)s mit diesem %(field_label)s existiert bereits."
#: forms/models.py:673 #: forms/models.py:594
#, python-format
msgid "Please correct the duplicate data for %(field)s."
msgstr "Bitte die doppelten Daten für %(field)s korrigieren."
#: forms/models.py:598
#, python-format
msgid "Please correct the duplicate data for %(field)s, which must be unique."
msgstr "Bitte die doppelten Daten für %(field)s korrigieren, das eindeutig sein muss."
#: forms/models.py:604
#, python-format
msgid ""
"Please correct the duplicate data for %(field_name)s which must be unique "
"for the %(lookup)s in %(date_field)s."
msgstr ""
"Bitte die doppelten Daten für %(field_name)s korrigieren, da es für "
"%(lookup)s in %(date_field)s eindeutig sein muss."
#: forms/models.py:612
msgid "Please correct the duplicate values below."
msgstr "Bitte die unten aufgeführten doppelten Werte korrigieren."
#: forms/models.py:867
msgid "The inline foreign key did not match the parent instance primary key." msgid "The inline foreign key did not match the parent instance primary key."
msgstr "" msgstr ""
"Der Inline-Fremdschlüssel passt nicht zum Primärschlüssel der übergeordneten " "Der Inline-Fremdschlüssel passt nicht zum Primärschlüssel der übergeordneten "
"Instanz." "Instanz."
#: forms/models.py:728 #: forms/models.py:930
msgid "Select a valid choice. That choice is not one of the available choices." msgid "Select a valid choice. That choice is not one of the available choices."
msgstr "Bitte eine gültige Auswahl treffen. Dies ist keine gültige Auswahl." msgstr "Bitte eine gültige Auswahl treffen. Dies ist keine gültige Auswahl."
#: forms/models.py:799 #: forms/models.py:1004
#, python-format #, python-format
msgid "Select a valid choice. %s is not one of the available choices." msgid "Select a valid choice. %s is not one of the available choices."
msgstr "Bitte eine gültige Auswahl treffen. %s ist keine gültige Auswahl." msgstr "Bitte eine gültige Auswahl treffen. %s ist keine gültige Auswahl."
#: forms/models.py:801 #: forms/models.py:1006
#, python-format #, python-format
msgid "\"%s\" is not a valid value for a primary key." msgid "\"%s\" is not a valid value for a primary key."
msgstr "\"%s\" ist kein gültiger Wert für einen Primärschlüssel." msgstr "\"%s\" ist kein gültiger Wert für einen Primärschlüssel."
@ -4145,27 +4183,27 @@ msgstr "%.1f MB"
msgid "%.1f GB" msgid "%.1f GB"
msgstr "%.1f GB" msgstr "%.1f GB"
#: utils/dateformat.py:41 #: utils/dateformat.py:42
msgid "p.m." msgid "p.m."
msgstr "nachm." msgstr "nachm."
#: utils/dateformat.py:42 #: utils/dateformat.py:43
msgid "a.m." msgid "a.m."
msgstr "vorm." msgstr "vorm."
#: utils/dateformat.py:47 #: utils/dateformat.py:48
msgid "PM" msgid "PM"
msgstr "nachm." msgstr "nachm."
#: utils/dateformat.py:48 #: utils/dateformat.py:49
msgid "AM" msgid "AM"
msgstr "vorm." msgstr "vorm."
#: utils/dateformat.py:97 #: utils/dateformat.py:98
msgid "midnight" msgid "midnight"
msgstr "Mitternacht" msgstr "Mitternacht"
#: utils/dateformat.py:99 #: utils/dateformat.py:100
msgid "noon" msgid "noon"
msgstr "Mittag" msgstr "Mittag"

File diff suppressed because it is too large Load Diff

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django\n" "Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-05-28 12:30-0300\n" "POT-Creation-Date: 2009-07-21 23:56-0300\n"
"PO-Revision-Date: 2009-05-05 20:35-0300\n" "PO-Revision-Date: 2009-07-22 00:13-0300\n"
"Last-Translator: Ramiro Morales <rm0@gmx.net>\n" "Last-Translator: Ramiro Morales <rm0@gmx.net>\n"
"Language-Team: Django-I18N <django-i18n@googlegroups.com>\n" "Language-Team: Django-I18N <django-i18n@googlegroups.com>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -224,7 +224,7 @@ msgstr "chino tradicional"
msgid "Successfully deleted %(count)d %(items)s." msgid "Successfully deleted %(count)d %(items)s."
msgstr "Se eliminaron con éxito %(count)d %(items)s." msgstr "Se eliminaron con éxito %(count)d %(items)s."
#: contrib/admin/actions.py:67 contrib/admin/options.py:1025 #: contrib/admin/actions.py:67 contrib/admin/options.py:1027
msgid "Are you sure?" msgid "Are you sure?"
msgstr "¿Está seguro?" msgstr "¿Está seguro?"
@ -322,7 +322,7 @@ msgstr "Modifica %s."
#: contrib/admin/options.py:519 contrib/admin/options.py:529 #: contrib/admin/options.py:519 contrib/admin/options.py:529
#: contrib/comments/templates/comments/preview.html:16 forms/models.py:388 #: contrib/comments/templates/comments/preview.html:16 forms/models.py:388
#: forms/models.py:587 #: forms/models.py:600
msgid "and" msgid "and"
msgstr "y" msgstr "y"
@ -345,27 +345,27 @@ msgstr "Se eliminó %(name)s \"%(object)s\"."
msgid "No fields changed." msgid "No fields changed."
msgstr "No ha modificado ningún campo." msgstr "No ha modificado ningún campo."
#: contrib/admin/options.py:598 contrib/auth/admin.py:67 #: contrib/admin/options.py:599 contrib/auth/admin.py:67
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully." msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "Se agregó con éxito %(name)s \"%(obj)s\"." msgstr "Se agregó con éxito %(name)s \"%(obj)s\"."
#: contrib/admin/options.py:602 contrib/admin/options.py:635 #: contrib/admin/options.py:603 contrib/admin/options.py:636
#: contrib/auth/admin.py:75 #: contrib/auth/admin.py:75
msgid "You may edit it again below." msgid "You may edit it again below."
msgstr "Puede modificarlo/a nuevamente abajo." msgstr "Puede modificarlo/a nuevamente abajo."
#: contrib/admin/options.py:612 contrib/admin/options.py:645 #: contrib/admin/options.py:613 contrib/admin/options.py:646
#, python-format #, python-format
msgid "You may add another %s below." msgid "You may add another %s below."
msgstr "Puede agregar otro/a %s abajo." msgstr "Puede agregar otro/a %s abajo."
#: contrib/admin/options.py:633 #: contrib/admin/options.py:634
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully." msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr "Se modificó con éxito %(name)s \"%(obj)s\"." msgstr "Se modificó con éxito %(name)s \"%(obj)s\"."
#: contrib/admin/options.py:641 #: contrib/admin/options.py:642
#, python-format #, python-format
msgid "" msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
@ -373,43 +373,43 @@ msgstr ""
"Se agregó con éxito %(name)s \"%(obj)s\". Puede modificarlo/a nuevamente " "Se agregó con éxito %(name)s \"%(obj)s\". Puede modificarlo/a nuevamente "
"abajo." "abajo."
#: contrib/admin/options.py:772 #: contrib/admin/options.py:773
#, python-format #, python-format
msgid "Add %s" msgid "Add %s"
msgstr "Agregar %s" msgstr "Agregar %s"
#: contrib/admin/options.py:803 contrib/admin/options.py:1003 #: contrib/admin/options.py:804 contrib/admin/options.py:1005
#, python-format #, python-format
msgid "%(name)s object with primary key %(key)r does not exist." msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "No existe un objeto %(name)s con una clave primaria %(key)r." msgstr "No existe un objeto %(name)s con una clave primaria %(key)r."
#: contrib/admin/options.py:860 #: contrib/admin/options.py:861
#, python-format #, python-format
msgid "Change %s" msgid "Change %s"
msgstr "Modificar %s" msgstr "Modificar %s"
#: contrib/admin/options.py:904 #: contrib/admin/options.py:905
msgid "Database error" msgid "Database error"
msgstr "Error de base de datos" msgstr "Error de base de datos"
#: contrib/admin/options.py:940 #: contrib/admin/options.py:941
#, python-format #, python-format
msgid "%(count)s %(name)s was changed successfully." msgid "%(count)s %(name)s was changed successfully."
msgid_plural "%(count)s %(name)s were changed successfully." msgid_plural "%(count)s %(name)s were changed successfully."
msgstr[0] "Se ha modificado con éxito %(count)s %(name)s." msgstr[0] "Se ha modificado con éxito %(count)s %(name)s."
msgstr[1] "Se han modificado con éxito %(count)s %(name)s." msgstr[1] "Se han modificado con éxito %(count)s %(name)s."
#: contrib/admin/options.py:1018 #: contrib/admin/options.py:1020
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "Se eliminó con éxito %(name)s \"%(obj)s\"." msgstr "Se eliminó con éxito %(name)s \"%(obj)s\"."
#: contrib/admin/options.py:1054 #: contrib/admin/options.py:1057
#, python-format #, python-format
msgid "Change history: %s" msgid "Change history: %s"
msgstr "Historia de modificaciones: %s" msgstr "Historia de modificaciones: %s"
#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 #: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14
#: contrib/auth/forms.py:80 #: contrib/auth/forms.py:80
msgid "" msgid ""
"Please enter a correct username and password. Note that both fields are case-" "Please enter a correct username and password. Note that both fields are case-"
@ -418,11 +418,11 @@ msgstr ""
"Por favor introduzca un nombre de usuario y una contraseña correctos. Note " "Por favor introduzca un nombre de usuario y una contraseña correctos. Note "
"que ambos campos son sensibles a mayúsculas/minúsculas." "que ambos campos son sensibles a mayúsculas/minúsculas."
#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 #: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40
msgid "Please log in again, because your session has expired." msgid "Please log in again, because your session has expired."
msgstr "Por favor, identifíquese de nuevo porque su sesión ha caducado." msgstr "Por favor, identifíquese de nuevo porque su sesión ha caducado."
#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 #: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47
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."
@ -430,29 +430,29 @@ msgstr ""
"Parece que su navegador no está configurado para aceptar cookies. Por favor " "Parece que su navegador no está configurado para aceptar cookies. Por favor "
"actívelas, recargue esta página, e inténtelo de nuevo." "actívelas, recargue esta página, e inténtelo de nuevo."
#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 #: contrib/admin/sites.py:308 contrib/admin/sites.py:314
#: contrib/admin/views/decorators.py:66 #: contrib/admin/views/decorators.py:66
msgid "Usernames cannot contain the '@' character." msgid "Usernames cannot contain the '@' character."
msgstr "Los nombres de usuario no pueden contener el carácter '@'." msgstr "Los nombres de usuario no pueden contener el carácter '@'."
#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 #: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62
#, 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 ""
"Su dirección de correo electrónico no es su nombre de usuario. Intente " "Su dirección de correo electrónico no es su nombre de usuario. Intente "
"nuevamente usando '%s'." "nuevamente usando '%s'."
#: contrib/admin/sites.py:360 #: contrib/admin/sites.py:367
msgid "Site administration" msgid "Site administration"
msgstr "Administración de sitio" msgstr "Administración de sitio"
#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 #: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26
#: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/templates/registration/password_reset_complete.html:14
#: contrib/admin/views/decorators.py:20 #: contrib/admin/views/decorators.py:20
msgid "Log in" msgid "Log in"
msgstr "Identificarse" msgstr "Identificarse"
#: contrib/admin/sites.py:417 #: contrib/admin/sites.py:426
#, python-format #, python-format
msgid "%s administration" msgid "%s administration"
msgstr "Administración de %s" msgstr "Administración de %s"
@ -487,7 +487,7 @@ msgstr "Modificar:"
msgid "Lookup" msgid "Lookup"
msgstr "Buscar" msgstr "Buscar"
#: contrib/admin/widgets.py:236 #: contrib/admin/widgets.py:235
msgid "Add Another" msgid "Add Another"
msgstr "Agregar otro/a" msgstr "Agregar otro/a"
@ -502,7 +502,7 @@ msgstr "Lo sentimos, pero no se encuentra la página solicitada."
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/app_index.html:8 #: contrib/admin/templates/admin/app_index.html:8
#: contrib/admin/templates/admin/base.html:31 #: contrib/admin/templates/admin/base.html:54
#: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_form.html:17
#: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/change_list.html:25
#: contrib/admin/templates/admin/delete_confirmation.html:6 #: contrib/admin/templates/admin/delete_confirmation.html:6
@ -556,18 +556,18 @@ msgstr "Ejecutar"
msgid "%(name)s" msgid "%(name)s"
msgstr "%(name)s" msgstr "%(name)s"
#: contrib/admin/templates/admin/base.html:26 #: contrib/admin/templates/admin/base.html:27
msgid "Welcome," msgid "Welcome,"
msgstr "Bienvenido," msgstr "Bienvenido,"
#: contrib/admin/templates/admin/base.html:26 #: contrib/admin/templates/admin/base.html:32
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
msgid "Documentation" msgid "Documentation"
msgstr "Documentación" msgstr "Documentación"
#: contrib/admin/templates/admin/base.html:26 #: contrib/admin/templates/admin/base.html:40
#: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:14
#: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/admin/auth/user/change_password.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
@ -575,7 +575,7 @@ msgstr "Documentación"
msgid "Change password" msgid "Change password"
msgstr "Cambiar contraseña" msgstr "Cambiar contraseña"
#: contrib/admin/templates/admin/base.html:26 #: contrib/admin/templates/admin/base.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
msgid "Log out" msgid "Log out"
@ -673,8 +673,9 @@ msgid ""
"Are you sure you want to delete the selected %(object_name)s objects? All of " "Are you sure you want to delete the selected %(object_name)s objects? All of "
"the following objects and it's related items will be deleted:" "the following objects and it's related items will be deleted:"
msgstr "" msgstr ""
"¿Está seguro de que quiere eliminar los objetos %(object_name)s? Se " "¿Está seguro de que quiere eliminar los objetos %(object_name)s "
"eliminarán todos los siguientes objetos relacionados:" "seleccionados? Se eliminarán todos los siguientes objetos "
"relacionados:"
#: contrib/admin/templates/admin/filter.html:2 #: contrib/admin/templates/admin/filter.html:2
#, python-format #, python-format
@ -708,7 +709,7 @@ msgstr "Ninguna disponible"
#: contrib/admin/templates/admin/index.html:72 #: contrib/admin/templates/admin/index.html:72
msgid "Unknown content" msgid "Unknown content"
msgstr "COntenido desconocido" msgstr "Contenido desconocido"
#: contrib/admin/templates/admin/invalid_setup.html:7 #: contrib/admin/templates/admin/invalid_setup.html:7
msgid "" msgid ""
@ -758,6 +759,11 @@ msgstr ""
msgid "Show all" msgid "Show all"
msgstr "Mostrar todos/as" msgstr "Mostrar todos/as"
#: contrib/admin/templates/admin/pagination.html:11
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Grabar"
#: contrib/admin/templates/admin/search_form.html:8 #: contrib/admin/templates/admin/search_form.html:8
msgid "Search" msgid "Search"
msgstr "Buscar" msgstr "Buscar"
@ -774,10 +780,6 @@ msgstr[1] "%(counter)s resultados"
msgid "%(full_result_count)s total" msgid "%(full_result_count)s total"
msgstr "total: %(full_result_count)s" msgstr "total: %(full_result_count)s"
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Grabar"
#: contrib/admin/templates/admin/submit_line.html:5 #: contrib/admin/templates/admin/submit_line.html:5
msgid "Save as new" msgid "Save as new"
msgstr "Grabar como nuevo" msgstr "Grabar como nuevo"
@ -861,9 +863,9 @@ msgid ""
"Please enter your old password, for security's sake, and then enter your new " "Please enter your old password, for security's sake, and then enter your new "
"password twice so we can verify you typed it in correctly." "password twice so we can verify you typed it in correctly."
msgstr "" msgstr ""
"Por favor, por razones de seguridad, introduzca su contraseña antigua, y " "Por favor, por razones de seguridad, introduzca primero su contraseña "
"luego introduzca la nueva contraseña dos veces para verificar que la ha " "antigua y luego introduzca la nueva contraseña dos veces para verificar que "
"escrito correctamente." "la ha escrito correctamente."
#: contrib/admin/templates/registration/password_change_form.html:17 #: contrib/admin/templates/registration/password_change_form.html:17
msgid "Old password:" msgid "Old password:"
@ -928,7 +930,7 @@ msgid ""
"used. Please request a new password reset." "used. Please request a new password reset."
msgstr "" msgstr ""
"El enlace de reinicialización de contraseña es inválido, posiblemente debido " "El enlace de reinicialización de contraseña es inválido, posiblemente debido "
"a que ya ha sido usado. Por favor solicite una nueva reinicialización de " "a que ya ha sido usado. Por favor solicite una nueva reinicialización de "
"contraseña." "contraseña."
#: contrib/admin/templates/registration/password_reset_done.html:6 #: contrib/admin/templates/registration/password_reset_done.html:6
@ -948,7 +950,7 @@ msgstr ""
#: contrib/admin/templates/registration/password_reset_email.html:2 #: contrib/admin/templates/registration/password_reset_email.html:2
msgid "You're receiving this e-mail because you requested a password reset" msgid "You're receiving this e-mail because you requested a password reset"
msgstr "" msgstr ""
"Está recibiendo este mensaje debido a que solicitó recuperar la contraseña" "Recibe este mensaje debido a que solicitó recuperar la contraseña"
#: contrib/admin/templates/registration/password_reset_email.html:3 #: contrib/admin/templates/registration/password_reset_email.html:3
#, python-format #, python-format
@ -1012,144 +1014,145 @@ msgstr "sitio"
msgid "template" msgid "template"
msgstr "plantilla" msgstr "plantilla"
#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 #: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63
#: contrib/admindocs/views.py:62 #: contrib/admindocs/views.py:65
msgid "tag:" msgid "tag:"
msgstr "etiqueta:" msgstr "etiqueta:"
#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 #: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96
#: contrib/admindocs/views.py:95 #: contrib/admindocs/views.py:98
msgid "filter:" msgid "filter:"
msgstr "filtrar:" msgstr "filtrar:"
#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 #: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160
#: contrib/admindocs/views.py:159 #: contrib/admindocs/views.py:162
msgid "view:" msgid "view:"
msgstr "ver:" msgstr "ver:"
#: contrib/admindocs/views.py:187 #: contrib/admindocs/views.py:190
#, python-format #, python-format
msgid "App %r not found" msgid "App %r not found"
msgstr "Aplicación %r no encontrada" msgstr "Aplicación %r no encontrada"
#: contrib/admindocs/views.py:194 #: contrib/admindocs/views.py:197
#, python-format #, python-format
msgid "Model %(model_name)r not found in app %(app_label)r" msgid "Model %(model_name)r not found in app %(app_label)r"
msgstr "Modelo %(model_name)r no encontrado en aplicación %(app_label)r" msgstr "Modelo %(model_name)r no encontrado en aplicación %(app_label)r"
#: contrib/admindocs/views.py:206 #: contrib/admindocs/views.py:209
#, python-format #, python-format
msgid "the related `%(app_label)s.%(data_type)s` object" msgid "the related `%(app_label)s.%(data_type)s` object"
msgstr "el objeto `%(app_label)s.%(data_type)s` relacionado" msgstr "el objeto `%(app_label)s.%(data_type)s` relacionado"
#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228 #: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228
#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247
#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266
msgid "model:" msgid "model:"
msgstr "modelo:" msgstr "modelo:"
#: contrib/admindocs/views.py:237 #: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256
#, python-format #, python-format
msgid "related `%(app_label)s.%(object_name)s` objects" msgid "related `%(app_label)s.%(object_name)s` objects"
msgstr "objetos `%(app_label)s.%(object_name)s` relacionados" msgstr "objetos `%(app_label)s.%(object_name)s` relacionados"
#: contrib/admindocs/views.py:242 #: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261
#, python-format #, python-format
msgid "all %s" msgid "all %s"
msgstr "todos los %s" msgstr "todos los %s"
#: contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266
#, python-format #, python-format
msgid "number of %s" msgid "number of %s"
msgstr "número de %s" msgstr "número de %s"
#: contrib/admindocs/views.py:252 #: contrib/admindocs/views.py:271
#, python-format #, python-format
msgid "Fields on %s objects" msgid "Fields on %s objects"
msgstr "Campos en objetos %s" msgstr "Campos en objetos %s"
#: contrib/admindocs/views.py:315 contrib/admindocs/views.py:326 #: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345
#: contrib/admindocs/views.py:328 contrib/admindocs/views.py:334 #: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353
#: contrib/admindocs/views.py:335 contrib/admindocs/views.py:337 #: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356
msgid "Integer" msgid "Integer"
msgstr "Entero" msgstr "Entero"
#: contrib/admindocs/views.py:316 #: contrib/admindocs/views.py:335
msgid "Boolean (Either True or False)" msgid "Boolean (Either True or False)"
msgstr "Booleano (Verdadero o Falso)" msgstr "Booleano (Verdadero o Falso)"
#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:336 #: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355
#, python-format #, python-format
msgid "String (up to %(max_length)s)" msgid "String (up to %(max_length)s)"
msgstr "Cadena (máximo %(max_length)s)" msgstr "Cadena (máximo %(max_length)s)"
#: contrib/admindocs/views.py:318 #: contrib/admindocs/views.py:337
msgid "Comma-separated integers" msgid "Comma-separated integers"
msgstr "Enteros separados por comas" msgstr "Enteros separados por comas"
#: contrib/admindocs/views.py:319 #: contrib/admindocs/views.py:338
msgid "Date (without time)" msgid "Date (without time)"
msgstr "Fecha (sin hora)" msgstr "Fecha (sin hora)"
#: contrib/admindocs/views.py:320 #: contrib/admindocs/views.py:339
msgid "Date (with time)" msgid "Date (with time)"
msgstr "Fecha (con hora)" msgstr "Fecha (con hora)"
#: contrib/admindocs/views.py:321 #: contrib/admindocs/views.py:340
msgid "Decimal number" msgid "Decimal number"
msgstr "Número decimal" msgstr "Número decimal"
#: contrib/admindocs/views.py:322 #: contrib/admindocs/views.py:341
msgid "E-mail address" msgid "E-mail address"
msgstr "Dirección de correo electrónico" msgstr "Dirección de correo electrónico"
#: contrib/admindocs/views.py:323 contrib/admindocs/views.py:324 #: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343
#: contrib/admindocs/views.py:327 #: contrib/admindocs/views.py:346
msgid "File path" msgid "File path"
msgstr "Ruta de archivo" msgstr "Ruta de archivo"
#: contrib/admindocs/views.py:325 #: contrib/admindocs/views.py:344
msgid "Floating point number" msgid "Floating point number"
msgstr "Número de punto flotante" msgstr "Número de punto flotante"
#: contrib/admindocs/views.py:329 contrib/comments/models.py:60 #: contrib/admindocs/views.py:348 contrib/comments/models.py:60
msgid "IP address" msgid "IP address"
msgstr "Dirección IP" msgstr "Dirección IP"
#: contrib/admindocs/views.py:331 #: contrib/admindocs/views.py:350
msgid "Boolean (Either True, False or None)" msgid "Boolean (Either True, False or None)"
msgstr "Booleano (Verdadero, Falso o Nulo)" msgstr "Booleano (Verdadero, Falso o Nulo)"
#: contrib/admindocs/views.py:332 #: contrib/admindocs/views.py:351
msgid "Relation to parent model" msgid "Relation to parent model"
msgstr "Relación con el modelo padre" msgstr "Relación con el modelo padre"
#: contrib/admindocs/views.py:333 #: contrib/admindocs/views.py:352
msgid "Phone number" msgid "Phone number"
msgstr "Número de teléfono" msgstr "Número de teléfono"
#: contrib/admindocs/views.py:338 #: contrib/admindocs/views.py:357
msgid "Text" msgid "Text"
msgstr "Texto" msgstr "Texto"
#: contrib/admindocs/views.py:339 #: contrib/admindocs/views.py:358
msgid "Time" msgid "Time"
msgstr "Hora" msgstr "Hora"
#: contrib/admindocs/views.py:340 contrib/comments/forms.py:95 #: contrib/admindocs/views.py:359 contrib/comments/forms.py:95
#: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/comments/templates/comments/moderation_queue.html:37
#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
#: contrib/admindocs/views.py:341 #: contrib/admindocs/views.py:360
msgid "U.S. state (two uppercase letters)" msgid "U.S. state (two uppercase letters)"
msgstr "Estado de los EE.UU. (dos letras mayúsculas)" msgstr "Estado de los EE.UU. (dos letras mayúsculas)"
#: contrib/admindocs/views.py:342 #: contrib/admindocs/views.py:361
msgid "XML text" msgid "XML text"
msgstr "Texto XML" msgstr "Texto XML"
#: contrib/admindocs/views.py:368 #: contrib/admindocs/views.py:387
#, python-format #, python-format
msgid "%s does not appear to be a urlpattern object" msgid "%s does not appear to be a urlpattern object"
msgstr "%s no parece ser un objeto urlpattern" msgstr "%s no parece ser un objeto urlpattern"
@ -1555,7 +1558,7 @@ msgid ""
"only." "only."
msgstr "" msgstr ""
"Este comentario ha sido enviado por un usuario identificado, por lo tanto el " "Este comentario ha sido enviado por un usuario identificado, por lo tanto el "
"nombre no puede modificarse.%(text)s" "nombre no puede modificarse."
#: contrib/comments/models.py:128 #: contrib/comments/models.py:128
msgid "" msgid ""
@ -1563,7 +1566,7 @@ msgid ""
"only." "only."
msgstr "" msgstr ""
"Este comentario ha sido enviado por un usuario identificado, por lo tanto la " "Este comentario ha sido enviado por un usuario identificado, por lo tanto la "
"dirección de correo electrónico no puede modificarse.%(text)s" "dirección de correo electrónico no puede modificarse."
#: contrib/comments/models.py:153 #: contrib/comments/models.py:153
#, python-format #, python-format
@ -3048,7 +3051,7 @@ msgstr ""
#: contrib/localflavor/pl/forms.py:72 #: contrib/localflavor/pl/forms.py:72
msgid "Wrong checksum for the Tax Number (NIP)." msgid "Wrong checksum for the Tax Number (NIP)."
msgstr "Código de verificación de Número Impostitivo (NIP) inválido." msgstr "Código de verificación de Número Impositivo (NIP) inválido."
#: contrib/localflavor/pl/forms.py:109 #: contrib/localflavor/pl/forms.py:109
msgid "National Business Register Number (REGON) consists of 9 or 14 digits." msgid "National Business Register Number (REGON) consists of 9 or 14 digits."
@ -3945,14 +3948,14 @@ msgstr "Este valor debe ser None, True o False."
msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
msgstr "Introduzca un valor de hora válido en formato HH:MM[:ss[.uuuuuu]]." msgstr "Introduzca un valor de hora válido en formato HH:MM[:ss[.uuuuuu]]."
#: db/models/fields/related.py:792 #: db/models/fields/related.py:816
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 ""
"Mantenga presionada \"Control\" (\"Command\" en una Mac) para seleccionar " "Mantenga presionada \"Control\" (\"Command\" en una Mac) para seleccionar "
"más de uno." "más de uno."
#: db/models/fields/related.py:870 #: db/models/fields/related.py:894
#, python-format #, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
msgid_plural "" msgid_plural ""
@ -4075,7 +4078,7 @@ msgstr ""
"Seleccione una opción válida. %(value)s no es una de las opciones " "Seleccione una opción válida. %(value)s no es una de las opciones "
"disponibles." "disponibles."
#: forms/fields.py:704 forms/fields.py:765 forms/models.py:991 #: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003
msgid "Enter a list of values." msgid "Enter a list of values."
msgstr "Introduzca una lista de valores." msgstr "Introduzca una lista de valores."
@ -4086,7 +4089,7 @@ msgstr "Introduzca una dirección IPv4 válida"
#: forms/fields.py:902 #: forms/fields.py:902
msgid "" msgid ""
"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens."
msgstr "Introduzca un 'slug' válido consistente en letras, números o guiones." msgstr "Introduzca un 'slug' válido consistente de letras, números o guiones."
#: forms/formsets.py:271 forms/formsets.py:273 #: forms/formsets.py:271 forms/formsets.py:273
msgid "Order" msgid "Order"
@ -4104,46 +4107,48 @@ msgstr ""
msgid "%(model_name)s with this %(field_label)s already exists." msgid "%(model_name)s with this %(field_label)s already exists."
msgstr "Ya existe un/a %(model_name)s con este/a %(field_label)s." msgstr "Ya existe un/a %(model_name)s con este/a %(field_label)s."
#: forms/models.py:581 #: forms/models.py:594
#, fuzzy, python-format #, python-format
msgid "Please correct the duplicate data for %(field)s." msgid "Please correct the duplicate data for %(field)s."
msgstr "Por favor, corrija el siguiente error." msgstr "Por favor, corrija la información duplicada en %(field)s."
#: forms/models.py:585 #: forms/models.py:598
#, python-format #, python-format
msgid "Please correct the duplicate data for %(field)s, which must be unique." msgid "Please correct the duplicate data for %(field)s, which must be unique."
msgstr "" msgstr ""
"Por favor corrija la información duplicada en %(field)s, que debe ser única."
#: forms/models.py:591 #: forms/models.py:604
#, python-format #, python-format
msgid "" msgid ""
"Please correct the duplicate data for %(field_name)s which must be unique " "Please correct the duplicate data for %(field_name)s which must be unique "
"for the %(lookup)s in %(date_field)s." "for the %(lookup)s in %(date_field)s."
msgstr "" msgstr ""
"Por favor corrija la información duplicada en %(field_name)s que debe ser "
"única para el %(lookup)s en %(date_field)s."
#: forms/models.py:599 #: forms/models.py:612
#, fuzzy
msgid "Please correct the duplicate values below." msgid "Please correct the duplicate values below."
msgstr "Por favor, corrija el siguiente error." msgstr "Por favor, corrija los valores duplicados detallados mas abajo."
#: forms/models.py:855 #: forms/models.py:867
msgid "The inline foreign key did not match the parent instance primary key." msgid "The inline foreign key did not match the parent instance primary key."
msgstr "" msgstr ""
"La clave foránea del modelo inline no coincide con la de la instancia padre." "La clave foránea del modelo inline no coincide con la de la instancia padre."
#: forms/models.py:918 #: forms/models.py:930
msgid "Select a valid choice. That choice is not one of the available choices." msgid "Select a valid choice. That choice is not one of the available choices."
msgstr "" msgstr ""
"Seleccione una opción válida. Esa opción no es una de las opciones " "Seleccione una opción válida. Esa opción no es una de las opciones "
"disponibles." "disponibles."
#: forms/models.py:992 #: forms/models.py:1004
#, python-format #, python-format
msgid "Select a valid choice. %s is not one of the available choices." msgid "Select a valid choice. %s is not one of the available choices."
msgstr "" msgstr ""
"Seleccione una opción válida. %s no es una de las opciones disponibles." "Seleccione una opción válida. %s no es una de las opciones disponibles."
#: forms/models.py:994 #: forms/models.py:1006
#, python-format #, python-format
msgid "\"%s\" is not a valid value for a primary key." msgid "\"%s\" is not a valid value for a primary key."
msgstr "\"%s\" no es un valor válido para una clave primaria." msgstr "\"%s\" no es un valor válido para una clave primaria."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django\n" "Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-04-11 07:53+0300\n" "POT-Creation-Date: 2009-07-24 22:06+0300\n"
"PO-Revision-Date: 2008-09-03 00:35+0200\n" "PO-Revision-Date: 2008-09-03 00:35+0200\n"
"Last-Translator: Erik Allik <removethis-eallik_at_gmail-com>\n" "Last-Translator: Erik Allik <removethis-eallik_at_gmail-com>\n"
"Language-Team: Django-i18n <django-i18n@googlegroups.com>\n" "Language-Team: Django-i18n <django-i18n@googlegroups.com>\n"
@ -217,19 +217,19 @@ msgstr "lihtsustatud hiina"
msgid "Traditional Chinese" msgid "Traditional Chinese"
msgstr "traditsiooniline hiina" msgstr "traditsiooniline hiina"
#: contrib/admin/actions.py:56 #: contrib/admin/actions.py:60
#, python-format #, python-format
msgid "Successfully deleted %(count)d %(items)s." msgid "Successfully deleted %(count)d %(items)s."
msgstr "" msgstr "%(count)d %(items)s kustutamine õnnestus"
#: contrib/admin/actions.py:63 contrib/admin/options.py:1023 #: contrib/admin/actions.py:67 contrib/admin/options.py:1027
msgid "Are you sure?" msgid "Are you sure?"
msgstr "Kas olete kindel?" msgstr "Kas olete kindel?"
#: contrib/admin/actions.py:81 #: contrib/admin/actions.py:85
#, python-format #, python-format
msgid "Delete selected %(verbose_name_plural)s" msgid "Delete selected %(verbose_name_plural)s"
msgstr "" msgstr "Kustuta valitud %(verbose_name_plural)s"
#: contrib/admin/filterspecs.py:44 #: contrib/admin/filterspecs.py:44
#, python-format #, python-format
@ -265,15 +265,15 @@ msgstr "Käesolev kuu"
msgid "This year" msgid "This year"
msgstr "Käesolev aasta" msgstr "Käesolev aasta"
#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 #: contrib/admin/filterspecs.py:147 forms/widgets.py:434
msgid "Yes" msgid "Yes"
msgstr "Jah" msgstr "Jah"
#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 #: contrib/admin/filterspecs.py:147 forms/widgets.py:434
msgid "No" msgid "No"
msgstr "Ei" msgstr "Ei"
#: contrib/admin/filterspecs.py:154 forms/widgets.py:413 #: contrib/admin/filterspecs.py:154 forms/widgets.py:434
msgid "Unknown" msgid "Unknown"
msgstr "Tundmatu" msgstr "Tundmatu"
@ -311,100 +311,101 @@ msgstr "logisissekanded"
#: contrib/admin/options.py:133 contrib/admin/options.py:147 #: contrib/admin/options.py:133 contrib/admin/options.py:147
msgid "None" msgid "None"
msgstr "puudub" msgstr "Puudub"
#: contrib/admin/options.py:517 #: contrib/admin/options.py:519
#, python-format #, python-format
msgid "Changed %s." msgid "Changed %s."
msgstr "Muutsin %s." msgstr "Muutsin %s."
#: contrib/admin/options.py:517 contrib/admin/options.py:527 #: contrib/admin/options.py:519 contrib/admin/options.py:529
#: contrib/comments/templates/comments/preview.html:16 forms/models.py:306 #: contrib/comments/templates/comments/preview.html:16 forms/models.py:388
#: forms/models.py:600
msgid "and" msgid "and"
msgstr "ja" msgstr "ja"
#: contrib/admin/options.py:522 #: contrib/admin/options.py:524
#, python-format #, python-format
msgid "Added %(name)s \"%(object)s\"." msgid "Added %(name)s \"%(object)s\"."
msgstr "Lisatud %(name)s \"%(object)s\"." msgstr "Lisatud %(name)s \"%(object)s\"."
#: contrib/admin/options.py:526 #: contrib/admin/options.py:528
#, python-format #, python-format
msgid "Changed %(list)s for %(name)s \"%(object)s\"." msgid "Changed %(list)s for %(name)s \"%(object)s\"."
msgstr "Muudetud %(list)s objektil %(name)s \"%(object)s\"." msgstr "Muudetud %(list)s objektil %(name)s \"%(object)s\"."
#: contrib/admin/options.py:531 #: contrib/admin/options.py:533
#, python-format #, python-format
msgid "Deleted %(name)s \"%(object)s\"." msgid "Deleted %(name)s \"%(object)s\"."
msgstr "Kustutatud %(name)s \"%(object)s\"." msgstr "Kustutatud %(name)s \"%(object)s\"."
#: contrib/admin/options.py:535 #: contrib/admin/options.py:537
msgid "No fields changed." msgid "No fields changed."
msgstr "Ühtegi välja ei muudetud." msgstr "Ühtegi välja ei muudetud."
#: contrib/admin/options.py:596 contrib/auth/admin.py:67 #: contrib/admin/options.py:599 contrib/auth/admin.py:67
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully." msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "%(name)s \"%(obj)s\" lisamine õnnestus." msgstr "%(name)s \"%(obj)s\" lisamine õnnestus."
#: contrib/admin/options.py:600 contrib/admin/options.py:633 #: contrib/admin/options.py:603 contrib/admin/options.py:636
#: contrib/auth/admin.py:75 #: contrib/auth/admin.py:75
msgid "You may edit it again below." msgid "You may edit it again below."
msgstr "Võite jätkata redigeerimist." msgstr "Võite jätkata redigeerimist."
#: contrib/admin/options.py:610 contrib/admin/options.py:643 #: contrib/admin/options.py:613 contrib/admin/options.py:646
#, python-format #, python-format
msgid "You may add another %s below." msgid "You may add another %s below."
msgstr "Võite jätkata uue %s lisamisega." msgstr "Võite jätkata uue %s lisamisega."
#: contrib/admin/options.py:631 #: contrib/admin/options.py:634
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully." msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr "%(name)s \"%(obj)s\" muutmine õnnestus." msgstr "%(name)s \"%(obj)s\" muutmine õnnestus."
#: contrib/admin/options.py:639 #: contrib/admin/options.py:642
#, python-format #, python-format
msgid "" msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr "%(name)s \"%(obj)s\" lisamine õnnestus. Te võite seda muuta." msgstr "%(name)s \"%(obj)s\" lisamine õnnestus. Te võite seda muuta."
#: contrib/admin/options.py:770 #: contrib/admin/options.py:773
#, python-format #, python-format
msgid "Add %s" msgid "Add %s"
msgstr "Lisa %s" msgstr "Lisa %s"
#: contrib/admin/options.py:801 contrib/admin/options.py:1001 #: contrib/admin/options.py:804 contrib/admin/options.py:1005
#, python-format #, python-format
msgid "%(name)s object with primary key %(key)r does not exist." msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "%(name)s primaarvõtmega %(key)r ei eksisteeri." msgstr "%(name)s primaarvõtmega %(key)r ei eksisteeri."
#: contrib/admin/options.py:858 #: contrib/admin/options.py:861
#, python-format #, python-format
msgid "Change %s" msgid "Change %s"
msgstr "Muuda %s" msgstr "Muuda %s"
#: contrib/admin/options.py:902 #: contrib/admin/options.py:905
msgid "Database error" msgid "Database error"
msgstr "Andmebaasi viga" msgstr "Andmebaasi viga"
#: contrib/admin/options.py:938 #: contrib/admin/options.py:941
#, python-format #, python-format
msgid "%(count)s %(name)s was changed successfully." msgid "%(count)s %(name)s was changed successfully."
msgid_plural "%(count)s %(name)s were changed successfully." msgid_plural "%(count)s %(name)s were changed successfully."
msgstr[0] "%(count)s %(name)s muutmine õnnestus." msgstr[0] "%(count)s %(name)s muutmine õnnestus."
msgstr[1] "%(count)s %(name)s muutmine õnnestus." msgstr[1] "%(count)s %(name)s muutmine õnnestus."
#: contrib/admin/options.py:1016 #: contrib/admin/options.py:1020
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "%(name)s \"%(obj)s\" kustutati." msgstr "%(name)s \"%(obj)s\" kustutati."
#: contrib/admin/options.py:1052 #: contrib/admin/options.py:1057
#, python-format #, python-format
msgid "Change history: %s" msgid "Change history: %s"
msgstr "Muudatuste ajalugu: %s" msgstr "Muudatuste ajalugu: %s"
#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 #: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14
#: contrib/auth/forms.py:80 #: contrib/auth/forms.py:80
msgid "" msgid ""
"Please enter a correct username and password. Note that both fields are case-" "Please enter a correct username and password. Note that both fields are case-"
@ -413,11 +414,11 @@ msgstr ""
"Palun sisestage korrektne kasutajatunnus ja salasõna. Mõlemad väljad on " "Palun sisestage korrektne kasutajatunnus ja salasõna. Mõlemad väljad on "
"tõstutundlikud." "tõstutundlikud."
#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 #: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40
msgid "Please log in again, because your session has expired." msgid "Please log in again, because your session has expired."
msgstr "Teie sessioon on aegunud. Palun logige uuesti sisse." msgstr "Teie sessioon on aegunud. Palun logige uuesti sisse."
#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 #: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47
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."
@ -425,28 +426,27 @@ msgstr ""
"Paistab, et Teie brauser ei aktsepteeri küpsiseid. Palun võimaldage küpsised " "Paistab, et Teie brauser ei aktsepteeri küpsiseid. Palun võimaldage küpsised "
"ning seejärel laadige see leht uuesti." "ning seejärel laadige see leht uuesti."
#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 #: contrib/admin/sites.py:308 contrib/admin/sites.py:314
#: contrib/admin/views/decorators.py:66 #: contrib/admin/views/decorators.py:66
msgid "Usernames cannot contain the '@' character." msgid "Usernames cannot contain the '@' character."
msgstr "Kasutajatunnused ei tohi sisaldada '@' märki." msgstr "Kasutajatunnused ei tohi sisaldada '@' märki."
#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 #: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62
#, 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 "Teie e-posti aadress ei ole Teie kasutajatunnus. Proovige '%s'."
"Teie e-posti aadress ei ole Teie kasutajatunnus. Proovige '%s'."
#: contrib/admin/sites.py:360 #: contrib/admin/sites.py:367
msgid "Site administration" msgid "Site administration"
msgstr "Saidi administreerimine" msgstr "Saidi administreerimine"
#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 #: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26
#: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/templates/registration/password_reset_complete.html:14
#: contrib/admin/views/decorators.py:20 #: contrib/admin/views/decorators.py:20
msgid "Log in" msgid "Log in"
msgstr "Sisene" msgstr "Sisene"
#: contrib/admin/sites.py:417 #: contrib/admin/sites.py:426
#, python-format #, python-format
msgid "%s administration" msgid "%s administration"
msgstr "%s - administreerimine" msgstr "%s - administreerimine"
@ -496,7 +496,7 @@ msgstr "Vabandame, kuid soovitud lehte ei leitud."
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/app_index.html:8 #: contrib/admin/templates/admin/app_index.html:8
#: contrib/admin/templates/admin/base.html:33 #: contrib/admin/templates/admin/base.html:54
#: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_form.html:17
#: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/change_list.html:25
#: contrib/admin/templates/admin/delete_confirmation.html:6 #: contrib/admin/templates/admin/delete_confirmation.html:6
@ -541,7 +541,6 @@ msgid "Run the selected action"
msgstr "Käivita valitud toiming" msgstr "Käivita valitud toiming"
#: contrib/admin/templates/admin/actions.html:4 #: contrib/admin/templates/admin/actions.html:4
#: contrib/admin/templates/admin/search_form.html:8
msgid "Go" msgid "Go"
msgstr "Mine" msgstr "Mine"
@ -551,18 +550,18 @@ msgstr "Mine"
msgid "%(name)s" msgid "%(name)s"
msgstr "%(name)s" msgstr "%(name)s"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:27
msgid "Welcome," msgid "Welcome,"
msgstr "Tere tulemast," msgstr "Tere tulemast,"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:32
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
msgid "Documentation" msgid "Documentation"
msgstr "Dokumentatsioon" msgstr "Dokumentatsioon"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:40
#: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:14
#: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/admin/auth/user/change_password.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
@ -570,7 +569,7 @@ msgstr "Dokumentatsioon"
msgid "Change password" msgid "Change password"
msgstr "Muuda salasõna" msgstr "Muuda salasõna"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
msgid "Log out" msgid "Log out"
@ -659,9 +658,8 @@ msgid ""
"your account doesn't have permission to delete the following types of " "your account doesn't have permission to delete the following types of "
"objects:" "objects:"
msgstr "" msgstr ""
"%(object_name)s kustutamiseks on vaja " "%(object_name)s kustutamiseks on vaja kustutada ka seotud objektid, aga teil "
"kustutada ka seotud objektid, aga teil puudub õigus järgnevat " "puudub õigus järgnevat tüüpi objektide kustutamiseks:"
"tüüpi objektide kustutamiseks:"
#: contrib/admin/templates/admin/delete_selected_confirmation.html:22 #: contrib/admin/templates/admin/delete_selected_confirmation.html:22
#, python-format #, python-format
@ -702,6 +700,10 @@ msgstr "Minu Toimingud"
msgid "None available" msgid "None available"
msgstr "Ei leitud ühtegi" msgstr "Ei leitud ühtegi"
#: contrib/admin/templates/admin/index.html:72
msgid "Unknown content"
msgstr "Tundmatu sisu"
#: contrib/admin/templates/admin/invalid_setup.html:7 #: contrib/admin/templates/admin/invalid_setup.html:7
msgid "" msgid ""
"Something's wrong with your database installation. Make sure the appropriate " "Something's wrong with your database installation. Make sure the appropriate "
@ -750,6 +752,15 @@ msgstr ""
msgid "Show all" msgid "Show all"
msgstr "Näita kõiki" msgstr "Näita kõiki"
#: contrib/admin/templates/admin/pagination.html:11
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Salvesta"
#: contrib/admin/templates/admin/search_form.html:8
msgid "Search"
msgstr "Otsing"
#: contrib/admin/templates/admin/search_form.html:10 #: contrib/admin/templates/admin/search_form.html:10
#, python-format #, python-format
msgid "1 result" msgid "1 result"
@ -762,10 +773,6 @@ msgstr[1] "%(counter)s tulemust"
msgid "%(full_result_count)s total" msgid "%(full_result_count)s total"
msgstr "Kokku %(full_result_count)s" msgstr "Kokku %(full_result_count)s"
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Salvesta"
#: contrib/admin/templates/admin/submit_line.html:5 #: contrib/admin/templates/admin/submit_line.html:5
msgid "Save as new" msgid "Save as new"
msgstr "Salvesta uuena" msgstr "Salvesta uuena"
@ -993,144 +1000,145 @@ msgstr "sait"
msgid "template" msgid "template"
msgstr "mall" msgstr "mall"
#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 #: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63
#: contrib/admindocs/views.py:62 #: contrib/admindocs/views.py:65
msgid "tag:" msgid "tag:"
msgstr "lipik:" msgstr "lipik:"
#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 #: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96
#: contrib/admindocs/views.py:95 #: contrib/admindocs/views.py:98
msgid "filter:" msgid "filter:"
msgstr "filtreeri:" msgstr "filtreeri:"
#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 #: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160
#: contrib/admindocs/views.py:159 #: contrib/admindocs/views.py:162
msgid "view:" msgid "view:"
msgstr "vaade:" msgstr "vaade:"
#: contrib/admindocs/views.py:187 #: contrib/admindocs/views.py:190
#, python-format #, python-format
msgid "App %r not found" msgid "App %r not found"
msgstr "Rakendust %r ei leitud" msgstr "Rakendust %r ei leitud"
#: contrib/admindocs/views.py:194 #: contrib/admindocs/views.py:197
#, python-format #, python-format
msgid "Model %(model_name)r not found in app %(app_label)r" msgid "Model %(model_name)r not found in app %(app_label)r"
msgstr "Mudelit %(model_name)r ei leitud rakendusest %(app_label)r" msgstr "Mudelit %(model_name)r ei leitud rakendusest %(app_label)r"
#: contrib/admindocs/views.py:206 #: contrib/admindocs/views.py:209
#, python-format #, python-format
msgid "the related `%(app_label)s.%(data_type)s` object" msgid "the related `%(app_label)s.%(data_type)s` object"
msgstr "seotud `%(app_label)s.%(data_type)s` objekt" msgstr "seotud `%(app_label)s.%(data_type)s` objekt"
#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228 #: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228
#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247
#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266
msgid "model:" msgid "model:"
msgstr "mudel:" msgstr "mudel:"
#: contrib/admindocs/views.py:237 #: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256
#, python-format #, python-format
msgid "related `%(app_label)s.%(object_name)s` objects" msgid "related `%(app_label)s.%(object_name)s` objects"
msgstr "seotud `%(app_label)s.%(object_name)s` objektid" msgstr "seotud `%(app_label)s.%(object_name)s` objektid"
#: contrib/admindocs/views.py:242 #: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261
#, python-format #, python-format
msgid "all %s" msgid "all %s"
msgstr "kõik %s" msgstr "kõik %s"
#: contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266
#, python-format #, python-format
msgid "number of %s" msgid "number of %s"
msgstr "%s arv" msgstr "%s arv"
#: contrib/admindocs/views.py:252 #: contrib/admindocs/views.py:271
#, python-format #, python-format
msgid "Fields on %s objects" msgid "Fields on %s objects"
msgstr "Objekti %s väljad" msgstr "Objekti %s väljad"
#: contrib/admindocs/views.py:315 contrib/admindocs/views.py:326 #: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345
#: contrib/admindocs/views.py:328 contrib/admindocs/views.py:334 #: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353
#: contrib/admindocs/views.py:335 contrib/admindocs/views.py:337 #: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356
msgid "Integer" msgid "Integer"
msgstr "Täisarv" msgstr "Täisarv"
#: contrib/admindocs/views.py:316 #: contrib/admindocs/views.py:335
msgid "Boolean (Either True or False)" msgid "Boolean (Either True or False)"
msgstr "Tõeväärtus (Kas tõene või väär)" msgstr "Tõeväärtus (Kas tõene või väär)"
#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:336 #: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355
#, python-format #, python-format
msgid "String (up to %(max_length)s)" msgid "String (up to %(max_length)s)"
msgstr "String (kuni %(max_length)s märki)" msgstr "String (kuni %(max_length)s märki)"
#: contrib/admindocs/views.py:318 #: contrib/admindocs/views.py:337
msgid "Comma-separated integers" msgid "Comma-separated integers"
msgstr "Komaga eraldatud täisarvud" msgstr "Komaga eraldatud täisarvud"
#: contrib/admindocs/views.py:319 #: contrib/admindocs/views.py:338
msgid "Date (without time)" msgid "Date (without time)"
msgstr "Kuupäev (kellaajata)" msgstr "Kuupäev (kellaajata)"
#: contrib/admindocs/views.py:320 #: contrib/admindocs/views.py:339
msgid "Date (with time)" msgid "Date (with time)"
msgstr "Kuupäev (kellaajaga)" msgstr "Kuupäev (kellaajaga)"
#: contrib/admindocs/views.py:321 #: contrib/admindocs/views.py:340
msgid "Decimal number" msgid "Decimal number"
msgstr "Kümnendmurd" msgstr "Kümnendmurd"
#: contrib/admindocs/views.py:322 #: contrib/admindocs/views.py:341
msgid "E-mail address" msgid "E-mail address"
msgstr "E-posti aadress" msgstr "E-posti aadress"
#: contrib/admindocs/views.py:323 contrib/admindocs/views.py:324 #: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343
#: contrib/admindocs/views.py:327 #: contrib/admindocs/views.py:346
msgid "File path" msgid "File path"
msgstr "Faili asukoht" msgstr "Faili asukoht"
#: contrib/admindocs/views.py:325 #: contrib/admindocs/views.py:344
msgid "Floating point number" msgid "Floating point number"
msgstr "Ujukomaarv" msgstr "Ujukomaarv"
#: contrib/admindocs/views.py:329 contrib/comments/models.py:60 #: contrib/admindocs/views.py:348 contrib/comments/models.py:60
msgid "IP address" msgid "IP address"
msgstr "IP aadress" msgstr "IP aadress"
#: contrib/admindocs/views.py:331 #: contrib/admindocs/views.py:350
msgid "Boolean (Either True, False or None)" msgid "Boolean (Either True, False or None)"
msgstr "Tõeväärtus (Kas tõene, väär või tühi)" msgstr "Tõeväärtus (Kas tõene, väär või tühi)"
#: contrib/admindocs/views.py:332 #: contrib/admindocs/views.py:351
msgid "Relation to parent model" msgid "Relation to parent model"
msgstr "Seos ülem-mudeliga" msgstr "Seos ülem-mudeliga"
#: contrib/admindocs/views.py:333 #: contrib/admindocs/views.py:352
msgid "Phone number" msgid "Phone number"
msgstr "Telefoninumber" msgstr "Telefoninumber"
#: contrib/admindocs/views.py:338 #: contrib/admindocs/views.py:357
msgid "Text" msgid "Text"
msgstr "Tekst" msgstr "Tekst"
#: contrib/admindocs/views.py:339 #: contrib/admindocs/views.py:358
msgid "Time" msgid "Time"
msgstr "Aeg" msgstr "Aeg"
#: contrib/admindocs/views.py:340 contrib/comments/forms.py:95 #: contrib/admindocs/views.py:359 contrib/comments/forms.py:95
#: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/comments/templates/comments/moderation_queue.html:37
#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
#: contrib/admindocs/views.py:341 #: contrib/admindocs/views.py:360
msgid "U.S. state (two uppercase letters)" msgid "U.S. state (two uppercase letters)"
msgstr "U.S.A. osariik (kaks suurt tähte)" msgstr "U.S.A. osariik (kaks suurt tähte)"
#: contrib/admindocs/views.py:342 #: contrib/admindocs/views.py:361
msgid "XML text" msgid "XML text"
msgstr "XML tekst" msgstr "XML tekst"
#: contrib/admindocs/views.py:368 #: contrib/admindocs/views.py:387
#, python-format #, python-format
msgid "%s does not appear to be a urlpattern object" msgid "%s does not appear to be a urlpattern object"
msgstr "%s ei tundu olevat urlpattern objekt" msgstr "%s ei tundu olevat urlpattern objekt"
@ -1470,7 +1478,7 @@ msgid ""
"If you enter anything in this field your comment will be treated as spam" "If you enter anything in this field your comment will be treated as spam"
msgstr "Kui sisestate sellesse lahtrisse midagi, loetakse kommentaar rämpsuks" msgstr "Kui sisestate sellesse lahtrisse midagi, loetakse kommentaar rämpsuks"
#: contrib/comments/models.py:22 contrib/contenttypes/models.py:71 #: contrib/comments/models.py:22 contrib/contenttypes/models.py:74
msgid "content type" msgid "content type"
msgstr "sisutüüp" msgstr "sisutüüp"
@ -1698,11 +1706,11 @@ msgstr "Postita kommentaar"
msgid "or make changes" msgid "or make changes"
msgstr "või tee muudatused" msgstr "või tee muudatused"
#: contrib/contenttypes/models.py:67 #: contrib/contenttypes/models.py:70
msgid "python model class name" msgid "python model class name"
msgstr "pythoni mudeli klassinimi" msgstr "pythoni mudeli klassinimi"
#: contrib/contenttypes/models.py:72 #: contrib/contenttypes/models.py:75
msgid "content types" msgid "content types"
msgstr "sisutüübid" msgstr "sisutüübid"
@ -1772,18 +1780,25 @@ msgstr ""
"Vabandame, kuid vorm on aegunud. Palun jätkake vormi täitmist käesolevalt " "Vabandame, kuid vorm on aegunud. Palun jätkake vormi täitmist käesolevalt "
"lehelt." "lehelt."
#: contrib/gis/forms/fields.py:14 #: contrib/gis/forms/fields.py:17
msgid "No geometry value provided." msgid "No geometry value provided."
msgstr "Geomeetriline väärtus puudub." msgstr "Geomeetriline väärtus puudub."
#: contrib/gis/forms/fields.py:15 #: contrib/gis/forms/fields.py:18
msgid "Invalid geometry value." msgid "Invalid geometry value."
msgstr "Vigane geomeetriline väärtus." msgstr "Vigane geomeetriline väärtus."
#: contrib/gis/forms/fields.py:16 #: contrib/gis/forms/fields.py:19
msgid "Invalid geometry type." msgid "Invalid geometry type."
msgstr "Vigane geomeetriline tüüp." msgstr "Vigane geomeetriline tüüp."
#: contrib/gis/forms/fields.py:20
msgid ""
"An error occurred when transforming the geometry to the SRID of the geometry "
"form field."
msgstr ""
"Geomeetria teisendamisel geomeetria vormivälja SRID-ks tekkis viga."
#: contrib/humanize/templatetags/humanize.py:19 #: contrib/humanize/templatetags/humanize.py:19
msgid "th" msgid "th"
msgstr "." msgstr "."
@ -2104,59 +2119,59 @@ msgstr "Tšiili RUT on ebakorrektne."
#: contrib/localflavor/cz/cz_regions.py:8 #: contrib/localflavor/cz/cz_regions.py:8
msgid "Prague" msgid "Prague"
msgstr "" msgstr "Praha"
#: contrib/localflavor/cz/cz_regions.py:9 #: contrib/localflavor/cz/cz_regions.py:9
msgid "Central Bohemian Region" msgid "Central Bohemian Region"
msgstr "" msgstr "Kesk-Boheemia regioon"
#: contrib/localflavor/cz/cz_regions.py:10 #: contrib/localflavor/cz/cz_regions.py:10
msgid "South Bohemian Region" msgid "South Bohemian Region"
msgstr "" msgstr "Lõuna-Boheemia regioon"
#: contrib/localflavor/cz/cz_regions.py:11 #: contrib/localflavor/cz/cz_regions.py:11
msgid "Pilsen Region" msgid "Pilsen Region"
msgstr "" msgstr "Pilseni regioon"
#: contrib/localflavor/cz/cz_regions.py:12 #: contrib/localflavor/cz/cz_regions.py:12
msgid "Carlsbad Region" msgid "Carlsbad Region"
msgstr "" msgstr "Carlsbadi regioon"
#: contrib/localflavor/cz/cz_regions.py:13 #: contrib/localflavor/cz/cz_regions.py:13
msgid "Usti Region" msgid "Usti Region"
msgstr "" msgstr "Usti regioon"
#: contrib/localflavor/cz/cz_regions.py:14 #: contrib/localflavor/cz/cz_regions.py:14
msgid "Liberec Region" msgid "Liberec Region"
msgstr "" msgstr "Libereci regioon"
#: contrib/localflavor/cz/cz_regions.py:15 #: contrib/localflavor/cz/cz_regions.py:15
msgid "Hradec Region" msgid "Hradec Region"
msgstr "" msgstr "Hradeci regioon"
#: contrib/localflavor/cz/cz_regions.py:16 #: contrib/localflavor/cz/cz_regions.py:16
msgid "Pardubice Region" msgid "Pardubice Region"
msgstr "" msgstr "Pardubice regioon"
#: contrib/localflavor/cz/cz_regions.py:17 #: contrib/localflavor/cz/cz_regions.py:17
msgid "Vysocina Region" msgid "Vysocina Region"
msgstr "" msgstr "Vysocina regioon"
#: contrib/localflavor/cz/cz_regions.py:18 #: contrib/localflavor/cz/cz_regions.py:18
msgid "South Moravian Region" msgid "South Moravian Region"
msgstr "" msgstr "Lõuna-Moraavia regioon"
#: contrib/localflavor/cz/cz_regions.py:19 #: contrib/localflavor/cz/cz_regions.py:19
msgid "Olomouc Region" msgid "Olomouc Region"
msgstr "" msgstr "Olomouci regioon"
#: contrib/localflavor/cz/cz_regions.py:20 #: contrib/localflavor/cz/cz_regions.py:20
msgid "Zlin Region" msgid "Zlin Region"
msgstr "" msgstr "Zlini regioon"
#: contrib/localflavor/cz/cz_regions.py:21 #: contrib/localflavor/cz/cz_regions.py:21
msgid "Moravian-Silesian Region" msgid "Moravian-Silesian Region"
msgstr "" msgstr "Moraavia-Sileesia regioon"
#: contrib/localflavor/cz/forms.py:27 contrib/localflavor/sk/forms.py:30 #: contrib/localflavor/cz/forms.py:27 contrib/localflavor/sk/forms.py:30
msgid "Enter a postal code in the format XXXXX or XXX XX." msgid "Enter a postal code in the format XXXXX or XXX XX."
@ -2164,12 +2179,13 @@ msgstr "Sisesta postiindeks kujul XXXXX või XXX XX."
#: contrib/localflavor/cz/forms.py:47 #: contrib/localflavor/cz/forms.py:47
msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX."
msgstr "" msgstr "Sisesta sünninumber formaadis XXXXXX/XXXX või XXXXXXXXXX"
"Sisesta sünninumber formaadis XXXXXX/XXXX või XXXXXXXXXX"
#: contrib/localflavor/cz/forms.py:48 #: contrib/localflavor/cz/forms.py:48
msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'"
msgstr "Ebasobiv valikuline parameeter Sugu, sobivad väärtused on 'f' (naine) ja 'm' (mees)" msgstr ""
"Ebasobiv valikuline parameeter Sugu, sobivad väärtused on 'f' (naine) ja "
"'m' (mees)"
#: contrib/localflavor/cz/forms.py:49 #: contrib/localflavor/cz/forms.py:49
msgid "Enter a valid birth number." msgid "Enter a valid birth number."
@ -3846,7 +3862,7 @@ msgstr "hüüdnimi"
msgid "sites" msgid "sites"
msgstr "saidid" msgstr "saidid"
#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:707 #: db/models/fields/__init__.py:356 db/models/fields/__init__.py:710
msgid "This value must be an integer." msgid "This value must be an integer."
msgstr "See väärtus peab olema täisarv." msgstr "See väärtus peab olema täisarv."
@ -3880,24 +3896,24 @@ msgstr ""
msgid "This value must be a decimal number." msgid "This value must be a decimal number."
msgstr "See väärtus peab olema kümnendarv." msgstr "See väärtus peab olema kümnendarv."
#: db/models/fields/__init__.py:683 #: db/models/fields/__init__.py:686
msgid "This value must be a float." msgid "This value must be a float."
msgstr "See väärtus peab olema murdarv." msgstr "See väärtus peab olema murdarv."
#: db/models/fields/__init__.py:743 #: db/models/fields/__init__.py:746
msgid "This value must be either None, True or False." msgid "This value must be either None, True or False."
msgstr "See väärtus peab olema kas tühi, tõene või väär." msgstr "See väärtus peab olema kas tühi, tõene või väär."
#: db/models/fields/__init__.py:846 db/models/fields/__init__.py:860 #: db/models/fields/__init__.py:849 db/models/fields/__init__.py:863
msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
msgstr "Sisestage korrektne kellaaeg formaadis TT:MM[:ss[.uuuuuu]]" msgstr "Sisestage korrektne kellaaeg formaadis TT:MM[:ss[.uuuuuu]]"
#: db/models/fields/related.py:792 #: db/models/fields/related.py:816
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 "Et valida mitu, hoidke all \"Control\"-nuppu (Maci puhul \"Command\")." msgstr "Et valida mitu, hoidke all \"Control\"-nuppu (Maci puhul \"Command\")."
#: db/models/fields/related.py:870 #: db/models/fields/related.py:894
#, python-format #, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
msgid_plural "" msgid_plural ""
@ -3961,11 +3977,11 @@ msgstr "Veenduge, et komakohtade arv ei ületaks %s."
msgid "Ensure that there are no more than %s digits before the decimal point." msgid "Ensure that there are no more than %s digits before the decimal point."
msgstr "Veenduge, et komast vasakul olevaid numbreid ei oleks rohkem kui %s." msgstr "Veenduge, et komast vasakul olevaid numbreid ei oleks rohkem kui %s."
#: forms/fields.py:288 forms/fields.py:862 #: forms/fields.py:288 forms/fields.py:863
msgid "Enter a valid date." msgid "Enter a valid date."
msgstr "Sisestage korrektne kuupäev." msgstr "Sisestage korrektne kuupäev."
#: forms/fields.py:322 forms/fields.py:863 #: forms/fields.py:322 forms/fields.py:864
msgid "Enter a valid time." msgid "Enter a valid time."
msgstr "Sisestage korrektne kellaaeg." msgstr "Sisestage korrektne kellaaeg."
@ -4009,20 +4025,20 @@ msgstr "Sisestage korrektne URL."
msgid "This URL appears to be a broken link." msgid "This URL appears to be a broken link."
msgstr "See URL näib olevat katkine." msgstr "See URL näib olevat katkine."
#: forms/fields.py:624 forms/fields.py:702 #: forms/fields.py:625 forms/fields.py:703
#, python-format #, python-format
msgid "Select a valid choice. %(value)s is not one of the available choices." msgid "Select a valid choice. %(value)s is not one of the available choices."
msgstr "Valige korrektne väärtus. %(value)s ei ole valitav." msgstr "Valige korrektne väärtus. %(value)s ei ole valitav."
#: forms/fields.py:703 forms/fields.py:764 forms/models.py:776 #: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003
msgid "Enter a list of values." msgid "Enter a list of values."
msgstr "Sisestage väärtuste nimekiri." msgstr "Sisestage väärtuste nimekiri."
#: forms/fields.py:891 #: forms/fields.py:892
msgid "Enter a valid IPv4 address." msgid "Enter a valid IPv4 address."
msgstr "Sisestage korrektne IPv4 aadress." msgstr "Sisestage korrektne IPv4 aadress."
#: forms/fields.py:901 #: forms/fields.py:902
msgid "" msgid ""
"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens."
msgstr "" msgstr ""
@ -4032,76 +4048,103 @@ msgstr ""
msgid "Order" msgid "Order"
msgstr "Järjestus" msgstr "Järjestus"
#: forms/models.py:299 forms/models.py:308 #: forms/models.py:367
#, python-format
msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s."
msgstr "%(field_name)s peab olema unikaalne %(date_field)s %(lookup)s suhtes."
#: forms/models.py:381 forms/models.py:389
#, python-format #, python-format
msgid "%(model_name)s with this %(field_label)s already exists." msgid "%(model_name)s with this %(field_label)s already exists."
msgstr "Sellise %(field_label)s-väljaga %(model_name)s on juba olemas." msgstr "Sellise %(field_label)s-väljaga %(model_name)s on juba olemas."
#: forms/models.py:651 #: forms/models.py:594
msgid "The inline foreign key did not match the parent instance primary key." #, python-format
msgstr "" msgid "Please correct the duplicate data for %(field)s."
msgstr "Palun parandage duplikaat-andmed lahtris %(field)s."
#: forms/models.py:706 #: forms/models.py:598
#, python-format
msgid "Please correct the duplicate data for %(field)s, which must be unique."
msgstr "Palun parandage duplikaat-andmed lahtris %(field)s, mis peab olema unikaalne."
#: forms/models.py:604
#, python-format
msgid ""
"Please correct the duplicate data for %(field_name)s which must be unique "
"for the %(lookup)s in %(date_field)s."
msgstr ""
""
#: forms/models.py:612
msgid "Please correct the duplicate values below."
msgstr "Palun parandage allolevad duplikaat-väärtused"
#: forms/models.py:867
msgid "The inline foreign key did not match the parent instance primary key."
msgstr "Pesastatud välisvõti ei sobi ülemobjekti primaarvõtmega."
#: forms/models.py:930
msgid "Select a valid choice. That choice is not one of the available choices." msgid "Select a valid choice. That choice is not one of the available choices."
msgstr "Valige korrektne väärtus. Valitud väärtus ei ole valitav." msgstr "Valige korrektne väärtus. Valitud väärtus ei ole valitav."
#: forms/models.py:777 #: forms/models.py:1004
#, python-format #, python-format
msgid "Select a valid choice. %s is not one of the available choices." msgid "Select a valid choice. %s is not one of the available choices."
msgstr "Valige korrektne väärtus. %s ei ole valitav." msgstr "Valige korrektne väärtus. %s ei ole valitav."
#: forms/models.py:779 #: forms/models.py:1006
#, python-format #, python-format
msgid "\"%s\" is not a valid value for a primary key." msgid "\"%s\" is not a valid value for a primary key."
msgstr "" msgstr "\"%s\" ei ole sobiv väärtust primaarvõtmeks."
#: template/defaultfilters.py:765 #: template/defaultfilters.py:767
msgid "yes,no,maybe" msgid "yes,no,maybe"
msgstr "jah,ei,võib-olla" msgstr "jah,ei,võib-olla"
#: template/defaultfilters.py:796 #: template/defaultfilters.py:798
#, python-format #, python-format
msgid "%(size)d byte" msgid "%(size)d byte"
msgid_plural "%(size)d bytes" msgid_plural "%(size)d bytes"
msgstr[0] "%(size)d bait" msgstr[0] "%(size)d bait"
msgstr[1] "%(size)d baiti" msgstr[1] "%(size)d baiti"
#: template/defaultfilters.py:798 #: template/defaultfilters.py:800
#, python-format #, python-format
msgid "%.1f KB" msgid "%.1f KB"
msgstr "%.1f KB" msgstr "%.1f KB"
#: template/defaultfilters.py:800 #: template/defaultfilters.py:802
#, python-format #, python-format
msgid "%.1f MB" msgid "%.1f MB"
msgstr "%.1f MB" msgstr "%.1f MB"
#: template/defaultfilters.py:801 #: template/defaultfilters.py:803
#, python-format #, python-format
msgid "%.1f GB" msgid "%.1f GB"
msgstr "%.1f GB" msgstr "%.1f GB"
#: utils/dateformat.py:41 #: utils/dateformat.py:42
msgid "p.m." msgid "p.m."
msgstr "p.l." msgstr "p.l."
#: utils/dateformat.py:42 #: utils/dateformat.py:43
msgid "a.m." msgid "a.m."
msgstr "e.l." msgstr "e.l."
#: utils/dateformat.py:47 #: utils/dateformat.py:48
msgid "PM" msgid "PM"
msgstr "PL" msgstr "PL"
#: utils/dateformat.py:48 #: utils/dateformat.py:49
msgid "AM" msgid "AM"
msgstr "EL" msgstr "EL"
#: utils/dateformat.py:97 #: utils/dateformat.py:98
msgid "midnight" msgid "midnight"
msgstr "südaöö" msgstr "südaöö"
#: utils/dateformat.py:99 #: utils/dateformat.py:100
msgid "noon" msgid "noon"
msgstr "keskpäev" msgstr "keskpäev"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -6,15 +6,15 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: django\n" "Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-04-10 08:26+0200\n" "POT-Creation-Date: 2009-07-27 11:12+0200\n"
"PO-Revision-Date: 2009-04-10 08:29+0200\n" "PO-Revision-Date: 2009-07-27 11:10+0200\n"
"Last-Translator: Nicola Larosa <nico@tekNico.net>\n" "Last-Translator: Nicola Larosa <nico@tekNico.net>\n"
"Language-Team: Italian\n" "Language-Team: Italian <django-it@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" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: KBabel 1.11.4\n" "X-Generator: Lokalize 0.3\n"
#: conf/global_settings.py:44 #: conf/global_settings.py:44
msgid "Arabic" msgid "Arabic"
@ -202,7 +202,7 @@ msgstr "telugu"
#: conf/global_settings.py:90 #: conf/global_settings.py:90
msgid "Thai" msgid "Thai"
msgstr "thai" msgstr "tailandese"
#: conf/global_settings.py:91 #: conf/global_settings.py:91
msgid "Turkish" msgid "Turkish"
@ -220,19 +220,19 @@ msgstr "cinese semplificato"
msgid "Traditional Chinese" msgid "Traditional Chinese"
msgstr "cinese tradizionale" msgstr "cinese tradizionale"
#: contrib/admin/actions.py:56 #: contrib/admin/actions.py:60
#, python-format #, python-format
msgid "Successfully deleted %(count)d %(items)s." msgid "Successfully deleted %(count)d %(items)s."
msgstr "Cancellati con successo %(count)d %(items)s." msgstr "Cancellati/e con successo %(count)d %(items)s."
#: contrib/admin/actions.py:63 contrib/admin/options.py:1023 #: contrib/admin/actions.py:67 contrib/admin/options.py:1027
msgid "Are you sure?" msgid "Are you sure?"
msgstr "Sei sicuro?" msgstr "Sei sicuro?"
#: contrib/admin/actions.py:81 #: contrib/admin/actions.py:85
#, python-format #, python-format
msgid "Delete selected %(verbose_name_plural)s" msgid "Delete selected %(verbose_name_plural)s"
msgstr "Cancellati i %(verbose_name_plural)s selezionati" msgstr "Cancella %(verbose_name_plural)s selezionati/e"
#: contrib/admin/filterspecs.py:44 #: contrib/admin/filterspecs.py:44
#, python-format #, python-format
@ -268,15 +268,15 @@ msgstr "Questo mese"
msgid "This year" msgid "This year"
msgstr "Quest'anno" msgstr "Quest'anno"
#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 #: contrib/admin/filterspecs.py:147 forms/widgets.py:434
msgid "Yes" msgid "Yes"
msgstr "Sì" msgstr "Sì"
#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 #: contrib/admin/filterspecs.py:147 forms/widgets.py:434
msgid "No" msgid "No"
msgstr "No" msgstr "No"
#: contrib/admin/filterspecs.py:154 forms/widgets.py:413 #: contrib/admin/filterspecs.py:154 forms/widgets.py:434
msgid "Unknown" msgid "Unknown"
msgstr "Sconosciuto" msgstr "Sconosciuto"
@ -316,99 +316,100 @@ msgstr "voci di log"
msgid "None" msgid "None"
msgstr "Nessuno" msgstr "Nessuno"
#: contrib/admin/options.py:517 #: contrib/admin/options.py:519
#, python-format #, python-format
msgid "Changed %s." msgid "Changed %s."
msgstr "%s modificato." msgstr "%s modificato/a."
#: contrib/admin/options.py:517 contrib/admin/options.py:527 #: contrib/admin/options.py:519 contrib/admin/options.py:529
#: contrib/comments/templates/comments/preview.html:16 forms/models.py:306 #: contrib/comments/templates/comments/preview.html:16 forms/models.py:388
#: forms/models.py:600
msgid "and" msgid "and"
msgstr "e" msgstr "e"
#: contrib/admin/options.py:522 #: contrib/admin/options.py:524
#, python-format #, python-format
msgid "Added %(name)s \"%(object)s\"." msgid "Added %(name)s \"%(object)s\"."
msgstr "Aggiunti %(name)s \"%(object)s\"." msgstr "Aggiunto/a %(name)s \"%(object)s\"."
#: contrib/admin/options.py:526 #: contrib/admin/options.py:528
#, python-format #, python-format
msgid "Changed %(list)s for %(name)s \"%(object)s\"." msgid "Changed %(list)s for %(name)s \"%(object)s\"."
msgstr "Cambiati %(list)s per %(name)s \"%(object)s\"." msgstr "Cambiato/i %(list)s per %(name)s \"%(object)s\"."
#: contrib/admin/options.py:531 #: contrib/admin/options.py:533
#, python-format #, python-format
msgid "Deleted %(name)s \"%(object)s\"." msgid "Deleted %(name)s \"%(object)s\"."
msgstr "Cancellati %(name)s \"%(object)s\"." msgstr "Cancellato/a %(name)s \"%(object)s\"."
#: contrib/admin/options.py:535 #: contrib/admin/options.py:537
msgid "No fields changed." msgid "No fields changed."
msgstr "Nessun campo modificato." msgstr "Nessun campo modificato."
#: contrib/admin/options.py:596 contrib/auth/admin.py:67 #: contrib/admin/options.py:599 contrib/auth/admin.py:67
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully." msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "%(name)s \"%(obj)s\" è stato aggiunto correttamente." msgstr "%(name)s \"%(obj)s\" aggiunto/a correttamente."
#: contrib/admin/options.py:600 contrib/admin/options.py:633 #: contrib/admin/options.py:603 contrib/admin/options.py:636
#: contrib/auth/admin.py:75 #: contrib/auth/admin.py:75
msgid "You may edit it again below." msgid "You may edit it again below."
msgstr "È possibile modificarlo nuovamente qui sotto." msgstr "È possibile modificare nuovamente qui sotto."
#: contrib/admin/options.py:610 contrib/admin/options.py:643 #: contrib/admin/options.py:613 contrib/admin/options.py:646
#, python-format #, python-format
msgid "You may add another %s below." msgid "You may add another %s below."
msgstr "Puoi aggiungere un altro %s qui sotto." msgstr "Puoi aggiungere un altro/a %s qui sotto."
#: contrib/admin/options.py:631 #: contrib/admin/options.py:634
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully." msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr "%(name)s \"%(obj)s\" modificato correttamente." msgstr "%(name)s \"%(obj)s\" modificato/a correttamente."
#: contrib/admin/options.py:639 #: contrib/admin/options.py:642
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." msgid "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr "" msgstr ""
"%(name)s \"%(obj)s\" aggiunto correttamente. Puoi modificarlo ancora qui " "%(name)s \"%(obj)s\" aggiunto/a correttamente. Puoi modificare ancora qui "
"sotto." "sotto."
#: contrib/admin/options.py:770 #: contrib/admin/options.py:773
#, python-format #, python-format
msgid "Add %s" msgid "Add %s"
msgstr "Aggiungi %s" msgstr "Aggiungi %s"
#: contrib/admin/options.py:801 contrib/admin/options.py:1001 #: contrib/admin/options.py:804 contrib/admin/options.py:1005
#, python-format #, python-format
msgid "%(name)s object with primary key %(key)r does not exist." msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "L'oggetto %(name)s con chiave primaria %(key)r non esiste." msgstr "L'oggetto %(name)s con chiave primaria %(key)r non esiste."
#: contrib/admin/options.py:858 #: contrib/admin/options.py:861
#, python-format #, python-format
msgid "Change %s" msgid "Change %s"
msgstr "Modifica %s" msgstr "Modifica %s"
#: contrib/admin/options.py:902 #: contrib/admin/options.py:905
msgid "Database error" msgid "Database error"
msgstr "Errore nel database" msgstr "Errore nel database"
#: contrib/admin/options.py:938 #: contrib/admin/options.py:941
#, python-format #, python-format
msgid "%(count)s %(name)s was changed successfully." msgid "%(count)s %(name)s was changed successfully."
msgid_plural "%(count)s %(name)s were changed successfully." msgid_plural "%(count)s %(name)s were changed successfully."
msgstr[0] "%(count)s %(name)s è stato modificato correttamente." msgstr[0] "%(count)s %(name)s modificato/a correttamente."
msgstr[1] "%(count)s %(name)s sono stati modificati correttamente." msgstr[1] "%(count)s %(name)s modificati/e correttamente."
#: contrib/admin/options.py:1016 #: contrib/admin/options.py:1020
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "%(name)s \"%(obj)s\" cancellato correttamente." msgstr "%(name)s \"%(obj)s\" cancellato/a correttamente."
#: contrib/admin/options.py:1052 #: contrib/admin/options.py:1057
#, python-format #, python-format
msgid "Change history: %s" msgid "Change history: %s"
msgstr "Tracciato delle modifiche: %s" msgstr "Tracciato delle modifiche: %s"
#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 #: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14
#: contrib/auth/forms.py:80 #: contrib/auth/forms.py:80
msgid "" msgid ""
"Please enter a correct username and password. Note that both fields are case-" "Please enter a correct username and password. Note that both fields are case-"
@ -417,11 +418,11 @@ msgstr ""
"Inserisci nome utente e password corretti. In entrambi i campi le maiuscole " "Inserisci nome utente e password corretti. In entrambi i campi le maiuscole "
"sono significative." "sono significative."
#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 #: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40
msgid "Please log in again, because your session has expired." msgid "Please log in again, because your session has expired."
msgstr "Effettua di nuovo l'accesso, perché la tua sessione è scaduta." msgstr "Effettua di nuovo l'accesso, perché la tua sessione è scaduta."
#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 #: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47
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."
@ -429,27 +430,27 @@ msgstr ""
"Il browser non sembra configurato per accettare i cookie. Una volta " "Il browser non sembra configurato per accettare i cookie. Una volta "
"abilitati, ricarica la pagina e riprova." "abilitati, ricarica la pagina e riprova."
#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 #: contrib/admin/sites.py:308 contrib/admin/sites.py:314
#: contrib/admin/views/decorators.py:66 #: contrib/admin/views/decorators.py:66
msgid "Usernames cannot contain the '@' character." msgid "Usernames cannot contain the '@' character."
msgstr "I nomi utente non possono contenere il carattere '@'." msgstr "I nomi utente non possono contenere il carattere '@'."
#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 #: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62
#, 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 "Il nome utente non è costituito dall'indirizzo e-mail. Prova con '%s'." msgstr "Il nome utente non è costituito dall'indirizzo e-mail. Prova con '%s'."
#: contrib/admin/sites.py:360 #: contrib/admin/sites.py:367
msgid "Site administration" msgid "Site administration"
msgstr "Amministrazione sito" msgstr "Amministrazione sito"
#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 #: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26
#: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/templates/registration/password_reset_complete.html:14
#: contrib/admin/views/decorators.py:20 #: contrib/admin/views/decorators.py:20
msgid "Log in" msgid "Log in"
msgstr "Accedi" msgstr "Accedi"
#: contrib/admin/sites.py:417 #: contrib/admin/sites.py:426
#, python-format #, python-format
msgid "%s administration" msgid "%s administration"
msgstr "Amministrazione %s" msgstr "Amministrazione %s"
@ -499,7 +500,7 @@ msgstr "Spiacenti, ma la pagina richiesta non è stata trovata."
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/app_index.html:8 #: contrib/admin/templates/admin/app_index.html:8
#: contrib/admin/templates/admin/base.html:33 #: contrib/admin/templates/admin/base.html:54
#: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_form.html:17
#: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/change_list.html:25
#: contrib/admin/templates/admin/delete_confirmation.html:6 #: contrib/admin/templates/admin/delete_confirmation.html:6
@ -535,7 +536,8 @@ msgid ""
"There's been an error. It's been reported to the site administrators via e-" "There's been an error. It's been reported to the site administrators via e-"
"mail and should be fixed shortly. Thanks for your patience." "mail and should be fixed shortly. Thanks for your patience."
msgstr "" msgstr ""
"Si è verificato un errore. È stato riportato agli amministratori del sito " "Si è verificato un errore. Gli amministratori del sito ne sono stati "
"informati"
"via e-mail e verrà corretto a breve. Grazie per la tua pazienza." "via e-mail e verrà corretto a breve. Grazie per la tua pazienza."
#: contrib/admin/templates/admin/actions.html:4 #: contrib/admin/templates/admin/actions.html:4
@ -543,7 +545,6 @@ msgid "Run the selected action"
msgstr "Esegui l'azione selezionata" msgstr "Esegui l'azione selezionata"
#: contrib/admin/templates/admin/actions.html:4 #: contrib/admin/templates/admin/actions.html:4
#: contrib/admin/templates/admin/search_form.html:8
msgid "Go" msgid "Go"
msgstr "Vai" msgstr "Vai"
@ -553,18 +554,18 @@ msgstr "Vai"
msgid "%(name)s" msgid "%(name)s"
msgstr "%(name)s" msgstr "%(name)s"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:27
msgid "Welcome," msgid "Welcome,"
msgstr "Benvenuto," msgstr "Benvenuto/a,"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:32
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
msgid "Documentation" msgid "Documentation"
msgstr "Documentazione" msgstr "Documentazione"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:40
#: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:14
#: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/admin/auth/user/change_password.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
@ -572,7 +573,7 @@ msgstr "Documentazione"
msgid "Change password" msgid "Change password"
msgstr "Cambia la password" msgstr "Cambia la password"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
msgid "Log out" msgid "Log out"
@ -607,7 +608,7 @@ msgstr "Vedi sul sito"
#: contrib/admin/templates/admin/auth/user/change_password.html:23 #: contrib/admin/templates/admin/auth/user/change_password.html:23
msgid "Please correct the error below." msgid "Please correct the error below."
msgid_plural "Please correct the errors below." msgid_plural "Please correct the errors below."
msgstr[0] "Correggi gli errori qui sotto." msgstr[0] "Correggi l'errore qui sotto."
msgstr[1] "Correggi gli errori qui sotto." msgstr[1] "Correggi gli errori qui sotto."
#: contrib/admin/templates/admin/change_list.html:46 #: contrib/admin/templates/admin/change_list.html:46
@ -703,6 +704,10 @@ msgstr "Azioni Proprie"
msgid "None available" msgid "None available"
msgstr "Nessuna disponibile" msgstr "Nessuna disponibile"
#: contrib/admin/templates/admin/index.html:72
msgid "Unknown content"
msgstr "Contenuto sconosciuto"
#: contrib/admin/templates/admin/invalid_setup.html:7 #: contrib/admin/templates/admin/invalid_setup.html:7
msgid "" msgid ""
"Something's wrong with your database installation. Make sure the appropriate " "Something's wrong with your database installation. Make sure the appropriate "
@ -751,6 +756,15 @@ msgstr ""
msgid "Show all" msgid "Show all"
msgstr "Mostra tutto" msgstr "Mostra tutto"
#: contrib/admin/templates/admin/pagination.html:11
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Salva"
#: contrib/admin/templates/admin/search_form.html:8
msgid "Search"
msgstr "Cerca"
#: contrib/admin/templates/admin/search_form.html:10 #: contrib/admin/templates/admin/search_form.html:10
#, python-format #, python-format
msgid "1 result" msgid "1 result"
@ -763,10 +777,6 @@ msgstr[1] "%(counter)s risultati"
msgid "%(full_result_count)s total" msgid "%(full_result_count)s total"
msgstr "%(full_result_count)s totali" msgstr "%(full_result_count)s totali"
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Salva"
#: contrib/admin/templates/admin/submit_line.html:5 #: contrib/admin/templates/admin/submit_line.html:5
msgid "Save as new" msgid "Save as new"
msgstr "Salva come nuovo" msgstr "Salva come nuovo"
@ -836,7 +846,7 @@ msgstr "Cambio password"
#: contrib/admin/templates/registration/password_change_done.html:6 #: contrib/admin/templates/registration/password_change_done.html:6
#: contrib/admin/templates/registration/password_change_done.html:10 #: contrib/admin/templates/registration/password_change_done.html:10
msgid "Password change successful" msgid "Password change successful"
msgstr "Cambio di password avvenuto correttamente" msgstr "Cambio password avvenuto correttamente"
#: 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."
@ -905,7 +915,7 @@ msgstr ""
#: contrib/admin/templates/registration/password_reset_confirm.html:26 #: contrib/admin/templates/registration/password_reset_confirm.html:26
msgid "Password reset unsuccessful" msgid "Password reset unsuccessful"
msgstr "Password NON reimpostata" msgstr "Password non reimpostata"
#: contrib/admin/templates/registration/password_reset_confirm.html:28 #: contrib/admin/templates/registration/password_reset_confirm.html:28
msgid "" msgid ""
@ -943,7 +953,7 @@ msgstr "Vai alla pagina seguente e scegli una nuova password:"
#: contrib/admin/templates/registration/password_reset_email.html:9 #: contrib/admin/templates/registration/password_reset_email.html:9
msgid "Your username, in case you've forgotten:" msgid "Your username, in case you've forgotten:"
msgstr "Il tuo nome utente, in caso l'abbia dimenticato:" msgstr "Il tuo nome utente, in caso tu l'abbia dimenticato:"
#: contrib/admin/templates/registration/password_reset_email.html:11 #: contrib/admin/templates/registration/password_reset_email.html:11
msgid "Thanks for using our site!" msgid "Thanks for using our site!"
@ -959,7 +969,7 @@ msgid ""
"Forgotten your password? Enter your e-mail address below, and we'll e-mail " "Forgotten your password? Enter your e-mail address below, and we'll e-mail "
"instructions for setting a new one." "instructions for setting a new one."
msgstr "" msgstr ""
"Dimenticata la password? Inserisci il tuo indirizzo email qui sotto, e ti " "Password dimenticata? Inserisci il tuo indirizzo email qui sotto, e ti "
"invieremo per email le istruzioni per impostarne una nuova." "invieremo per email le istruzioni per impostarne una nuova."
#: contrib/admin/templates/registration/password_reset_form.html:16 #: contrib/admin/templates/registration/password_reset_form.html:16
@ -992,144 +1002,145 @@ msgstr "sito"
msgid "template" msgid "template"
msgstr "modello" msgstr "modello"
#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 #: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63
#: contrib/admindocs/views.py:62 #: contrib/admindocs/views.py:65
msgid "tag:" msgid "tag:"
msgstr "tag:" msgstr "tag:"
#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 #: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96
#: contrib/admindocs/views.py:95 #: contrib/admindocs/views.py:98
msgid "filter:" msgid "filter:"
msgstr "filtro:" msgstr "filtro:"
#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 #: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160
#: contrib/admindocs/views.py:159 #: contrib/admindocs/views.py:162
msgid "view:" msgid "view:"
msgstr "view:" msgstr "view:"
#: contrib/admindocs/views.py:187 #: contrib/admindocs/views.py:190
#, python-format #, python-format
msgid "App %r not found" msgid "App %r not found"
msgstr "Appl. %r non trovata" msgstr "Appl. %r non trovata"
#: contrib/admindocs/views.py:194 #: contrib/admindocs/views.py:197
#, python-format #, python-format
msgid "Model %(model_name)r not found in app %(app_label)r" msgid "Model %(model_name)r not found in app %(app_label)r"
msgstr "Modello %(model_name)r non trovato nell'appl. %(app_label)r" msgstr "Modello %(model_name)r non trovato nell'appl. %(app_label)r"
#: contrib/admindocs/views.py:206 #: contrib/admindocs/views.py:209
#, python-format #, python-format
msgid "the related `%(app_label)s.%(data_type)s` object" msgid "the related `%(app_label)s.%(data_type)s` object"
msgstr "l'oggetto `%(app_label)s.%(data_type)s` collegato" msgstr "l'oggetto `%(app_label)s.%(data_type)s` collegato"
#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228 #: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228
#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247
#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266
msgid "model:" msgid "model:"
msgstr "modello:" msgstr "modello:"
#: contrib/admindocs/views.py:237 #: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256
#, python-format #, python-format
msgid "related `%(app_label)s.%(object_name)s` objects" msgid "related `%(app_label)s.%(object_name)s` objects"
msgstr "oggetti `%(app_label)s.%(object_name)s` collegati" msgstr "oggetti `%(app_label)s.%(object_name)s` collegati"
#: contrib/admindocs/views.py:242 #: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261
#, python-format #, python-format
msgid "all %s" msgid "all %s"
msgstr "tutti %s" msgstr "tutti %s"
#: contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266
#, python-format #, python-format
msgid "number of %s" msgid "number of %s"
msgstr "numero di %s" msgstr "numero di %s"
#: contrib/admindocs/views.py:252 #: contrib/admindocs/views.py:271
#, python-format #, python-format
msgid "Fields on %s objects" msgid "Fields on %s objects"
msgstr "Campi sugli oggetti %s" msgstr "Campi sugli oggetti %s"
#: contrib/admindocs/views.py:315 contrib/admindocs/views.py:326 #: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345
#: contrib/admindocs/views.py:328 contrib/admindocs/views.py:334 #: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353
#: contrib/admindocs/views.py:335 contrib/admindocs/views.py:337 #: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356
msgid "Integer" msgid "Integer"
msgstr "Intero" msgstr "Intero"
#: contrib/admindocs/views.py:316 #: contrib/admindocs/views.py:335
msgid "Boolean (Either True or False)" msgid "Boolean (Either True or False)"
msgstr "Booleano (True o False)" msgstr "Booleano (True o False)"
#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:336 #: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355
#, python-format #, python-format
msgid "String (up to %(max_length)s)" msgid "String (up to %(max_length)s)"
msgstr "Stringa (fino a %(max_length)s)" msgstr "Stringa (fino a %(max_length)s)"
#: contrib/admindocs/views.py:318 #: contrib/admindocs/views.py:337
msgid "Comma-separated integers" msgid "Comma-separated integers"
msgstr "Interi separati da virgola" msgstr "Interi separati da virgola"
#: contrib/admindocs/views.py:319 #: contrib/admindocs/views.py:338
msgid "Date (without time)" msgid "Date (without time)"
msgstr "Data (senza ora)" msgstr "Data (senza ora)"
#: contrib/admindocs/views.py:320 #: contrib/admindocs/views.py:339
msgid "Date (with time)" msgid "Date (with time)"
msgstr "Data (con ora)" msgstr "Data (con ora)"
#: contrib/admindocs/views.py:321 #: contrib/admindocs/views.py:340
msgid "Decimal number" msgid "Decimal number"
msgstr "Numero decimale" msgstr "Numero decimale"
#: contrib/admindocs/views.py:322 #: contrib/admindocs/views.py:341
msgid "E-mail address" msgid "E-mail address"
msgstr "Indirizzo e-mail" msgstr "Indirizzo e-mail"
#: contrib/admindocs/views.py:323 contrib/admindocs/views.py:324 #: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343
#: contrib/admindocs/views.py:327 #: contrib/admindocs/views.py:346
msgid "File path" msgid "File path"
msgstr "Percorso di file" msgstr "Percorso di file"
#: contrib/admindocs/views.py:325 #: contrib/admindocs/views.py:344
msgid "Floating point number" msgid "Floating point number"
msgstr "Numero decimale" msgstr "Numero decimale"
#: contrib/admindocs/views.py:329 contrib/comments/models.py:60 #: contrib/admindocs/views.py:348 contrib/comments/models.py:60
msgid "IP address" msgid "IP address"
msgstr "indirizzo IP" msgstr "indirizzo IP"
#: contrib/admindocs/views.py:331 #: contrib/admindocs/views.py:350
msgid "Boolean (Either True, False or None)" msgid "Boolean (Either True, False or None)"
msgstr "Booleano (True, False o None)" msgstr "Booleano (True, False o None)"
#: contrib/admindocs/views.py:332 #: contrib/admindocs/views.py:351
msgid "Relation to parent model" msgid "Relation to parent model"
msgstr "Collegamento a modello padre" msgstr "Collegamento a modello padre"
#: contrib/admindocs/views.py:333 #: contrib/admindocs/views.py:352
msgid "Phone number" msgid "Phone number"
msgstr "Numero di telefono" msgstr "Numero di telefono"
#: contrib/admindocs/views.py:338 #: contrib/admindocs/views.py:357
msgid "Text" msgid "Text"
msgstr "Testo" msgstr "Testo"
#: contrib/admindocs/views.py:339 #: contrib/admindocs/views.py:358
msgid "Time" msgid "Time"
msgstr "Ora" msgstr "Ora"
#: contrib/admindocs/views.py:340 contrib/comments/forms.py:95 #: contrib/admindocs/views.py:359 contrib/comments/forms.py:95
#: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/comments/templates/comments/moderation_queue.html:37
#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
#: contrib/admindocs/views.py:341 #: contrib/admindocs/views.py:360
msgid "U.S. state (two uppercase letters)" msgid "U.S. state (two uppercase letters)"
msgstr "Stato USA (due lettere maiuscole)" msgstr "Stato USA (due lettere maiuscole)"
#: contrib/admindocs/views.py:342 #: contrib/admindocs/views.py:361
msgid "XML text" msgid "XML text"
msgstr "Testo XML" msgstr "Testo XML"
#: contrib/admindocs/views.py:368 #: contrib/admindocs/views.py:387
#, python-format #, python-format
msgid "%s does not appear to be a urlpattern object" msgid "%s does not appear to be a urlpattern object"
msgstr "%s non sembra essere un oggetto urlpattern" msgstr "%s non sembra essere un oggetto urlpattern"
@ -1153,10 +1164,10 @@ msgid ""
"your computer is \"internal\").</p>\n" "your computer is \"internal\").</p>\n"
msgstr "" msgstr ""
"\n" "\n"
"<p class=\"help\">Per installare i bookmarklet, trascina il link sulla " "<p class=\"help\">Per installare i bookmarklet, trascina il link sulla barra "
"barra \n" "\n"
"dei bookmark, o clicca il link con il tasto destro e aggiungilo ai " "dei bookmark, o clicca il link con il tasto destro e aggiungilo ai bookmark."
"bookmark.\n" "\n"
"Potrai poi scegliere un bookmarklet in qualsiasi pagina del sito.\n" "Potrai poi scegliere un bookmarklet in qualsiasi pagina del sito.\n"
"Nota che alcuni di questi bookmarklet richiedono l'accesso al sito tramite " "Nota che alcuni di questi bookmarklet richiedono l'accesso al sito tramite "
"un\n" "un\n"
@ -1253,7 +1264,7 @@ msgstr "Conferma password"
#: contrib/auth/forms.py:30 #: contrib/auth/forms.py:30
msgid "A user with that username already exists." msgid "A user with that username already exists."
msgstr "Un utente con questo nome·è già presente." msgstr "Un utente con questo nome è già presente."
#: contrib/auth/forms.py:36 contrib/auth/forms.py:155 #: contrib/auth/forms.py:36 contrib/auth/forms.py:155
#: contrib/auth/forms.py:197 #: contrib/auth/forms.py:197
@ -1303,7 +1314,8 @@ msgstr "Password attuale"
#: contrib/auth/forms.py:177 #: contrib/auth/forms.py:177
msgid "Your old password was entered incorrectly. Please enter it again." msgid "Your old password was entered incorrectly. Please enter it again."
msgstr "La password attuale non è stata inserita correttamente: va inserita di nuovo." msgstr ""
"La password attuale non è stata inserita correttamente: va inserita di nuovo."
#: contrib/auth/models.py:63 contrib/auth/models.py:86 #: contrib/auth/models.py:63 contrib/auth/models.py:86
msgid "name" msgid "name"
@ -1466,14 +1478,14 @@ msgstr "Commento"
#, python-format #, python-format
msgid "Watch your mouth! The word %s is not allowed here." msgid "Watch your mouth! The word %s is not allowed here."
msgid_plural "Watch your mouth! The words %s are not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here."
msgstr[0] "Modera i termini: la parola %s non è ammessa." msgstr[0] "Modera i termini: la parola %s non è ammessa qui."
msgstr[1] "Modera i termini: le parole %s non sono ammesse." msgstr[1] "Modera i termini: le parole %s non sono ammesse qui."
#: contrib/comments/forms.py:180 #: contrib/comments/forms.py:180
msgid "If you enter anything in this field your comment will be treated as spam" msgid "If you enter anything in this field your comment will be treated as spam"
msgstr "Se inserisci qualcosa in questo campo il tuo commento verrà considerato spam" msgstr "Se inserisci qualcosa in questo campo il tuo commento verrà considerato spam"
#: contrib/comments/models.py:22 contrib/contenttypes/models.py:71 #: contrib/comments/models.py:22 contrib/contenttypes/models.py:74
msgid "content type" msgid "content type"
msgstr "content type" msgstr "content type"
@ -1701,11 +1713,11 @@ msgstr "Pubblica il tuo commento"
msgid "or make changes" msgid "or make changes"
msgstr "o fai dei cambiamenti" msgstr "o fai dei cambiamenti"
#: contrib/contenttypes/models.py:67 #: contrib/contenttypes/models.py:70
msgid "python model class name" msgid "python model class name"
msgstr "nome della classe del modello Python" msgstr "nome della classe del modello Python"
#: contrib/contenttypes/models.py:72 #: contrib/contenttypes/models.py:75
msgid "content types" msgid "content types"
msgstr "content type" msgstr "content type"
@ -1777,18 +1789,26 @@ msgstr ""
"Spiacenti, ma la tua form è scaduta. Puoi continuare a compilare la form da " "Spiacenti, ma la tua form è scaduta. Puoi continuare a compilare la form da "
"questa pagina." "questa pagina."
#: contrib/gis/forms/fields.py:14 #: contrib/gis/forms/fields.py:17
msgid "No geometry value provided." msgid "No geometry value provided."
msgstr "Nessun valore geometrico fornito." msgstr "Nessun valore geometrico fornito."
#: contrib/gis/forms/fields.py:15 #: contrib/gis/forms/fields.py:18
msgid "Invalid geometry value." msgid "Invalid geometry value."
msgstr "Valore geometrico non valido." msgstr "Valore geometrico non valido."
#: contrib/gis/forms/fields.py:16 #: contrib/gis/forms/fields.py:19
msgid "Invalid geometry type." msgid "Invalid geometry type."
msgstr "Tipo geometrico non valido." msgstr "Tipo geometrico non valido."
#: contrib/gis/forms/fields.py:20
msgid ""
"An error occurred when transforming the geometry to the SRID of the geometry "
"form field."
msgstr ""
"Si è verificato un errore durante la trasformazione della geometria nello "
"SRID del campo geometria della form."
#: contrib/humanize/templatetags/humanize.py:19 #: contrib/humanize/templatetags/humanize.py:19
msgid "th" msgid "th"
msgstr "º" msgstr "º"
@ -2251,7 +2271,7 @@ msgstr "Schleswig-Holstein"
#: contrib/localflavor/de/de_states.py:20 #: contrib/localflavor/de/de_states.py:20
msgid "Thuringia" msgid "Thuringia"
msgstr "Thuringia" msgstr "Turingia"
#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12 #: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12
#: contrib/localflavor/fr/forms.py:15 #: contrib/localflavor/fr/forms.py:15
@ -3017,7 +3037,9 @@ msgstr "Checksum errato per il Numero d'Imposta (NIP)."
#: contrib/localflavor/pl/forms.py:109 #: contrib/localflavor/pl/forms.py:109
msgid "National Business Register Number (REGON) consists of 9 or 14 digits." msgid "National Business Register Number (REGON) consists of 9 or 14 digits."
msgstr "Il Numero di Registro Nazionale d'Impresa (REGON) è costituito da 9 o 14 cifre." msgstr ""
"Il Numero di Registro Nazionale d'Impresa (REGON) è costituito da 9 o 14 "
"cifre."
#: contrib/localflavor/pl/forms.py:110 #: contrib/localflavor/pl/forms.py:110
msgid "Wrong checksum for the National Business Register Number (REGON)." msgid "Wrong checksum for the National Business Register Number (REGON)."
@ -3625,27 +3647,27 @@ msgstr "Worcestershire"
#: contrib/localflavor/uk/uk_regions.py:55 #: contrib/localflavor/uk/uk_regions.py:55
msgid "County Antrim" msgid "County Antrim"
msgstr "County Antrim" msgstr "Contea di Antrim"
#: contrib/localflavor/uk/uk_regions.py:56 #: contrib/localflavor/uk/uk_regions.py:56
msgid "County Armagh" msgid "County Armagh"
msgstr "County Armagh" msgstr "Contea di Armagh"
#: contrib/localflavor/uk/uk_regions.py:57 #: contrib/localflavor/uk/uk_regions.py:57
msgid "County Down" msgid "County Down"
msgstr "County Down" msgstr "Contea di Down"
#: contrib/localflavor/uk/uk_regions.py:58 #: contrib/localflavor/uk/uk_regions.py:58
msgid "County Fermanagh" msgid "County Fermanagh"
msgstr "County Fermanagh" msgstr "Contea di Fermanagh"
#: contrib/localflavor/uk/uk_regions.py:59 #: contrib/localflavor/uk/uk_regions.py:59
msgid "County Londonderry" msgid "County Londonderry"
msgstr "County Londonderry" msgstr "Contea di Londonderry"
#: contrib/localflavor/uk/uk_regions.py:60 #: contrib/localflavor/uk/uk_regions.py:60
msgid "County Tyrone" msgid "County Tyrone"
msgstr "County Tyrone" msgstr "Contea di Tyrone"
#: contrib/localflavor/uk/uk_regions.py:64 #: contrib/localflavor/uk/uk_regions.py:64
msgid "Clwyd" msgid "Clwyd"
@ -3750,7 +3772,7 @@ msgstr "Inserisci un codice postale nel formato XXXXX o XXXXX-XXXX ."
#: contrib/localflavor/us/forms.py:54 #: contrib/localflavor/us/forms.py:54
msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format."
msgstr "" msgstr ""
"Inserisci un numero di assistenza sociale statunitense valido, nel formato " "Inserisci un numero di assistenza sociale USA valido, nel formato "
"XXX-XX-XXXX ." "XXX-XX-XXXX ."
#: contrib/localflavor/za/forms.py:20 #: contrib/localflavor/za/forms.py:20
@ -3861,56 +3883,57 @@ msgstr "nome visualizzato"
msgid "sites" msgid "sites"
msgstr "siti" msgstr "siti"
#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:700 #: db/models/fields/__init__.py:356 db/models/fields/__init__.py:710
msgid "This value must be an integer." msgid "This value must be an integer."
msgstr "Questo valore deve essere un intero." msgstr "Questo valore deve essere un intero."
#: db/models/fields/__init__.py:387 #: db/models/fields/__init__.py:388
msgid "This value must be either True or False." msgid "This value must be either True or False."
msgstr "Questo valore deve essere True o False." msgstr "Questo valore deve essere True o False."
#: db/models/fields/__init__.py:420 #: db/models/fields/__init__.py:427
msgid "This field cannot be null." msgid "This field cannot be null."
msgstr "Questo campo non può essere nullo." msgstr "Questo campo non può essere nullo."
#: db/models/fields/__init__.py:436 #: db/models/fields/__init__.py:443
msgid "Enter only digits separated by commas." msgid "Enter only digits separated by commas."
msgstr "Inserisci solo cifre separate da virgole." msgstr "Inserisci solo cifre separate da virgole."
#: db/models/fields/__init__.py:467 #: db/models/fields/__init__.py:474
msgid "Enter a valid date in YYYY-MM-DD format." msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "Inserisci una data valida in formato AAAA-MM-GG." msgstr "Inserisci una data valida in formato AAAA-MM-GG."
#: db/models/fields/__init__.py:476 #: db/models/fields/__init__.py:483
#, python-format #, python-format
msgid "Invalid date: %s" msgid "Invalid date: %s"
msgstr "Data non valida: %s" msgstr "Data non valida: %s"
#: db/models/fields/__init__.py:540 db/models/fields/__init__.py:558 #: db/models/fields/__init__.py:547 db/models/fields/__init__.py:565
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format." msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
msgstr "Inserisci una data/ora valida nel formato AAAA-MM-GG OO:MM[ss[.uuuuuu]]." msgstr "Inserisci una data/ora valida nel formato AAAA-MM-GG OO:MM[ss[.uuuuuu]]."
#: db/models/fields/__init__.py:594 #: db/models/fields/__init__.py:601
msgid "This value must be a decimal number." msgid "This value must be a decimal number."
msgstr "Questo valore deve essere un numero decimale." msgstr "Questo valore deve essere un numero decimale."
#: db/models/fields/__init__.py:676 #: db/models/fields/__init__.py:686
msgid "This value must be a float." msgid "This value must be a float."
msgstr "Questo valore deve essere un numero a virgola mobile." msgstr "Questo valore deve essere un numero a virgola mobile."
#: db/models/fields/__init__.py:736 #: db/models/fields/__init__.py:746
msgid "This value must be either None, True or False." msgid "This value must be either None, True or False."
msgstr "Questo valore deve essere None, True o False." msgstr "Questo valore deve essere None, True o False."
#: db/models/fields/__init__.py:839 db/models/fields/__init__.py:853 #: db/models/fields/__init__.py:849 db/models/fields/__init__.py:863
msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
msgstr "Inserisci un'ora valida nel formato OO:MM[ss[.uuuuuu]]." msgstr "Inserisci un'ora valida nel formato OO:MM[ss[.uuuuuu]]."
#: db/models/fields/related.py:792 #: db/models/fields/related.py:816
msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgid "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
msgstr "Tieni premuto \"Control\", o \"Command\" su Mac, per selezionarne più di uno." msgstr ""
"Tieni premuto \"Control\", o \"Command\" su Mac, per selezionarne più di uno."
#: db/models/fields/related.py:870 #: db/models/fields/related.py:894
#, python-format #, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid." msgid_plural "Please enter valid %(self)s IDs. The values %(value)r are invalid."
@ -3972,11 +3995,11 @@ msgstr "Assicurarsi che non vi siano più di %s cifre decimali."
msgid "Ensure that there are no more than %s digits before the decimal point." msgid "Ensure that there are no more than %s digits before the decimal point."
msgstr "Assicurarsi che non vi siano più di %s cifre prima della virgola." msgstr "Assicurarsi che non vi siano più di %s cifre prima della virgola."
#: forms/fields.py:288 forms/fields.py:862 #: forms/fields.py:288 forms/fields.py:863
msgid "Enter a valid date." msgid "Enter a valid date."
msgstr "Inserisci una data valida." msgstr "Inserisci una data valida."
#: forms/fields.py:322 forms/fields.py:863 #: forms/fields.py:322 forms/fields.py:864
msgid "Enter a valid time." msgid "Enter a valid time."
msgstr "Inserisci un'ora valida." msgstr "Inserisci un'ora valida."
@ -3999,7 +4022,9 @@ msgstr "Il file inviato è vuoto."
#: forms/fields.py:450 #: forms/fields.py:450
#, python-format #, python-format
msgid "Ensure this filename has at most %(max)d characters (it has %(length)d)." msgid "Ensure this filename has at most %(max)d characters (it has %(length)d)."
msgstr "Assicurarsi che questo nome di file non contenga più di %(max)d caratteri (ne ha %(length)d)." msgstr ""
"Assicurarsi che questo nome di file non contenga più di %(max)d caratteri "
"(ne ha %(length)d)."
#: forms/fields.py:483 #: forms/fields.py:483
msgid "" msgid ""
@ -4015,20 +4040,20 @@ msgstr "Inserisci una URL valida."
msgid "This URL appears to be a broken link." msgid "This URL appears to be a broken link."
msgstr "Questa URL non sembra funzionare." msgstr "Questa URL non sembra funzionare."
#: forms/fields.py:624 forms/fields.py:702 #: forms/fields.py:625 forms/fields.py:703
#, python-format #, python-format
msgid "Select a valid choice. %(value)s is not one of the available choices." msgid "Select a valid choice. %(value)s is not one of the available choices."
msgstr "Scegli un'opzione valida. '%(value)s non compare tra quelle disponibili." msgstr "Scegli un'opzione valida. '%(value)s non compare tra quelle disponibili."
#: forms/fields.py:703 forms/fields.py:764 forms/models.py:776 #: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003
msgid "Enter a list of values." msgid "Enter a list of values."
msgstr "Inserisci una lista di valori." msgstr "Inserisci una lista di valori."
#: forms/fields.py:891 #: forms/fields.py:892
msgid "Enter a valid IPv4 address." msgid "Enter a valid IPv4 address."
msgstr "Inserisci un indirizzo IPv4 valido." msgstr "Inserisci un indirizzo IPv4 valido."
#: forms/fields.py:901 #: forms/fields.py:902
msgid "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." msgid "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens."
msgstr "" msgstr ""
"Inserisci uno 'slug' valido contenente lettere, cifre, sottolineati o " "Inserisci uno 'slug' valido contenente lettere, cifre, sottolineati o "
@ -4038,80 +4063,107 @@ msgstr ""
msgid "Order" msgid "Order"
msgstr "Ordine" msgstr "Ordine"
#: forms/models.py:299 forms/models.py:308 #: forms/models.py:367
#, python-format
msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s."
msgstr "%(field_name)s deve essere unico per %(lookup)s %(date_field)s."
#: forms/models.py:381 forms/models.py:389
#, python-format #, python-format
msgid "%(model_name)s with this %(field_label)s already exists." msgid "%(model_name)s with this %(field_label)s already exists."
msgstr "%(model_name)s con questo %(field_label)s esiste già." msgstr "%(model_name)s con questo %(field_label)s esiste già."
#: forms/models.py:651 #: forms/models.py:594, python-format
msgid "Please correct the duplicate data for %(field)s."
msgstr "Correggi i dati duplicati di %(field)s."
#: forms/models.py:598
#, python-format
msgid "Please correct the duplicate data for %(field)s, which must be unique."
msgstr "Correggi i dati duplicati di %(field)s, che deve essere unico."
#: forms/models.py:604
#, python-format
msgid ""
"Please correct the duplicate data for %(field_name)s which must be unique "
"for the %(lookup)s in %(date_field)s."
msgstr ""
"Correggi i dati duplicati di %(field_name)s che deve essere unico/a per %(lookup)s "
"in %(date_field)s."
#: forms/models.py:612
msgid "Please correct the duplicate values below."
msgstr "Correggi i dati duplicati qui sotto."
#: forms/models.py:867
msgid "The inline foreign key did not match the parent instance primary key." msgid "The inline foreign key did not match the parent instance primary key."
msgstr "" msgstr ""
"La foreign key inline non concorda con la chiave primaria dell'istanza " "La foreign key inline non concorda con la chiave primaria dell'istanza "
"principale." "padre."
#: forms/models.py:706 #: forms/models.py:930
msgid "Select a valid choice. That choice is not one of the available choices." msgid "Select a valid choice. That choice is not one of the available choices."
msgstr "" msgstr ""
"Scegli un'opzione valida. La scelta effettuata non compare tra quelle " "Scegli un'opzione valida. La scelta effettuata non compare tra quelle "
"disponibili." "disponibili."
#: forms/models.py:777 #: forms/models.py:1004
#, python-format #, python-format
msgid "Select a valid choice. %s is not one of the available choices." msgid "Select a valid choice. %s is not one of the available choices."
msgstr "Scegli un'opzione valida. %s non compare tra quelle disponibili." msgstr "Scegli un'opzione valida. %s non compare tra quelle disponibili."
#: forms/models.py:779 #: forms/models.py:1006
#, python-format #, python-format
msgid "\"%s\" is not a valid value for a primary key." msgid "\"%s\" is not a valid value for a primary key."
msgstr "\"%s\" non è un valore valido per una chiave primaria." msgstr "\"%s\" non è un valore valido per una chiave primaria."
#: template/defaultfilters.py:765 #: template/defaultfilters.py:767
msgid "yes,no,maybe" msgid "yes,no,maybe"
msgstr "sì,no,forse" msgstr "sì,no,forse"
#: template/defaultfilters.py:796 #: template/defaultfilters.py:798
#, python-format #, python-format
msgid "%(size)d byte" msgid "%(size)d byte"
msgid_plural "%(size)d bytes" msgid_plural "%(size)d bytes"
msgstr[0] "%(size)d byte" msgstr[0] "%(size)d byte"
msgstr[1] "%(size)d byte" msgstr[1] "%(size)d byte"
#: template/defaultfilters.py:798 #: template/defaultfilters.py:800
#, python-format #, python-format
msgid "%.1f KB" msgid "%.1f KB"
msgstr "%.1f KB" msgstr "%.1f KB"
#: template/defaultfilters.py:800 #: template/defaultfilters.py:802
#, python-format #, python-format
msgid "%.1f MB" msgid "%.1f MB"
msgstr "%.1f MB" msgstr "%.1f MB"
#: template/defaultfilters.py:801 #: template/defaultfilters.py:803
#, python-format #, python-format
msgid "%.1f GB" msgid "%.1f GB"
msgstr "%.1f GB" msgstr "%.1f GB"
#: utils/dateformat.py:41 #: utils/dateformat.py:42
msgid "p.m." msgid "p.m."
msgstr "p.m." msgstr "p.m."
#: utils/dateformat.py:42 #: utils/dateformat.py:43
msgid "a.m." msgid "a.m."
msgstr "a.m." msgstr "a.m."
#: utils/dateformat.py:47 #: utils/dateformat.py:48
msgid "PM" msgid "PM"
msgstr "PM" msgstr "PM"
#: utils/dateformat.py:48 #: utils/dateformat.py:49
msgid "AM" msgid "AM"
msgstr "AM" msgstr "AM"
#: utils/dateformat.py:97 #: utils/dateformat.py:98
msgid "midnight" msgid "midnight"
msgstr "mezzanotte" msgstr "mezzanotte"
#: utils/dateformat.py:99 #: utils/dateformat.py:100
msgid "noon" msgid "noon"
msgstr "mezzogiorno" msgstr "mezzogiorno"
@ -4368,15 +4420,15 @@ msgstr "F j"
#: views/generic/create_update.py:114 #: views/generic/create_update.py:114
#, python-format #, python-format
msgid "The %(verbose_name)s was created successfully." msgid "The %(verbose_name)s was created successfully."
msgstr "%(verbose_name)s creato correttamente." msgstr "%(verbose_name)s creato/a correttamente."
#: views/generic/create_update.py:156 #: views/generic/create_update.py:156
#, python-format #, python-format
msgid "The %(verbose_name)s was updated successfully." msgid "The %(verbose_name)s was updated successfully."
msgstr "%(verbose_name)s aggiornato correttamente." msgstr "%(verbose_name)s aggiornato/a correttamente."
#: views/generic/create_update.py:198 #: views/generic/create_update.py:198
#, python-format #, python-format
msgid "The %(verbose_name)s was deleted." msgid "The %(verbose_name)s was deleted."
msgstr "%(verbose_name)s è stato cancellato." msgstr "%(verbose_name)s cancellato/a."

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: django\n" "Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-04-10 08:26+0200\n" "POT-Creation-Date: 2009-04-10 08:26+0200\n"
"PO-Revision-Date: 2008-08-14 18:36+0200\n" "PO-Revision-Date: 2009-07-26 17:51+0200\n"
"Last-Translator: Nicola Larosa <nico@tekNico.net>\n" "Last-Translator: Nicola Larosa <nico@tekNico.net>\n"
"Language-Team: Italian\n" "Language-Team: Italian <django-it@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" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: KBabel 1.11.4\n" "X-Generator: Lokalize 0.3\n"
#: contrib/admin/media/js/SelectFilter2.js:33 #: contrib/admin/media/js/SelectFilter2.js:33
#, perl-format #, perl-format
@ -40,7 +40,7 @@ msgstr "%s scelti"
#: 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 "Fai le tue scelte e clicca " 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"
@ -118,3 +118,4 @@ msgstr "Ieri"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
msgid "Tomorrow" msgid "Tomorrow"
msgstr "Domani" msgstr "Domani"

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
# Japanese translation for js. # Japanese translation for js.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django\n" "Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-12-19 12:04+0900\n" "POT-Creation-Date: 2009-07-22 23:23+0900\n"
"PO-Revision-Date: 2006-05-08 13:39+0900\n" "PO-Revision-Date: 2006-05-08 13:39+0900\n"
"Last-Translator: makoto tsuyuki <mtsuyuki@gmail.com>\n" "Last-Translator: makoto tsuyuki <mtsuyuki@gmail.com>\n"
"Language-Team: Japanese <django-ja@googlegroups.com>\n" "Language-Team: Japanese <django-ja@googlegroups.com>\n"

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +1,13 @@
# SOME DESCRIPTIVE TITLE. # Django Korean Translation (Javascripts)
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # Copyright (C) 2009
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the django package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # Hyun Mi Ae, Joongi Kim (me@daybreaker.info), Sung-Jin Hong (serialx.net@gmail.com)
# #
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django\n" "Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-04-06 11:10+0900\n" "POT-Creation-Date: 2009-07-20 00:51+0900\n"
"PO-Revision-Date: 2007-04-06 11:15+0900\n" "PO-Revision-Date: 2007-04-06 11:15+0900\n"
"Last-Translator: Hyun Mi Ae <happyhyun@gmail.com>\n" "Last-Translator: Hyun Mi Ae <happyhyun@gmail.com>\n"
"Language-Team: Korean\n" "Language-Team: Korean\n"
@ -16,21 +15,6 @@ msgstr ""
"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"
#: contrib/admin/media/js/calendar.js:24
#: contrib/admin/media/js/dateparse.js:32
msgid ""
"January February March April May June July August September October November "
"December"
msgstr "1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월"
#: contrib/admin/media/js/calendar.js:25
msgid "S M T W T F S"
msgstr "일 월 화 수 목 금 토"
#: contrib/admin/media/js/dateparse.js:33
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
msgstr "일요일 월요일 화요일 수요일 목요일 금요일 토요일"
#: contrib/admin/media/js/SelectFilter2.js:33 #: contrib/admin/media/js/SelectFilter2.js:33
#, perl-format #, perl-format
msgid "Available %s" msgid "Available %s"
@ -61,6 +45,21 @@ msgstr "선택한 후 클릭하세요"
msgid "Clear all" msgid "Clear all"
msgstr "모두 삭제" msgstr "모두 삭제"
#: contrib/admin/media/js/calendar.js:24
#: contrib/admin/media/js/dateparse.js:32
msgid ""
"January February March April May June July August September October November "
"December"
msgstr "1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월"
#: contrib/admin/media/js/calendar.js:25
msgid "S M T W T F S"
msgstr "일 월 화 수 목 금 토"
#: contrib/admin/media/js/dateparse.js:33
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
msgstr "일요일 월요일 화요일 수요일 목요일 금요일 토요일"
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34 #: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72 #: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
msgid "Show" msgid "Show"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: Django\n" "Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-05-16 10:12+0200\n" "POT-Creation-Date: 2006-05-16 10:12+0200\n"
"PO-Revision-Date: 2009-04-12 15:27+0200\n" "PO-Revision-Date: 2009-07-24 15:44+0200\n"
"Last-Translator: Christian Mikalsen and Jon Lønne\n" "Last-Translator: Christian Mikalsen and Jon Lønne\n"
"Language-Team: Norsk <no@li.org>\n" "Language-Team: Norsk <no@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -218,16 +218,16 @@ msgstr "Simplifisert kinesisk"
msgid "Traditional Chinese" msgid "Traditional Chinese"
msgstr "Tradisjonell kinesisk" msgstr "Tradisjonell kinesisk"
#: contrib/admin/actions.py:56 #: contrib/admin/actions.py:60
#, python-format #, python-format
msgid "Successfully deleted %(count)d %(items)s." msgid "Successfully deleted %(count)d %(items)s."
msgstr "Slettet %(count)d %(items)s." msgstr "Slettet %(count)d %(items)s."
#: contrib/admin/actions.py:63 contrib/admin/options.py:1023 #: contrib/admin/actions.py:67 contrib/admin/options.py:1027
msgid "Are you sure?" msgid "Are you sure?"
msgstr "Er du sikker?" msgstr "Er du sikker?"
#: contrib/admin/actions.py:81 #: contrib/admin/actions.py:85
#, python-format #, python-format
msgid "Delete selected %(verbose_name_plural)s" msgid "Delete selected %(verbose_name_plural)s"
msgstr "Slett valgte %(verbose_name_plural)s" msgstr "Slett valgte %(verbose_name_plural)s"
@ -266,15 +266,15 @@ msgstr "Denne måneden"
msgid "This year" msgid "This year"
msgstr "I år" msgstr "I år"
#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 #: contrib/admin/filterspecs.py:147 forms/widgets.py:434
msgid "Yes" msgid "Yes"
msgstr "Ja" msgstr "Ja"
#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 #: contrib/admin/filterspecs.py:147 forms/widgets.py:434
msgid "No" msgid "No"
msgstr "Nei" msgstr "Nei"
#: contrib/admin/filterspecs.py:154 forms/widgets.py:413 #: contrib/admin/filterspecs.py:154 forms/widgets.py:434
msgid "Unknown" msgid "Unknown"
msgstr "Ukjent" msgstr "Ukjent"
@ -314,98 +314,99 @@ msgstr "logginnlegg"
msgid "None" msgid "None"
msgstr "Ingen" msgstr "Ingen"
#: contrib/admin/options.py:517 #: contrib/admin/options.py:519
#, python-format #, python-format
msgid "Changed %s." msgid "Changed %s."
msgstr "Endret %s." msgstr "Endret %s."
#: contrib/admin/options.py:517 contrib/admin/options.py:527 #: contrib/admin/options.py:519 contrib/admin/options.py:529
#: contrib/comments/templates/comments/preview.html:16 forms/models.py:306 #: contrib/comments/templates/comments/preview.html:16 forms/models.py:388
#: forms/models.py:600
msgid "and" msgid "and"
msgstr "og" msgstr "og"
#: contrib/admin/options.py:522 #: contrib/admin/options.py:524
#, python-format #, python-format
msgid "Added %(name)s \"%(object)s\"." msgid "Added %(name)s \"%(object)s\"."
msgstr "Opprettet %(name)s \"%(object)s\"." msgstr "Opprettet %(name)s \"%(object)s\"."
#: contrib/admin/options.py:526 #: contrib/admin/options.py:528
#, python-format #, python-format
msgid "Changed %(list)s for %(name)s \"%(object)s\"." msgid "Changed %(list)s for %(name)s \"%(object)s\"."
msgstr "Endret %(list)s for %(name)s \"%(object)s\"." msgstr "Endret %(list)s for %(name)s \"%(object)s\"."
#: contrib/admin/options.py:531 #: contrib/admin/options.py:533
#, python-format #, python-format
msgid "Deleted %(name)s \"%(object)s\"." msgid "Deleted %(name)s \"%(object)s\"."
msgstr "Slettet %(name)s \"%(object)s\"." msgstr "Slettet %(name)s \"%(object)s\"."
#: contrib/admin/options.py:535 #: contrib/admin/options.py:537
msgid "No fields changed." msgid "No fields changed."
msgstr "Ingen felt endret." msgstr "Ingen felt endret."
#: contrib/admin/options.py:596 contrib/auth/admin.py:67 #: contrib/admin/options.py:599 contrib/auth/admin.py:67
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully." msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "%(name)s \"%(obj)s\" ble opprettet." msgstr "%(name)s \"%(obj)s\" ble opprettet."
#: contrib/admin/options.py:600 contrib/admin/options.py:633 #: contrib/admin/options.py:603 contrib/admin/options.py:636
#: contrib/auth/admin.py:75 #: contrib/auth/admin.py:75
msgid "You may edit it again below." msgid "You may edit it again below."
msgstr "Du kan redigere videre nedenfor." msgstr "Du kan redigere videre nedenfor."
#: contrib/admin/options.py:610 contrib/admin/options.py:643 #: contrib/admin/options.py:613 contrib/admin/options.py:646
#, python-format #, python-format
msgid "You may add another %s below." msgid "You may add another %s below."
msgstr "Du kan opprette ny %s nedenfor." msgstr "Du kan opprette ny %s nedenfor."
#: contrib/admin/options.py:631 #: contrib/admin/options.py:634
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully." msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr "%(name)s \"%(obj)s\" ble endret." msgstr "%(name)s \"%(obj)s\" ble endret."
#: contrib/admin/options.py:639 #: contrib/admin/options.py:642
#, python-format #, python-format
msgid "" msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr "%(name)s \"%(obj)s\" ble endret. Du kan redigere videre nedenfor." msgstr "%(name)s \"%(obj)s\" ble endret. Du kan redigere videre nedenfor."
#: contrib/admin/options.py:770 #: contrib/admin/options.py:773
#, python-format #, python-format
msgid "Add %s" msgid "Add %s"
msgstr "Opprett %s" msgstr "Opprett %s"
#: contrib/admin/options.py:801 contrib/admin/options.py:1001 #: contrib/admin/options.py:804 contrib/admin/options.py:1005
#, python-format #, python-format
msgid "%(name)s object with primary key %(key)r does not exist." msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "%(name)s-objekt med primærnøkkelen %(key)r finnes ikke." msgstr "%(name)s-objekt med primærnøkkelen %(key)r finnes ikke."
#: contrib/admin/options.py:858 #: contrib/admin/options.py:861
#, python-format #, python-format
msgid "Change %s" msgid "Change %s"
msgstr "Rediger %s" msgstr "Rediger %s"
#: contrib/admin/options.py:902 #: contrib/admin/options.py:905
msgid "Database error" msgid "Database error"
msgstr "Databasefeil" msgstr "Databasefeil"
#: contrib/admin/options.py:938 #: contrib/admin/options.py:941
#, python-format #, python-format
msgid "%(count)s %(name)s was changed successfully." msgid "%(count)s %(name)s was changed successfully."
msgid_plural "%(count)s %(name)s were changed successfully." msgid_plural "%(count)s %(name)s were changed successfully."
msgstr[0] "%(count)s %(name)s ble endret." msgstr[0] "%(count)s %(name)s ble endret."
msgstr[1] "%(count)s %(name)s ble endret." msgstr[1] "%(count)s %(name)s ble endret."
#: contrib/admin/options.py:1016 #: contrib/admin/options.py:1020
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "%(name)s \"%(obj)s\" ble slettet." msgstr "%(name)s \"%(obj)s\" ble slettet."
#: contrib/admin/options.py:1052 #: contrib/admin/options.py:1057
#, python-format #, python-format
msgid "Change history: %s" msgid "Change history: %s"
msgstr "Endringshistorikk: %s" msgstr "Endringshistorikk: %s"
#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 #: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14
#: contrib/auth/forms.py:80 #: contrib/auth/forms.py:80
msgid "" msgid ""
"Please enter a correct username and password. Note that both fields are case-" "Please enter a correct username and password. Note that both fields are case-"
@ -414,11 +415,11 @@ msgstr ""
"Vennligst angi korrekt brukernavn og passord. Merk at det er forskjell på " "Vennligst angi korrekt brukernavn og passord. Merk at det er forskjell på "
"små og store bokstaver." "små og store bokstaver."
#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 #: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40
msgid "Please log in again, because your session has expired." msgid "Please log in again, because your session has expired."
msgstr "Økten din har tidsavbrutt, vennligst logg inn igjen." msgstr "Økten din har tidsavbrutt, vennligst logg inn igjen."
#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 #: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47
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."
@ -426,27 +427,27 @@ msgstr ""
"Det ser ut som om nettleseren din ikke støtter informasjonskapsler " "Det ser ut som om nettleseren din ikke støtter informasjonskapsler "
"(cookies). Vennligst konfigurer nettleseren din og prøv igjen." "(cookies). Vennligst konfigurer nettleseren din og prøv igjen."
#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 #: contrib/admin/sites.py:308 contrib/admin/sites.py:314
#: contrib/admin/views/decorators.py:66 #: contrib/admin/views/decorators.py:66
msgid "Usernames cannot contain the '@' character." msgid "Usernames cannot contain the '@' character."
msgstr "Brukernavnet kan ikke inneholde tegnet '@'." msgstr "Brukernavnet kan ikke inneholde tegnet '@'."
#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 #: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62
#, 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 "E-postadressen er ikke brukernavnet ditt, prøv '%s' isteden." msgstr "E-postadressen er ikke brukernavnet ditt, prøv '%s' isteden."
#: contrib/admin/sites.py:360 #: contrib/admin/sites.py:367
msgid "Site administration" msgid "Site administration"
msgstr "Nettstedsadministrasjon" msgstr "Nettstedsadministrasjon"
#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 #: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26
#: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/templates/registration/password_reset_complete.html:14
#: contrib/admin/views/decorators.py:20 #: contrib/admin/views/decorators.py:20
msgid "Log in" msgid "Log in"
msgstr "Logg inn" msgstr "Logg inn"
#: contrib/admin/sites.py:417 #: contrib/admin/sites.py:426
#, python-format #, python-format
msgid "%s administration" msgid "%s administration"
msgstr "%s-administrasjon" msgstr "%s-administrasjon"
@ -496,7 +497,7 @@ msgstr "Beklager, men siden du spør etter finnes ikke."
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/app_index.html:8 #: contrib/admin/templates/admin/app_index.html:8
#: contrib/admin/templates/admin/base.html:33 #: contrib/admin/templates/admin/base.html:54
#: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_form.html:17
#: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/change_list.html:25
#: contrib/admin/templates/admin/delete_confirmation.html:6 #: contrib/admin/templates/admin/delete_confirmation.html:6
@ -540,7 +541,6 @@ msgid "Run the selected action"
msgstr "Utfør den valgte handlingen" msgstr "Utfør den valgte handlingen"
#: contrib/admin/templates/admin/actions.html:4 #: contrib/admin/templates/admin/actions.html:4
#: contrib/admin/templates/admin/search_form.html:8
msgid "Go" msgid "Go"
msgstr "Gå" msgstr "Gå"
@ -550,18 +550,18 @@ msgstr "Gå"
msgid "%(name)s" msgid "%(name)s"
msgstr "%(name)s" msgstr "%(name)s"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:27
msgid "Welcome," msgid "Welcome,"
msgstr "Velkommen," msgstr "Velkommen,"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:32
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
msgid "Documentation" msgid "Documentation"
msgstr "Dokumentasjon" msgstr "Dokumentasjon"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:40
#: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:14
#: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/admin/auth/user/change_password.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
@ -569,7 +569,7 @@ msgstr "Dokumentasjon"
msgid "Change password" msgid "Change password"
msgstr "Endre passord" msgstr "Endre passord"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
msgid "Log out" msgid "Log out"
@ -699,6 +699,10 @@ msgstr "Mine handlinger"
msgid "None available" msgid "None available"
msgstr "Ingen tilgjengelige" msgstr "Ingen tilgjengelige"
#: contrib/admin/templates/admin/index.html:72
msgid "Unknown content"
msgstr "Ukjent innhold"
#: contrib/admin/templates/admin/invalid_setup.html:7 #: contrib/admin/templates/admin/invalid_setup.html:7
msgid "" msgid ""
"Something's wrong with your database installation. Make sure the appropriate " "Something's wrong with your database installation. Make sure the appropriate "
@ -746,6 +750,15 @@ msgstr ""
msgid "Show all" msgid "Show all"
msgstr "Vis alle" msgstr "Vis alle"
#: contrib/admin/templates/admin/pagination.html:11
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Lagre"
#: contrib/admin/templates/admin/search_form.html:8
msgid "Search"
msgstr "Søk"
#: contrib/admin/templates/admin/search_form.html:10 #: contrib/admin/templates/admin/search_form.html:10
#, python-format #, python-format
msgid "1 result" msgid "1 result"
@ -758,10 +771,6 @@ msgstr[1] "%(counter)s resultater"
msgid "%(full_result_count)s total" msgid "%(full_result_count)s total"
msgstr "%(full_result_count)s totalt" msgstr "%(full_result_count)s totalt"
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Lagre"
#: contrib/admin/templates/admin/submit_line.html:5 #: contrib/admin/templates/admin/submit_line.html:5
msgid "Save as new" msgid "Save as new"
msgstr "Lagre som ny" msgstr "Lagre som ny"
@ -989,144 +998,145 @@ msgstr "nettside"
msgid "template" msgid "template"
msgstr "mal" msgstr "mal"
#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 #: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63
#: contrib/admindocs/views.py:62 #: contrib/admindocs/views.py:65
msgid "tag:" msgid "tag:"
msgstr "tag:" msgstr "tag:"
#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 #: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96
#: contrib/admindocs/views.py:95 #: contrib/admindocs/views.py:98
msgid "filter:" msgid "filter:"
msgstr "filter:" msgstr "filter:"
#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 #: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160
#: contrib/admindocs/views.py:159 #: contrib/admindocs/views.py:162
msgid "view:" msgid "view:"
msgstr "view:" msgstr "view:"
#: contrib/admindocs/views.py:187 #: contrib/admindocs/views.py:190
#, python-format #, python-format
msgid "App %r not found" msgid "App %r not found"
msgstr "Fant ikke applikasjonen %r" msgstr "Fant ikke applikasjonen %r"
#: contrib/admindocs/views.py:194 #: contrib/admindocs/views.py:197
#, python-format #, python-format
msgid "Model %(model_name)r not found in app %(app_label)r" msgid "Model %(model_name)r not found in app %(app_label)r"
msgstr "Fant ikke modellen %(model_name)r i applikasjonen %(app_label)r" msgstr "Fant ikke modellen %(model_name)r i applikasjonen %(app_label)r"
#: contrib/admindocs/views.py:206 #: contrib/admindocs/views.py:209
#, python-format #, python-format
msgid "the related `%(app_label)s.%(data_type)s` object" msgid "the related `%(app_label)s.%(data_type)s` object"
msgstr "det relaterte `%(app_label)s.%(data_type)s`-objektet" msgstr "det relaterte `%(app_label)s.%(data_type)s`-objektet"
#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228 #: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228
#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247
#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266
msgid "model:" msgid "model:"
msgstr "modell:" msgstr "modell:"
#: contrib/admindocs/views.py:237 #: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256
#, python-format #, python-format
msgid "related `%(app_label)s.%(object_name)s` objects" msgid "related `%(app_label)s.%(object_name)s` objects"
msgstr "relaterte `%(app_label)s.%(object_name)s`-objekter" msgstr "relaterte `%(app_label)s.%(object_name)s`-objekter"
#: contrib/admindocs/views.py:242 #: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261
#, python-format #, python-format
msgid "all %s" msgid "all %s"
msgstr "alle %s" msgstr "alle %s"
#: contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266
#, python-format #, python-format
msgid "number of %s" msgid "number of %s"
msgstr "antall %s" msgstr "antall %s"
#: contrib/admindocs/views.py:252 #: contrib/admindocs/views.py:271
#, python-format #, python-format
msgid "Fields on %s objects" msgid "Fields on %s objects"
msgstr "Felter på %s-objekter" msgstr "Felter på %s-objekter"
#: contrib/admindocs/views.py:315 contrib/admindocs/views.py:326 #: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345
#: contrib/admindocs/views.py:328 contrib/admindocs/views.py:334 #: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353
#: contrib/admindocs/views.py:335 contrib/admindocs/views.py:337 #: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356
msgid "Integer" msgid "Integer"
msgstr "Heltall" msgstr "Heltall"
#: contrib/admindocs/views.py:316 #: contrib/admindocs/views.py:335
msgid "Boolean (Either True or False)" msgid "Boolean (Either True or False)"
msgstr "Boolsk (True eller False)" msgstr "Boolsk (True eller False)"
#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:336 #: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355
#, python-format #, python-format
msgid "String (up to %(max_length)s)" msgid "String (up to %(max_length)s)"
msgstr "Tekst (opp til %(max_length)s tegn)" msgstr "Tekst (opp til %(max_length)s tegn)"
#: contrib/admindocs/views.py:318 #: contrib/admindocs/views.py:337
msgid "Comma-separated integers" msgid "Comma-separated integers"
msgstr "Heltall adskilt med komma" msgstr "Heltall adskilt med komma"
#: contrib/admindocs/views.py:319 #: contrib/admindocs/views.py:338
msgid "Date (without time)" msgid "Date (without time)"
msgstr "Dato (uten tid)" msgstr "Dato (uten tid)"
#: contrib/admindocs/views.py:320 #: contrib/admindocs/views.py:339
msgid "Date (with time)" msgid "Date (with time)"
msgstr "Dato (med tid)" msgstr "Dato (med tid)"
#: contrib/admindocs/views.py:321 #: contrib/admindocs/views.py:340
msgid "Decimal number" msgid "Decimal number"
msgstr "Desimaltall" msgstr "Desimaltall"
#: contrib/admindocs/views.py:322 #: contrib/admindocs/views.py:341
msgid "E-mail address" msgid "E-mail address"
msgstr "E-postadresse" msgstr "E-postadresse"
#: contrib/admindocs/views.py:323 contrib/admindocs/views.py:324 #: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343
#: contrib/admindocs/views.py:327 #: contrib/admindocs/views.py:346
msgid "File path" msgid "File path"
msgstr "Filsti" msgstr "Filsti"
#: contrib/admindocs/views.py:325 #: contrib/admindocs/views.py:344
msgid "Floating point number" msgid "Floating point number"
msgstr "Flyttall" msgstr "Flyttall"
#: contrib/admindocs/views.py:329 contrib/comments/models.py:60 #: contrib/admindocs/views.py:348 contrib/comments/models.py:60
msgid "IP address" msgid "IP address"
msgstr "IP-adresse" msgstr "IP-adresse"
#: contrib/admindocs/views.py:331 #: contrib/admindocs/views.py:350
msgid "Boolean (Either True, False or None)" msgid "Boolean (Either True, False or None)"
msgstr "Boolsk (True, False eller None)" msgstr "Boolsk (True, False eller None)"
#: contrib/admindocs/views.py:332 #: contrib/admindocs/views.py:351
msgid "Relation to parent model" msgid "Relation to parent model"
msgstr "Relasjon til foreldermodell" msgstr "Relasjon til foreldermodell"
#: contrib/admindocs/views.py:333 #: contrib/admindocs/views.py:352
msgid "Phone number" msgid "Phone number"
msgstr "Telefonnummer" msgstr "Telefonnummer"
#: contrib/admindocs/views.py:338 #: contrib/admindocs/views.py:357
msgid "Text" msgid "Text"
msgstr "Tekst" msgstr "Tekst"
#: contrib/admindocs/views.py:339 #: contrib/admindocs/views.py:358
msgid "Time" msgid "Time"
msgstr "Tid" msgstr "Tid"
#: contrib/admindocs/views.py:340 contrib/comments/forms.py:95 #: contrib/admindocs/views.py:359 contrib/comments/forms.py:95
#: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/comments/templates/comments/moderation_queue.html:37
#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7
msgid "URL" msgid "URL"
msgstr "Nettadresse" msgstr "Nettadresse"
#: contrib/admindocs/views.py:341 #: contrib/admindocs/views.py:360
msgid "U.S. state (two uppercase letters)" msgid "U.S. state (two uppercase letters)"
msgstr "Stat (i USA, to store bokstaver)" msgstr "Stat (i USA, to store bokstaver)"
#: contrib/admindocs/views.py:342 #: contrib/admindocs/views.py:361
msgid "XML text" msgid "XML text"
msgstr "XML-tekst" msgstr "XML-tekst"
#: contrib/admindocs/views.py:368 #: contrib/admindocs/views.py:387
#, python-format #, python-format
msgid "%s does not appear to be a urlpattern object" msgid "%s does not appear to be a urlpattern object"
msgstr "%s ser ikke ut til å være et urlpattern-objekt" msgstr "%s ser ikke ut til å være et urlpattern-objekt"
@ -1770,18 +1780,25 @@ msgstr ""
"Vi beklager, men dette skjemaet har tidsavbrutt. Vennligst fyll ut skjemaet " "Vi beklager, men dette skjemaet har tidsavbrutt. Vennligst fyll ut skjemaet "
"fra denne siden." "fra denne siden."
#: contrib/gis/forms/fields.py:14 #: contrib/gis/forms/fields.py:17
msgid "No geometry value provided." msgid "No geometry value provided."
msgstr "Ingen geometriverdi oppgitt." msgstr "Ingen geometriverdi oppgitt."
#: contrib/gis/forms/fields.py:15 #: contrib/gis/forms/fields.py:18
msgid "Invalid geometry value." msgid "Invalid geometry value."
msgstr "Ugyldig geometriverdi" msgstr "Ugyldig geometriverdi"
#: contrib/gis/forms/fields.py:16 #: contrib/gis/forms/fields.py:19
msgid "Invalid geometry type." msgid "Invalid geometry type."
msgstr "Ugyldig geometritype" msgstr "Ugyldig geometritype"
#: contrib/gis/forms/fields.py:20
msgid ""
"An error occurred when transforming the geometry to the SRID of the geometry "
"form field."
msgstr ""
"En feil oppstod ved transformering av geometrien til SRID fra geometrifeltet."
#: contrib/humanize/templatetags/humanize.py:19 #: contrib/humanize/templatetags/humanize.py:19
msgid "th" msgid "th"
msgstr "." msgstr "."
@ -3891,13 +3908,13 @@ msgstr "Verdien må være None, True eller False."
msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
msgstr "Oppgi tiden på formen TT:MM[:ss[.uuuuuu]]." msgstr "Oppgi tiden på formen TT:MM[:ss[.uuuuuu]]."
#: db/models/fields/related.py:792 #: db/models/fields/related.py:816
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 ""
"Hold nede \"Control\", eller \"Command\" på en Mac, for å velge mer enn en." "Hold nede \"Control\", eller \"Command\" på en Mac, for å velge mer enn en."
#: db/models/fields/related.py:870 #: db/models/fields/related.py:894
#, python-format #, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
msgid_plural "" msgid_plural ""
@ -3956,11 +3973,11 @@ msgstr "Verdien kan ikke ha mer enn %s desimaler."
msgid "Ensure that there are no more than %s digits before the decimal point." msgid "Ensure that there are no more than %s digits before the decimal point."
msgstr "Verdien kan ikke ha mer enn %s siffer foran komma." msgstr "Verdien kan ikke ha mer enn %s siffer foran komma."
#: forms/fields.py:288 forms/fields.py:862 #: forms/fields.py:288 forms/fields.py:863
msgid "Enter a valid date." msgid "Enter a valid date."
msgstr "Oppgi en gyldig dato." msgstr "Oppgi en gyldig dato."
#: forms/fields.py:322 forms/fields.py:863 #: forms/fields.py:322 forms/fields.py:864
msgid "Enter a valid time." msgid "Enter a valid time."
msgstr "Oppgi et gyldig tidspunkt." msgstr "Oppgi et gyldig tidspunkt."
@ -4002,20 +4019,20 @@ msgstr "Oppgi en gyldig nettadresse."
msgid "This URL appears to be a broken link." msgid "This URL appears to be a broken link."
msgstr "Nettadressen fører til en side som ikke eksisterer." msgstr "Nettadressen fører til en side som ikke eksisterer."
#: forms/fields.py:624 forms/fields.py:702 #: forms/fields.py:625 forms/fields.py:703
#, python-format #, python-format
msgid "Select a valid choice. %(value)s is not one of the available choices." msgid "Select a valid choice. %(value)s is not one of the available choices."
msgstr "Velg et gyldig valg. %(value)s er ikke et av de tilgjengelige valgene." msgstr "Velg et gyldig valg. %(value)s er ikke et av de tilgjengelige valgene."
#: forms/fields.py:703 forms/fields.py:764 forms/models.py:776 #: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003
msgid "Enter a list of values." msgid "Enter a list of values."
msgstr "Oppgi en liste med verdier." msgstr "Oppgi en liste med verdier."
#: forms/fields.py:891 #: forms/fields.py:892
msgid "Enter a valid IPv4 address." msgid "Enter a valid IPv4 address."
msgstr "Oppgi en gyldig IPv4-adresse." msgstr "Oppgi en gyldig IPv4-adresse."
#: forms/fields.py:901 #: forms/fields.py:902
msgid "" msgid ""
"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens."
msgstr "" msgstr ""
@ -4026,25 +4043,53 @@ msgstr ""
msgid "Order" msgid "Order"
msgstr "Rekkefølge" msgstr "Rekkefølge"
#: forms/models.py:299 forms/models.py:308 #: forms/models.py:367
#, python-format
msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s."
msgstr "%(field_name)s må være unik for %(date_field)s %(lookup)s."
#: forms/models.py:381 forms/models.py:389
#, python-format #, python-format
msgid "%(model_name)s with this %(field_label)s already exists." msgid "%(model_name)s with this %(field_label)s already exists."
msgstr "%(model_name)s med %(field_label)s finnes allerede." msgstr "%(model_name)s med %(field_label)s finnes allerede."
#: forms/models.py:651 #: forms/models.py:594
#, python-format
msgid "Please correct the duplicate data for %(field)s."
msgstr "Vennligst korriger duplisert data for %(field)s."
#: forms/models.py:598
#, python-format
msgid "Please correct the duplicate data for %(field)s, which must be unique."
msgstr "Vennligst korriger duplisert data for %(field)s, som må være unik."
#: forms/models.py:604
#, python-format
msgid ""
"Please correct the duplicate data for %(field_name)s which must be unique "
"for the %(lookup)s in %(date_field)s."
msgstr ""
"Vennligst korriger duplisert data for %(field_name)s, som må være unik for "
"%(lookup)s i %(date_field)s."
#: forms/models.py:612
msgid "Please correct the duplicate values below."
msgstr "Vennligst korriger de dupliserte verdiene nedenfor."
#: forms/models.py:867
msgid "The inline foreign key did not match the parent instance primary key." msgid "The inline foreign key did not match the parent instance primary key."
msgstr "Primærnøkkelen er ikke den samme som foreldreinstansens primærnøkkel." msgstr "Primærnøkkelen er ikke den samme som foreldreinstansens primærnøkkel."
#: forms/models.py:706 #: forms/models.py:930
msgid "Select a valid choice. That choice is not one of the available choices." msgid "Select a valid choice. That choice is not one of the available choices."
msgstr "Velg et gyldig valg. Valget er ikke et av de tilgjengelige valgene." msgstr "Velg et gyldig valg. Valget er ikke et av de tilgjengelige valgene."
#: forms/models.py:777 #: forms/models.py:1004
#, python-format #, python-format
msgid "Select a valid choice. %s is not one of the available choices." msgid "Select a valid choice. %s is not one of the available choices."
msgstr "Velg et gyldig valg. %s er ikke et av de tilgjengelige valgene." msgstr "Velg et gyldig valg. %s er ikke et av de tilgjengelige valgene."
#: forms/models.py:779 #: forms/models.py:1006
#, python-format #, python-format
msgid "\"%s\" is not a valid value for a primary key." msgid "\"%s\" is not a valid value for a primary key."
msgstr "\"%s\" er ikke en gyldig verdi for en primærnøkkel." msgstr "\"%s\" er ikke en gyldig verdi for en primærnøkkel."
@ -4075,27 +4120,27 @@ msgstr "%.1f MB"
msgid "%.1f GB" msgid "%.1f GB"
msgstr "%.1f GB" msgstr "%.1f GB"
#: utils/dateformat.py:41 #: utils/dateformat.py:42
msgid "p.m." msgid "p.m."
msgstr "p.m." msgstr "p.m."
#: utils/dateformat.py:42 #: utils/dateformat.py:43
msgid "a.m." msgid "a.m."
msgstr "a.m." msgstr "a.m."
#: utils/dateformat.py:47 #: utils/dateformat.py:48
msgid "PM" msgid "PM"
msgstr "PM" msgstr "PM"
#: utils/dateformat.py:48 #: utils/dateformat.py:49
msgid "AM" msgid "AM"
msgstr "AM" msgstr "AM"
#: utils/dateformat.py:97 #: utils/dateformat.py:98
msgid "midnight" msgid "midnight"
msgstr "midnatt" msgstr "midnatt"
#: utils/dateformat.py:99 #: utils/dateformat.py:100
msgid "noon" msgid "noon"
msgstr "12:00" msgstr "12:00"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django\n" "Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-05-20 12:58+0200\n" "POT-Creation-Date: 2009-07-17 21:59+0200\n"
"PO-Revision-Date: 2008-02-25 15:53+0100\n" "PO-Revision-Date: 2008-02-25 15:53+0100\n"
"Last-Translator: Jarek Zgoda <jarek.zgoda@gmail.com>\n" "Last-Translator: Jarek Zgoda <jarek.zgoda@gmail.com>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -223,7 +223,7 @@ msgstr "chiński tradycyjny"
msgid "Successfully deleted %(count)d %(items)s." msgid "Successfully deleted %(count)d %(items)s."
msgstr "Usunięto %(count)d %(items)s." msgstr "Usunięto %(count)d %(items)s."
#: contrib/admin/actions.py:67 contrib/admin/options.py:1025 #: contrib/admin/actions.py:67 contrib/admin/options.py:1027
msgid "Are you sure?" msgid "Are you sure?"
msgstr "Jesteś pewien?" msgstr "Jesteś pewien?"
@ -321,7 +321,7 @@ msgstr "Zmieniono %s"
#: contrib/admin/options.py:519 contrib/admin/options.py:529 #: contrib/admin/options.py:519 contrib/admin/options.py:529
#: contrib/comments/templates/comments/preview.html:16 forms/models.py:388 #: contrib/comments/templates/comments/preview.html:16 forms/models.py:388
#: forms/models.py:587 #: forms/models.py:600
msgid "and" msgid "and"
msgstr "i" msgstr "i"
@ -344,53 +344,53 @@ msgstr "Usunięto %(name)s \"%(object)s\"."
msgid "No fields changed." msgid "No fields changed."
msgstr "Żadne pole nie zmienione." msgstr "Żadne pole nie zmienione."
#: contrib/admin/options.py:598 contrib/auth/admin.py:67 #: contrib/admin/options.py:599 contrib/auth/admin.py:67
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully." msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "%(name)s \"%(obj)s\" dodany pomyślnie." msgstr "%(name)s \"%(obj)s\" dodany pomyślnie."
#: contrib/admin/options.py:602 contrib/admin/options.py:635 #: contrib/admin/options.py:603 contrib/admin/options.py:636
#: contrib/auth/admin.py:75 #: contrib/auth/admin.py:75
msgid "You may edit it again below." msgid "You may edit it again below."
msgstr "Możesz ponownie edytować wpis poniżej." msgstr "Możesz ponownie edytować wpis poniżej."
#: contrib/admin/options.py:612 contrib/admin/options.py:645 #: contrib/admin/options.py:613 contrib/admin/options.py:646
#, python-format #, python-format
msgid "You may add another %s below." msgid "You may add another %s below."
msgstr "Możesz dodać nowy wpis %s poniżej." msgstr "Możesz dodać nowy wpis %s poniżej."
#: contrib/admin/options.py:633 #: contrib/admin/options.py:634
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully." msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr "%(name)s \"%(obj)s\" zostało pomyślnie zmienione." msgstr "%(name)s \"%(obj)s\" zostało pomyślnie zmienione."
#: contrib/admin/options.py:641 #: contrib/admin/options.py:642
#, python-format #, python-format
msgid "" msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr "" msgstr ""
"%(name)s \"%(obj)s\" dodane pomyślnie. Możesz edytować ponownie wpis poniżej." "%(name)s \"%(obj)s\" dodane pomyślnie. Możesz edytować ponownie wpis poniżej."
#: contrib/admin/options.py:772 #: contrib/admin/options.py:773
#, python-format #, python-format
msgid "Add %s" msgid "Add %s"
msgstr "Dodaj %s" msgstr "Dodaj %s"
#: contrib/admin/options.py:803 contrib/admin/options.py:1003 #: contrib/admin/options.py:804 contrib/admin/options.py:1005
#, python-format #, python-format
msgid "%(name)s object with primary key %(key)r does not exist." msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "Obiekt %(name)s o kluczu głównym %(key)r nie istnieje." msgstr "Obiekt %(name)s o kluczu głównym %(key)r nie istnieje."
#: contrib/admin/options.py:860 #: contrib/admin/options.py:861
#, python-format #, python-format
msgid "Change %s" msgid "Change %s"
msgstr "Zmień %s" msgstr "Zmień %s"
#: contrib/admin/options.py:904 #: contrib/admin/options.py:905
msgid "Database error" msgid "Database error"
msgstr "Błąd bazy danych" msgstr "Błąd bazy danych"
#: contrib/admin/options.py:940 #: contrib/admin/options.py:941
#, python-format #, python-format
msgid "%(count)s %(name)s was changed successfully." msgid "%(count)s %(name)s was changed successfully."
msgid_plural "%(count)s %(name)s were changed successfully." msgid_plural "%(count)s %(name)s were changed successfully."
@ -398,17 +398,17 @@ msgstr[0] "%(count)s %(name)s został pomyślnie zmieniony."
msgstr[1] "%(count)s %(name)s zostały pomyślnie zmienione." msgstr[1] "%(count)s %(name)s zostały pomyślnie zmienione."
msgstr[2] "%(count)s %(name)s zostało pomyślnie zmienionych." msgstr[2] "%(count)s %(name)s zostało pomyślnie zmienionych."
#: contrib/admin/options.py:1018 #: contrib/admin/options.py:1020
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "%(name)s \"%(obj)s\" usunięty pomyślnie." msgstr "%(name)s \"%(obj)s\" usunięty pomyślnie."
#: contrib/admin/options.py:1054 #: contrib/admin/options.py:1057
#, python-format #, python-format
msgid "Change history: %s" msgid "Change history: %s"
msgstr "Historia zmian: %s" msgstr "Historia zmian: %s"
#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 #: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14
#: contrib/auth/forms.py:80 #: contrib/auth/forms.py:80
msgid "" msgid ""
"Please enter a correct username and password. Note that both fields are case-" "Please enter a correct username and password. Note that both fields are case-"
@ -417,11 +417,11 @@ msgstr ""
"Proszę wpisać poprawną nazwę użytkownika i hasło. Uwaga: wielkość liter ma " "Proszę wpisać poprawną nazwę użytkownika i hasło. Uwaga: wielkość liter ma "
"znaczenie." "znaczenie."
#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 #: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40
msgid "Please log in again, because your session has expired." msgid "Please log in again, because your session has expired."
msgstr "Twoja sesja wygasła, zaloguj się ponownie." msgstr "Twoja sesja wygasła, zaloguj się ponownie."
#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 #: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47
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."
@ -429,27 +429,27 @@ msgstr ""
"Twoja przeglądarka nie chce akceptować ciasteczek. Zmień jej ustawienia i " "Twoja przeglądarka nie chce akceptować ciasteczek. Zmień jej ustawienia i "
"spróbuj ponownie." "spróbuj ponownie."
#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 #: contrib/admin/sites.py:308 contrib/admin/sites.py:314
#: contrib/admin/views/decorators.py:66 #: contrib/admin/views/decorators.py:66
msgid "Usernames cannot contain the '@' character." msgid "Usernames cannot contain the '@' character."
msgstr "Nazwy użytkowników nie mogą zawierać znaku '@'." msgstr "Nazwy użytkowników nie mogą zawierać znaku '@'."
#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 #: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62
#, 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 "Podany adres e-mail nie jest Twoją nazwą użytkownika. Spróbuj '%s'." msgstr "Podany adres e-mail nie jest Twoją nazwą użytkownika. Spróbuj '%s'."
#: contrib/admin/sites.py:360 #: contrib/admin/sites.py:367
msgid "Site administration" msgid "Site administration"
msgstr "Administracja stroną" msgstr "Administracja stroną"
#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 #: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26
#: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/templates/registration/password_reset_complete.html:14
#: contrib/admin/views/decorators.py:20 #: contrib/admin/views/decorators.py:20
msgid "Log in" msgid "Log in"
msgstr "Zaloguj się" msgstr "Zaloguj się"
#: contrib/admin/sites.py:417 #: contrib/admin/sites.py:426
#, python-format #, python-format
msgid "%s administration" msgid "%s administration"
msgstr "%s - administracja" msgstr "%s - administracja"
@ -484,7 +484,7 @@ msgstr "Zmień:"
msgid "Lookup" msgid "Lookup"
msgstr "Szukaj" msgstr "Szukaj"
#: contrib/admin/widgets.py:236 #: contrib/admin/widgets.py:235
msgid "Add Another" msgid "Add Another"
msgstr "Dodaj kolejny" msgstr "Dodaj kolejny"
@ -499,7 +499,7 @@ msgstr "Niestety, żądana strona nie została znaleziona."
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/app_index.html:8 #: contrib/admin/templates/admin/app_index.html:8
#: contrib/admin/templates/admin/base.html:31 #: contrib/admin/templates/admin/base.html:54
#: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_form.html:17
#: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/change_list.html:25
#: contrib/admin/templates/admin/delete_confirmation.html:6 #: contrib/admin/templates/admin/delete_confirmation.html:6
@ -545,7 +545,7 @@ msgstr "Wykonaj wybraną akcję"
#: contrib/admin/templates/admin/actions.html:4 #: contrib/admin/templates/admin/actions.html:4
msgid "Go" msgid "Go"
msgstr "Szukaj" msgstr "Wykonaj"
#: contrib/admin/templates/admin/app_index.html:10 #: contrib/admin/templates/admin/app_index.html:10
#: contrib/admin/templates/admin/index.html:19 #: contrib/admin/templates/admin/index.html:19
@ -553,18 +553,18 @@ msgstr "Szukaj"
msgid "%(name)s" msgid "%(name)s"
msgstr "%(name)s" msgstr "%(name)s"
#: contrib/admin/templates/admin/base.html:26 #: contrib/admin/templates/admin/base.html:27
msgid "Welcome," msgid "Welcome,"
msgstr "Witaj," msgstr "Witaj,"
#: contrib/admin/templates/admin/base.html:26 #: contrib/admin/templates/admin/base.html:32
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
msgid "Documentation" msgid "Documentation"
msgstr "Dokumentacja" msgstr "Dokumentacja"
#: contrib/admin/templates/admin/base.html:26 #: contrib/admin/templates/admin/base.html:40
#: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:14
#: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/admin/auth/user/change_password.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
@ -572,7 +572,7 @@ msgstr "Dokumentacja"
msgid "Change password" msgid "Change password"
msgstr "Zmiana hasła" msgstr "Zmiana hasła"
#: contrib/admin/templates/admin/base.html:26 #: contrib/admin/templates/admin/base.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
msgid "Log out" msgid "Log out"
@ -755,6 +755,11 @@ msgstr ""
msgid "Show all" msgid "Show all"
msgstr "Pokaż wszystko" msgstr "Pokaż wszystko"
#: contrib/admin/templates/admin/pagination.html:11
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Zapisz"
#: contrib/admin/templates/admin/search_form.html:8 #: contrib/admin/templates/admin/search_form.html:8
msgid "Search" msgid "Search"
msgstr "Szukaj" msgstr "Szukaj"
@ -772,10 +777,6 @@ msgstr[2] "%(counter)s wyników"
msgid "%(full_result_count)s total" msgid "%(full_result_count)s total"
msgstr "%(full_result_count)s trafień" msgstr "%(full_result_count)s trafień"
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Zapisz"
#: contrib/admin/templates/admin/submit_line.html:5 #: contrib/admin/templates/admin/submit_line.html:5
msgid "Save as new" msgid "Save as new"
msgstr "Zapisz jako nowe" msgstr "Zapisz jako nowe"
@ -999,144 +1000,145 @@ msgstr "strona"
msgid "template" msgid "template"
msgstr "szablon" msgstr "szablon"
#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 #: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63
#: contrib/admindocs/views.py:62 #: contrib/admindocs/views.py:65
msgid "tag:" msgid "tag:"
msgstr "tag:" msgstr "tag:"
#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 #: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96
#: contrib/admindocs/views.py:95 #: contrib/admindocs/views.py:98
msgid "filter:" msgid "filter:"
msgstr "filtr:" msgstr "filtr:"
#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 #: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160
#: contrib/admindocs/views.py:159 #: contrib/admindocs/views.py:162
msgid "view:" msgid "view:"
msgstr "widok:" msgstr "widok:"
#: contrib/admindocs/views.py:187 #: contrib/admindocs/views.py:190
#, python-format #, python-format
msgid "App %r not found" msgid "App %r not found"
msgstr "Aplikacja %r nie została znaleziona" msgstr "Aplikacja %r nie została znaleziona"
#: contrib/admindocs/views.py:194 #: contrib/admindocs/views.py:197
#, python-format #, python-format
msgid "Model %(model_name)r not found in app %(app_label)r" msgid "Model %(model_name)r not found in app %(app_label)r"
msgstr "Model %(model_name)r nie został znaleziony w aplikacji %(app_label)r" msgstr "Model %(model_name)r nie został znaleziony w aplikacji %(app_label)r"
#: contrib/admindocs/views.py:206 #: contrib/admindocs/views.py:209
#, python-format #, python-format
msgid "the related `%(app_label)s.%(data_type)s` object" msgid "the related `%(app_label)s.%(data_type)s` object"
msgstr "powiązany obiekt `%(app_label)s.%(data_type)s`" msgstr "powiązany obiekt `%(app_label)s.%(data_type)s`"
#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228 #: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228
#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247
#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266
msgid "model:" msgid "model:"
msgstr "model:" msgstr "model:"
#: contrib/admindocs/views.py:237 #: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256
#, python-format #, python-format
msgid "related `%(app_label)s.%(object_name)s` objects" msgid "related `%(app_label)s.%(object_name)s` objects"
msgstr "powiązane obiekty `%(app_label)s.%(object_name)s`" msgstr "powiązane obiekty `%(app_label)s.%(object_name)s`"
#: contrib/admindocs/views.py:242 #: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261
#, python-format #, python-format
msgid "all %s" msgid "all %s"
msgstr "wszystkie %s" msgstr "wszystkie %s"
#: contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266
#, python-format #, python-format
msgid "number of %s" msgid "number of %s"
msgstr "liczba %s" msgstr "liczba %s"
#: contrib/admindocs/views.py:252 #: contrib/admindocs/views.py:271
#, python-format #, python-format
msgid "Fields on %s objects" msgid "Fields on %s objects"
msgstr "Pola obiektów %s" msgstr "Pola obiektów %s"
#: contrib/admindocs/views.py:315 contrib/admindocs/views.py:326 #: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345
#: contrib/admindocs/views.py:328 contrib/admindocs/views.py:334 #: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353
#: contrib/admindocs/views.py:335 contrib/admindocs/views.py:337 #: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356
msgid "Integer" msgid "Integer"
msgstr "Liczba całkowita" msgstr "Liczba całkowita"
#: contrib/admindocs/views.py:316 #: contrib/admindocs/views.py:335
msgid "Boolean (Either True or False)" msgid "Boolean (Either True or False)"
msgstr "Wartość logiczna (True, False - prawda lub fałsz)" msgstr "Wartość logiczna (True, False - prawda lub fałsz)"
#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:336 #: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355
#, python-format #, python-format
msgid "String (up to %(max_length)s)" msgid "String (up to %(max_length)s)"
msgstr "Łańcuch (do %(max_length)s znaków)" msgstr "Łańcuch (do %(max_length)s znaków)"
#: contrib/admindocs/views.py:318 #: contrib/admindocs/views.py:337
msgid "Comma-separated integers" msgid "Comma-separated integers"
msgstr "Liczby całkowite rozdzielone przecinkami" msgstr "Liczby całkowite rozdzielone przecinkami"
#: contrib/admindocs/views.py:319 #: contrib/admindocs/views.py:338
msgid "Date (without time)" msgid "Date (without time)"
msgstr "Data (bez godziny)" msgstr "Data (bez godziny)"
#: contrib/admindocs/views.py:320 #: contrib/admindocs/views.py:339
msgid "Date (with time)" msgid "Date (with time)"
msgstr "Data (z godziną)" msgstr "Data (z godziną)"
#: contrib/admindocs/views.py:321 #: contrib/admindocs/views.py:340
msgid "Decimal number" msgid "Decimal number"
msgstr "Liczba dziesiętna" msgstr "Liczba dziesiętna"
#: contrib/admindocs/views.py:322 #: contrib/admindocs/views.py:341
msgid "E-mail address" msgid "E-mail address"
msgstr "Adres e-mail" msgstr "Adres e-mail"
#: contrib/admindocs/views.py:323 contrib/admindocs/views.py:324 #: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343
#: contrib/admindocs/views.py:327 #: contrib/admindocs/views.py:346
msgid "File path" msgid "File path"
msgstr "Ścieżka do pliku" msgstr "Ścieżka do pliku"
#: contrib/admindocs/views.py:325 #: contrib/admindocs/views.py:344
msgid "Floating point number" msgid "Floating point number"
msgstr "Liczba zmiennoprzecinkowa" msgstr "Liczba zmiennoprzecinkowa"
#: contrib/admindocs/views.py:329 contrib/comments/models.py:60 #: contrib/admindocs/views.py:348 contrib/comments/models.py:60
msgid "IP address" msgid "IP address"
msgstr "Adres IP" msgstr "Adres IP"
#: contrib/admindocs/views.py:331 #: contrib/admindocs/views.py:350
msgid "Boolean (Either True, False or None)" msgid "Boolean (Either True, False or None)"
msgstr "Wartość logiczna (True, False, None - prawda, fałsz lub nic)" msgstr "Wartość logiczna (True, False, None - prawda, fałsz lub nic)"
#: contrib/admindocs/views.py:332 #: contrib/admindocs/views.py:351
msgid "Relation to parent model" msgid "Relation to parent model"
msgstr "Relacja do modelu rodzica" msgstr "Relacja do modelu rodzica"
#: contrib/admindocs/views.py:333 #: contrib/admindocs/views.py:352
msgid "Phone number" msgid "Phone number"
msgstr "Numer telefonu" msgstr "Numer telefonu"
#: contrib/admindocs/views.py:338 #: contrib/admindocs/views.py:357
msgid "Text" msgid "Text"
msgstr "Tekst" msgstr "Tekst"
#: contrib/admindocs/views.py:339 #: contrib/admindocs/views.py:358
msgid "Time" msgid "Time"
msgstr "Czas" msgstr "Czas"
#: contrib/admindocs/views.py:340 contrib/comments/forms.py:95 #: contrib/admindocs/views.py:359 contrib/comments/forms.py:95
#: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/comments/templates/comments/moderation_queue.html:37
#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
#: contrib/admindocs/views.py:341 #: contrib/admindocs/views.py:360
msgid "U.S. state (two uppercase letters)" msgid "U.S. state (two uppercase letters)"
msgstr "Stan USA (dwie duże litery)" msgstr "Stan USA (dwie duże litery)"
#: contrib/admindocs/views.py:342 #: contrib/admindocs/views.py:361
msgid "XML text" msgid "XML text"
msgstr "Tekst XML" msgstr "Tekst XML"
#: contrib/admindocs/views.py:368 #: contrib/admindocs/views.py:387
#, python-format #, python-format
msgid "%s does not appear to be a urlpattern object" msgid "%s does not appear to be a urlpattern object"
msgstr "%s nie jest obiektem urlpattern" msgstr "%s nie jest obiektem urlpattern"
@ -3920,14 +3922,14 @@ msgstr ""
msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
msgstr "Proszę wpisać poprawną godzinę w formacie HH:MM[:ss[.uuuuuu]]." msgstr "Proszę wpisać poprawną godzinę w formacie HH:MM[:ss[.uuuuuu]]."
#: db/models/fields/related.py:792 #: db/models/fields/related.py:816
msgid "" msgid ""
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
msgstr "" msgstr ""
"Przytrzymaj wciśnięty klawisz \"Ctrl\" lub \"Command\" na Mac'u aby " "Przytrzymaj wciśnięty klawisz \"Ctrl\" lub \"Command\" na Mac'u aby "
"zaznaczyć więcej niż jeden wybór." "zaznaczyć więcej niż jeden wybór."
#: db/models/fields/related.py:870 #: db/models/fields/related.py:894
#, python-format #, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
msgid_plural "" msgid_plural ""
@ -4051,7 +4053,7 @@ msgid "Select a valid choice. %(value)s is not one of the available choices."
msgstr "" msgstr ""
"Wybierz poprawną wartość. %(value)s nie jest jednym z dostępnych wyborów." "Wybierz poprawną wartość. %(value)s nie jest jednym z dostępnych wyborów."
#: forms/fields.py:704 forms/fields.py:765 forms/models.py:991 #: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003
msgid "Enter a list of values." msgid "Enter a list of values."
msgstr "Podaj listę wartości." msgstr "Podaj listę wartości."
@ -4080,43 +4082,43 @@ msgstr ""
msgid "%(model_name)s with this %(field_label)s already exists." msgid "%(model_name)s with this %(field_label)s already exists."
msgstr "%(field_label)s już istnieje w %(model_name)s." msgstr "%(field_label)s już istnieje w %(model_name)s."
#: forms/models.py:581 #: forms/models.py:594
#, python-format #, python-format
msgid "Please correct the duplicate data for %(field)s." msgid "Please correct the duplicate data for %(field)s."
msgstr "Popraw zduplikowane dane w %(field)s." msgstr "Popraw zduplikowane dane w %(field)s."
#: forms/models.py:585 #: forms/models.py:598
#, python-format #, python-format
msgid "Please correct the duplicate data for %(field)s, which must be unique." msgid "Please correct the duplicate data for %(field)s, which must be unique."
msgstr "Popraw zduplikowane dane w %(field)s, które wymaga unikalności." msgstr "Popraw zduplikowane dane w %(field)s, które wymaga unikalności."
#: forms/models.py:591 #: forms/models.py:604
#, python-format #, python-format
msgid "" msgid ""
"Please correct the duplicate data for %(field_name)s which must be unique " "Please correct the duplicate data for %(field_name)s which must be unique "
"for the %(lookup)s in %(date_field)s." "for the %(lookup)s in %(date_field)s."
msgstr "" msgstr ""
"Popraw zduplikowane dane w %(field_name)s, które wymaga unikalności dla " "Popraw zduplikowane dane w %(field_name)s, które wymaga unikalności dla %"
"%(lookup)s w polu %(date_field)s." "(lookup)s w polu %(date_field)s."
#: forms/models.py:599 #: forms/models.py:612
msgid "Please correct the duplicate values below." msgid "Please correct the duplicate values below."
msgstr "Popraw poniższe zduplikowane wartości." msgstr "Popraw poniższe zduplikowane wartości."
#: forms/models.py:855 #: forms/models.py:867
msgid "The inline foreign key did not match the parent instance primary key." msgid "The inline foreign key did not match the parent instance primary key."
msgstr "Osadzony klucz obcy nie pasuje do klucza głównego obiektu rodzica." msgstr "Osadzony klucz obcy nie pasuje do klucza głównego obiektu rodzica."
#: forms/models.py:918 #: forms/models.py:930
msgid "Select a valid choice. That choice is not one of the available choices." msgid "Select a valid choice. That choice is not one of the available choices."
msgstr "Wybierz poprawną wartość. Podana nie jest jednym z dostępnych wyborów." msgstr "Wybierz poprawną wartość. Podana nie jest jednym z dostępnych wyborów."
#: forms/models.py:992 #: forms/models.py:1004
#, python-format #, python-format
msgid "Select a valid choice. %s is not one of the available choices." msgid "Select a valid choice. %s is not one of the available choices."
msgstr "Wybierz poprawną wartość. %s nie jest jednym z dostępnych wyborów." msgstr "Wybierz poprawną wartość. %s nie jest jednym z dostępnych wyborów."
#: forms/models.py:994 #: forms/models.py:1006
#, python-format #, python-format
msgid "\"%s\" is not a valid value for a primary key." msgid "\"%s\" is not a valid value for a primary key."
msgstr "\"%s\" nie jest poprawną wartością klucza głównego." msgstr "\"%s\" nie jest poprawną wartością klucza głównego."

File diff suppressed because it is too large Load Diff

View File

@ -5,8 +5,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django\n" "Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: Grupo de Localização para o Português <django-l10n-portuguese@googlegroups.com>\n" "Report-Msgid-Bugs-To: Grupo de Localização para o Português <django-l10n-portuguese@googlegroups.com>\n"
"POT-Creation-Date: 2009-04-13 22:52-0300\n" "POT-Creation-Date: 2009-07-23 10:00-0300\n"
"PO-Revision-Date: 2009-04-13 23:07-0300\n" "PO-Revision-Date: 2009-07-23 10:03-0300\n"
"Last-Translator: Guilherme Gondim <semente@taurinus.org>\n" "Last-Translator: Guilherme Gondim <semente@taurinus.org>\n"
"Language-Team: Grupo de Localização para o Português <django-l10n-portuguese@googlegroups.com>\n" "Language-Team: Grupo de Localização para o Português <django-l10n-portuguese@googlegroups.com>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -218,16 +218,16 @@ msgstr "Chinês Simplificado"
msgid "Traditional Chinese" msgid "Traditional Chinese"
msgstr "Chinês Tradicional" msgstr "Chinês Tradicional"
#: contrib/admin/actions.py:56 #: contrib/admin/actions.py:60
#, python-format #, python-format
msgid "Successfully deleted %(count)d %(items)s." msgid "Successfully deleted %(count)d %(items)s."
msgstr "Removido %(count)d %(items)s com sucesso." msgstr "Removido %(count)d %(items)s com sucesso."
#: contrib/admin/actions.py:63 contrib/admin/options.py:1023 #: contrib/admin/actions.py:67 contrib/admin/options.py:1027
msgid "Are you sure?" msgid "Are you sure?"
msgstr "Tem certeza?" msgstr "Tem certeza?"
#: contrib/admin/actions.py:81 #: contrib/admin/actions.py:85
#, python-format #, python-format
msgid "Delete selected %(verbose_name_plural)s" msgid "Delete selected %(verbose_name_plural)s"
msgstr "Remover %(verbose_name_plural)s selecionado" msgstr "Remover %(verbose_name_plural)s selecionado"
@ -266,15 +266,15 @@ msgstr "Este mês"
msgid "This year" msgid "This year"
msgstr "Este ano" msgstr "Este ano"
#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 #: contrib/admin/filterspecs.py:147 forms/widgets.py:434
msgid "Yes" msgid "Yes"
msgstr "Sim" msgstr "Sim"
#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 #: contrib/admin/filterspecs.py:147 forms/widgets.py:434
msgid "No" msgid "No"
msgstr "Não" msgstr "Não"
#: contrib/admin/filterspecs.py:154 forms/widgets.py:413 #: contrib/admin/filterspecs.py:154 forms/widgets.py:434
msgid "Unknown" msgid "Unknown"
msgstr "Desconhecido" msgstr "Desconhecido"
@ -314,56 +314,57 @@ msgstr "entradas de log"
msgid "None" msgid "None"
msgstr "Nenhum" msgstr "Nenhum"
#: contrib/admin/options.py:517 #: contrib/admin/options.py:519
#, python-format #, python-format
msgid "Changed %s." msgid "Changed %s."
msgstr "Modificado %s." msgstr "Modificado %s."
#: contrib/admin/options.py:517 contrib/admin/options.py:527 #: contrib/admin/options.py:519 contrib/admin/options.py:529
#: contrib/comments/templates/comments/preview.html:16 forms/models.py:306 #: contrib/comments/templates/comments/preview.html:16 forms/models.py:388
#: forms/models.py:600 forms/models_flymake.py:388 forms/models_flymake.py:600
msgid "and" msgid "and"
msgstr "e" msgstr "e"
#: contrib/admin/options.py:522 #: contrib/admin/options.py:524
#, python-format #, python-format
msgid "Added %(name)s \"%(object)s\"." msgid "Added %(name)s \"%(object)s\"."
msgstr "Adicionado %(name)s \"%(object)s\"" msgstr "Adicionado %(name)s \"%(object)s\""
#: contrib/admin/options.py:526 #: contrib/admin/options.py:528
#, python-format #, python-format
msgid "Changed %(list)s for %(name)s \"%(object)s\"." msgid "Changed %(list)s for %(name)s \"%(object)s\"."
msgstr "Modificado %(list)s para %(name)s \"%(object)s\"." msgstr "Modificado %(list)s para %(name)s \"%(object)s\"."
#: contrib/admin/options.py:531 #: contrib/admin/options.py:533
#, python-format #, python-format
msgid "Deleted %(name)s \"%(object)s\"." msgid "Deleted %(name)s \"%(object)s\"."
msgstr "Deletado %(name)s \"%(object)s\"." msgstr "Deletado %(name)s \"%(object)s\"."
#: contrib/admin/options.py:535 #: contrib/admin/options.py:537
msgid "No fields changed." msgid "No fields changed."
msgstr "Nenhum campo modificado." msgstr "Nenhum campo modificado."
#: contrib/admin/options.py:596 contrib/auth/admin.py:67 #: contrib/admin/options.py:599 contrib/auth/admin.py:67
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully." msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "%(name)s \"%(obj)s\": adicionado com sucesso." msgstr "%(name)s \"%(obj)s\": adicionado com sucesso."
#: contrib/admin/options.py:600 contrib/admin/options.py:633 #: contrib/admin/options.py:603 contrib/admin/options.py:636
#: contrib/auth/admin.py:75 #: contrib/auth/admin.py:75
msgid "You may edit it again below." msgid "You may edit it again below."
msgstr "Você pode editar novamente abaixo." msgstr "Você pode editar novamente abaixo."
#: contrib/admin/options.py:610 contrib/admin/options.py:643 #: contrib/admin/options.py:613 contrib/admin/options.py:646
#, python-format #, python-format
msgid "You may add another %s below." msgid "You may add another %s below."
msgstr "Você pode adicionar outro %s abaixo." msgstr "Você pode adicionar outro %s abaixo."
#: contrib/admin/options.py:631 #: contrib/admin/options.py:634
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully." msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr "%(name)s \"%(obj)s\": modificado com sucesso." msgstr "%(name)s \"%(obj)s\": modificado com sucesso."
#: contrib/admin/options.py:639 #: contrib/admin/options.py:642
#, python-format #, python-format
msgid "" msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
@ -371,43 +372,43 @@ msgstr ""
"%(name)s \"%(obj)s\": adicionado com sucesso. Você pode editar novamente " "%(name)s \"%(obj)s\": adicionado com sucesso. Você pode editar novamente "
"abaixo." "abaixo."
#: contrib/admin/options.py:770 #: contrib/admin/options.py:773
#, python-format #, python-format
msgid "Add %s" msgid "Add %s"
msgstr "Adicionar %s" msgstr "Adicionar %s"
#: contrib/admin/options.py:801 contrib/admin/options.py:1001 #: contrib/admin/options.py:804 contrib/admin/options.py:1005
#, python-format #, python-format
msgid "%(name)s object with primary key %(key)r does not exist." msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "Objeto %(name)s com chave primária %(key)r não existe." msgstr "Objeto %(name)s com chave primária %(key)r não existe."
#: contrib/admin/options.py:858 #: contrib/admin/options.py:861
#, python-format #, python-format
msgid "Change %s" msgid "Change %s"
msgstr "Modificar %s" msgstr "Modificar %s"
#: contrib/admin/options.py:902 #: contrib/admin/options.py:905
msgid "Database error" msgid "Database error"
msgstr "Erro no banco de dados" msgstr "Erro no banco de dados"
#: contrib/admin/options.py:938 #: contrib/admin/options.py:941
#, python-format #, python-format
msgid "%(count)s %(name)s was changed successfully." msgid "%(count)s %(name)s was changed successfully."
msgid_plural "%(count)s %(name)s were changed successfully." msgid_plural "%(count)s %(name)s were changed successfully."
msgstr[0] "%(count)s %(name)s modificado com sucesso." msgstr[0] "%(count)s %(name)s modificado com sucesso."
msgstr[1] "%(count)s %(name)s modificados com sucesso." msgstr[1] "%(count)s %(name)s modificados com sucesso."
#: contrib/admin/options.py:1016 #: contrib/admin/options.py:1020
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "%(name)s \"%(obj)s\": excluído com sucesso." msgstr "%(name)s \"%(obj)s\": excluído com sucesso."
#: contrib/admin/options.py:1052 #: contrib/admin/options.py:1057
#, python-format #, python-format
msgid "Change history: %s" msgid "Change history: %s"
msgstr "Histórico de modificações: %s" msgstr "Histórico de modificações: %s"
#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 #: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14
#: contrib/auth/forms.py:80 #: contrib/auth/forms.py:80
msgid "" msgid ""
"Please enter a correct username and password. Note that both fields are case-" "Please enter a correct username and password. Note that both fields are case-"
@ -416,11 +417,11 @@ msgstr ""
"Por favor, entre com um usuário e senha corretos. Note que ambos os campos " "Por favor, entre com um usuário e senha corretos. Note que ambos os campos "
"diferenciam maiúsculas e minúsculas." "diferenciam maiúsculas e minúsculas."
#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 #: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40
msgid "Please log in again, because your session has expired." msgid "Please log in again, because your session has expired."
msgstr "Por favor acesse novamente, pois sua sessão expirou." msgstr "Por favor acesse novamente, pois sua sessão expirou."
#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 #: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47
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."
@ -428,27 +429,27 @@ msgstr ""
"Parece que seu navegador não está configurado para aceitar cookies. Por " "Parece que seu navegador não está configurado para aceitar cookies. Por "
"favor habilite os cookies, recarregue esta página, e tente novamente." "favor habilite os cookies, recarregue esta página, e tente novamente."
#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 #: contrib/admin/sites.py:308 contrib/admin/sites.py:314
#: contrib/admin/views/decorators.py:66 #: contrib/admin/views/decorators.py:66
msgid "Usernames cannot contain the '@' character." msgid "Usernames cannot contain the '@' character."
msgstr "Nomes de usuário não podem conter o caractere '@'." msgstr "Nomes de usuário não podem conter o caractere '@'."
#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 #: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62
#, 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 "Seu endereço de e-mail não é seu nome de usuário. Tente usar '%s'" msgstr "Seu endereço de e-mail não é seu nome de usuário. Tente usar '%s'"
#: contrib/admin/sites.py:360 #: contrib/admin/sites.py:367
msgid "Site administration" msgid "Site administration"
msgstr "Administração do Site" msgstr "Administração do Site"
#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 #: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26
#: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/templates/registration/password_reset_complete.html:14
#: contrib/admin/views/decorators.py:20 #: contrib/admin/views/decorators.py:20
msgid "Log in" msgid "Log in"
msgstr "Acessar" msgstr "Acessar"
#: contrib/admin/sites.py:417 #: contrib/admin/sites.py:426
#, python-format #, python-format
msgid "%s administration" msgid "%s administration"
msgstr "Administração de %s" msgstr "Administração de %s"
@ -483,7 +484,7 @@ msgstr "Modificar:"
msgid "Lookup" msgid "Lookup"
msgstr "Olhar" msgstr "Olhar"
#: contrib/admin/widgets.py:236 #: contrib/admin/widgets.py:235
msgid "Add Another" msgid "Add Another"
msgstr "Adicionar outro" msgstr "Adicionar outro"
@ -498,7 +499,7 @@ msgstr "Desculpe, mas a página requisitada não pode ser encontrada."
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/app_index.html:8 #: contrib/admin/templates/admin/app_index.html:8
#: contrib/admin/templates/admin/base.html:33 #: contrib/admin/templates/admin/base.html:54
#: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_form.html:17
#: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/change_list.html:25
#: contrib/admin/templates/admin/delete_confirmation.html:6 #: contrib/admin/templates/admin/delete_confirmation.html:6
@ -542,7 +543,6 @@ msgid "Run the selected action"
msgstr "Executar ação selecionada" msgstr "Executar ação selecionada"
#: contrib/admin/templates/admin/actions.html:4 #: contrib/admin/templates/admin/actions.html:4
#: contrib/admin/templates/admin/search_form.html:8
msgid "Go" msgid "Go"
msgstr "Ir" msgstr "Ir"
@ -552,18 +552,18 @@ msgstr "Ir"
msgid "%(name)s" msgid "%(name)s"
msgstr "%(name)s" msgstr "%(name)s"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:27
msgid "Welcome," msgid "Welcome,"
msgstr "Bem vindo," msgstr "Bem vindo,"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:32
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
msgid "Documentation" msgid "Documentation"
msgstr "Documentação" msgstr "Documentação"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:40
#: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:14
#: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/admin/auth/user/change_password.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
@ -571,7 +571,7 @@ msgstr "Documentação"
msgid "Change password" msgid "Change password"
msgstr "Alterar senha" msgstr "Alterar senha"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
msgid "Log out" msgid "Log out"
@ -702,6 +702,10 @@ msgstr "Minhas Ações"
msgid "None available" msgid "None available"
msgstr "Nenhuma disponível" msgstr "Nenhuma disponível"
#: contrib/admin/templates/admin/index.html:72
msgid "Unknown content"
msgstr "Conteúdo desconhecido"
#: contrib/admin/templates/admin/invalid_setup.html:7 #: contrib/admin/templates/admin/invalid_setup.html:7
msgid "" msgid ""
"Something's wrong with your database installation. Make sure the appropriate " "Something's wrong with your database installation. Make sure the appropriate "
@ -750,6 +754,15 @@ msgstr ""
msgid "Show all" msgid "Show all"
msgstr "Mostrar tudo" msgstr "Mostrar tudo"
#: contrib/admin/templates/admin/pagination.html:11
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Salvar"
#: contrib/admin/templates/admin/search_form.html:8
msgid "Search"
msgstr "Pesquisar"
#: contrib/admin/templates/admin/search_form.html:10 #: contrib/admin/templates/admin/search_form.html:10
#, python-format #, python-format
msgid "1 result" msgid "1 result"
@ -762,10 +775,6 @@ msgstr[1] "%(counter)s resultados"
msgid "%(full_result_count)s total" msgid "%(full_result_count)s total"
msgstr "%(full_result_count)s total" msgstr "%(full_result_count)s total"
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Salvar"
#: contrib/admin/templates/admin/submit_line.html:5 #: contrib/admin/templates/admin/submit_line.html:5
msgid "Save as new" msgid "Save as new"
msgstr "Salvar como novo" msgstr "Salvar como novo"
@ -991,144 +1000,145 @@ msgstr "site"
msgid "template" msgid "template"
msgstr "template" msgstr "template"
#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 #: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63
#: contrib/admindocs/views.py:62 #: contrib/admindocs/views.py:65
msgid "tag:" msgid "tag:"
msgstr "tag:" msgstr "tag:"
#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 #: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96
#: contrib/admindocs/views.py:95 #: contrib/admindocs/views.py:98
msgid "filter:" msgid "filter:"
msgstr "filtro:" msgstr "filtro:"
#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 #: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160
#: contrib/admindocs/views.py:159 #: contrib/admindocs/views.py:162
msgid "view:" msgid "view:"
msgstr "view:" msgstr "view:"
#: contrib/admindocs/views.py:187 #: contrib/admindocs/views.py:190
#, python-format #, python-format
msgid "App %r not found" msgid "App %r not found"
msgstr "Aplicação %r não encontrada" msgstr "Aplicação %r não encontrada"
#: contrib/admindocs/views.py:194 #: contrib/admindocs/views.py:197
#, python-format #, python-format
msgid "Model %(model_name)r not found in app %(app_label)r" msgid "Model %(model_name)r not found in app %(app_label)r"
msgstr "Model %(model_name)r não encontrado na aplicação %(app_label)r" msgstr "Model %(model_name)r não encontrado na aplicação %(app_label)r"
#: contrib/admindocs/views.py:206 #: contrib/admindocs/views.py:209
#, python-format #, python-format
msgid "the related `%(app_label)s.%(data_type)s` object" msgid "the related `%(app_label)s.%(data_type)s` object"
msgstr "o objeto `%(app_label)s.%(data_type)s` relacionado" msgstr "o objeto `%(app_label)s.%(data_type)s` relacionado"
#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228 #: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228
#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247
#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266
msgid "model:" msgid "model:"
msgstr "model:" msgstr "model:"
#: contrib/admindocs/views.py:237 #: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256
#, python-format #, python-format
msgid "related `%(app_label)s.%(object_name)s` objects" msgid "related `%(app_label)s.%(object_name)s` objects"
msgstr "objetos `%(app_label)s.%(object_name)s` relacionados" msgstr "objetos `%(app_label)s.%(object_name)s` relacionados"
#: contrib/admindocs/views.py:242 #: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261
#, python-format #, python-format
msgid "all %s" msgid "all %s"
msgstr "todos %s" msgstr "todos %s"
#: contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266
#, python-format #, python-format
msgid "number of %s" msgid "number of %s"
msgstr "número de %s" msgstr "número de %s"
#: contrib/admindocs/views.py:252 #: contrib/admindocs/views.py:271
#, python-format #, python-format
msgid "Fields on %s objects" msgid "Fields on %s objects"
msgstr "Campos nos objetos %s" msgstr "Campos nos objetos %s"
#: contrib/admindocs/views.py:315 contrib/admindocs/views.py:326 #: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345
#: contrib/admindocs/views.py:328 contrib/admindocs/views.py:334 #: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353
#: contrib/admindocs/views.py:335 contrib/admindocs/views.py:337 #: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356
msgid "Integer" msgid "Integer"
msgstr "Inteiro" msgstr "Inteiro"
#: contrib/admindocs/views.py:316 #: contrib/admindocs/views.py:335
msgid "Boolean (Either True or False)" msgid "Boolean (Either True or False)"
msgstr "Booleano (Verdadeiro ou Falso)" msgstr "Booleano (Verdadeiro ou Falso)"
#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:336 #: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355
#, python-format #, python-format
msgid "String (up to %(max_length)s)" msgid "String (up to %(max_length)s)"
msgstr "String (até %(max_length)s)" msgstr "String (até %(max_length)s)"
#: contrib/admindocs/views.py:318 #: contrib/admindocs/views.py:337
msgid "Comma-separated integers" msgid "Comma-separated integers"
msgstr "Inteiros separados por vírgula" msgstr "Inteiros separados por vírgula"
#: contrib/admindocs/views.py:319 #: contrib/admindocs/views.py:338
msgid "Date (without time)" msgid "Date (without time)"
msgstr "Data (sem hora)" msgstr "Data (sem hora)"
#: contrib/admindocs/views.py:320 #: contrib/admindocs/views.py:339
msgid "Date (with time)" msgid "Date (with time)"
msgstr "Data e hora" msgstr "Data e hora"
#: contrib/admindocs/views.py:321 #: contrib/admindocs/views.py:340
msgid "Decimal number" msgid "Decimal number"
msgstr "Número decimal" msgstr "Número decimal"
#: contrib/admindocs/views.py:322 #: contrib/admindocs/views.py:341
msgid "E-mail address" msgid "E-mail address"
msgstr "Endereço de e-mail" msgstr "Endereço de e-mail"
#: contrib/admindocs/views.py:323 contrib/admindocs/views.py:324 #: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343
#: contrib/admindocs/views.py:327 #: contrib/admindocs/views.py:346
msgid "File path" msgid "File path"
msgstr "Caminho de arquivo" msgstr "Caminho de arquivo"
#: contrib/admindocs/views.py:325 #: contrib/admindocs/views.py:344
msgid "Floating point number" msgid "Floating point number"
msgstr "Número de ponto flutuante" msgstr "Número de ponto flutuante"
#: contrib/admindocs/views.py:329 contrib/comments/models.py:60 #: contrib/admindocs/views.py:348 contrib/comments/models.py:60
msgid "IP address" msgid "IP address"
msgstr "Endereço IP" msgstr "Endereço IP"
#: contrib/admindocs/views.py:331 #: contrib/admindocs/views.py:350
msgid "Boolean (Either True, False or None)" msgid "Boolean (Either True, False or None)"
msgstr "Booleano (Verdadeiro, Falso ou Nada)" msgstr "Booleano (Verdadeiro, Falso ou Nada)"
#: contrib/admindocs/views.py:332 #: contrib/admindocs/views.py:351
msgid "Relation to parent model" msgid "Relation to parent model"
msgstr "Relação com o modelo pai" msgstr "Relação com o modelo pai"
#: contrib/admindocs/views.py:333 #: contrib/admindocs/views.py:352
msgid "Phone number" msgid "Phone number"
msgstr "Número de telefone" msgstr "Número de telefone"
#: contrib/admindocs/views.py:338 #: contrib/admindocs/views.py:357
msgid "Text" msgid "Text"
msgstr "Texto" msgstr "Texto"
#: contrib/admindocs/views.py:339 #: contrib/admindocs/views.py:358
msgid "Time" msgid "Time"
msgstr "Hora" msgstr "Hora"
#: contrib/admindocs/views.py:340 contrib/comments/forms.py:95 #: contrib/admindocs/views.py:359 contrib/comments/forms.py:95
#: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/comments/templates/comments/moderation_queue.html:37
#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
#: contrib/admindocs/views.py:341 #: contrib/admindocs/views.py:360
msgid "U.S. state (two uppercase letters)" msgid "U.S. state (two uppercase letters)"
msgstr "Estado dos EUA (duas letras maiúsculas)" msgstr "Estado dos EUA (duas letras maiúsculas)"
#: contrib/admindocs/views.py:342 #: contrib/admindocs/views.py:361
msgid "XML text" msgid "XML text"
msgstr "Texto XML" msgstr "Texto XML"
#: contrib/admindocs/views.py:368 #: contrib/admindocs/views.py:387
#, python-format #, python-format
msgid "%s does not appear to be a urlpattern object" msgid "%s does not appear to be a urlpattern object"
msgstr "%s não aparenta ser um objeto urlpattern" msgstr "%s não aparenta ser um objeto urlpattern"
@ -1776,18 +1786,26 @@ msgstr ""
"Desculpe, mas seu formulário expirou. Por favor, continue preenchendo o " "Desculpe, mas seu formulário expirou. Por favor, continue preenchendo o "
"formulário desta página." "formulário desta página."
#: contrib/gis/forms/fields.py:14 #: contrib/gis/forms/fields.py:17
msgid "No geometry value provided." msgid "No geometry value provided."
msgstr "Nenhum valor geométrico fornecido." msgstr "Nenhum valor geométrico fornecido."
#: contrib/gis/forms/fields.py:15 #: contrib/gis/forms/fields.py:18
msgid "Invalid geometry value." msgid "Invalid geometry value."
msgstr "Valor geométrico inválido." msgstr "Valor geométrico inválido."
#: contrib/gis/forms/fields.py:16 #: contrib/gis/forms/fields.py:19
msgid "Invalid geometry type." msgid "Invalid geometry type."
msgstr "Tipo geométrico inválido." msgstr "Tipo geométrico inválido."
#: contrib/gis/forms/fields.py:20
msgid ""
"An error occurred when transforming the geometry to the SRID of the geometry "
"form field."
msgstr ""
"Ocorreu um erro ao transformar a geometria para o SRID do campo de "
"formulário de geometria."
#: contrib/humanize/templatetags/humanize.py:19 #: contrib/humanize/templatetags/humanize.py:19
msgid "th" msgid "th"
msgstr "º" msgstr "º"
@ -3014,7 +3032,9 @@ msgstr "O Número de Identificação Tributária (NIP) é incorreto."
#: contrib/localflavor/pl/forms.py:109 #: contrib/localflavor/pl/forms.py:109
msgid "National Business Register Number (REGON) consists of 9 or 14 digits." msgid "National Business Register Number (REGON) consists of 9 or 14 digits."
msgstr "O Número Nacional de Registro de Negócios (REGON) consiste em 9 ou 14 dígitos." msgstr ""
"O Número Nacional de Registro de Negócios (REGON) consiste em 9 ou 14 "
"dígitos."
#: contrib/localflavor/pl/forms.py:110 #: contrib/localflavor/pl/forms.py:110
msgid "Wrong checksum for the National Business Register Number (REGON)." msgid "Wrong checksum for the National Business Register Number (REGON)."
@ -3903,14 +3923,14 @@ msgstr "Este valor deve ser None, True ou False."
msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
msgstr "Informe uma hora válida no formato HH:MM[:ss[.uuuuuu]]." msgstr "Informe uma hora válida no formato HH:MM[:ss[.uuuuuu]]."
#: db/models/fields/related.py:792 #: db/models/fields/related.py:816
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 ""
"Mantenha pressionado \"Control\" (ou \"Command\" no Mac) para selecionar " "Mantenha pressionado \"Control\" (ou \"Command\" no Mac) para selecionar "
"mais de uma opção." "mais de uma opção."
#: db/models/fields/related.py:870 #: db/models/fields/related.py:894
#, python-format #, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
msgid_plural "" msgid_plural ""
@ -3977,11 +3997,11 @@ msgid "Ensure that there are no more than %s digits before the decimal point."
msgstr "" msgstr ""
"Certifique-se de que não tenha mais de %s dígitos antes do ponto decimal." "Certifique-se de que não tenha mais de %s dígitos antes do ponto decimal."
#: forms/fields.py:288 forms/fields.py:862 #: forms/fields.py:288 forms/fields.py:863
msgid "Enter a valid date." msgid "Enter a valid date."
msgstr "Informe uma data válida." msgstr "Informe uma data válida."
#: forms/fields.py:322 forms/fields.py:863 #: forms/fields.py:322 forms/fields.py:864
msgid "Enter a valid time." msgid "Enter a valid time."
msgstr "Informe uma hora válida." msgstr "Informe uma hora válida."
@ -4025,20 +4045,21 @@ msgstr "Informe uma URL válida."
msgid "This URL appears to be a broken link." msgid "This URL appears to be a broken link."
msgstr "A URL %s aparenta ser um link quebrado." msgstr "A URL %s aparenta ser um link quebrado."
#: forms/fields.py:624 forms/fields.py:702 #: forms/fields.py:625 forms/fields.py:703
#, python-format #, python-format
msgid "Select a valid choice. %(value)s is not one of the available choices." msgid "Select a valid choice. %(value)s is not one of the available choices."
msgstr "Faça uma escolha válida. %(value)s não está disponível." msgstr "Faça uma escolha válida. %(value)s não está disponível."
#: forms/fields.py:703 forms/fields.py:764 forms/models.py:776 #: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003
#: forms/models_flymake.py:1003
msgid "Enter a list of values." msgid "Enter a list of values."
msgstr "Informe uma lista de valores." msgstr "Informe uma lista de valores."
#: forms/fields.py:891 #: forms/fields.py:892
msgid "Enter a valid IPv4 address." msgid "Enter a valid IPv4 address."
msgstr "Informe um endereço IPv4 válido." msgstr "Informe um endereço IPv4 válido."
#: forms/fields.py:901 #: forms/fields.py:902
msgid "" msgid ""
"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens."
msgstr "" msgstr ""
@ -4049,25 +4070,57 @@ msgstr ""
msgid "Order" msgid "Order"
msgstr "Ordem" msgstr "Ordem"
#: forms/models.py:299 forms/models.py:308 #: forms/models.py:367 forms/models_flymake.py:367
#, python-format
msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s."
msgstr "%(field_name)s deverá ser único para %(date_field)s %(lookup)s."
#: forms/models.py:381 forms/models.py:389 forms/models_flymake.py:381
#: forms/models_flymake.py:389
#, python-format #, python-format
msgid "%(model_name)s with this %(field_label)s already exists." msgid "%(model_name)s with this %(field_label)s already exists."
msgstr "%(model_name)s com este %(field_label)s já existe." msgstr "%(model_name)s com este %(field_label)s já existe."
#: forms/models.py:651 #: forms/models.py:594 forms/models_flymake.py:594
#, python-format
msgid "Please correct the duplicate data for %(field)s."
msgstr "Por favor, corrija o valor duplicado para %(field)s."
#: forms/models.py:598 forms/models_flymake.py:598
#, python-format
msgid "Please correct the duplicate data for %(field)s, which must be unique."
msgstr ""
"Por favor, corrija o valor duplicado para %(field)s, o qual deve ser único"
#: forms/models.py:604 forms/models_flymake.py:604
#, python-format
msgid ""
"Please correct the duplicate data for %(field_name)s which must be unique "
"for the %(lookup)s in %(date_field)s."
msgstr ""
"Por favor corrija os dados duplicados em %(field_name)s que deverá ser único "
"para o %(lookup)s em %(date_field)s."
#: forms/models.py:612 forms/models_flymake.py:612
msgid "Please correct the duplicate values below."
msgstr "Por favor, corrija os valores duplicados abaixo."
#: forms/models.py:867 forms/models_flymake.py:867
msgid "The inline foreign key did not match the parent instance primary key." msgid "The inline foreign key did not match the parent instance primary key."
msgstr "" msgstr ""
"A chave estrangeira no inline não coincide com a chave primária na instância "
"pai."
#: forms/models.py:706 #: forms/models.py:930 forms/models_flymake.py:930
msgid "Select a valid choice. That choice is not one of the available choices." msgid "Select a valid choice. That choice is not one of the available choices."
msgstr "Faça uma escolha válida. Sua escolha não é uma das disponíveis." msgstr "Faça uma escolha válida. Sua escolha não é uma das disponíveis."
#: forms/models.py:777 #: forms/models.py:1004 forms/models_flymake.py:1004
#, python-format #, python-format
msgid "Select a valid choice. %s is not one of the available choices." msgid "Select a valid choice. %s is not one of the available choices."
msgstr "Faça uma escolha válida. %s não está disponível." msgstr "Faça uma escolha válida. %s não está disponível."
#: forms/models.py:779 #: forms/models.py:1006 forms/models_flymake.py:1006
#, python-format #, python-format
msgid "\"%s\" is not a valid value for a primary key." msgid "\"%s\" is not a valid value for a primary key."
msgstr "\"%s\" não é um valor válido para uma chave primária." msgstr "\"%s\" não é um valor válido para uma chave primária."
@ -4098,27 +4151,27 @@ msgstr "%.1f MB"
msgid "%.1f GB" msgid "%.1f GB"
msgstr "%.1f GB" msgstr "%.1f GB"
#: utils/dateformat.py:41 #: utils/dateformat.py:42
msgid "p.m." msgid "p.m."
msgstr "p.m." msgstr "p.m."
#: utils/dateformat.py:42 #: utils/dateformat.py:43
msgid "a.m." msgid "a.m."
msgstr "a.m." msgstr "a.m."
#: utils/dateformat.py:47 #: utils/dateformat.py:48
msgid "PM" msgid "PM"
msgstr "PM" msgstr "PM"
#: utils/dateformat.py:48 #: utils/dateformat.py:49
msgid "AM" msgid "AM"
msgstr "AM" msgstr "AM"
#: utils/dateformat.py:97 #: utils/dateformat.py:98
msgid "midnight" msgid "midnight"
msgstr "meia noite" msgstr "meia noite"
#: utils/dateformat.py:99 #: utils/dateformat.py:100
msgid "noon" msgid "noon"
msgstr "meio dia" msgstr "meio dia"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django\n" "Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-04-10 17:08+0400\n" "POT-Creation-Date: 2009-07-23 00:31+0400\n"
"PO-Revision-Date: 2009-04-10 18:37+0400\n" "PO-Revision-Date: 2009-04-10 18:37+0400\n"
"Last-Translator: Andrew Fedorov <dmmdrs@gmail.com>\n" "Last-Translator: Andrew Fedorov <dmmdrs@gmail.com>\n"
"Language-Team: Russian\n" "Language-Team: Russian\n"
@ -218,16 +218,16 @@ msgstr "Упрощенный китайский"
msgid "Traditional Chinese" msgid "Traditional Chinese"
msgstr "Традиционный китайский" msgstr "Традиционный китайский"
#: contrib/admin/actions.py:56 #: contrib/admin/actions.py:60
#, python-format #, python-format
msgid "Successfully deleted %(count)d %(items)s." msgid "Successfully deleted %(count)d %(items)s."
msgstr "Успешно удалено %(count)d %(items)s." msgstr "Успешно удалены %(count)d %(items)s."
#: contrib/admin/actions.py:63 contrib/admin/options.py:1023 #: contrib/admin/actions.py:67 contrib/admin/options.py:1027
msgid "Are you sure?" msgid "Are you sure?"
msgstr "Вы уверены?" msgstr "Вы уверены?"
#: contrib/admin/actions.py:81 #: contrib/admin/actions.py:85
#, python-format #, python-format
msgid "Delete selected %(verbose_name_plural)s" msgid "Delete selected %(verbose_name_plural)s"
msgstr "Удалить выбранные %(verbose_name_plural)s" msgstr "Удалить выбранные %(verbose_name_plural)s"
@ -266,15 +266,15 @@ msgstr "Этот месяц"
msgid "This year" msgid "This year"
msgstr "Этот год" msgstr "Этот год"
#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 #: contrib/admin/filterspecs.py:147 forms/widgets.py:434
msgid "Yes" msgid "Yes"
msgstr "Да" msgstr "Да"
#: contrib/admin/filterspecs.py:147 forms/widgets.py:413 #: contrib/admin/filterspecs.py:147 forms/widgets.py:434
msgid "No" msgid "No"
msgstr "Нет" msgstr "Нет"
#: contrib/admin/filterspecs.py:154 forms/widgets.py:413 #: contrib/admin/filterspecs.py:154 forms/widgets.py:434
msgid "Unknown" msgid "Unknown"
msgstr "Неизвестно" msgstr "Неизвестно"
@ -314,56 +314,57 @@ msgstr "записи в журнале"
msgid "None" msgid "None"
msgstr "Нет" msgstr "Нет"
#: contrib/admin/options.py:517 #: contrib/admin/options.py:519
#, python-format #, python-format
msgid "Changed %s." msgid "Changed %s."
msgstr "Изменён %s." msgstr "Изменён %s."
#: contrib/admin/options.py:517 contrib/admin/options.py:527 #: contrib/admin/options.py:519 contrib/admin/options.py:529
#: contrib/comments/templates/comments/preview.html:16 forms/models.py:306 #: contrib/comments/templates/comments/preview.html:16 forms/models.py:388
#: forms/models.py:600
msgid "and" msgid "and"
msgstr "и" msgstr "и"
#: contrib/admin/options.py:522 #: contrib/admin/options.py:524
#, python-format #, python-format
msgid "Added %(name)s \"%(object)s\"." msgid "Added %(name)s \"%(object)s\"."
msgstr "Добавлен %(name)s \"%(object)s\"." msgstr "Добавлен %(name)s \"%(object)s\"."
#: contrib/admin/options.py:526 #: contrib/admin/options.py:528
#, python-format #, python-format
msgid "Changed %(list)s for %(name)s \"%(object)s\"." msgid "Changed %(list)s for %(name)s \"%(object)s\"."
msgstr "Изменены %(list)s для %(name)s \"%(object)s\"." msgstr "Изменены %(list)s для %(name)s \"%(object)s\"."
#: contrib/admin/options.py:531 #: contrib/admin/options.py:533
#, python-format #, python-format
msgid "Deleted %(name)s \"%(object)s\"." msgid "Deleted %(name)s \"%(object)s\"."
msgstr "Удалён %(name)s \"%(object)s\"." msgstr "Удалён %(name)s \"%(object)s\"."
#: contrib/admin/options.py:535 #: contrib/admin/options.py:537
msgid "No fields changed." msgid "No fields changed."
msgstr "Ни одно поле не изменено." msgstr "Ни одно поле не изменено."
#: contrib/admin/options.py:596 contrib/auth/admin.py:67 #: contrib/admin/options.py:599 contrib/auth/admin.py:67
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully." msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "%(name)s \"%(obj)s\" был успешно добавлен." msgstr "%(name)s \"%(obj)s\" был успешно добавлен."
#: contrib/admin/options.py:600 contrib/admin/options.py:633 #: contrib/admin/options.py:603 contrib/admin/options.py:636
#: contrib/auth/admin.py:75 #: contrib/auth/admin.py:75
msgid "You may edit it again below." msgid "You may edit it again below."
msgstr "Ниже вы можете снова его отредактировать." msgstr "Ниже вы можете снова его отредактировать."
#: contrib/admin/options.py:610 contrib/admin/options.py:643 #: contrib/admin/options.py:613 contrib/admin/options.py:646
#, python-format #, python-format
msgid "You may add another %s below." msgid "You may add another %s below."
msgstr "Ниже вы можете добавить еще один %s." msgstr "Ниже вы можете добавить еще один %s."
#: contrib/admin/options.py:631 #: contrib/admin/options.py:634
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully." msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr "%(name)s \"%(obj)s\" был успешно изменён." msgstr "%(name)s \"%(obj)s\" был успешно изменён."
#: contrib/admin/options.py:639 #: contrib/admin/options.py:642
#, python-format #, python-format
msgid "" msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
@ -371,26 +372,26 @@ msgstr ""
"%(name)s \"%(obj)s\" был успешно добавлен. Ниже вы можете снова его " "%(name)s \"%(obj)s\" был успешно добавлен. Ниже вы можете снова его "
"отредактировать." "отредактировать."
#: contrib/admin/options.py:770 #: contrib/admin/options.py:773
#, python-format #, python-format
msgid "Add %s" msgid "Add %s"
msgstr "Добавить %s" msgstr "Добавить %s"
#: contrib/admin/options.py:801 contrib/admin/options.py:1001 #: contrib/admin/options.py:804 contrib/admin/options.py:1005
#, python-format #, python-format
msgid "%(name)s object with primary key %(key)r does not exist." msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "%(name)s с первичным ключом %(key)r не существует." msgstr "%(name)s с первичным ключом %(key)r не существует."
#: contrib/admin/options.py:858 #: contrib/admin/options.py:861
#, python-format #, python-format
msgid "Change %s" msgid "Change %s"
msgstr "Изменить %s" msgstr "Изменить %s"
#: contrib/admin/options.py:902 #: contrib/admin/options.py:905
msgid "Database error" msgid "Database error"
msgstr "Ошибка базы данных" msgstr "Ошибка базы данных"
#: contrib/admin/options.py:938 #: contrib/admin/options.py:941
#, python-format #, python-format
msgid "%(count)s %(name)s was changed successfully." msgid "%(count)s %(name)s was changed successfully."
msgid_plural "%(count)s %(name)s were changed successfully." msgid_plural "%(count)s %(name)s were changed successfully."
@ -398,17 +399,17 @@ msgstr[0] "%(count)s %(name)s был успешно изменён."
msgstr[1] "%(count)s %(name)s были успешно изменены." msgstr[1] "%(count)s %(name)s были успешно изменены."
msgstr[2] "%(count)s %(name)s были успешно изменены." msgstr[2] "%(count)s %(name)s были успешно изменены."
#: contrib/admin/options.py:1016 #: contrib/admin/options.py:1020
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "%(name)s \"%(obj)s\" был успешно удалён." msgstr "%(name)s \"%(obj)s\" был успешно удалён."
#: contrib/admin/options.py:1052 #: contrib/admin/options.py:1057
#, python-format #, python-format
msgid "Change history: %s" msgid "Change history: %s"
msgstr "История изменений: %s" msgstr "История изменений: %s"
#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 #: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14
#: contrib/auth/forms.py:80 #: contrib/auth/forms.py:80
msgid "" msgid ""
"Please enter a correct username and password. Note that both fields are case-" "Please enter a correct username and password. Note that both fields are case-"
@ -417,11 +418,11 @@ msgstr ""
"Пожалуйста, введите верные имя пользователя и пароль. Помните, оба поля " "Пожалуйста, введите верные имя пользователя и пароль. Помните, оба поля "
"чувствительны к регистру." "чувствительны к регистру."
#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 #: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40
msgid "Please log in again, because your session has expired." msgid "Please log in again, because your session has expired."
msgstr "Пожалуйста, войдите снова, поскольку ваша сессия устарела." msgstr "Пожалуйста, войдите снова, поскольку ваша сессия устарела."
#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 #: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47
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."
@ -429,29 +430,29 @@ msgstr ""
"Похоже, ваш браузер не настроен на прием cookies. Пожалуйста, включите " "Похоже, ваш браузер не настроен на прием cookies. Пожалуйста, включите "
"cookies, перезагрузите страницу и попытайтесь снова." "cookies, перезагрузите страницу и попытайтесь снова."
#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 #: contrib/admin/sites.py:308 contrib/admin/sites.py:314
#: contrib/admin/views/decorators.py:66 #: contrib/admin/views/decorators.py:66
msgid "Usernames cannot contain the '@' character." msgid "Usernames cannot contain the '@' character."
msgstr "Имя пользователя не может содержать символ '@'." msgstr "Имя пользователя не может содержать символ '@'."
#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 #: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62
#, 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/sites.py:360 #: contrib/admin/sites.py:367
msgid "Site administration" msgid "Site administration"
msgstr "Администрирование сайта" msgstr "Администрирование сайта"
#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 #: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26
#: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/templates/registration/password_reset_complete.html:14
#: contrib/admin/views/decorators.py:20 #: contrib/admin/views/decorators.py:20
msgid "Log in" msgid "Log in"
msgstr "Войти" msgstr "Войти"
#: contrib/admin/sites.py:417 #: contrib/admin/sites.py:426
#, python-format #, python-format
msgid "%s administration" msgid "%s administration"
msgstr "%s администрирование" msgstr "%s администрирование"
@ -486,7 +487,7 @@ msgstr "Изменить:"
msgid "Lookup" msgid "Lookup"
msgstr "Поиск" msgstr "Поиск"
#: contrib/admin/widgets.py:236 #: contrib/admin/widgets.py:235
msgid "Add Another" msgid "Add Another"
msgstr "Добавить еще" msgstr "Добавить еще"
@ -501,7 +502,7 @@ msgstr "К сожалению, запрашиваемая вами страни
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/app_index.html:8 #: contrib/admin/templates/admin/app_index.html:8
#: contrib/admin/templates/admin/base.html:33 #: contrib/admin/templates/admin/base.html:54
#: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_form.html:17
#: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/change_list.html:25
#: contrib/admin/templates/admin/delete_confirmation.html:6 #: contrib/admin/templates/admin/delete_confirmation.html:6
@ -545,9 +546,8 @@ msgid "Run the selected action"
msgstr "Выполнить выбранное действие" msgstr "Выполнить выбранное действие"
#: contrib/admin/templates/admin/actions.html:4 #: contrib/admin/templates/admin/actions.html:4
#: contrib/admin/templates/admin/search_form.html:8
msgid "Go" msgid "Go"
msgstr "Вперёд" msgstr "Выполнить"
#: contrib/admin/templates/admin/app_index.html:10 #: contrib/admin/templates/admin/app_index.html:10
#: contrib/admin/templates/admin/index.html:19 #: contrib/admin/templates/admin/index.html:19
@ -555,18 +555,18 @@ msgstr "Вперёд"
msgid "%(name)s" msgid "%(name)s"
msgstr "%(name)s" msgstr "%(name)s"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:27
msgid "Welcome," msgid "Welcome,"
msgstr "Добро пожаловать," msgstr "Добро пожаловать,"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:32
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
msgid "Documentation" msgid "Documentation"
msgstr "Документация" msgstr "Документация"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:40
#: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:14
#: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/admin/auth/user/change_password.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
@ -574,7 +574,7 @@ msgstr "Документация"
msgid "Change password" msgid "Change password"
msgstr "Изменить пароль" msgstr "Изменить пароль"
#: contrib/admin/templates/admin/base.html:28 #: contrib/admin/templates/admin/base.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
msgid "Log out" msgid "Log out"
@ -705,6 +705,10 @@ msgstr "Мои действия"
msgid "None available" msgid "None available"
msgstr "Недоступно" msgstr "Недоступно"
#: contrib/admin/templates/admin/index.html:72
msgid "Unknown content"
msgstr "Неизвестный тип"
#: contrib/admin/templates/admin/invalid_setup.html:7 #: contrib/admin/templates/admin/invalid_setup.html:7
msgid "" msgid ""
"Something's wrong with your database installation. Make sure the appropriate " "Something's wrong with your database installation. Make sure the appropriate "
@ -753,6 +757,15 @@ msgstr ""
msgid "Show all" msgid "Show all"
msgstr "Показать все" msgstr "Показать все"
#: contrib/admin/templates/admin/pagination.html:11
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Сохранить"
#: contrib/admin/templates/admin/search_form.html:8
msgid "Search"
msgstr "Найти"
#: contrib/admin/templates/admin/search_form.html:10 #: contrib/admin/templates/admin/search_form.html:10
#, python-format #, python-format
msgid "1 result" msgid "1 result"
@ -766,10 +779,6 @@ msgstr[2] "%(counter)s результатов"
msgid "%(full_result_count)s total" msgid "%(full_result_count)s total"
msgstr "%(full_result_count)s всего" msgstr "%(full_result_count)s всего"
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Сохранить"
#: contrib/admin/templates/admin/submit_line.html:5 #: contrib/admin/templates/admin/submit_line.html:5
msgid "Save as new" msgid "Save as new"
msgstr "Сохранить как новый объект" msgstr "Сохранить как новый объект"
@ -996,144 +1005,145 @@ msgstr "сайт"
msgid "template" msgid "template"
msgstr "шаблон" msgstr "шаблон"
#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 #: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63
#: contrib/admindocs/views.py:62 #: contrib/admindocs/views.py:65
msgid "tag:" msgid "tag:"
msgstr "метка:" msgstr "метка:"
#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 #: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96
#: contrib/admindocs/views.py:95 #: contrib/admindocs/views.py:98
msgid "filter:" msgid "filter:"
msgstr "фильтр:" msgstr "фильтр:"
#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 #: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160
#: contrib/admindocs/views.py:159 #: contrib/admindocs/views.py:162
msgid "view:" msgid "view:"
msgstr "view:" msgstr "view:"
#: contrib/admindocs/views.py:187 #: contrib/admindocs/views.py:190
#, python-format #, python-format
msgid "App %r not found" msgid "App %r not found"
msgstr "Приложение %r не найдено" msgstr "Приложение %r не найдено"
#: contrib/admindocs/views.py:194 #: contrib/admindocs/views.py:197
#, python-format #, python-format
msgid "Model %(model_name)r not found in app %(app_label)r" msgid "Model %(model_name)r not found in app %(app_label)r"
msgstr "Модель %(model_name)r не найдена в приложении %(app_label)r" msgstr "Модель %(model_name)r не найдена в приложении %(app_label)r"
#: contrib/admindocs/views.py:206 #: contrib/admindocs/views.py:209
#, python-format #, python-format
msgid "the related `%(app_label)s.%(data_type)s` object" msgid "the related `%(app_label)s.%(data_type)s` object"
msgstr "зависимый `%(app_label)s.%(data_type)s` объект" msgstr "зависимый `%(app_label)s.%(data_type)s` объект"
#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228 #: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228
#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247
#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266
msgid "model:" msgid "model:"
msgstr "модель:" msgstr "модель:"
#: contrib/admindocs/views.py:237 #: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256
#, python-format #, python-format
msgid "related `%(app_label)s.%(object_name)s` objects" msgid "related `%(app_label)s.%(object_name)s` objects"
msgstr "зависимые `%(app_label)s.%(object_name)s` объекты" msgstr "зависимые `%(app_label)s.%(object_name)s` объекты"
#: contrib/admindocs/views.py:242 #: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261
#, python-format #, python-format
msgid "all %s" msgid "all %s"
msgstr "все %s" msgstr "все %s"
#: contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266
#, python-format #, python-format
msgid "number of %s" msgid "number of %s"
msgstr "количество %s" msgstr "количество %s"
#: contrib/admindocs/views.py:252 #: contrib/admindocs/views.py:271
#, python-format #, python-format
msgid "Fields on %s objects" msgid "Fields on %s objects"
msgstr "Поля для %s объектов" msgstr "Поля для %s объектов"
#: contrib/admindocs/views.py:315 contrib/admindocs/views.py:326 #: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345
#: contrib/admindocs/views.py:328 contrib/admindocs/views.py:334 #: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353
#: contrib/admindocs/views.py:335 contrib/admindocs/views.py:337 #: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356
msgid "Integer" msgid "Integer"
msgstr "Целое" msgstr "Целое"
#: contrib/admindocs/views.py:316 #: contrib/admindocs/views.py:335
msgid "Boolean (Either True or False)" msgid "Boolean (Either True or False)"
msgstr "Логическое (True или False)" msgstr "Логическое (True или False)"
#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:336 #: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355
#, python-format #, python-format
msgid "String (up to %(max_length)s)" msgid "String (up to %(max_length)s)"
msgstr "Строка (до %(max_length)s)" msgstr "Строка (до %(max_length)s)"
#: contrib/admindocs/views.py:318 #: contrib/admindocs/views.py:337
msgid "Comma-separated integers" msgid "Comma-separated integers"
msgstr "Целые, разделенные запятыми" msgstr "Целые, разделенные запятыми"
#: contrib/admindocs/views.py:319 #: contrib/admindocs/views.py:338
msgid "Date (without time)" msgid "Date (without time)"
msgstr "Дата (без указания времени)" msgstr "Дата (без указания времени)"
#: contrib/admindocs/views.py:320 #: contrib/admindocs/views.py:339
msgid "Date (with time)" msgid "Date (with time)"
msgstr "Дата (с указанием времени)" msgstr "Дата (с указанием времени)"
#: contrib/admindocs/views.py:321 #: contrib/admindocs/views.py:340
msgid "Decimal number" msgid "Decimal number"
msgstr "Десятичное число" msgstr "Десятичное число"
#: contrib/admindocs/views.py:322 #: contrib/admindocs/views.py:341
msgid "E-mail address" msgid "E-mail address"
msgstr "Адрес электронной почты" msgstr "Адрес электронной почты"
#: contrib/admindocs/views.py:323 contrib/admindocs/views.py:324 #: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343
#: contrib/admindocs/views.py:327 #: contrib/admindocs/views.py:346
msgid "File path" msgid "File path"
msgstr "Путь к файлу" msgstr "Путь к файлу"
#: contrib/admindocs/views.py:325 #: contrib/admindocs/views.py:344
msgid "Floating point number" msgid "Floating point number"
msgstr "Число с плавающей точкой" msgstr "Число с плавающей запятой"
#: contrib/admindocs/views.py:329 contrib/comments/models.py:60 #: contrib/admindocs/views.py:348 contrib/comments/models.py:60
msgid "IP address" msgid "IP address"
msgstr "IP-адрес" msgstr "IP-адрес"
#: contrib/admindocs/views.py:331 #: contrib/admindocs/views.py:350
msgid "Boolean (Either True, False or None)" msgid "Boolean (Either True, False or None)"
msgstr "Логическое (True, False или None)" msgstr "Логическое (True, False или None)"
#: contrib/admindocs/views.py:332 #: contrib/admindocs/views.py:351
msgid "Relation to parent model" msgid "Relation to parent model"
msgstr "Связь с родительской моделью" msgstr "Связь с родительской моделью"
#: contrib/admindocs/views.py:333 #: contrib/admindocs/views.py:352
msgid "Phone number" msgid "Phone number"
msgstr "Номер телефона" msgstr "Номер телефона"
#: contrib/admindocs/views.py:338 #: contrib/admindocs/views.py:357
msgid "Text" msgid "Text"
msgstr "Текст" msgstr "Текст"
#: contrib/admindocs/views.py:339 #: contrib/admindocs/views.py:358
msgid "Time" msgid "Time"
msgstr "Время" msgstr "Время"
#: contrib/admindocs/views.py:340 contrib/comments/forms.py:95 #: contrib/admindocs/views.py:359 contrib/comments/forms.py:95
#: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/comments/templates/comments/moderation_queue.html:37
#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
#: contrib/admindocs/views.py:341 #: contrib/admindocs/views.py:360
msgid "U.S. state (two uppercase letters)" msgid "U.S. state (two uppercase letters)"
msgstr "Штат США (две заглавные буквы)" msgstr "Штат США (две заглавные буквы)"
#: contrib/admindocs/views.py:342 #: contrib/admindocs/views.py:361
msgid "XML text" msgid "XML text"
msgstr "XML текст" msgstr "XML текст"
#: contrib/admindocs/views.py:368 #: contrib/admindocs/views.py:387
#, python-format #, python-format
msgid "%s does not appear to be a urlpattern object" msgid "%s does not appear to be a urlpattern object"
msgstr "%s не похож на объект urlpattern" msgstr "%s не похож на объект urlpattern"
@ -1475,7 +1485,7 @@ msgid ""
msgstr "" msgstr ""
"Если что-нибудь введете в это поле, то ваш комментарий будет признан спамом" "Если что-нибудь введете в это поле, то ваш комментарий будет признан спамом"
#: contrib/comments/models.py:22 contrib/contenttypes/models.py:71 #: contrib/comments/models.py:22 contrib/contenttypes/models.py:74
msgid "content type" msgid "content type"
msgstr "тип содержимого" msgstr "тип содержимого"
@ -1598,8 +1608,7 @@ msgstr "Спасибо за подтверждение"
#: contrib/comments/templates/comments/flagged.html:7 #: contrib/comments/templates/comments/flagged.html:7
msgid "" msgid ""
"Thanks for taking the time to improve the quality of discussion on our site" "Thanks for taking the time to improve the quality of discussion on our site"
msgstr "" msgstr "Спасибо, что заботитесь о качестве общения на нашем сайте"
"Спасибо, что заботитесь о качестве обсуждений на нашем сайте"
#: contrib/comments/templates/comments/delete.html:4 #: contrib/comments/templates/comments/delete.html:4
msgid "Remove a comment" msgid "Remove a comment"
@ -1647,7 +1656,7 @@ msgstr "Предпросмотр"
#: contrib/comments/templates/comments/moderation_queue.html:4 #: contrib/comments/templates/comments/moderation_queue.html:4
#: contrib/comments/templates/comments/moderation_queue.html:19 #: contrib/comments/templates/comments/moderation_queue.html:19
msgid "Comment moderation queue" msgid "Comment moderation queue"
msgstr "Очередь модерирования комментариев" msgstr "Очередь модерации комментариев"
#: contrib/comments/templates/comments/moderation_queue.html:26 #: contrib/comments/templates/comments/moderation_queue.html:26
msgid "No comments to moderate" msgid "No comments to moderate"
@ -1705,11 +1714,11 @@ msgstr "Опубликуйте ваш комментарий"
msgid "or make changes" msgid "or make changes"
msgstr "или внесите изменения" msgstr "или внесите изменения"
#: contrib/contenttypes/models.py:67 #: contrib/contenttypes/models.py:70
msgid "python model class name" msgid "python model class name"
msgstr "имя класса модели" msgstr "имя класса модели"
#: contrib/contenttypes/models.py:72 #: contrib/contenttypes/models.py:75
msgid "content types" msgid "content types"
msgstr "типы содержимого" msgstr "типы содержимого"
@ -1725,7 +1734,7 @@ msgid ""
"This value must contain only letters, numbers, underscores, dashes or " "This value must contain only letters, numbers, underscores, dashes or "
"slashes." "slashes."
msgstr "" msgstr ""
"Значение должно состоять только из букв, цифр, знаков подчеркивания, тире " "Значение должно состоять только из букв, цифр, знаков подчеркивания, дефиса "
"или наклонной черты вправо." "или наклонной черты вправо."
#: contrib/flatpages/admin.py:22 #: contrib/flatpages/admin.py:22
@ -1780,18 +1789,24 @@ msgstr ""
"Мы сожалеем, но ваша форма устарела. Пожалуйста, продолжите заполнять форму " "Мы сожалеем, но ваша форма устарела. Пожалуйста, продолжите заполнять форму "
"на этой странице." "на этой странице."
#: contrib/gis/forms/fields.py:14 #: contrib/gis/forms/fields.py:17
msgid "No geometry value provided." msgid "No geometry value provided."
msgstr "Не указано значение геометрии." msgstr "Не указано значение геометрии."
#: contrib/gis/forms/fields.py:15 #: contrib/gis/forms/fields.py:18
msgid "Invalid geometry value." msgid "Invalid geometry value."
msgstr "Неверное значение геометрии." msgstr "Неверное значение геометрии."
#: contrib/gis/forms/fields.py:16 #: contrib/gis/forms/fields.py:19
msgid "Invalid geometry type." msgid "Invalid geometry type."
msgstr "Неверный тип геометрии." msgstr "Неверный тип геометрии."
#: contrib/gis/forms/fields.py:20
msgid ""
"An error occurred when transforming the geometry to the SRID of the geometry "
"form field."
msgstr "Произошла ошибка во время преобразования геометрии в SRID."
#: contrib/humanize/templatetags/humanize.py:19 #: contrib/humanize/templatetags/humanize.py:19
msgid "th" msgid "th"
msgstr "" msgstr ""
@ -1888,7 +1903,7 @@ msgstr "Введите почтовый индекс в формате NNNN ил
#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23 #: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23
#: contrib/localflavor/pe/forms.py:51 #: contrib/localflavor/pe/forms.py:51
msgid "This field requires only numbers." msgid "This field requires only numbers."
msgstr "Это поле требует только числа." msgstr "Это поле принимает только числа."
#: contrib/localflavor/ar/forms.py:50 #: contrib/localflavor/ar/forms.py:50
msgid "This field requires 7 or 8 digits." msgid "This field requires 7 or 8 digits."
@ -1941,7 +1956,7 @@ msgstr "Вена"
#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16 #: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16
#: contrib/localflavor/no/forms.py:12 #: contrib/localflavor/no/forms.py:12
msgid "Enter a zip code in the format XXXX." msgid "Enter a zip code in the format XXXX."
msgstr "Введите правильный индекс в формате XXXX.." msgstr "Введите правильный индекс в формате XXXX."
#: contrib/localflavor/at/forms.py:48 #: contrib/localflavor/at/forms.py:48
msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format." msgid "Enter a valid Austrian Social Security Number in XXXX XXXXXX format."
@ -2157,7 +2172,7 @@ msgstr "Пардубицкий край"
#: contrib/localflavor/cz/cz_regions.py:17 #: contrib/localflavor/cz/cz_regions.py:17
msgid "Vysocina Region" msgid "Vysocina Region"
msgstr "Высочинский край" msgstr "Край Высочина"
#: contrib/localflavor/cz/cz_regions.py:18 #: contrib/localflavor/cz/cz_regions.py:18
msgid "South Moravian Region" msgid "South Moravian Region"
@ -2182,7 +2197,7 @@ msgstr "Введите почтовый индекс в формате XXXXX и
#: contrib/localflavor/cz/forms.py:47 #: contrib/localflavor/cz/forms.py:47
msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX."
msgstr "" msgstr ""
"Введите номер свидетельства о рождении в формате XXXXXX/XXXX or XXXXXXXXXX." "Введите номер свидетельства о рождении в формате XXXXXX/XXXX или XXXXXXXXXX."
#: contrib/localflavor/cz/forms.py:48 #: contrib/localflavor/cz/forms.py:48
msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'"
@ -3080,7 +3095,7 @@ msgstr "Подляское"
#: contrib/localflavor/pl/pl_voivodeships.py:18 #: contrib/localflavor/pl/pl_voivodeships.py:18
msgid "Pomerania" msgid "Pomerania"
msgstr "Померания" msgstr "Поморское"
#: contrib/localflavor/pl/pl_voivodeships.py:19 #: contrib/localflavor/pl/pl_voivodeships.py:19
msgid "Silesia" msgid "Silesia"
@ -3871,60 +3886,60 @@ msgstr "выводимое имя"
msgid "sites" msgid "sites"
msgstr "сайты" msgstr "сайты"
#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:700 #: db/models/fields/__init__.py:356 db/models/fields/__init__.py:710
msgid "This value must be an integer." msgid "This value must be an integer."
msgstr "Это значение должно быть целым числом." msgstr "Это значение должно быть целым числом."
#: db/models/fields/__init__.py:387 #: db/models/fields/__init__.py:388
msgid "This value must be either True or False." msgid "This value must be either True or False."
msgstr "Значение должно либо True, либо False." msgstr "Значение должно быть либо True, либо False."
#: db/models/fields/__init__.py:420 #: db/models/fields/__init__.py:427
msgid "This field cannot be null." msgid "This field cannot be null."
msgstr "Это поле не может быть нулевым." msgstr "Это поле не может быть нулевым."
#: db/models/fields/__init__.py:436 #: db/models/fields/__init__.py:443
msgid "Enter only digits separated by commas." msgid "Enter only digits separated by commas."
msgstr "Введите цифры, разделенные запятыми." msgstr "Введите цифры, разделенные запятыми."
#: db/models/fields/__init__.py:467 #: db/models/fields/__init__.py:474
msgid "Enter a valid date in YYYY-MM-DD format." msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "Введите правильную дату в формате YYYY-MM-DD." msgstr "Введите правильную дату в формате YYYY-MM-DD."
#: db/models/fields/__init__.py:476 #: db/models/fields/__init__.py:483
#, python-format #, python-format
msgid "Invalid date: %s" msgid "Invalid date: %s"
msgstr "Неправильная дата: %s" msgstr "Неправильная дата: %s"
#: db/models/fields/__init__.py:540 db/models/fields/__init__.py:558 #: db/models/fields/__init__.py:547 db/models/fields/__init__.py:565
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format." msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
msgstr "" msgstr ""
"Введите правильные дату и время в формате YYYY-MM-DD HH:MM[:ss[.uuuuuu]." "Введите правильные дату и время в формате YYYY-MM-DD HH:MM[:ss[.uuuuuu]."
#: db/models/fields/__init__.py:594 #: db/models/fields/__init__.py:601
msgid "This value must be a decimal number." msgid "This value must be a decimal number."
msgstr "Это значение должно быть целым числом." msgstr "Это значение должно быть целым числом."
#: db/models/fields/__init__.py:676 #: db/models/fields/__init__.py:686
msgid "This value must be a float." msgid "This value must be a float."
msgstr "Это значение должно быть числом с плавающей запятой." msgstr "Это значение должно быть числом с плавающей запятой."
#: db/models/fields/__init__.py:736 #: db/models/fields/__init__.py:746
msgid "This value must be either None, True or False." msgid "This value must be either None, True or False."
msgstr "Значение должно либо True, либо False." msgstr "Значение должно быть None, True или False."
#: db/models/fields/__init__.py:839 db/models/fields/__init__.py:853 #: db/models/fields/__init__.py:849 db/models/fields/__init__.py:863
msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
msgstr "Введите правильное время в формате HH:MM[:ss[.uuuuuu]]." msgstr "Введите правильное время в формате HH:MM[:ss[.uuuuuu]]."
#: db/models/fields/related.py:792 #: db/models/fields/related.py:816
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 ""
"Удерживайте \"Control\" (или \"Command\" на Mac) для выбора нескольких " "Удерживайте \"Control\" (или \"Command\" на Mac) для выбора нескольких "
"значений." "значений."
#: db/models/fields/related.py:870 #: db/models/fields/related.py:894
#, python-format #, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
msgid_plural "" msgid_plural ""
@ -3994,11 +4009,11 @@ msgstr "Убедитесь, что ввели не больше %s цифр по
msgid "Ensure that there are no more than %s digits before the decimal point." msgid "Ensure that there are no more than %s digits before the decimal point."
msgstr "Убедитесь, что ввели не больше %s цифр до запятой." msgstr "Убедитесь, что ввели не больше %s цифр до запятой."
#: forms/fields.py:288 forms/fields.py:862 #: forms/fields.py:288 forms/fields.py:863
msgid "Enter a valid date." msgid "Enter a valid date."
msgstr "Введите правильную дату." msgstr "Введите правильную дату."
#: forms/fields.py:322 forms/fields.py:863 #: forms/fields.py:322 forms/fields.py:864
msgid "Enter a valid time." msgid "Enter a valid time."
msgstr "Введите правильное время." msgstr "Введите правильное время."
@ -4042,58 +4057,90 @@ msgstr "Введите правильный URL."
msgid "This URL appears to be a broken link." msgid "This URL appears to be a broken link."
msgstr "Похоже, что это нерабочая ссылка." msgstr "Похоже, что это нерабочая ссылка."
#: forms/fields.py:624 forms/fields.py:702 #: forms/fields.py:625 forms/fields.py:703
#, python-format #, python-format
msgid "Select a valid choice. %(value)s is not one of the available choices." msgid "Select a valid choice. %(value)s is not one of the available choices."
msgstr "Выберите корректный вариант. %(value)s нет среди допустимых значений." msgstr "Выберите корректный вариант. %(value)s нет среди допустимых значений."
#: forms/fields.py:703 forms/fields.py:764 forms/models.py:776 #: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003
msgid "Enter a list of values." msgid "Enter a list of values."
msgstr "Введите список значений." msgstr "Введите список значений."
#: forms/fields.py:891 #: forms/fields.py:892
msgid "Enter a valid IPv4 address." msgid "Enter a valid IPv4 address."
msgstr "Введите правильный IPv4 адрес." msgstr "Введите правильный IPv4 адрес."
#: forms/fields.py:901 #: forms/fields.py:902
msgid "" msgid ""
"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens."
msgstr "" msgstr ""
"Значение должно состоять только из букв, цифр, знаков подчеркивания или тире." "Значение должно состоять только из букв, цифр, знаков подчеркивания или "
"дефиса."
#: forms/formsets.py:271 forms/formsets.py:273 #: forms/formsets.py:271 forms/formsets.py:273
msgid "Order" msgid "Order"
msgstr "Порядок" msgstr "Порядок"
#: forms/models.py:299 forms/models.py:308 #: forms/models.py:367
#, python-format
msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s."
msgstr ""
"Значение в поле %(field_name)s должно быть уникальным для %(lookup)s в поле %"
"(date_field)s."
#: forms/models.py:381 forms/models.py:389
#, python-format #, python-format
msgid "%(model_name)s with this %(field_label)s already exists." msgid "%(model_name)s with this %(field_label)s already exists."
msgstr "%(model_name)s с таким %(field_label)s уже существует." msgstr "%(model_name)s с таким %(field_label)s уже существует."
#: forms/models.py:651 #: forms/models.py:594
msgid "The inline foreign key did not match the parent instance primary key." #, python-format
msgstr "Вторичный ключ не совпадает с первичным ключом родителя." msgid "Please correct the duplicate data for %(field)s."
msgstr "Пожалуйста, измените повторяющееся значение в поле %(field)s."
#: forms/models.py:706 #: forms/models.py:598
#, python-format
msgid "Please correct the duplicate data for %(field)s, which must be unique."
msgstr ""
"Пожалуйста, измените значение в поле %(field)s, оно должно быть уникальным."
#: forms/models.py:604
#, python-format
msgid ""
"Please correct the duplicate data for %(field_name)s which must be unique "
"for the %(lookup)s in %(date_field)s."
msgstr ""
"Пожалуйста, измените значение в поле %(field_name)s, оно должно быть "
"уникальным для %(lookup)s в поле %(date_field)s."
#: forms/models.py:612
msgid "Please correct the duplicate values below."
msgstr "Пожалуйста, измените повторяющиеся значения ниже."
#: forms/models.py:867
msgid "The inline foreign key did not match the parent instance primary key."
msgstr "Внешний ключ не совпадает с первичным ключом родителя."
#: forms/models.py:930
msgid "Select a valid choice. That choice is not one of the available choices." msgid "Select a valid choice. That choice is not one of the available choices."
msgstr "" msgstr ""
"Выберите корректный вариант. Вашего варианта нет среди допустимых значений." "Выберите корректный вариант. Вашего варианта нет среди допустимых значений."
#: forms/models.py:777 #: forms/models.py:1004
#, python-format #, python-format
msgid "Select a valid choice. %s is not one of the available choices." msgid "Select a valid choice. %s is not one of the available choices."
msgstr "Выберите корректный вариант. %s нет среди допустимых значений." msgstr "Выберите корректный вариант. %s нет среди допустимых значений."
#: forms/models.py:779 #: forms/models.py:1006
#, python-format #, python-format
msgid "\"%s\" is not a valid value for a primary key." msgid "\"%s\" is not a valid value for a primary key."
msgstr "\"%s\" не является верным значением для первичного ключа." msgstr "\"%s\" не является верным значением для первичного ключа."
#: template/defaultfilters.py:765 #: template/defaultfilters.py:767
msgid "yes,no,maybe" msgid "yes,no,maybe"
msgstr "да,нет,может быть" msgstr "да,нет,может быть"
#: template/defaultfilters.py:796 #: template/defaultfilters.py:798
#, python-format #, python-format
msgid "%(size)d byte" msgid "%(size)d byte"
msgid_plural "%(size)d bytes" msgid_plural "%(size)d bytes"
@ -4101,42 +4148,42 @@ msgstr[0] "%(size)d байт"
msgstr[1] "%(size)d байта" msgstr[1] "%(size)d байта"
msgstr[2] "%(size)d байт" msgstr[2] "%(size)d байт"
#: template/defaultfilters.py:798 #: template/defaultfilters.py:800
#, python-format #, python-format
msgid "%.1f KB" msgid "%.1f KB"
msgstr "%.1f КБ" msgstr "%.1f КБ"
#: template/defaultfilters.py:800 #: template/defaultfilters.py:802
#, python-format #, python-format
msgid "%.1f MB" msgid "%.1f MB"
msgstr "%.1f МБ" msgstr "%.1f МБ"
#: template/defaultfilters.py:801 #: template/defaultfilters.py:803
#, python-format #, python-format
msgid "%.1f GB" msgid "%.1f GB"
msgstr "%.1f ГБ" msgstr "%.1f ГБ"
#: utils/dateformat.py:41 #: utils/dateformat.py:42
msgid "p.m." msgid "p.m."
msgstr "п.п." msgstr "п.п."
#: utils/dateformat.py:42 #: utils/dateformat.py:43
msgid "a.m." msgid "a.m."
msgstr "д.п." msgstr "д.п."
#: utils/dateformat.py:47 #: utils/dateformat.py:48
msgid "PM" msgid "PM"
msgstr "ПП" msgstr "ПП"
#: utils/dateformat.py:48 #: utils/dateformat.py:49
msgid "AM" msgid "AM"
msgstr "ДП" msgstr "ДП"
#: utils/dateformat.py:97 #: utils/dateformat.py:98
msgid "midnight" msgid "midnight"
msgstr "полночь" msgstr "полночь"
#: utils/dateformat.py:99 #: utils/dateformat.py:100
msgid "noon" msgid "noon"
msgstr "полдень" msgstr "полдень"

File diff suppressed because it is too large Load Diff

View File

@ -1,51 +1,50 @@
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the Django package.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django\n" "Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-01-23 23:46+0100\n" "POT-Creation-Date: 2009-03-30 14:00+0200\n"
"PO-Revision-Date: 2008-07-29 12:53+0100\n" "PO-Revision-Date: 2009-03-30 14:04+0200\n"
"Last-Translator: Nebojsa Djordjevic <djnesh@gmail.com>\n" "Last-Translator: Janos Guljas <janos@janos.in.rs>\n"
"Language-Team: Nesh <djnesh@gmail.com> & Petar <petar.maric@gmail.com> & Janos Guljas <janos@janos.in.rs>" "Language-Team: Branko Vukelic <bg.branko@gmail.com> & Janos Guljas "
"<janos@janos.in.rs> & Nesh <djnesh@gmail.com> & Petar <petar.maric@gmail."
"com>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Country: YUGOSLAVIA\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Poedit-Language: Serbian\n"
"X-Poedit-SourceCharset: utf-8\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 "Доступно %s" msgstr "Доступни %s"
#: contrib/admin/media/js/SelectFilter2.js:41 #: contrib/admin/media/js/SelectFilter2.js:41
msgid "Choose all" msgid "Choose all"
msgstr "Изаберите све" msgstr "Додај све"
#: contrib/admin/media/js/SelectFilter2.js:46 #: contrib/admin/media/js/SelectFilter2.js:46
msgid "Add" msgid "Add"
msgstr "Додајте" msgstr "Додај"
#: contrib/admin/media/js/SelectFilter2.js:48 #: contrib/admin/media/js/SelectFilter2.js:48
msgid "Remove" msgid "Remove"
msgstr "Избаците" msgstr "Уклони"
#: 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 "Изабрано %s" msgstr "Одабрани %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 "Направите избор и кликните "
#: contrib/admin/media/js/SelectFilter2.js:59 #: contrib/admin/media/js/SelectFilter2.js:59
msgid "Clear all" msgid "Clear all"
msgstr "Обришите све" msgstr "Врати све"
#: contrib/admin/media/js/calendar.js:24 #: contrib/admin/media/js/calendar.js:24
#: contrib/admin/media/js/dateparse.js:32 #: contrib/admin/media/js/dateparse.js:32
@ -67,7 +66,7 @@ msgstr "недеља понедељак уторак среда четвртак
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34 #: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72 #: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
msgid "Show" msgid "Show"
msgstr "Прикажи" msgstr "Покажи"
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63 #: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
msgid "Hide" msgid "Hide"
@ -76,7 +75,7 @@ msgstr "Сакриј"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
msgid "Now" msgid "Now"
msgstr "Сада" msgstr "Тренутно време"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
msgid "Clock" msgid "Clock"
@ -84,7 +83,7 @@ msgstr "Сат"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
msgid "Choose a time" msgid "Choose a time"
msgstr "Изаберите време" msgstr "Одабир времена"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
msgid "Midnight" msgid "Midnight"
@ -92,7 +91,7 @@ msgstr "Поноћ"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
msgid "6 a.m." msgid "6 a.m."
msgstr "6 сати" msgstr "18ч"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
msgid "Noon" msgid "Noon"

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,120 @@
# This file is distributed under the same license as the Django package.
#
msgid ""
msgstr ""
"Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-03-30 14:00+0200\n"
"PO-Revision-Date: 2009-03-30 14:04+0200\n"
"Last-Translator: Janos Guljas <janos@janos.in.rs>\n"
"Language-Team: Branko Vukelic <bg.branko@gmail.com> & Janos Guljas "
"<janos@janos.in.rs> & Nesh <djnesh@gmail.com> & Petar <petar.maric@gmail."
"com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#: contrib/admin/media/js/SelectFilter2.js:33
#, perl-format
msgid "Available %s"
msgstr "Dostupni %s"
#: contrib/admin/media/js/SelectFilter2.js:41
msgid "Choose all"
msgstr "Dodaj sve"
#: contrib/admin/media/js/SelectFilter2.js:46
msgid "Add"
msgstr "Dodaj"
#: contrib/admin/media/js/SelectFilter2.js:48
msgid "Remove"
msgstr "Ukloni"
#: contrib/admin/media/js/SelectFilter2.js:53
#, perl-format
msgid "Chosen %s"
msgstr "Odabrani %s"
#: contrib/admin/media/js/SelectFilter2.js:54
msgid "Select your choice(s) and click "
msgstr "Napravite izbor i kliknite "
#: contrib/admin/media/js/SelectFilter2.js:59
msgid "Clear all"
msgstr "Vrati sve"
#: contrib/admin/media/js/calendar.js:24
#: contrib/admin/media/js/dateparse.js:32
msgid ""
"January February March April May June July August September October November "
"December"
msgstr ""
"januar februar mart april maj jun jul avgust septembar oktobar novembar "
"decembar"
#: contrib/admin/media/js/calendar.js:25
msgid "S M T W T F S"
msgstr "N P U S Č P S"
#: contrib/admin/media/js/dateparse.js:33
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
msgstr "nedelja ponedeljak utorak sreda četvrtak petak subota"
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
msgid "Show"
msgstr "Pokaži"
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
msgid "Hide"
msgstr "Sakrij"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
msgid "Now"
msgstr "Trenutno vreme"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
msgid "Clock"
msgstr "Sat"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
msgid "Choose a time"
msgstr "Odabir vremena"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
msgid "Midnight"
msgstr "Ponoć"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
msgid "6 a.m."
msgstr "18č"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
msgid "Noon"
msgstr "Podne"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
msgid "Cancel"
msgstr "Poništi"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
msgid "Today"
msgstr "Danas"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
msgid "Calendar"
msgstr "Kalendar"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
msgid "Yesterday"
msgstr "Juče"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
msgid "Tomorrow"
msgstr "Sutra"

File diff suppressed because it is too large Load Diff

View File

@ -2,23 +2,24 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django\n" "Project-Id-Version: Django-1.1-rc-1\n"
"Report-Msgid-Bugs-To: kowito@felspar.com\n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-09-02 22:36-0700\n" "POT-Creation-Date: 2008-09-02 22:36-0700\n"
"PO-Revision-Date: 2008-11-04 00:35+0700\n" "PO-Revision-Date: 2009-07-27 21:47+0700\n"
"Last-Translator: Kowit Charoenratchatabhan <kowito@felspar.com>\n" "Last-Translator: Kowit Charoenratchatabhan <kowito@felspar.com>\n"
"Language-Team: Kowit Charoenratchatabhan,Kadsarin Sanjek, Felspar <kowito@felspar.com>\n" "Language-Team: Kowit Charoenratchatabhan,Kadsarin Sanjek, Felspar <kowito@felspar.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"
"X-Poedit-Language: Thai\n" "X-Poedit-Language: Thai\n"
"X-Poedit-Country: Thailand\n" "X-Poedit-Country: THAILAND\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
"Plural-Forms: nplurals=1; plural=0;\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 "ที่มีอยู่ %s" msgstr "%sที่มีอยู่"
#: contrib/admin/media/js/SelectFilter2.js:41 #: contrib/admin/media/js/SelectFilter2.js:41
msgid "Choose all" msgid "Choose all"
@ -35,7 +36,7 @@ msgstr "ลบออก"
#: 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 "ได้เลือก %s" msgstr "%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 "
@ -43,7 +44,7 @@ msgstr "เลือกและคลิก"
#: contrib/admin/media/js/SelectFilter2.js:59 #: contrib/admin/media/js/SelectFilter2.js:59
msgid "Clear all" msgid "Clear all"
msgstr "ล้างทั้งหมด" msgstr "ลทั้งหมด"
#: contrib/admin/media/js/calendar.js:24 #: contrib/admin/media/js/calendar.js:24
#: contrib/admin/media/js/dateparse.js:32 #: contrib/admin/media/js/dateparse.js:32
@ -52,11 +53,11 @@ msgstr "มกราคม กุมภาพันธ์ มีนาคม เ
#: 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"
msgstr "อา จ. อ. พ. พฤ. ศ. ส." msgstr "อา. จ. อ. พ. พฤ. ศ. ส."
#: 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 "อาทิตย์ จันทร์ อังคาร พุธ พฤหัส ศุกร์ เสาร์" msgstr "อาทิตย์ จันทร์ อังคาร พุธ พฤหัสบดี ศุกร์ เสาร์"
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34 #: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72 #: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
@ -70,7 +71,7 @@ msgstr "ซ่อน"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
msgid "Now" msgid "Now"
msgstr "เดี๋ยวนี้" msgstr "ขณะนี้"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
msgid "Clock" msgid "Clock"
@ -86,11 +87,11 @@ msgstr "เที่ยงคืน"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
msgid "6 a.m." msgid "6 a.m."
msgstr "6 นาฬิกา" msgstr "หกโมงเช้า"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
msgid "Noon" msgid "Noon"
msgstr "เที่ยง" msgstr "เที่ยงวัน"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
@ -108,7 +109,7 @@ msgstr "ปฏิทิน"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
msgid "Yesterday" msgid "Yesterday"
msgstr "เมื่อวานนี้" msgstr "เมื่อวาน"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
msgid "Tomorrow" msgid "Tomorrow"

View File

@ -5,9 +5,9 @@ msgstr ""
"Project-Id-Version: Django\n" "Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-12-02 22:52+0800\n" "POT-Creation-Date: 2008-12-02 22:52+0800\n"
"PO-Revision-Date: 2008-11-19 17:38+0800\n" "PO-Revision-Date: 2009-07-23 11:47+0800\n"
"Last-Translator: Liang Feng <hutuworm@gmail.com>\n" "Last-Translator: Qing Feng <paradise.qingfeng@gmail.com>\n"
"Language-Team: Simplified Chinese <hutuworm@gmail.com>\n" "Language-Team: Simplified Chinese <paradise.qingfeng@gmail.com>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -220,6 +220,20 @@ msgstr "简体中文"
msgid "Traditional Chinese" msgid "Traditional Chinese"
msgstr "繁体中文" msgstr "繁体中文"
#: contrib/admin/actions.py:60
#, python-format
msgid "Successfully deleted %(count)d %(items)s."
msgstr "删除了%(count)d的%(items)s"
#: contrib/admin/actions.py:67 contrib/admin/options.py:1027
msgid "Are you sure?"
msgstr "你确认吗?"
#: contrib/admin/actions.py:85
#, python-format
msgid "Delete selected %(verbose_name_plural)s"
msgstr "删除了选择的%(verbose_name_plural)s"
#: contrib/admin/filterspecs.py:44 #: contrib/admin/filterspecs.py:44
#, python-format #, python-format
msgid "" msgid ""
@ -377,10 +391,6 @@ msgstr "数据库错误"
msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "%(name)s \"%(obj)s\" 删除成功。" msgstr "%(name)s \"%(obj)s\" 删除成功。"
#: contrib/admin/options.py:695
msgid "Are you sure?"
msgstr "你确认吗?"
#: contrib/admin/options.py:724 #: contrib/admin/options.py:724
#, python-format #, python-format
msgid "Change history: %s" msgid "Change history: %s"
@ -640,6 +650,10 @@ msgstr "我的动作"
msgid "None available" msgid "None available"
msgstr "无可用的" msgstr "无可用的"
#: contrib/admin/templates/admin/index.html:72
msgid "Unknown content"
msgstr "未知内容"
#: contrib/admin/templates/admin/invalid_setup.html:7 #: contrib/admin/templates/admin/invalid_setup.html:7
msgid "" msgid ""
"Something's wrong with your database installation. Make sure the appropriate " "Something's wrong with your database installation. Make sure the appropriate "
@ -685,6 +699,15 @@ msgstr "该对象没有变更历史记录。可能从未通过这个管理站点
msgid "Show all" msgid "Show all"
msgstr "显示全部" msgstr "显示全部"
#: contrib/admin/templates/admin/pagination.html:11
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "保存"
#: contrib/admin/templates/admin/search_form.html:8
msgid "Search"
msgstr "搜索"
#: contrib/admin/templates/admin/search_form.html:8 #: contrib/admin/templates/admin/search_form.html:8
msgid "Go" msgid "Go"
msgstr "执行" msgstr "执行"
@ -701,10 +724,6 @@ msgstr[1] "%(counter)s 条结果"
msgid "%(full_result_count)s total" msgid "%(full_result_count)s total"
msgstr "总共 %(full_result_count)s" msgstr "总共 %(full_result_count)s"
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "保存"
#: contrib/admin/templates/admin/submit_line.html:5 #: contrib/admin/templates/admin/submit_line.html:5
msgid "Save as new" msgid "Save as new"
msgstr "保存为新的" msgstr "保存为新的"
@ -1347,6 +1366,16 @@ msgstr "内容"
msgid "Metadata" msgid "Metadata"
msgstr "元数据" msgstr "元数据"
#: contrib/comments/feeds.py:13
#, python-format
msgid "%(site_name)s comments"
msgstr "%(site_name)s的评论"
#: contrib/comments/feeds.py:23
#, python-format
msgid "Latest comments on %(site_name)s"
msgstr "%(site_name)s的最新评论"
#: contrib/comments/forms.py:19 #: contrib/comments/forms.py:19
#: contrib/comments/templates/comments/moderation_queue.html:34 #: contrib/comments/templates/comments/moderation_queue.html:34
msgid "Name" msgid "Name"
@ -1423,6 +1452,12 @@ msgid ""
"only." "only."
msgstr "此评论由一位验证用户发表,因此该用户名是只读的。" msgstr "此评论由一位验证用户发表,因此该用户名是只读的。"
#: contrib/comments/models.py:77
msgid "comments"
msgstr "评论"
#: contrib/comments/models.py:119
#: contrib/comments/models.py:124 #: contrib/comments/models.py:124
msgid "" msgid ""
"This comment was posted by an authenticated user and thus the email is read-" "This comment was posted by an authenticated user and thus the email is read-"
@ -1444,6 +1479,22 @@ msgstr ""
"\n" "\n"
"http://%(domain)s%(url)s" "http://%(domain)s%(url)s"
#: contrib/comments/models.py:170
msgid "flag"
msgstr "标记"
#: contrib/comments/models.py:171
msgid "date"
msgstr "标记时间"
#: contrib/comments/models.py:181
msgid "comment flag"
msgstr "评论标记"
#: contrib/comments/models.py:182
msgid "comment flags"
msgstr "评论标记"
#: contrib/comments/templates/comments/approve.html:4 #: contrib/comments/templates/comments/approve.html:4
msgid "Approve a comment" msgid "Approve a comment"
msgstr "批准评论" msgstr "批准评论"
@ -1574,10 +1625,6 @@ msgstr "或进行修改"
msgid "python model class name" msgid "python model class name"
msgstr "python 模型类名" msgstr "python 模型类名"
#: contrib/contenttypes/models.py:71
msgid "content type"
msgstr "内容类型"
#: contrib/contenttypes/models.py:72 #: contrib/contenttypes/models.py:72
msgid "content types" msgid "content types"
msgstr "内容类型" msgstr "内容类型"
@ -1655,6 +1702,14 @@ msgstr "无效几何信息。"
msgid "Invalid geometry type." msgid "Invalid geometry type."
msgstr "无效几何类型。" msgstr "无效几何类型。"
#: contrib/gis/forms/fields.py:20
msgid ""
"An error occurred when transforming the geometry to the SRID of the geometry "
"form field."
msgstr ""
"几何形状的SRID字段发生试图转换错误"
"ました。"
#: contrib/humanize/templatetags/humanize.py:19 #: contrib/humanize/templatetags/humanize.py:19
msgid "th" msgid "th"
msgstr "th" msgstr "th"
@ -2789,8 +2844,8 @@ msgid "Wrong checksum for the Tax Number (NIP)."
msgstr "税号NIP校验和错误。" msgstr "税号NIP校验和错误。"
#: contrib/localflavor/pl/forms.py:111 #: contrib/localflavor/pl/forms.py:111
msgid "National Business Register Number (REGON) consists of 7 or 9 digits." msgid "National Business Register Number (REGON) consists of 9 or 14 digits."
msgstr "国家商业注册号码REGON7 位或 9 位数字组成。" msgstr "国家商业注册号码REGON9 位或 14 位数字组成。"
#: contrib/localflavor/pl/forms.py:112 #: contrib/localflavor/pl/forms.py:112
msgid "Wrong checksum for the National Business Register Number (REGON)." msgid "Wrong checksum for the National Business Register Number (REGON)."
@ -3796,6 +3851,36 @@ msgstr "输入一个有效的 'slug',由字母、数字、下划线或横线
msgid "Order" msgid "Order"
msgstr "排序" msgstr "排序"
#: forms/models.py:367
#, python-format
msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s."
msgstr ""
"在%(date_field)s %(lookup)s 需要唯一的 %(field_name)s"
#: forms/models.py:594
#, python-format
msgid "Please correct the duplicate data for %(field)s."
msgstr "请修改%(field)s的重复数据"
#: forms/models.py:598
#, python-format
msgid "Please correct the duplicate data for %(field)s, which must be unique."
msgstr "请修改%(field)s的重复数据.这个字段必须唯一"
#: forms/models.py:604
#, python-format
msgid ""
"Please correct the duplicate data for %(field_name)s which must be unique "
"for the %(lookup)s in %(date_field)s."
msgstr "请修正%(field_name)s的重复数据。%(date_field)s %(lookup)s 在 %(field_name)s 必须保证唯一."
#: forms/models.py:612
msgid "Please correct the duplicate values below."
msgstr "请修正重复的数据."
#: forms/models.py:381 forms/models.py:389
#, python-format
#: forms/models.py:281 forms/models.py:290 #: forms/models.py:281 forms/models.py:290
#, python-format #, python-format
msgid "%(model_name)s with this %(field_label)s already exists." msgid "%(model_name)s with this %(field_label)s already exists."

View File

@ -9,8 +9,8 @@ msgstr ""
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-03-21 18:43+0800\n" "POT-Creation-Date: 2006-03-21 18:43+0800\n"
"PO-Revision-Date: 2006-09-25 08:35+0800\n" "PO-Revision-Date: 2006-09-25 08:35+0800\n"
"Last-Translator: limodou <limodou@gmail.com>\n" "Last-Translator: Qing Feng <paradise.qingfeng@gmail.com>\n"
"Language-Team: limodou <limodou@gmail.com>\n" "Language-Team: Qing Feng <paradise.qingfeng@gmail.com>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"

View File

@ -6,7 +6,16 @@ __all__ = ['handler404', 'handler500', 'include', 'patterns', 'url']
handler404 = 'django.views.defaults.page_not_found' handler404 = 'django.views.defaults.page_not_found'
handler500 = 'django.views.defaults.server_error' handler500 = 'django.views.defaults.server_error'
include = lambda urlconf_module: [urlconf_module] def include(arg, namespace=None, app_name=None):
if isinstance(arg, tuple):
# callable returning a namespace hint
if namespace:
raise ImproperlyConfigured('Cannot override the namespace for a dynamic module that provides a namespace')
urlconf_module, app_name, namespace = arg
else:
# No namespace hint - use manually provided namespace
urlconf_module = arg
return (urlconf_module, app_name, namespace)
def patterns(prefix, *args): def patterns(prefix, *args):
pattern_list = [] pattern_list = []
@ -19,9 +28,10 @@ def patterns(prefix, *args):
return pattern_list return pattern_list
def url(regex, view, kwargs=None, name=None, prefix=''): def url(regex, view, kwargs=None, name=None, prefix=''):
if type(view) == list: if isinstance(view, (list,tuple)):
# For include(...) processing. # For include(...) processing.
return RegexURLResolver(regex, view[0], kwargs) urlconf_module, app_name, namespace = view
return RegexURLResolver(regex, urlconf_module, kwargs, app_name=app_name, namespace=namespace)
else: else:
if isinstance(view, basestring): if isinstance(view, basestring):
if not view: if not view:

View File

@ -226,24 +226,24 @@ class ModelAdmin(BaseModelAdmin):
return self.admin_site.admin_view(view)(*args, **kwargs) return self.admin_site.admin_view(view)(*args, **kwargs)
return update_wrapper(wrapper, view) return update_wrapper(wrapper, view)
info = self.admin_site.name, self.model._meta.app_label, self.model._meta.module_name info = self.model._meta.app_label, self.model._meta.module_name
urlpatterns = patterns('', urlpatterns = patterns('',
url(r'^$', url(r'^$',
wrap(self.changelist_view), wrap(self.changelist_view),
name='%sadmin_%s_%s_changelist' % info), name='%s_%s_changelist' % info),
url(r'^add/$', url(r'^add/$',
wrap(self.add_view), wrap(self.add_view),
name='%sadmin_%s_%s_add' % info), name='%s_%s_add' % info),
url(r'^(.+)/history/$', url(r'^(.+)/history/$',
wrap(self.history_view), wrap(self.history_view),
name='%sadmin_%s_%s_history' % info), name='%s_%s_history' % info),
url(r'^(.+)/delete/$', url(r'^(.+)/delete/$',
wrap(self.delete_view), wrap(self.delete_view),
name='%sadmin_%s_%s_delete' % info), name='%s_%s_delete' % info),
url(r'^(.+)/$', url(r'^(.+)/$',
wrap(self.change_view), wrap(self.change_view),
name='%sadmin_%s_%s_change' % info), name='%s_%s_change' % info),
) )
return urlpatterns return urlpatterns
@ -582,11 +582,12 @@ class ModelAdmin(BaseModelAdmin):
'save_on_top': self.save_on_top, 'save_on_top': self.save_on_top,
'root_path': self.admin_site.root_path, 'root_path': self.admin_site.root_path,
}) })
context_instance = template.RequestContext(request, current_app=self.admin_site.name)
return render_to_response(self.change_form_template or [ return render_to_response(self.change_form_template or [
"admin/%s/%s/change_form.html" % (app_label, opts.object_name.lower()), "admin/%s/%s/change_form.html" % (app_label, opts.object_name.lower()),
"admin/%s/change_form.html" % app_label, "admin/%s/change_form.html" % app_label,
"admin/change_form.html" "admin/change_form.html"
], context, context_instance=template.RequestContext(request)) ], context, context_instance=context_instance)
def response_add(self, request, obj, post_url_continue='../%s/'): def response_add(self, request, obj, post_url_continue='../%s/'):
""" """
@ -977,11 +978,12 @@ class ModelAdmin(BaseModelAdmin):
'actions_on_bottom': self.actions_on_bottom, 'actions_on_bottom': self.actions_on_bottom,
} }
context.update(extra_context or {}) context.update(extra_context or {})
context_instance = template.RequestContext(request, current_app=self.admin_site.name)
return render_to_response(self.change_list_template or [ return render_to_response(self.change_list_template or [
'admin/%s/%s/change_list.html' % (app_label, opts.object_name.lower()), 'admin/%s/%s/change_list.html' % (app_label, opts.object_name.lower()),
'admin/%s/change_list.html' % app_label, 'admin/%s/change_list.html' % app_label,
'admin/change_list.html' 'admin/change_list.html'
], context, context_instance=template.RequestContext(request)) ], context, context_instance=context_instance)
def delete_view(self, request, object_id, extra_context=None): def delete_view(self, request, object_id, extra_context=None):
"The 'delete' admin view for this model." "The 'delete' admin view for this model."
@ -1032,11 +1034,12 @@ class ModelAdmin(BaseModelAdmin):
"app_label": app_label, "app_label": app_label,
} }
context.update(extra_context or {}) context.update(extra_context or {})
context_instance = template.RequestContext(request, current_app=self.admin_site.name)
return render_to_response(self.delete_confirmation_template or [ return render_to_response(self.delete_confirmation_template or [
"admin/%s/%s/delete_confirmation.html" % (app_label, opts.object_name.lower()), "admin/%s/%s/delete_confirmation.html" % (app_label, opts.object_name.lower()),
"admin/%s/delete_confirmation.html" % app_label, "admin/%s/delete_confirmation.html" % app_label,
"admin/delete_confirmation.html" "admin/delete_confirmation.html"
], context, context_instance=template.RequestContext(request)) ], context, context_instance=context_instance)
def history_view(self, request, object_id, extra_context=None): def history_view(self, request, object_id, extra_context=None):
"The 'history' admin view for this model." "The 'history' admin view for this model."
@ -1059,11 +1062,12 @@ class ModelAdmin(BaseModelAdmin):
'app_label': app_label, 'app_label': app_label,
} }
context.update(extra_context or {}) context.update(extra_context or {})
context_instance = template.RequestContext(request, current_app=self.admin_site.name)
return render_to_response(self.object_history_template or [ return render_to_response(self.object_history_template or [
"admin/%s/%s/object_history.html" % (app_label, opts.object_name.lower()), "admin/%s/%s/object_history.html" % (app_label, opts.object_name.lower()),
"admin/%s/object_history.html" % app_label, "admin/%s/object_history.html" % app_label,
"admin/object_history.html" "admin/object_history.html"
], context, context_instance=template.RequestContext(request)) ], context, context_instance=context_instance)
# #
# DEPRECATED methods. # DEPRECATED methods.

View File

@ -5,6 +5,7 @@ from django.contrib.admin import actions
from django.contrib.auth import authenticate, login from django.contrib.auth import authenticate, login
from django.db.models.base import ModelBase from django.db.models.base import ModelBase
from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ImproperlyConfigured
from django.core.urlresolvers import reverse
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
from django.utils.functional import update_wrapper from django.utils.functional import update_wrapper
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
@ -38,17 +39,14 @@ class AdminSite(object):
login_template = None login_template = None
app_index_template = None app_index_template = None
def __init__(self, name=None): def __init__(self, name=None, app_name='admin'):
self._registry = {} # model_class class -> admin_class instance self._registry = {} # model_class class -> admin_class instance
# TODO Root path is used to calculate urls under the old root() method self.root_path = None
# in order to maintain backwards compatibility we are leaving that in
# so root_path isn't needed, not sure what to do about this.
self.root_path = 'admin/'
if name is None: if name is None:
name = '' self.name = 'admin'
else: else:
name += '_' self.name = name
self.name = name self.app_name = app_name
self._actions = {'delete_selected': actions.delete_selected} self._actions = {'delete_selected': actions.delete_selected}
self._global_actions = self._actions.copy() self._global_actions = self._actions.copy()
@ -114,20 +112,20 @@ class AdminSite(object):
name = name or action.__name__ name = name or action.__name__
self._actions[name] = action self._actions[name] = action
self._global_actions[name] = action self._global_actions[name] = action
def disable_action(self, name): def disable_action(self, name):
""" """
Disable a globally-registered action. Raises KeyError for invalid names. Disable a globally-registered action. Raises KeyError for invalid names.
""" """
del self._actions[name] del self._actions[name]
def get_action(self, name): def get_action(self, name):
""" """
Explicitally get a registered global action wheather it's enabled or Explicitally get a registered global action wheather it's enabled or
not. Raises KeyError for invalid names. not. Raises KeyError for invalid names.
""" """
return self._global_actions[name] return self._global_actions[name]
def actions(self): def actions(self):
""" """
Get all the enabled actions as an iterable of (name, func). Get all the enabled actions as an iterable of (name, func).
@ -159,9 +157,9 @@ class AdminSite(object):
if 'django.core.context_processors.auth' not in settings.TEMPLATE_CONTEXT_PROCESSORS: if 'django.core.context_processors.auth' not in settings.TEMPLATE_CONTEXT_PROCESSORS:
raise ImproperlyConfigured("Put 'django.core.context_processors.auth' in your TEMPLATE_CONTEXT_PROCESSORS setting in order to use the admin application.") raise ImproperlyConfigured("Put 'django.core.context_processors.auth' in your TEMPLATE_CONTEXT_PROCESSORS setting in order to use the admin application.")
def admin_view(self, view): def admin_view(self, view, cacheable=False):
""" """
Decorator to create an "admin view attached to this ``AdminSite``. This Decorator to create an admin view attached to this ``AdminSite``. This
wraps the view and provides permission checking by calling wraps the view and provides permission checking by calling
``self.has_permission``. ``self.has_permission``.
@ -177,43 +175,49 @@ class AdminSite(object):
url(r'^my_view/$', self.admin_view(some_view)) url(r'^my_view/$', self.admin_view(some_view))
) )
return urls return urls
By default, admin_views are marked non-cacheable using the
``never_cache`` decorator. If the view can be safely cached, set
cacheable=True.
""" """
def inner(request, *args, **kwargs): def inner(request, *args, **kwargs):
if not self.has_permission(request): if not self.has_permission(request):
return self.login(request) return self.login(request)
return view(request, *args, **kwargs) return view(request, *args, **kwargs)
if not cacheable:
inner = never_cache(inner)
return update_wrapper(inner, view) return update_wrapper(inner, view)
def get_urls(self): def get_urls(self):
from django.conf.urls.defaults import patterns, url, include from django.conf.urls.defaults import patterns, url, include
def wrap(view): def wrap(view, cacheable=False):
def wrapper(*args, **kwargs): def wrapper(*args, **kwargs):
return self.admin_view(view)(*args, **kwargs) return self.admin_view(view, cacheable)(*args, **kwargs)
return update_wrapper(wrapper, view) return update_wrapper(wrapper, view)
# Admin-site-wide views. # Admin-site-wide views.
urlpatterns = patterns('', urlpatterns = patterns('',
url(r'^$', url(r'^$',
wrap(self.index), wrap(self.index),
name='%sadmin_index' % self.name), name='index'),
url(r'^logout/$', url(r'^logout/$',
wrap(self.logout), wrap(self.logout),
name='%sadmin_logout'), name='logout'),
url(r'^password_change/$', url(r'^password_change/$',
wrap(self.password_change), wrap(self.password_change, cacheable=True),
name='%sadmin_password_change' % self.name), name='password_change'),
url(r'^password_change/done/$', url(r'^password_change/done/$',
wrap(self.password_change_done), wrap(self.password_change_done, cacheable=True),
name='%sadmin_password_change_done' % self.name), name='password_change_done'),
url(r'^jsi18n/$', url(r'^jsi18n/$',
wrap(self.i18n_javascript), wrap(self.i18n_javascript, cacheable=True),
name='%sadmin_jsi18n' % self.name), name='jsi18n'),
url(r'^r/(?P<content_type_id>\d+)/(?P<object_id>.+)/$', url(r'^r/(?P<content_type_id>\d+)/(?P<object_id>.+)/$',
'django.views.defaults.shortcut'), 'django.views.defaults.shortcut'),
url(r'^(?P<app_label>\w+)/$', url(r'^(?P<app_label>\w+)/$',
wrap(self.app_index), wrap(self.app_index),
name='%sadmin_app_list' % self.name), name='app_list')
) )
# Add in each model's views. # Add in each model's views.
@ -225,7 +229,7 @@ class AdminSite(object):
return urlpatterns return urlpatterns
def urls(self): def urls(self):
return self.get_urls() return self.get_urls(), self.app_name, self.name
urls = property(urls) urls = property(urls)
def password_change(self, request): def password_change(self, request):
@ -233,8 +237,11 @@ class AdminSite(object):
Handles the "change password" task -- both form display and validation. Handles the "change password" task -- both form display and validation.
""" """
from django.contrib.auth.views import password_change from django.contrib.auth.views import password_change
return password_change(request, if self.root_path is not None:
post_change_redirect='%spassword_change/done/' % self.root_path) url = '%spassword_change/done/' % self.root_path
else:
url = reverse('admin:password_change_done', current_app=self.name)
return password_change(request, post_change_redirect=url)
def password_change_done(self, request): def password_change_done(self, request):
""" """
@ -362,8 +369,9 @@ class AdminSite(object):
'root_path': self.root_path, 'root_path': self.root_path,
} }
context.update(extra_context or {}) context.update(extra_context or {})
context_instance = template.RequestContext(request, current_app=self.name)
return render_to_response(self.index_template or 'admin/index.html', context, return render_to_response(self.index_template or 'admin/index.html', context,
context_instance=template.RequestContext(request) context_instance=context_instance
) )
index = never_cache(index) index = never_cache(index)
@ -376,8 +384,9 @@ class AdminSite(object):
'root_path': self.root_path, 'root_path': self.root_path,
} }
context.update(extra_context or {}) context.update(extra_context or {})
context_instance = template.RequestContext(request, current_app=self.name)
return render_to_response(self.login_template or 'admin/login.html', context, return render_to_response(self.login_template or 'admin/login.html', context,
context_instance=template.RequestContext(request) context_instance=context_instance
) )
def app_index(self, request, app_label, extra_context=None): def app_index(self, request, app_label, extra_context=None):
@ -419,9 +428,10 @@ class AdminSite(object):
'root_path': self.root_path, 'root_path': self.root_path,
} }
context.update(extra_context or {}) context.update(extra_context or {})
context_instance = template.RequestContext(request, current_app=self.name)
return render_to_response(self.app_index_template or ('admin/%s/app_index.html' % app_label, return render_to_response(self.app_index_template or ('admin/%s/app_index.html' % app_label,
'admin/app_index.html'), context, 'admin/app_index.html'), context,
context_instance=template.RequestContext(request) context_instance=context_instance
) )
def root(self, request, url): def root(self, request, url):

View File

@ -23,7 +23,30 @@
{% block branding %}{% endblock %} {% block branding %}{% endblock %}
</div> </div>
{% if user.is_authenticated and user.is_staff %} {% if user.is_authenticated and user.is_staff %}
<div id="user-tools">{% trans 'Welcome,' %} <strong>{% firstof user.first_name user.username %}</strong>. {% block userlinks %}{% url django-admindocs-docroot as docsroot %}{% if docsroot %}<a href="{{ docsroot }}">{% trans 'Documentation' %}</a> / {% endif %}<a href="{{ root_path }}password_change/">{% trans 'Change password' %}</a> / <a href="{{ root_path }}logout/">{% trans 'Log out' %}</a>{% endblock %}</div> <div id="user-tools">
{% trans 'Welcome,' %}
<strong>{% firstof user.first_name user.username %}</strong>.
{% block userlinks %}
{% url django-admindocs-docroot as docsroot %}
{% if docsroot %}
<a href="{{ docsroot }}">{% trans 'Documentation' %}</a> /
{% endif %}
{% url admin:password_change as password_change_url %}
{% if password_change_url %}
<a href="{{ password_change_url }}">
{% else %}
<a href="{{ root_path }}password_change/">
{% endif %}
{% trans 'Change password' %}</a> /
{% url admin:logout as logout_url %}
{% if logout_url %}
<a href="{{ logout_url }}">
{% else %}
<a href="{{ root_path }}logout/">
{% endif %}
{% trans 'Log out' %}</a>
{% endblock %}
</div>
{% endif %} {% endif %}
{% block nav-global %}{% endblock %} {% block nav-global %}{% endblock %}
</div> </div>

View File

@ -125,7 +125,7 @@ class ForeignKeyRawIdWidget(forms.TextInput):
if value: if value:
output.append(self.label_for_value(value)) output.append(self.label_for_value(value))
return mark_safe(u''.join(output)) return mark_safe(u''.join(output))
def base_url_parameters(self): def base_url_parameters(self):
params = {} params = {}
if self.rel.limit_choices_to: if self.rel.limit_choices_to:
@ -137,14 +137,14 @@ class ForeignKeyRawIdWidget(forms.TextInput):
v = str(v) v = str(v)
items.append((k, v)) items.append((k, v))
params.update(dict(items)) params.update(dict(items))
return params return params
def url_parameters(self): def url_parameters(self):
from django.contrib.admin.views.main import TO_FIELD_VAR from django.contrib.admin.views.main import TO_FIELD_VAR
params = self.base_url_parameters() params = self.base_url_parameters()
params.update({TO_FIELD_VAR: self.rel.get_related_field().name}) params.update({TO_FIELD_VAR: self.rel.get_related_field().name})
return params return params
def label_for_value(self, value): def label_for_value(self, value):
key = self.rel.get_related_field().name key = self.rel.get_related_field().name
obj = self.rel.to._default_manager.get(**{key: value}) obj = self.rel.to._default_manager.get(**{key: value})
@ -165,10 +165,10 @@ class ManyToManyRawIdWidget(ForeignKeyRawIdWidget):
else: else:
value = '' value = ''
return super(ManyToManyRawIdWidget, self).render(name, value, attrs) return super(ManyToManyRawIdWidget, self).render(name, value, attrs)
def url_parameters(self): def url_parameters(self):
return self.base_url_parameters() return self.base_url_parameters()
def label_for_value(self, value): def label_for_value(self, value):
return '' return ''
@ -222,10 +222,10 @@ class RelatedFieldWidgetWrapper(forms.Widget):
rel_to = self.rel.to rel_to = self.rel.to
info = (rel_to._meta.app_label, rel_to._meta.object_name.lower()) info = (rel_to._meta.app_label, rel_to._meta.object_name.lower())
try: try:
related_info = (self.admin_site.name,) + info related_url = reverse('admin:%s_%s_add' % info, current_app=self.admin_site.name)
related_url = reverse('%sadmin_%s_%s_add' % related_info)
except NoReverseMatch: except NoReverseMatch:
related_url = '../../../%s/%s/add/' % info info = (self.admin_site.root_path, rel_to._meta.app_label, rel_to._meta.object_name.lower())
related_url = '%s%s/%s/add/' % info
self.widget.choices = self.choices self.widget.choices = self.choices
output = [self.widget.render(name, value, *args, **kwargs)] output = [self.widget.render(name, value, *args, **kwargs)]
if rel_to in self.admin_site._registry: # If the related object has an admin interface: if rel_to in self.admin_site._registry: # If the related object has an admin interface:

View File

@ -1,6 +1,6 @@
{% extends "admin/base_site.html" %} {% extends "admin/base_site.html" %}
{% load i18n %} {% load i18n %}
{% block breadcrumbs %}<div class="breadcrumbs"><a href="../">Home</a> &rsaquo; Documentation</div>{% endblock %} {% block breadcrumbs %}<div class="breadcrumbs"><a href="{{ root_path }}">Home</a> &rsaquo; Documentation</div>{% endblock %}
{% block title %}Documentation{% endblock %} {% block title %}Documentation{% endblock %}
{% block content %} {% block content %}

View File

@ -22,11 +22,14 @@ class GenericSite(object):
name = 'my site' name = 'my site'
def get_root_path(): def get_root_path():
from django.contrib import admin
try: try:
return urlresolvers.reverse(admin.site.root, args=['']) return urlresolvers.reverse('admin:index')
except urlresolvers.NoReverseMatch: except urlresolvers.NoReverseMatch:
return getattr(settings, "ADMIN_SITE_ROOT_URL", "/admin/") from django.contrib import admin
try:
return urlresolvers.reverse(admin.site.root, args=[''])
except urlresolvers.NoReverseMatch:
return getattr(settings, "ADMIN_SITE_ROOT_URL", "/admin/")
def doc_index(request): def doc_index(request):
if not utils.docutils_is_available: if not utils.docutils_is_available:
@ -179,7 +182,7 @@ model_index = staff_member_required(model_index)
def model_detail(request, app_label, model_name): def model_detail(request, app_label, model_name):
if not utils.docutils_is_available: if not utils.docutils_is_available:
return missing_docutils_page(request) return missing_docutils_page(request)
# Get the model class. # Get the model class.
try: try:
app_mod = models.get_app(app_label) app_mod = models.get_app(app_label)

View File

@ -19,6 +19,9 @@ class GeoManager(Manager):
def centroid(self, *args, **kwargs): def centroid(self, *args, **kwargs):
return self.get_query_set().centroid(*args, **kwargs) return self.get_query_set().centroid(*args, **kwargs)
def collect(self, *args, **kwargs):
return self.get_query_set().collect(*args, **kwargs)
def difference(self, *args, **kwargs): def difference(self, *args, **kwargs):
return self.get_query_set().difference(*args, **kwargs) return self.get_query_set().difference(*args, **kwargs)

View File

@ -62,6 +62,14 @@ class GeoQuerySet(QuerySet):
""" """
return self._geom_attribute('centroid', **kwargs) return self._geom_attribute('centroid', **kwargs)
def collect(self, **kwargs):
"""
Performs an aggregate collect operation on the given geometry field.
This is analagous to a union operation, but much faster because
boundaries are not dissolved.
"""
return self._spatial_aggregate(aggregates.Collect, **kwargs)
def difference(self, geom, **kwargs): def difference(self, geom, **kwargs):
""" """
Returns the spatial difference of the geographic field in a `difference` Returns the spatial difference of the geographic field in a `difference`
@ -117,11 +125,19 @@ class GeoQuerySet(QuerySet):
if not isinstance(precision, (int, long)): if not isinstance(precision, (int, long)):
raise TypeError('Precision keyword must be set with an integer.') raise TypeError('Precision keyword must be set with an integer.')
# Setting the options flag # Setting the options flag -- which depends on which version of
options = 0 # PostGIS we're using.
if crs and bbox: options = 3 major, minor1, minor2 = SpatialBackend.version
elif crs: options = 1 if major >=1 and (minor1 >= 4):
elif bbox: options = 2 options = 0
if crs and bbox: options = 3
elif bbox: options = 1
elif crs: options = 2
else:
options = 0
if crs and bbox: options = 3
elif crs: options = 1
elif bbox: options = 2
s = {'desc' : 'GeoJSON', s = {'desc' : 'GeoJSON',
'procedure_args' : {'precision' : precision, 'options' : options}, 'procedure_args' : {'precision' : precision, 'options' : options},
'procedure_fmt' : '%(geo_col)s,%(precision)s,%(options)s', 'procedure_fmt' : '%(geo_col)s,%(precision)s,%(options)s',

View File

@ -13,7 +13,9 @@ from django.contrib.gis.measure import Area, Distance
ALL_TERMS = sql.constants.QUERY_TERMS.copy() ALL_TERMS = sql.constants.QUERY_TERMS.copy()
ALL_TERMS.update(SpatialBackend.gis_terms) ALL_TERMS.update(SpatialBackend.gis_terms)
# Pulling out other needed constants/routines to avoid attribute lookups.
TABLE_NAME = sql.constants.TABLE_NAME TABLE_NAME = sql.constants.TABLE_NAME
get_proxied_model = sql.query.get_proxied_model
class GeoQuery(sql.Query): class GeoQuery(sql.Query):
""" """
@ -153,7 +155,9 @@ class GeoQuery(sql.Query):
opts = self.model._meta opts = self.model._meta
aliases = set() aliases = set()
only_load = self.deferred_to_columns() only_load = self.deferred_to_columns()
proxied_model = opts.proxy and opts.proxy_for_model or 0 # Skip all proxy to the root proxied model
proxied_model = get_proxied_model(opts)
if start_alias: if start_alias:
seen = {None: start_alias} seen = {None: start_alias}
for field, model in opts.get_fields_with_model(): for field, model in opts.get_fields_with_model():
@ -205,6 +209,10 @@ class GeoQuery(sql.Query):
""" """
values = [] values = []
aliases = self.extra_select.keys() aliases = self.extra_select.keys()
if self.aggregates:
# If we have an aggregate annotation, must extend the aliases
# so their corresponding row values are included.
aliases.extend([None for i in xrange(len(self.aggregates))])
# Have to set a starting row number offset that is used for # Have to set a starting row number offset that is used for
# determining the correct starting row index -- needed for # determining the correct starting row index -- needed for

View File

@ -8,6 +8,9 @@ from django.contrib.gis.gdal.prototypes.errcheck import \
check_arg_errcode, check_errcode, check_geom, check_geom_offset, \ check_arg_errcode, check_errcode, check_geom, check_geom_offset, \
check_pointer, check_srs, check_str_arg, check_string, check_const_string check_pointer, check_srs, check_str_arg, check_string, check_const_string
class gdal_char_p(c_char_p):
pass
def double_output(func, argtypes, errcheck=False, strarg=False): def double_output(func, argtypes, errcheck=False, strarg=False):
"Generates a ctypes function that returns a double value." "Generates a ctypes function that returns a double value."
func.argtypes = argtypes func.argtypes = argtypes
@ -77,9 +80,9 @@ def string_output(func, argtypes, offset=-1, str_result=False):
""" """
func.argtypes = argtypes func.argtypes = argtypes
if str_result: if str_result:
# String is the result, don't explicitly define # Use subclass of c_char_p so the error checking routine
# the argument type so we can get the pointer. # can free the memory at the pointer's address.
pass func.restype = gdal_char_p
else: else:
# Error code is returned # Error code is returned
func.restype = c_int func.restype = c_int

View File

@ -10,6 +10,7 @@ __all__ = ['geos_boundary', 'geos_buffer', 'geos_centroid', 'geos_convexhull',
from ctypes import c_char_p, c_double, c_int from ctypes import c_char_p, c_double, c_int
from django.contrib.gis.geos.libgeos import lgeos, GEOM_PTR, GEOS_PREPARE from django.contrib.gis.geos.libgeos import lgeos, GEOM_PTR, GEOS_PREPARE
from django.contrib.gis.geos.prototypes.errcheck import check_geom, check_string from django.contrib.gis.geos.prototypes.errcheck import check_geom, check_string
from django.contrib.gis.geos.prototypes.geom import geos_char_p
def topology(func, *args): def topology(func, *args):
"For GEOS unary topology functions." "For GEOS unary topology functions."
@ -38,6 +39,7 @@ geos_union = topology(lgeos.GEOSUnion, GEOM_PTR)
# GEOSRelate returns a string, not a geometry. # GEOSRelate returns a string, not a geometry.
geos_relate = lgeos.GEOSRelate geos_relate = lgeos.GEOSRelate
geos_relate.argtypes = [GEOM_PTR, GEOM_PTR] geos_relate.argtypes = [GEOM_PTR, GEOM_PTR]
geos_relate.restype = geos_char_p
geos_relate.errcheck = check_string geos_relate.errcheck = check_string
# Routines only in GEOS 3.1+ # Routines only in GEOS 3.1+

View File

@ -148,15 +148,16 @@ class GeoModelTest(unittest.TestCase):
ptown1 = City.objects.gml(field_name='point', precision=9).get(name='Pueblo') ptown1 = City.objects.gml(field_name='point', precision=9).get(name='Pueblo')
ptown2 = City.objects.gml(precision=9).get(name='Pueblo') ptown2 = City.objects.gml(precision=9).get(name='Pueblo')
import re
if SpatialBackend.oracle: if SpatialBackend.oracle:
# No precision parameter for Oracle :-/ # No precision parameter for Oracle :-/
import re gml_regex = re.compile(r'^<gml:Point srsName="SDO:4326" xmlns:gml="http://www.opengis.net/gml"><gml:coordinates decimal="\." cs="," ts=" ">-104.60925\d+,38.25500\d+ </gml:coordinates></gml:Point>')
gml_regex = re.compile(r'<gml:Point srsName="SDO:4326" xmlns:gml="http://www.opengis.net/gml"><gml:coordinates decimal="\." cs="," ts=" ">-104.60925\d+,38.25500\d+ </gml:coordinates></gml:Point>')
for ptown in [ptown1, ptown2]: for ptown in [ptown1, ptown2]:
self.assertEqual(True, bool(gml_regex.match(ptown.gml))) self.failUnless(gml_regex.match(ptown.gml))
else: else:
gml_regex = re.compile(r'^<gml:Point srsName="EPSG:4326"><gml:coordinates>-104\.60925\d+,38\.255001</gml:coordinates></gml:Point>')
for ptown in [ptown1, ptown2]: for ptown in [ptown1, ptown2]:
self.assertEqual('<gml:Point srsName="EPSG:4326"><gml:coordinates>-104.609252,38.255001</gml:coordinates></gml:Point>', ptown.gml) self.failUnless(gml_regex.match(ptown.gml))
@no_spatialite @no_spatialite
@no_oracle @no_oracle
@ -167,28 +168,38 @@ class GeoModelTest(unittest.TestCase):
if not SpatialBackend.geojson: if not SpatialBackend.geojson:
return return
major, minor1, minor2 = SpatialBackend.version
if major >=1 and minor1 >= 4:
pueblo_json = '{"type":"Point","coordinates":[-104.609252,38.255001]}'
houston_json = '{"type":"Point","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"coordinates":[-95.363151,29.763374]}'
victoria_json = '{"type":"Point","bbox":[-123.30519600,48.46261100,-123.30519600,48.46261100],"coordinates":[-123.305196,48.462611]}'
chicago_json = '{"type":"Point","crs":{"type":"name","properties":{"name":"EPSG:4326"}},"bbox":[-87.65018,41.85039,-87.65018,41.85039],"coordinates":[-87.65018,41.85039]}'
else:
pueblo_json = '{"type":"Point","coordinates":[-104.60925200,38.25500100]}'
houston_json = '{"type":"Point","crs":{"type":"EPSG","properties":{"EPSG":4326}},"coordinates":[-95.36315100,29.76337400]}'
victoria_json = '{"type":"Point","bbox":[-123.30519600,48.46261100,-123.30519600,48.46261100],"coordinates":[-123.30519600,48.46261100]}'
chicago_json = '{"type":"Point","crs":{"type":"EPSG","properties":{"EPSG":4326}},"bbox":[-87.65018,41.85039,-87.65018,41.85039],"coordinates":[-87.65018,41.85039]}'
# Precision argument should only be an integer # Precision argument should only be an integer
self.assertRaises(TypeError, City.objects.geojson, precision='foo') self.assertRaises(TypeError, City.objects.geojson, precision='foo')
# Reference queries and values. # Reference queries and values.
# SELECT ST_AsGeoJson("geoapp_city"."point", 8, 0) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Pueblo'; # SELECT ST_AsGeoJson("geoapp_city"."point", 8, 0) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Pueblo';
json = '{"type":"Point","coordinates":[-104.60925200,38.25500100]}' self.assertEqual(pueblo_json, City.objects.geojson().get(name='Pueblo').geojson)
self.assertEqual(City.objects.geojson().get(name='Pueblo').geojson, json)
# SELECT ST_AsGeoJson("geoapp_city"."point", 8, 1) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Houston'; # 1.3.x: SELECT ST_AsGeoJson("geoapp_city"."point", 8, 1) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Houston';
json = '{"type":"Point","crs":{"type":"EPSG","properties":{"EPSG":4326}},"coordinates":[-95.36315100,29.76337400]}' # 1.4.x: SELECT ST_AsGeoJson("geoapp_city"."point", 8, 2) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Houston';
# This time we want to include the CRS by using the `crs` keyword. # This time we want to include the CRS by using the `crs` keyword.
self.assertEqual(City.objects.geojson(crs=True, model_att='json').get(name='Houston').json, json) self.assertEqual(houston_json, City.objects.geojson(crs=True, model_att='json').get(name='Houston').json)
# SELECT ST_AsGeoJson("geoapp_city"."point", 8, 2) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Victoria'; # 1.3.x: SELECT ST_AsGeoJson("geoapp_city"."point", 8, 2) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Victoria';
json = '{"type":"Point","bbox":[-123.30519600,48.46261100,-123.30519600,48.46261100],"coordinates":[-123.30519600,48.46261100]}' # 1.4.x: SELECT ST_AsGeoJson("geoapp_city"."point", 8, 1) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Houston';
# This time we include the bounding box by using the `bbox` keyword. # This time we include the bounding box by using the `bbox` keyword.
self.assertEqual(City.objects.geojson(bbox=True).get(name='Victoria').geojson, json) self.assertEqual(victoria_json, City.objects.geojson(bbox=True).get(name='Victoria').geojson)
# SELECT ST_AsGeoJson("geoapp_city"."point", 5, 3) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Chicago'; # 1.(3|4).x: SELECT ST_AsGeoJson("geoapp_city"."point", 5, 3) FROM "geoapp_city" WHERE "geoapp_city"."name" = 'Chicago';
json = '{"type":"Point","crs":{"type":"EPSG","properties":{"EPSG":4326}},"bbox":[-87.65018,41.85039,-87.65018,41.85039],"coordinates":[-87.65018,41.85039]}'
# Finally, we set every available keyword. # Finally, we set every available keyword.
self.assertEqual(City.objects.geojson(bbox=True, crs=True, precision=5).get(name='Chicago').geojson, json) self.assertEqual(chicago_json, City.objects.geojson(bbox=True, crs=True, precision=5).get(name='Chicago').geojson)
@no_oracle @no_oracle
def test03d_svg(self): def test03d_svg(self):

View File

@ -1,7 +1,7 @@
import os, unittest import os, unittest
from django.contrib.gis.geos import * from django.contrib.gis.geos import *
from django.contrib.gis.db.backend import SpatialBackend from django.contrib.gis.db.backend import SpatialBackend
from django.contrib.gis.db.models import Count, Extent, F, Union from django.contrib.gis.db.models import Collect, Count, Extent, F, Union
from django.contrib.gis.tests.utils import no_mysql, no_oracle, no_spatialite from django.contrib.gis.tests.utils import no_mysql, no_oracle, no_spatialite
from django.conf import settings from django.conf import settings
from models import City, Location, DirectoryEntry, Parcel, Book, Author from models import City, Location, DirectoryEntry, Parcel, Book, Author
@ -39,10 +39,7 @@ class RelatedGeoModelTest(unittest.TestCase):
"Testing the `transform` GeoQuerySet method on related geographic models." "Testing the `transform` GeoQuerySet method on related geographic models."
# All the transformations are to state plane coordinate systems using # All the transformations are to state plane coordinate systems using
# US Survey Feet (thus a tolerance of 0 implies error w/in 1 survey foot). # US Survey Feet (thus a tolerance of 0 implies error w/in 1 survey foot).
if SpatialBackend.postgis: tol = 0
tol = 3
else:
tol = 0
def check_pnt(ref, pnt): def check_pnt(ref, pnt):
self.assertAlmostEqual(ref.x, pnt.x, tol) self.assertAlmostEqual(ref.x, pnt.x, tol)
@ -231,8 +228,12 @@ class RelatedGeoModelTest(unittest.TestCase):
q = pickle.loads(q_str) q = pickle.loads(q_str)
self.assertEqual(GeoQuery, q.__class__) self.assertEqual(GeoQuery, q.__class__)
def test12_count(self): # TODO: fix on Oracle -- get the following error because the SQL is ordered
"Testing `Count` aggregate use with the `GeoManager`. See #11087." # by a geometry object, which Oracle apparently doesn't like:
# ORA-22901: cannot compare nested table or VARRAY or LOB attributes of an object type
@no_oracle
def test12a_count(self):
"Testing `Count` aggregate use with the `GeoManager` on geo-fields."
# Creating a new City, 'Fort Worth', that uses the same location # Creating a new City, 'Fort Worth', that uses the same location
# as Dallas. # as Dallas.
dallas = City.objects.get(name='Dallas') dallas = City.objects.get(name='Dallas')
@ -242,6 +243,8 @@ class RelatedGeoModelTest(unittest.TestCase):
loc = Location.objects.annotate(num_cities=Count('city')).get(id=dallas.location.id) loc = Location.objects.annotate(num_cities=Count('city')).get(id=dallas.location.id)
self.assertEqual(2, loc.num_cities) self.assertEqual(2, loc.num_cities)
def test12b_count(self):
"Testing `Count` aggregate use with the `GeoManager` on non geo-fields. See #11087."
# Creating some data for the Book/Author non-geo models that # Creating some data for the Book/Author non-geo models that
# use GeoManager. See #11087. # use GeoManager. See #11087.
tp = Author.objects.create(name='Trevor Paglen') tp = Author.objects.create(name='Trevor Paglen')
@ -250,13 +253,19 @@ class RelatedGeoModelTest(unittest.TestCase):
Book.objects.create(title='Blank Spots on the Map', author=tp) Book.objects.create(title='Blank Spots on the Map', author=tp)
wp = Author.objects.create(name='William Patry') wp = Author.objects.create(name='William Patry')
Book.objects.create(title='Patry on Copyright', author=wp) Book.objects.create(title='Patry on Copyright', author=wp)
# Should only be one author (Trevor Paglen) returned by this query, and # Should only be one author (Trevor Paglen) returned by this query, and
# the annotation should have 3 for the number of books. # the annotation should have 3 for the number of books. Also testing
# with a `GeoValuesQuerySet` (see #11489).
qs = Author.objects.annotate(num_books=Count('books')).filter(num_books__gt=1) qs = Author.objects.annotate(num_books=Count('books')).filter(num_books__gt=1)
vqs = Author.objects.values('name').annotate(num_books=Count('books')).filter(num_books__gt=1)
self.assertEqual(1, len(qs)) self.assertEqual(1, len(qs))
self.assertEqual(3, qs[0].num_books) self.assertEqual(3, qs[0].num_books)
self.assertEqual(1, len(vqs))
self.assertEqual(3, vqs[0]['num_books'])
# TODO: The phantom model does appear on Oracle.
@no_oracle
def test13_select_related_null_fk(self): def test13_select_related_null_fk(self):
"Testing `select_related` on a nullable ForeignKey via `GeoManager`. See #11381." "Testing `select_related` on a nullable ForeignKey via `GeoManager`. See #11381."
no_author = Book.objects.create(title='Without Author') no_author = Book.objects.create(title='Without Author')
@ -264,6 +273,26 @@ class RelatedGeoModelTest(unittest.TestCase):
# Should be `None`, and not a 'dummy' model. # Should be `None`, and not a 'dummy' model.
self.assertEqual(None, b.author) self.assertEqual(None, b.author)
@no_mysql
@no_oracle
@no_spatialite
def test14_collect(self):
"Testing the `collect` GeoQuerySet method and `Collect` aggregate."
# Reference query:
# SELECT AsText(ST_Collect("relatedapp_location"."point")) FROM "relatedapp_city" LEFT OUTER JOIN
# "relatedapp_location" ON ("relatedapp_city"."location_id" = "relatedapp_location"."id")
# WHERE "relatedapp_city"."state" = 'TX';
ref_geom = fromstr('MULTIPOINT(-97.516111 33.058333,-96.801611 32.782057,-95.363151 29.763374,-96.801611 32.782057)')
c1 = City.objects.filter(state='TX').collect(field_name='location__point')
c2 = City.objects.filter(state='TX').aggregate(Collect('location__point'))['location__point__collect']
for coll in (c1, c2):
# Even though Dallas and Ft. Worth share same point, Collect doesn't
# consolidate -- that's why 4 points in MultiPoint.
self.assertEqual(4, len(coll))
self.assertEqual(ref_geom, coll)
# TODO: Related tests for KML, GML, and distance lookups. # TODO: Related tests for KML, GML, and distance lookups.
def suite(): def suite():

View File

@ -1,4 +1,5 @@
import unittest import unittest
from django.contrib.gis.db.backend import SpatialBackend
from django.contrib.gis.tests.utils import mysql, no_mysql, oracle, postgis, spatialite from django.contrib.gis.tests.utils import mysql, no_mysql, oracle, postgis, spatialite
if not mysql: if not mysql:
from django.contrib.gis.models import SpatialRefSys from django.contrib.gis.models import SpatialRefSys
@ -7,6 +8,7 @@ test_srs = ({'srid' : 4326,
'auth_name' : ('EPSG', True), 'auth_name' : ('EPSG', True),
'auth_srid' : 4326, 'auth_srid' : 4326,
'srtext' : 'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]', 'srtext' : 'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]',
'srtext14' : 'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]',
'proj4' : '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ', 'proj4' : '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ',
'spheroid' : 'WGS 84', 'name' : 'WGS 84', 'spheroid' : 'WGS 84', 'name' : 'WGS 84',
'geographic' : True, 'projected' : False, 'spatialite' : True, 'geographic' : True, 'projected' : False, 'spatialite' : True,
@ -17,6 +19,7 @@ test_srs = ({'srid' : 4326,
'auth_name' : ('EPSG', False), 'auth_name' : ('EPSG', False),
'auth_srid' : 32140, 'auth_srid' : 32140,
'srtext' : 'PROJCS["NAD83 / Texas South Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",600000],PARAMETER["false_northing",4000000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","32140"]]', 'srtext' : 'PROJCS["NAD83 / Texas South Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",600000],PARAMETER["false_northing",4000000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","32140"]]',
'srtext14': 'PROJCS["NAD83 / Texas South Central",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Lambert_Conformal_Conic_2SP"],PARAMETER["standard_parallel_1",30.28333333333333],PARAMETER["standard_parallel_2",28.38333333333333],PARAMETER["latitude_of_origin",27.83333333333333],PARAMETER["central_meridian",-99],PARAMETER["false_easting",600000],PARAMETER["false_northing",4000000],AUTHORITY["EPSG","32140"],AXIS["X",EAST],AXIS["Y",NORTH]]',
'proj4' : '+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs ', 'proj4' : '+proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs ',
'spheroid' : 'GRS 1980', 'name' : 'NAD83 / Texas South Central', 'spheroid' : 'GRS 1980', 'name' : 'NAD83 / Texas South Central',
'geographic' : False, 'projected' : True, 'spatialite' : False, 'geographic' : False, 'projected' : True, 'spatialite' : False,
@ -25,6 +28,10 @@ test_srs = ({'srid' : 4326,
}, },
) )
if SpatialBackend.postgis:
major, minor1, minor2 = SpatialBackend.version
POSTGIS_14 = major >=1 and minor1 >= 4
class SpatialRefSysTest(unittest.TestCase): class SpatialRefSysTest(unittest.TestCase):
@no_mysql @no_mysql
@ -45,7 +52,11 @@ class SpatialRefSysTest(unittest.TestCase):
# No proj.4 and different srtext on oracle backends :( # No proj.4 and different srtext on oracle backends :(
if postgis: if postgis:
self.assertEqual(sd['srtext'], srs.wkt) if POSTGIS_14:
srtext = sd['srtext14']
else:
srtext = sd['srtext']
self.assertEqual(srtext, srs.wkt)
self.assertEqual(sd['proj4'], srs.proj4text) self.assertEqual(sd['proj4'], srs.proj4text)
@no_mysql @no_mysql
@ -68,7 +79,11 @@ class SpatialRefSysTest(unittest.TestCase):
self.assertEqual(sd['proj4'], srs.proj4) self.assertEqual(sd['proj4'], srs.proj4)
# No `srtext` field in the `spatial_ref_sys` table in SpatiaLite # No `srtext` field in the `spatial_ref_sys` table in SpatiaLite
if not spatialite: if not spatialite:
self.assertEqual(sd['srtext'], srs.wkt) if POSTGIS_14:
srtext = sd['srtext14']
else:
srtext = sd['srtext']
self.assertEqual(srtext, srs.wkt)
@no_mysql @no_mysql
def test03_ellipsoid(self): def test03_ellipsoid(self):

View File

@ -73,7 +73,8 @@ class Command(BaseCommand):
model_list = get_models(app) model_list = get_models(app)
for model in model_list: for model in model_list:
objects.extend(model._default_manager.all()) if not model._meta.proxy:
objects.extend(model._default_manager.all())
try: try:
return serializers.serialize(format, objects, indent=indent) return serializers.serialize(format, objects, indent=indent)

View File

@ -56,8 +56,7 @@ class Command(BaseCommand):
translation.activate(settings.LANGUAGE_CODE) translation.activate(settings.LANGUAGE_CODE)
try: try:
path = admin_media_path or django.__path__[0] + '/contrib/admin/media' handler = AdminMediaHandler(WSGIHandler(), admin_media_path)
handler = AdminMediaHandler(WSGIHandler(), path)
run(addr, int(port), handler) run(addr, int(port), handler)
except WSGIServerException, e: except WSGIServerException, e:
# Use helpful error messages instead of ugly tracebacks. # Use helpful error messages instead of ugly tracebacks.

View File

@ -16,6 +16,7 @@ import sys
import urllib import urllib
from django.utils.http import http_date from django.utils.http import http_date
from django.utils._os import safe_join
__version__ = "0.1" __version__ = "0.1"
__all__ = ['WSGIServer','WSGIRequestHandler'] __all__ = ['WSGIServer','WSGIRequestHandler']
@ -621,11 +622,25 @@ class AdminMediaHandler(object):
self.application = application self.application = application
if not media_dir: if not media_dir:
import django import django
self.media_dir = django.__path__[0] + '/contrib/admin/media' self.media_dir = \
os.path.join(django.__path__[0], 'contrib', 'admin', 'media')
else: else:
self.media_dir = media_dir self.media_dir = media_dir
self.media_url = settings.ADMIN_MEDIA_PREFIX self.media_url = settings.ADMIN_MEDIA_PREFIX
def file_path(self, url):
"""
Returns the path to the media file on disk for the given URL.
The passed URL is assumed to begin with ADMIN_MEDIA_PREFIX. If the
resultant file path is outside the media directory, then a ValueError
is raised.
"""
# Remove ADMIN_MEDIA_PREFIX.
relative_url = url[len(self.media_url):]
relative_path = urllib.url2pathname(relative_url)
return safe_join(self.media_dir, relative_path)
def __call__(self, environ, start_response): def __call__(self, environ, start_response):
import os.path import os.path
@ -636,19 +651,25 @@ class AdminMediaHandler(object):
return self.application(environ, start_response) return self.application(environ, start_response)
# Find the admin file and serve it up, if it exists and is readable. # Find the admin file and serve it up, if it exists and is readable.
relative_url = environ['PATH_INFO'][len(self.media_url):] try:
file_path = os.path.join(self.media_dir, relative_url) file_path = self.file_path(environ['PATH_INFO'])
except ValueError: # Resulting file path was not valid.
status = '404 NOT FOUND'
headers = {'Content-type': 'text/plain'}
output = ['Page not found: %s' % environ['PATH_INFO']]
start_response(status, headers.items())
return output
if not os.path.exists(file_path): if not os.path.exists(file_path):
status = '404 NOT FOUND' status = '404 NOT FOUND'
headers = {'Content-type': 'text/plain'} headers = {'Content-type': 'text/plain'}
output = ['Page not found: %s' % file_path] output = ['Page not found: %s' % environ['PATH_INFO']]
else: else:
try: try:
fp = open(file_path, 'rb') fp = open(file_path, 'rb')
except IOError: except IOError:
status = '401 UNAUTHORIZED' status = '401 UNAUTHORIZED'
headers = {'Content-type': 'text/plain'} headers = {'Content-type': 'text/plain'}
output = ['Permission denied: %s' % file_path] output = ['Permission denied: %s' % environ['PATH_INFO']]
else: else:
# This is a very simple implementation of conditional GET with # This is a very simple implementation of conditional GET with
# the Last-Modified header. It makes media files a bit speedier # the Last-Modified header. It makes media files a bit speedier

View File

@ -139,7 +139,7 @@ class RegexURLPattern(object):
callback = property(_get_callback) callback = property(_get_callback)
class RegexURLResolver(object): class RegexURLResolver(object):
def __init__(self, regex, urlconf_name, default_kwargs=None): def __init__(self, regex, urlconf_name, default_kwargs=None, app_name=None, namespace=None):
# regex is a string representing a regular expression. # regex is a string representing a regular expression.
# urlconf_name is a string representing the module containing URLconfs. # urlconf_name is a string representing the module containing URLconfs.
self.regex = re.compile(regex, re.UNICODE) self.regex = re.compile(regex, re.UNICODE)
@ -148,19 +148,29 @@ class RegexURLResolver(object):
self._urlconf_module = self.urlconf_name self._urlconf_module = self.urlconf_name
self.callback = None self.callback = None
self.default_kwargs = default_kwargs or {} self.default_kwargs = default_kwargs or {}
self._reverse_dict = MultiValueDict() self.namespace = namespace
self.app_name = app_name
self._reverse_dict = None
self._namespace_dict = None
self._app_dict = None
def __repr__(self): def __repr__(self):
return '<%s %s %s>' % (self.__class__.__name__, self.urlconf_name, self.regex.pattern) return '<%s %s (%s:%s) %s>' % (self.__class__.__name__, self.urlconf_name, self.app_name, self.namespace, self.regex.pattern)
def _get_reverse_dict(self): def _populate(self):
if not self._reverse_dict: lookups = MultiValueDict()
lookups = MultiValueDict() namespaces = {}
for pattern in reversed(self.url_patterns): apps = {}
p_pattern = pattern.regex.pattern for pattern in reversed(self.url_patterns):
if p_pattern.startswith('^'): p_pattern = pattern.regex.pattern
p_pattern = p_pattern[1:] if p_pattern.startswith('^'):
if isinstance(pattern, RegexURLResolver): p_pattern = p_pattern[1:]
if isinstance(pattern, RegexURLResolver):
if pattern.namespace:
namespaces[pattern.namespace] = (p_pattern, pattern)
if pattern.app_name:
apps.setdefault(pattern.app_name, []).append(pattern.namespace)
else:
parent = normalize(pattern.regex.pattern) parent = normalize(pattern.regex.pattern)
for name in pattern.reverse_dict: for name in pattern.reverse_dict:
for matches, pat in pattern.reverse_dict.getlist(name): for matches, pat in pattern.reverse_dict.getlist(name):
@ -168,14 +178,36 @@ class RegexURLResolver(object):
for piece, p_args in parent: for piece, p_args in parent:
new_matches.extend([(piece + suffix, p_args + args) for (suffix, args) in matches]) new_matches.extend([(piece + suffix, p_args + args) for (suffix, args) in matches])
lookups.appendlist(name, (new_matches, p_pattern + pat)) lookups.appendlist(name, (new_matches, p_pattern + pat))
else: for namespace, (prefix, sub_pattern) in pattern.namespace_dict.items():
bits = normalize(p_pattern) namespaces[namespace] = (p_pattern + prefix, sub_pattern)
lookups.appendlist(pattern.callback, (bits, p_pattern)) for app_name, namespace_list in pattern.app_dict.items():
lookups.appendlist(pattern.name, (bits, p_pattern)) apps.setdefault(app_name, []).extend(namespace_list)
self._reverse_dict = lookups else:
bits = normalize(p_pattern)
lookups.appendlist(pattern.callback, (bits, p_pattern))
lookups.appendlist(pattern.name, (bits, p_pattern))
self._reverse_dict = lookups
self._namespace_dict = namespaces
self._app_dict = apps
def _get_reverse_dict(self):
if self._reverse_dict is None:
self._populate()
return self._reverse_dict return self._reverse_dict
reverse_dict = property(_get_reverse_dict) reverse_dict = property(_get_reverse_dict)
def _get_namespace_dict(self):
if self._namespace_dict is None:
self._populate()
return self._namespace_dict
namespace_dict = property(_get_namespace_dict)
def _get_app_dict(self):
if self._app_dict is None:
self._populate()
return self._app_dict
app_dict = property(_get_app_dict)
def resolve(self, path): def resolve(self, path):
tried = [] tried = []
match = self.regex.search(path) match = self.regex.search(path)
@ -185,7 +217,11 @@ class RegexURLResolver(object):
try: try:
sub_match = pattern.resolve(new_path) sub_match = pattern.resolve(new_path)
except Resolver404, e: except Resolver404, e:
tried.extend([(pattern.regex.pattern + ' ' + t) for t in e.args[0]['tried']]) sub_tried = e.args[0].get('tried')
if sub_tried is not None:
tried.extend([(pattern.regex.pattern + ' ' + t) for t in sub_tried])
else:
tried.append(pattern.regex.pattern)
else: else:
if sub_match: if sub_match:
sub_match_dict = dict([(smart_str(k), v) for k, v in match.groupdict().items()]) sub_match_dict = dict([(smart_str(k), v) for k, v in match.groupdict().items()])
@ -195,7 +231,7 @@ class RegexURLResolver(object):
return sub_match[0], sub_match[1], sub_match_dict return sub_match[0], sub_match[1], sub_match_dict
tried.append(pattern.regex.pattern) tried.append(pattern.regex.pattern)
raise Resolver404, {'tried': tried, 'path': new_path} raise Resolver404, {'tried': tried, 'path': new_path}
raise Resolver404, {'tried': [], 'path' : path} raise Resolver404, {'path' : path}
def _get_urlconf_module(self): def _get_urlconf_module(self):
try: try:
@ -257,12 +293,51 @@ class RegexURLResolver(object):
def resolve(path, urlconf=None): def resolve(path, urlconf=None):
return get_resolver(urlconf).resolve(path) return get_resolver(urlconf).resolve(path)
def reverse(viewname, urlconf=None, args=None, kwargs=None, prefix=None): def reverse(viewname, urlconf=None, args=None, kwargs=None, prefix=None, current_app=None):
resolver = get_resolver(urlconf)
args = args or [] args = args or []
kwargs = kwargs or {} kwargs = kwargs or {}
if prefix is None: if prefix is None:
prefix = get_script_prefix() prefix = get_script_prefix()
return iri_to_uri(u'%s%s' % (prefix, get_resolver(urlconf).reverse(viewname,
if not isinstance(viewname, basestring):
view = viewname
else:
parts = viewname.split(':')
parts.reverse()
view = parts[0]
path = parts[1:]
resolved_path = []
while path:
ns = path.pop()
# Lookup the name to see if it could be an app identifier
try:
app_list = resolver.app_dict[ns]
# Yes! Path part matches an app in the current Resolver
if current_app and current_app in app_list:
# If we are reversing for a particular app, use that namespace
ns = current_app
elif ns not in app_list:
# The name isn't shared by one of the instances (i.e., the default)
# so just pick the first instance as the default.
ns = app_list[0]
except KeyError:
pass
try:
extra, resolver = resolver.namespace_dict[ns]
resolved_path.append(ns)
prefix = prefix + extra
except KeyError, key:
if resolved_path:
raise NoReverseMatch("%s is not a registered namespace inside '%s'" % (key, ':'.join(resolved_path)))
else:
raise NoReverseMatch("%s is not a registered namespace" % key)
return iri_to_uri(u'%s%s' % (prefix, resolver.reverse(view,
*args, **kwargs))) *args, **kwargs)))
def clear_url_caches(): def clear_url_caches():

View File

@ -40,7 +40,7 @@ class BaseDatabaseCreation(object):
from django.db import models from django.db import models
opts = model._meta opts = model._meta
if not opts.managed: if not opts.managed or opts.proxy:
return [], {} return [], {}
final_output = [] final_output = []
table_output = [] table_output = []
@ -121,7 +121,7 @@ class BaseDatabaseCreation(object):
"Returns any ALTER TABLE statements to add constraints after the fact." "Returns any ALTER TABLE statements to add constraints after the fact."
from django.db.backends.util import truncate_name from django.db.backends.util import truncate_name
if not model._meta.managed: if not model._meta.managed or model._meta.proxy:
return [] return []
qn = self.connection.ops.quote_name qn = self.connection.ops.quote_name
final_output = [] final_output = []
@ -236,7 +236,7 @@ class BaseDatabaseCreation(object):
def sql_indexes_for_model(self, model, style): def sql_indexes_for_model(self, model, style):
"Returns the CREATE INDEX SQL statements for a single model" "Returns the CREATE INDEX SQL statements for a single model"
if not model._meta.managed: if not model._meta.managed or model._meta.proxy:
return [] return []
output = [] output = []
for f in model._meta.local_fields: for f in model._meta.local_fields:
@ -268,7 +268,7 @@ class BaseDatabaseCreation(object):
def sql_destroy_model(self, model, references_to_delete, style): def sql_destroy_model(self, model, references_to_delete, style):
"Return the DROP TABLE and restraint dropping statements for a single model" "Return the DROP TABLE and restraint dropping statements for a single model"
if not model._meta.managed: if not model._meta.managed or model._meta.proxy:
return [] return []
# Drop the table now # Drop the table now
qn = self.connection.ops.quote_name qn = self.connection.ops.quote_name
@ -286,7 +286,7 @@ class BaseDatabaseCreation(object):
def sql_remove_table_constraints(self, model, references_to_delete, style): def sql_remove_table_constraints(self, model, references_to_delete, style):
from django.db.backends.util import truncate_name from django.db.backends.util import truncate_name
if not model._meta.managed: if not model._meta.managed or model._meta.proxy:
return [] return []
output = [] output = []
qn = self.connection.ops.quote_name qn = self.connection.ops.quote_name

View File

@ -217,12 +217,13 @@ WHEN (new.%(col_name)s IS NULL)
# continue to loop # continue to loop
break break
for f in model._meta.many_to_many: for f in model._meta.many_to_many:
table_name = self.quote_name(f.m2m_db_table()) if not f.rel.through:
sequence_name = get_sequence_name(f.m2m_db_table()) table_name = self.quote_name(f.m2m_db_table())
column_name = self.quote_name('id') sequence_name = get_sequence_name(f.m2m_db_table())
output.append(query % {'sequence': sequence_name, column_name = self.quote_name('id')
'table': table_name, output.append(query % {'sequence': sequence_name,
'column': column_name}) 'table': table_name,
'column': column_name})
return output return output
def start_transaction_sql(self): def start_transaction_sql(self):
@ -344,7 +345,7 @@ class OracleParam(object):
""" """
Wrapper object for formatting parameters for Oracle. If the string Wrapper object for formatting parameters for Oracle. If the string
representation of the value is large enough (greater than 4000 characters) representation of the value is large enough (greater than 4000 characters)
the input size needs to be set as NCLOB. Alternatively, if the parameter the input size needs to be set as CLOB. Alternatively, if the parameter
has an `input_size` attribute, then the value of the `input_size` attribute has an `input_size` attribute, then the value of the `input_size` attribute
will be used instead. Otherwise, no input size will be set for the will be used instead. Otherwise, no input size will be set for the
parameter when executing the query. parameter when executing the query.
@ -359,8 +360,8 @@ class OracleParam(object):
# If parameter has `input_size` attribute, use that. # If parameter has `input_size` attribute, use that.
self.input_size = param.input_size self.input_size = param.input_size
elif isinstance(param, basestring) and len(param) > 4000: elif isinstance(param, basestring) and len(param) > 4000:
# Mark any string param greater than 4000 characters as an NCLOB. # Mark any string param greater than 4000 characters as a CLOB.
self.input_size = Database.NCLOB self.input_size = Database.CLOB
else: else:
self.input_size = None self.input_size = None

View File

@ -121,14 +121,15 @@ class DatabaseOperations(BaseDatabaseOperations):
style.SQL_TABLE(qn(model._meta.db_table)))) style.SQL_TABLE(qn(model._meta.db_table))))
break # Only one AutoField is allowed per model, so don't bother continuing. break # Only one AutoField is allowed per model, so don't bother continuing.
for f in model._meta.many_to_many: for f in model._meta.many_to_many:
output.append("%s setval('%s', coalesce(max(%s), 1), max(%s) %s null) %s %s;" % \ if not f.rel.through:
(style.SQL_KEYWORD('SELECT'), output.append("%s setval('%s', coalesce(max(%s), 1), max(%s) %s null) %s %s;" % \
style.SQL_FIELD(qn('%s_id_seq' % f.m2m_db_table())), (style.SQL_KEYWORD('SELECT'),
style.SQL_FIELD(qn('id')), style.SQL_FIELD(qn('%s_id_seq' % f.m2m_db_table())),
style.SQL_FIELD(qn('id')), style.SQL_FIELD(qn('id')),
style.SQL_KEYWORD('IS NOT'), style.SQL_FIELD(qn('id')),
style.SQL_KEYWORD('FROM'), style.SQL_KEYWORD('IS NOT'),
style.SQL_TABLE(qn(f.m2m_db_table())))) style.SQL_KEYWORD('FROM'),
style.SQL_TABLE(qn(f.m2m_db_table()))))
return output return output
def savepoint_create_sql(self, sid): def savepoint_create_sql(self, sid):

View File

@ -464,8 +464,21 @@ class BaseModelFormSet(BaseFormSet):
return len(self.get_queryset()) return len(self.get_queryset())
return super(BaseModelFormSet, self).initial_form_count() return super(BaseModelFormSet, self).initial_form_count()
def _existing_object(self, pk):
if not hasattr(self, '_object_dict'):
self._object_dict = dict([(o.pk, o) for o in self.get_queryset()])
return self._object_dict.get(pk)
def _construct_form(self, i, **kwargs): def _construct_form(self, i, **kwargs):
if i < self.initial_form_count(): if self.is_bound and i < self.initial_form_count():
pk_key = "%s-%s" % (self.add_prefix(i), self.model._meta.pk.name)
pk = self.data[pk_key]
pk_field = self.model._meta.pk
pk = pk_field.get_db_prep_lookup('exact', pk)
if isinstance(pk, list):
pk = pk[0]
kwargs['instance'] = self._existing_object(pk)
if i < self.initial_form_count() and not kwargs.get('instance'):
kwargs['instance'] = self.get_queryset()[i] kwargs['instance'] = self.get_queryset()[i]
return super(BaseModelFormSet, self)._construct_form(i, **kwargs) return super(BaseModelFormSet, self)._construct_form(i, **kwargs)
@ -604,10 +617,6 @@ class BaseModelFormSet(BaseFormSet):
if not self.get_queryset(): if not self.get_queryset():
return [] return []
# Put the objects from self.get_queryset into a dict so they are easy to lookup by pk
existing_objects = {}
for obj in self.get_queryset():
existing_objects[obj.pk] = obj
saved_instances = [] saved_instances = []
for form in self.initial_forms: for form in self.initial_forms:
pk_name = self._pk_field.name pk_name = self._pk_field.name
@ -618,7 +627,7 @@ class BaseModelFormSet(BaseFormSet):
pk_value = form.fields[pk_name].clean(raw_pk_value) pk_value = form.fields[pk_name].clean(raw_pk_value)
pk_value = getattr(pk_value, 'pk', pk_value) pk_value = getattr(pk_value, 'pk', pk_value)
obj = existing_objects[pk_value] obj = self._existing_object(pk_value)
if self.can_delete: if self.can_delete:
raw_delete_value = form._raw_value(DELETION_FIELD_NAME) raw_delete_value = form._raw_value(DELETION_FIELD_NAME)
should_delete = form.fields[DELETION_FIELD_NAME].clean(raw_delete_value) should_delete = form.fields[DELETION_FIELD_NAME].clean(raw_delete_value)
@ -663,13 +672,16 @@ class BaseModelFormSet(BaseFormSet):
return ((not pk.editable) or (pk.auto_created or isinstance(pk, AutoField)) return ((not pk.editable) or (pk.auto_created or isinstance(pk, AutoField))
or (pk.rel and pk.rel.parent_link and pk_is_not_editable(pk.rel.to._meta.pk))) or (pk.rel and pk.rel.parent_link and pk_is_not_editable(pk.rel.to._meta.pk)))
if pk_is_not_editable(pk) or pk.name not in form.fields: if pk_is_not_editable(pk) or pk.name not in form.fields:
try: if form.is_bound:
if index: pk_value = form.instance.pk
pk_value = self.get_queryset()[index].pk else:
else: try:
if index:
pk_value = self.get_queryset()[index].pk
else:
pk_value = None
except IndexError:
pk_value = None pk_value = None
except IndexError:
pk_value = None
if isinstance(pk, OneToOneField) or isinstance(pk, ForeignKey): if isinstance(pk, OneToOneField) or isinstance(pk, ForeignKey):
qs = pk.rel.to._default_manager.get_query_set() qs = pk.rel.to._default_manager.get_query_set()
else: else:

View File

@ -1,3 +1,4 @@
from django.core.exceptions import MiddlewareNotUsed
from django.utils.http import http_date from django.utils.http import http_date
class ConditionalGetMiddleware(object): class ConditionalGetMiddleware(object):
@ -32,24 +33,19 @@ class ConditionalGetMiddleware(object):
class SetRemoteAddrFromForwardedFor(object): class SetRemoteAddrFromForwardedFor(object):
""" """
Middleware that sets REMOTE_ADDR based on HTTP_X_FORWARDED_FOR, if the This middleware has been removed; see the Django 1.1 release notes for
latter is set. This is useful if you're sitting behind a reverse proxy that details.
causes each request's REMOTE_ADDR to be set to 127.0.0.1.
It previously set REMOTE_ADDR based on HTTP_X_FORWARDED_FOR. However, after
Note that this does NOT validate HTTP_X_FORWARDED_FOR. If you're not behind investiagtion, it turns out this is impossible to do in a general manner:
a reverse proxy that sets HTTP_X_FORWARDED_FOR automatically, do not use different proxies treat the X-Forwarded-For header differently. Thus, a
this middleware. Anybody can spoof the value of HTTP_X_FORWARDED_FOR, and built-in middleware can lead to application-level security problems, and so
because this sets REMOTE_ADDR based on HTTP_X_FORWARDED_FOR, that means this was removed in Django 1.1
anybody can "fake" their IP address. Only use this when you can absolutely
trust the value of HTTP_X_FORWARDED_FOR.
""" """
def process_request(self, request): def __init__(self):
try: import warnings
real_ip = request.META['HTTP_X_FORWARDED_FOR'] warnings.warn("SetRemoteAddrFromForwardedFor has been removed. "
except KeyError: "See the Django 1.1 release notes for details.",
return None category=DeprecationWarning)
else: raise MiddlewareNotUsed()
# HTTP_X_FORWARDED_FOR can be a comma-separated list of IPs. The
# client's IP will be the first one.
real_ip = real_ip.split(",")[0].strip()
request.META['REMOTE_ADDR'] = real_ip

View File

@ -9,10 +9,11 @@ class ContextPopException(Exception):
class Context(object): class Context(object):
"A stack container for variable context" "A stack container for variable context"
def __init__(self, dict_=None, autoescape=True): def __init__(self, dict_=None, autoescape=True, current_app=None):
dict_ = dict_ or {} dict_ = dict_ or {}
self.dicts = [dict_] self.dicts = [dict_]
self.autoescape = autoescape self.autoescape = autoescape
self.current_app = current_app
def __repr__(self): def __repr__(self):
return repr(self.dicts) return repr(self.dicts)
@ -96,8 +97,8 @@ class RequestContext(Context):
Additional processors can be specified as a list of callables Additional processors can be specified as a list of callables
using the "processors" keyword argument. using the "processors" keyword argument.
""" """
def __init__(self, request, dict=None, processors=None): def __init__(self, request, dict=None, processors=None, current_app=None):
Context.__init__(self, dict) Context.__init__(self, dict, current_app=current_app)
if processors is None: if processors is None:
processors = () processors = ()
else: else:

View File

@ -367,17 +367,17 @@ class URLNode(Node):
# {% url ... as var %} construct in which cause return nothing. # {% url ... as var %} construct in which cause return nothing.
url = '' url = ''
try: try:
url = reverse(self.view_name, args=args, kwargs=kwargs) url = reverse(self.view_name, args=args, kwargs=kwargs, current_app=context.current_app)
except NoReverseMatch, e: except NoReverseMatch, e:
if settings.SETTINGS_MODULE: if settings.SETTINGS_MODULE:
project_name = settings.SETTINGS_MODULE.split('.')[0] project_name = settings.SETTINGS_MODULE.split('.')[0]
try: try:
url = reverse(project_name + '.' + self.view_name, url = reverse(project_name + '.' + self.view_name,
args=args, kwargs=kwargs) args=args, kwargs=kwargs, current_app=context.current_app)
except NoReverseMatch: except NoReverseMatch:
if self.asvar is None: if self.asvar is None:
# Re-raise the original exception, not the one with # Re-raise the original exception, not the one with
# the path relative to the project. This makes a # the path relative to the project. This makes a
# better error message. # better error message.
raise e raise e
else: else:
@ -564,7 +564,7 @@ do_filter = register.tag("filter", do_filter)
#@register.tag #@register.tag
def firstof(parser, token): def firstof(parser, token):
""" """
Outputs the first variable passed that is not False. Outputs the first variable passed that is not False, without escaping.
Outputs nothing if all the passed variables are False. Outputs nothing if all the passed variables are False.
@ -575,11 +575,11 @@ def firstof(parser, token):
This is equivalent to:: This is equivalent to::
{% if var1 %} {% if var1 %}
{{ var1 }} {{ var1|safe }}
{% else %}{% if var2 %} {% else %}{% if var2 %}
{{ var2 }} {{ var2|safe }}
{% else %}{% if var3 %} {% else %}{% if var3 %}
{{ var3 }} {{ var3|safe }}
{% endif %}{% endif %}{% endif %} {% endif %}{% endif %}{% endif %}
but obviously much cleaner! but obviously much cleaner!
@ -589,6 +589,12 @@ def firstof(parser, token):
{% firstof var1 var2 var3 "fallback value" %} {% firstof var1 var2 var3 "fallback value" %}
If you want to escape the output, use a filter tag::
{% filter force_escape %}
{% firstof var1 var2 var3 "fallback value" %}
{% endfilter %}
""" """
bits = token.split_contents()[1:] bits = token.split_contents()[1:]
if len(bits) < 1: if len(bits) < 1:

View File

@ -405,7 +405,7 @@ TECHNICAL_500_TEMPLATE = """
</tr> </tr>
<tr> <tr>
<th>Exception Value:</th> <th>Exception Value:</th>
<td><pre>{{ exception_value|escape }}<pre></td> <td><pre>{{ exception_value|escape }}</pre></td>
</tr> </tr>
<tr> <tr>
<th>Exception Location:</th> <th>Exception Location:</th>
@ -630,7 +630,7 @@ Exception Value: {{ exception_value|escape }}
{% else %} {% else %}
<p>No FILES data</p> <p>No FILES data</p>
{% endif %} {% endif %}
<h3 id="cookie-info">COOKIES</h3> <h3 id="cookie-info">COOKIES</h3>
{% if request.COOKIES %} {% if request.COOKIES %}

View File

@ -6,10 +6,16 @@ import docutils.nodes
import docutils.transforms import docutils.transforms
import sphinx import sphinx
import sphinx.addnodes import sphinx.addnodes
import sphinx.builder try:
from sphinx import builders
except ImportError:
import sphinx.builder as builders
import sphinx.directives import sphinx.directives
import sphinx.environment import sphinx.environment
import sphinx.htmlwriter try:
import sphinx.writers.html as sphinx_htmlwriter
except ImportError:
import sphinx.htmlwriter as sphinx_htmlwriter
import sphinx.roles import sphinx.roles
from docutils import nodes from docutils import nodes
@ -44,7 +50,7 @@ def setup(app):
directivename = "django-admin-option", directivename = "django-admin-option",
rolename = "djadminopt", rolename = "djadminopt",
indextemplate = "pair: %s; django-admin command-line option", indextemplate = "pair: %s; django-admin command-line option",
parse_node = lambda env, sig, signode: sphinx.directives.parse_option_desc(signode, sig), parse_node = parse_django_adminopt_node,
) )
app.add_config_value('django_next_version', '0.0', True) app.add_config_value('django_next_version', '0.0', True)
app.add_directive('versionadded', parse_version_directive, 1, (1, 1, 1)) app.add_directive('versionadded', parse_version_directive, 1, (1, 1, 1))
@ -102,7 +108,7 @@ class SuppressBlockquotes(docutils.transforms.Transform):
if len(node.children) == 1 and isinstance(node.children[0], self.suppress_blockquote_child_nodes): if len(node.children) == 1 and isinstance(node.children[0], self.suppress_blockquote_child_nodes):
node.replace_self(node.children[0]) node.replace_self(node.children[0])
class DjangoHTMLTranslator(sphinx.htmlwriter.SmartyPantsHTMLTranslator): class DjangoHTMLTranslator(sphinx_htmlwriter.SmartyPantsHTMLTranslator):
""" """
Django-specific reST to HTML tweaks. Django-specific reST to HTML tweaks.
""" """
@ -125,10 +131,10 @@ class DjangoHTMLTranslator(sphinx.htmlwriter.SmartyPantsHTMLTranslator):
# #
def visit_literal_block(self, node): def visit_literal_block(self, node):
self.no_smarty += 1 self.no_smarty += 1
sphinx.htmlwriter.SmartyPantsHTMLTranslator.visit_literal_block(self, node) sphinx_htmlwriter.SmartyPantsHTMLTranslator.visit_literal_block(self, node)
def depart_literal_block(self, node): def depart_literal_block(self, node):
sphinx.htmlwriter.SmartyPantsHTMLTranslator.depart_literal_block(self, node) sphinx_htmlwriter.SmartyPantsHTMLTranslator.depart_literal_block(self, node)
self.no_smarty -= 1 self.no_smarty -= 1
# #
@ -162,7 +168,7 @@ class DjangoHTMLTranslator(sphinx.htmlwriter.SmartyPantsHTMLTranslator):
# Give each section a unique ID -- nice for custom CSS hooks # Give each section a unique ID -- nice for custom CSS hooks
# This is different on docutils 0.5 vs. 0.4... # This is different on docutils 0.5 vs. 0.4...
if hasattr(sphinx.htmlwriter.SmartyPantsHTMLTranslator, 'start_tag_with_title') and sphinx.__version__ == '0.4.2': if hasattr(sphinx_htmlwriter.SmartyPantsHTMLTranslator, 'start_tag_with_title') and sphinx.__version__ == '0.4.2':
def start_tag_with_title(self, node, tagname, **atts): def start_tag_with_title(self, node, tagname, **atts):
node = { node = {
'classes': node.get('classes', []), 'classes': node.get('classes', []),
@ -176,7 +182,7 @@ class DjangoHTMLTranslator(sphinx.htmlwriter.SmartyPantsHTMLTranslator):
node['ids'] = ['s-' + i for i in old_ids] node['ids'] = ['s-' + i for i in old_ids]
if sphinx.__version__ != '0.4.2': if sphinx.__version__ != '0.4.2':
node['ids'].extend(old_ids) node['ids'].extend(old_ids)
sphinx.htmlwriter.SmartyPantsHTMLTranslator.visit_section(self, node) sphinx_htmlwriter.SmartyPantsHTMLTranslator.visit_section(self, node)
node['ids'] = old_ids node['ids'] = old_ids
def parse_django_admin_node(env, sig, signode): def parse_django_admin_node(env, sig, signode):
@ -186,6 +192,25 @@ def parse_django_admin_node(env, sig, signode):
signode += sphinx.addnodes.desc_name(title, title) signode += sphinx.addnodes.desc_name(title, title)
return sig return sig
def parse_django_adminopt_node(env, sig, signode):
"""A copy of sphinx.directives.CmdoptionDesc.parse_signature()"""
from sphinx import addnodes
from sphinx.directives.desc import option_desc_re
count = 0
firstname = ''
for m in option_desc_re.finditer(sig):
optname, args = m.groups()
if count:
signode += addnodes.desc_addname(', ', ', ')
signode += addnodes.desc_name(optname, optname)
signode += addnodes.desc_addname(args, args)
if not count:
firstname = optname
count += 1
if not firstname:
raise ValueError
return firstname
def monkeypatch_pickle_builder(): def monkeypatch_pickle_builder():
import shutil import shutil
from os import path from os import path
@ -214,12 +239,12 @@ def monkeypatch_pickle_builder():
# copy the environment file from the doctree dir to the output dir # copy the environment file from the doctree dir to the output dir
# as needed by the web app # as needed by the web app
shutil.copyfile(path.join(self.doctreedir, sphinx.builder.ENV_PICKLE_FILENAME), shutil.copyfile(path.join(self.doctreedir, builders.ENV_PICKLE_FILENAME),
path.join(self.outdir, sphinx.builder.ENV_PICKLE_FILENAME)) path.join(self.outdir, builders.ENV_PICKLE_FILENAME))
# touch 'last build' file, used by the web application to determine # touch 'last build' file, used by the web application to determine
# when to reload its environment and clear the cache # when to reload its environment and clear the cache
open(path.join(self.outdir, sphinx.builder.LAST_BUILD_FILENAME), 'w').close() open(path.join(self.outdir, builders.LAST_BUILD_FILENAME), 'w').close()
builders.PickleHTMLBuilder.handle_finish = handle_finish
sphinx.builder.PickleHTMLBuilder.handle_finish = handle_finish

View File

@ -1,6 +1,6 @@
{% extends "!layout.html" %} {% extends "!layout.html" %}
{%- macro secondnav %} {%- macro secondnav() %}
{%- if prev %} {%- if prev %}
&laquo; <a href="{{ prev.link|e }}" title="{{ prev.title|e }}">previous</a> &laquo; <a href="{{ prev.link|e }}" title="{{ prev.title|e }}">previous</a>
{{ reldelim2 }} {{ reldelim2 }}

View File

@ -37,20 +37,19 @@ Set the :setting:`CACHE_MIDDLEWARE_ANONYMOUS_ONLY` setting to ``True``. See the
How do I automatically set a field's value to the user who last edited the object in the admin? How do I automatically set a field's value to the user who last edited the object in the admin?
----------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------
At this point, Django doesn't have an official way to do this. But it's an oft-requested The :class:`ModelAdmin` class provides customization hooks that allow you to transform
feature, so we're discussing how it can be implemented. The problem is we don't want to couple an object as it saved, using details from the request. By extracting the current user
the model layer with the admin layer with the request layer (to get the current user). It's a from the request, and customizing the :meth:`ModelAdmin.save_model` hook, you can update
tricky problem. an object to reflect the user that edited it. See :ref:`the documentation on ModelAdmin
methods <model-admin-methods>` for an example.
One person hacked up a `solution that doesn't require patching Django`_, but note that it's an
unofficial solution, and there's no guarantee it won't break at some point.
.. _solution that doesn't require patching Django: http://lukeplant.me.uk/blog.php?id=1107301634
How do I limit admin access so that objects can only be edited by the users who created them? How do I limit admin access so that objects can only be edited by the users who created them?
--------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------
See the answer to the previous question. The :class:`ModelAdmin` class also provides customization hooks that allow you to control the
visibility and editability of objects in the admin. Using the same trick of extracting the
user from the request, the :meth:`ModelAdmin.queryset` and :meth:`ModelAdmin.has_change_permission`
can be used to control the visibility and editability of objects in the admin.
My admin-site CSS and images showed up fine using the development server, but they're not displaying when using mod_python. My admin-site CSS and images showed up fine using the development server, but they're not displaying when using mod_python.
--------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------

View File

@ -464,7 +464,7 @@ should raise either a ``ValueError`` if the ``value`` is of the wrong sort (a
list when you were expecting an object, for example) or a ``TypeError`` if list when you were expecting an object, for example) or a ``TypeError`` if
your field does not support that type of lookup. For many fields, you can get your field does not support that type of lookup. For many fields, you can get
by with handling the lookup types that need special handling for your field by with handling the lookup types that need special handling for your field
and pass the rest of the :meth:`get_db_prep_lookup` method of the parent class. and pass the rest to the :meth:`get_db_prep_lookup` method of the parent class.
If you needed to implement ``get_db_prep_save()``, you will usually need to If you needed to implement ``get_db_prep_save()``, you will usually need to
implement ``get_db_prep_lookup()``. If you don't, ``get_db_prep_value`` will be implement ``get_db_prep_lookup()``. If you don't, ``get_db_prep_value`` will be

View File

@ -6,8 +6,8 @@ How to use Django with Apache and mod_python
.. highlight:: apache .. highlight:: apache
The `mod_python`_ module for Apache_ can be used to deploy Django to a The `mod_python`_ module for Apache_ can be used to deploy Django to a
production server, although it has been mostly superseded by the simpler production server, although it has been mostly superseded by the simpler
:ref:`mod_wsgi deployment option <howto-deployment-modwsgi>`. :ref:`mod_wsgi deployment option <howto-deployment-modwsgi>`.
mod_python is similar to (and inspired by) `mod_perl`_ : It embeds Python within mod_python is similar to (and inspired by) `mod_perl`_ : It embeds Python within
@ -378,3 +378,24 @@ as necessary.
.. _Expat Causing Apache Crash: http://www.dscpl.com.au/articles/modpython-006.html .. _Expat Causing Apache Crash: http://www.dscpl.com.au/articles/modpython-006.html
.. _mod_python FAQ entry: http://modpython.org/FAQ/faqw.py?req=show&file=faq02.013.htp .. _mod_python FAQ entry: http://modpython.org/FAQ/faqw.py?req=show&file=faq02.013.htp
.. _Getting mod_python Working: http://www.dscpl.com.au/articles/modpython-001.html .. _Getting mod_python Working: http://www.dscpl.com.au/articles/modpython-001.html
If you get a UnicodeEncodeError
===============================
If you're taking advantage of the internationalization features of Django (see
:ref:`topics-i18n`) and you intend to allow users to upload files, you must
ensure that the environment used to start Apache is configured to accept
non-ASCII file names. If your environment is not correctly configured, you
will trigger ``UnicodeEncodeError`` exceptions when calling functions like
``os.path()`` on filenames that contain non-ASCII characters.
To avoid these problems, the environment used to start Apache should contain
settings analogous to the following::
export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'
Consult the documentation for your operating system for the appropriate syntax
and location to put these configuration items; ``/etc/apache2/envvars`` is a
common location on Unix platforms. Once you have added these statements
to your environment, restart Apache.

Some files were not shown because too many files have changed in this diff Show More