1
0
mirror of https://github.com/django/django.git synced 2025-07-04 17:59:13 +00:00

Merged to trunk r1281

git-svn-id: http://code.djangoproject.com/svn/django/branches/new-admin@1282 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Robert Wittams 2005-11-18 17:10:19 +00:00
commit 3da16d2d25
16 changed files with 430 additions and 363 deletions

View File

@ -1,8 +1,8 @@
# translation of django.po to french
# This file is distributed under the same license as the PACKAGE package.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
# Laurent Rahuel <laurent.rahuel@gmail.com>, 2005.
#
# translation of django.po to french
# This file is distributed under the same license as the PACKAGE package.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
# Laurent Rahuel <laurent.rahuel@gmail.com>, 2005.
#
msgid ""
msgstr ""
"Project-Id-Version: django\n"
@ -544,6 +544,7 @@ msgid "Time"
msgstr ""
#: contrib/admin/views/doc.py:284 contrib/flatpages/models/flatpages.py:6
#: models/core.py:81
msgid "URL"
msgstr "URL"
@ -947,100 +948,10 @@ msgstr ""
msgid "As above, but opens the admin page in a new window."
msgstr ""
#: contrib/redirects/models/redirects.py:7
#: contrib/redirects/models/redirects.py:7 models/core.py:62
msgid "redirect from"
msgstr "redirigé depuis"
#: contrib/redirects/models/redirects.py:8
msgid ""
"This should be an absolute path, excluding the domain name. Example: '/"
"events/search/'."
msgstr ""
"Ceci doit être un chemin absolu, sans nom de domaine. Par exemple: '/events/"
"search/'."
#: contrib/redirects/models/redirects.py:9
msgid "redirect to"
msgstr "redirigé vers"
#: contrib/redirects/models/redirects.py:10
msgid ""
"This can be either an absolute path (as above) or a full URL starting with "
"'http://'."
msgstr ""
"Ceci peut être soit un chemin absolu (voir ci-dessus) soit une URL complète "
"débutant par 'http://'."
#: contrib/redirects/models/redirects.py:12
msgid "redirect"
msgstr "redirection"
#: contrib/redirects/models/redirects.py:13
msgid "redirects"
msgstr "redirections"
#: contrib/flatpages/models/flatpages.py:7
msgid ""
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr ""
"Par exemple : '/about/contact/'. Vérifiez la présence du caractère '/' en "
"début et en fin de chaine."
#: contrib/flatpages/models/flatpages.py:8
msgid "title"
msgstr "titre"
#: contrib/flatpages/models/flatpages.py:9
msgid "content"
msgstr "contenu"
#: contrib/flatpages/models/flatpages.py:10
msgid "enable comments"
msgstr "autoriser les commentaires"
#: contrib/flatpages/models/flatpages.py:11
msgid "template name"
msgstr "nom du template"
#: contrib/flatpages/models/flatpages.py:12
#, fuzzy
msgid ""
"Example: 'flatpages/contact_page'. If this isn't provided, the system will "
"use 'flatpages/default'."
msgstr ""
"Par exemple: 'flatfiles/contact_page'. Sans définition, le système utilisera "
"'flatfiles/default'."
#: contrib/flatpages/models/flatpages.py:13
msgid "registration required"
msgstr "enregistrement requis"
#: contrib/flatpages/models/flatpages.py:13
msgid "If this is checked, only logged-in users will be able to view the page."
msgstr ""
"Si coché, seuls les utilisateurs connectés auront la possibilité de voir "
"cette page."
#: contrib/flatpages/models/flatpages.py:17
msgid "flat page"
msgstr "page à plat"
#: contrib/flatpages/models/flatpages.py:18
msgid "flat pages"
msgstr "pages à plat"
#: 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 "Lundi"
@ -1145,67 +1056,144 @@ msgstr "Nov."
msgid "Dec."
msgstr "Déc."
#: models/core.py:7
#: models/core.py:5
msgid "domain name"
msgstr "nom de domaine"
#: models/core.py:8
#: models/core.py:6
msgid "display name"
msgstr "nom à afficher"
#: models/core.py:10
#: models/core.py:8
msgid "site"
msgstr "site"
#: models/core.py:11
#: models/core.py:9
msgid "sites"
msgstr "sites"
#: models/core.py:28
#: models/core.py:22
msgid "label"
msgstr "intitulé"
#: models/core.py:29 models/core.py:40 models/auth.py:6 models/auth.py:19
#: models/core.py:23 models/core.py:34 models/auth.py:6 models/auth.py:19
msgid "name"
msgstr "nom"
#: models/core.py:31
#: models/core.py:25
msgid "package"
msgstr "paquetage"
#: models/core.py:32
#: models/core.py:26
msgid "packages"
msgstr "paquetages"
#: models/core.py:42
#: models/core.py:36
msgid "python module name"
msgstr "nom du module python"
#: models/core.py:44
#: models/core.py:38
msgid "content type"
msgstr "type de contenu"
#: models/core.py:45
#: models/core.py:39
msgid "content types"
msgstr "types de contenu"
#: models/core.py:63
msgid ""
"This should be an absolute path, excluding the domain name. Example: '/"
"events/search/'."
msgstr ""
"Ceci doit être un chemin absolu, sans nom de domaine. Par exemple: '/events/"
"search/'."
#: models/core.py:64
msgid "redirect to"
msgstr "redirigé vers"
#: models/core.py:65
msgid ""
"This can be either an absolute path (as above) or a full URL starting with "
"'http://'."
msgstr ""
"Ceci peut être soit un chemin absolu (voir ci-dessus) soit une URL complète "
"débutant par 'http://'."
#: models/core.py:67
msgid "redirect"
msgstr "redirection"
#: models/core.py:68
msgid "redirects"
msgstr "redirections"
#: models/core.py:82
msgid ""
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr ""
"Par exemple : '/about/contact/'. Vérifiez la présence du caractère '/' en "
"début et en fin de chaine."
#: models/core.py:83
msgid "title"
msgstr "titre"
#: models/core.py:84
msgid "content"
msgstr "contenu"
#: models/core.py:85
msgid "enable comments"
msgstr "autoriser les commentaires"
#: models/core.py:86
msgid "template name"
msgstr "nom du template"
#: models/core.py:87
msgid ""
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
"use 'flatfiles/default'."
msgstr ""
"Par exemple: 'flatfiles/contact_page'. Sans définition, le système utilisera "
"'flatfiles/default'."
#: models/core.py:88
msgid "registration required"
msgstr "enregistrement requis"
#: models/core.py:88
msgid "If this is checked, only logged-in users will be able to view the page."
msgstr ""
"Si coché, seuls les utilisateurs connectés auront la possibilité de voir "
"cette page."
#: models/core.py:92
msgid "flat page"
msgstr "page à plat"
#: models/core.py:93
msgid "flat pages"
msgstr "pages à plat"
#: models/core.py:114
msgid "session key"
msgstr "clé de session"
#: models/core.py:68
#: models/core.py:115
msgid "session data"
msgstr "donnée de session"
#: models/core.py:69
#: models/core.py:116
msgid "expire date"
msgstr "date d'expiration"
#: models/core.py:71
#: models/core.py:118
msgid "session"
msgstr "session"
#: models/core.py:72
#: models/core.py:119
msgid "sessions"
msgstr "sessions"
@ -1298,7 +1286,7 @@ msgstr "Information personnelle"
msgid "Important dates"
msgstr "Dates importantes"
#: models/auth.py:195
#: models/auth.py:182
msgid "Message"
msgstr "Message"
@ -1426,69 +1414,69 @@ msgid "This value must contain only letters, numbers and underscores."
msgstr ""
"Ce champ ne doit contenir que des lettres, des nombres et des sous-tirets."
#: core/validators.py:63
#: core/validators.py:62
msgid "This value must contain only letters, numbers, underscores and slashes."
msgstr ""
"Ce champ ne doit contenir que des lettres, des nombres, des sous-tirets et "
"des '/'."
#: core/validators.py:71
#: core/validators.py:70
msgid "Uppercase letters are not allowed here."
msgstr "Les lettres majuscules ne sont pas autorisées ici."
#: core/validators.py:75
#: core/validators.py:74
msgid "Lowercase letters are not allowed here."
msgstr "Les lettres minuscules ne sont pas autorisées ici."
#: core/validators.py:82
#: core/validators.py:81
msgid "Enter only digits separated by commas."
msgstr "Seulement des chiffres ([0-9]), séparés par des virgules."
#: core/validators.py:94
#: core/validators.py:93
msgid "Enter valid e-mail addresses separated by commas."
msgstr "Entrez des adresses de courriel valides séparées par des virgules."
#: core/validators.py:98
#: core/validators.py:100
msgid "Please enter a valid IP address."
msgstr "Entrez une adresse IP valide."
#: core/validators.py:102
#: core/validators.py:104
msgid "Empty values are not allowed here."
msgstr "Vous ne pouvez pas laisser ce champ vide."
#: core/validators.py:106
#: core/validators.py:108
msgid "Non-numeric characters aren't allowed here."
msgstr "Les caractères non numériques ne sont pas autorisés ici."
#: core/validators.py:110
#: core/validators.py:112
msgid "This value can't be comprised solely of digits."
msgstr "Cette valeur ne peut contenir que des chiffres [0-9]."
#: core/validators.py:115
#: core/validators.py:117
msgid "Enter a whole number."
msgstr "Entrez un nombre entier."
#: core/validators.py:119
#: core/validators.py:121
msgid "Only alphabetical characters are allowed here."
msgstr "Seules les lettres de l'alphabet sont autorisées ici."
#: core/validators.py:123
#: core/validators.py:125
msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "Entrez une date valide au format AAAA-MM-JJ."
#: core/validators.py:127
#: core/validators.py:129
msgid "Enter a valid time in HH:MM format."
msgstr "Entrez une heure valide au format HH:MM."
#: core/validators.py:131
#: core/validators.py:133
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr "Entrez une date et une heure valide au format AAAA-MM-JJ HH:MM."
#: core/validators.py:135
#: core/validators.py:137
msgid "Enter a valid e-mail address."
msgstr "Entrez une adresse de courriel valide."
#: core/validators.py:147
#: core/validators.py:149
msgid ""
"Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image."
@ -1496,28 +1484,28 @@ msgstr ""
"Envoyez une image valide. Le fichier que vous avez transferé n'est pas une "
"image ou bien est une image corrompue."
#: core/validators.py:154
#: core/validators.py:156
#, python-format
msgid "The URL %s does not point to a valid image."
msgstr "L'URL %s ne pointe pas vers une image valide."
#: core/validators.py:158
#: core/validators.py:160
#, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
msgstr ""
"Les numéros de téléphone doivent être au format XX XX XX XX XX. \"%s\" est "
"incorrect."
#: core/validators.py:166
#: core/validators.py:168
#, python-format
msgid "The URL %s does not point to a valid QuickTime video."
msgstr "L'URL %s ne pointe pas vers une vidéo QuickTime valide."
#: core/validators.py:170
#: core/validators.py:172
msgid "A valid URL is required."
msgstr "Une URL valide est requise."
#: core/validators.py:184
#: core/validators.py:186
#, python-format
msgid ""
"Valid HTML is required. Specific errors are:\n"
@ -1526,69 +1514,69 @@ msgstr ""
"Du HTML valide est requis. Les erreurs spécifiques sont:\n"
"%s"
#: core/validators.py:191
#: core/validators.py:193
#, python-format
msgid "Badly formed XML: %s"
msgstr "XML mal formé: %s"
#: core/validators.py:201
#: core/validators.py:203
#, python-format
msgid "Invalid URL: %s"
msgstr "URL invalide: %s"
#: core/validators.py:205 core/validators.py:207
#: core/validators.py:205
#, python-format
msgid "The URL %s is a broken link."
msgstr "L'URL %s est un lien cassé."
#: core/validators.py:213
#: core/validators.py:211
msgid "Enter a valid U.S. state abbreviation."
msgstr "Entrez une abréviation d'état américain valide."
#: core/validators.py:228
#: core/validators.py:226
#, 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] "Attention à votre langage,! Le mot %s n'est pas autorisé ici."
msgstr[1] "Attention à votre langage,! Les mots %s ne sont pas autorisés ici."
#: core/validators.py:235
#: core/validators.py:233
#, python-format
msgid "This field must match the '%s' field."
msgstr "Ce champ doit correspondre au champ '%s'."
#: core/validators.py:254
#: core/validators.py:252
msgid "Please enter something for at least one field."
msgstr "S'il vous plaît, saisissez au moins une valeur dans un des champs."
#: core/validators.py:263 core/validators.py:274
#: core/validators.py:261 core/validators.py:272
msgid "Please enter both fields or leave them both empty."
msgstr "S'il vous plaît, renseignez chaque champ ou laissez les deux vides."
#: core/validators.py:281
#: core/validators.py:279
#, python-format
msgid "This field must be given if %(field)s is %(value)s"
msgstr "Ce champ doit être renseigné si %(field)s vaut %(value)s"
#: core/validators.py:293
#: core/validators.py:291
#, python-format
msgid "This field must be given if %(field)s is not %(value)s"
msgstr "Ce champ doit être renseigné si %(field)s ne vaut pas %(value)s"
#: core/validators.py:312
#: core/validators.py:310
msgid "Duplicate values are not allowed."
msgstr "Des valeurs identiques ne sont pas autorisées."
#: core/validators.py:335
#: core/validators.py:333
#, python-format
msgid "This value must be a power of %s."
msgstr "Cette valeur doit être une puissance de %s."
#: core/validators.py:346
#: core/validators.py:344
msgid "Please enter a valid decimal number."
msgstr "S'il vous plaît, saisissez un nombre décimal valide."
#: core/validators.py:348
#: core/validators.py:346
#, python-format
msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural ""
@ -1598,7 +1586,7 @@ msgstr[0] ""
msgstr[1] ""
"S'il vous plaît, saisissez un nombre décimal valide avec au plus %s chiffres."
#: core/validators.py:351
#: core/validators.py:349
#, python-format
msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural ""
@ -1608,32 +1596,32 @@ msgstr[0] ""
msgstr[1] ""
"S'il vous plaît, saisissez un nombre décimal valide avec au plus %s décimales"
#: core/validators.py:361
#: core/validators.py:359
#, python-format
msgid "Make sure your uploaded file is at least %s bytes big."
msgstr ""
"Vérifiez que le fichier transféré fait au moins une taille de %s octets."
#: core/validators.py:362
#: core/validators.py:360
#, python-format
msgid "Make sure your uploaded file is at most %s bytes big."
msgstr ""
"Vérifiez que le fichier transféré fait au plus une taille de %s octets."
#: core/validators.py:375
#: core/validators.py:373
msgid "The format for this field is wrong."
msgstr "Le format de ce champ est mauvais."
#: core/validators.py:390
#: core/validators.py:388
msgid "This field is invalid."
msgstr "Ce champ est invalide."
#: core/validators.py:425
#: core/validators.py:423
#, python-format
msgid "Could not retrieve anything from %s."
msgstr "Impossible de récupérer quoi que ce soit depuis %s."
#: core/validators.py:428
#: core/validators.py:426
#, python-format
msgid ""
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
@ -1641,7 +1629,7 @@ msgstr ""
"L'entête Content-Type '%(contenttype)s', renvoyée par l'url %(url)s n'est "
"pas valide."
#: core/validators.py:461
#: core/validators.py:459
#, python-format
msgid ""
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
@ -1650,7 +1638,7 @@ msgstr ""
"Veuillez fermer le tag %(tag)s de la ligne %(line)s. (La ligne débutant par "
"\"%(start)s\".)"
#: core/validators.py:465
#: core/validators.py:463
#, python-format
msgid ""
"Some text starting on line %(line)s is not allowed in that context. (Line "
@ -1659,7 +1647,7 @@ msgstr ""
"Du texte commençant à la ligne %(line)s n'est pas autorisé dans ce contexte. "
"(Ligne débutant par \"%(start)s\".)"
#: core/validators.py:470
#: core/validators.py:468
#, python-format
msgid ""
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
@ -1668,7 +1656,7 @@ msgstr ""
"\"%(attr)s\" ligne %(line)s n'est pas un attribut valide. (Ligne débutant "
"par \"%(start)s\".)"
#: core/validators.py:475
#: core/validators.py:473
#, python-format
msgid ""
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
@ -1677,7 +1665,7 @@ msgstr ""
"\"<%(tag)s>\" ligne %(line)s n'est pas un tag valide. (Ligne débutant par \"%"
"(start)s\".)"
#: core/validators.py:479
#: core/validators.py:477
#, python-format
msgid ""
"A tag on line %(line)s is missing one or more required attributes. (Line "
@ -1686,7 +1674,7 @@ msgstr ""
"Un tag, ou un ou plusieurs attributs, de la ligne %(line)s est manquant. "
"(Ligne débutant par \"%(start)s\".)"
#: core/validators.py:484
#: core/validators.py:482
#, python-format
msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "

