1
0
mirror of https://github.com/django/django.git synced 2025-07-04 01:39:20 +00:00

newforms-admin: Merged to [4616]

git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@4617 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2007-02-26 20:17:26 +00:00
parent a9fafd521f
commit 6df0230077
69 changed files with 6224 additions and 2834 deletions

View File

@ -67,6 +67,7 @@ answer newbie questions, and generally made Django that much better:
Ian Clelland <clelland@gmail.com> Ian Clelland <clelland@gmail.com>
crankycoder@gmail.com crankycoder@gmail.com
Matt Croydon <http://www.postneo.com/> Matt Croydon <http://www.postneo.com/>
Jure Cuhalev <gandalf@owca.info>
dackze+django@gmail.com dackze+django@gmail.com
Dirk Datzert <dummy@habmalnefrage.de> Dirk Datzert <dummy@habmalnefrage.de>
Jonathan Daugherty (cygnus) <http://www.cprogrammer.org/> Jonathan Daugherty (cygnus) <http://www.cprogrammer.org/>
@ -80,6 +81,8 @@ answer newbie questions, and generally made Django that much better:
Andy Dustman <farcepest@gmail.com> Andy Dustman <farcepest@gmail.com>
Clint Ecker Clint Ecker
Enrico <rico.bl@gmail.com> Enrico <rico.bl@gmail.com>
Ludvig Ericson <ludvig.ericson@gmail.com>
Dirk Eschler <dirk.eschler@gmx.net>
Marc Fargas <telenieko@telenieko.com> Marc Fargas <telenieko@telenieko.com>
favo@exoweb.net favo@exoweb.net
Eric Floehr <eric@intellovations.com> Eric Floehr <eric@intellovations.com>
@ -146,6 +149,7 @@ answer newbie questions, and generally made Django that much better:
pgross@thoughtworks.com pgross@thoughtworks.com
phaedo <http://phaedo.cx/> phaedo <http://phaedo.cx/>
phil@produxion.net phil@produxion.net
phil.h.smith@gmail.com
Gustavo Picon Gustavo Picon
Luke Plant <http://lukeplant.me.uk/> Luke Plant <http://lukeplant.me.uk/>
plisk plisk

View File

@ -55,6 +55,7 @@ LANGUAGES = (
('is', gettext_noop('Icelandic')), ('is', gettext_noop('Icelandic')),
('it', gettext_noop('Italian')), ('it', gettext_noop('Italian')),
('ja', gettext_noop('Japanese')), ('ja', gettext_noop('Japanese')),
('kn', gettext_noop('Kannada')),
('lv', gettext_noop('Latvian')), ('lv', gettext_noop('Latvian')),
('mk', gettext_noop('Macedonian')), ('mk', gettext_noop('Macedonian')),
('nl', gettext_noop('Dutch')), ('nl', gettext_noop('Dutch')),

View File

@ -8,7 +8,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-05 02:56+0100\n" "POT-Creation-Date: 2007-02-05 02:56+0100\n"
"PO-Revision-Date: 2007-02-05 03:19+0100\n" "PO-Revision-Date: 2007-02-05 03:19+0100\n"
"Last-Translator: Benjamin Schulz <beschulz@gmail.com>\n" "Last-Translator: Dirk Eschler <dirk.eschler@gmx.net>\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"
@ -17,6 +17,7 @@ msgstr ""
"X-Poedit-Country: GERMANY\n" "X-Poedit-Country: GERMANY\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: KBabel 1.11.4\n"
#: .\conf\global_settings.py:39 #: .\conf\global_settings.py:39
msgid "Arabic" msgid "Arabic"
@ -206,11 +207,11 @@ msgstr "Unbekannt"
#: .\contrib\admin\models.py:16 #: .\contrib\admin\models.py:16
msgid "action time" msgid "action time"
msgstr "Zeit der Aktion" msgstr "Zeitpunkt der Aktion"
#: .\contrib\admin\models.py:19 #: .\contrib\admin\models.py:19
msgid "object id" msgid "object id"
msgstr "Objekt ID" msgstr "Objekt-ID"
#: .\contrib\admin\models.py:20 #: .\contrib\admin\models.py:20
msgid "object repr" msgid "object repr"
@ -239,7 +240,7 @@ msgstr "Seite nicht gefunden"
#: .\contrib\admin\templates\admin\404.html.py:10 #: .\contrib\admin\templates\admin\404.html.py:10
msgid "We're sorry, but the requested page could not be found." msgid "We're sorry, but the requested page could not be found."
msgstr "Es tut uns leid, aber die angeforderte Seite kann nicht gefunden werden." msgstr "Es tut uns leid, aber die angeforderte Seite konnte nicht gefunden werden."
#: .\contrib\admin\templates\admin\500.html.py:4 #: .\contrib\admin\templates\admin\500.html.py:4
#: .\contrib\admin\templates\admin\base.html.py:30 #: .\contrib\admin\templates\admin\base.html.py:30
@ -272,7 +273,7 @@ msgstr "Serverfehler <em>(500)</em>"
#: .\contrib\admin\templates\admin\500.html.py:10 #: .\contrib\admin\templates\admin\500.html.py:10
msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience." msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
msgstr "Es hat einen Fehler gegeben. Dieser Fehler wurde an die Serververwalter per eMail weitergegeben und sollte bald behoben sein. Vielen Dank für Ihr Verständnis." msgstr "Ein Fehler ist aufgetreten. Dieser Fehler wurde an die Serververwalter per E-Mail weitergegeben und sollte bald behoben sein. Vielen Dank für Ihr Verständnis."
#: .\contrib\admin\templates\admin\base.html.py:25 #: .\contrib\admin\templates\admin\base.html.py:25
msgid "Welcome," msgid "Welcome,"
@ -346,7 +347,7 @@ msgstr "Django Verwaltung"
#: .\contrib\admin\templates\admin\change_form.html.py:15 #: .\contrib\admin\templates\admin\change_form.html.py:15
#: .\contrib\admin\templates\admin\index.html.py:28 #: .\contrib\admin\templates\admin\index.html.py:28
msgid "Add" msgid "Add"
msgstr "Zufügen" msgstr "Hinzufügen"
#: .\contrib\admin\templates\admin\change_form.html.py:21 #: .\contrib\admin\templates\admin\change_form.html.py:21
#: .\contrib\admin\templates\admin\object_history.html.py:5 #: .\contrib\admin\templates\admin\object_history.html.py:5
@ -361,8 +362,8 @@ msgstr "Im Web Anzeigen"
#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:24 #: .\contrib\admin\templates\admin\auth\user\change_password.html.py:24
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] "Bitte den Fehler korrigieren." msgstr[0] "Bitte den aufgeführten Fehler korrigieren."
msgstr[1] "Bitte die Fehler korrigieren." msgstr[1] "Bitte die aufgeführten Fehler korrigieren."
#: .\contrib\admin\templates\admin\change_form.html.py:50 #: .\contrib\admin\templates\admin\change_form.html.py:50
msgid "Ordering" msgid "Ordering"
@ -375,7 +376,7 @@ msgstr "Reihenfolge:"
#: .\contrib\admin\templates\admin\change_list.html.py:12 #: .\contrib\admin\templates\admin\change_list.html.py:12
#, python-format #, python-format
msgid "Add %(name)s" msgid "Add %(name)s"
msgstr "%(name)s zufügen" msgstr "%(name)s hinzufügen"
#: .\contrib\admin\templates\admin\delete_confirmation.html.py:9 #: .\contrib\admin\templates\admin\delete_confirmation.html.py:9
#: .\contrib\admin\templates\admin\submit_line.html.py:3 #: .\contrib\admin\templates\admin\submit_line.html.py:3
@ -437,7 +438,7 @@ msgstr "Keine vorhanden"
#: .\contrib\admin\templates\admin\invalid_setup.html.py:8 #: .\contrib\admin\templates\admin\invalid_setup.html.py:8
msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user." msgid "Something's wrong with your database installation. Make sure the appropriate database tables have been created, and make sure the database is readable by the appropriate user."
msgstr "Irgendetwas ist falsch mit der Datenbankkonfiguration. Bitte sicherstellen, das die richtigen Datenbanktabellen angelegt wurden und bitte sicherstellen, das die Datenbank vom verwendeten Datenbankbenutzer auch lesbar ist." msgstr "Etwas stimmt nicht mit der Datenbankkonfiguration. Bitte sicherstellen, das die richtigen Datenbanktabellen angelegt wurden und bitte sicherstellen, das die Datenbank vom verwendeten Datenbankbenutzer auch lesbar ist."
#: .\contrib\admin\templates\admin\login.html.py:17 #: .\contrib\admin\templates\admin\login.html.py:17
#: .\contrib\comments\templates\comments\form.html.py:6 #: .\contrib\comments\templates\comments\form.html.py:6
@ -487,8 +488,8 @@ msgstr "Los"
#, python-format #, python-format
msgid "1 result" msgid "1 result"
msgid_plural "%(counter)s results" msgid_plural "%(counter)s results"
msgstr[0] "" msgstr[0] "Ein Ergebnis"
msgstr[1] "" msgstr[1] "%(counter)s Ergebnisse"
#: .\contrib\admin\templates\admin\search_form.html.py:10 #: .\contrib\admin\templates\admin\search_form.html.py:10
#, python-format #, python-format
@ -497,7 +498,7 @@ msgstr "%(full_result_count)s gesamt"
#: .\contrib\admin\templates\admin\submit_line.html.py:4 #: .\contrib\admin\templates\admin\submit_line.html.py:4
msgid "Save as new" msgid "Save as new"
msgstr "Als Neu sichern" msgstr "Als neu sichern"
#: .\contrib\admin\templates\admin\submit_line.html.py:5 #: .\contrib\admin\templates\admin\submit_line.html.py:5
msgid "Save and add another" msgid "Save and add another"
@ -527,12 +528,12 @@ msgstr "Passwort"
#: .\contrib\admin\templates\admin\auth\user\add_form.html.py:23 #: .\contrib\admin\templates\admin\auth\user\add_form.html.py:23
#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:39 #: .\contrib\admin\templates\admin\auth\user\change_password.html.py:39
msgid "Password (again)" msgid "Password (again)"
msgstr "Kennwort (wiederholen)" msgstr "Passwort (wiederholen)"
#: .\contrib\admin\templates\admin\auth\user\add_form.html.py:24 #: .\contrib\admin\templates\admin\auth\user\add_form.html.py:24
#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:40 #: .\contrib\admin\templates\admin\auth\user\change_password.html.py:40
msgid "Enter the same password as above, for verification." msgid "Enter the same password as above, for verification."
msgstr "Bitte das gleiche Passwort zur Prüfung nochmal eingeben." msgstr "Bitte das gleiche Passwort zur Überprüfung nochmal eingeben."
#: .\contrib\admin\templates\admin\auth\user\change_password.html.py:28 #: .\contrib\admin\templates\admin\auth\user\change_password.html.py:28
#, python-format #, python-format
@ -559,7 +560,7 @@ msgid ""
msgstr "" msgstr ""
"\n" "\n"
"<p class=\"help\">Um Bookmarklets zu installieren müssen diese Links in die\n" "<p class=\"help\">Um Bookmarklets zu installieren müssen diese Links in die\n"
"Browser-Werkzeugleiste gehzogen werden, oder mittels rechter Maustaste in die\n" "Browser-Werkzeugleiste gezogen werden, oder mittels rechter Maustaste in die\n"
"Bookmarks gespeichert werden. Danach können die Bookmarklets von jeder Seite\n" "Bookmarks gespeichert werden. Danach können die Bookmarklets von jeder Seite\n"
"aufgerufen werden. Einige Bookmarklets sind für den Zugriff von 'internen'\n" "aufgerufen werden. Einige Bookmarklets sind für den Zugriff von 'internen'\n"
"Rechnern eingeschränkt. Falls nicht klar ist, ob ein Rechner als 'intern'\n" "Rechnern eingeschränkt. Falls nicht klar ist, ob ein Rechner als 'intern'\n"
@ -575,7 +576,7 @@ msgstr "Springt von jeder Seite zu der Dokumentation für den View der diese Sei
#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:22 #: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:22
msgid "Show object ID" msgid "Show object ID"
msgstr "Objekt ID anzeigen" msgstr "Objekt-ID anzeigen"
#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:23 #: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:23
msgid "Shows the content-type and unique ID for pages that represent a single object." msgid "Shows the content-type and unique ID for pages that represent a single object."
@ -595,71 +596,71 @@ msgstr "Dieses Objekt in einem neuen Fenster ändern."
#: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:29 #: .\contrib\admin\templates\admin_doc\bookmarklets.html.py:29
msgid "As above, but opens the admin page in a new window." msgid "As above, but opens the admin page in a new window."
msgstr "Wie zuvor, aber öffnent die Administrationsseite in einem neuen Fenster." msgstr "Wie zuvor, aber öffnet die Administrationsseite in einem neuen Fenster."
#: .\contrib\admin\templates\registration\logged_out.html.py:8 #: .\contrib\admin\templates\registration\logged_out.html.py:8
msgid "Thanks for spending some quality time with the Web site today." msgid "Thanks for spending some quality time with the Web site today."
msgstr "Vielen Dank, daß Sie hier ein paar nette Minuten verbracht haben." msgstr "Vielen Dank, dass Sie hier ein paar nette Minuten verbracht haben."
#: .\contrib\admin\templates\registration\logged_out.html.py:10 #: .\contrib\admin\templates\registration\logged_out.html.py:10
msgid "Log in again" msgid "Log in again"
msgstr "Erneut Anmelden" msgstr "Erneut anmelden"
#: .\contrib\admin\templates\registration\password_change_done.html.py:4 #: .\contrib\admin\templates\registration\password_change_done.html.py:4
#: .\contrib\admin\templates\registration\password_change_form.html.py:4 #: .\contrib\admin\templates\registration\password_change_form.html.py:4
#: .\contrib\admin\templates\registration\password_change_form.html.py:6 #: .\contrib\admin\templates\registration\password_change_form.html.py:6
#: .\contrib\admin\templates\registration\password_change_form.html.py:10 #: .\contrib\admin\templates\registration\password_change_form.html.py:10
msgid "Password change" msgid "Password change"
msgstr "Kennwort ändern" msgstr "Passwort ändern"
#: .\contrib\admin\templates\registration\password_change_done.html.py:6 #: .\contrib\admin\templates\registration\password_change_done.html.py:6
#: .\contrib\admin\templates\registration\password_change_done.html.py:10 #: .\contrib\admin\templates\registration\password_change_done.html.py:10
msgid "Password change successful" msgid "Password change successful"
msgstr "Kennwortänderung erfolgreich" msgstr "Passwort erfolgreich geändert"
#: .\contrib\admin\templates\registration\password_change_done.html.py:12 #: .\contrib\admin\templates\registration\password_change_done.html.py:12
msgid "Your password was changed." msgid "Your password was changed."
msgstr "Ihr Kennwort wurde geändert." msgstr "Ihr Passwort wurde geändert."
#: .\contrib\admin\templates\registration\password_change_form.html.py:12 #: .\contrib\admin\templates\registration\password_change_form.html.py:12
msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
msgstr "Bitte geben Sie aus Sicherheitsgründen erst Ihr altes Kennwort und darunter dann zweimal (um sicherzustellen, dass Sie es korrekt eingegeben haben) das neue Kennwort ein." msgstr "Bitte geben Sie aus Sicherheitsgründen erst Ihr altes Passwort und darunter dann zweimal (um sicherzustellen, dass Sie es korrekt eingegeben haben) das neue Kennwort ein."
#: .\contrib\admin\templates\registration\password_change_form.html.py:17 #: .\contrib\admin\templates\registration\password_change_form.html.py:17
msgid "Old password:" msgid "Old password:"
msgstr "altes Kennwort:" msgstr "Altes Passwort:"
#: .\contrib\admin\templates\registration\password_change_form.html.py:19 #: .\contrib\admin\templates\registration\password_change_form.html.py:19
msgid "New password:" msgid "New password:"
msgstr "neues Kennwort:" msgstr "Neues Passwort:"
#: .\contrib\admin\templates\registration\password_change_form.html.py:21 #: .\contrib\admin\templates\registration\password_change_form.html.py:21
msgid "Confirm password:" msgid "Confirm password:"
msgstr "Kennwortwiederholung:" msgstr "Passwort wiederholen:"
#: .\contrib\admin\templates\registration\password_change_form.html.py:23 #: .\contrib\admin\templates\registration\password_change_form.html.py:23
msgid "Change my password" msgid "Change my password"
msgstr "Mein Kennwort ändern" msgstr "Mein Passwort ändern"
#: .\contrib\admin\templates\registration\password_reset_done.html.py:4 #: .\contrib\admin\templates\registration\password_reset_done.html.py:4
#: .\contrib\admin\templates\registration\password_reset_form.html.py:4 #: .\contrib\admin\templates\registration\password_reset_form.html.py:4
#: .\contrib\admin\templates\registration\password_reset_form.html.py:6 #: .\contrib\admin\templates\registration\password_reset_form.html.py:6
#: .\contrib\admin\templates\registration\password_reset_form.html.py:10 #: .\contrib\admin\templates\registration\password_reset_form.html.py:10
msgid "Password reset" msgid "Password reset"
msgstr "Kennwort zurücksetzen" msgstr "Passwort zurücksetzen"
#: .\contrib\admin\templates\registration\password_reset_done.html.py:6 #: .\contrib\admin\templates\registration\password_reset_done.html.py:6
#: .\contrib\admin\templates\registration\password_reset_done.html.py:10 #: .\contrib\admin\templates\registration\password_reset_done.html.py:10
msgid "Password reset successful" msgid "Password reset successful"
msgstr "Erfolgreich Kennwort zurückgesetzt" msgstr "Passwort wurde erfolgreich zurückgesetzt"
#: .\contrib\admin\templates\registration\password_reset_done.html.py:12 #: .\contrib\admin\templates\registration\password_reset_done.html.py:12
msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly." msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
msgstr "Wir haben Ihnen ein neues Kennwort per eMail zugeschickt an die Adresse, die Sie uns gegeben haben. Es sollte in Kürze ankommen." msgstr "Wir haben ein neues Passwort an die von Ihnen angegebene E-Mail-Adresse geschickt. Sie sollten es in Kürze erhalten."
#: .\contrib\admin\templates\registration\password_reset_email.html.py:2 #: .\contrib\admin\templates\registration\password_reset_email.html.py: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 "Sie erhalten diese Mail, weil Sie ein neues Kennwort" msgstr "Sie erhalten diese E-Mail, weil Sie ein neues Passwort"
#: .\contrib\admin\templates\registration\password_reset_email.html.py:3 #: .\contrib\admin\templates\registration\password_reset_email.html.py:3
#, python-format #, python-format
@ -669,11 +670,11 @@ msgstr "für Ihren Benutzer bei %(site_name)s angefordert haben."
#: .\contrib\admin\templates\registration\password_reset_email.html.py:5 #: .\contrib\admin\templates\registration\password_reset_email.html.py:5
#, python-format #, python-format
msgid "Your new password is: %(new_password)s" msgid "Your new password is: %(new_password)s"
msgstr "Ihr neues Kennwort ist: %(new_password)s" msgstr "Ihr neues Passwort lautet: %(new_password)s"
#: .\contrib\admin\templates\registration\password_reset_email.html.py:7 #: .\contrib\admin\templates\registration\password_reset_email.html.py:7
msgid "Feel free to change this password by going to this page:" msgid "Feel free to change this password by going to this page:"
msgstr "Sie können das Kennwort auf folgender Seite ändern:" msgstr "Sie können das Passwort auf folgender Seite ändern:"
#: .\contrib\admin\templates\registration\password_reset_email.html.py:11 #: .\contrib\admin\templates\registration\password_reset_email.html.py:11
msgid "Your username, in case you've forgotten:" msgid "Your username, in case you've forgotten:"
@ -690,7 +691,7 @@ msgstr "Das Team von %(site_name)s"
#: .\contrib\admin\templates\registration\password_reset_form.html.py:12 #: .\contrib\admin\templates\registration\password_reset_form.html.py:12
msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you." msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
msgstr "Passwort vergessen? Einfach die E-Mail-Adresse eingeben und wir setzen das Passwort auf ein neues und senden das per E-Mail zu." msgstr "Passwort vergessen? Einfach die E-Mail-Adresse eingeben und wir setzen das Passwort zurück und lassen es Ihnen per E-Mail zukommen."
#: .\contrib\admin\templates\registration\password_reset_form.html.py:16 #: .\contrib\admin\templates\registration\password_reset_form.html.py:16
msgid "E-mail address:" msgid "E-mail address:"
@ -698,7 +699,7 @@ msgstr "E-Mail-Adresse:"
#: .\contrib\admin\templates\registration\password_reset_form.html.py:16 #: .\contrib\admin\templates\registration\password_reset_form.html.py:16
msgid "Reset my password" msgid "Reset my password"
msgstr "Mein Kennwort zurücksetzen" msgstr "Mein Passwort zurücksetzen"
#: .\contrib\admin\templates\widget\date_time.html.py:3 #: .\contrib\admin\templates\widget\date_time.html.py:3
msgid "Date:" msgid "Date:"
@ -730,30 +731,29 @@ msgstr "%(name)s \"%(obj)s\" wurde erfolgreich hinzugefügt."
#: .\contrib\admin\views\main.py:261 #: .\contrib\admin\views\main.py:261
#: .\contrib\admin\views\main.py:347 #: .\contrib\admin\views\main.py:347
msgid "You may edit it again below." msgid "You may edit it again below."
msgstr "Das Element kann jetzt weiter geändert werden." msgstr "Das Element kann jetzt weiter bearbeitet werden."
#: .\contrib\admin\views\auth.py:30 #: .\contrib\admin\views\auth.py:30
msgid "Add user" msgid "Add user"
msgstr "Benutzer zufügen" msgstr "Benutzer hinzufügen"
#: .\contrib\admin\views\auth.py:57 #: .\contrib\admin\views\auth.py:57
#, fuzzy
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Kennwortänderung erfolgreich" msgstr "Passwort erfolgreich geändert."
#: .\contrib\admin\views\auth.py:64 #: .\contrib\admin\views\auth.py:64
#, fuzzy, python-format #, python-format
msgid "Change password: %s" msgid "Change password: %s"
msgstr "Passwort ändern" msgstr "Passwort ändern: %s"
#: .\contrib\admin\views\decorators.py:10 #: .\contrib\admin\views\decorators.py:10
#: .\contrib\auth\forms.py:59 #: .\contrib\auth\forms.py:59
msgid "Please enter a correct username and password. Note that both fields are case-sensitive." msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
msgstr "Bitte einen Benutzernamen und ein Kennwort eingeben. Beide Felder berücksichtigen die Groß-/Kleinschreibung." msgstr "Bitte einen Benutzernamen und ein Passwort eingeben. Beide Felder berücksichtigen die Groß-/Kleinschreibung."
#: .\contrib\admin\views\decorators.py:62 #: .\contrib\admin\views\decorators.py:62
msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved." msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
msgstr "Bitte neu anmelden, da die Session ausgelaufen ist. Keine Angst: die Beiträge wurden gesichert." msgstr "Bitte neu anmelden, da die Session ausgelaufen ist. Keine Angst, die Beiträge wurden gesichert."
#: .\contrib\admin\views\decorators.py:69 #: .\contrib\admin\views\decorators.py:69
msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again." msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
@ -761,12 +761,12 @@ msgstr "Es sieht danach aus, dass der Browser keine Cookies akzeptiert. Bitte im
#: .\contrib\admin\views\decorators.py:83 #: .\contrib\admin\views\decorators.py:83
msgid "Usernames cannot contain the '@' character." msgid "Usernames cannot contain the '@' character."
msgstr "Benutzernamen können das Zeichen '@' nicht enthalten." msgstr "Benutzernamen dürfen das Zeichen '@' nicht enthalten."
#: .\contrib\admin\views\decorators.py:85 #: .\contrib\admin\views\decorators.py:85
#, 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 "Die eMail-Adresse ist nicht der Benutzername. Bitte '%s' stattdessen versuchen." msgstr "Die E-Mail-Adresse entspricht nicht Ihrem Benutzernamen. Bitte stattdessen '%s' versuchen."
#: .\contrib\admin\views\doc.py:46 #: .\contrib\admin\views\doc.py:46
#: .\contrib\admin\views\doc.py:48 #: .\contrib\admin\views\doc.py:48
@ -839,7 +839,7 @@ msgstr "Ganzzahl"
#: .\contrib\admin\views\doc.py:292 #: .\contrib\admin\views\doc.py:292
msgid "Boolean (Either True or False)" msgid "Boolean (Either True or False)"
msgstr "Wahrheitswert (Wahr oder Falsch)" msgstr "Boolscher Wert (True oder False)"
#: .\contrib\admin\views\doc.py:293 #: .\contrib\admin\views\doc.py:293
#: .\contrib\admin\views\doc.py:311 #: .\contrib\admin\views\doc.py:311
@ -849,19 +849,19 @@ msgstr "Zeichenkette (bis zu %(maxlength)s Zeichen)"
#: .\contrib\admin\views\doc.py:294 #: .\contrib\admin\views\doc.py:294
msgid "Comma-separated integers" msgid "Comma-separated integers"
msgstr "Kommaseparierte Liste von Zahlen" msgstr "Kommaseparierte Liste von Ganzzahlen"
#: .\contrib\admin\views\doc.py:295 #: .\contrib\admin\views\doc.py:295
msgid "Date (without time)" msgid "Date (without time)"
msgstr "Datum (ohne Zeit)" msgstr "Datum (ohne Uhrzeit)"
#: .\contrib\admin\views\doc.py:296 #: .\contrib\admin\views\doc.py:296
msgid "Date (with time)" msgid "Date (with time)"
msgstr "Datum (mit Zeit)" msgstr "Datum (mit Uhrzeit)"
#: .\contrib\admin\views\doc.py:297 #: .\contrib\admin\views\doc.py:297
msgid "E-mail address" msgid "E-mail address"
msgstr "E-mail-Adresse" msgstr "E-Mail-Adresse"
#: .\contrib\admin\views\doc.py:298 #: .\contrib\admin\views\doc.py:298
#: .\contrib\admin\views\doc.py:299 #: .\contrib\admin\views\doc.py:299
@ -880,11 +880,11 @@ msgstr "IP-Adresse"
#: .\contrib\admin\views\doc.py:306 #: .\contrib\admin\views\doc.py:306
msgid "Boolean (Either True, False or None)" msgid "Boolean (Either True, False or None)"
msgstr "Wahrheitswert (Wahr, Falsch oder Nichts)" msgstr "Boolscher Wert (True, False oder None)"
#: .\contrib\admin\views\doc.py:307 #: .\contrib\admin\views\doc.py:307
msgid "Relation to parent model" msgid "Relation to parent model"
msgstr "Beziehung zum Übermodell" msgstr "Beziehung zum Eltern-Modell"
#: .\contrib\admin\views\doc.py:308 #: .\contrib\admin\views\doc.py:308
msgid "Phone number" msgid "Phone number"
@ -901,15 +901,15 @@ msgstr "Zeit"
#: .\contrib\admin\views\doc.py:315 #: .\contrib\admin\views\doc.py:315
#: .\contrib\flatpages\models.py:7 #: .\contrib\flatpages\models.py:7
msgid "URL" msgid "URL"
msgstr "URL" msgstr "Adresse (URL)"
#: .\contrib\admin\views\doc.py:316 #: .\contrib\admin\views\doc.py:316
msgid "U.S. state (two uppercase letters)" msgid "U.S. state (two uppercase letters)"
msgstr "U.S. Bundesstaat (zwei Grossbuchstaben)" msgstr "U.S. Bundesstaat (zwei Großbuchstaben)"
#: .\contrib\admin\views\doc.py:317 #: .\contrib\admin\views\doc.py:317
msgid "XML text" msgid "XML text"
msgstr "XML Text" msgstr "XML-Text"
#: .\contrib\admin\views\doc.py:343 #: .\contrib\admin\views\doc.py:343
#, python-format #, python-format
@ -929,7 +929,7 @@ msgstr "Jetzt kann ein weiteres Element vom Typ %s angelegt werden."
#: .\contrib\admin\views\main.py:289 #: .\contrib\admin\views\main.py:289
#, python-format #, python-format
msgid "Add %s" msgid "Add %s"
msgstr "%s zufügen" msgstr "%s hinzufügen"
#: .\contrib\admin\views\main.py:335 #: .\contrib\admin\views\main.py:335
#, python-format #, python-format
@ -965,7 +965,7 @@ msgstr "%(name)s \"%(obj)s\" wurde erfolgreich geändert."
#: .\contrib\admin\views\main.py:353 #: .\contrib\admin\views\main.py:353
#, 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\" wurde erfolgreich zugefügt. Das Element kann jetzt geändert werden." msgstr "%(name)s \"%(obj)s\" wurde erfolgreich hinzugefügt. Das Element kann jetzt geändert werden."
#: .\contrib\admin\views\main.py:391 #: .\contrib\admin\views\main.py:391
#, python-format #, python-format
@ -989,7 +989,7 @@ msgstr "%(name)s \"%(obj)s\" wurde erfolgreich gelöscht."
#: .\contrib\admin\views\main.py:514 #: .\contrib\admin\views\main.py:514
msgid "Are you sure?" msgid "Are you sure?"
msgstr "Sicher? Ganz sicher?" msgstr "Sind Sie ganz sicher?"
#: .\contrib\admin\views\main.py:536 #: .\contrib\admin\views\main.py:536
#, python-format #, python-format
@ -1013,7 +1013,7 @@ msgstr "Datenbankfehler"
#: .\contrib\auth\forms.py:16 #: .\contrib\auth\forms.py:16
#: .\contrib\auth\forms.py:137 #: .\contrib\auth\forms.py:137
msgid "The two password fields didn't match." msgid "The two password fields didn't match."
msgstr "Die zwei Passwörter sind nicht gleich." msgstr "Die beiden Passwörter sind nicht identisch."
#: .\contrib\auth\forms.py:24 #: .\contrib\auth\forms.py:24
msgid "A user with that username already exists." msgid "A user with that username already exists."
@ -1021,7 +1021,7 @@ msgstr "Ein Benutzer mit diesem Namen existiert bereits."
#: .\contrib\auth\forms.py:52 #: .\contrib\auth\forms.py:52
msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in." msgid "Your Web browser doesn't appear to have cookies enabled. Cookies are required for logging in."
msgstr "Der Webbrowser scheint keine Cookies aktiviert zu haben. Cookies sind für die Anmeldung zwingend notwendig." msgstr "Der Webbrowser scheint keine Cookies aktiviert zu haben. Cookies sind für die Anmeldung zwingend erforderlich."
#: .\contrib\auth\forms.py:61 #: .\contrib\auth\forms.py:61
msgid "This account is inactive." msgid "This account is inactive."
@ -1029,11 +1029,11 @@ msgstr "Dieser Benutzer ist inaktiv."
#: .\contrib\auth\forms.py:84 #: .\contrib\auth\forms.py:84
msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?" msgid "That e-mail address doesn't have an associated user account. Are you sure you've registered?"
msgstr "Die Email-Adresse hat keinen Benutzer zugeordnet. Sicher, dass die Adresse hier angemeldet ist?" msgstr "Zu dieser E-Mail-Adresse existiert kein Benutzer. Sicher, dass Sie sich mit dieser Adresse angemeldet haben?"
#: .\contrib\auth\forms.py:116 #: .\contrib\auth\forms.py:116
msgid "The two 'new password' fields didn't match." msgid "The two 'new password' fields didn't match."
msgstr "Die zwei Passwörter sind nicht gleich." msgstr "Die beiden neuen Passwörter sind nicht identisch."
#: .\contrib\auth\forms.py:123 #: .\contrib\auth\forms.py:123
msgid "Your old password was entered incorrectly. Please enter it again." msgid "Your old password was entered incorrectly. Please enter it again."
@ -1084,15 +1084,15 @@ msgstr "Nachname"
#: .\contrib\auth\models.py:93 #: .\contrib\auth\models.py:93
msgid "e-mail address" msgid "e-mail address"
msgstr "eMail-Adresse" msgstr "E-Mail-Adresse"
#: .\contrib\auth\models.py:94 #: .\contrib\auth\models.py:94
msgid "password" msgid "password"
msgstr "Kennwort" msgstr "Passwort"
#: .\contrib\auth\models.py:94 #: .\contrib\auth\models.py:94
msgid "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>." msgid "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change password form</a>."
msgstr "Benutzen Sie die Form '[algo]$[salt]$[hexdigest]' oder das <a href=\"password/\">Passwort ändern Formular</a>." msgstr "Die Form '[algo]$[salt]$[hexdigest]' verwenden, oder das <a href=\"password/\">Passwort ändern Formular</a> benutzen."
#: .\contrib\auth\models.py:95 #: .\contrib\auth\models.py:95
msgid "staff status" msgid "staff status"
@ -1100,7 +1100,7 @@ msgstr "Administrator"
#: .\contrib\auth\models.py:95 #: .\contrib\auth\models.py:95
msgid "Designates whether the user can log into this admin site." msgid "Designates whether the user can log into this admin site."
msgstr "Gibt an, ob der Benutzer sich an der Administrationsseite anmelden kann." msgstr "Legt fest, ob sich der Benutzer an der Administrationsseite anmelden kann."
#: .\contrib\auth\models.py:96 #: .\contrib\auth\models.py:96
msgid "active" msgid "active"
@ -1108,7 +1108,7 @@ msgstr "Aktiv"
#: .\contrib\auth\models.py:96 #: .\contrib\auth\models.py:96
msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts." msgid "Designates whether this user can log into the Django admin. Unselect this instead of deleting accounts."
msgstr "Gibt an, ob der Benutzer sich an der Administrationsseite anmelden kann. Anstelle Benutzer zu löschen, kann das hier auch einfach abgeschaltet werden." msgstr "Legt fest, ob sich der Benutzer an der Administrationsseite anmelden kann. Anstatt einen Benutzer zu löschen, kann er hier auch einfach deaktiviert werden."
#: .\contrib\auth\models.py:97 #: .\contrib\auth\models.py:97
msgid "superuser status" msgid "superuser status"
@ -1116,11 +1116,11 @@ msgstr "Hauptadmin."
#: .\contrib\auth\models.py:97 #: .\contrib\auth\models.py:97
msgid "Designates that this user has all permissions without explicitly assigning them." msgid "Designates that this user has all permissions without explicitly assigning them."
msgstr "Bestimmt, dass dieser Benutzer alle Berechtigungen hat, ohne diese einzeln zuweisen zu müssen." msgstr "Legt fest, dass der Benutzer alle Berechtigungen hat, ohne diese einzeln zuweisen zu müssen."
#: .\contrib\auth\models.py:98 #: .\contrib\auth\models.py:98
msgid "last login" msgid "last login"
msgstr "letzte Anmeldung" msgstr "Letzte Anmeldung"
#: .\contrib\auth\models.py:99 #: .\contrib\auth\models.py:99
msgid "date joined" msgid "date joined"
@ -1169,7 +1169,7 @@ msgstr "Abgemeldet"
#: .\contrib\comments\models.py:67 #: .\contrib\comments\models.py:67
#: .\contrib\comments\models.py:166 #: .\contrib\comments\models.py:166
msgid "object ID" msgid "object ID"
msgstr "Objekt ID" msgstr "Objekt-ID"
#: .\contrib\comments\models.py:68 #: .\contrib\comments\models.py:68
msgid "headline" msgid "headline"
@ -1233,7 +1233,7 @@ msgstr "ist gelöscht"
#: .\contrib\comments\models.py:86 #: .\contrib\comments\models.py:86
msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead." msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
msgstr "Hier einen Haken setzen, wenn der Kommentar unpassend ist. Es wird dann eine \"Dieser Kommentar wurde entfernt\" Meldung statt dessen angezeigt." msgstr "Hier einen Haken setzen, wenn der Kommentar unpassend ist. Stattdessen wird dann \"Dieser Kommentar wurde entfernt\" Meldung angezeigt."
#: .\contrib\comments\models.py:91 #: .\contrib\comments\models.py:91
msgid "comments" msgid "comments"
@ -1347,7 +1347,7 @@ msgstr "Vom Moderator %r gelöscht"
#: .\contrib\comments\templates\comments\form.html.py:8 #: .\contrib\comments\templates\comments\form.html.py:8
msgid "Forgotten your password?" msgid "Forgotten your password?"
msgstr "Kennwort vergessen?" msgstr "Passwort vergessen?"
#: .\contrib\comments\templates\comments\form.html.py:12 #: .\contrib\comments\templates\comments\form.html.py:12
msgid "Ratings" msgid "Ratings"
@ -1383,7 +1383,7 @@ msgstr "Ihr Name:"
#: .\contrib\comments\views\comments.py:27 #: .\contrib\comments\views\comments.py:27
msgid "This rating is required because you've entered at least one other rating." msgid "This rating is required because you've entered at least one other rating."
msgstr "Die Abstimmung ist zwangsweise, weil Du an mindestens einer anderen Abstimmung teilnimmst." msgstr "Diese Abstimmung ist zwingend erforderlich, da Du an mindestens einer weiteren Abstimmung teilnimmst."
#: .\contrib\comments\views\comments.py:111 #: .\contrib\comments\views\comments.py:111
#, python-format #, python-format
@ -1423,7 +1423,7 @@ msgstr "Nur POST ist erlaubt"
#: .\contrib\comments\views\comments.py:192 #: .\contrib\comments\views\comments.py:192
#: .\contrib\comments\views\comments.py:284 #: .\contrib\comments\views\comments.py:284
msgid "One or more of the required fields wasn't submitted" msgid "One or more of the required fields wasn't submitted"
msgstr "Eines oder mehrere der erforderlichen Felder fehlt" msgstr "Eines oder mehrere der erforderlichen Felder fehlen"
#: .\contrib\comments\views\comments.py:196 #: .\contrib\comments\views\comments.py:196
#: .\contrib\comments\views\comments.py:286 #: .\contrib\comments\views\comments.py:286
@ -1442,7 +1442,7 @@ msgstr "Das Kommentarformular wurde nicht mit 'preview' oder 'post' abgeschickt"
#: .\contrib\comments\views\karma.py:19 #: .\contrib\comments\views\karma.py:19
msgid "Anonymous users cannot vote" msgid "Anonymous users cannot vote"
msgstr "Anonyme Benutzer können nicht abstimmen" msgstr "Anonyme Benutzer dürfen nicht abstimmen"
#: .\contrib\comments\views\karma.py:23 #: .\contrib\comments\views\karma.py:23
msgid "Invalid comment ID" msgid "Invalid comment ID"
@ -1450,7 +1450,7 @@ msgstr "Ungültige Kommentar-ID"
#: .\contrib\comments\views\karma.py:25 #: .\contrib\comments\views\karma.py:25
msgid "No voting for yourself" msgid "No voting for yourself"
msgstr "Keine Abstimmung bei Dir selber" msgstr "Keine Abstimmung für dich selbst"
#: .\contrib\contenttypes\models.py:26 #: .\contrib\contenttypes\models.py:26
msgid "python model class name" msgid "python model class name"
@ -1494,7 +1494,7 @@ msgstr "Registrierung erforderlich"
#: .\contrib\flatpages\models.py:14 #: .\contrib\flatpages\models.py:14
msgid "If this is checked, only logged-in users will be able to view the page." msgid "If this is checked, only logged-in users will be able to view the page."
msgstr "Wenn hier ein Haken ist, können nur angemeldete Benutzer diese Seite sehen." msgstr "Wenn hier ein Haken gesetzt ist, können nur angemeldete Benutzer diese Seite sehen."
#: .\contrib\flatpages\models.py:18 #: .\contrib\flatpages\models.py:18
msgid "flat page" msgid "flat page"
@ -1590,7 +1590,7 @@ msgstr "Hier sind nur durch Komma getrennte Ziffern erlaubt."
#: .\core\validators.py:99 #: .\core\validators.py:99
msgid "Enter valid e-mail addresses separated by commas." msgid "Enter valid e-mail addresses separated by commas."
msgstr "Bitte mit Komma getrennte, gültige eMail-Adressen eingeben." msgstr "Bitte mit Komma getrennte, gültige E-Mail-Adressen eingeben."
#: .\core\validators.py:103 #: .\core\validators.py:103
msgid "Please enter a valid IP address." msgid "Please enter a valid IP address."
@ -1643,17 +1643,17 @@ msgstr "Bitte eine gültige Datums- und Zeitangabe im Format JJJJ-MM-TT SS:MM ei
#: .\core\validators.py:161 #: .\core\validators.py:161
#: .\newforms\fields.py:269 #: .\newforms\fields.py:269
msgid "Enter a valid e-mail address." msgid "Enter a valid e-mail address."
msgstr "Bitte eine gültige eMail-Adresse eingeben" msgstr "Bitte eine gültige E-Mail-Adresse eingeben."
#: .\core\validators.py:173 #: .\core\validators.py:173
#: .\core\validators.py:442 #: .\core\validators.py:442
#: .\oldforms\__init__.py:667 #: .\oldforms\__init__.py:667
msgid "No file was submitted. Check the encoding type on the form." msgid "No file was submitted. Check the encoding type on the form."
msgstr "Es wurde keine Datei geschickt. Eventuell ist das Formular-Encoding falsch." msgstr "Es wurde keine Datei übermittelt. Eventuell ist das Formular-Encoding falsch."
#: .\core\validators.py:177 #: .\core\validators.py:177
msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image." msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
msgstr "Bitte ein Bild hochladen. Die Datei, die hochgeladen wurde, ist kein Bild oder ist defekt." msgstr "Bitte ein Bild hochladen. Die hochgeladene Datei ist kein Bild, oder ist defekt."
#: .\core\validators.py:184 #: .\core\validators.py:184
#, python-format #, python-format
@ -1663,16 +1663,16 @@ msgstr "Die URL %s zeigt nicht auf ein gültiges Bild."
#: .\core\validators.py:188 #: .\core\validators.py:188
#, python-format #, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
msgstr "Telefonnummern müssen im Format XXX-XXX-XXXX sein. \"%s\" ist ungültig." msgstr "Telefonnummern müssen das Format XXX-XXX-XXXX haben. \"%s\" ist ungültig."
#: .\core\validators.py:196 #: .\core\validators.py:196
#, python-format #, python-format
msgid "The URL %s does not point to a valid QuickTime video." msgid "The URL %s does not point to a valid QuickTime video."
msgstr "Die URL %s zeigt nicht auf ein gültiges QuickTime video." msgstr "Die URL %s zeigt nicht auf ein gültiges QuickTime-Video."
#: .\core\validators.py:200 #: .\core\validators.py:200
msgid "A valid URL is required." msgid "A valid URL is required."
msgstr "Eine gültige URL ist hier verlangt." msgstr "Eine gültige URL wird hier verlangt."
#: .\core\validators.py:214 #: .\core\validators.py:214
#, python-format #, python-format
@ -1773,25 +1773,25 @@ msgstr[1] "Bitte eine gültige Dezimalzahl mit maximal %s Ziffern eingeben."
#, python-format #, python-format
msgid "Please enter a valid decimal number with a whole part of at most %s digit." msgid "Please enter a valid decimal number with a whole part of at most %s digit."
msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits." msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
msgstr[0] "Bitte eine gültige Dezimalzahl mit maximal %s Ziffer eingeben." msgstr[0] "Bitte eine gültige Dezimalzahl mit einer Gesamtzahl von maximal %s Ziffer eingeben."
msgstr[1] "Bitte eine gültige Dezimalzahl mit maximal %s Ziffern eingeben." msgstr[1] "Bitte eine gültige Dezimalzahl mit einer Gesamtzahl von maximal %s Ziffern eingeben."
#: .\core\validators.py:425 #: .\core\validators.py:425
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s decimal place." msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural "Please enter a valid decimal number with at most %s decimal places." msgid_plural "Please enter a valid decimal number with at most %s decimal places."
msgstr[0] "Bitte eine gültige Dezimalzahl mit maximal %s Dezimalstelle eingeben." msgstr[0] "Bitte eine gültige Dezimalzahl mit maximal %s Dezimalstelle eingeben."
msgstr[1] "Bitte eine gültige Dezimalzahl mit maximal %s Dezimalstellen eingeben." msgstr[1] "Bitte eine gültige Dezimalzahl mit maximal %s Dezimalstellen eingeben."
#: .\core\validators.py:435 #: .\core\validators.py:435
#, python-format #, python-format
msgid "Make sure your uploaded file is at least %s bytes big." msgid "Make sure your uploaded file is at least %s bytes big."
msgstr "Bitte sicherstellen, daß die hochgeladene Datei mindestens %s Bytes gross ist." msgstr "Bitte sicherstellen, dass die hochgeladene Datei mindestens %s Bytes groß ist."
#: .\core\validators.py:436 #: .\core\validators.py:436
#, python-format #, python-format
msgid "Make sure your uploaded file is at most %s bytes big." msgid "Make sure your uploaded file is at most %s bytes big."
msgstr "Bitte sicherstellen, daß die hochgeladene Datei maximal %s Bytes gross ist." msgstr "Bitte sicherstellen, dass die hochgeladene Datei maximal %s Bytes groß ist."
#: .\core\validators.py:453 #: .\core\validators.py:453
msgid "The format for this field is wrong." msgid "The format for this field is wrong."
@ -1857,7 +1857,7 @@ msgstr "Mehrere IDs können mit Komma getrennt werden."
#: .\db\models\fields\related.py:644 #: .\db\models\fields\related.py:644
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 " Um mehr als eine Selektion zu treffen, \"Strg\", oder auf dem Mac \"Command\", beim Klicken gedrückt halten." msgstr "Um mehr als eine Selektion zu treffen, \"Strg\", oder auf dem Mac \"Command\", beim Klicken gedrückt halten."
#: .\db\models\fields\related.py:691 #: .\db\models\fields\related.py:691
#, python-format #, python-format
@ -1881,7 +1881,7 @@ msgstr "Ein '%(optname)s' mit diesem '%(fieldname)s' existiert bereits."
#: .\newforms\fields.py:460 #: .\newforms\fields.py:460
#: .\oldforms\__init__.py:352 #: .\oldforms\__init__.py:352
msgid "This field is required." msgid "This field is required."
msgstr "Dieses Feld ist zwingend." msgstr "Dieses Feld ist zwingend erforderlich."
#: .\db\models\fields\__init__.py:360 #: .\db\models\fields\__init__.py:360
msgid "This value must be an integer." msgid "This value must be an integer."
@ -1897,19 +1897,19 @@ msgstr "Dieses Feld darf nicht leer sein."
#: .\db\models\fields\__init__.py:619 #: .\db\models\fields\__init__.py:619
msgid "Enter a valid filename." msgid "Enter a valid filename."
msgstr "Bitte einen gültigen Dateinamen eingeben" msgstr "Bitte einen gültigen Dateinamen eingeben."
#: .\newforms\fields.py:101 #: .\newforms\fields.py:101
#: .\newforms\fields.py:254 #: .\newforms\fields.py:254
#, fuzzy, python-format #, python-format
msgid "Ensure this value has at most %d characters." msgid "Ensure this value has at most %d characters."
msgstr "Bitte sicherstellen, dass der Text weniger als %s Zeichen hat." msgstr "Bitte sicherstellen, dass der Text maximal %d Zeichen hat."
#: .\newforms\fields.py:103 #: .\newforms\fields.py:103
#: .\newforms\fields.py:256 #: .\newforms\fields.py:256
#, fuzzy, python-format #, python-format
msgid "Ensure this value has at least %d characters." msgid "Ensure this value has at least %d characters."
msgstr "Bitte sicherstellen, dass der Text weniger als %s Zeichen hat." msgstr "Bitte sicherstellen, dass der Text wenigstens %d Zeichen hat."
#: .\newforms\fields.py:128 #: .\newforms\fields.py:128
#, python-format #, python-format
@ -1922,47 +1922,40 @@ msgid "Ensure this value is greater than or equal to %s."
msgstr "Dieser Wert muss größer oder gleich %s sein." msgstr "Dieser Wert muss größer oder gleich %s sein."
#: .\newforms\fields.py:163 #: .\newforms\fields.py:163
#, fuzzy
msgid "Enter a valid date." msgid "Enter a valid date."
msgstr "Bitte einen gültigen Dateinamen eingeben" msgstr "Bitte ein gültiges Datum eingeben."
#: .\newforms\fields.py:190 #: .\newforms\fields.py:190
#, fuzzy
msgid "Enter a valid time." msgid "Enter a valid time."
msgstr "Bitte einen gültigen Dateinamen eingeben" msgstr "Bitte eine gültige Uhrzeit eingeben."
#: .\newforms\fields.py:226 #: .\newforms\fields.py:226
#, fuzzy
msgid "Enter a valid date/time." msgid "Enter a valid date/time."
msgstr "Bitte einen gültigen Dateinamen eingeben" msgstr "Bitte gültiges Datum und Uhrzeit eingeben."
#: .\newforms\fields.py:240 #: .\newforms\fields.py:240
#, fuzzy
msgid "Enter a valid value." msgid "Enter a valid value."
msgstr "Bitte einen gültigen Dateinamen eingeben" msgstr "Bitte einen gültigen Wert eingeben."
#: .\newforms\fields.py:287 #: .\newforms\fields.py:287
#: .\newforms\fields.py:309 #: .\newforms\fields.py:309
#, fuzzy
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "Bitte einen gültigen Dateinamen eingeben" msgstr "Bitte eine gültige Adresse eingeben."
#: .\newforms\fields.py:311 #: .\newforms\fields.py:311
#, fuzzy
msgid "This URL appears to be a broken link." msgid "This URL appears to be a broken link."
msgstr "Die URL %s funktioniert nicht." msgstr "Diese Adresse scheint nicht gültig zu sein."
#: .\newforms\fields.py:359 #: .\newforms\fields.py:359
#: .\newforms\fields.py:386 #: .\newforms\fields.py:386
#, fuzzy, 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; '%(data)s' ist nicht in %(choices)s." msgstr "Bitte eine gültige Auswahl treffen. %s ist keine gültige Auswahl."
#: .\newforms\fields.py:377 #: .\newforms\fields.py:377
#: .\newforms\fields.py:453 #: .\newforms\fields.py:453
#, fuzzy
msgid "Enter a list of values." msgid "Enter a list of values."
msgstr "Bitte einen gültigen Dateinamen eingeben" msgstr "Eine Liste mit Werten eingeben."
#: .\oldforms\__init__.py:387 #: .\oldforms\__init__.py:387
#, python-format #, python-format
@ -1988,7 +1981,7 @@ msgstr "Die ausgewählte Datei ist leer."
#: .\oldforms\__init__.py:725 #: .\oldforms\__init__.py:725
msgid "Enter a whole number between -32,768 and 32,767." msgid "Enter a whole number between -32,768 and 32,767."
msgstr "Bitte eine ganze Zahl zwischen -32.768 und 32.767 eingeben." msgstr "Bitte eine Ganzzahl zwischen -32.768 und 32.767 eingeben."
#: .\oldforms\__init__.py:735 #: .\oldforms\__init__.py:735
msgid "Enter a positive number." msgid "Enter a positive number."
@ -2230,6 +2223,3 @@ msgstr "%(verbose_name)s wurde erfolgreich aktualisiert."
msgid "The %(verbose_name)s was deleted." msgid "The %(verbose_name)s was deleted."
msgstr "%(verbose_name)s wurde gelöscht" msgstr "%(verbose_name)s wurde gelöscht"
#~ msgid "Use '[algo]$[salt]$[hexdigest]'"
#~ msgstr "Im Format '[algo]$[salt]$[hexdigest]'"

