diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index adc1f9568f..c5e4aa5408 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -37,6 +37,7 @@ LANGUAGES = ( ('bn', _('Bengali')), ('cs', _('Czech')), ('cy', _('Welsh')), + ('da', _('Danish')), ('de', _('German')), ('en', _('English')), ('es', _('Spanish')), diff --git a/django/conf/locale/bn/LC_MESSAGES/django.po b/django/conf/locale/bn/LC_MESSAGES/django.po index 6b87e1c35a..61d89fdc16 100644 --- a/django/conf/locale/bn/LC_MESSAGES/django.po +++ b/django/conf/locale/bn/LC_MESSAGES/django.po @@ -1072,6 +1072,11 @@ msgstr "চেক" msgid "Welsh" msgstr "ওয়েল্শ" +#: conf/global_settings.py:40 +#, fuzzy +msgid "Danish" +msgstr "স্প্যানিশ" + #: conf/global_settings.py:40 msgid "German" msgstr "জার্মান" diff --git a/django/conf/locale/cs/LC_MESSAGES/django.po b/django/conf/locale/cs/LC_MESSAGES/django.po index 4a943d177a..2b7d429519 100644 --- a/django/conf/locale/cs/LC_MESSAGES/django.po +++ b/django/conf/locale/cs/LC_MESSAGES/django.po @@ -1079,6 +1079,11 @@ msgstr "Česky" msgid "Welsh" msgstr "Welšsky" +#: conf/global_settings.py:40 +#, fuzzy +msgid "Danish" +msgstr "Španělsky" + #: conf/global_settings.py:40 msgid "German" msgstr "Německy" diff --git a/django/conf/locale/cy/LC_MESSAGES/django.po b/django/conf/locale/cy/LC_MESSAGES/django.po index fd78496640..3649198542 100644 --- a/django/conf/locale/cy/LC_MESSAGES/django.po +++ b/django/conf/locale/cy/LC_MESSAGES/django.po @@ -1075,6 +1075,11 @@ msgstr "Tsieceg" msgid "Welsh" msgstr "Cymraeg" +#: conf/global_settings.py:40 +#, fuzzy +msgid "Danish" +msgstr "Spaeneg" + #: conf/global_settings.py:40 msgid "German" msgstr "Almaeneg" diff --git a/django/conf/locale/da/LC_MESSAGES/django.mo b/django/conf/locale/da/LC_MESSAGES/django.mo new file mode 100644 index 0000000000..8fbe645ff2 Binary files /dev/null and b/django/conf/locale/da/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/da/LC_MESSAGES/django.po b/django/conf/locale/da/LC_MESSAGES/django.po new file mode 100644 index 0000000000..8197e48f6d --- /dev/null +++ b/django/conf/locale/da/LC_MESSAGES/django.po @@ -0,0 +1,1023 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2005 and beyond +# This file is distributed under the same license as the PACKAGE package. +# Morten Bagai , Nov 2005. +# +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-11-15 12:41-0600\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Morten Bagai \n" +"Language-Team: Danish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: contrib/admin/models/admin.py:6 +msgid "action time" +msgstr "handlingstid" + +#: contrib/admin/models/admin.py:9 +msgid "object id" +msgstr "objekt id" + +#: contrib/admin/models/admin.py:10 +msgid "object repr" +msgstr "objekt repr" + +#: contrib/admin/models/admin.py:11 +msgid "action flag" +msgstr "handlingsflag" + +#: contrib/admin/models/admin.py:12 +msgid "change message" +msgstr "ændringsmeddelelse" + +#: contrib/admin/models/admin.py:15 +msgid "log entry" +msgstr "logmeddelelse" + +#: contrib/admin/models/admin.py:16 +msgid "log entries" +msgstr "logmeddelelser" + +#: contrib/admin/templates/admin/object_history.html:5 +#: contrib/admin/templates/admin/500.html:4 +#: contrib/admin/templates/admin/base.html:29 +#: contrib/admin/templates/registration/password_change_done.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admin/templates/registration/logged_out.html:4 +#: contrib/admin/templates/registration/password_reset_done.html:4 +#: contrib/admin/templates/registration/password_change_form.html:4 +msgid "Home" +msgstr "Hjem" + +#: contrib/admin/templates/admin/object_history.html:5 +msgid "History" +msgstr "Historik" + +#: contrib/admin/templates/admin/object_history.html:18 +msgid "Date/time" +msgstr "Dato/tid" + +#: contrib/admin/templates/admin/object_history.html:19 models/auth.py:47 +msgid "User" +msgstr "Bruger" + +#: contrib/admin/templates/admin/object_history.html:20 +msgid "Action" +msgstr "Funktion" + +#: contrib/admin/templates/admin/object_history.html:26 +msgid "DATE_WITH_TIME_FULL" +msgstr "N j, Y, P" + +#: 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." +msgstr "" +"Dette objekt har ingen ændringshistorik. Det blev formentlig ikke tilføjet " +"via dette administrations-site" + +#: contrib/admin/templates/admin/base_site.html:4 +msgid "Django site admin" +msgstr "Django site administration" + +#: contrib/admin/templates/admin/base_site.html:7 +msgid "Django administration" +msgstr "Django administration" + +#: contrib/admin/templates/admin/500.html:4 +msgid "Server error" +msgstr "Serverfejl" + +#: contrib/admin/templates/admin/500.html:6 +msgid "Server error (500)" +msgstr "Serverfejl (500)" + +#: contrib/admin/templates/admin/500.html:9 +msgid "Server Error (500)" +msgstr "Serverfejl (500)" + +#: contrib/admin/templates/admin/500.html:10 +msgid "" +"There's been an error. It's been reported to the site administrators via e-" +"mail and should be fixed shortly. Thanks for your patience." +msgstr "" +"Der opstod en fejl. Fejlen er rapporteret til site-administratoren via e-" +"mail, og vil blive rettet hurtigst muligt. Tak for din tålmodighed." + +#: contrib/admin/templates/admin/404.html:4 +#: contrib/admin/templates/admin/404.html:8 +msgid "Page not found" +msgstr "Siden blev ikke fundet" + +#: contrib/admin/templates/admin/404.html:10 +msgid "We're sorry, but the requested page could not be found." +msgstr "Vi Beklager, men den ønskede side kunne ikke findes" + +#: contrib/admin/templates/admin/index.html:27 +msgid "Add" +msgstr "Tilføj" + +#: contrib/admin/templates/admin/index.html:33 +msgid "Change" +msgstr "Ændre" + +#: contrib/admin/templates/admin/index.html:43 +msgid "You don't have permission to edit anything." +msgstr "Du har ikke rettigehed til at foretage ændringer" + +#: contrib/admin/templates/admin/index.html:51 +msgid "Recent Actions" +msgstr "Seneste handlinger" + +#: contrib/admin/templates/admin/index.html:52 +msgid "My Actions" +msgstr "Mine handlinger" + +#: contrib/admin/templates/admin/index.html:56 +msgid "None available" +msgstr "Ingen tilgængelige" + +#: contrib/admin/templates/admin/login.html:15 +msgid "Username:" +msgstr "Brugernavn:" + +#: contrib/admin/templates/admin/login.html:18 +msgid "Password:" +msgstr "Adgangskode:" + +#: contrib/admin/templates/admin/login.html:20 +msgid "Have you forgotten your password?" +msgstr "Har du glemt din adgangskode?" + +#: contrib/admin/templates/admin/login.html:24 +msgid "Log in" +msgstr "Log ind" + +#: contrib/admin/templates/admin/base.html:23 +msgid "Welcome," +msgstr "Velkommen" + +#: contrib/admin/templates/admin/base.html:23 +msgid "Change password" +msgstr "Ændre adgangskode" + +#: contrib/admin/templates/admin/base.html:23 +msgid "Log out" +msgstr "Log ud" + +#: contrib/admin/templates/admin/delete_confirmation.html:7 +#, 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:" +msgstr "" +"Hvis du sletter %(object_name)s '%(object)s' vil du også slette relaterede " +"objekter, men du har ikke rettigheder til at slette flg. typer objekter:" + +#: contrib/admin/templates/admin/delete_confirmation.html:14 +#, python-format +msgid "" +"Are you sure you want to delete the %(object_name)s \"%(object)s\"? All of " +"the following related items will be deleted:" +msgstr "" +"Er du sikker på at du vil slette %(object_name) \"%(object)s\"? Alle de " +"følgende relaterede objekter vil blive slettet:" + +#: contrib/admin/templates/admin/delete_confirmation.html:18 +msgid "Yes, I'm sure" +msgstr "Ja, jeg er sikker" + +#: contrib/admin/templates/registration/password_change_done.html:4 +#: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admin/templates/registration/password_change_form.html:6 +#: contrib/admin/templates/registration/password_change_form.html:10 +msgid "Password change" +msgstr "Ændre passord" + +#: contrib/admin/templates/registration/password_change_done.html:6 +#: contrib/admin/templates/registration/password_change_done.html:10 +msgid "Password change successful" +msgstr "Adgangskoden er ændret" + +#: contrib/admin/templates/registration/password_change_done.html:12 +msgid "Your password was changed." +msgstr "Din adgangskode er ændret" + +#: contrib/admin/templates/registration/password_reset_form.html:4 +#: contrib/admin/templates/registration/password_reset_form.html:6 +#: contrib/admin/templates/registration/password_reset_done.html:4 +msgid "Password reset" +msgstr "Nulstil adgangskode" + +#: 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." +msgstr "" +"Har din adgangskode? Indtast din email-adresse nedenfor, så sender vi dig en " +"ny kode via e-mail" + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "E-mail address:" +msgstr "E-mail adresse:" + +#: contrib/admin/templates/registration/password_reset_form.html:16 +msgid "Reset my password" +msgstr "Nulstil min adgangskode" + +#: contrib/admin/templates/registration/logged_out.html:8 +msgid "Thanks for spending some quality time with the Web site today." +msgstr "Tak for den tid du brugte på sitet idag" + +#: contrib/admin/templates/registration/logged_out.html:10 +msgid "Log in again" +msgstr "Log ind igen" + +#: contrib/admin/templates/registration/password_reset_done.html:6 +#: contrib/admin/templates/registration/password_reset_done.html:10 +msgid "Password reset successful" +msgstr "Adgangskoden blev nulstillet" + +#: 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." +msgstr "" +"Vi har e-mailet en ny adgangskode til dig. Du skulle modtage den om ganske " +"kort tid." + +#: contrib/admin/templates/registration/password_change_form.html:12 +msgid "" +"Please enter your old password, for security's sake, and then enter your new " +"password twice so we can verify you typed it in correctly." +msgstr "" +"Indtast venligst din gamle adgangskode af sikkerhedsgrunde, og indtast så " +"dit nye password to gange, så vi kan være sikre på, at det er indtastet " +"korrekt" + +#: contrib/admin/templates/registration/password_change_form.html:17 +msgid "Old password:" +msgstr "Gammel adgangskode:" + +#: contrib/admin/templates/registration/password_change_form.html:19 +msgid "New password:" +msgstr "Ny adgangskode:" + +#: contrib/admin/templates/registration/password_change_form.html:21 +msgid "Confirm password:" +msgstr "Bekræft ny adgangskode:" + +#: contrib/admin/templates/registration/password_change_form.html:23 +msgid "Change my password" +msgstr "Ændre adgangskode" + +#: contrib/admin/templates/registration/password_reset_email.html:2 +msgid "You're receiving this e-mail because you requested a password reset" +msgstr "" +"Du modtager denne e-mail, fordi du har bedt om at få nulstillet dit password" + +#: contrib/admin/templates/registration/password_reset_email.html:3 +#, python-format +msgid "for your user account at %(site_name)s" +msgstr "for din konto hos %(site_name)s" + +#: contrib/admin/templates/registration/password_reset_email.html:5 +#, python-format +msgid "Your new password is: %(new_password)s" +msgstr "Din nye adgangskode er: %(new_password)s" + +#: contrib/admin/templates/registration/password_reset_email.html:7 +msgid "Feel free to change this password by going to this page:" +msgstr "Du kan ændre din adgangskode ved at gå til denne side" + +#: contrib/admin/templates/registration/password_reset_email.html:11 +msgid "Your username, in case you've forgotten:" +msgstr "I det tilfælde, at du har glemt dit brugernavn er det:" + +#: contrib/admin/templates/registration/password_reset_email.html:13 +msgid "Thanks for using our site!" +msgstr "Tak, fordi du brugte vores site!" + +#: contrib/admin/templates/registration/password_reset_email.html:15 +#, python-format +msgid "The %(site_name)s team" +msgstr "Med venlig hilsen %(site_name)s" + +#: contrib/redirects/models/redirects.py:7 +msgid "redirect from" +msgstr "omadresser fra" + +#: contrib/redirects/models/redirects.py:8 +msgid "" +"This should be an absolute path, excluding the domain name. Example: '/" +"events/search/'." +msgstr "" +"Dette skal være en absolut sti uden domænenavnet. For eksempel: '/nyheder/" +"find/" + +#: contrib/redirects/models/redirects.py:9 +msgid "redirect to" +msgstr "omadresser til" + +#: contrib/redirects/models/redirects.py:10 +msgid "" +"This can be either an absolute path (as above) or a full URL starting with " +"'http://'." +msgstr "" +"Dette kan enten være en absolut sti (som over), eller en komplet URL " +"startende med 'http://'" + +#: contrib/redirects/models/redirects.py:12 +msgid "redirect" +msgstr "omadressering" + +#: contrib/redirects/models/redirects.py:13 +msgid "redirects" +msgstr "omaddresseringer" + +#: contrib/flatpages/models/flatpages.py:6 +msgid "URL" +msgstr "Internetadresse" + +#: contrib/flatpages/models/flatpages.py:7 +msgid "" +"Example: '/about/contact/'. Make sure to have leading and trailing slashes." +msgstr "" +"Eksempel: '/om/kontakt/'. Vær sikker på at du har en skråstreg foran og og " +"bagefter." + +#: contrib/flatpages/models/flatpages.py:8 +msgid "title" +msgstr "titel" + +#: contrib/flatpages/models/flatpages.py:9 +msgid "content" +msgstr "indhold" + +#: contrib/flatpages/models/flatpages.py:10 +msgid "enable comments" +msgstr "tillad kommentarer" + +#: contrib/flatpages/models/flatpages.py:11 +msgid "template name" +msgstr "skabelonnavn" + +#: contrib/flatpages/models/flatpages.py:12 +#, fuzzy +msgid "" +"Example: 'flatpages/contact_page'. If this isn't provided, the system will " +"use 'flatpages/default'." +msgstr "" +"Eksempel: 'fladesider/kontakt_side'. Vist denne ikke denne er gitt, vill " +"'flatfiles/default' bli brukt." + +#: contrib/flatpages/models/flatpages.py:13 +msgid "registration required" +msgstr "registrering kreves" + +#: contrib/flatpages/models/flatpages.py:13 +msgid "If this is checked, only logged-in users will be able to view the page." +msgstr "" +"Hvis denne box er krydset af, vil kun brugere, der er logget ind, kunne se " +"siden." + +#: contrib/flatpages/models/flatpages.py:17 +msgid "flat page" +msgstr "flad side" + +#: contrib/flatpages/models/flatpages.py:18 +msgid "flat pages" +msgstr "flade sider" + +#: utils/translation.py:335 +msgid "DATE_FORMAT" +msgstr "" + +#: utils/translation.py:336 +msgid "DATETIME_FORMAT" +msgstr "" + +#: utils/translation.py:337 +msgid "TIME_FORMAT" +msgstr "" + +#: utils/dates.py:6 +msgid "Monday" +msgstr "Mandag" + +#: utils/dates.py:6 +msgid "Tuesday" +msgstr "Tirsdag" + +#: utils/dates.py:6 +msgid "Wednesday" +msgstr "Onsdag" + +#: utils/dates.py:6 +msgid "Thursday" +msgstr "Torsdag" + +#: utils/dates.py:6 +msgid "Friday" +msgstr "Fredag" + +#: utils/dates.py:7 +msgid "Saturday" +msgstr "Lørdag" + +#: utils/dates.py:7 +msgid "Sunday" +msgstr "Søndag" + +#: utils/dates.py:14 +msgid "January" +msgstr "Januar" + +#: utils/dates.py:14 +msgid "February" +msgstr "Februar" + +#: utils/dates.py:14 utils/dates.py:27 +msgid "March" +msgstr "Marts" + +#: utils/dates.py:14 utils/dates.py:27 +msgid "April" +msgstr "April" + +#: utils/dates.py:14 utils/dates.py:27 +msgid "May" +msgstr "Maj" + +#: utils/dates.py:14 utils/dates.py:27 +msgid "June" +msgstr "Juni" + +#: utils/dates.py:15 utils/dates.py:27 +msgid "July" +msgstr "Juli" + +#: utils/dates.py:15 +msgid "August" +msgstr "August" + +#: utils/dates.py:15 +msgid "September" +msgstr "September" + +#: utils/dates.py:15 +msgid "October" +msgstr "Oktober" + +#: utils/dates.py:15 +msgid "November" +msgstr "November" + +#: utils/dates.py:16 +msgid "December" +msgstr "December" + +#: utils/dates.py:27 +msgid "Jan." +msgstr "Jan." + +#: utils/dates.py:27 +msgid "Feb." +msgstr "Feb." + +#: utils/dates.py:28 +msgid "Aug." +msgstr "Aug." + +#: utils/dates.py:28 +msgid "Sept." +msgstr "Sept." + +#: utils/dates.py:28 +msgid "Oct." +msgstr "Okt." + +#: utils/dates.py:28 +msgid "Nov." +msgstr "Nov." + +#: utils/dates.py:28 +msgid "Dec." +msgstr "Dec." + +#: models/core.py:7 +msgid "domain name" +msgstr "domænenavn" + +#: models/core.py:8 +msgid "display name" +msgstr "vist navn" + +#: models/core.py:10 +msgid "site" +msgstr "side" + +#: models/core.py:11 +msgid "sites" +msgstr "sider" + +#: models/core.py:28 +msgid "label" +msgstr "mærkat" + +#: models/core.py:29 models/core.py:40 models/auth.py:6 models/auth.py:19 +msgid "name" +msgstr "navn" + +#: models/core.py:31 +msgid "package" +msgstr "pakke" + +#: models/core.py:32 +msgid "packages" +msgstr "pakker" + +#: models/core.py:42 +msgid "python module name" +msgstr "python modulnavn" + +#: models/core.py:44 +msgid "content type" +msgstr "indholdstype" + +#: models/core.py:45 +msgid "content types" +msgstr "indholdstyper" + +#: models/core.py:67 +msgid "session key" +msgstr "sessionsnøgle" + +#: models/core.py:68 +msgid "session data" +msgstr "sessionsdata" + +#: models/core.py:69 +msgid "expire date" +msgstr "udløbsdato" + +#: models/core.py:71 +msgid "session" +msgstr "session" + +#: models/core.py:72 +msgid "sessions" +msgstr "sessioner" + +#: models/auth.py:8 +msgid "codename" +msgstr "kodenavn" + +#: models/auth.py:10 +msgid "Permission" +msgstr "Rettighed" + +#: models/auth.py:11 models/auth.py:58 +msgid "Permissions" +msgstr "Rettigheder" + +#: models/auth.py:22 +msgid "Group" +msgstr "Gruppe" + +#: models/auth.py:23 models/auth.py:60 +msgid "Groups" +msgstr "Grupper" + +#: models/auth.py:33 +msgid "username" +msgstr "brugernavn" + +#: models/auth.py:34 +msgid "first name" +msgstr "fornavn" + +#: models/auth.py:35 +msgid "last name" +msgstr "efternavn" + +#: models/auth.py:36 +msgid "e-mail address" +msgstr "e-mail adresse" + +#: models/auth.py:37 +msgid "password" +msgstr "adgangskode" + +#: models/auth.py:37 +msgid "Use an MD5 hash -- not the raw password." +msgstr "Brug et MD5 hash -- ikke adgangskoden i klartekst" + +#: models/auth.py:38 +msgid "staff status" +msgstr "administrationsstatus" + +#: models/auth.py:38 +msgid "Designates whether the user can log into this admin site." +msgstr "Bestemmer om brugeren kan logge ind på dette administrationssite" + +#: models/auth.py:39 +msgid "active" +msgstr "aktiv" + +#: models/auth.py:40 +msgid "superuser status" +msgstr "superbruger" + +#: models/auth.py:41 +msgid "last login" +msgstr "sidst logget ind" + +#: models/auth.py:42 +msgid "date joined" +msgstr "registreringsdato" + +#: models/auth.py:44 +msgid "" +"In addition to the permissions manually assigned, this user will also get " +"all permissions granted to each group he/she is in." +msgstr "" +"I tillæg til de rettighder, som manuelt er tildelt brugeren, vil denne også " +"få alle rettigheder tildelt hver gruppe han/hun er medlem af" + +#: models/auth.py:48 +msgid "Users" +msgstr "Brugere" + +#: models/auth.py:57 +msgid "Personal info" +msgstr "Personlig information" + +#: models/auth.py:59 +msgid "Important dates" +msgstr "Vigtige datoer" + +#: models/auth.py:195 +msgid "Message" +msgstr "Meddelelse" + +#: conf/global_settings.py:36 +msgid "Bengali" +msgstr "" + +#: conf/global_settings.py:37 +msgid "Czech" +msgstr "Tjekkisk" + +#: conf/global_settings.py:38 +msgid "Welsh" +msgstr "Walisisk" + +#: conf/global_settings.py:39 +#, fuzzy +msgid "Danish" +msgstr "Spansk" + +#: conf/global_settings.py:40 +msgid "German" +msgstr "Tysk" + +#: conf/global_settings.py:41 +msgid "English" +msgstr "Engelsk" + +#: conf/global_settings.py:42 +msgid "Spanish" +msgstr "Spansk" + +#: conf/global_settings.py:43 +msgid "French" +msgstr "Fransk" + +#: conf/global_settings.py:44 +msgid "Galician" +msgstr "Galicisk" + +#: conf/global_settings.py:45 +msgid "Icelandic" +msgstr "Islandsk" + +#: conf/global_settings.py:46 +msgid "Italian" +msgstr "Italiensk" + +#: conf/global_settings.py:47 +msgid "Norwegian" +msgstr "Norsk" + +#: conf/global_settings.py:48 +msgid "Brazilian" +msgstr "Brasiliansk" + +#: conf/global_settings.py:49 +msgid "Romanian" +msgstr "Rumænsk" + +#: conf/global_settings.py:50 +msgid "Russian" +msgstr "Russisk" + +#: conf/global_settings.py:51 +msgid "Slovak" +msgstr "Slovakisk" + +#: conf/global_settings.py:52 +msgid "Serbian" +msgstr "Serbisk" + +#: conf/global_settings.py:53 +msgid "Swedish" +msgstr "Svensk" + +#: conf/global_settings.py:54 +msgid "Simplified Chinese" +msgstr "Simpel Kinesisk" + +#: core/validators.py:59 +msgid "This value must contain only letters, numbers and underscores." +msgstr "Dette felt må kun indeholde bogstaver, tal og understreger." + +#: core/validators.py:63 +msgid "This value must contain only letters, numbers, underscores and slashes." +msgstr "" +"Dette felt må kun indeholde bogstaver, tal, understreger og skråstreger." + +#: core/validators.py:71 +msgid "Uppercase letters are not allowed here." +msgstr "Store bogstaver er ikke tilladt her" + +#: core/validators.py:75 +msgid "Lowercase letters are not allowed here." +msgstr "Små bogstaver er ikke tilladt her" + +#: core/validators.py:82 +msgid "Enter only digits separated by commas." +msgstr "Indtast kun tal adskilt af kommaer." + +#: core/validators.py:94 +msgid "Enter valid e-mail addresses separated by commas." +msgstr "Indtast gyldige email-adresser adskilt af kommaer" + +#: core/validators.py:98 +msgid "Please enter a valid IP address." +msgstr "Venlist indtast en gyldig email-adresse." + +#: core/validators.py:102 +msgid "Empty values are not allowed here." +msgstr "Dette felt kan ikke være tomt." + +#: core/validators.py:106 +msgid "Non-numeric characters aren't allowed here." +msgstr "Der må kun være tal her" + +#: core/validators.py:110 +msgid "This value can't be comprised solely of digits." +msgstr "Denne værdi kan ikke kun bestå af tal." + +#: core/validators.py:115 +msgid "Enter a whole number." +msgstr "Indtast et heltal." + +#: core/validators.py:119 +msgid "Only alphabetical characters are allowed here." +msgstr "Her er kun bogstaver tilladt." + +#: core/validators.py:123 +msgid "Enter a valid date in YYYY-MM-DD format." +msgstr "Indtast en dato i ÅÅÅÅ-MM-DD format." + +#: core/validators.py:127 +msgid "Enter a valid time in HH:MM format." +msgstr "Indtast tid i TT:MM format." + +#: core/validators.py:131 +msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." +msgstr "Indtast dato og tid i ÅÅÅÅ-MM-DD TT:MM format." + +#: core/validators.py:135 +msgid "Enter a valid e-mail address." +msgstr "Indtast en gyldig email-adresse." + +#: core/validators.py:147 +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" +"Upload en billed-fil. Filen du uploadede var enten ikke et billede eller en " +"ødelagt billed-fil" + +#: core/validators.py:154 +#, python-format +msgid "The URL %s does not point to a valid image." +msgstr "URLen %s viser ikke til en gyldig billed-fil" + +#: core/validators.py:158 +#, python-format +msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." +msgstr "" +"Telefonnumre skal være i XXX-XXX-XXXX formatet. \"%s\" er ikke godkjent." + +#: core/validators.py:166 +#, python-format +msgid "The URL %s does not point to a valid QuickTime video." +msgstr "URLen %s viser ikke til en gyldig QuickTime-film." + +#: core/validators.py:170 +msgid "A valid URL is required." +msgstr "En gyldig URL er påkrævet" + +#: core/validators.py:184 +#, python-format +msgid "" +"Valid HTML is required. Specific errors are:\n" +"%s" +msgstr "" +"Gyldig HTML er påkrævet. Fejlene er:\n" +"%s" + +#: core/validators.py:191 +#, python-format +msgid "Badly formed XML: %s" +msgstr "Ugyldig XML: %s" + +#: core/validators.py:201 +#, python-format +msgid "Invalid URL: %s" +msgstr "Ugyldig URL: %s" + +#: core/validators.py:205 core/validators.py:207 +#, python-format +msgid "The URL %s is a broken link." +msgstr "Denne URL %s linker ikke til en gyldig side eller fil" + +#: core/validators.py:213 +msgid "Enter a valid U.S. state abbreviation." +msgstr "Indtast en gyldig amerikansk statsforkortelse" + +#: core/validators.py:228 +#, python-format +msgid "Watch your mouth! The word %s is not allowed here." +msgid_plural "Watch your mouth! The words %s are not allowed here." +msgstr[0] "Var din mund! Ordet %s er ikke tilladt her." +msgstr[1] "Var din mund! Ordene %s er ikke tilladt her." + +#: core/validators.py:235 +#, python-format +msgid "This field must match the '%s' field." +msgstr "Dette felt skal matche '%s' feltet." + +#: core/validators.py:254 +msgid "Please enter something for at least one field." +msgstr "Indtast venligst noget i mindst et felt" + +#: core/validators.py:263 core/validators.py:274 +msgid "Please enter both fields or leave them both empty." +msgstr "Udfyld begge felter, eller lad dem begge være blanke" + +#: core/validators.py:281 +#, python-format +msgid "This field must be given if %(field)s is %(value)s" +msgstr "Dette felt skal udfyldes, hvis %(field)s er lig %(value)s" + +#: core/validators.py:293 +#, python-format +msgid "This field must be given if %(field)s is not %(value)s" +msgstr "Dette felt skal udfyldes, hvis %(field)s ikke er lig %(value)s" + +#: core/validators.py:312 +msgid "Duplicate values are not allowed." +msgstr "Duplikate værdier er ikke tilladt her" + +#: core/validators.py:335 +#, python-format +msgid "This value must be a power of %s." +msgstr "Denne værdi skal være en potens af %s." + +#: core/validators.py:346 +msgid "Please enter a valid decimal number." +msgstr "Indtast venligst et gyldigt decimaltal." + +#: core/validators.py:348 +#, fuzzy, python-format +msgid "Please enter a valid decimal number with at most %s total digit." +msgid_plural "" +"Please enter a valid decimal number with at most %s total digits." +msgstr[0] "Indtast en gyldig decimal med max %s tal ialt" +msgstr[1] "Indtast en gyldig decimal med max %s tal ialt" + +#: core/validators.py:351 +#, python-format +msgid "Please enter a valid decimal number with at most %s decimal place." +msgid_plural "" +"Please enter a valid decimal number with at most %s decimal places." +msgstr[0] "Indtast en gyldig decimal med max %s tal efter kommaet" +msgstr[1] "Indtast en gyldig decimal med max %s tal efter kommaet" + +#: core/validators.py:361 +#, python-format +msgid "Make sure your uploaded file is at least %s bytes big." +msgstr "Tjek at den uploadede fil er mindst % bytes." + +#: core/validators.py:362 +#, python-format +msgid "Make sure your uploaded file is at most %s bytes big." +msgstr "Tjek at den uploadede file er max %s bytes." + +#: core/validators.py:375 +msgid "The format for this field is wrong." +msgstr "Formatet i dette feltet er feil." + +#: core/validators.py:390 +msgid "This field is invalid." +msgstr "Dette felt er ugyldigt." + +#: core/validators.py:425 +#, python-format +msgid "Could not retrieve anything from %s." +msgstr "Kunne ikke finde noget i %s." + +#: core/validators.py:428 +#, python-format +msgid "" +"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." +msgstr "" +"URLen %(url)s returnerede ikke en godkendt Content-Type '%(contenttype)s'." + +#: core/validators.py:461 +#, python-format +msgid "" +"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " +"\"%(start)s\".)" +msgstr "" +"Luk venligst %(tag)s på linje %(line)s. (Linjen starer med \"%(start)s\".)" + +#: core/validators.py:465 +#, python-format +msgid "" +"Some text starting on line %(line)s is not allowed in that context. (Line " +"starts with \"%(start)s\".)" +msgstr "" +"En del af teksten som starter på linje %(line)s er ikke tilladt. (Linjen " +"starter med \"%(start)s\".)" + +#: core/validators.py:470 +#, python-format +msgid "" +"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" +"(start)s\".)" +msgstr "" +"\"%(attr)s\" på linje %(line)s er ikke en gyldig attribut. (Linjen starter " +"med \"%(start)s\".)" + +#: core/validators.py:475 +#, python-format +msgid "" +"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" +"(start)s\".)" +msgstr "" +"\"<%(tag)s>\" på linje %(line)s er ikke et gyldigt tag. (Linjen starter med " +"\"%(start)s\".)" + +#: core/validators.py:479 +#, python-format +msgid "" +"A tag on line %(line)s is missing one or more required attributes. (Line " +"starts with \"%(start)s\".)" +msgstr "" +"Et tag på linje %(line)s mangler en obligatorisk attribut. (Linjen starter " +"med \"%(start)s\".)" + +#: core/validators.py:484 +#, python-format +msgid "" +"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " +"starts with \"%(start)s\".)" +msgstr "" +"\"%(attr)s\" attributten på linje $(line)s har en ugyldig værdi. (Linjen " +"starter med \"%(start)s\".)" + +#: core/meta/fields.py:111 +msgid " Separate multiple IDs with commas." +msgstr "Adskil id'er med kommaer." + +#: core/meta/fields.py:114 +msgid "" +" Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" +"Hold \"Kontrol\", eller \"Æbletasten\" på Mac, nede for at vælge mere end en." + +#~ msgid "Traditional Chinese" +#~ msgstr "Traditionel Kinesisk" diff --git a/django/conf/locale/de/LC_MESSAGES/django.mo b/django/conf/locale/de/LC_MESSAGES/django.mo index 5b7d1fce0a..9ee8217c54 100644 Binary files a/django/conf/locale/de/LC_MESSAGES/django.mo and b/django/conf/locale/de/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/de/LC_MESSAGES/django.po b/django/conf/locale/de/LC_MESSAGES/django.po index f486f923b5..6338b9c96a 100644 --- a/django/conf/locale/de/LC_MESSAGES/django.po +++ b/django/conf/locale/de/LC_MESSAGES/django.po @@ -1328,6 +1328,10 @@ msgstr "Tschechisch" msgid "Welsh" msgstr "Walisisch" +#: conf/global_settings.py:40 +msgid "Danish" +msgstr "Dnisch" + #: conf/global_settings.py:40 msgid "German" msgstr "Deutsch" diff --git a/django/conf/locale/en/LC_MESSAGES/django.po b/django/conf/locale/en/LC_MESSAGES/django.po index 09a876c53f..a8d0425b5f 100644 --- a/django/conf/locale/en/LC_MESSAGES/django.po +++ b/django/conf/locale/en/LC_MESSAGES/django.po @@ -1041,6 +1041,10 @@ msgstr "" msgid "Welsh" msgstr "" +#: conf/global_settings.py:40 +msgid "Danish" +msgstr "" + #: conf/global_settings.py:40 msgid "German" msgstr "" diff --git a/django/conf/locale/es/LC_MESSAGES/django.po b/django/conf/locale/es/LC_MESSAGES/django.po index 97069ea4f7..86a9f1c293 100644 --- a/django/conf/locale/es/LC_MESSAGES/django.po +++ b/django/conf/locale/es/LC_MESSAGES/django.po @@ -1069,6 +1069,10 @@ msgstr "" msgid "Welsh" msgstr "" +#: conf/global_settings.py:40 +msgid "Danish" +msgstr "" + #: conf/global_settings.py:40 msgid "German" msgstr "" diff --git a/django/conf/locale/fr/LC_MESSAGES/django.po b/django/conf/locale/fr/LC_MESSAGES/django.po index 7daeb5d7a9..ab8ffcce4b 100644 --- a/django/conf/locale/fr/LC_MESSAGES/django.po +++ b/django/conf/locale/fr/LC_MESSAGES/django.po @@ -1083,6 +1083,11 @@ msgstr "Tch msgid "Welsh" msgstr "" +#: conf/global_settings.py:40 +#, fuzzy +msgid "Danish" +msgstr "Espagnol" + #: conf/global_settings.py:40 msgid "German" msgstr "Allemand" diff --git a/django/conf/locale/gl/LC_MESSAGES/django.po b/django/conf/locale/gl/LC_MESSAGES/django.po index 9ac52f6e45..f144e4f0a6 100644 --- a/django/conf/locale/gl/LC_MESSAGES/django.po +++ b/django/conf/locale/gl/LC_MESSAGES/django.po @@ -1068,6 +1068,10 @@ msgstr "" msgid "Welsh" msgstr "" +#: conf/global_settings.py:40 +msgid "Danish" +msgstr "" + #: conf/global_settings.py:40 msgid "German" msgstr "" diff --git a/django/conf/locale/is/LC_MESSAGES/django.po b/django/conf/locale/is/LC_MESSAGES/django.po index b97648977f..79f57db8f1 100644 --- a/django/conf/locale/is/LC_MESSAGES/django.po +++ b/django/conf/locale/is/LC_MESSAGES/django.po @@ -1077,6 +1077,11 @@ msgstr "Tékkneska" msgid "Welsh" msgstr "Velska" +#: conf/global_settings.py:40 +#, fuzzy +msgid "Danish" +msgstr "Spænska" + #: conf/global_settings.py:40 msgid "German" msgstr "Þýska" diff --git a/django/conf/locale/it/LC_MESSAGES/django.po b/django/conf/locale/it/LC_MESSAGES/django.po index ad8e8b4cd2..ccf760dfc2 100644 --- a/django/conf/locale/it/LC_MESSAGES/django.po +++ b/django/conf/locale/it/LC_MESSAGES/django.po @@ -1076,6 +1076,11 @@ msgstr "" msgid "Welsh" msgstr "" +#: conf/global_settings.py:40 +#, fuzzy +msgid "Danish" +msgstr "Spagnolo" + #: conf/global_settings.py:40 msgid "German" msgstr "Tedesco" diff --git a/django/conf/locale/no/LC_MESSAGES/django.po b/django/conf/locale/no/LC_MESSAGES/django.po index 4d8c09788b..5dcb51f19a 100644 --- a/django/conf/locale/no/LC_MESSAGES/django.po +++ b/django/conf/locale/no/LC_MESSAGES/django.po @@ -1077,6 +1077,11 @@ msgstr "Tsjekkisk" msgid "Welsh" msgstr "" +#: conf/global_settings.py:40 +#, fuzzy +msgid "Danish" +msgstr "Spansk" + #: conf/global_settings.py:40 msgid "German" msgstr "Tysk" diff --git a/django/conf/locale/pt_BR/LC_MESSAGES/django.po b/django/conf/locale/pt_BR/LC_MESSAGES/django.po index 63309e1b41..a5e7db810c 100644 --- a/django/conf/locale/pt_BR/LC_MESSAGES/django.po +++ b/django/conf/locale/pt_BR/LC_MESSAGES/django.po @@ -1080,6 +1080,11 @@ msgstr "Tcheco" msgid "Welsh" msgstr "" +#: conf/global_settings.py:40 +#, fuzzy +msgid "Danish" +msgstr "Espanhol" + #: conf/global_settings.py:40 msgid "German" msgstr "Alemão" diff --git a/django/conf/locale/ro/LC_MESSAGES/django.po b/django/conf/locale/ro/LC_MESSAGES/django.po index d3884f7e12..249e9656c1 100644 --- a/django/conf/locale/ro/LC_MESSAGES/django.po +++ b/django/conf/locale/ro/LC_MESSAGES/django.po @@ -1077,6 +1077,11 @@ msgstr "Cehă" msgid "Welsh" msgstr "" +#: conf/global_settings.py:40 +#, fuzzy +msgid "Danish" +msgstr "Spaniolă" + #: conf/global_settings.py:40 msgid "German" msgstr "Germană" diff --git a/django/conf/locale/ru/LC_MESSAGES/django.po b/django/conf/locale/ru/LC_MESSAGES/django.po index 6a3ca57d6d..4fbcc900c5 100644 --- a/django/conf/locale/ru/LC_MESSAGES/django.po +++ b/django/conf/locale/ru/LC_MESSAGES/django.po @@ -1066,6 +1066,10 @@ msgstr "" msgid "Welsh" msgstr "" +#: conf/global_settings.py:40 +msgid "Danish" +msgstr "" + #: conf/global_settings.py:40 msgid "German" msgstr "" diff --git a/django/conf/locale/sk/LC_MESSAGES/django.mo b/django/conf/locale/sk/LC_MESSAGES/django.mo index cbe40e335c..946a2c51d0 100644 Binary files a/django/conf/locale/sk/LC_MESSAGES/django.mo and b/django/conf/locale/sk/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/sk/LC_MESSAGES/django.po b/django/conf/locale/sk/LC_MESSAGES/django.po index eee486038a..b5be24c97f 100644 --- a/django/conf/locale/sk/LC_MESSAGES/django.po +++ b/django/conf/locale/sk/LC_MESSAGES/django.po @@ -1072,7 +1072,7 @@ msgstr "Zpráva" #: conf/global_settings.py:37 msgid "Bengali" -msgstr "" +msgstr "Bengálsky" #: conf/global_settings.py:38 msgid "Czech" @@ -1080,7 +1080,7 @@ msgstr "Český" #: conf/global_settings.py:39 msgid "Welsh" -msgstr "" +msgstr "Waleský" #: conf/global_settings.py:40 msgid "German" @@ -1104,7 +1104,7 @@ msgstr "Galicijský" #: conf/global_settings.py:45 msgid "Icelandic" -msgstr "" +msgstr "Islandský" #: conf/global_settings.py:46 msgid "Italian" @@ -1120,7 +1120,7 @@ msgstr "Brazílsky" #: conf/global_settings.py:49 msgid "Romanian" -msgstr "" +msgstr "Rumúnsky" #: conf/global_settings.py:50 msgid "Russian" diff --git a/django/conf/locale/sr/LC_MESSAGES/django.po b/django/conf/locale/sr/LC_MESSAGES/django.po index cefdc80013..b3ce1232af 100644 --- a/django/conf/locale/sr/LC_MESSAGES/django.po +++ b/django/conf/locale/sr/LC_MESSAGES/django.po @@ -1080,6 +1080,11 @@ msgstr "Češki" msgid "Welsh" msgstr "Welšski" +#: conf/global_settings.py:40 +#, fuzzy +msgid "Danish" +msgstr "Španski" + #: conf/global_settings.py:40 msgid "German" msgstr "Nemački" diff --git a/django/conf/locale/sv/LC_MESSAGES/django.po b/django/conf/locale/sv/LC_MESSAGES/django.po index aaa8aa4eed..b6c4768726 100644 --- a/django/conf/locale/sv/LC_MESSAGES/django.po +++ b/django/conf/locale/sv/LC_MESSAGES/django.po @@ -1078,6 +1078,11 @@ msgstr "Tjeckiska" msgid "Welsh" msgstr "Walesiska" +#: conf/global_settings.py:40 +#, fuzzy +msgid "Danish" +msgstr "Spanska" + #: conf/global_settings.py:40 msgid "German" msgstr "Tyska" diff --git a/django/conf/locale/zh_CN/LC_MESSAGES/django.po b/django/conf/locale/zh_CN/LC_MESSAGES/django.po index 16d90ab906..4dd8c4bffd 100644 --- a/django/conf/locale/zh_CN/LC_MESSAGES/django.po +++ b/django/conf/locale/zh_CN/LC_MESSAGES/django.po @@ -1066,6 +1066,11 @@ msgstr "捷克语" msgid "Welsh" msgstr "威尔士语" +#: conf/global_settings.py:40 +#, fuzzy +msgid "Danish" +msgstr "西斑牙语" + #: conf/global_settings.py:40 msgid "German" msgstr "德语" diff --git a/django/core/db/backends/postgresql.py b/django/core/db/backends/postgresql.py index 1db6fe40c3..b1b2d9cb52 100644 --- a/django/core/db/backends/postgresql.py +++ b/django/core/db/backends/postgresql.py @@ -24,7 +24,7 @@ class DatabaseWrapper: if DATABASE_USER: conn_string = "user=%s %s" % (DATABASE_USER, conn_string) if DATABASE_PASSWORD: - conn_string += " password=%s" % DATABASE_PASSWORD + conn_string += " password='%s'" % DATABASE_PASSWORD if DATABASE_HOST: conn_string += " host=%s" % DATABASE_HOST if DATABASE_PORT: diff --git a/django/core/formfields.py b/django/core/formfields.py index 2bfc50a9f4..8455657f0b 100644 --- a/django/core/formfields.py +++ b/django/core/formfields.py @@ -102,6 +102,7 @@ class FormWrapper: self.manipulator, self.data = manipulator, data self.error_dict = error_dict self._inline_collections = None + self.fields = [self.__getitem__(field.field_name) for field in self.manipulator.fields] self.edit_inline = edit_inline def __repr__(self): diff --git a/django/parts/auth/anonymoususers.py b/django/parts/auth/anonymoususers.py index b279d99d06..fea93e2f5a 100644 --- a/django/parts/auth/anonymoususers.py +++ b/django/parts/auth/anonymoususers.py @@ -34,6 +34,9 @@ class AnonymousUser: def has_perm(self, perm): return False + def has_module_perms(self, module): + return False + def get_and_delete_messages(self): return [] diff --git a/django/templatetags/i18n.py b/django/templatetags/i18n.py index 8873586c24..bf752ed598 100644 --- a/django/templatetags/i18n.py +++ b/django/templatetags/i18n.py @@ -163,6 +163,23 @@ def do_translate(parser, token): def do_block_translate(parser, token): """ + This will translate a block of text with parameters. + + Format is like this:: + + {% blocktrans with foo|filter as bar and baz|filter as boo %} + This is {{ bar }} and {{ boo }}. + {% endblocktrans %} + + Additionally this supports pluralization:: + + {% blocktrans count var|length as count %} + There is {{ count }} object. + {% plural %} + There are {{ count }} objects. + {% endblocktrans %} + + This is much like ngettext, only in template syntax. """ class BlockTranslateParser(TokenParser): diff --git a/django/views/debug.py b/django/views/debug.py index d5323c0b59..4eb95c91d9 100644 --- a/django/views/debug.py +++ b/django/views/debug.py @@ -1,3 +1,4 @@ +import re import os import sys import inspect @@ -6,6 +7,8 @@ from os.path import dirname, join as pathjoin from django.core.template import Template, Context from django.utils.httpwrappers import HttpResponseServerError, HttpResponseNotFound +HIDDEN_SETTINGS = re.compile('SECRET|PASSWORD') + def technical_500_response(request, exc_type, exc_value, tb): """ Create a technical server error response. The last three arguments are @@ -30,7 +33,17 @@ def technical_500_response(request, exc_type, exc_value, tb): 'pre_context_lineno' : pre_context_lineno, }) tb = tb.tb_next - + + # Turn the settings module into a dict, filtering out anything that + # matches HIDDEN_SETTINGS along the way. + settings_dict = {} + for k in dir(settings): + if k.isupper(): + if HIDDEN_SETTINGS.search(k): + settings_dict[k] = '********************' + else: + settings_dict[k] = getattr(settings, k) + t = Template(TECHNICAL_500_TEMPLATE) c = Context({ 'exception_type' : exc_type.__name__, @@ -39,7 +52,7 @@ def technical_500_response(request, exc_type, exc_value, tb): 'lastframe' : frames[-1], 'request' : request, 'request_protocol' : os.environ.get("HTTPS") == "on" and "https" or "http", - 'settings' : dict([(k, getattr(settings, k)) for k in dir(settings) if k.isupper()]), + 'settings' : settings_dict, }) return HttpResponseServerError(t.render(c)) diff --git a/django/views/generic/simple.py b/django/views/generic/simple.py new file mode 100644 index 0000000000..8a054e1ce7 --- /dev/null +++ b/django/views/generic/simple.py @@ -0,0 +1,28 @@ +from django.core.extensions import DjangoContext, render_to_response +from django.utils.httpwrappers import HttpResponse, HttpResponseRedirect, HttpResponseGone + +def direct_to_template(request, template, **kwargs): + """ + Render a given template with any extra URL parameters in the context as + ``{{ params }}``. + """ + return render_to_response(template, {'params' : kwargs}, context_instance=DjangoContext(request)) + +def redirect_to(request, url, **kwargs): + """ + Redirect to a given URL. + + The given url may contain dict-style string formatting which will be + interpolated against the params in the URL. For example, to redirect from + ``/foo//`` to ``/bar//``, you could use the following urlpattern:: + + urlpatterns = patterns('', + ('^foo/(?p\d+)/$', 'django.views.generic.simple.redirect_to', {'url' : '/bar/%(id)s/'}), + ) + + If the given url is ``None``, a HttpResponseGone (410) will be issued. + """ + if url is not None: + return HttpResponseRedirect(url % kwargs) + else: + return HttpResponseGone() \ No newline at end of file diff --git a/docs/faq.txt b/docs/faq.txt index 062bce730b..58caf32b30 100644 --- a/docs/faq.txt +++ b/docs/faq.txt @@ -143,6 +143,16 @@ problems in similar ways, but it was too late to integrate outside code: We'd already written, tested and implemented our own framework bits in several production settings -- and our own code met our needs delightfully. +In most cases, however, we found that existing frameworks/tools inevitably had +some sort of fundamental, fatal flaw that made us squeamish. No tool fit our +philosophies 100%. + +Like we said: We're picky. + +We've documented our philosophies on the `design philosophies page`_. + +.. _design philosophies page: http://www.djangoproject.com/documentation/design_philosophies/ + Do you have any of those nifty "screencast" things? --------------------------------------------------- diff --git a/docs/generic_views.txt b/docs/generic_views.txt index 1c0de07a7a..9db1577d71 100644 --- a/docs/generic_views.txt +++ b/docs/generic_views.txt @@ -57,8 +57,8 @@ arguments may either come from the URL pattern (as ``month``, ``day``, ``year``, etc. do above) or from the additional-information dictionary (as for ``app_label``, ``module_name``, etc.). -All the generic views that follow require the ``app_label`` and ``module_name`` keys. -These values are easiest to explain through example:: +Most of the generic views that follow require the ``app_label`` and +``module_name`` keys. These values are easiest to explain through example:: >>> from django.models.blog import entries @@ -68,6 +68,42 @@ holds all your model definitions) and ``entries`` is the ``module_name`` of the ``module_name`` option of your model). In the docs below, these keys will not be repeated, but each generic view requires them. +Using "simple" generic views +============================ + +The ``django.views.generic.simple`` module contains simple views to handle a +couple of common cases: rendering a template when no view logic is needed, +and issuing a redirect. These views are: + +``direct_to_template`` + Renders a given template using any extra parameters passed in the + urlpattern; requires the ``template`` argument. + + For example, given the following URL patterns:: + + urlpatterns = patterns('django.views.generic.simple', + (r'^foo/$', 'direct_to_template', {'template' : 'foo_index'}), + (r'^foo/(?P\d+)/$', 'direct_to_template', {'template' : 'foo_detail'}), + ) + + ... a request to ``/foo/`` would cause the ``foo_index`` template to be + rendered, and a request to ``/foo/15/`` would cause the ``foo_detail`` + template to be rendered with a context variable ``{{ params.id }}`` that is + set to ``15``. + +``redirect_to`` + Issue a redirect to a given URL. + + The given url may contain dict-style string formatting which will be + interpolated against the params in the URL. For example, to redirect from + ``/foo//`` to ``/bar//``, you could use the following urlpattern:: + + urlpatterns = patterns('django.views.generic.simple', + ('^foo/(?p\d+)/$', 'redirect_to', {'url' : '/bar/%(id)s/'}), + ) + + If the given url is ``None``, a HttpResponseGone (410) will be issued. + Using date-based generic views ============================== @@ -322,3 +358,4 @@ The create/update/delete views are: object The object about to be deleted + diff --git a/docs/settings.txt b/docs/settings.txt index 37a3228ada..8098856f85 100644 --- a/docs/settings.txt +++ b/docs/settings.txt @@ -409,6 +409,7 @@ Default: A tuple of all available languages. Currently, this is:: ('bn', _('Bengali')), ('cs', _('Czech')), ('cy', _('Welsh')), + ('da', _('Danish')), ('de', _('German')), ('en', _('English')), ('es', _('Spanish')),