View File

@ -1298,7 +1298,7 @@ msgstr "Meldinger"
#: conf/global_settings.py:37
msgid "Bengali"
msgstr ""
msgstr "Bengalsk"
#: conf/global_settings.py:38
msgid "Czech"
@ -1306,12 +1306,11 @@ msgstr "Tsjekkisk"
#: conf/global_settings.py:39
msgid "Welsh"
msgstr ""
msgstr "Walisisk"
#: conf/global_settings.py:40
#, fuzzy
msgid "Danish"
msgstr "Spansk"
msgstr "Dnask"
#: conf/global_settings.py:41
msgid "German"
@ -1335,7 +1334,7 @@ msgstr "Galisisk"
#: conf/global_settings.py:46
msgid "Icelandic"
msgstr ""
msgstr "Islandsk"
#: conf/global_settings.py:47
msgid "Italian"
@ -1351,7 +1350,7 @@ msgstr "Brasiliansk"
#: conf/global_settings.py:50
msgid "Romanian"
msgstr ""
msgstr "Romansk"
#: conf/global_settings.py:51
msgid "Russian"
@ -1359,7 +1358,7 @@ msgstr "Russisk"
#: conf/global_settings.py:52
msgid "Slovak"
msgstr ""
msgstr "Slovakisk"
#: conf/global_settings.py:53
msgid "Serbian"
@ -1367,11 +1366,11 @@ msgstr "Serbisk"
#: conf/global_settings.py:54
msgid "Swedish"
msgstr ""
msgstr "Svensk"
#: conf/global_settings.py:55
msgid "Simplified Chinese"
msgstr "Simpel Kinesisk"
msgstr "Simplifisert Kinesisk"
#: core/formfields.py:59 core/meta/fields.py:287 core/meta/fields.py:484
#: core/meta/fields.py:495