View File

@ -9,7 +9,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-12-09 11:51+0100\n" "POT-Creation-Date: 2005-12-09 11:51+0100\n"
"PO-Revision-Date: 2005-12-04 13:21+0100\n" "PO-Revision-Date: 2005-12-04 13:21+0100\n"
"Last-Translator: Georg Bauer <gb@bofh.ms>\n" "Last-Translator: Dirk Eschler <dirk.eschler@gmx.net>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n" "Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
@ -21,11 +21,11 @@ msgstr "Verf
#: contrib/admin/media/js/SelectFilter2.js:41 #: contrib/admin/media/js/SelectFilter2.js:41
msgid "Choose all" msgid "Choose all"
msgstr "alles auswählen" msgstr "Alles auswählen"
#: contrib/admin/media/js/SelectFilter2.js:46 #: contrib/admin/media/js/SelectFilter2.js:46
msgid "Add" msgid "Add"
msgstr "Zufügen" msgstr "Hinzufügen"
#: contrib/admin/media/js/SelectFilter2.js:48 #: contrib/admin/media/js/SelectFilter2.js:48
msgid "Remove" msgid "Remove"
@ -42,7 +42,7 @@ msgstr "Gew
#: contrib/admin/media/js/SelectFilter2.js:59 #: contrib/admin/media/js/SelectFilter2.js:59
msgid "Clear all" msgid "Clear all"
msgstr "alles abwählen" msgstr "Alles abwählen"
#: contrib/admin/media/js/dateparse.js:26 #: contrib/admin/media/js/dateparse.js:26
#: contrib/admin/media/js/calendar.js:24 #: contrib/admin/media/js/calendar.js:24
@ -89,7 +89,7 @@ msgstr "Mittag"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
msgid "Cancel" msgid "Cancel"
msgstr "Abbruch" msgstr "Abbrechen"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
@ -116,3 +116,4 @@ msgstr "Anzeigen"
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63 #: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
msgid "Hide" msgid "Hide"
msgstr "Verbergen" msgstr "Verbergen"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +1,14 @@
# Argentinean spanish translation for the django-admin JS files, based on # Argentinean spanish translation for the django-admin JS files, based on
# Spanish translation work by Jorge Gajon. # Spanish translation work by Jorge Gajon.
# Copyright (C) # This file is distributed under the same license as the Django package.
# This file is distributed under the same license as the PACKAGE package. # Copyright (C) Ramiro Morales <rm0@gmx.net>, 2006,2007.
# Ramiro Morales <rm0@gmx.net>, 2006.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django JavaScript 1.0\n" "Project-Id-Version: Django JavaScript 1.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-09-25 15:09-0300\n" "POT-Creation-Date: 2007-02-25 17:48-0300\n"
"PO-Revision-Date: 2006-05-16 10:20-0300\n" "PO-Revision-Date: 2007-02-25 17:55-0300\n"
"Last-Translator: Ramiro Morales <rm0@gmx.net>\n" "Last-Translator: Ramiro Morales <rm0@gmx.net>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Type: text/plain; charset=ISO-8859-1\n"

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,116 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: Django-kn 0.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-09-25 15:43+0200\n"
"PO-Revision-Date: 2007-01-08 20:22+0530\n"
"Last-Translator: Kannada Localization Team <translation@sampada.info>\n"
"Language-Team: Kannada <translation@sampada.info>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit"
#: contrib/admin/media/js/SelectFilter2.js:33
#, perl-format
msgid "Available %s"
msgstr "ಲಭ್ಯ %s "
#: contrib/admin/media/js/SelectFilter2.js:41
msgid "Choose all"
msgstr "ಎಲ್ಲವನ್ನೂ ಆಯ್ದುಕೊಳ್ಳಿ"
#: contrib/admin/media/js/SelectFilter2.js:46
msgid "Add"
msgstr "ಸೇರಿಸಿ"
#: contrib/admin/media/js/SelectFilter2.js:48
msgid "Remove"
msgstr "ತೆಗೆದು ಹಾಕಿ"
#: contrib/admin/media/js/SelectFilter2.js:53
#, perl-format
msgid "Chosen %s"
msgstr "%s ಆಯ್ದುಕೊಳ್ಳಲಾಗಿದೆ"
#: contrib/admin/media/js/SelectFilter2.js:54
msgid "Select your choice(s) and click "
msgstr ""
"ನಿಮ್ಮ ಆಯ್ಕೆ(ಗಳ)ನ್ನು ಆರಿಸಿ "
"ಮತ್ತು ಕ್ಲಿಕ್ಕಿಸಿ"
#: contrib/admin/media/js/SelectFilter2.js:59
msgid "Clear all"
msgstr "ಎಲ್ಲವನ್ನೂ ತೆರವುಗೊಳಿಸಿ"
#: contrib/admin/media/js/dateparse.js:26
#: contrib/admin/media/js/calendar.js:24
msgid ""
"January February March April May June July August September October November "
"December"
msgstr ""
"ಜನವರಿ ಫೆಬ್ರುವರಿ ಮಾರ್ಚ್ "
"ಎಪ್ರಿಲ್ ಮೇ ಜೂನ್ ಜುಲೈ ಆಗಸ್ಟ್ "
"ಸೆಪ್ಟೆಂಬರ್ ನವೆಂಬರ್ ಡಿಸೆಂಬರ್"
#: contrib/admin/media/js/dateparse.js:27
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
msgstr ""
"ರವಿವಾರ ಸೋಮವಾರ ಮಂಗಳವಾರ "
"ಬುಧವಾರ ಗುರುವಾರ ಶುಕ್ರವಾರ "
"ಶನಿವಾರ"
#: contrib/admin/media/js/calendar.js:25
msgid "S M T W T F S"
msgstr "ರ ಸೋ ಮ ಬು ಗು ಶು ಶ"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:45
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:80
msgid "Now"
msgstr "ಈಗ"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:48
msgid "Clock"
msgstr "ಗಡಿಯಾರ"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
msgid "Choose a time"
msgstr "ಸಮಯವೊಂದನ್ನು ಆರಿಸಿ"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
msgid "Midnight"
msgstr "ಮಧ್ಯರಾತ್ರಿ"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
msgid "6 a.m."
msgstr "ಬೆಳಗಿನ ೬ ಗಂಟೆ "
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
msgid "Noon"
msgstr "ಮಧ್ಯಾಹ್ನ"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:87
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:168
msgid "Cancel"
msgstr "ರದ್ದುಗೊಳಿಸಿ"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:111
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:162
msgid "Today"
msgstr "ಈ ದಿನ"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:114
msgid "Calendar"
msgstr "ಪಂಚಾಂಗ"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:160
msgid "Yesterday"
msgstr "ನಿನ್ನೆ"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:164
msgid "Tomorrow"
msgstr "ನಾಳೆ"

View File

@ -1,18 +1,19 @@
# translation of django.po to Macedonian # translation of mk_django.po to Macedonian
# #
# Georgi Stanojevski <glisha@gmail.com>, 2006. # Georgi Stanojevski <glisha@gmail.com>, 2006, 2007.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: django\n" "Project-Id-Version: mk_django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-15 10:53+1100\n" "POT-Creation-Date: 2007-02-15 10:53+1100\n"
"PO-Revision-Date: 2006-12-04 15:58+0100\n" "PO-Revision-Date: 2007-02-24 13:53+0100\n"
"Last-Translator: Georgi Stanojevski <glisha@gmail.com>\n" "Last-Translator: Georgi Stanojevski <glisha@gmail.com>\n"
"Language-Team: Macedonian <ossm-members@hedona.on.net.mk>\n" "Language-Team: Macedonian <ossm-members@hedona.on.net.mk>\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=2; plural=n != 1;"
#: db/models/manipulators.py:305 #: db/models/manipulators.py:305
#, python-format #, python-format
@ -31,25 +32,18 @@ msgstr "Ве молам внесете правилно %s."
#: db/models/fields/related.py:642 #: db/models/fields/related.py:642
msgid "Separate multiple IDs with commas." msgid "Separate multiple IDs with commas."
msgstr "Одвој ги повеќето идентификациони броеви со запирки." msgstr "Одвојте ги идентификационите броеви со запирки."
#: db/models/fields/related.py:644 #: db/models/fields/related.py:644
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 "Држете го „Control“ или „Command“ на Мекинтош за да изберете повеќе од едно."
msgstr ""
"Држете го „Control“ или „Command“ на Мекинтош за да изберете повеќе од едно."
#: db/models/fields/related.py:691 #: db/models/fields/related.py:691
#, 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 "Please enter valid %(self)s IDs. The values %(value)r are invalid."
"Please enter valid %(self)s IDs. The values %(value)r are invalid." msgstr[0] "Ве молам внесете правилен %(self)s идентификацион број. Оваа вредност %(value)r е неправилна."
msgstr[0] "" msgstr[1] "Ве молам внесете правилен %(self)s идентификацион број. Вредностите %(value)r се неправилни."
"Ве молам внесете правилен %(self)s идентификацион број. Оваа вредност %"
"(value)r е неправилна. "
msgstr[1] ""
"Ве молам внесете правилен %(self)s идентификацион број. Вредностите %(value)"
"r се неправилни."
#: db/models/fields/__init__.py:42 #: db/models/fields/__init__.py:42
#, python-format #, python-format
@ -161,24 +155,23 @@ msgstr "Јапонски"
#: conf/global_settings.py:57 #: conf/global_settings.py:57
msgid "Latvian" msgid "Latvian"
msgstr "" msgstr "Латвиски"
#: conf/global_settings.py:58 #: conf/global_settings.py:58
msgid "Macedonian" msgid "Macedonian"
msgstr "" msgstr "Македонски"
#: conf/global_settings.py:59 #: conf/global_settings.py:59
msgid "Dutch" msgid "Dutch"
msgstr "Холандија" msgstr "Холандски"
#: conf/global_settings.py:60 #: conf/global_settings.py:60
msgid "Norwegian" msgid "Norwegian"
msgstr "Норвешки" msgstr "Норвешки"
#: conf/global_settings.py:61 #: conf/global_settings.py:61
#, fuzzy
msgid "Polish" msgid "Polish"
msgstr "Англиски" msgstr "Полски"
#: conf/global_settings.py:62 #: conf/global_settings.py:62
msgid "Brazilian" msgid "Brazilian"
@ -509,20 +502,17 @@ msgstr "сесии"
#: contrib/auth/forms.py:17 contrib/auth/forms.py:138 #: contrib/auth/forms.py:17 contrib/auth/forms.py:138
msgid "The two password fields didn't match." msgid "The two password fields didn't match."
msgstr "" msgstr "Двете полиња со лозинките не се совпаѓаат."
#: contrib/auth/forms.py:25 #: contrib/auth/forms.py:25
#, fuzzy
msgid "A user with that username already exists." msgid "A user with that username already exists."
msgstr "%(optname)s со ова %(fieldname)s веќе постои." msgstr "Веќе постои корисник со тоа корисничко име."
#: contrib/auth/forms.py:53 #: contrib/auth/forms.py:53
msgid "" msgid ""
"Your Web browser doesn't appear to have cookies enabled. Cookies are " "Your Web browser doesn't appear to have cookies enabled. Cookies are "
"required for logging in." "required for logging in."
msgstr "" msgstr "Не изгледа дека вашиот прелистувач има овозможено колачиња. Колачињата се потребни за да се најавите."
"Не изгледа дека вашиот прелистувач има овозможено колачиња. Колачињата се "
"потребни за да се најавите."
#: contrib/auth/forms.py:60 contrib/admin/views/decorators.py:10 #: contrib/auth/forms.py:60 contrib/admin/views/decorators.py:10
msgid "" msgid ""
@ -540,15 +530,15 @@ msgstr "Оваа сметка е неактивна."
msgid "" msgid ""
"That e-mail address doesn't have an associated user account. Are you sure " "That e-mail address doesn't have an associated user account. Are you sure "
"you've registered?" "you've registered?"
msgstr "" msgstr "Нема регистрирано корисник со оваа адреса за е-пошта. Сигурни ли сте дека сте регистрирани?"
#: contrib/auth/forms.py:117 #: contrib/auth/forms.py:117
msgid "The two 'new password' fields didn't match." msgid "The two 'new password' fields didn't match."
msgstr "" msgstr "Двете нови лозинки не се совпаѓаат."
#: contrib/auth/forms.py:124 #: contrib/auth/forms.py:124
msgid "Your old password was entered incorrectly. Please enter it again." msgid "Your old password was entered incorrectly. Please enter it again."
msgstr "" msgstr "Не ја внесовте точно вашата стара лозинка. Ве молам внесете ја повторно."
#: contrib/auth/views.py:39 #: contrib/auth/views.py:39
msgid "Logged out" msgid "Logged out"
@ -610,7 +600,7 @@ msgstr "лозинка"
msgid "" msgid ""
"Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change " "Use '[algo]$[salt]$[hexdigest]' or use the <a href=\"password/\">change "
"password form</a>." "password form</a>."
msgstr "" msgstr "Користете '[algo]$[salt]$[hexdigest]' или користете ја <a href=\"password/\">формата за промена на лозинката</a>."
#: contrib/auth/models.py:95 #: contrib/auth/models.py:95
msgid "staff status" msgid "staff status"
@ -618,8 +608,7 @@ msgstr "статус на администраторите"
#: contrib/auth/models.py:95 #: contrib/auth/models.py:95
msgid "Designates whether the user can log into this admin site." msgid "Designates whether the user can log into this admin site."
msgstr "" msgstr "Означува дали корисникот може да се логира во сајтот за администрација."
"Означува дали корисникот може да се логира во сајтот за администрација."
#: contrib/auth/models.py:96 #: contrib/auth/models.py:96
msgid "active" msgid "active"
@ -742,8 +731,7 @@ msgid "URL"
msgstr "URL" msgstr "URL"
#: contrib/flatpages/models.py:8 #: contrib/flatpages/models.py:8
msgid "" msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr "" msgstr ""
"На пр. „/za/kontakt/“. Осигурајте се да имате коса црта и на крајот и на " "На пр. „/za/kontakt/“. Осигурајте се да имате коса црта и на крајот и на "
"почетокот." "почетокот."
@ -1054,8 +1042,7 @@ msgid "No voting for yourself"
msgstr "Нема гласање за самиот себе" msgstr "Нема гласање за самиот себе"
#: contrib/comments/views/comments.py:27 #: contrib/comments/views/comments.py:27
msgid "" msgid "This rating is required because you've entered at least one other rating."
"This rating is required because you've entered at least one other rating."
msgstr "" msgstr ""
"Ова гласање за популарност е потребно бидејќи внесовте најмалку уште едно " "Ова гласање за популарност е потребно бидејќи внесовте најмалку уште едно "
"друго." "друго."
@ -1114,9 +1101,7 @@ msgstr "Некој ја променил формата за коментари
msgid "" msgid ""
"The comment form had an invalid 'target' parameter -- the object ID was " "The comment form had an invalid 'target' parameter -- the object ID was "
"invalid" "invalid"
msgstr "" msgstr "Формата за коментар имаше неправилен „target“ параметар - идентификациониот број на објектот беше неправилен"
"Формата за коментар имаше неправилен „target“ параметар - идентификациониот "
"број на објектот беше неправилен."
#: contrib/comments/views/comments.py:257 #: contrib/comments/views/comments.py:257
#: contrib/comments/views/comments.py:321 #: contrib/comments/views/comments.py:321
@ -1316,8 +1301,7 @@ msgstr "Уреди го овој објект (во овој прозорец)"
#: contrib/admin/templates/admin_doc/bookmarklets.html:26 #: contrib/admin/templates/admin_doc/bookmarklets.html:26
msgid "Jumps to the admin page for pages that represent a single object." msgid "Jumps to the admin page for pages that represent a single object."
msgstr "" msgstr "Скокнува до админ страницата за страници кои претставуваат единечен објект."
"Скокнува до админ страницата за страници кои претставуваат единечен објект."
#: contrib/admin/templates/admin_doc/bookmarklets.html:28 #: contrib/admin/templates/admin_doc/bookmarklets.html:28
msgid "Edit this object (new window)" msgid "Edit this object (new window)"
@ -1438,10 +1422,7 @@ msgid ""
"Deleting the %(object_name)s '%(escaped_object)s' would result in deleting " "Deleting the %(object_name)s '%(escaped_object)s' would result in deleting "
"related objects, but your account doesn't have permission to delete the " "related objects, but your account doesn't have permission to delete the "
"following types of objects:" "following types of objects:"
msgstr "" msgstr "Бришење на %(object_name)s '%(escaped_object)s' ќе резултира со бришење на поврзаните објекти, но со вашата сметка немате доволно привилегии да ги бришете следните типови на објекти:"
"Бришење на %(object_name)s '%(escaped_object)s' ќе резултира со бришење на "
"поврзаните објекти, но со вашата сметка немате доволно привилегии да ги "
"бришете следните типови на објекти."
#: contrib/admin/templates/admin/delete_confirmation.html:21 #: contrib/admin/templates/admin/delete_confirmation.html:21
#, python-format #, python-format
@ -1575,7 +1556,7 @@ msgstr "Заради верификација внесете ја истата
#: contrib/admin/templates/admin/auth/user/change_password.html:28 #: contrib/admin/templates/admin/auth/user/change_password.html:28
#, python-format #, python-format
msgid "Enter a new password for the user <strong>%(username)s</strong>." msgid "Enter a new password for the user <strong>%(username)s</strong>."
msgstr "" msgstr "Внесете нова лозинка за корисникот <strong>%(username)s</strong>."
#: contrib/admin/templates/widget/file.html:2 #: contrib/admin/templates/widget/file.html:2
msgid "Currently:" msgid "Currently:"
@ -1595,8 +1576,7 @@ msgstr "Време:"
#: contrib/admin/templates/registration/logged_out.html:8 #: contrib/admin/templates/registration/logged_out.html:8
msgid "Thanks for spending some quality time with the Web site today." msgid "Thanks for spending some quality time with the Web site today."
msgstr "" msgstr "Ви благодариме што денеска поминавте квалитетно време со интернет страницава."
"Ви благодариме што денеска поминавте квалитетно време со интернет страницава."
#: contrib/admin/templates/registration/logged_out.html:10 #: contrib/admin/templates/registration/logged_out.html:10
msgid "Log in again" msgid "Log in again"
@ -1604,8 +1584,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 "Ја добивата оваа порака бидејќи побаравте да се ресетира вашата лозинка"
"Ја добивата оваа порака бидејќи побаравте да се ресетира вашата лозинка"
#: contrib/admin/templates/registration/password_reset_email.html:3 #: contrib/admin/templates/registration/password_reset_email.html:3
#, python-format #, python-format
@ -1619,8 +1598,7 @@ msgstr "Вашата нова лозинка е: %(new_password)s"
#: contrib/admin/templates/registration/password_reset_email.html:7 #: contrib/admin/templates/registration/password_reset_email.html:7
msgid "Feel free to change this password by going to this page:" msgid "Feel free to change this password by going to this page:"
msgstr "" msgstr "Чуствувајте се слободно да ја промените оваа лозинка преку оваа страница:"
"Чуствувајте се слободно да ја промените оваа лозинка преку оваа страница:"
#: contrib/admin/templates/registration/password_reset_email.html:11 #: contrib/admin/templates/registration/password_reset_email.html:11
msgid "Your username, in case you've forgotten:" msgid "Your username, in case you've forgotten:"
@ -1699,9 +1677,7 @@ msgstr "Вашата лозинка беше сменета."
msgid "" msgid ""
"Forgotten your password? Enter your e-mail address below, and we'll reset " "Forgotten your password? Enter your e-mail address below, and we'll reset "
"your password and e-mail the new one to you." "your password and e-mail the new one to you."
msgstr "" msgstr "Сте ја заборавиле вашата лозинка? Внесете ја вашата е-пошта подолу, ќе ја ресетираме вашата лозинка и новата ќе ви ја пратиме по е-пошта."
"Сте ја заборавиле вашата лозинка? Внесете ја вашата е-пошта подолу, ќе ја "
"ресетираме вашата лозинка и новата ќе ви ја пратиме по е-пошта."
#: contrib/admin/templates/registration/password_reset_form.html:16 #: contrib/admin/templates/registration/password_reset_form.html:16
msgid "E-mail address:" msgid "E-mail address:"
@ -1738,7 +1714,7 @@ msgstr "Додади %s"
#: contrib/admin/views/main.py:335 #: contrib/admin/views/main.py:335
#, python-format #, python-format
msgid "Added %s." msgid "Added %s."
msgstr "Додадено %s" msgstr "Додадено %s."
#: contrib/admin/views/main.py:337 #: contrib/admin/views/main.py:337
#, python-format #, python-format
@ -1761,8 +1737,7 @@ msgstr "%(name)s \"%(obj)s\" беше успешно изменета."
#: contrib/admin/views/main.py:353 #: contrib/admin/views/main.py:353
#, 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\" беше успешно додадена.Подолу можете повторно да ја " "%(name)s \"%(obj)s\" беше успешно додадена.Подолу можете повторно да ја "
"уредите." "уредите."
@ -1968,87 +1943,78 @@ msgid "Add user"
msgstr "Додади корисник" msgstr "Додади корисник"
#: contrib/admin/views/auth.py:57 #: contrib/admin/views/auth.py:57
#, fuzzy
msgid "Password changed successfully." msgid "Password changed successfully."
msgstr "Успешна промена на лозинката" msgstr "Успешна промена на лозинката."
#: contrib/admin/views/auth.py:64 #: contrib/admin/views/auth.py:64
#, fuzzy, python-format #, python-format
msgid "Change password: %s" msgid "Change password: %s"
msgstr "Промени лозинка" msgstr "Промени лозинка: %s"
#: newforms/fields.py:101 newforms/fields.py:254 #: newforms/fields.py:101 newforms/fields.py:254
#, fuzzy, python-format #, python-format
msgid "Ensure this value has at most %d characters." msgid "Ensure this value has at most %d characters."
msgstr "Осигурајте се дека вашиот текст има помалку од %s знак." msgstr "Осигурајте се дека оваа вредност има најмногу %d знаци."
#: newforms/fields.py:103 newforms/fields.py:256 #: newforms/fields.py:103 newforms/fields.py:256
#, fuzzy, python-format #, python-format
msgid "Ensure this value has at least %d characters." msgid "Ensure this value has at least %d characters."
msgstr "Осигурајте се дека вашиот текст има помалку од %s знак." msgstr "Осигурајте се дека оваа вредност има најмалку %d знаци."
#: newforms/fields.py:126 core/validators.py:120 #: newforms/fields.py:126 core/validators.py:120
msgid "Enter a whole number." msgid "Enter a whole number."
msgstr "Внеси цел број." msgstr "Внеси цел број."
#: newforms/fields.py:128 #: newforms/fields.py:128
#, fuzzy, python-format #, python-format
msgid "Ensure this value is less than or equal to %s." msgid "Ensure this value is less than or equal to %s."
msgstr "Оваа вредноста мора да биде степен од %s." msgstr "Осигурајте се дека оваа вредност е помала или еднаква на %s."
#: newforms/fields.py:130 #: newforms/fields.py:130
#, python-format #, python-format
msgid "Ensure this value is greater than or equal to %s." msgid "Ensure this value is greater than or equal to %s."
msgstr "" msgstr "Осигурајте се дека оваа вредност е поголема или еднаква со %s."
#: newforms/fields.py:163 #: newforms/fields.py:163
#, fuzzy
msgid "Enter a valid date." msgid "Enter a valid date."
msgstr "Внесите правилно име на датотека." msgstr "Внесете правилен датум."
#: newforms/fields.py:190 #: newforms/fields.py:190
#, fuzzy
msgid "Enter a valid time." msgid "Enter a valid time."
msgstr "Внесите правилно име на датотека." msgstr "Внесете правилно време."
#: newforms/fields.py:226 #: newforms/fields.py:226
#, fuzzy
msgid "Enter a valid date/time." msgid "Enter a valid date/time."
msgstr "Внесите правилно име на датотека." msgstr "Внесете правилен датум со време."
#: newforms/fields.py:240 #: newforms/fields.py:240
#, fuzzy
msgid "Enter a valid value." msgid "Enter a valid value."
msgstr "Внесите правилно име на датотека." msgstr "Внесете правилна вредност."
#: newforms/fields.py:269 core/validators.py:161 #: newforms/fields.py:269 core/validators.py:161
msgid "Enter a valid e-mail address." msgid "Enter a valid e-mail address."
msgstr "Внесте правилна адреса за е-пошта." msgstr "Внесeте правилна адреса за е-пошта."
#: newforms/fields.py:287 newforms/fields.py:309 #: newforms/fields.py:287 newforms/fields.py:309
#, fuzzy
msgid "Enter a valid URL." msgid "Enter a valid URL."
msgstr "Внесите правилно име на датотека." msgstr "Внесете правилна адреса."
#: newforms/fields.py:311 #: newforms/fields.py:311
#, fuzzy
msgid "This URL appears to be a broken link." msgid "This URL appears to be a broken link."
msgstr "Адресата %s е скршена врска." msgstr "Оваа адреса изгледа дека не е достапна."
#: newforms/fields.py:359 #: newforms/fields.py:359
#, fuzzy
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 "Изберете правилно, %(data)s' не е во %(choices)s." msgstr "Изберете правилно. Тоа не е едно од можните избори."
#: newforms/fields.py:377 newforms/fields.py:453 #: newforms/fields.py:377 newforms/fields.py:453
#, fuzzy
msgid "Enter a list of values." msgid "Enter a list of values."
msgstr "Внесите правилно име на датотека." msgstr "Внесете листа на вредности."
#: newforms/fields.py:386 #: newforms/fields.py:386
#, fuzzy, 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 "Изберете правилно, %(data)s' не е во %(choices)s." msgstr "Внесете правилно. %s не е еден од достапните вредности."
#: template/defaultfilters.py:436 #: template/defaultfilters.py:436
msgid "yes,no,maybe" msgid "yes,no,maybe"
@ -2077,8 +2043,7 @@ msgstr "Оваа вредност смее да има само букви, бр
msgid "" 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 "Оваа вредност смее да има само букви, бројки, долни црти, црти или коси црти."
"Оваа вредност смее да има само букви, бројки, долни црти, црти или коси црти."
#: core/validators.py:72 #: core/validators.py:72
msgid "This value must contain only letters, numbers, underscores or hyphens." msgid "This value must contain only letters, numbers, underscores or hyphens."
@ -2127,7 +2092,7 @@ msgstr "Годината мора да биде 1900 или покасно."
#: core/validators.py:143 #: core/validators.py:143
#, python-format #, python-format
msgid "Invalid date: %s." msgid "Invalid date: %s."
msgstr "Неправилен датум: %s" msgstr "Неправилен датум: %s."
#: core/validators.py:152 #: core/validators.py:152
msgid "Enter a valid time in HH:MM format." msgid "Enter a valid time in HH:MM format."
@ -2225,19 +2190,19 @@ msgid "Duplicate values are not allowed."
msgstr "Дупликат вредности не се дозволени." msgstr "Дупликат вредности не се дозволени."
#: core/validators.py:364 #: core/validators.py:364
#, fuzzy, python-format #, python-format
msgid "This value must be between %s and %s." msgid "This value must be between %s and %s."
msgstr "Оваа вредноста мора да биде степен од %s." msgstr "Оваа вредноста мора да биде помеѓу %s и %s."
#: core/validators.py:366 #: core/validators.py:366
#, fuzzy, python-format #, python-format
msgid "This value must be at least %s." msgid "This value must be at least %s."
msgstr "Оваа вредноста мора да биде степен од %s." msgstr "Оваа вредноста мора да биде најмалку %s."
#: core/validators.py:368 #: core/validators.py:368
#, fuzzy, python-format #, python-format
msgid "This value must be no more than %s." msgid "This value must be no more than %s."
msgstr "Оваа вредноста мора да биде степен од %s." msgstr "Оваа вредност не смее да биде поголема од %s."
#: core/validators.py:404 #: core/validators.py:404
#, python-format #, python-format
@ -2251,18 +2216,14 @@ msgstr "Ве молам внесете правилен децимален бр
#: core/validators.py:419 #: core/validators.py:419
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s total digit." msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural "" msgid_plural "Please enter a valid decimal number with at most %s total digits."
"Please enter a valid decimal number with at most %s total digits."
msgstr[0] "Ве молам внесете правилен децимален број со најмногу %s цифрa." msgstr[0] "Ве молам внесете правилен децимален број со најмногу %s цифрa."
msgstr[1] "" msgstr[1] "Ве молам внесете правилен децимален број со најмногу %s вкупно цифри."
"Ве молам внесете правилен децимален број со најмногу %s вкупно цифри."
#: core/validators.py:422 #: core/validators.py:422
#, python-format #, python-format
msgid "" msgid "Please enter a valid decimal number with a whole part of at most %s digit."
"Please enter a valid decimal number with a whole part of at most %s digit." msgid_plural "Please enter a valid decimal number with a whole part of at most %s digits."
msgid_plural ""
"Please enter a valid decimal number with a whole part of at most %s digits."
msgstr[0] "" msgstr[0] ""
"Ве молам внесете правилен децимален број кој во целиот број има најмногу %s " "Ве молам внесете правилен децимален број кој во целиот број има најмногу %s "
"цифра." "цифра."
@ -2273,12 +2234,9 @@ msgstr[1] ""
#: core/validators.py:425 #: core/validators.py:425
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s decimal place." msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural "" msgid_plural "Please enter a valid decimal number with at most %s decimal places."
"Please enter a valid decimal number with at most %s decimal places." msgstr[0] "Ве молам внесете правилен децимален број кој има најмногу %s децимална цифра."
msgstr[0] "" msgstr[1] "Ве молам внесете правилен децимален број кој има најмногу %s децимални цифри."
"Ве молам внесете правилен децимален број кој има најмногу %s децимална цифра."
msgstr[1] ""
"Ве молам внесете правилен децимален број кој има најмногу %s децимални цифри."
#: core/validators.py:435 #: core/validators.py:435
#, python-format #, python-format
@ -2305,10 +2263,8 @@ msgstr "Неможев да извадам ништо од %s."
#: core/validators.py:507 #: core/validators.py:507
#, python-format #, python-format
msgid "" msgid "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." msgstr "Адресата %(url)s врати неправилно заглавје Content-Type „%(contenttype)s“."
msgstr ""
"Адресата %(url)s врати неправилно заглавје Content-Type „%(contenttype)s“."
#: core/validators.py:540 #: core/validators.py:540
#, python-format #, python-format
@ -2360,13 +2316,5 @@ msgstr ""
msgid "" msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
"starts with \"%(start)s\".)" "starts with \"%(start)s\".)"
msgstr "" msgstr "Атрибутот „%(attr)s“ на линијата %(line)s има неправилна вредност (линијата започнува со „%(start)s“)."
"Атрибутот „%(attr)s“ на линијата %(line)s има неправилна вредност (линијата "
"започнува со „%(start)s“)."
#~ msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
#~ msgstr ""
#~ "Дали ја <a href=\"/password_reset/\">заборавите вашата лозинката</a>?"
#~ msgid "Use '[algo]$[salt]$[hexdigest]'"
#~ msgstr "Користи '[algo]$[salt]$[hexdigest]'"