View File

@ -529,9 +529,9 @@ msgstr ""
msgid "Time"
msgstr ""
#: contrib/admin/views/doc.py:284 contrib/flatpages/models/flatpages.py:6
#: models/core.py:87
msgid "URL"
msgstr ""
msgstr "URL"
#: contrib/admin/views/doc.py:285
msgid "U.S. state (two uppercase letters)"
@ -811,7 +811,7 @@ msgid ""
"should be receiving it shortly."
msgstr ""
"íÙ ÏÔÐÒÁ×ÉÌÉ ÎÏ×ÙÊ ÐÁÒÏÌØ ÐÏ ÕËÁÚÁÎÎÏÍÕ ×ÁÍÉ ÁÄÒÅÓÕ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÙ. ÷Ù "
"ÄÏÌÖÎÙ ÐÏÌÕÞÉÔØ ÅÇÏ ÏÞÅÎØ ÂÙÓÔÒÏ."
"должны его вскоре получить."
#: contrib/admin/templates/registration/password_change_form.html:12
msgid ""
@ -927,54 +927,59 @@ msgstr ""
msgid "As above, but opens the admin page in a new window."
msgstr ""
#: contrib/redirects/models/redirects.py:7
#: models/core.py:68
msgid "redirect from"
msgstr ""
msgstr "перенаправить из"
#: contrib/redirects/models/redirects.py:8
#: models/core.py:69
msgid ""
"This should be an absolute path, excluding the domain name. Example: '/"
"events/search/'."
msgstr ""
"Это должен быть абсолютный путь, исключая доменное имя. Пример: '/events/"
"search/'."
#: contrib/redirects/models/redirects.py:9
#: models/core.py:70
msgid "redirect to"
msgstr ""
msgstr "перенаправить на"
#: contrib/redirects/models/redirects.py:10
#: models/core.py:71
msgid ""
"This can be either an absolute path (as above) or a full URL starting with "
"'http://'."
msgstr ""
"Это должен быть, либо абсолютный путь (как выше) или полный URL начинающийся "
"с 'http://'."
#: contrib/redirects/models/redirects.py:12
#: models/core.py:73
msgid "redirect"
msgstr ""
msgstr "перенаправить"
#: contrib/redirects/models/redirects.py:13
#: models/core.py:74
msgid "redirects"
msgstr ""
msgstr "перенапровления"
#: contrib/flatpages/models/flatpages.py:7
#: models/core.py:88
msgid ""
"Example: '/about/contact/'. Make sure to have leading and trailing slashes."
msgstr ""
"Пример: '/about/contact/'. Будьте уверенны, что вставили завепршающий слэш."
#: contrib/flatpages/models/flatpages.py:8
#: models/core.py:89
msgid "title"
msgstr ""
msgstr "заголовок"
#: contrib/flatpages/models/flatpages.py:9
#: models/core.py:90
msgid "content"
msgstr ""
msgstr "наполнение"
#: contrib/flatpages/models/flatpages.py:10
#: models/core.py:91
msgid "enable comments"
msgstr ""
msgstr "активировать комментарии"
#: contrib/flatpages/models/flatpages.py:11
#: models/core.py:92
msgid "template name"
msgstr ""
msgstr "имя шаблона"
#: contrib/flatpages/models/flatpages.py:12
msgid ""
@ -982,21 +987,21 @@ msgid ""
"use 'flatpages/default'."
msgstr ""
#: contrib/flatpages/models/flatpages.py:13
#: models/core.py:94
msgid "registration required"
msgstr ""
msgstr "регистрация обязательна"
#: contrib/flatpages/models/flatpages.py:13
#: models/core.py:94
msgid "If this is checked, only logged-in users will be able to view the page."
msgstr ""
msgstr "Если отмечено, только вошедшие пользователи смогут видеть страницу"
#: contrib/flatpages/models/flatpages.py:17
#: models/core.py:98
msgid "flat page"
msgstr ""
msgstr "простая страница"
#: contrib/flatpages/models/flatpages.py:18
#: models/core.py:99
msgid "flat pages"
msgstr ""
msgstr "простые страницы"
#: utils/translation.py:335
msgid "DATE_FORMAT"
@ -1012,127 +1017,127 @@ msgstr ""
#: utils/dates.py:6
msgid "Monday"
msgstr ""
msgstr "Понедельник"
#: utils/dates.py:6
msgid "Tuesday"
msgstr ""
msgstr "Вторник"
#: utils/dates.py:6
msgid "Wednesday"
msgstr ""
msgstr "Среда"
#: utils/dates.py:6
msgid "Thursday"
msgstr ""
msgstr "Четверг"
#: utils/dates.py:6
msgid "Friday"
msgstr ""
msgstr "Пятница"
#: utils/dates.py:7
msgid "Saturday"
msgstr ""
msgstr "Суббота"
#: utils/dates.py:7
msgid "Sunday"
msgstr ""
msgstr "Воскресенье"
#: utils/dates.py:14
msgid "January"
msgstr ""
msgstr "Январь"
#: utils/dates.py:14
msgid "February"
msgstr ""
msgstr "Февраль"
#: utils/dates.py:14 utils/dates.py:27
msgid "March"
msgstr ""
msgstr "Март"
#: utils/dates.py:14 utils/dates.py:27
msgid "April"
msgstr ""
msgstr "Апрель"
#: utils/dates.py:14 utils/dates.py:27
msgid "May"
msgstr ""
msgstr "Май"
#: utils/dates.py:14 utils/dates.py:27
msgid "June"
msgstr ""
msgstr "Июнь"
#: utils/dates.py:15 utils/dates.py:27
msgid "July"
msgstr ""
msgstr "Июль"
#: utils/dates.py:15
msgid "August"
msgstr ""
msgstr "Август"
#: utils/dates.py:15
msgid "September"
msgstr ""
msgstr "Сентябрь"
#: utils/dates.py:15
msgid "October"
msgstr ""
msgstr "Остябрь"
#: utils/dates.py:15
msgid "November"
msgstr ""
msgstr "Ноябрь"
#: utils/dates.py:16
msgid "December"
msgstr ""
msgstr "Декабрь"
#: utils/dates.py:27
msgid "Jan."
msgstr ""
msgstr "Янв."
#: utils/dates.py:27
msgid "Feb."
msgstr ""
msgstr "Фев."
#: utils/dates.py:28
msgid "Aug."
msgstr ""
msgstr "Авг."
#: utils/dates.py:28
msgid "Sept."
msgstr ""
msgstr "Сен."
#: utils/dates.py:28
msgid "Oct."
msgstr ""
msgstr "Окт."
#: utils/dates.py:28
msgid "Nov."
msgstr ""
msgstr "Нояб."
#: utils/dates.py:28
msgid "Dec."
msgstr ""
msgstr "Дек."
#: models/core.py:7
msgid "domain name"
msgstr ""
msgstr "домен"
#: models/core.py:8
msgid "display name"
msgstr ""
msgstr "выводимое имя"
#: models/core.py:10
msgid "site"
msgstr ""
msgstr "сайт"
#: models/core.py:11
msgid "sites"
msgstr ""
msgstr "сайты"
#: models/core.py:28
msgid "label"
msgstr ""
msgstr "метка"
#: models/core.py:29 models/core.py:40 models/auth.py:6 models/auth.py:19
#, fuzzy
@ -1141,76 +1146,84 @@ msgstr "
#: models/core.py:31
msgid "package"
msgstr ""
msgstr "пакет"
#: models/core.py:32
msgid "packages"
msgstr ""
msgstr "пакеты"
#: models/core.py:42
msgid "python module name"
msgstr ""
msgstr "имя python модуля"
#: models/core.py:44
msgid "content type"
msgstr ""
msgstr "тип наполнения"
#: models/core.py:45
msgid "content types"
msgstr ""
msgstr "типы наполнения"
#: models/core.py:67
#: models/core.py:93
msgid ""
"Example: 'flatfiles/contact_page'. If this isn't provided, the system will "
"use 'flatfiles/default'."
msgstr ""
"Пример: 'flatfiles/contact_page'. Если не предусмотрена, система будет "
"использовать 'flatfiles/default'."
#: models/core.py:117
msgid "session key"
msgstr ""
msgstr "ключ сессии"
#: models/core.py:68
#: models/core.py:118
msgid "session data"
msgstr ""
msgstr "данные сессии"
#: models/core.py:69
#: models/core.py:119
msgid "expire date"
msgstr ""
msgstr "дата окончания"
#: models/core.py:71
#: models/core.py:121
msgid "session"
msgstr ""
msgstr "сессия"
#: models/core.py:72
#: models/core.py:122
msgid "sessions"
msgstr ""
msgstr "сессии"
#: models/auth.py:8
msgid "codename"
msgstr ""
msgstr "код"
#: models/auth.py:10
msgid "Permission"
msgstr ""
msgstr "Права"
#: models/auth.py:11 models/auth.py:58
msgid "Permissions"
msgstr ""
msgstr "Права"
#: models/auth.py:22
msgid "Group"
msgstr ""
msgstr "Группа"
#: models/auth.py:23 models/auth.py:60
msgid "Groups"
msgstr ""
msgstr "Группы"
#: models/auth.py:33
#, fuzzy
msgid "username"
msgstr "éÍÑ:"
msgstr "Ник:"
#: models/auth.py:34
msgid "first name"
msgstr ""
msgstr "имя"
#: models/auth.py:35
msgid "last name"
msgstr ""
msgstr "фамилия"
#: models/auth.py:36
#, fuzzy
@ -1224,7 +1237,7 @@ msgstr "
#: models/auth.py:37
msgid "Use an MD5 hash -- not the raw password."
msgstr ""
msgstr "Используйте MD5 хэш -- только не необработанный пароль"
#: models/auth.py:38
msgid "staff status"
@ -1236,19 +1249,19 @@ msgstr ""
#: models/auth.py:39
msgid "active"
msgstr ""
msgstr "активен"
#: models/auth.py:40
msgid "superuser status"
msgstr ""
msgstr "статус админа"
#: models/auth.py:41
msgid "last login"
msgstr ""
msgstr "последний вход"
#: models/auth.py:42
msgid "date joined"
msgstr ""
msgstr "дата регистрации"
#: models/auth.py:44
msgid ""
@ -1263,15 +1276,15 @@ msgstr "
#: models/auth.py:57
msgid "Personal info"
msgstr ""
msgstr "Персанальная информация"
#: models/auth.py:59
msgid "Important dates"
msgstr ""
msgstr "Важные даты"
#: models/auth.py:195
#: models/auth.py:182
msgid "Message"
msgstr ""
msgstr "Сообщение"
#: conf/global_settings.py:37
msgid "Bengali"
@ -1331,7 +1344,7 @@ msgstr ""
#: conf/global_settings.py:51
msgid "Russian"
msgstr ""
msgstr "Русскй"
#: conf/global_settings.py:52
msgid "Slovak"
@ -1396,31 +1409,31 @@ msgstr "
#: core/validators.py:71
msgid "Uppercase letters are not allowed here."
msgstr ""
msgstr "Заглавные буквы не разрешены"
#: core/validators.py:75
msgid "Lowercase letters are not allowed here."
msgstr ""
msgstr "Строчные буквы не разрешены"
#: core/validators.py:82
msgid "Enter only digits separated by commas."
msgstr ""
msgstr "Вводите только цифры разделённые запятыми"
#: core/validators.py:94
msgid "Enter valid e-mail addresses separated by commas."
msgstr ""
msgstr "Вводите реальные e-mail адреса разделённые запятыми"
#: core/validators.py:98
msgid "Please enter a valid IP address."
msgstr ""
msgstr "Пожалуйста, вводите реальный IP адрес"
#: core/validators.py:102
msgid "Empty values are not allowed here."
msgstr ""
msgstr "Пустое значение не разрешено"
#: core/validators.py:106
msgid "Non-numeric characters aren't allowed here."
msgstr ""
msgstr "Не цифровые символы не рназрешены"
#: core/validators.py:110
msgid "This value can't be comprised solely of digits."
@ -1428,23 +1441,23 @@ msgstr ""
#: core/validators.py:115
msgid "Enter a whole number."
msgstr ""
msgstr "Введите номер"
#: core/validators.py:119
msgid "Only alphabetical characters are allowed here."
msgstr ""
msgstr "Только буквы можно использовать"
#: core/validators.py:123
msgid "Enter a valid date in YYYY-MM-DD format."
msgstr ""
msgstr "Вводите реальную дату в формате YYYY-MM-DD."
#: core/validators.py:127
msgid "Enter a valid time in HH:MM format."
msgstr ""
msgstr "Вводите реальное время в формате HH:MM."
#: core/validators.py:131
msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format."
msgstr ""
msgstr "Вводите реальные дата/время в формате YYYY-MM-DD HH:MM."
#: core/validators.py:135
#, fuzzy
@ -1456,25 +1469,27 @@ msgid ""
"Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image."
msgstr ""
"Загрузите реальное изображение. Файл, который вы загружали, было либо не "
"изображениеили сломанный формат."
#: core/validators.py:154
#, python-format
msgid "The URL %s does not point to a valid image."
msgstr ""
msgstr "URL %s не указывает на реальное изображение."
#: core/validators.py:158
#, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
msgstr ""
msgstr "Телефонный номер должен быть в формате XXX-XXX-XXXX. \"%s\" не верен."
#: core/validators.py:166
#, python-format
msgid "The URL %s does not point to a valid QuickTime video."
msgstr ""
msgstr "URL %s не указывает на реальное видео QuickTime."
#: core/validators.py:170
msgid "A valid URL is required."
msgstr ""
msgstr "Реальный URL обязателен."
#: core/validators.py:184
#, python-format
@ -1482,70 +1497,72 @@ msgid ""
"Valid HTML is required. Specific errors are:\n"
"%s"
msgstr ""
"Реальный HTML обязателен. Специфичные ошибки:\n"
"%s"
#: core/validators.py:191
#, python-format
msgid "Badly formed XML: %s"
msgstr ""
msgstr "Неверный фформат XML: %s"
#: core/validators.py:201
#, python-format
msgid "Invalid URL: %s"
msgstr ""
msgstr "Неверный URL: %s"
#: core/validators.py:205 core/validators.py:207
#: core/validators.py:203
#, python-format
msgid "The URL %s is a broken link."
msgstr ""
msgstr "URL %s сломанная ссылкаю."
#: core/validators.py:213
#: core/validators.py:209
msgid "Enter a valid U.S. state abbreviation."
msgstr ""
msgstr "Вводите реальную абривиатуру штатов США."
#: core/validators.py:228
#: core/validators.py:224
#, 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] ""
msgstr[1] ""
#: core/validators.py:235
#: core/validators.py:231
#, python-format
msgid "This field must match the '%s' field."
msgstr ""
msgstr "Это поле должно совподать с '%s' полем."
#: core/validators.py:254
#: core/validators.py:250
msgid "Please enter something for at least one field."
msgstr ""
msgstr "Пожалуйста, запролните хотя бы одно поле."
#: core/validators.py:263 core/validators.py:274
#: core/validators.py:259 core/validators.py:270
msgid "Please enter both fields or leave them both empty."
msgstr ""
msgstr "Пожалуйста, заполните оба поля либо оставте их пустыми."
#: core/validators.py:281
#: core/validators.py:277
#, python-format
msgid "This field must be given if %(field)s is %(value)s"
msgstr ""
#: core/validators.py:293
#: core/validators.py:289
#, python-format
msgid "This field must be given if %(field)s is not %(value)s"
msgstr ""
#: core/validators.py:312
#: core/validators.py:308
msgid "Duplicate values are not allowed."
msgstr ""
#: core/validators.py:335
#: core/validators.py:331
#, python-format
msgid "This value must be a power of %s."
msgstr ""
#: core/validators.py:346
#: core/validators.py:342
msgid "Please enter a valid decimal number."
msgstr ""
#: core/validators.py:348
#: core/validators.py:344
#, python-format
msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural ""
@ -1553,7 +1570,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
#: core/validators.py:351
#: core/validators.py:347
#, python-format
msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural ""
@ -1561,71 +1578,71 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
#: core/validators.py:361
#: core/validators.py:357
#, python-format
msgid "Make sure your uploaded file is at least %s bytes big."
msgstr ""
#: core/validators.py:362
#: core/validators.py:358
#, python-format
msgid "Make sure your uploaded file is at most %s bytes big."
msgstr ""
#: core/validators.py:375
#: core/validators.py:371
msgid "The format for this field is wrong."
msgstr ""
#: core/validators.py:390
#: core/validators.py:386
msgid "This field is invalid."
msgstr ""
#: core/validators.py:425
#: core/validators.py:421
#, python-format
msgid "Could not retrieve anything from %s."
msgstr ""
#: core/validators.py:428
#: core/validators.py:424
#, python-format
msgid ""
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
msgstr ""
#: core/validators.py:461
#: core/validators.py:457
#, python-format
msgid ""
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with "
"\"%(start)s\".)"
msgstr ""
#: core/validators.py:465
#: core/validators.py:461
#, python-format
msgid ""
"Some text starting on line %(line)s is not allowed in that context. (Line "
"starts with \"%(start)s\".)"
msgstr ""
#: core/validators.py:470
#: core/validators.py:466
#, python-format
msgid ""
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%"
"(start)s\".)"
msgstr ""
#: core/validators.py:475
#: core/validators.py:471
#, python-format
msgid ""
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%"
"(start)s\".)"
msgstr ""
#: core/validators.py:479
#: core/validators.py:475
#, python-format
msgid ""
"A tag on line %(line)s is missing one or more required attributes. (Line "
"starts with \"%(start)s\".)"
msgstr ""
#: core/validators.py:484
#: core/validators.py:480
#, python-format
msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "
@ -1650,6 +1667,8 @@ msgstr ""
msgid ""
" Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
msgstr ""
" Удерживайте \"Control\", или \"Command\" на Макинтош, для выбора больше чем "
"одного."
#: core/meta/fields.py:504
#, fuzzy