View File

@ -1,12 +1,12 @@
# translation of djangojs.po to Macedonian # translation of djangojs.po to Macedonian
# #
# Georgi Stanojevski <glisha@gmail.com>, 2006. # Georgi Stanojevski <glisha@gmail.com>, 2006, 2007.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: djangojs\n" "Project-Id-Version: djangojs\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-02-15 10:53+1100\n" "POT-Creation-Date: 2007-02-15 10:53+1100\n"
"PO-Revision-Date: 2006-12-04 16:18+0100\n" "PO-Revision-Date: 2007-02-24 13:49+0100\n"
"Last-Translator: Georgi Stanojevski <glisha@gmail.com>\n" "Last-Translator: Georgi Stanojevski <glisha@gmail.com>\n"
"Language-Team: Macedonian <ossm-members@hedona.on.net.mk>\n" "Language-Team: Macedonian <ossm-members@hedona.on.net.mk>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -111,8 +111,9 @@ 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 "Скриј"

View File

@ -1,7 +1,9 @@
# translation of django.po to Slovenian # translation of django.po to Slovenian
# Igor Kolar <ike@email.si), 2006. # Igor Kolar <ike@email.si), 2006.
# Nena Kojadin <nena@kiberpipa.org), 2006. # Nena Kojadin <nena@kiberpipa.org), 2006.
# Jure Cuhalev <gandalf@owca.info>, 2006. # Jure Cuhalev <gandalf@owca.info>, 2006, 2007.
# Gasper Koren <gasper@fdvinfo.net>, 2007.
# Jozko Skrablin <jozko.skrablin@gmail.com>, 2007.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
msgid "" msgid ""
@ -9,8 +11,8 @@ msgstr ""
"Project-Id-Version: django\n" "Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-05-16 10:13+0200\n" "POT-Creation-Date: 2006-05-16 10:13+0200\n"
"PO-Revision-Date: 2006-07-29 11:52+0100\n" "PO-Revision-Date: 2007-02-15 21:47+0100\n"
"Last-Translator: Jure Čuhalev <gandalf@owca.info>\n" "Last-Translator: Gasper Koren <gasper@fdvinfo.net>\n"
"Language-Team: Slovenian <lugos-slo@lugos.si>\n" "Language-Team: Slovenian <lugos-slo@lugos.si>\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"
@ -90,7 +92,7 @@ msgstr "je odstranjen/-a"
#: contrib/comments/models.py:86 #: contrib/comments/models.py:86
msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead." msgid "Check this box if the comment is inappropriate. A \"This comment has been removed\" message will be displayed instead."
msgstr "Odkljukaj, če je komntar neprimeren. Namesto komentarja bo vidno obvestilo \"Ta komentar je bil odstranjen\"." msgstr "Odkljukaj, če je komentar neprimeren. Namesto komentarja bo vidno obvestilo \"Ta komentar je bil odstranjen\"."
#: contrib/comments/models.py:91 #: contrib/comments/models.py:91
msgid "comments" msgid "comments"
@ -126,7 +128,7 @@ msgstr "ip naslov"
#: contrib/comments/models.py:173 #: contrib/comments/models.py:173
msgid "approved by staff" msgid "approved by staff"
msgstr "potrjeno s strani osebja" msgstr "osebje je potrdilo"
#: contrib/comments/models.py:176 #: contrib/comments/models.py:176
msgid "free comment" msgid "free comment"
@ -174,7 +176,7 @@ msgstr "datum označitve (zastavice)"
#: contrib/comments/models.py:268 #: contrib/comments/models.py:268
msgid "user flag" msgid "user flag"
msgstr "uporabnikova zastavica" msgstr "uporabniška zastavica"
#: contrib/comments/models.py:269 #: contrib/comments/models.py:269
msgid "user flags" msgid "user flags"
@ -204,7 +206,7 @@ msgstr "Izbris opravil moderator %r"
#: contrib/comments/views/karma.py:19 #: contrib/comments/views/karma.py:19
msgid "Anonymous users cannot vote" msgid "Anonymous users cannot vote"
msgstr "Anonimni upirabniki ne morejo glasovati" msgstr "Anonimni uporabniki ne morejo glasovati"
#: contrib/comments/views/karma.py:23 #: contrib/comments/views/karma.py:23
msgid "Invalid comment ID" msgid "Invalid comment ID"
@ -216,7 +218,7 @@ msgstr "Ni mogoče glasovati zase"
#: contrib/comments/views/comments.py:28 #: contrib/comments/views/comments.py:28
msgid "This rating is required because you've entered at least one other rating." msgid "This rating is required because you've entered at least one other rating."
msgstr "Moraš podati tole oceno, ker si podal vsaj še eno drugo oceno." msgstr "To oceno moraš podati, ker si podal vsaj še eno drugo oceno."
#: contrib/comments/views/comments.py:112 #: contrib/comments/views/comments.py:112
#, python-format #, python-format
@ -233,17 +235,17 @@ msgstr[0] ""
"\n" "\n"
"%(text)s" "%(text)s"
msgstr[1] "" msgstr[1] ""
"Ta komentar je poslal uporabnik, ki je do zdaj poslal manj kot %(count)s komentar:\n"
"\n"
"%(text)s"
msgstr[2] ""
"Ta komentar je poslal uporabnik, ki je do zdaj poslal manj kot %(count)s komentarja:\n" "Ta komentar je poslal uporabnik, ki je do zdaj poslal manj kot %(count)s komentarja:\n"
"\n" "\n"
"%(text)s" "%(text)s"
msgstr[3] "" msgstr[2] ""
"Ta komentar je poslal uporabnik, ki je do zdaj poslal manj kot %(count)s komentarje:\n" "Ta komentar je poslal uporabnik, ki je do zdaj poslal manj kot %(count)s komentarje:\n"
"\n" "\n"
"%(text)s" "%(text)s"
msgstr[3] ""
"Ta komentar je poslal uporabnik, ki je do zdaj poslal manj kot %(count)s komentarjev:\n"
"\n"
"%(text)s"
#: contrib/comments/views/comments.py:117 #: contrib/comments/views/comments.py:117
#, python-format #, python-format
@ -259,7 +261,7 @@ msgstr ""
#: contrib/comments/views/comments.py:189 #: contrib/comments/views/comments.py:189
#: contrib/comments/views/comments.py:280 #: contrib/comments/views/comments.py:280
msgid "Only POSTs are allowed" msgid "Only POSTs are allowed"
msgstr "Dovoljena je le metoda POST" msgstr "Dovoljena je le POST metoda"
#: contrib/comments/views/comments.py:193 #: contrib/comments/views/comments.py:193
#: contrib/comments/views/comments.py:284 #: contrib/comments/views/comments.py:284
@ -398,7 +400,7 @@ msgstr "Neznano"
#: contrib/admin/models.py:16 #: contrib/admin/models.py:16
msgid "action time" msgid "action time"
msgstr "čas oprave dejanja" msgstr "čas dejanja"
#: contrib/admin/models.py:19 #: contrib/admin/models.py:19
msgid "object id" msgid "object id"
@ -410,7 +412,7 @@ msgstr "predstavitev objekta"
#: contrib/admin/models.py:21 #: contrib/admin/models.py:21
msgid "action flag" msgid "action flag"
msgstr "zastavica za določeno dejanje" msgstr "zastavica dejanja"
#: contrib/admin/models.py:22 #: contrib/admin/models.py:22
msgid "change message" msgid "change message"
@ -432,7 +434,7 @@ msgstr "Vsi datumi"
#: contrib/auth/forms.py:36 #: contrib/auth/forms.py:36
#: contrib/auth/forms.py:41 #: contrib/auth/forms.py:41
msgid "Please enter a correct username and password. Note that both fields are case-sensitive." msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
msgstr "Prosimo, vnesite veljavno uporabniško ime in geslo. Opomba: obe polji sta občutljivi na velikost črk" msgstr "Prosimo, vnesite veljavno uporabniško ime in geslo. Opomba: obe polji upoštevata velikost črk."
#: contrib/admin/views/decorators.py:23 #: contrib/admin/views/decorators.py:23
#: contrib/admin/templates/admin/login.html:25 #: contrib/admin/templates/admin/login.html:25
@ -441,11 +443,11 @@ msgstr "Prijavite se"
#: contrib/admin/views/decorators.py:61 #: contrib/admin/views/decorators.py:61
msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved." msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
msgstr "Vaša seja je pretekla; prosimo, prijavite se znova. Ne skrbite, vaše objave so varno shranjene." msgstr "Vaša seja je pretekla; prosimo da se ponovno prijavite. Brez skrbi, vaše objave so varno shranjene."
#: contrib/admin/views/decorators.py:68 #: contrib/admin/views/decorators.py:68
msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again." msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
msgstr "Izgleda, da vaš brskalnik nima podpore za piškotke. Prosimo, vključite piškotke, znova naložite to stran in poskusite še enkrat." msgstr "Izgleda, da vaš brskalnik nima podpore za piškotke. Prosimo, vključite piškotke, osvežite stran in poskusite še enkrat."
#: contrib/admin/views/decorators.py:82 #: contrib/admin/views/decorators.py:82
msgid "Usernames cannot contain the '@' character." msgid "Usernames cannot contain the '@' character."
@ -454,7 +456,7 @@ msgstr "Uporabniška imena ne smejo vsebovati znaka '@'."
#: contrib/admin/views/decorators.py:84 #: contrib/admin/views/decorators.py:84
#, python-format #, python-format
msgid "Your e-mail address is not your username. Try '%s' instead." msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr "Vaš e-mail naslov ne morete uporabljati kot uporabniško ime. Namesto tega uporabite '%s'." msgstr "Vaš e-main naslov ni vaše uporabniško ime. Poskusite uporabiti '%s'."
#: contrib/admin/views/main.py:226 #: contrib/admin/views/main.py:226
msgid "Site administration" msgid "Site administration"
@ -484,7 +486,7 @@ msgstr "Dodaj %s"
#: contrib/admin/views/main.py:336 #: contrib/admin/views/main.py:336
#, python-format #, python-format
msgid "Added %s." msgid "Added %s."
msgstr "Dodal %s." msgstr "Dodan %s."
#: contrib/admin/views/main.py:336 #: contrib/admin/views/main.py:336
#: contrib/admin/views/main.py:338 #: contrib/admin/views/main.py:338
@ -495,12 +497,12 @@ msgstr "in"
#: contrib/admin/views/main.py:338 #: contrib/admin/views/main.py:338
#, python-format #, python-format
msgid "Changed %s." msgid "Changed %s."
msgstr "Spremenil %s." msgstr "Spremenjen %s."
#: contrib/admin/views/main.py:340 #: contrib/admin/views/main.py:340
#, python-format #, python-format
msgid "Deleted %s." msgid "Deleted %s."
msgstr "Izbrisal %s." msgstr "Izbrisn %s."
#: contrib/admin/views/main.py:343 #: contrib/admin/views/main.py:343
msgid "No fields changed." msgid "No fields changed."
@ -509,12 +511,12 @@ msgstr "Nobeno polje ni bilo spremenjeno."
#: contrib/admin/views/main.py:346 #: contrib/admin/views/main.py:346
#, 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\" je bilo uspešno spremenjeno." msgstr "%(name)s \"%(obj)s\" je bil uspešno spremenjeno."
#: contrib/admin/views/main.py:354 #: contrib/admin/views/main.py:354
#, 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\" je bilo uspešno dodano. Znova ga lahko urejate spodaj." msgstr "%(name)s \"%(obj)s\" je bil uspešno dodano. Ponovno ga lahko urejdite spodaj."
#: contrib/admin/views/main.py:392 #: contrib/admin/views/main.py:392
#, python-format #, python-format
@ -534,7 +536,7 @@ msgstr "Eden ali več %(fieldname)s v %(name)s:"
#: contrib/admin/views/main.py:508 #: contrib/admin/views/main.py:508
#, 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\" je bilo uspešno izbrisano." msgstr "%(name)s \"%(obj)s\" je bilo uspešno izbrisan."
#: contrib/admin/views/main.py:511 #: contrib/admin/views/main.py:511
msgid "Are you sure?" msgid "Are you sure?"
@ -562,11 +564,11 @@ msgstr "Izberite %s, ki ga želite spremeniti"
#: contrib/admin/views/doc.py:295 #: contrib/admin/views/doc.py:295
#: contrib/admin/views/doc.py:297 #: contrib/admin/views/doc.py:297
msgid "Integer" msgid "Integer"
msgstr "Število (integer)" msgstr "Celo število (integer)"
#: contrib/admin/views/doc.py:278 #: contrib/admin/views/doc.py:278
msgid "Boolean (Either True or False)" msgid "Boolean (Either True or False)"
msgstr "Boolean (ali True ali False)" msgstr "Boolean (True ali False)"
#: contrib/admin/views/doc.py:279 #: contrib/admin/views/doc.py:279
#: contrib/admin/views/doc.py:296 #: contrib/admin/views/doc.py:296
@ -576,19 +578,19 @@ msgstr "Niz (vse do %(maxlength)s)"
#: contrib/admin/views/doc.py:280 #: contrib/admin/views/doc.py:280
msgid "Comma-separated integers" msgid "Comma-separated integers"
msgstr "Z vejico ločeni integerji" msgstr "Z vejico ločena cela števila (integer)"
#: contrib/admin/views/doc.py:281 #: contrib/admin/views/doc.py:281
msgid "Date (without time)" msgid "Date (without time)"
msgstr "Datum (brez časa)" msgstr "Datum (brez ure)"
#: contrib/admin/views/doc.py:282 #: contrib/admin/views/doc.py:282
msgid "Date (with time)" msgid "Date (with time)"
msgstr "Datum (s časom)" msgstr "Datum (z uro)"
#: contrib/admin/views/doc.py:283 #: contrib/admin/views/doc.py:283
msgid "E-mail address" msgid "E-mail address"
msgstr "E-naslov" msgstr "E-mail naslov"
#: contrib/admin/views/doc.py:284 #: contrib/admin/views/doc.py:284
#: contrib/admin/views/doc.py:287 #: contrib/admin/views/doc.py:287
@ -601,7 +603,7 @@ msgstr "Decimalno število"
#: contrib/admin/views/doc.py:291 #: contrib/admin/views/doc.py:291
msgid "Boolean (Either True, False or None)" msgid "Boolean (Either True, False or None)"
msgstr "Boolean (ali True ali False ali None)" msgstr "Boolean (True, False ali None)"
#: contrib/admin/views/doc.py:292 #: contrib/admin/views/doc.py:292
msgid "Relation to parent model" msgid "Relation to parent model"
@ -701,11 +703,11 @@ msgstr "N j, Y, H:i"
#: contrib/admin/templates/admin/object_history.html:36 #: contrib/admin/templates/admin/object_history.html:36
msgid "This object doesn't have a change history. It probably wasn't added via this admin site." msgid "This object doesn't have a change history. It probably wasn't added via this admin site."
msgstr "Ta objekt nima zgodovine. Verjetno ni bil dodan preko te administratorske strani." msgstr "Ta objekt nima zgodovine sprememb. Verjetno ni bil dodan preko te strani za administracijo."
#: contrib/admin/templates/admin/base_site.html:4 #: contrib/admin/templates/admin/base_site.html:4
msgid "Django site admin" msgid "Django site admin"
msgstr "Django site admin" msgstr "Vmesnik za administracijo Django strani"
#: contrib/admin/templates/admin/base_site.html:7 #: contrib/admin/templates/admin/base_site.html:7
msgid "Django administration" msgid "Django administration"
@ -717,7 +719,7 @@ msgstr "Napaka strežnika"
#: contrib/admin/templates/admin/500.html:6 #: contrib/admin/templates/admin/500.html:6
msgid "Server error (500)" msgid "Server error (500)"
msgstr "Django napaka (500)" msgstr "Napaka strežnika (500)"
#: contrib/admin/templates/admin/500.html:9 #: contrib/admin/templates/admin/500.html:9
msgid "Server Error <em>(500)</em>" msgid "Server Error <em>(500)</em>"
@ -725,7 +727,7 @@ msgstr "Napaka strežnika <em>(500)</em>"
#: contrib/admin/templates/admin/500.html:10 #: contrib/admin/templates/admin/500.html:10
msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience." msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
msgstr "Prišlo je do nepričakovane napake. Administratorji strani so že obveščeni prekoe-pošte in naj bi jo v kratkem odpravili. Hvala za vaše potrpljenje." msgstr "Prišlo je do nepričakovane napake. Administrator je preko e-pošte prejel obvestilo o napaki in jo bo v kratkem odpravil. Hvala za potrpljenje."
#: contrib/admin/templates/admin/404.html:4 #: contrib/admin/templates/admin/404.html:4
#: contrib/admin/templates/admin/404.html:8 #: contrib/admin/templates/admin/404.html:8
@ -734,7 +736,7 @@ msgstr "Strani ni mogoče najti"
#: contrib/admin/templates/admin/404.html:10 #: contrib/admin/templates/admin/404.html:10
msgid "We're sorry, but the requested page could not be found." msgid "We're sorry, but the requested page could not be found."
msgstr "Se opravičujemo, a zahtevane strani ni mogoče najti." msgstr "Opravičujemo se, a zahtevane strani ni mogoče najti."
#: contrib/admin/templates/admin/index.html:17 #: contrib/admin/templates/admin/index.html:17
#, python-format #, python-format
@ -773,7 +775,7 @@ msgstr "Dodaj %(name)s"
#: contrib/admin/templates/admin/login.html:22 #: contrib/admin/templates/admin/login.html:22
msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?" msgid "Have you <a href=\"/password_reset/\">forgotten your password</a>?"
msgstr "Ste <a href=\"/password_reset/\">pozabili geslo</a>" msgstr "Ste <a href=\"/password_reset/\">pozabili geslo</a>?"
#: contrib/admin/templates/admin/base.html:23 #: contrib/admin/templates/admin/base.html:23
msgid "Welcome," msgid "Welcome,"
@ -787,7 +789,7 @@ msgstr "Izbriši"
#: contrib/admin/templates/admin/delete_confirmation.html:14 #: contrib/admin/templates/admin/delete_confirmation.html:14
#, python-format #, python-format
msgid "Deleting the %(object_name)s '%(object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:" msgid "Deleting the %(object_name)s '%(object)s' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:"
msgstr "Izbris %(object_name)s '%(object)s' bi pomenil izbris povezanih objektov, vendarvi nimate dovoljenja za izbris naslednjih tipov objektov:" msgstr "Izbris %(object_name)s '%(object)s' bi pomenil izbris povezanih objektov, vendar nimate dovoljenja za izbris naslednjih tipov objektov:"
#: contrib/admin/templates/admin/delete_confirmation.html:21 #: contrib/admin/templates/admin/delete_confirmation.html:21
#, python-format #, python-format
@ -815,17 +817,17 @@ msgstr "Poglej na strani"
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] "Prosimo, odpravite sledečo napako." msgstr[0] "Prosimo, odpravite sledečo napako."
msgstr[1] "Prosimo, odpravite sledeče napake." msgstr[1] "Prosimo, odpravite sledeči napaki."
msgstr[2] "Prosimo, odpravite sledeči napaki." msgstr[2] "Prosimo, odpravite sledeče napake."
msgstr[3] "Prosimo, odpravite sledeče napake." msgstr[3] "Prosimo, odpravite sledeče napake."
#: contrib/admin/templates/admin/change_form.html:48 #: contrib/admin/templates/admin/change_form.html:48
msgid "Ordering" msgid "Ordering"
msgstr "Urejanje" msgstr "Razvrščanje"
#: contrib/admin/templates/admin/change_form.html:51 #: contrib/admin/templates/admin/change_form.html:51
msgid "Order:" msgid "Order:"
msgstr "Uredi:" msgstr "Razvrsti:"
#: contrib/admin/templates/admin/submit_line.html:4 #: contrib/admin/templates/admin/submit_line.html:4
msgid "Save as new" msgid "Save as new"
@ -853,7 +855,7 @@ msgstr "Sprememba gesla"
#: 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 "Geslo uspešno spremenjeno" msgstr "Sprememba gesla je uspela"
#: 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."
@ -864,23 +866,23 @@ msgstr "Vaše geslo je bilo spremenjeno."
#: contrib/admin/templates/registration/password_reset_form.html:10 #: contrib/admin/templates/registration/password_reset_form.html:10
#: contrib/admin/templates/registration/password_reset_done.html:4 #: contrib/admin/templates/registration/password_reset_done.html:4
msgid "Password reset" msgid "Password reset"
msgstr "Obnova gesla" msgstr "Ponastavitev gesla"
#: contrib/admin/templates/registration/password_reset_form.html:12 #: contrib/admin/templates/registration/password_reset_form.html:12
msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you." msgid "Forgotten your password? Enter your e-mail address below, and we'll reset your password and e-mail the new one to you."
msgstr "Ste pozabili geslo? Vnesite vaš e-naslov spodaj in mi vam bomo poslali novo geslo." msgstr "Ste pozabili geslo? Vnesite vaš e-mail naslov in poslali vam bomo novo geslo."
#: contrib/admin/templates/registration/password_reset_form.html:16 #: contrib/admin/templates/registration/password_reset_form.html:16
msgid "E-mail address:" msgid "E-mail address:"
msgstr "E-naslov" msgstr "Naslov e-pošte:"
#: contrib/admin/templates/registration/password_reset_form.html:16 #: contrib/admin/templates/registration/password_reset_form.html:16
msgid "Reset my password" msgid "Reset my password"
msgstr "Obnova gesla" msgstr "Ponastavi moje geslo"
#: contrib/admin/templates/registration/logged_out.html:8 #: contrib/admin/templates/registration/logged_out.html:8
msgid "Thanks for spending some quality time with the Web site today." msgid "Thanks for spending some quality time with the Web site today."
msgstr "Hvala, ker ste si vzeli nekaj časa za to spletno stran." msgstr "Hvala, ker ste si danes vzeli nekaj časa za to spletno stran."
#: contrib/admin/templates/registration/logged_out.html:10 #: contrib/admin/templates/registration/logged_out.html:10
msgid "Log in again" msgid "Log in again"
@ -889,15 +891,15 @@ msgstr "Ponovna prijava"
#: contrib/admin/templates/registration/password_reset_done.html:6 #: contrib/admin/templates/registration/password_reset_done.html:6
#: contrib/admin/templates/registration/password_reset_done.html:10 #: contrib/admin/templates/registration/password_reset_done.html:10
msgid "Password reset successful" msgid "Password reset successful"
msgstr "Geslo je bilo uspešno obnovljeno" msgstr "Ponastavitev gesla je uspela"
#: contrib/admin/templates/registration/password_reset_done.html:12 #: contrib/admin/templates/registration/password_reset_done.html:12
msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly." msgid "We've e-mailed a new password to the e-mail address you submitted. You should be receiving it shortly."
msgstr "Po e-pošti smo vam poslali novo geslo.Morali bi ga prejeti v kratkem" msgstr "Po e-pošti smo vam poslali novo geslo. Morali bi ga prejeti v kratkem"
#: contrib/admin/templates/registration/password_change_form.html:12 #: contrib/admin/templates/registration/password_change_form.html:12
msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." msgid "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly."
msgstr "Prosim, vnesite vaše staro geslo (zaradi varnosti) in nato še dvakrat novo(da preverimo, da se niste zatipkali)" msgstr "Prosim, vnesite vaše staro geslo (zaradi varnosti) in nato še dvakrat novo (da preverimo, da se niste zatipkali)"
#: contrib/admin/templates/registration/password_change_form.html:17 #: contrib/admin/templates/registration/password_change_form.html:17
msgid "Old password:" msgid "Old password:"
@ -913,16 +915,16 @@ msgstr "Potrditev gesla:"
#: contrib/admin/templates/registration/password_change_form.html:23 #: contrib/admin/templates/registration/password_change_form.html:23
msgid "Change my password" msgid "Change my password"
msgstr "Sprememba gesla" msgstr "Spremeni moje geslo"
#: 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 "To pošto ste dobili, ker ste zahtevali spremembo gesla" msgstr "Ta e-mail ste dobili, ker ste zahtevali ponastavitev gesla"
#: contrib/admin/templates/registration/password_reset_email.html:3 #: contrib/admin/templates/registration/password_reset_email.html:3
#, python-format #, python-format
msgid "for your user account at %(site_name)s" msgid "for your user account at %(site_name)s"
msgstr "za vaš uporabniški račun pri %(site_name)s" msgstr "za vaš uporabniški račun na %(site_name)s"
#: contrib/admin/templates/registration/password_reset_email.html:5 #: contrib/admin/templates/registration/password_reset_email.html:5
#, python-format #, python-format
@ -935,7 +937,7 @@ msgstr "Geslo lahko spremenite z obiskom strani:"
#: contrib/admin/templates/registration/password_reset_email.html:11 #: contrib/admin/templates/registration/password_reset_email.html:11
msgid "Your username, in case you've forgotten:" msgid "Your username, in case you've forgotten:"
msgstr "Vaše uporabniško ime (za vsak primer)" msgstr "Vaše uporabniško ime (za vsak primer):"
#: contrib/admin/templates/registration/password_reset_email.html:13 #: contrib/admin/templates/registration/password_reset_email.html:13
msgid "Thanks for using our site!" msgid "Thanks for using our site!"
@ -955,6 +957,7 @@ msgid "Documentation bookmarklets"
msgstr "Dokumentacijske zaznamkice" msgstr "Dokumentacijske zaznamkice"
#: contrib/admin/templates/admin_doc/bookmarklets.html:9 #: contrib/admin/templates/admin_doc/bookmarklets.html:9
#, fuzzy
msgid "" msgid ""
"\n" "\n"
"<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n" "<p class=\"help\">To install bookmarklets, drag the link to your bookmarks\n"
@ -966,11 +969,11 @@ msgid ""
msgstr "" msgstr ""
"\n" "\n"
"<p class=\"help\">Za inštalacijo zaznamkic povlečite povezavo v orodno vrstico\n" "<p class=\"help\">Za inštalacijo zaznamkic povlečite povezavo v orodno vrstico\n"
"z zaznamki, ali kliknite z desno miškino tipko na povezavo in jo dodajte med zaznamkeZdaj lahko uporabite zaznamek s katere koli strani. Opomba: nekatere teh stranilahko gledate le z internega računalnika (preverite s sistemskim administratorjem)</p>\n" "z zaznamki, ali kliknite z desno miškino tipko na povezavo in jo dodajte med zaznamke. Zdaj lahko izberete zaznamkico s katerekoli strani. Opomba: nekatere izmed teh strani lahko gledate le z računalnika, ki je označen kot \"notranji\" (v kolikor niste prepričani, če je vaš računalnik označen kot \"notranji\"se obrnite na sistemskega administratorja).</p>\n"
#: contrib/admin/templates/admin_doc/bookmarklets.html:19 #: contrib/admin/templates/admin_doc/bookmarklets.html:19
msgid "Documentation for this page" msgid "Documentation for this page"
msgstr "Dokumentacija za to stran" msgstr "Dokumentacija te strani"
#: contrib/admin/templates/admin_doc/bookmarklets.html:20 #: contrib/admin/templates/admin_doc/bookmarklets.html:20
msgid "Jumps you from any page to the documentation for the view that generates that page." msgid "Jumps you from any page to the documentation for the view that generates that page."
@ -986,7 +989,7 @@ msgstr "Pokaže content-type in unikatni ID za strani, ki predstavljajo en objek
#: contrib/admin/templates/admin_doc/bookmarklets.html:25 #: contrib/admin/templates/admin_doc/bookmarklets.html:25
msgid "Edit this object (current window)" msgid "Edit this object (current window)"
msgstr "Uredi trenutni objekt (v trenutnem oknu)" msgstr "Uredi objekt (v trenutnem oknu)"
#: contrib/admin/templates/admin_doc/bookmarklets.html:26 #: contrib/admin/templates/admin_doc/bookmarklets.html:26
msgid "Jumps to the admin page for pages that represent a single object." msgid "Jumps to the admin page for pages that represent a single object."
@ -1006,7 +1009,7 @@ msgstr "Datum:"
#: contrib/admin/templates/widget/date_time.html:4 #: contrib/admin/templates/widget/date_time.html:4
msgid "Time:" msgid "Time:"
msgstr "Čas:" msgstr "Ura:"
#: contrib/admin/templates/widget/file.html:2 #: contrib/admin/templates/widget/file.html:2
msgid "Currently:" msgid "Currently:"
@ -1022,7 +1025,7 @@ msgstr "preusmeritev iz"
#: contrib/redirects/models.py:8 #: contrib/redirects/models.py:8
msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'." msgid "This should be an absolute path, excluding the domain name. Example: '/events/search/'."
msgstr "To mora biti absolutna pot, izključujoč domeno. Primer: '/events/search'-" msgstr "Ta pot mora biti absolutna, brez imena domene. Primer: '/events/search'"
#: contrib/redirects/models.py:9 #: contrib/redirects/models.py:9
msgid "redirect to" msgid "redirect to"
@ -1030,7 +1033,7 @@ msgstr "preusmeri na"
#: contrib/redirects/models.py:10 #: contrib/redirects/models.py:10
msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'." msgid "This can be either an absolute path (as above) or a full URL starting with 'http://'."
msgstr "To je ali absolutna pot (kot zgoraj) ali popoln URL naslov (začne se z 'http://')" msgstr "To je lahko absolutna pot (kot zgoraj) ali popoln URL naslov (ki se začne s 'http://')"
#: contrib/redirects/models.py:12 #: contrib/redirects/models.py:12
msgid "redirect" msgid "redirect"
@ -1042,7 +1045,7 @@ msgstr "preusmeritve"
#: contrib/flatpages/models.py:8 #: contrib/flatpages/models.py:8
msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes." msgid "Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr "Primer: '/about/contact/'. Mora vsebovati / (poševnico) na začetku in koncu." msgstr "Primer: '/about/contact/'. Preverite ali vsebuje / (poševnico) na začetku in koncu vnosa."
#: contrib/flatpages/models.py:9 #: contrib/flatpages/models.py:9
msgid "title" msgid "title"
@ -1070,7 +1073,7 @@ msgstr "obvezna registracija"
#: contrib/flatpages/models.py:14 #: contrib/flatpages/models.py:14
msgid "If this is checked, only logged-in users will be able to view the page." msgid "If this is checked, only logged-in users will be able to view the page."
msgstr "Če je to polje odkljukano, si lahko to stran ogledajo le registrirani uporabniki." msgstr "Če je to polje izbrano, si bodo to stran lahko ogledali le prijavljeni uporabniki."
#: contrib/flatpages/models.py:18 #: contrib/flatpages/models.py:18
msgid "flat page" msgid "flat page"
@ -1121,7 +1124,7 @@ msgstr "priimek"
#: contrib/auth/models.py:58 #: contrib/auth/models.py:58
msgid "e-mail address" msgid "e-mail address"
msgstr "e-naslov" msgstr "e-mail naslov"
#: contrib/auth/models.py:59 #: contrib/auth/models.py:59
msgid "password" msgid "password"
@ -1157,7 +1160,7 @@ msgstr "član od"
#: contrib/auth/models.py:66 #: contrib/auth/models.py:66
msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in." msgid "In addition to the permissions manually assigned, this user will also get all permissions granted to each group he/she is in."
msgstr "Polek ročno določenih dovoljenj bo ta uporabnik dobil tudi vsa dovoljenja,ki pripadajo vsem skupinah, v katerih je." msgstr "Poleg ročno določenih dovoljenj bo ta uporabnik dobil tudi vsa dovoljenja, ki pripadajo skupinam, katerih član je."
#: contrib/auth/models.py:67 #: contrib/auth/models.py:67
msgid "user permissions" msgid "user permissions"
@ -1201,19 +1204,19 @@ msgstr "python ime razreda modela"
#: contrib/contenttypes/models.py:28 #: contrib/contenttypes/models.py:28
msgid "content type" msgid "content type"
msgstr "content type" msgstr "tip vsebine"
#: contrib/contenttypes/models.py:29 #: contrib/contenttypes/models.py:29
msgid "content types" msgid "content types"
msgstr "content types" msgstr "tipi vsebine"
#: contrib/sessions/models.py:35 #: contrib/sessions/models.py:35
msgid "session key" msgid "session key"
msgstr "sejni ključ" msgstr "ključ seje"
#: contrib/sessions/models.py:36 #: contrib/sessions/models.py:36
msgid "session data" msgid "session data"
msgstr "podatki v seji" msgstr "podatki seje"
#: contrib/sessions/models.py:37 #: contrib/sessions/models.py:37
msgid "expire date" msgid "expire date"
@ -1415,50 +1418,50 @@ msgstr "dec."
#: utils/timesince.py:12 #: utils/timesince.py:12
msgid "year" msgid "year"
msgid_plural "years" msgid_plural "years"
msgstr[0] "let" msgstr[0] "leto"
msgstr[1] "leto" msgstr[1] "leti"
msgstr[2] "leti" msgstr[2] "leta"
msgstr[3] "leta" msgstr[3] "let"
#: utils/timesince.py:13 #: utils/timesince.py:13
msgid "month" msgid "month"
msgid_plural "months" msgid_plural "months"
msgstr[0] "mesecev" msgstr[0] "mesec"
msgstr[1] "mesec" msgstr[1] "meseca"
msgstr[2] "meseca" msgstr[2] "meseci"
msgstr[3] "meseci" msgstr[3] "mesecev"
#: utils/timesince.py:14 #: utils/timesince.py:14
msgid "week" msgid "week"
msgid_plural "weeks" msgid_plural "weeks"
msgstr[0] "tednov" msgstr[0] "teden"
msgstr[1] "teden" msgstr[1] "tedna"
msgstr[2] "tedna" msgstr[2] "tedni"
msgstr[3] "tednov" msgstr[3] "tednov"
#: utils/timesince.py:15 #: utils/timesince.py:15
msgid "day" msgid "day"
msgid_plural "days" msgid_plural "days"
msgstr[0] "dni" msgstr[0] "dan"
msgstr[1] "dan" msgstr[1] "dneva"
msgstr[2] "dneva" msgstr[2] "dnevi"
msgstr[3] "dni" msgstr[3] "dni"
#: utils/timesince.py:16 #: utils/timesince.py:16
msgid "hour" msgid "hour"
msgid_plural "hours" msgid_plural "hours"
msgstr[0] "ur" msgstr[0] "ura"
msgstr[1] "ura" msgstr[1] "uri"
msgstr[2] "uri" msgstr[2] "ure"
msgstr[3] "ure" msgstr[3] "ur"
#: utils/timesince.py:17 #: utils/timesince.py:17
msgid "minute" msgid "minute"
msgid_plural "minutes" msgid_plural "minutes"
msgstr[0] "minut" msgstr[0] "minuta"
msgstr[1] "minuta" msgstr[1] "minuti"
msgstr[2] "minuti" msgstr[2] "minute"
msgstr[3] "minute" msgstr[3] "minut"
#: conf/global_settings.py:37 #: conf/global_settings.py:37
msgid "Bengali" msgid "Bengali"
@ -1562,7 +1565,7 @@ msgstr "Ukrajinski"
#: conf/global_settings.py:62 #: conf/global_settings.py:62
msgid "Simplified Chinese" msgid "Simplified Chinese"
msgstr "Poenostavljen kitajski" msgstr "Poenostavljeni kitajski"
#: conf/global_settings.py:63 #: conf/global_settings.py:63
msgid "Traditional Chinese" msgid "Traditional Chinese"
@ -1570,27 +1573,27 @@ msgstr "Tradicionalni kitajski"
#: core/validators.py:60 #: core/validators.py:60
msgid "This value must contain only letters, numbers and underscores." msgid "This value must contain only letters, numbers and underscores."
msgstr "To polje lahko vsebuje le črke, števila in podčrtaje (_)." msgstr "Ta vrednost mora vsebovati le črke, števila in podčrtaje (_)."
#: core/validators.py:64 #: core/validators.py:64
msgid "This value must contain only letters, numbers, underscores, dashes or slashes." msgid "This value must contain only letters, numbers, underscores, dashes or slashes."
msgstr "To polje lahko vsebuje le črke, števila, podčrtaje, poševnice ali pomišljaje." msgstr "Ta vrednost mora vsebovati le črke, števila, podčrtaje, poševnice ali pomišljaje."
#: core/validators.py:72 #: core/validators.py:72
msgid "Uppercase letters are not allowed here." msgid "Uppercase letters are not allowed here."
msgstr "Velike tiskane črke tu niso dovoljene." msgstr "Velike tiskane črke niso dovoljene."
#: core/validators.py:76 #: core/validators.py:76
msgid "Lowercase letters are not allowed here." msgid "Lowercase letters are not allowed here."
msgstr "Majhne tiskane črke tu niso dovoljene." msgstr "Majhne tiskane črke niso dovoljene."
#: core/validators.py:83 #: core/validators.py:83
msgid "Enter only digits separated by commas." msgid "Enter only digits separated by commas."
msgstr "Vnesite števila, ločena z vejicami." msgstr "Vnesite samo števila, ločena z vejicami."
#: core/validators.py:95 #: core/validators.py:95
msgid "Enter valid e-mail addresses separated by commas." msgid "Enter valid e-mail addresses separated by commas."
msgstr "Vnesite veljavne e-pošne naslove, ločene z vejicami." msgstr "Vnesite veljavne e-mail naslove, ločene z vejicami."
#: core/validators.py:99 #: core/validators.py:99
msgid "Please enter a valid IP address." msgid "Please enter a valid IP address."
@ -1602,11 +1605,11 @@ msgstr "Prazne vrednosti tu niso dovoljene."
#: core/validators.py:107 #: core/validators.py:107
msgid "Non-numeric characters aren't allowed here." msgid "Non-numeric characters aren't allowed here."
msgstr "Nenumerične vrednosti tukaj niso dovoljne." msgstr "Nenumerični znaki tukaj niso dovoljne."
#: core/validators.py:111 #: core/validators.py:111
msgid "This value can't be comprised solely of digits." msgid "This value can't be comprised solely of digits."
msgstr "To polje ne sme vsebovati le števk." msgstr "Ta vrednost ne sme vsebovati le števk."
#: core/validators.py:116 #: core/validators.py:116
msgid "Enter a whole number." msgid "Enter a whole number."
@ -1614,7 +1617,7 @@ msgstr "Vnesite celo število."
#: core/validators.py:120 #: core/validators.py:120
msgid "Only alphabetical characters are allowed here." msgid "Only alphabetical characters are allowed here."
msgstr "Le črke iz abecede so dovoljene tukaj." msgstr "Tukaj so dovoljene samo črke."
#: core/validators.py:124 #: core/validators.py:124
msgid "Enter a valid date in YYYY-MM-DD format." msgid "Enter a valid date in YYYY-MM-DD format."
@ -1631,11 +1634,11 @@ msgstr "Vnesite veljavni datum/čas v zapisu YYYY-MM-DD HH:MM (leto-mesec-dan ur
#: core/validators.py:136 #: core/validators.py:136
msgid "Enter a valid e-mail address." msgid "Enter a valid e-mail address."
msgstr "Vnesite veljavni e-naslov." msgstr "Vnesite veljaven e-mail."
#: core/validators.py:148 #: core/validators.py:148
msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image." msgid "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
msgstr "Uploadjate veljavno sliko. Trenutna datoteka ni bila niti slika niti okvarjena slika." msgstr "Naložite veljavno sliko. Naložena datoteka ni bila slika ali pa je bila le-ta okvarjena."
#: core/validators.py:155 #: core/validators.py:155
#, python-format #, python-format
@ -1654,7 +1657,7 @@ msgstr "URL %s ne kaže na veljavni QuickTime video."
#: core/validators.py:171 #: core/validators.py:171
msgid "A valid URL is required." msgid "A valid URL is required."
msgstr "Potreben je veljavni URL naslov." msgstr "Potreben je veljaven URL naslov."
#: core/validators.py:185 #: core/validators.py:185
#, python-format #, python-format
@ -1662,24 +1665,24 @@ msgid ""
"Valid HTML is required. Specific errors are:\n" "Valid HTML is required. Specific errors are:\n"
"%s" "%s"
msgstr "" msgstr ""
"Potreben je veljavni HTML. Trenutni ima sledeče napake:\n" "Potreben je veljaven HTML. Trenutni ima sledeče napake:\n"
"%s" "%s"
#: core/validators.py:192 #: core/validators.py:192
#, python-format #, python-format
msgid "Badly formed XML: %s" msgid "Badly formed XML: %s"
msgstr "Pokvarjen XML: %s" msgstr "Nepravilen XML: %s"
#: core/validators.py:202 #: core/validators.py:202
#, python-format #, python-format
msgid "Invalid URL: %s" msgid "Invalid URL: %s"
msgstr "Neveljavni URL naslov: %s" msgstr "Neveljaven URL naslov: %s"
#: core/validators.py:206 #: core/validators.py:206
#: core/validators.py:208 #: core/validators.py:208
#, python-format #, python-format
msgid "The URL %s is a broken link." msgid "The URL %s is a broken link."
msgstr "URL povezava %s je polomljena." msgstr "URL povezava %s ne deluje."
#: core/validators.py:214 #: core/validators.py:214
msgid "Enter a valid U.S. state abbreviation." msgid "Enter a valid U.S. state abbreviation."
@ -1690,7 +1693,7 @@ msgstr "Vnesi veljavno okrajšavo za ameriško zvezno državo."
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] "Pazite na jezik! Beseda %s tu ni dovoljena." msgstr[0] "Pazite na jezik! Beseda %s tu ni dovoljena."
msgstr[1] "Pazite na jezik! Besede %s tu niso dovoljene." msgstr[1] "Pazite na jezik! Besedi %s tu nista dovoljeni."
msgstr[2] "Pazite na jezik! Besede %s tu niso dovoljene." msgstr[2] "Pazite na jezik! Besede %s tu niso dovoljene."
msgstr[3] "Pazite na jezik! Besede %s tu niso dovoljene." msgstr[3] "Pazite na jezik! Besede %s tu niso dovoljene."
@ -1701,22 +1704,22 @@ msgstr "To polje mora ustrezati polju '%s'."
#: core/validators.py:255 #: core/validators.py:255
msgid "Please enter something for at least one field." msgid "Please enter something for at least one field."
msgstr "Prosim, vnesite nekaj v vsaj eno od polj." msgstr "Prosim, vnesite nekaj v vsaj eno izmed polj."
#: core/validators.py:264 #: core/validators.py:264
#: core/validators.py:275 #: core/validators.py:275
msgid "Please enter both fields or leave them both empty." msgid "Please enter both fields or leave them both empty."
msgstr "Prosimo, izpolnite obe polji ali ju pustite obe prazni." msgstr "Prosimo, izpolnite obe polji ali pa pustite obe prazni."
#: core/validators.py:282 #: core/validators.py:282
#, python-format #, python-format
msgid "This field must be given if %(field)s is %(value)s" msgid "This field must be given if %(field)s is %(value)s"
msgstr "To polje mora biti izpolnjeno, če je %(field)s %(value)s" msgstr "To polje mora biti podano, če je %(field)s %(value)s"
#: core/validators.py:294 #: core/validators.py:294
#, python-format #, python-format
msgid "This field must be given if %(field)s is not %(value)s" msgid "This field must be given if %(field)s is not %(value)s"
msgstr "To polje mora biti izpolnjeno, če ni %(field)s %(value)s" msgstr "To polje mora biti podano, če ni %(field)s %(value)s"
#: core/validators.py:313 #: core/validators.py:313
msgid "Duplicate values are not allowed." msgid "Duplicate values are not allowed."
@ -1729,7 +1732,7 @@ msgstr "Ta vrednost mora biti potenca od %s."
#: core/validators.py:347 #: core/validators.py:347
msgid "Please enter a valid decimal number." msgid "Please enter a valid decimal number."
msgstr "Prosim vnesite decimalno število." msgstr "Prosim vnesite veljavno decimalno število."
#: core/validators.py:349 #: core/validators.py:349
#, python-format #, python-format
@ -1745,19 +1748,19 @@ msgstr[3] "Prosimo, vnesite veljavno decimalno število z največ %s števkami."
msgid "Please enter a valid decimal number with at most %s decimal place." msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural "Please enter a valid decimal number with at most %s decimal places." msgid_plural "Please enter a valid decimal number with at most %s decimal places."
msgstr[0] "Prosimo, vnesite veljavno decimalno število z največ %s decimalnim mestom." msgstr[0] "Prosimo, vnesite veljavno decimalno število z največ %s decimalnim mestom."
msgstr[1] "Prosimo, vnesite veljavno decimalno število z največ %s decimalnimi mesti." msgstr[1] "Prosimo, vnesite veljavno decimalno število z največ %s decimalnima mestoma."
msgstr[2] "Prosimo, vnesite veljavno decimalno število z največ %s decimalnimi mesti." msgstr[2] "Prosimo, vnesite veljavno decimalno število z največ %s decimalnimi mesti."
msgstr[3] "Prosimo, vnesite veljavno decimalno število z največ %s decimalnimi mesti." msgstr[3] "Prosimo, vnesite veljavno decimalno število z največ %s decimalnimi mesti."
#: core/validators.py:362 #: core/validators.py:362
#, python-format #, python-format
msgid "Make sure your uploaded file is at least %s bytes big." msgid "Make sure your uploaded file is at least %s bytes big."
msgstr "Prosimo, poskrbite, da bo prenesena datoteka velika vsaj %s bajtov." msgstr "Prosimo, poskrbite, da bo naložena datoteka velika vsaj %s bajtov."
#: core/validators.py:363 #: core/validators.py:363
#, python-format #, python-format
msgid "Make sure your uploaded file is at most %s bytes big." msgid "Make sure your uploaded file is at most %s bytes big."
msgstr "Poskrbite, da bo prenesena datoteka velika največ %s bajtov." msgstr "Poskrbite, da bo naložena datoteka velika največ %s bajtov."
#: core/validators.py:376 #: core/validators.py:376
msgid "The format for this field is wrong." msgid "The format for this field is wrong."
@ -1770,7 +1773,7 @@ msgstr "To polje ni veljavno."
#: core/validators.py:426 #: core/validators.py:426
#, python-format #, python-format
msgid "Could not retrieve anything from %s." msgid "Could not retrieve anything from %s."
msgstr "Iz %s nisem mogel izločiti ničesar." msgstr "Iz %s nisem mogel pridobiti ničesar."
#: core/validators.py:429 #: core/validators.py:429
#, python-format #, python-format
@ -1780,7 +1783,7 @@ msgstr "URL %(url)s je vrnil neveljavni Content-Type '%(contenttype)s'."
#: core/validators.py:462 #: core/validators.py:462
#, python-format #, python-format
msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)" msgid "Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with \"%(start)s\".)"
msgstr "Prosimo, zaprite nezaprto %(tag)s oznako v vrstici %(line)s. (Vrstica se začne z \"%(start)s\".)" msgstr "Prosimo, zaprite %(tag)s oznako v vrstici %(line)s. (Vrstica se začne z \"%(start)s\".)"
#: core/validators.py:466 #: core/validators.py:466
#, python-format #, python-format
@ -1790,7 +1793,7 @@ msgstr "Tekst z začetka vrstice %(line)s ni dovoljen v tem kontekstu. (Vrstica
#: core/validators.py:471 #: core/validators.py:471
#, python-format #, python-format
msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)" msgid "\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%(start)s\".)"
msgstr "\"%(attr)s\" v vrstici %(line)s je neveljavna oznaka. (Vrstica se začne z \"%(start)s\".)" msgstr "\"%(attr)s\" v vrstici %(line)s je neveljaven atribut. (Vrstica se začne z \"%(start)s\".)"
#: core/validators.py:476 #: core/validators.py:476
#, python-format #, python-format
@ -1800,12 +1803,12 @@ msgstr "\"<%(tag)s>\" v vrstici %(line)s je neveljavna oznaka. (Vrstica se začn
#: core/validators.py:480 #: core/validators.py:480
#, python-format #, python-format
msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)" msgid "A tag on line %(line)s is missing one or more required attributes. (Line starts with \"%(start)s\".)"
msgstr "Oznaki na vrstici %(line)s manjka eden ali več zahtevanih parametrov. (Vrstica se začne z \"%(start)s\".)" msgstr "Oznaki v vrstici %(line)s manjka eden ali več zahtevanih parametrov. (Vrstica se začne z \"%(start)s\".)"
#: core/validators.py:485 #: core/validators.py:485
#, python-format #, python-format
msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)" msgid "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line starts with \"%(start)s\".)"
msgstr "Atribut \"%(attr)s\" v vrstici %(line)s vsebuje neveljavno vrednost. (Vrstica se začne z \"%(start)s\".)" msgstr "Parameter \"%(attr)s\" v vrstici %(line)s vsebuje neveljavno vrednost. (Vrstica se začne z \"%(start)s\".)"
#: db/models/manipulators.py:302 #: db/models/manipulators.py:302
#, python-format #, python-format
@ -1827,7 +1830,7 @@ msgstr "To polje je obvezno"
#: db/models/fields/__init__.py:337 #: db/models/fields/__init__.py:337
msgid "This value must be an integer." msgid "This value must be an integer."
msgstr "Ta vrednost mora biti število." msgstr "Ta vrednost mora biti celo število."
#: db/models/fields/__init__.py:369 #: db/models/fields/__init__.py:369
msgid "This value must be either True or False." msgid "This value must be either True or False."
@ -1858,8 +1861,8 @@ msgstr "Držite \"Control\" (ali \"Command\" na Mac-u), za izbiro več kot enega
#, 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."
msgstr[0] "Prosimo, vnesite veljavne %(self)s ID-je. Vrednost %(value)r ni veljavna." msgstr[0] "Prosimo, vnesite veljavne %(self)s ID-e. Vrednost %(value)r ni veljavna."
msgstr[1] "Prosimo, vnesite veljavni %(self)s ID. Vrednosti %(value)r niso veljavne." msgstr[1] "Prosimo, vnesite veljavne %(self)s ID-je. Vrednosti %(value)r nista veljavni."
msgstr[2] "Prosimo, vnesite veljavne %(self)s ID-je. Vrednosti %(value)r niso veljavne." msgstr[2] "Prosimo, vnesite veljavne %(self)s ID-je. Vrednosti %(value)r niso veljavne."
msgstr[3] "Prosimo, vnesite veljavne %(self)s ID-je. Vrednosti %(value)r niso veljavne." msgstr[3] "Prosimo, vnesite veljavne %(self)s ID-je. Vrednosti %(value)r niso veljavne."
@ -1867,8 +1870,8 @@ msgstr[3] "Prosimo, vnesite veljavne %(self)s ID-je. Vrednosti %(value)r niso ve
#, python-format #, python-format
msgid "Ensure your text is less than %s character." msgid "Ensure your text is less than %s character."
msgid_plural "Ensure your text is less than %s characters." msgid_plural "Ensure your text is less than %s characters."
msgstr[0] "Poskrbite, da bo tekst krajši od %s znakov." msgstr[0] "Poskrbite, da bo tekst krajši od %s znaka."
msgstr[1] "Poskrbite, da bo tekst krajši od %s znaka." msgstr[1] "Poskrbite, da bo tekst krajši od %s znakov."
msgstr[2] "Poskrbite, da bo tekst krajši od %s znakov." msgstr[2] "Poskrbite, da bo tekst krajši od %s znakov."
msgstr[3] "Poskrbite, da bo tekst krajši od %s znakov." msgstr[3] "Poskrbite, da bo tekst krajši od %s znakov."
@ -1885,11 +1888,11 @@ msgstr "Izberite veljavno možnost; '%(data)s' ni v %(choices)s."
#: forms/__init__.py:645 #: forms/__init__.py:645
msgid "The submitted file is empty." msgid "The submitted file is empty."
msgstr "Poslano polje je prazno." msgstr "Poslana datoteka je prazna."
#: forms/__init__.py:699 #: forms/__init__.py:699
msgid "Enter a whole number between -32,768 and 32,767." msgid "Enter a whole number between -32,768 and 32,767."
msgstr "Vnesite celo število med -32,768 in 32,767." msgstr "Vnesite celo število med -32.768 in 32.767."
#: forms/__init__.py:708 #: forms/__init__.py:708
msgid "Enter a positive number." msgid "Enter a positive number."
@ -1897,11 +1900,11 @@ msgstr "Vnesite pozitivno število."
#: forms/__init__.py:717 #: forms/__init__.py:717
msgid "Enter a whole number between 0 and 32,767." msgid "Enter a whole number between 0 and 32,767."
msgstr "Vnesite celo število med 0 in 32,767." msgstr "Vnesite celo število med 0 in 32.767."
#: template/defaultfilters.py:379 #: template/defaultfilters.py:379
msgid "yes,no,maybe" msgid "yes,no,maybe"
msgstr "ja,ne,morda" msgstr "da,ne,morda"
msgid "Comment" msgid "Comment"
msgstr "Komentar" msgstr "Komentar"

File diff suppressed because it is too large Load Diff

View File

@ -8,13 +8,12 @@ msgstr ""
"Project-Id-Version: django\n" "Project-Id-Version: django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-12-09 11:51+0100\n" "POT-Creation-Date: 2005-12-09 11:51+0100\n"
"PO-Revision-Date: 2006-01-15 11:24+0100\n" "PO-Revision-Date: 2007-02-20 18:51+0100\n"
"Last-Translator: Nebojša Đorđević <nesh@studioquattro.co.yu>\n" "Last-Translator: Petar Marić <petar.maric@gmail.com>\n"
"Language-Team: Nesh <nesh@studioquatro.co.yu> & Petar <petar.maric@gmail.com> <sr@li.org>\n" "Language-Team: Nesh <nesh@studioquatro.co.yu> & Petar <petar.maric@gmail.com> <sr@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Serbian\n"
"X-Poedit-Country: YUGOSLAVIA\n" "X-Poedit-Country: YUGOSLAVIA\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" "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"
@ -25,15 +24,15 @@ msgstr "Dostupno %s"
#: contrib/admin/media/js/SelectFilter2.js:41 #: contrib/admin/media/js/SelectFilter2.js:41
msgid "Choose all" msgid "Choose all"
msgstr "Izaberi sve" msgstr "Izaberite sve"
#: contrib/admin/media/js/SelectFilter2.js:46 #: contrib/admin/media/js/SelectFilter2.js:46
msgid "Add" msgid "Add"
msgstr "Dodaj" msgstr "Dodajte"
#: contrib/admin/media/js/SelectFilter2.js:48 #: contrib/admin/media/js/SelectFilter2.js:48
msgid "Remove" msgid "Remove"
msgstr "Izbaci" msgstr "Izbacite"
#: contrib/admin/media/js/SelectFilter2.js:53 #: contrib/admin/media/js/SelectFilter2.js:53
#, perl-format #, perl-format
@ -72,7 +71,7 @@ msgstr "Sat"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:77 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:77
msgid "Choose a time" msgid "Choose a time"
msgstr "Izaberi vreme" msgstr "Izaberite vreme"
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81 #: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
msgid "Midnight" msgid "Midnight"