View File

@ -1266,7 +1266,7 @@ msgstr "užívateľské meno"
#: models/auth.py:34
msgid "first name"
msgstr "meno"
msgstr "krstné meno"
#: models/auth.py:35
msgid "last name"
@ -1345,12 +1345,12 @@ msgstr "Český"
msgid "Welsh"
msgstr "Waleský"
#: conf/global_settings.py:40
#: conf/global_settings.py:40 conf/global_settings.py:41
#, fuzzy
msgid "Danish"
msgstr "Španielsky"
#: conf/global_settings.py:41
#: conf/global_settings.py:40
msgid "German"
msgstr "Nemecký"

View File

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: django v1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-11-18 15:43+0100\n"
"PO-Revision-Date: 2005-11-11 13:55+0800\n"
"PO-Revision-Date: 2005-11-16 12:55+0800\n"
"Last-Translator: limodou <limodou@gmail.com>\n"
"Language-Team: Simplified Chinese <limodou@gmail.com>\n"
"MIME-Version: 1.0\n"
@ -990,7 +990,6 @@ msgid "template name"
msgstr "模板名称"
#: contrib/flatpages/models/flatpages.py:12
#, fuzzy
msgid ""
"Example: 'flatpages/contact_page'. If this isn't provided, the system will "
"use 'flatpages/default'."
@ -1297,9 +1296,8 @@ msgid "Welsh"
msgstr "威尔士语"
#: conf/global_settings.py:40
#, fuzzy
msgid "Danish"
msgstr "西斑牙语"
msgstr "丹麦语"
#: conf/global_settings.py:41
msgid "German"
@ -1311,7 +1309,7 @@ msgstr "英语"
#: conf/global_settings.py:43
msgid "Spanish"
msgstr "西牙语"
msgstr "西牙语"
#: conf/global_settings.py:44
msgid "French"
@ -1323,7 +1321,7 @@ msgstr "加利西亚语"
#: conf/global_settings.py:46
msgid "Icelandic"
msgstr ""
msgstr "冰岛语"
#: conf/global_settings.py:47
msgid "Italian"
@ -1355,7 +1353,7 @@ msgstr "塞尔维亚语"
#: conf/global_settings.py:54
msgid "Swedish"
msgstr ""
msgstr "瑞典语"
#: conf/global_settings.py:55
msgid "Simplified Chinese"