View File

@ -9,7 +9,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2006-05-16 10:13+0200\n" "POT-Creation-Date: 2006-05-16 10:13+0200\n"
"PO-Revision-Date: 2007-01-27 00:32+0100\n" "PO-Revision-Date: 2007-01-27 00:32+0100\n"
"Last-Translator: Mikko Hellsing <mikko@sorl.net>\n" "Last-Translator: Ludvig Ericson <ludvig.ericson@gmail.com>\n"
"Language-Team: Django translators <djangoi18n@googlegroups.com>\n" "Language-Team: Django translators <djangoi18n@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"
@ -130,11 +130,11 @@ msgstr "godkänd av personal"
#: contrib/comments/models.py:176 #: contrib/comments/models.py:176
msgid "free comment" msgid "free comment"
msgstr "frigör kommentar" msgstr "fri kommentar"
#: contrib/comments/models.py:177 #: contrib/comments/models.py:177
msgid "free comments" msgid "free comments"
msgstr "frigör kommentarer" msgstr "fria kommentarer"
#: contrib/comments/models.py:233 #: contrib/comments/models.py:233
msgid "score" msgid "score"
@ -142,7 +142,7 @@ msgstr "poäng"
#: contrib/comments/models.py:234 #: contrib/comments/models.py:234
msgid "score date" msgid "score date"
msgstr "poängens datum" msgstr "poängdatum"
#: contrib/comments/models.py:237 #: contrib/comments/models.py:237
msgid "karma score" msgid "karma score"
@ -191,11 +191,11 @@ msgstr "borttagningsdatum"
#: contrib/comments/models.py:280 #: contrib/comments/models.py:280
msgid "moderator deletion" msgid "moderator deletion"
msgstr "Moderators borttagning" msgstr "moderatorborttagning"
#: contrib/comments/models.py:281 #: contrib/comments/models.py:281
msgid "moderator deletions" msgid "moderator deletions"
msgstr "moderatorers borttagningar" msgstr "moderatorborttagningar"
#: contrib/comments/models.py:285 #: contrib/comments/models.py:285
#, python-format #, python-format
@ -208,7 +208,7 @@ msgstr "Anonyma användare kan inte rösta"
#: contrib/comments/views/karma.py:23 #: contrib/comments/views/karma.py:23
msgid "Invalid comment ID" msgid "Invalid comment ID"
msgstr "Kommentaren har ett ogiltigt ID" msgstr "Ogiltig kommentaridentifikation"
#: contrib/comments/views/karma.py:25 #: contrib/comments/views/karma.py:25
msgid "No voting for yourself" msgid "No voting for yourself"
@ -252,12 +252,12 @@ msgstr "Endast POSTningar är tillåtna"
#: contrib/comments/views/comments.py:193 #: contrib/comments/views/comments.py:193
#: contrib/comments/views/comments.py:284 #: contrib/comments/views/comments.py:284
msgid "One or more of the required fields wasn't submitted" msgid "One or more of the required fields wasn't submitted"
msgstr "Ett eller fler av fälten som krävs fylldes inte i" msgstr "Ett eller flera av de krävda fälten var inte ifyllt"
#: contrib/comments/views/comments.py:197 #: contrib/comments/views/comments.py:197
#: contrib/comments/views/comments.py:286 #: contrib/comments/views/comments.py:286
msgid "Somebody tampered with the comment form (security violation)" msgid "Somebody tampered with the comment form (security violation)"
msgstr "Någon fifflade med kommenteringsformuläret (säkerhetsbrott)" msgstr "Någon fifflade med kommentarformuläret (säkerhetsbrott)"
#: contrib/comments/views/comments.py:207 #: contrib/comments/views/comments.py:207
#: contrib/comments/views/comments.py:292 #: contrib/comments/views/comments.py:292
@ -386,7 +386,7 @@ msgstr "Okänt"
#: contrib/admin/models.py:16 #: contrib/admin/models.py:16
msgid "action time" msgid "action time"
msgstr "tid för händelse" msgstr "händelsetid"
#: contrib/admin/models.py:19 #: contrib/admin/models.py:19
msgid "object id" msgid "object id"
@ -420,7 +420,7 @@ msgstr "Alla datum"
#: contrib/auth/forms.py:36 #: contrib/auth/forms.py:36
#: contrib/auth/forms.py:41 #: contrib/auth/forms.py:41
msgid "Please enter a correct username and password. Note that both fields are case-sensitive." msgid "Please enter a correct username and password. Note that both fields are case-sensitive."
msgstr "V.G. ange ett korrekt användarnamn och lösenord. Systemet skiljer på VERSALER och gemener." msgstr "V.G. ange ett korrekt användarnamn och lösenord. Notera att båda fält är skiftlägeskänsliga."
#: contrib/admin/views/decorators.py:23 #: contrib/admin/views/decorators.py:23
#: contrib/admin/templates/admin/login.html:25 #: contrib/admin/templates/admin/login.html:25
@ -429,11 +429,11 @@ msgstr "Logga in"
#: contrib/admin/views/decorators.py:61 #: contrib/admin/views/decorators.py:61
msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved." msgid "Please log in again, because your session has expired. Don't worry: Your submission has been saved."
msgstr "Du måste logga in igen, eftersom din session har tagit slut. Oroa dig inte: ditt bidrag har sparats." msgstr "V.G. logga in igen, eftersom din session har tagit slut. Oroa dig inte: ditt bidrag har sparats."
#: contrib/admin/views/decorators.py:68 #: contrib/admin/views/decorators.py:68
msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again." msgid "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again."
msgstr "Det ser ut som om din webbläsare inte är konfigurerad att acceptera kakor. Aktivera kakor, ladda om den här sidan, och försök igen." msgstr "Det ser ut som om din webbläsare inte är konfigurerad att acceptera cookies. Aktivera cookies, ladda om den här sidan, och försök igen."
#: contrib/admin/views/decorators.py:82 #: contrib/admin/views/decorators.py:82
msgid "Usernames cannot contain the '@' character." msgid "Usernames cannot contain the '@' character."
@ -462,7 +462,7 @@ msgstr "Du kan ändra det igen här under."
#: contrib/admin/views/main.py:357 #: contrib/admin/views/main.py:357
#, python-format #, python-format
msgid "You may add another %s below." msgid "You may add another %s below."
msgstr "Du kan lägga till en till %s här under" msgstr "Du kan lägga till en till %s här under."
#: contrib/admin/views/main.py:290 #: contrib/admin/views/main.py:290
#, python-format #, python-format
@ -585,7 +585,7 @@ msgstr "Sökväg"
#: contrib/admin/views/doc.py:285 #: contrib/admin/views/doc.py:285
msgid "Decimal number" msgid "Decimal number"
msgstr "decemaltal" msgstr "Decimaltal"
#: contrib/admin/views/doc.py:291 #: contrib/admin/views/doc.py:291
msgid "Boolean (Either True, False or None)" msgid "Boolean (Either True, False or None)"
@ -593,7 +593,7 @@ msgstr "Boolesk (antingen Sann, Falsk eller Inget)"
#: contrib/admin/views/doc.py:292 #: contrib/admin/views/doc.py:292
msgid "Relation to parent model" msgid "Relation to parent model"
msgstr "Relation till förälder" msgstr "Relation till övermodel"
#: contrib/admin/views/doc.py:293 #: contrib/admin/views/doc.py:293
msgid "Phone number" msgid "Phone number"
@ -693,11 +693,11 @@ msgstr "Det här objektet har ingen ändringshistorik. Det lades antagligen inte
#: contrib/admin/templates/admin/base_site.html:4 #: contrib/admin/templates/admin/base_site.html:4
msgid "Django site admin" msgid "Django site admin"
msgstr "Djangos sidadministration" msgstr "Django site-administration"
#: contrib/admin/templates/admin/base_site.html:7 #: contrib/admin/templates/admin/base_site.html:7
msgid "Django administration" msgid "Django administration"
msgstr "Administration för Django" msgstr "Django-administration"
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
msgid "Server error" msgid "Server error"
@ -713,7 +713,7 @@ msgstr "Serverfel <em>(500)</em>"
#: contrib/admin/templates/admin/500.html:10 #: contrib/admin/templates/admin/500.html:10
msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience." msgid "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience."
msgstr "Ett fel har uppstått. Sidadministratören har meddelats via e-post och felet bör åtgärdas snart. Tack för ditt tålamod." msgstr "Ett fel har uppstått. Site-administratören har meddelats via e-post och felet bör åtgärdas snart. Tack för ditt tålamod."
#: contrib/admin/templates/admin/404.html:4 #: contrib/admin/templates/admin/404.html:4
#: contrib/admin/templates/admin/404.html:8 #: contrib/admin/templates/admin/404.html:8
@ -727,7 +727,7 @@ msgstr "Vi är ledsna, men den efterfrågade sidan kunde inte hittas."
#: contrib/admin/templates/admin/index.html:17 #: contrib/admin/templates/admin/index.html:17
#, python-format #, python-format
msgid "Models available in the %(name)s application." msgid "Models available in the %(name)s application."
msgstr "Modeller tillgängliga i applikationen för %(name)s" msgstr "Modeller tillgängliga i %(name)s applikationen."
#: contrib/admin/templates/admin/index.html:28 #: contrib/admin/templates/admin/index.html:28
#: contrib/admin/templates/admin/change_form.html:15 #: contrib/admin/templates/admin/change_form.html:15
@ -740,7 +740,7 @@ msgstr "Ändra"
#: contrib/admin/templates/admin/index.html:44 #: contrib/admin/templates/admin/index.html:44
msgid "You don't have permission to edit anything." msgid "You don't have permission to edit anything."
msgstr "Du har inte rätt att ändra något." msgstr "Du har inte rättigheter att ändra något."
#: contrib/admin/templates/admin/index.html:52 #: contrib/admin/templates/admin/index.html:52
msgid "Recent Actions" msgid "Recent Actions"
@ -789,7 +789,7 @@ msgstr "Ja, jag är säker"
#: contrib/admin/templates/admin/filter.html:2 #: contrib/admin/templates/admin/filter.html:2
#, python-format #, python-format
msgid " By %(title)s " msgid " By %(title)s "
msgstr " Efter %(title)s " msgstr " Av %(title)s "
#: contrib/admin/templates/admin/search_form.html:8 #: contrib/admin/templates/admin/search_form.html:8
msgid "Go" msgid "Go"
@ -954,9 +954,9 @@ msgstr ""
"<p class=\"help\">För att installera smarta bokmärken, dra länken till din\n" "<p class=\"help\">För att installera smarta bokmärken, dra länken till din\n"
"verktygsrad med bokmärken, eller högerklicka på länken och lägg till den\n" "verktygsrad med bokmärken, eller högerklicka på länken och lägg till den\n"
"till dina bokmärken. Nu kan du välja det smarta bokmärket från alla sidor\n" "till dina bokmärken. Nu kan du välja det smarta bokmärket från alla sidor\n"
"på hemsidan. Notera att några av desa smarta bokmärken kräver att du tittar\n" "på hemsidan. Notera att några av dessa smarta bokmärken kräver att du besöker\n"
"på sidan på en dator som är \"intern\" (prata med din systemadministratör\n" "sidan från en dator som är \"intern\" (prata med din systemadministratör\n"
"om du inte är säker på om din dator är \"intern\")</p>\n" "om du inte är säker på om din dator är \"intern\").</p>\n"
#: contrib/admin/templates/admin_doc/bookmarklets.html:19 #: contrib/admin/templates/admin_doc/bookmarklets.html:19
msgid "Documentation for this page" msgid "Documentation for this page"
@ -968,11 +968,11 @@ msgstr "Förflyttar dig från valfri sida till dokumentationen för vyn som gene
#: contrib/admin/templates/admin_doc/bookmarklets.html:22 #: contrib/admin/templates/admin_doc/bookmarklets.html:22
msgid "Show object ID" msgid "Show object ID"
msgstr "Visa objektets id" msgstr "Visa objektets ID"
#: contrib/admin/templates/admin_doc/bookmarklets.html:23 #: contrib/admin/templates/admin_doc/bookmarklets.html:23
msgid "Shows the content-type and unique ID for pages that represent a single object." msgid "Shows the content-type and unique ID for pages that represent a single object."
msgstr "Visa innehållstypen och ID:t för sidor som representerar ett enskillt objekt." msgstr "Visa innehållstypen och det unika ID:t för sidor som representerar ett enskillt objekt."
#: contrib/admin/templates/admin_doc/bookmarklets.html:25 #: contrib/admin/templates/admin_doc/bookmarklets.html:25
msgid "Edit this object (current window)" msgid "Edit this object (current window)"
@ -1227,19 +1227,19 @@ msgstr "visat namn"
#: contrib/sites/models.py:15 #: contrib/sites/models.py:15
msgid "site" msgid "site"
msgstr "hemsida" msgstr "site"
#: contrib/sites/models.py:16 #: contrib/sites/models.py:16
msgid "sites" msgid "sites"
msgstr "hemsidor" msgstr "siter"
#: utils/translation.py:360 #: utils/translation.py:360
msgid "DATE_FORMAT" msgid "DATE_FORMAT"
msgstr "Y-m-d" msgstr "d/m-Y"
#: utils/translation.py:361 #: utils/translation.py:361
msgid "DATETIME_FORMAT" msgid "DATETIME_FORMAT"
msgstr "Y-m-d, H:i" msgstr "d/m-Y, H:i:s"
#: utils/translation.py:362 #: utils/translation.py:362
msgid "TIME_FORMAT" msgid "TIME_FORMAT"
@ -1247,80 +1247,80 @@ msgstr "H:i:s"
#: utils/dates.py:6 #: utils/dates.py:6
msgid "Monday" msgid "Monday"
msgstr "måndag" msgstr "Måndag"
#: utils/dates.py:6 #: utils/dates.py:6
msgid "Tuesday" msgid "Tuesday"
msgstr "tisdag" msgstr "Tisdag"
#: utils/dates.py:6 #: utils/dates.py:6
msgid "Wednesday" msgid "Wednesday"
msgstr "onsdag" msgstr "Onsdag"
#: utils/dates.py:6 #: utils/dates.py:6
msgid "Thursday" msgid "Thursday"
msgstr "torsdag" msgstr "Torsdag"
#: utils/dates.py:6 #: utils/dates.py:6
msgid "Friday" msgid "Friday"
msgstr "fredag" msgstr "Fredag"
#: utils/dates.py:7 #: utils/dates.py:7
msgid "Saturday" msgid "Saturday"
msgstr "lördag" msgstr "Lördag"
#: utils/dates.py:7 #: utils/dates.py:7
msgid "Sunday" msgid "Sunday"
msgstr "söndag" msgstr "Söndag"
#: utils/dates.py:14 #: utils/dates.py:14
msgid "January" msgid "January"
msgstr "januari" msgstr "Januari"
#: utils/dates.py:14 #: utils/dates.py:14
msgid "February" msgid "February"
msgstr "februari" msgstr "Februari"
#: utils/dates.py:14 #: utils/dates.py:14
#: utils/dates.py:27 #: utils/dates.py:27
msgid "March" msgid "March"
msgstr "mars" msgstr "Mars"
#: utils/dates.py:14 #: utils/dates.py:14
#: utils/dates.py:27 #: utils/dates.py:27
msgid "April" msgid "April"
msgstr "april" msgstr "April"
#: utils/dates.py:14 #: utils/dates.py:14
#: utils/dates.py:27 #: utils/dates.py:27
msgid "May" msgid "May"
msgstr "maj" msgstr "Maj"
#: utils/dates.py:14 #: utils/dates.py:14
#: utils/dates.py:27 #: utils/dates.py:27
msgid "June" msgid "June"
msgstr "juni" msgstr "Juni"
#: utils/dates.py:15 #: utils/dates.py:15
#: utils/dates.py:27 #: utils/dates.py:27
msgid "July" msgid "July"
msgstr "juli" msgstr "Juli"
#: utils/dates.py:15 #: utils/dates.py:15
msgid "August" msgid "August"
msgstr "augusti" msgstr "Augusti"
#: utils/dates.py:15 #: utils/dates.py:15
msgid "September" msgid "September"
msgstr "september" msgstr "September"
#: utils/dates.py:15 #: utils/dates.py:15
msgid "October" msgid "October"
msgstr "oktober" msgstr "Oktober"
#: utils/dates.py:15 #: utils/dates.py:15
msgid "November" msgid "November"
msgstr "november" msgstr "November"
#: utils/dates.py:16 #: utils/dates.py:16
msgid "December" msgid "December"
@ -1538,7 +1538,7 @@ msgstr "Ukrainska"
#: conf/global_settings.py:62 #: conf/global_settings.py:62
msgid "Simplified Chinese" msgid "Simplified Chinese"
msgstr "Förenklad kinesiska" msgstr "Förenklad Kinesiska"
#: conf/global_settings.py:63 #: conf/global_settings.py:63
msgid "Traditional Chinese" msgid "Traditional Chinese"
@ -1566,11 +1566,11 @@ msgstr "Fyll enbart i siffror avskillda med kommatecken."
#: core/validators.py:95 #: core/validators.py:95
msgid "Enter valid e-mail addresses separated by commas." msgid "Enter valid e-mail addresses separated by commas."
msgstr "Fyll i giltiga e-postadresser avskillda med kommatecken." msgstr "Fyll i giltiga e-postadresser avskilda med kommatecken."
#: core/validators.py:99 #: core/validators.py:99
msgid "Please enter a valid IP address." msgid "Please enter a valid IP address."
msgstr "Var god fyll i ett giltigt IP-nummer." msgstr "Var god fyll i en giltigt IP-adress."
#: core/validators.py:103 #: core/validators.py:103
msgid "Empty values are not allowed here." msgid "Empty values are not allowed here."
@ -1586,7 +1586,7 @@ msgstr "Det här värdet kan inte enbart bestå av siffror."
#: core/validators.py:116 #: core/validators.py:116
msgid "Enter a whole number." msgid "Enter a whole number."
msgstr "Fyll i ett heltal." msgstr "Fyll i ett helt tal."
#: core/validators.py:120 #: core/validators.py:120
msgid "Only alphabetical characters are allowed here." msgid "Only alphabetical characters are allowed here."
@ -1598,12 +1598,12 @@ msgstr "Fyll i ett giltigt datum i formatet ÅÅÅÅ-MM-DD."
#: core/validators.py:128 #: core/validators.py:128
msgid "Enter a valid time in HH:MM format." msgid "Enter a valid time in HH:MM format."
msgstr "Fyll i en giltig tid i formatet TT:MM" msgstr "Fyll i en giltig tid i formatet HH:MM"
#: core/validators.py:132 #: core/validators.py:132
#: db/models/fields/__init__.py:468 #: db/models/fields/__init__.py:468
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr "Fyll i en giltig tidpunkt i formatet ÅÅÅÅ-MM-DD TT:MM" msgstr "Fyll i en giltig tidpunkt i formatet ÅÅÅÅ-MM-DD HH:MM"
#: core/validators.py:136 #: core/validators.py:136
msgid "Enter a valid e-mail address." msgid "Enter a valid e-mail address."
@ -1616,7 +1616,7 @@ msgstr "Ladda upp en giltig bild. Filen du laddade upp var antingen inte en bild
#: core/validators.py:155 #: core/validators.py:155
#, python-format #, python-format
msgid "The URL %s does not point to a valid image." msgid "The URL %s does not point to a valid image."
msgstr "Adressen %s pekar inte till en giltig bild." msgstr "Adressen %s pekar inte en giltig bild."
#: core/validators.py:159 #: core/validators.py:159
#, python-format #, python-format
@ -1626,7 +1626,7 @@ msgstr "Telefonnummer måste vara i det amerikanska formatet XXX-XXX-XXXX. \"%s\
#: core/validators.py:167 #: core/validators.py:167
#, python-format #, python-format
msgid "The URL %s does not point to a valid QuickTime video." msgid "The URL %s does not point to a valid QuickTime video."
msgstr "Adressen %s pekar inte till en giltig QuickTime-video." msgstr "Adressen %s pekar inte en giltig QuickTime-video."
#: core/validators.py:171 #: core/validators.py:171
msgid "A valid URL is required." msgid "A valid URL is required."
@ -1665,8 +1665,8 @@ msgstr "Fyll i en giltig förkortning för en amerikansk delstat"
#, 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] "Håll i tungan! Ordet %s är inte tillåtet här." msgstr[0] "Akta din tunga! Ordet %s är inte tillåtet här."
msgstr[1] "Håll i tungan! Orden %s är inte tillåtna här." msgstr[1] "Akta din tunga! Orden %s är inte tillåtna här."
#: core/validators.py:236 #: core/validators.py:236
#, python-format #, python-format
@ -1716,8 +1716,8 @@ msgstr[1] "Fyll i ett giltigt decimaltal med mindre än %s siffror totalt."
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s decimal place." msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural "Please enter a valid decimal number with at most %s decimal places." msgid_plural "Please enter a valid decimal number with at most %s decimal places."
msgstr[0] "Fyll i ett giltigt decimaltal med som mest %s decimalsiffra." msgstr[0] "Fyll i ett giltigt decimaltal med %s decimal som mest."
msgstr[1] "Fyll i ett giltigt decimaltal med som mest %s decimalsiffror." msgstr[1] "Fyll i ett giltigt decimaltal med %s decimaler som mest."
#: core/validators.py:362 #: core/validators.py:362
#, python-format #, python-format
@ -1727,7 +1727,7 @@ msgstr "Se till att filen du laddade upp är minst %s bytes stor."
#: core/validators.py:363 #: core/validators.py:363
#, python-format #, python-format
msgid "Make sure your uploaded file is at most %s bytes big." msgid "Make sure your uploaded file is at most %s bytes big."
msgstr "Se till att filen du laddade upp är max %s bytes stor." msgstr "Se till att filen du laddade upp är mindre än %s bytes stor."
#: core/validators.py:376 #: core/validators.py:376
msgid "The format for this field is wrong." msgid "The format for this field is wrong."
@ -1829,7 +1829,7 @@ msgstr "Håll ner \"Control\", eller \"Command\" på en Mac, för att välja mer
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."
msgstr[0] "Var god och fyll giltiga %(self)s ID. Värdet %(value)r är ogiltigt." msgstr[0] "Var god och fyll giltiga %(self)s ID. Värdet %(value)r är ogiltigt."
msgstr[1] "Var god och fyll giltiga %(self)s ID. Värdena %(value)r är ogiltigt." msgstr[1] "Var god och fyll giltiga %(self)s ID. Värdena %(value)r är ogiltiga."
#: forms/__init__.py:380 #: forms/__init__.py:380
#, python-format #, python-format

View File