View File

@ -126,7 +126,7 @@ def result_headers(cl):
try:
header = func.short_description
except AttributeError:
header = func.__name__
header = func.__name__.replace('_', ' ')
# Non-field list_display values don't get ordering capability.
yield {"text": header}
else:

View File

@ -0,0 +1,48 @@
from django.conf import settings
from django.contrib.syndication.feeds import Feed
from django.core.exceptions import ObjectDoesNotExist
from django.models.core import sites
from django.models.comments import comments, freecomments
class LatestFreeCommentsFeed(Feed):
"""Feed of latest comments on the current site"""
comments_module = freecomments
def title(self):
if not hasattr(self, '_site'):
self._site = sites.get_current()
return "%s comments" % self._site.name
def link(self):
if not hasattr(self, '_site'):
self._site = sites.get_current()
return "http://%s/" % (self._site.domain)
def description(self):
if not hasattr(self, '_site'):
self._site = sites.get_current()
return "Latest comments on %s" % self._site.name
def items(self):
return self.comments_module.get_list(**self._get_lookup_kwargs())
def _get_lookup_kwargs(self):
return {
'site__pk' : settings.SITE_ID,
'is_public__exact' : True,
'limit' : 40,
}
class LatestCommentsFeed(LatestFreeCommentsFeed):
"""Feed of latest free comments on the current site"""
comments_module = comments
def _get_lookup_kwargs(self):
kwargs = LatestFreeCommentsFeed._get_lookup_kwargs(self)
kwargs['is_removed__exact'] = False
if settings.COMMENTS_BANNED_USERS_GROUP:
kwargs['where'] = ['user_id NOT IN (SELECT user_id FROM auth_users_group WHERE group_id = %s)']
kwargs['params'] = [COMMENTS_BANNED_USERS_GROUP]
return kwargs