@ -9,7 +9,7 @@ form .form-row p { padding-left:0; font-size:11px; }
/* FORM LABELS */ /* FORM LABELS */
form h4 { margin:0 !important; padding:0 !important; border:none !important; } form h4 { margin:0 !important; padding:0 !important; border:none !important; }
label { font-weight:normal !important; color:#666; font-size:12px; } label { font-weight:normal !important; color:#666; font-size:12px; }
label.inline { margin-left:20px; } /* label.inline { margin-left:20px; } */
.required label, label.required { font-weight:bold !important; color:#333 !important; } .required label, label.required { font-weight:bold !important; color:#333 !important; }
/* RADIO BUTTONS */ /* RADIO BUTTONS */
@ -20,7 +20,7 @@ form ul.inline li { float:left; padding-right:7px; }
/* ALIGNED FIELDSETS */ /* ALIGNED FIELDSETS */
.aligned label { display:block; padding:0 1em 3px 0; float:left; width:8em; } .aligned label { display:block; padding:0 1em 3px 0; float:left; width:8em; }
.aligned label.inline { display:inline; float:none; } /* .aligned label.inline { display:inline; float:none; } */
.colMS .aligned .vLargeTextField, .colMS .aligned .vXMLLargeTextField { width:350px; } .colMS .aligned .vLargeTextField, .colMS .aligned .vXMLLargeTextField { width:350px; }
form .aligned p, form .aligned ul { margin-left:7em; padding-left:30px; } form .aligned p, form .aligned ul { margin-left:7em; padding-left:30px; }
form .aligned table p { margin-left:0; padding-left:0; } form .aligned table p { margin-left:0; padding-left:0; }
@ -57,4 +57,4 @@ fieldset.monospace textarea { font-family:"Bitstream Vera Sans Mono",Monaco,"Cou
.vURLField { width:30em; } .vURLField { width:30em; }
.vLargeTextField, .vXMLLargeTextField { width:48em; } .vLargeTextField, .vXMLLargeTextField { width:48em; }
.flatpages-flatpage #id_content { height:40.2em; } .flatpages-flatpage #id_content { height:40.2em; }
.module table .vPositiveSmallIntegerField { width:2.2em; } .module table .vPositiveSmallIntegerField { width:2.2em; }

View File

@ -84,22 +84,31 @@ def result_headers(cl):
header = attr.short_description header = attr.short_description
except AttributeError: except AttributeError:
header = field_name.replace('_', ' ') header = field_name.replace('_', ' ')
# Non-field list_display values don't get ordering capability.
yield {"text": header} # It is a non-field, but perhaps one that is sortable
if not getattr(getattr(cl.model, field_name), "admin_order_field", None):
yield {"text": header}
continue
# So this _is_ a sortable non-field. Go to the yield
# after the else clause.
else: else:
if isinstance(f.rel, models.ManyToOneRel) and f.null: if isinstance(f.rel, models.ManyToOneRel) and f.null:
yield {"text": f.verbose_name} yield {"text": f.verbose_name}
continue
else: else:
th_classes = [] header = f.verbose_name
new_order_type = 'asc'
if field_name == cl.order_field:
th_classes.append('sorted %sending' % cl.order_type.lower())
new_order_type = {'asc': 'desc', 'desc': 'asc'}[cl.order_type.lower()]
yield {"text": f.verbose_name, th_classes = []
"sortable": True, new_order_type = 'asc'
"url": cl.get_query_string({ORDER_VAR: i, ORDER_TYPE_VAR: new_order_type}), if field_name == cl.order_field:
"class_attrib": (th_classes and ' class="%s"' % ' '.join(th_classes) or '')} th_classes.append('sorted %sending' % cl.order_type.lower())
new_order_type = {'asc': 'desc', 'desc': 'asc'}[cl.order_type.lower()]
yield {"text": header,
"sortable": True,
"url": cl.get_query_string({ORDER_VAR: i, ORDER_TYPE_VAR: new_order_type}),
"class_attrib": (th_classes and ' class="%s"' % ' '.join(th_classes) or '')}
def _boolean_icon(field_val): def _boolean_icon(field_val):
BOOLEAN_MAPPING = {True: 'yes', False: 'no', None: 'unknown'} BOOLEAN_MAPPING = {True: 'yes', False: 'no', None: 'unknown'}

View File

@ -200,9 +200,12 @@ def _get_deleted_objects(deleted_objects, perms_needed, user, obj, opts, current
opts_seen.append(related.opts) opts_seen.append(related.opts)
rel_opts_name = related.get_accessor_name() rel_opts_name = related.get_accessor_name()
has_related_objs = False has_related_objs = False
rel_objs = getattr(obj, rel_opts_name, None)
if rel_objs: # related.get_accessor_name() could return None for symmetrical relationships
has_related_objs = True if rel_opts_name:
rel_objs = getattr(obj, rel_opts_name, None)
if rel_objs:
has_related_objs = True
if has_related_objs: if has_related_objs:
for sub_obj in rel_objs.all(): for sub_obj in rel_objs.all():
@ -343,10 +346,17 @@ class ChangeList(object):
order_field, order_type = ordering[0], 'asc' order_field, order_type = ordering[0], 'asc'
if params.has_key(ORDER_VAR): if params.has_key(ORDER_VAR):
try: try:
field_name = self.list_display[int(params[ORDER_VAR])]
try: try:
f = lookup_opts.get_field(self.list_display[int(params[ORDER_VAR])]) f = lookup_opts.get_field(field_name)
except models.FieldDoesNotExist: except models.FieldDoesNotExist:
pass # See whether field_name is a name of a non-field
# that allows sorting.
try:
attr = getattr(self.model, field_name)
order_field = attr.admin_order_field
except IndexError:
pass
else: else:
if not isinstance(f.rel, models.ManyToOneRel) or not f.null: if not isinstance(f.rel, models.ManyToOneRel) or not f.null:
order_field = f.name order_field = f.name

View File

@ -167,7 +167,8 @@ def _get_sql_model_create(model, known_models=set()):
if f.rel.to in known_models: if f.rel.to in known_models:
field_output.append(style.SQL_KEYWORD('REFERENCES') + ' ' + \ field_output.append(style.SQL_KEYWORD('REFERENCES') + ' ' + \
style.SQL_TABLE(backend.quote_name(f.rel.to._meta.db_table)) + ' (' + \ style.SQL_TABLE(backend.quote_name(f.rel.to._meta.db_table)) + ' (' + \
style.SQL_FIELD(backend.quote_name(f.rel.to._meta.get_field(f.rel.field_name).column)) + ')' style.SQL_FIELD(backend.quote_name(f.rel.to._meta.get_field(f.rel.field_name).column)) + ')' +
backend.get_deferrable_sql()
) )
else: else:
# We haven't yet created the table to which this field # We haven't yet created the table to which this field
@ -210,9 +211,10 @@ def _get_sql_for_pending_references(model, pending_references):
# For MySQL, r_name must be unique in the first 64 characters. # For MySQL, r_name must be unique in the first 64 characters.
# So we are careful with character usage here. # So we are careful with character usage here.
r_name = '%s_refs_%s_%x' % (r_col, col, abs(hash((r_table, table)))) r_name = '%s_refs_%s_%x' % (r_col, col, abs(hash((r_table, table))))
final_output.append(style.SQL_KEYWORD('ALTER TABLE') + ' %s ADD CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s (%s);' % \ final_output.append(style.SQL_KEYWORD('ALTER TABLE') + ' %s ADD CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s (%s)%s;' % \
(backend.quote_name(r_table), r_name, (backend.quote_name(r_table), r_name,
backend.quote_name(r_col), backend.quote_name(table), backend.quote_name(col))) backend.quote_name(r_col), backend.quote_name(table), backend.quote_name(col),
backend.get_deferrable_sql()))
del pending_references[model] del pending_references[model]
return final_output return final_output
@ -232,18 +234,20 @@ def _get_many_to_many_sql_for_model(model):
(style.SQL_FIELD(backend.quote_name('id')), (style.SQL_FIELD(backend.quote_name('id')),
style.SQL_COLTYPE(data_types['AutoField']), style.SQL_COLTYPE(data_types['AutoField']),
style.SQL_KEYWORD('NOT NULL PRIMARY KEY'))) style.SQL_KEYWORD('NOT NULL PRIMARY KEY')))
table_output.append(' %s %s %s %s (%s),' % \ table_output.append(' %s %s %s %s (%s)%s,' % \
(style.SQL_FIELD(backend.quote_name(f.m2m_column_name())), (style.SQL_FIELD(backend.quote_name(f.m2m_column_name())),
style.SQL_COLTYPE(data_types[get_rel_data_type(opts.pk)] % opts.pk.__dict__), style.SQL_COLTYPE(data_types[get_rel_data_type(opts.pk)] % opts.pk.__dict__),
style.SQL_KEYWORD('NOT NULL REFERENCES'), style.SQL_KEYWORD('NOT NULL REFERENCES'),
style.SQL_TABLE(backend.quote_name(opts.db_table)), style.SQL_TABLE(backend.quote_name(opts.db_table)),
style.SQL_FIELD(backend.quote_name(opts.pk.column)))) style.SQL_FIELD(backend.quote_name(opts.pk.column)),
table_output.append(' %s %s %s %s (%s),' % \ backend.get_deferrable_sql()))
table_output.append(' %s %s %s %s (%s)%s,' % \
(style.SQL_FIELD(backend.quote_name(f.m2m_reverse_name())), (style.SQL_FIELD(backend.quote_name(f.m2m_reverse_name())),
style.SQL_COLTYPE(data_types[get_rel_data_type(f.rel.to._meta.pk)] % f.rel.to._meta.pk.__dict__), style.SQL_COLTYPE(data_types[get_rel_data_type(f.rel.to._meta.pk)] % f.rel.to._meta.pk.__dict__),
style.SQL_KEYWORD('NOT NULL REFERENCES'), style.SQL_KEYWORD('NOT NULL REFERENCES'),
style.SQL_TABLE(backend.quote_name(f.rel.to._meta.db_table)), style.SQL_TABLE(backend.quote_name(f.rel.to._meta.db_table)),
style.SQL_FIELD(backend.quote_name(f.rel.to._meta.pk.column)))) style.SQL_FIELD(backend.quote_name(f.rel.to._meta.pk.column)),
backend.get_deferrable_sql()))
table_output.append(' %s (%s, %s)' % \ table_output.append(' %s (%s, %s)' % \
(style.SQL_KEYWORD('UNIQUE'), (style.SQL_KEYWORD('UNIQUE'),
style.SQL_FIELD(backend.quote_name(f.m2m_column_name())), style.SQL_FIELD(backend.quote_name(f.m2m_column_name())),
@ -1243,7 +1247,10 @@ def test(app_labels, verbosity=1):
test_module = __import__(test_module_name, {}, {}, test_path[-1]) test_module = __import__(test_module_name, {}, {}, test_path[-1])
test_runner = getattr(test_module, test_path[-1]) test_runner = getattr(test_module, test_path[-1])
test_runner(app_list, verbosity) failures = test_runner(app_list, verbosity)
if failures:
sys.exit(failures)
test.help_doc = 'Runs the test suite for the specified applications, or the entire site if no apps are specified' test.help_doc = 'Runs the test suite for the specified applications, or the entire site if no apps are specified'
test.args = '[--verbosity] ' + APP_ARGS test.args = '[--verbosity] ' + APP_ARGS

View File

@ -67,20 +67,19 @@ def Deserializer(object_list, **options):
field = Model._meta.get_field(field_name) field = Model._meta.get_field(field_name)
# Handle M2M relations (with in_bulk() for performance) # Handle M2M relations
if field.rel and isinstance(field.rel, models.ManyToManyRel): if field.rel and isinstance(field.rel, models.ManyToManyRel):
pks = [] pks = []
for pk in field_value: for pk in field_value:
if isinstance(pk, unicode): if isinstance(pk, unicode):
pk = pk.encode(options.get("encoding", settings.DEFAULT_CHARSET)) pks.append(pk.encode(options.get("encoding", settings.DEFAULT_CHARSET)))
m2m_data[field.name] = field.rel.to._default_manager.in_bulk(field_value).values() else:
pks.append(pk)
m2m_data[field.name] = pks
# Handle FK fields # Handle FK fields
elif field.rel and isinstance(field.rel, models.ManyToOneRel) and field_value is not None: elif field.rel and isinstance(field.rel, models.ManyToOneRel):
try: data[field.attname] = field_value
data[field.name] = field.rel.to._default_manager.get(pk=field_value)
except field.rel.to.DoesNotExist:
data[field.name] = None
# Handle all other fields # Handle all other fields
else: else:

View File

@ -150,7 +150,7 @@ class Deserializer(base.Deserializer):
if field.rel and isinstance(field.rel, models.ManyToManyRel): if field.rel and isinstance(field.rel, models.ManyToManyRel):
m2m_data[field.name] = self._handle_m2m_field_node(field_node) m2m_data[field.name] = self._handle_m2m_field_node(field_node)
elif field.rel and isinstance(field.rel, models.ManyToOneRel): elif field.rel and isinstance(field.rel, models.ManyToOneRel):
data[field.name] = self._handle_fk_field_node(field_node) data[field.attname] = self._handle_fk_field_node(field_node)
else: else:
value = field.to_python(getInnerText(field_node).strip().encode(self.encoding)) value = field.to_python(getInnerText(field_node).strip().encode(self.encoding))
data[field.name] = value data[field.name] = value
@ -162,27 +162,17 @@ class Deserializer(base.Deserializer):
""" """
Handle a <field> node for a ForeignKey Handle a <field> node for a ForeignKey
""" """
# Try to set the foreign key by looking up the foreign related object.
# If it doesn't exist, set the field to None (which might trigger
# validation error, but that's expected).
RelatedModel = self._get_model_from_node(node, "to")
# Check if there is a child node named 'None', returning None if so. # Check if there is a child node named 'None', returning None if so.
if len(node.childNodes) == 1 and node.childNodes[0].nodeName == 'None': if len(node.childNodes) == 1 and node.childNodes[0].nodeName == 'None':
return None return None
else: else:
return RelatedModel.objects.get(pk=getInnerText(node).strip().encode(self.encoding)) return getInnerText(node).strip().encode(self.encoding)
def _handle_m2m_field_node(self, node): def _handle_m2m_field_node(self, node):
""" """
Handle a <field> node for a ManyToManyField Handle a <field> node for a ManyToManyField
""" """
# Load the related model return [c.getAttribute("pk").encode(self.encoding) for c in node.getElementsByTagName("object")]
RelatedModel = self._get_model_from_node(node, "to")
# Look up all the related objects. Using the in_bulk() lookup ensures
# that missing related objects don't cause an exception
related_ids = [c.getAttribute("pk").encode(self.encoding) for c in node.getElementsByTagName("object")]
return RelatedModel._default_manager.in_bulk(related_ids).values()
def _get_model_from_node(self, node, attr): def _get_model_from_node(self, node, attr):
""" """

View File

@ -16,7 +16,7 @@ class Resolver404(Http404):
class NoReverseMatch(Exception): class NoReverseMatch(Exception):
# Don't make this raise an error when used in a template. # Don't make this raise an error when used in a template.
silent_variable_failure = True silent_variable_failure = True
def get_mod_func(callback): def get_mod_func(callback):
# Converts 'django.views.news.stories.story_detail' to # Converts 'django.views.news.stories.story_detail' to
@ -110,7 +110,7 @@ class RegexURLPattern(object):
kwargs = match.groupdict() kwargs = match.groupdict()
if kwargs: if kwargs:
args = () args = ()
if not kwargs: else:
args = match.groups() args = match.groups()
# In both cases, pass any extra_kwargs as **kwargs. # In both cases, pass any extra_kwargs as **kwargs.
kwargs.update(self.default_args) kwargs.update(self.default_args)

View File

@ -125,6 +125,9 @@ def get_limit_offset_sql(limit, offset=None):
def get_random_function_sql(): def get_random_function_sql():
return "RAND()" return "RAND()"
def get_deferrable_sql():
return " DEFERRABLE INITIALLY DEFERRED"
def get_fulltext_search_sql(field_name): def get_fulltext_search_sql(field_name):
raise NotImplementedError raise NotImplementedError

View File

@ -36,6 +36,7 @@ get_date_extract_sql = complain
get_date_trunc_sql = complain get_date_trunc_sql = complain
get_limit_offset_sql = complain get_limit_offset_sql = complain
get_random_function_sql = complain get_random_function_sql = complain
get_deferrable_sql = complain
get_fulltext_search_sql = complain get_fulltext_search_sql = complain
get_drop_foreignkey_sql = complain get_drop_foreignkey_sql = complain
OPERATOR_MAPPING = {} OPERATOR_MAPPING = {}

View File

@ -174,6 +174,9 @@ def get_limit_offset_sql(limit, offset=None):
def get_random_function_sql(): def get_random_function_sql():
return "RAND()" return "RAND()"
def get_deferrable_sql():
return ""
def get_fulltext_search_sql(field_name): def get_fulltext_search_sql(field_name):
return 'MATCH (%s) AGAINST (%%s IN BOOLEAN MODE)' % field_name return 'MATCH (%s) AGAINST (%%s IN BOOLEAN MODE)' % field_name

View File

@ -108,6 +108,9 @@ def get_limit_offset_sql(limit, offset=None):
def get_random_function_sql(): def get_random_function_sql():
return "DBMS_RANDOM.RANDOM" return "DBMS_RANDOM.RANDOM"
def get_deferrable_sql():
return " DEFERRABLE INITIALLY DEFERRED"
def get_fulltext_search_sql(field_name): def get_fulltext_search_sql(field_name):
raise NotImplementedError raise NotImplementedError

View File

@ -139,6 +139,9 @@ def get_limit_offset_sql(limit, offset=None):
def get_random_function_sql(): def get_random_function_sql():
return "RANDOM()" return "RANDOM()"
def get_deferrable_sql():
return " DEFERRABLE INITIALLY DEFERRED"
def get_fulltext_search_sql(field_name): def get_fulltext_search_sql(field_name):
raise NotImplementedError raise NotImplementedError

View File

@ -99,6 +99,9 @@ def get_limit_offset_sql(limit, offset=None):
def get_random_function_sql(): def get_random_function_sql():
return "RANDOM()" return "RANDOM()"
def get_deferrable_sql():
return " DEFERRABLE INITIALLY DEFERRED"
def get_fulltext_search_sql(field_name): def get_fulltext_search_sql(field_name):
raise NotImplementedError raise NotImplementedError

View File

@ -139,6 +139,9 @@ def get_limit_offset_sql(limit, offset=None):
def get_random_function_sql(): def get_random_function_sql():
return "RANDOM()" return "RANDOM()"
def get_deferrable_sql():
return ""
def get_fulltext_search_sql(field_name): def get_fulltext_search_sql(field_name):
raise NotImplementedError raise NotImplementedError

View File

@ -13,6 +13,7 @@ from django.dispatch import dispatcher
from django.utils.datastructures import SortedDict from django.utils.datastructures import SortedDict
from django.utils.functional import curry from django.utils.functional import curry
from django.conf import settings from django.conf import settings
from itertools import izip
import types import types
import sys import sys
import os import os
@ -21,8 +22,8 @@ class ModelBase(type):
"Metaclass for all models" "Metaclass for all models"
def __new__(cls, name, bases, attrs): def __new__(cls, name, bases, attrs):
# If this isn't a subclass of Model, don't do anything special. # If this isn't a subclass of Model, don't do anything special.
if not bases or bases == (object,): if name == 'Model' or not filter(lambda b: issubclass(b, Model), bases):
return type.__new__(cls, name, bases, attrs) return super(ModelBase, cls).__new__(cls, name, bases, attrs)
# Create the class. # Create the class.
new_class = type.__new__(cls, name, bases, {'__module__': attrs.pop('__module__')}) new_class = type.__new__(cls, name, bases, {'__module__': attrs.pop('__module__')})
@ -90,41 +91,74 @@ class Model(object):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
dispatcher.send(signal=signals.pre_init, sender=self.__class__, args=args, kwargs=kwargs) dispatcher.send(signal=signals.pre_init, sender=self.__class__, args=args, kwargs=kwargs)
for f in self._meta.fields:
if isinstance(f.rel, ManyToOneRel): # There is a rather weird disparity here; if kwargs, it's set, then args
try: # overrides it. It should be one or the other; don't duplicate the work
# Assume object instance was passed in. # The reason for the kwargs check is that standard iterator passes in by
rel_obj = kwargs.pop(f.name) # args, and nstantiation for iteration is 33% faster.
except KeyError: args_len = len(args)
if args_len > len(self._meta.fields):
# Daft, but matches old exception sans the err msg.
raise IndexError("Number of args exceeds number of fields")
fields_iter = iter(self._meta.fields)
if not kwargs:
# The ordering of the izip calls matter - izip throws StopIteration
# when an iter throws it. So if the first iter throws it, the second
# is *not* consumed. We rely on this, so don't change the order
# without changing the logic.
for val, field in izip(args, fields_iter):
setattr(self, field.attname, val)
else:
# Slower, kwargs-ready version.
for val, field in izip(args, fields_iter):
setattr(self, field.attname, val)
kwargs.pop(field.name, None)
# Maintain compatibility with existing calls.
if isinstance(field.rel, ManyToOneRel):
kwargs.pop(field.attname, None)
# Now we're left with the unprocessed fields that *must* come from
# keywords, or default.
for field in fields_iter:
if kwargs:
if isinstance(field.rel, ManyToOneRel):
try: try:
# Object instance wasn't passed in -- must be an ID. # Assume object instance was passed in.
val = kwargs.pop(f.attname) rel_obj = kwargs.pop(field.name)
except KeyError: except KeyError:
val = f.get_default()
else:
# Object instance was passed in.
# Special case: You can pass in "None" for related objects if it's allowed.
if rel_obj is None and f.null:
val = None
else:
try: try:
val = getattr(rel_obj, f.rel.get_related_field().attname) # Object instance wasn't passed in -- must be an ID.
except AttributeError: val = kwargs.pop(field.attname)
raise TypeError, "Invalid value: %r should be a %s instance, not a %s" % (f.name, f.rel.to, type(rel_obj)) except KeyError:
setattr(self, f.attname, val) val = field.get_default()
else:
# Object instance was passed in. Special case: You can
# pass in "None" for related objects if it's allowed.
if rel_obj is None and field.null:
val = None
else:
try:
val = getattr(rel_obj, field.rel.get_related_field().attname)
except AttributeError:
raise TypeError("Invalid value: %r should be a %s instance, not a %s" %
(field.name, field.rel.to, type(rel_obj)))
else:
val = kwargs.pop(field.attname, field.get_default())
else: else:
val = kwargs.pop(f.attname, f.get_default()) val = field.get_default()
setattr(self, f.attname, val) setattr(self, field.attname, val)
for prop in kwargs.keys():
try:
if isinstance(getattr(self.__class__, prop), property):
setattr(self, prop, kwargs.pop(prop))
except AttributeError:
pass
if kwargs: if kwargs:
raise TypeError, "'%s' is an invalid keyword argument for this function" % kwargs.keys()[0] for prop in kwargs.keys():
for i, arg in enumerate(args): try:
setattr(self, self._meta.fields[i].attname, arg) if isinstance(getattr(self.__class__, prop), property):
setattr(self, prop, kwargs.pop(prop))
except AttributeError:
pass
if kwargs:
raise TypeError, "'%s' is an invalid keyword argument for this function" % kwargs.keys()[0]
dispatcher.send(signal=signals.post_init, sender=self.__class__, instance=self) dispatcher.send(signal=signals.post_init, sender=self.__class__, instance=self)
def add_to_class(cls, name, value): def add_to_class(cls, name, value):
@ -327,7 +361,7 @@ class Model(object):
def _get_FIELD_size(self, field): def _get_FIELD_size(self, field):
return os.path.getsize(self._get_FIELD_filename(field)) return os.path.getsize(self._get_FIELD_filename(field))
def _save_FIELD_file(self, field, filename, raw_contents): def _save_FIELD_file(self, field, filename, raw_contents, save=True):
directory = field.get_directory_name() directory = field.get_directory_name()
try: # Create the date-based directory if it doesn't exist. try: # Create the date-based directory if it doesn't exist.
os.makedirs(os.path.join(settings.MEDIA_ROOT, directory)) os.makedirs(os.path.join(settings.MEDIA_ROOT, directory))
@ -362,8 +396,9 @@ class Model(object):
if field.height_field: if field.height_field:
setattr(self, field.height_field, height) setattr(self, field.height_field, height)
# Save the object, because it has changed. # Save the object because it has changed unless save is False
self.save() if save:
self.save()
_save_FIELD_file.alters_data = True _save_FIELD_file.alters_data = True

View File

@ -440,6 +440,8 @@ class DateField(Field):
Field.__init__(self, verbose_name, name, **kwargs) Field.__init__(self, verbose_name, name, **kwargs)
def to_python(self, value): def to_python(self, value):
if value is None:
return value
if isinstance(value, datetime.datetime): if isinstance(value, datetime.datetime):
return value.date() return value.date()
if isinstance(value, datetime.date): if isinstance(value, datetime.date):
@ -502,6 +504,8 @@ class DateField(Field):
class DateTimeField(DateField): class DateTimeField(DateField):
def to_python(self, value): def to_python(self, value):
if value is None:
return value
if isinstance(value, datetime.datetime): if isinstance(value, datetime.datetime):
return value return value
if isinstance(value, datetime.date): if isinstance(value, datetime.date):
@ -628,7 +632,7 @@ class FileField(Field):
setattr(cls, 'get_%s_filename' % self.name, curry(cls._get_FIELD_filename, field=self)) setattr(cls, 'get_%s_filename' % self.name, curry(cls._get_FIELD_filename, field=self))
setattr(cls, 'get_%s_url' % self.name, curry(cls._get_FIELD_url, field=self)) setattr(cls, 'get_%s_url' % self.name, curry(cls._get_FIELD_url, field=self))
setattr(cls, 'get_%s_size' % self.name, curry(cls._get_FIELD_size, field=self)) setattr(cls, 'get_%s_size' % self.name, curry(cls._get_FIELD_size, field=self))
setattr(cls, 'save_%s_file' % self.name, lambda instance, filename, raw_contents: instance._save_FIELD_file(self, filename, raw_contents)) setattr(cls, 'save_%s_file' % self.name, lambda instance, filename, raw_contents, save=True: instance._save_FIELD_file(self, filename, raw_contents, save))
dispatcher.connect(self.delete_file, signal=signals.post_delete, sender=cls) dispatcher.connect(self.delete_file, signal=signals.post_delete, sender=cls)
def delete_file(self, instance): def delete_file(self, instance):
@ -646,14 +650,14 @@ class FileField(Field):
def get_manipulator_field_names(self, name_prefix): def get_manipulator_field_names(self, name_prefix):
return [name_prefix + self.name + '_file', name_prefix + self.name] return [name_prefix + self.name + '_file', name_prefix + self.name]
def save_file(self, new_data, new_object, original_object, change, rel): def save_file(self, new_data, new_object, original_object, change, rel, save=True):
upload_field_name = self.get_manipulator_field_names('')[0] upload_field_name = self.get_manipulator_field_names('')[0]
if new_data.get(upload_field_name, False): if new_data.get(upload_field_name, False):
func = getattr(new_object, 'save_%s_file' % self.name) func = getattr(new_object, 'save_%s_file' % self.name)
if rel: if rel:
func(new_data[upload_field_name][0]["filename"], new_data[upload_field_name][0]["content"]) func(new_data[upload_field_name][0]["filename"], new_data[upload_field_name][0]["content"], save)
else: else:
func(new_data[upload_field_name]["filename"], new_data[upload_field_name]["content"]) func(new_data[upload_field_name]["filename"], new_data[upload_field_name]["content"], save)
def get_directory_name(self): def get_directory_name(self):
return os.path.normpath(datetime.datetime.now().strftime(self.upload_to)) return os.path.normpath(datetime.datetime.now().strftime(self.upload_to))
@ -697,12 +701,12 @@ class ImageField(FileField):
if not self.height_field: if not self.height_field:
setattr(cls, 'get_%s_height' % self.name, curry(cls._get_FIELD_height, field=self)) setattr(cls, 'get_%s_height' % self.name, curry(cls._get_FIELD_height, field=self))
def save_file(self, new_data, new_object, original_object, change, rel): def save_file(self, new_data, new_object, original_object, change, rel, save=True):
FileField.save_file(self, new_data, new_object, original_object, change, rel) FileField.save_file(self, new_data, new_object, original_object, change, rel, save)
# If the image has height and/or width field(s) and they haven't # If the image has height and/or width field(s) and they haven't
# changed, set the width and/or height field(s) back to their original # changed, set the width and/or height field(s) back to their original
# values. # values.
if change and (self.width_field or self.height_field): if change and (self.width_field or self.height_field) and save:
if self.width_field: if self.width_field:
setattr(new_object, self.width_field, getattr(original_object, self.width_field)) setattr(new_object, self.width_field, getattr(original_object, self.width_field))
if self.height_field: if self.height_field:

View File

@ -608,7 +608,7 @@ class OneToOneField(RelatedField, IntegerField):
def formfield(self, **kwargs): def formfield(self, **kwargs):
defaults = {'queryset': self.rel.to._default_manager.all(), 'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text} defaults = {'queryset': self.rel.to._default_manager.all(), 'required': not self.blank, 'label': capfirst(self.verbose_name), 'help_text': self.help_text}
defaults.update(kwargs) defaults.update(kwargs)
return forms.ModelChoiceField(**kwargs) return forms.ModelChoiceField(**defaults)
class ManyToManyField(RelatedField, Field): class ManyToManyField(RelatedField, Field):
def __init__(self, to, **kwargs): def __init__(self, to, **kwargs):

View File

@ -96,14 +96,16 @@ class AutomaticManipulator(oldforms.Manipulator):
if self.change: if self.change:
params[self.opts.pk.attname] = self.obj_key params[self.opts.pk.attname] = self.obj_key
# First, save the basic object itself. # First, create the basic object itself.
new_object = self.model(**params) new_object = self.model(**params)
new_object.save()
# Now that the object's been saved, save any uploaded files. # Now that the object's been created, save any uploaded files.
for f in self.opts.fields: for f in self.opts.fields:
if isinstance(f, FileField): if isinstance(f, FileField):
f.save_file(new_data, new_object, self.change and self.original_object or None, self.change, rel=False) f.save_file(new_data, new_object, self.change and self.original_object or None, self.change, rel=False, save=False)
# Now save the object
new_object.save()
# Calculate which primary fields have changed. # Calculate which primary fields have changed.
if self.change: if self.change:

View File

@ -25,7 +25,6 @@ Internal attributes:
deletion, (considerably speeds up the cleanup process deletion, (considerably speeds up the cleanup process
vs. the original code.) vs. the original code.)
""" """
from __future__ import generators
import types, weakref import types, weakref
from django.dispatch import saferef, robustapply, errors from django.dispatch import saferef, robustapply, errors
@ -33,11 +32,6 @@ __author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
__cvsid__ = "$Id: dispatcher.py,v 1.9 2005/09/17 04:55:57 mcfletch Exp $" __cvsid__ = "$Id: dispatcher.py,v 1.9 2005/09/17 04:55:57 mcfletch Exp $"
__version__ = "$Revision: 1.9 $"[11:-2] __version__ = "$Revision: 1.9 $"[11:-2]
try:
True
except NameError:
True = 1==1
False = 1==0
class _Parameter: class _Parameter:
"""Used to represent default parameter values.""" """Used to represent default parameter values."""
@ -140,10 +134,9 @@ def connect(receiver, signal=Any, sender=Any, weak=True):
if weak: if weak:
receiver = saferef.safeRef(receiver, onDelete=_removeReceiver) receiver = saferef.safeRef(receiver, onDelete=_removeReceiver)
senderkey = id(sender) senderkey = id(sender)
if connections.has_key(senderkey):
signals = connections[senderkey] signals = connections.setdefault(senderkey, {})
else:
connections[senderkey] = signals = {}
# Keep track of senders for cleanup. # Keep track of senders for cleanup.
# Is Anonymous something we want to clean up? # Is Anonymous something we want to clean up?
if sender not in (None, Anonymous, Any): if sender not in (None, Anonymous, Any):
@ -251,10 +244,10 @@ def getReceivers( sender = Any, signal = Any ):
to retrieve the actual receiver objects as an iterable to retrieve the actual receiver objects as an iterable
object. object.
""" """
try: existing = connections.get(id(sender))
return connections[id(sender)][signal] if existing is not None:
except KeyError: return existing.get(signal, [])
return [] return []
def liveReceivers(receivers): def liveReceivers(receivers):
"""Filter sequence of receivers to get resolved, live receivers """Filter sequence of receivers to get resolved, live receivers
@ -278,30 +271,48 @@ def liveReceivers(receivers):
def getAllReceivers( sender = Any, signal = Any ): def getAllReceivers( sender = Any, signal = Any ):
"""Get list of all receivers from global tables """Get list of all receivers from global tables
This gets all receivers which should receive This gets all dereferenced receivers which should receive
the given signal from sender, each receiver should the given signal from sender, each receiver should
be produced only once by the resulting generator be produced only once by the resulting generator
""" """
receivers = {} receivers = {}
for set in ( # Get receivers that receive *this* signal from *this* sender.
# Get receivers that receive *this* signal from *this* sender. # Add receivers that receive *any* signal from *this* sender.
getReceivers( sender, signal ), # Add receivers that receive *this* signal from *any* sender.
# Add receivers that receive *any* signal from *this* sender. # Add receivers that receive *any* signal from *any* sender.
getReceivers( sender, Any ), l = []
# Add receivers that receive *this* signal from *any* sender. i = id(sender)
getReceivers( Any, signal ), if i in connections:
# Add receivers that receive *any* signal from *any* sender. sender_receivers = connections[i]
getReceivers( Any, Any ), if signal in sender_receivers:
): l.extend(sender_receivers[signal])
for receiver in set: if signal is not Any and Any in sender_receivers:
if receiver: # filter out dead instance-method weakrefs l.extend(sender_receivers[Any])
try:
if not receivers.has_key( receiver ): if sender is not Any:
receivers[receiver] = 1 i = id(Any)
yield receiver if i in connections:
except TypeError: sender_receivers = connections[i]
# dead weakrefs raise TypeError on hash... if sender_receivers is not None:
pass if signal in sender_receivers:
l.extend(sender_receivers[signal])
if signal is not Any and Any in sender_receivers:
l.extend(sender_receivers[Any])
for receiver in l:
try:
if not receiver in receivers:
if isinstance(receiver, WEAKREF_TYPES):
receiver = receiver()
# this should only (rough guess) be possible if somehow, deref'ing
# triggered a wipe.
if receiver is None:
continue
receivers[receiver] = 1
yield receiver
except TypeError:
# dead weakrefs raise TypeError on hash...
pass
def send(signal=Any, sender=Anonymous, *arguments, **named): def send(signal=Any, sender=Anonymous, *arguments, **named):
"""Send signal from sender to all connected receivers. """Send signal from sender to all connected receivers.
@ -340,7 +351,7 @@ def send(signal=Any, sender=Anonymous, *arguments, **named):
# Call each receiver with whatever arguments it can accept. # Call each receiver with whatever arguments it can accept.
# Return a list of tuple pairs [(receiver, response), ... ]. # Return a list of tuple pairs [(receiver, response), ... ].
responses = [] responses = []
for receiver in liveReceivers(getAllReceivers(sender, signal)): for receiver in getAllReceivers(sender, signal):
response = robustapply.robustApply( response = robustapply.robustApply(
receiver, receiver,
signal=signal, signal=signal,
@ -350,6 +361,8 @@ def send(signal=Any, sender=Anonymous, *arguments, **named):
) )
responses.append((receiver, response)) responses.append((receiver, response))
return responses return responses
def sendExact( signal=Any, sender=Anonymous, *arguments, **named ): def sendExact( signal=Any, sender=Anonymous, *arguments, **named ):
"""Send signal only to those receivers registered for exact message """Send signal only to those receivers registered for exact message
@ -421,33 +434,18 @@ def _cleanupConnections(senderkey, signal):
def _removeSender(senderkey): def _removeSender(senderkey):
"""Remove senderkey from connections.""" """Remove senderkey from connections."""
_removeBackrefs(senderkey) _removeBackrefs(senderkey)
try:
del connections[senderkey] connections.pop(senderkey, None)
except KeyError: senders.pop(senderkey, None)
pass
# Senderkey will only be in senders dictionary if sender
# could be weakly referenced.
try:
del senders[senderkey]
except:
pass
def _removeBackrefs( senderkey): def _removeBackrefs( senderkey):
"""Remove all back-references to this senderkey""" """Remove all back-references to this senderkey"""
try: for receiver_list in connections.pop(senderkey, {}).values():
signals = connections[senderkey] for receiver in receiver_list:
except KeyError:
signals = None
else:
items = signals.items()
def allReceivers( ):
for signal,set in items:
for item in set:
yield item
for receiver in allReceivers():
_killBackref( receiver, senderkey ) _killBackref( receiver, senderkey )
def _removeOldBackRefs(senderkey, signal, receiver, receivers): def _removeOldBackRefs(senderkey, signal, receiver, receivers):
"""Kill old sendersBack references from receiver """Kill old sendersBack references from receiver
@ -483,13 +481,13 @@ def _removeOldBackRefs(senderkey, signal, receiver, receivers):
def _killBackref( receiver, senderkey ): def _killBackref( receiver, senderkey ):
"""Do the actual removal of back reference from receiver to senderkey""" """Do the actual removal of back reference from receiver to senderkey"""
receiverkey = id(receiver) receiverkey = id(receiver)
set = sendersBack.get( receiverkey, () ) receivers_list = sendersBack.get( receiverkey, () )
while senderkey in set: while senderkey in receivers_list:
try: try:
set.remove( senderkey ) receivers_list.remove( senderkey )
except: except:
break break
if not set: if not receivers_list:
try: try:
del sendersBack[ receiverkey ] del sendersBack[ receiverkey ]
except KeyError: except KeyError:

View File

@ -52,7 +52,7 @@ def parse_file_upload(header_dict, post_data):
POST = MultiValueDict() POST = MultiValueDict()
FILES = MultiValueDict() FILES = MultiValueDict()
for submessage in msg.get_payload(): for submessage in msg.get_payload():
if isinstance(submessage, email.Message.Message): if submessage and isinstance(submessage, email.Message.Message):
name_dict = parse_header(submessage['Content-Disposition'])[1] name_dict = parse_header(submessage['Content-Disposition'])[1]
# name_dict is something like {'name': 'file', 'filename': 'test.txt'} for file uploads # name_dict is something like {'name': 'file', 'filename': 'test.txt'} for file uploads
# or {'name': 'blah'} for POST fields # or {'name': 'blah'} for POST fields

View File

@ -63,6 +63,8 @@ def run_tests(module_list, verbosity=1, extra_tests=[]):
looking for doctests and unittests in models.py or tests.py within looking for doctests and unittests in models.py or tests.py within
the module. A list of 'extra' tests may also be provided; these tests the module. A list of 'extra' tests may also be provided; these tests
will be added to the test suite. will be added to the test suite.
Returns the number of tests that failed.
""" """
setup_test_environment() setup_test_environment()
@ -77,7 +79,10 @@ def run_tests(module_list, verbosity=1, extra_tests=[]):
old_name = settings.DATABASE_NAME old_name = settings.DATABASE_NAME
create_test_db(verbosity) create_test_db(verbosity)
unittest.TextTestRunner(verbosity=verbosity).run(suite) result = unittest.TextTestRunner(verbosity=verbosity).run(suite)
destroy_test_db(old_name, verbosity) destroy_test_db(old_name, verbosity)
teardown_test_environment() teardown_test_environment()
return len(result.failures)

View File

@ -75,7 +75,7 @@ def page_not_found(request, template_name='404.html'):
request_path request_path
The path of the requested URL (e.g., '/app/pages/bad_page/') The path of the requested URL (e.g., '/app/pages/bad_page/')
""" """
t = loader.get_template(template_name) t = loader.get_template(template_name) # You need to create a 404.html template.
return http.HttpResponseNotFound(t.render(RequestContext(request, {'request_path': request.path}))) return http.HttpResponseNotFound(t.render(RequestContext(request, {'request_path': request.path})))
def server_error(request, template_name='500.html'): def server_error(request, template_name='500.html'):
@ -85,5 +85,5 @@ def server_error(request, template_name='500.html'):
Templates: `500.html` Templates: `500.html`
Context: None Context: None
""" """
t = loader.get_template(template_name) t = loader.get_template(template_name) # You need to create a 500.html template.
return http.HttpResponseServerError(t.render(Context({}))) return http.HttpResponseServerError(t.render(Context({})))

View File

@ -33,6 +33,12 @@ def object_list(request, queryset, paginate_by=None, page=None,
number of pages, total number of pages, total
hits hits
number of objects, total number of objects, total
last_on_page
the result number of the last of object in the
object_list (1-indexed)
first_on_page
the result number of the first object in the
object_list (1-indexed)
""" """
if extra_context is None: extra_context = {} if extra_context is None: extra_context = {}
queryset = queryset._clone() queryset = queryset._clone()
@ -57,6 +63,8 @@ def object_list(request, queryset, paginate_by=None, page=None,
'page': page, 'page': page,
'next': page + 1, 'next': page + 1,
'previous': page - 1, 'previous': page - 1,
'last_on_page': paginator.last_on_page(page - 1),
'first_on_page': paginator.first_on_page(page - 1),
'pages': paginator.pages, 'pages': paginator.pages,
'hits' : paginator.hits, 'hits' : paginator.hits,
}, context_processors) }, context_processors)

View File

@ -686,7 +686,7 @@ A page representing a list of objects.
* ``paginate_by``: An integer specifying how many objects should be * ``paginate_by``: An integer specifying how many objects should be
displayed per page. If this is given, the view will paginate objects with displayed per page. If this is given, the view will paginate objects with
``paginate_by`` objects per page. The view will expect either a ``page`` ``paginate_by`` objects per page. The view will expect either a ``page``
query string parameter (via ``GET``) containing a zero-indexed page query string parameter (via ``GET``) containing a 1-based page
number, or a ``page`` variable specified in the URLconf. See number, or a ``page`` variable specified in the URLconf. See
"Notes on pagination" below. "Notes on pagination" below.
@ -752,6 +752,12 @@ If the results are paginated, the context will contain these extra variables:
* ``previous``: The previous page number, as an integer. This is 1-based. * ``previous``: The previous page number, as an integer. This is 1-based.
* `last_on_page`: **New in Django development version** The number of the
last result on the current page. This is 1-based.
* `first_on_page`: **New in Django development version** The number of the
first result on the current page. This is 1-based.
* ``pages``: The total number of pages, as an integer. * ``pages``: The total number of pages, as an integer.
* ``hits``: The total number of objects across *all* pages, not just this * ``hits``: The total number of objects across *all* pages, not just this

View File

@ -1295,10 +1295,30 @@ A few special cases to note about ``list_display``:
list_display = ('__str__', 'some_other_field') list_display = ('__str__', 'some_other_field')
* For any element of ``list_display`` that is not a field on the model, the * Usually, elements of ``list_display`` that aren't actual database fields
change list page will not allow ordering by that column. This is because can't be used in sorting (because Django does all the sorting at the
ordering is done at the database level, and Django has no way of knowing database level).
how to order the result of a custom method at the SQL level.
However, if an element of ``list_display`` represents a certain database
field, you can indicate this fact by setting the ``admin_order_field``
attribute of the item.
For example::
class Person(models.Model):
first_name = models.CharField(maxlength=50)
color_code = models.CharField(maxlength=6)
class Admin:
list_display = ('first_name', 'colored_first_name')
def colored_first_name(self):
return '<span style="color: #%s;">%s</span>' % (self.color_code, self.first_name)
colored_first_name.allow_tags = True
colored_first_name.admin_order_field = 'first_name'
The above will tell Django to order by the ``first_name`` field when
trying to sort by ``colored_first_name`` in the admin.
``list_display_links`` ``list_display_links``
---------------------- ----------------------

View File

@ -417,7 +417,10 @@ failed::
FAILED (failures=1) FAILED (failures=1)
When the tests have all been executed, the test database is destroyed. The return code for the script will indicate the number of tests that failed.
Regardless of whether the tests pass or fail, the test database is destroyed when
all the tests have been executed.
Using a different testing framework Using a different testing framework
=================================== ===================================
@ -428,7 +431,8 @@ it does provide a mechanism to allow you to invoke tests constructed for
an alternative framework as if they were normal Django tests. an alternative framework as if they were normal Django tests.
When you run ``./manage.py test``, Django looks at the ``TEST_RUNNER`` When you run ``./manage.py test``, Django looks at the ``TEST_RUNNER``
setting to determine what to do. By default, ``TEST_RUNNER`` points to ``django.test.simple.run_tests``. This method defines the default Django setting to determine what to do. By default, ``TEST_RUNNER`` points to
``django.test.simple.run_tests``. This method defines the default Django
testing behavior. This behavior involves: testing behavior. This behavior involves:
#. Performing global pre-test setup #. Performing global pre-test setup
@ -436,7 +440,7 @@ testing behavior. This behavior involves:
#. Running ``syncdb`` to install models and initial data into the test database #. Running ``syncdb`` to install models and initial data into the test database
#. Looking for Unit Tests and Doctests in ``models.py`` and ``tests.py`` file for each installed application #. Looking for Unit Tests and Doctests in ``models.py`` and ``tests.py`` file for each installed application
#. Running the Unit Tests and Doctests that are found #. Running the Unit Tests and Doctests that are found
#. Destroying the test database. #. Destroying the test database
#. Performing global post-test teardown #. Performing global post-test teardown
If you define your own test runner method and point ``TEST_RUNNER`` If you define your own test runner method and point ``TEST_RUNNER``
@ -457,6 +461,8 @@ arguments:
Verbosity determines the amount of notification and debug information that Verbosity determines the amount of notification and debug information that
will be printed to the console; `0` is no output, `1` is normal output, will be printed to the console; `0` is no output, `1` is normal output,
and `2` is verbose output. and `2` is verbose output.
This method should return the number of tests that failed.
Testing utilities Testing utilities
----------------- -----------------

View File

@ -19,6 +19,15 @@ installed.
.. _`Django installed`: ../install/ .. _`Django installed`: ../install/
.. admonition:: Where to get help:
If you're having trouble going through this tutorial, please post a message
to `django-users`_ or drop by `#django`_ on ``irc.freenode.net`` and we'll
try to help.
.. _django-users: http://groups.google.com/group/django-users
.. _#django: irc://irc.freenode.net/django
Creating a project Creating a project
================== ==================

View File

@ -139,4 +139,24 @@ __test__ = {'API_TESTS':"""
... print obj ... print obj
<DeserializedObject: Profile of Joe> <DeserializedObject: Profile of Joe>
# Objects ids can be referenced before they are defined in the serialization data
# However, the deserialization process will need to be contained within a transaction
>>> json = '[{"pk": "3", "model": "serializers.article", "fields": {"headline": "Forward references pose no problem", "pub_date": "2006-06-16 15:00:00", "categories": [4, 1], "author": 4}}, {"pk": "4", "model": "serializers.category", "fields": {"name": "Reference"}}, {"pk": "4", "model": "serializers.author", "fields": {"name": "Agnes"}}]'
>>> from django.db import transaction
>>> transaction.enter_transaction_management()
>>> transaction.managed(True)
>>> for obj in serializers.deserialize("json", json):
... obj.save()
>>> transaction.commit()
>>> transaction.leave_transaction_management()
>>> article = Article.objects.get(pk=3)
>>> article
<Article: Forward references pose no problem>
>>> article.categories.all()
[<Category: Reference>, <Category: Sports>]
>>> article.author
<Author: Agnes>
"""} """}

View File

@ -97,7 +97,7 @@ class ClientTest(unittest.TestCase):
# Request a page that requires a login # Request a page that requires a login
response = self.client.login('/test_client/login_protected_view/', 'testclient', 'password') response = self.client.login('/test_client/login_protected_view/', 'testclient', 'password')
self.assertTrue(response) self.failUnless(response)
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(response.context['user'].username, 'testclient') self.assertEqual(response.context['user'].username, 'testclient')
self.assertEqual(response.template.name, 'Login Template') self.assertEqual(response.template.name, 'Login Template')
@ -106,7 +106,7 @@ class ClientTest(unittest.TestCase):
"Request a page that is protected with @login, but use bad credentials" "Request a page that is protected with @login, but use bad credentials"
response = self.client.login('/test_client/login_protected_view/', 'otheruser', 'nopassword') response = self.client.login('/test_client/login_protected_view/', 'otheruser', 'nopassword')
self.assertFalse(response) self.failIf(response)
def test_session_modifying_view(self): def test_session_modifying_view(self):
"Request a page that modifies the session" "Request a page that modifies the session"

View File

@ -146,4 +146,8 @@ u'john@example.com'
>>> p.validate() >>> p.validate()
{'email': ['Enter a valid e-mail address.']} {'email': ['Enter a valid e-mail address.']}
# Make sure that Date and DateTime return validation errors and don't raise Python errors.
>>> Person(name='John Doe', is_child=True, email='abc@def.com').validate()
{'favorite_moment': ['This field is required.'], 'birthdate': ['This field is required.']}
"""} """}

View File

View File

@ -0,0 +1,16 @@
import tempfile
from django.db import models
class Photo(models.Model):
title = models.CharField(maxlength=30)
image = models.FileField(upload_to=tempfile.gettempdir())
# Support code for the tests; this keeps track of how many times save() gets
# called on each instance.
def __init__(self, *args, **kwargs):
super(Photo, self).__init__(*args, **kwargs)
self._savecount = 0
def save(self):
super(Photo, self).save()
self._savecount +=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,35 @@
"""
Tests for file field behavior, and specifically #639, in which Model.save() gets
called *again* for each FileField. This test will fail if calling an
auto-manipulator's save() method causes Model.save() to be called more than once.
"""
import os
import unittest
from regressiontests.bug639.models import Photo
from django.http import QueryDict
from django.utils.datastructures import MultiValueDict
class Bug639Test(unittest.TestCase):
def testBug639(self):
"""
Simulate a file upload and check how many times Model.save() gets called.
"""
# Grab an image for testing
img = open(os.path.join(os.path.dirname(__file__), "test.jpg"), "rb").read()
# Fake a request query dict with the file
qd = QueryDict("title=Testing&image=", mutable=True)
qd["image_file"] = {
"filename" : "test.jpg",
"content-type" : "image/jpeg",
"content" : img
}
manip = Photo.AddManipulator()
manip.do_html2python(qd)
p = manip.save(qd)
# Check the savecount stored on the object (see the model)
self.assertEqual(p._savecount, 1)

View File

@ -0,0 +1,2 @@
"""Unit-tests for the dispatch project
"""

View File

View File

@ -0,0 +1,7 @@
"""
Unit-tests for the dispatch project
"""
from test_dispatcher import *
from test_robustapply import *
from test_saferef import *

View File

@ -0,0 +1,144 @@
from django.dispatch.dispatcher import *
from django.dispatch import dispatcher, robust
import unittest
import copy
def x(a):
return a
class Dummy(object):
pass
class Callable(object):
def __call__(self, a):
return a
def a(self, a):
return a
class DispatcherTests(unittest.TestCase):
"""Test suite for dispatcher (barely started)"""
def setUp(self):
# track the initial state, since it's possible that others have bleed receivers in
self.sendersBack = copy.copy(dispatcher.sendersBack)
self.connections = copy.copy(dispatcher.connections)
self.senders = copy.copy(dispatcher.senders)
def _testIsClean(self):
"""Assert that everything has been cleaned up automatically"""
self.assertEqual(dispatcher.sendersBack, self.sendersBack)
self.assertEqual(dispatcher.connections, self.connections)
self.assertEqual(dispatcher.senders, self.senders)
def testExact(self):
a = Dummy()
signal = 'this'
connect(x, signal, a)
expected = [(x,a)]
result = send('this',a, a=a)
self.assertEqual(result, expected)
disconnect(x, signal, a)
self.assertEqual(list(getAllReceivers(a,signal)), [])
self._testIsClean()
def testAnonymousSend(self):
a = Dummy()
signal = 'this'
connect(x, signal)
expected = [(x,a)]
result = send(signal,None, a=a)
self.assertEqual(result, expected)
disconnect(x, signal)
self.assertEqual(list(getAllReceivers(None,signal)), [])
self._testIsClean()
def testAnyRegistration(self):
a = Dummy()
signal = 'this'
connect(x, signal, Any)
expected = [(x,a)]
result = send('this',object(), a=a)
self.assertEqual(result, expected)
disconnect(x, signal, Any)
expected = []
result = send('this',object(), a=a)
self.assertEqual(result, expected)
self.assertEqual(list(getAllReceivers(Any,signal)), [])
self._testIsClean()
def testAnyRegistration2(self):
a = Dummy()
signal = 'this'
connect(x, Any, a)
expected = [(x,a)]
result = send('this',a, a=a)
self.assertEqual(result, expected)
disconnect(x, Any, a)
self.assertEqual(list(getAllReceivers(a,Any)), [])
self._testIsClean()
def testGarbageCollected(self):
a = Callable()
b = Dummy()
signal = 'this'
connect(a.a, signal, b)
expected = []
del a
result = send('this',b, a=b)
self.assertEqual(result, expected)
self.assertEqual(list(getAllReceivers(b,signal)), [])
self._testIsClean()
def testGarbageCollectedObj(self):
class x:
def __call__(self, a):
return a
a = Callable()
b = Dummy()
signal = 'this'
connect(a, signal, b)
expected = []
del a
result = send('this',b, a=b)
self.assertEqual(result, expected)
self.assertEqual(list(getAllReceivers(b,signal)), [])
self._testIsClean()
def testMultipleRegistration(self):
a = Callable()
b = Dummy()
signal = 'this'
connect(a, signal, b)
connect(a, signal, b)
connect(a, signal, b)
connect(a, signal, b)
connect(a, signal, b)
connect(a, signal, b)
result = send('this',b, a=b)
self.assertEqual(len(result), 1)
self.assertEqual(len(list(getAllReceivers(b,signal))), 1)
del a
del b
del result
self._testIsClean()
def testRobust(self):
"""Test the sendRobust function"""
def fails():
raise ValueError('this')
a = object()
signal = 'this'
connect(fails, Any, a)
result = robust.sendRobust('this',a, a=a)
err = result[0][1]
self.assert_(isinstance(err, ValueError))
self.assertEqual(err.args, ('this',))
def getSuite():
return unittest.makeSuite(DispatcherTests,'test')
if __name__ == "__main__":
unittest.main ()

View File

@ -0,0 +1,34 @@
from django.dispatch.robustapply import *
import unittest
def noArgument():
pass
def oneArgument(blah):
pass
def twoArgument(blah, other):
pass
class TestCases(unittest.TestCase):
def test01(self):
robustApply(noArgument)
def test02(self):
self.assertRaises(TypeError, robustApply, noArgument, "this")
def test03(self):
self.assertRaises(TypeError, robustApply, oneArgument)
def test04(self):
"""Raise error on duplication of a particular argument"""
self.assertRaises(TypeError, robustApply, oneArgument, "this", blah = "that")
def getSuite():
return unittest.makeSuite(TestCases,'test')
if __name__ == "__main__":
unittest.main()

View File

@ -0,0 +1,77 @@
from django.dispatch.saferef import *
import unittest
class Test1(object):
def x(self):
pass
def test2(obj):
pass
class Test2(object):
def __call__(self, obj):
pass
class Tester(unittest.TestCase):
def setUp(self):
ts = []
ss = []
for x in xrange(5000):
t = Test1()
ts.append(t)
s = safeRef(t.x, self._closure)
ss.append(s)
ts.append(test2)
ss.append(safeRef(test2, self._closure))
for x in xrange(30):
t = Test2()
ts.append(t)
s = safeRef(t, self._closure)
ss.append(s)
self.ts = ts
self.ss = ss
self.closureCount = 0
def tearDown(self):
del self.ts
del self.ss
def testIn(self):
"""Test the "in" operator for safe references (cmp)"""
for t in self.ts[:50]:
self.assert_(safeRef(t.x) in self.ss)
def testValid(self):
"""Test that the references are valid (return instance methods)"""
for s in self.ss:
self.assert_(s())
def testShortCircuit (self):
"""Test that creation short-circuits to reuse existing references"""
sd = {}
for s in self.ss:
sd[s] = 1
for t in self.ts:
if hasattr(t, 'x'):
self.assert_(sd.has_key(safeRef(t.x)))
else:
self.assert_(sd.has_key(safeRef(t)))
def testRepresentation (self):
"""Test that the reference object's representation works
XXX Doesn't currently check the results, just that no error
is raised
"""
repr(self.ss[-1])
def _closure(self, ref):
"""Dumb utility mechanism to increment deletion counter"""
self.closureCount +=1
def getSuite():
return unittest.makeSuite(Tester,'test')
if __name__ == "__main__":
unittest.main()

View File

@ -124,7 +124,9 @@ def django_tests(verbosity, tests_to_run):
# Run the test suite, including the extra validation tests. # Run the test suite, including the extra validation tests.
from django.test.simple import run_tests from django.test.simple import run_tests
run_tests(test_models, verbosity, extra_tests=extra_tests) failures = run_tests(test_models, verbosity, extra_tests=extra_tests)
if failures:
sys.exit(failures)
# Restore the old settings. # Restore the old settings.
settings.INSTALLED_APPS = old_installed_apps settings.INSTALLED_APPS = old_installed_apps