View File

@ -1518,8 +1518,13 @@ def function_get_sql_clause(opts, **kwargs):
_fill_table_cache(opts, select, tables, where, opts.db_table, [opts.db_table])
# Add any additional SELECTs passed in via kwargs.
def quote_only_if_word(word):
if word.find(' ')>=0:
return word
else:
return db.db.quote_name(word)
if kwargs.get('select'):
select.extend(['(%s) AS %s' % (db.db.quote_name(s[1]), db.db.quote_name(s[0])) for s in kwargs['select']])
select.extend(['(%s) AS %s' % (quote_only_if_word(s[1]), db.db.quote_name(s[0])) for s in kwargs['select']])
# ORDER BY clause
order_by = []

View File

@ -33,8 +33,8 @@ 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
# Turn the settings module into a dict, filtering out anything that
# matches HIDDEN_SETTINGS along the way.
settings_dict = {}
for k in dir(settings):
@ -43,7 +43,7 @@ def technical_500_response(request, exc_type, exc_value, tb):
settings_dict[k] = '********************'
else:
settings_dict[k] = getattr(settings, k)
t = Template(TECHNICAL_500_TEMPLATE)
c = Context({
'exception_type' : exc_type.__name__,
@ -53,7 +53,7 @@ def technical_500_response(request, exc_type, exc_value, tb):
'request' : request,
'request_protocol' : os.environ.get("HTTPS") == "on" and "https" or "http",
'settings' : settings_dict,
})
return HttpResponseServerError(t.render(c))
@ -66,7 +66,7 @@ def technical_404_response(request, exception):
tried = exception.args[0]['tried']
except (IndexError, TypeError):
tried = []
t = Template(TECHNICAL_404_TEMPLATE)
c = Context({
'root_urlconf' : settings.ROOT_URLCONF,
@ -80,7 +80,7 @@ def technical_404_response(request, exception):
def _get_lines_from_file(filename, lineno, context_lines):
"""
Returns context_lines before and after lineno from file.
Returns context_lines before and after lineno from file.
Returns (pre_context_lineno, pre_context, context_line, post_context).
"""
try:
@ -91,7 +91,7 @@ def _get_lines_from_file(filename, lineno, context_lines):
pre_context = [line.strip('\n') for line in source[lower_bound:lineno]]
context_line = source[lineno].strip('\n')
post_context = [line.strip('\n') for line in source[lineno+1:upper_bound]]
return lower_bound, pre_context, context_line, post_context
except (OSError, IOError):
return None, [], None, []
@ -131,8 +131,9 @@ TECHNICAL_500_TEMPLATE = """
ul.traceback li.frame { margin-bottom:1em; }
div.context { margin: 10px 0; }
div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }
div.context ol li { font-family:monospace; white-space:pre; color:#666; }
div.context ol.context-line li { color:black; background-color:#ccc; cursor:pointer; }
div.context ol li { font-family:monospace; white-space:pre; color:#666; cursor:pointer; }
div.context ol.context-line li { color:black; background-color:#ccc; }
div.context ol.context-line li span { float: right; }
div.commands { margin-left: 40px; }
div.commands a { color:black; text-decoration:none; }
#summary { background: #ffc; }
@ -145,25 +146,26 @@ TECHNICAL_500_TEMPLATE = """
#requestinfo h3 { margin-bottom:-1em; }
</style>
<script type="text/javascript">
//<!--
function getElementsByClassName(oElm, strTagName, strClassName){
// Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com
var arrElements = (strTagName == "*" && document.all)? document.all :
var arrElements = (strTagName == "*" && document.all)? document.all :
oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array();
strClassName = strClassName.replace(/\-/g, "\\-");
var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
var oElement;
for(var i=0; i<arrElements.length; i++){
oElement = arrElements[i];
oElement = arrElements[i];
if(oRegExp.test(oElement.className)){
arrReturnElements.push(oElement);
}
}
}
return (arrReturnElements)
}
function hideAll(elems) {
for (var e = 0; e < elems.length; e++) {
elems[e].style.display = 'none';
for (var e = 0; e < elems.length; e++) {
elems[e].style.display = 'none';
}
}
window.onload = function() {
@ -183,11 +185,12 @@ TECHNICAL_500_TEMPLATE = """
function varToggle(link, id) {
toggle('v' + id);
var s = link.getElementsByTagName('span')[0];
var uarr = String.fromCharCode(0x2191);
var darr = String.fromCharCode(0x2193);
var uarr = String.fromCharCode(0x25b6);
var darr = String.fromCharCode(0x25bc);
s.innerHTML = s.innerHTML == uarr ? darr : uarr;
return false;
}
//-->
</script>
</head>
<body>
@ -225,22 +228,22 @@ TECHNICAL_500_TEMPLATE = """
{% for frame in frames %}
<li class="frame">
<code>{{ frame.filename }}</code> in <code>{{ frame.function }}</code>
{% if frame.context_line %}
<div class="context" id="c{{ frame.id }}">
{% if frame.pre_context %}
<ol start="{{ frame.pre_context_lineno }}" class="pre-context" id="pre{{ frame.id }}">{% for line in frame.pre_context %}<li>{{ line|escape }}</li>{% endfor %}</ol>
<ol start="{{ frame.pre_context_lineno }}" class="pre-context" id="pre{{ frame.id }}">{% for line in frame.pre_context %}<li onclick="toggle('pre{{ frame.id }}', 'post{{ frame.id }}')">{{ line|escape }}</li>{% endfor %}</ol>
{% endif %}
<ol start="{{ frame.lineno }}" class="context-line"><li onclick="toggle('pre{{ frame.id }}', 'post{{ frame.id }}')">{{ frame.context_line|escape }}</li></ol>
<ol start="{{ frame.lineno }}" class="context-line"><li onclick="toggle('pre{{ frame.id }}', 'post{{ frame.id }}')">{{ frame.context_line|escape }} <span>...</span></li></ol>
{% if frame.post_context %}
<ol start='{{ frame.lineno|add:"1" }}' class="post-context" id="post{{ frame.id }}">{% for line in frame.post_context %}<li>{{ line|escape }}</li>{% endfor %}</ol>
<ol start='{{ frame.lineno|add:"1" }}' class="post-context" id="post{{ frame.id }}">{% for line in frame.post_context %}<li onclick="toggle('pre{{ frame.id }}', 'post{{ frame.id }}')">{{ line|escape }}</li>{% endfor %}</ol>
{% endif %}
</div>
{% endif %}
{% if frame.vars %}
<div class="commands">
<a href="#" onclick="return varToggle(this, '{{ frame.id }}')">Local vars <span>&darr;</span> </a>
<a href="#" onclick="return varToggle(this, '{{ frame.id }}')"><span>&#x25b6;</span> Local vars</a>
</div>
<table class="vars" id="v{{ frame.id }}">
<thead>
@ -266,7 +269,7 @@ TECHNICAL_500_TEMPLATE = """
<div id="requestinfo">
<h2>Request information</h2>
<h3 id="get-info">GET</h3>
{% if request.GET %}
<table class="req">
@ -276,7 +279,7 @@ TECHNICAL_500_TEMPLATE = """
<th>Value</th>
</tr>
</thead>
</tbody>
<tbody>
{% for var in request.GET.items %}
<tr>
<td>{{ var.0 }}</td>
@ -286,9 +289,9 @@ TECHNICAL_500_TEMPLATE = """
</tbody>
</table>
{% else %}
<p>No GET data<p>
<p>No GET data</p>
{% endif %}
<h3 id="post-info">POST</h3>
{% if request.POST %}
<table class="req">
@ -298,7 +301,7 @@ TECHNICAL_500_TEMPLATE = """
<th>Value</th>
</tr>
</thead>
</tbody>
<tbody>
{% for var in request.POST.items %}
<tr>
<td>{{ var.0 }}</td>
@ -308,9 +311,9 @@ TECHNICAL_500_TEMPLATE = """
</tbody>
</table>
{% else %}
<p>No POST data<p>
<p>No POST data</p>
{% endif %}
<h3 id="cookie-info">COOKIES</h3>
{% if request.COOKIES %}
<table class="req">
@ -320,7 +323,7 @@ TECHNICAL_500_TEMPLATE = """
<th>Value</th>
</tr>
</thead>
</tbody>
<tbody>
{% for var in request.COOKIES.items %}
<tr>
<td>{{ var.0 }}</td>
@ -330,9 +333,9 @@ TECHNICAL_500_TEMPLATE = """
</tbody>
</table>
{% else %}
<p>No cookie data<p>
<p>No cookie data</p>
{% endif %}
<h3 id="meta-info">META</h3>
<table class="req">
<thead>
@ -341,7 +344,7 @@ TECHNICAL_500_TEMPLATE = """
<th>Value</th>
</tr>
</thead>
</tbody>
<tbody>
{% for var in request.META.items|dictsort:"0" %}
<tr>
<td>{{ var.0 }}</td>
@ -360,7 +363,7 @@ TECHNICAL_500_TEMPLATE = """
<th>Value</th>
</tr>
</thead>
</tbody>
<tbody>
{% for var in settings.items|dictsort:"0" %}
<tr>
<td>{{ var.0 }}</td>
@ -434,12 +437,12 @@ TECHNICAL_404_TEMPLATE = """
<li>{{ pattern|escape }}</li>
{% endfor %}
</ol>
<p>The current URL, <code>{{ request.path }}</code>, didn't match any of these.</p>
<p>The current URL, <code>{{ request.path }}</code>, didn't match any of these.</p>
{% else %}
<p>{{ reason|escape }}</p>
{% endif %}
</div>
<div id="explanation">
<p>
You're seeing this error because you have <code>DEBUG = True</code> in

View File

@ -331,12 +331,13 @@ Now the poll change list page looks like this:
You can click on the column headers to sort by those values -- except in the
case of the ``was_published_today`` header, because sorting by the output of
an arbitrary method is not supported. Also note that the column header for
``was_published_today`` is, by default, the name of the method. But you can
change that by giving that method a ``short_description`` attribute::
``was_published_today`` is, by default, the name of the method (with
underscores replaced with spaces). But you can change that by giving that
method a ``short_description`` attribute::
def was_published_today(self):
return self.pub_date.date() == datetime.date.today()
was_published_today.short_description = 'Was published today'
was_published_today.short_description = 'Published today?'
Let's add another improvement to the Poll change list page: Filters. Add the

View File

@ -1,6 +1,8 @@
import traceback
from django.core import template
from django.core.template import loader
from django.utils.translation import activate, deactivate
from django.utils.translation import activate, deactivate, install
# Helper objects for template tests
class SomeClass:
@ -294,8 +296,11 @@ def run_tests(verbosity=0, standalone=False):
tests = TEMPLATE_TESTS.items()
tests.sort()
for name, vals in tests:
install()
if 'LANGUAGE_CODE' in vals[1]:
activate(vals[1]['LANGUAGE_CODE'])
else:
activate('en-us')
try:
output = loader.get_template(name).render(template.Context(vals[1]))
except Exception, e:
@ -304,6 +309,7 @@ def run_tests(verbosity=0, standalone=False):
print "Template test: %s -- Passed" % name
else:
if verbosity:
traceback.print_exc()
print "Template test: %s -- FAILED. Got %s, exception: %s" % (name, e.__class__, e)
failed_tests.append(name)
continue