1
0
mirror of https://github.com/django/django.git synced 2025-07-05 18:29:11 +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 # translation of django.po to french
# This file is distributed under the same license as the PACKAGE package. # This file is distributed under the same license as the PACKAGE package.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
# Laurent Rahuel <laurent.rahuel@gmail.com>, 2005. # Laurent Rahuel <laurent.rahuel@gmail.com>, 2005.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: django\n" "Project-Id-Version: django\n"
@ -544,6 +544,7 @@ msgid "Time"
msgstr "" msgstr ""
#: contrib/admin/views/doc.py:284 contrib/flatpages/models/flatpages.py:6 #: contrib/admin/views/doc.py:284 contrib/flatpages/models/flatpages.py:6
#: models/core.py:81
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
@ -947,100 +948,10 @@ msgstr ""
msgid "As above, but opens the admin page in a new window." msgid "As above, but opens the admin page in a new window."
msgstr "" msgstr ""
#: contrib/redirects/models/redirects.py:7 #: contrib/redirects/models/redirects.py:7 models/core.py:62
msgid "redirect from" msgid "redirect from"
msgstr "redirigé depuis" 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 #: utils/dates.py:6
msgid "Monday" msgid "Monday"
msgstr "Lundi" msgstr "Lundi"
@ -1145,67 +1056,144 @@ msgstr "Nov."
msgid "Dec." msgid "Dec."
msgstr "Déc." msgstr "Déc."
#: models/core.py:7 #: models/core.py:5
msgid "domain name" msgid "domain name"
msgstr "nom de domaine" msgstr "nom de domaine"
#: models/core.py:8 #: models/core.py:6
msgid "display name" msgid "display name"
msgstr "nom à afficher" msgstr "nom à afficher"
#: models/core.py:10 #: models/core.py:8
msgid "site" msgid "site"
msgstr "site" msgstr "site"
#: models/core.py:11 #: models/core.py:9
msgid "sites" msgid "sites"
msgstr "sites" msgstr "sites"
#: models/core.py:28 #: models/core.py:22
msgid "label" msgid "label"
msgstr "intitulé" 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" msgid "name"
msgstr "nom" msgstr "nom"
#: models/core.py:31 #: models/core.py:25
msgid "package" msgid "package"
msgstr "paquetage" msgstr "paquetage"
#: models/core.py:32 #: models/core.py:26
msgid "packages" msgid "packages"
msgstr "paquetages" msgstr "paquetages"
#: models/core.py:42 #: models/core.py:36
msgid "python module name" msgid "python module name"
msgstr "nom du module python" msgstr "nom du module python"
#: models/core.py:44 #: models/core.py:38
msgid "content type" msgid "content type"
msgstr "type de contenu" msgstr "type de contenu"
#: models/core.py:45 #: models/core.py:39
msgid "content types" msgid "content types"
msgstr "types de contenu" 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 #: 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" msgid "session key"
msgstr "clé de session" msgstr "clé de session"
#: models/core.py:68 #: models/core.py:115
msgid "session data" msgid "session data"
msgstr "donnée de session" msgstr "donnée de session"
#: models/core.py:69 #: models/core.py:116
msgid "expire date" msgid "expire date"
msgstr "date d'expiration" msgstr "date d'expiration"
#: models/core.py:71 #: models/core.py:118
msgid "session" msgid "session"
msgstr "session" msgstr "session"
#: models/core.py:72 #: models/core.py:119
msgid "sessions" msgid "sessions"
msgstr "sessions" msgstr "sessions"
@ -1298,7 +1286,7 @@ msgstr "Information personnelle"
msgid "Important dates" msgid "Important dates"
msgstr "Dates importantes" msgstr "Dates importantes"
#: models/auth.py:195 #: models/auth.py:182
msgid "Message" msgid "Message"
msgstr "Message" msgstr "Message"
@ -1426,69 +1414,69 @@ msgid "This value must contain only letters, numbers and underscores."
msgstr "" msgstr ""
"Ce champ ne doit contenir que des lettres, des nombres et des sous-tirets." "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." msgid "This value must contain only letters, numbers, underscores and slashes."
msgstr "" msgstr ""
"Ce champ ne doit contenir que des lettres, des nombres, des sous-tirets et " "Ce champ ne doit contenir que des lettres, des nombres, des sous-tirets et "
"des '/'." "des '/'."
#: core/validators.py:71 #: core/validators.py:70
msgid "Uppercase letters are not allowed here." msgid "Uppercase letters are not allowed here."
msgstr "Les lettres majuscules ne sont pas autorisées ici." 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." msgid "Lowercase letters are not allowed here."
msgstr "Les lettres minuscules ne sont pas autorisées ici." 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." msgid "Enter only digits separated by commas."
msgstr "Seulement des chiffres ([0-9]), séparés par des virgules." 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." msgid "Enter valid e-mail addresses separated by commas."
msgstr "Entrez des adresses de courriel valides séparées par des virgules." 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." msgid "Please enter a valid IP address."
msgstr "Entrez une adresse IP valide." msgstr "Entrez une adresse IP valide."
#: core/validators.py:102 #: core/validators.py:104
msgid "Empty values are not allowed here." msgid "Empty values are not allowed here."
msgstr "Vous ne pouvez pas laisser ce champ vide." 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." msgid "Non-numeric characters aren't allowed here."
msgstr "Les caractères non numériques ne sont pas autorisés ici." 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." msgid "This value can't be comprised solely of digits."
msgstr "Cette valeur ne peut contenir que des chiffres [0-9]." msgstr "Cette valeur ne peut contenir que des chiffres [0-9]."
#: core/validators.py:115 #: core/validators.py:117
msgid "Enter a whole number." msgid "Enter a whole number."
msgstr "Entrez un nombre entier." msgstr "Entrez un nombre entier."
#: core/validators.py:119 #: core/validators.py:121
msgid "Only alphabetical characters are allowed here." msgid "Only alphabetical characters are allowed here."
msgstr "Seules les lettres de l'alphabet sont autorisées ici." 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." msgid "Enter a valid date in YYYY-MM-DD format."
msgstr "Entrez une date valide au format AAAA-MM-JJ." 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." msgid "Enter a valid time in HH:MM format."
msgstr "Entrez une heure valide au format HH:MM." 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." 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." 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." msgid "Enter a valid e-mail address."
msgstr "Entrez une adresse de courriel valide." msgstr "Entrez une adresse de courriel valide."
#: core/validators.py:147 #: core/validators.py:149
msgid "" msgid ""
"Upload a valid image. The file you uploaded was either not an image or a " "Upload a valid image. The file you uploaded was either not an image or a "
"corrupted image." "corrupted image."
@ -1496,28 +1484,28 @@ msgstr ""
"Envoyez une image valide. Le fichier que vous avez transferé n'est pas une " "Envoyez une image valide. Le fichier que vous avez transferé n'est pas une "
"image ou bien est une image corrompue." "image ou bien est une image corrompue."
#: core/validators.py:154 #: core/validators.py:156
#, python-format #, python-format
msgid "The URL %s does not point to a valid image." msgid "The URL %s does not point to a valid image."
msgstr "L'URL %s ne pointe pas vers une image valide." msgstr "L'URL %s ne pointe pas vers une image valide."
#: core/validators.py:158 #: core/validators.py:160
#, python-format #, python-format
msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid." msgid "Phone numbers must be in XXX-XXX-XXXX format. \"%s\" is invalid."
msgstr "" msgstr ""
"Les numéros de téléphone doivent être au format XX XX XX XX XX. \"%s\" est " "Les numéros de téléphone doivent être au format XX XX XX XX XX. \"%s\" est "
"incorrect." "incorrect."
#: core/validators.py:166 #: core/validators.py:168
#, python-format #, python-format
msgid "The URL %s does not point to a valid QuickTime video." msgid "The URL %s does not point to a valid QuickTime video."
msgstr "L'URL %s ne pointe pas vers une vidéo QuickTime valide." 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." msgid "A valid URL is required."
msgstr "Une URL valide est requise." msgstr "Une URL valide est requise."
#: core/validators.py:184 #: core/validators.py:186
#, python-format #, python-format
msgid "" msgid ""
"Valid HTML is required. Specific errors are:\n" "Valid HTML is required. Specific errors are:\n"
@ -1526,69 +1514,69 @@ msgstr ""
"Du HTML valide est requis. Les erreurs spécifiques sont:\n" "Du HTML valide est requis. Les erreurs spécifiques sont:\n"
"%s" "%s"
#: core/validators.py:191 #: core/validators.py:193
#, python-format #, python-format
msgid "Badly formed XML: %s" msgid "Badly formed XML: %s"
msgstr "XML mal formé: %s" msgstr "XML mal formé: %s"
#: core/validators.py:201 #: core/validators.py:203
#, python-format #, python-format
msgid "Invalid URL: %s" msgid "Invalid URL: %s"
msgstr "URL invalide: %s" msgstr "URL invalide: %s"
#: core/validators.py:205 core/validators.py:207 #: core/validators.py:205
#, python-format #, python-format
msgid "The URL %s is a broken link." msgid "The URL %s is a broken link."
msgstr "L'URL %s est un lien cassé." msgstr "L'URL %s est un lien cassé."
#: core/validators.py:213 #: core/validators.py:211
msgid "Enter a valid U.S. state abbreviation." msgid "Enter a valid U.S. state abbreviation."
msgstr "Entrez une abréviation d'état américain valide." msgstr "Entrez une abréviation d'état américain valide."
#: core/validators.py:228 #: core/validators.py:226
#, python-format #, python-format
msgid "Watch your mouth! The word %s is not allowed here." msgid "Watch your mouth! The word %s is not allowed here."
msgid_plural "Watch your mouth! The words %s are not allowed here." msgid_plural "Watch your mouth! The words %s are not allowed here."
msgstr[0] "Attention à votre langage,! Le mot %s n'est pas autorisé ici." 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." msgstr[1] "Attention à votre langage,! Les mots %s ne sont pas autorisés ici."
#: core/validators.py:235 #: core/validators.py:233
#, python-format #, python-format
msgid "This field must match the '%s' field." msgid "This field must match the '%s' field."
msgstr "Ce champ doit correspondre au champ '%s'." 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." msgid "Please enter something for at least one field."
msgstr "S'il vous plaît, saisissez au moins une valeur dans un des champs." 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." msgid "Please enter both fields or leave them both empty."
msgstr "S'il vous plaît, renseignez chaque champ ou laissez les deux vides." msgstr "S'il vous plaît, renseignez chaque champ ou laissez les deux vides."
#: core/validators.py:281 #: core/validators.py:279
#, python-format #, python-format
msgid "This field must be given if %(field)s is %(value)s" msgid "This field must be given if %(field)s is %(value)s"
msgstr "Ce champ doit être renseigné si %(field)s vaut %(value)s" msgstr "Ce champ doit être renseigné si %(field)s vaut %(value)s"
#: core/validators.py:293 #: core/validators.py:291
#, python-format #, python-format
msgid "This field must be given if %(field)s is not %(value)s" msgid "This field must be given if %(field)s is not %(value)s"
msgstr "Ce champ doit être renseigné si %(field)s ne vaut pas %(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." msgid "Duplicate values are not allowed."
msgstr "Des valeurs identiques ne sont pas autorisées." msgstr "Des valeurs identiques ne sont pas autorisées."
#: core/validators.py:335 #: core/validators.py:333
#, python-format #, python-format
msgid "This value must be a power of %s." msgid "This value must be a power of %s."
msgstr "Cette valeur doit être une puissance de %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." msgid "Please enter a valid decimal number."
msgstr "S'il vous plaît, saisissez un nombre décimal valide." msgstr "S'il vous plaît, saisissez un nombre décimal valide."
#: core/validators.py:348 #: core/validators.py:346
#, python-format #, python-format
msgid "Please enter a valid decimal number with at most %s total digit." msgid "Please enter a valid decimal number with at most %s total digit."
msgid_plural "" msgid_plural ""
@ -1598,7 +1586,7 @@ msgstr[0] ""
msgstr[1] "" msgstr[1] ""
"S'il vous plaît, saisissez un nombre décimal valide avec au plus %s chiffres." "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 #, python-format
msgid "Please enter a valid decimal number with at most %s decimal place." msgid "Please enter a valid decimal number with at most %s decimal place."
msgid_plural "" msgid_plural ""
@ -1608,32 +1596,32 @@ msgstr[0] ""
msgstr[1] "" msgstr[1] ""
"S'il vous plaît, saisissez un nombre décimal valide avec au plus %s décimales" "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 #, python-format
msgid "Make sure your uploaded file is at least %s bytes big." msgid "Make sure your uploaded file is at least %s bytes big."
msgstr "" msgstr ""
"Vérifiez que le fichier transféré fait au moins une taille de %s octets." "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 #, python-format
msgid "Make sure your uploaded file is at most %s bytes big." msgid "Make sure your uploaded file is at most %s bytes big."
msgstr "" msgstr ""
"Vérifiez que le fichier transféré fait au plus une taille de %s octets." "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." msgid "The format for this field is wrong."
msgstr "Le format de ce champ est mauvais." msgstr "Le format de ce champ est mauvais."
#: core/validators.py:390 #: core/validators.py:388
msgid "This field is invalid." msgid "This field is invalid."
msgstr "Ce champ est invalide." msgstr "Ce champ est invalide."
#: core/validators.py:425 #: core/validators.py:423
#, python-format #, python-format
msgid "Could not retrieve anything from %s." msgid "Could not retrieve anything from %s."
msgstr "Impossible de récupérer quoi que ce soit depuis %s." msgstr "Impossible de récupérer quoi que ce soit depuis %s."
#: core/validators.py:428 #: core/validators.py:426
#, python-format #, python-format
msgid "" msgid ""
"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." "The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'."
@ -1641,7 +1629,7 @@ msgstr ""
"L'entête Content-Type '%(contenttype)s', renvoyée par l'url %(url)s n'est " "L'entête Content-Type '%(contenttype)s', renvoyée par l'url %(url)s n'est "
"pas valide." "pas valide."
#: core/validators.py:461 #: core/validators.py:459
#, python-format #, python-format
msgid "" msgid ""
"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " "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 " "Veuillez fermer le tag %(tag)s de la ligne %(line)s. (La ligne débutant par "
"\"%(start)s\".)" "\"%(start)s\".)"
#: core/validators.py:465 #: core/validators.py:463
#, python-format #, python-format
msgid "" msgid ""
"Some text starting on line %(line)s is not allowed in that context. (Line " "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. " "Du texte commençant à la ligne %(line)s n'est pas autorisé dans ce contexte. "
"(Ligne débutant par \"%(start)s\".)" "(Ligne débutant par \"%(start)s\".)"
#: core/validators.py:470 #: core/validators.py:468
#, python-format #, python-format
msgid "" msgid ""
"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" "\"%(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 " "\"%(attr)s\" ligne %(line)s n'est pas un attribut valide. (Ligne débutant "
"par \"%(start)s\".)" "par \"%(start)s\".)"
#: core/validators.py:475 #: core/validators.py:473
#, python-format #, python-format
msgid "" msgid ""
"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" "\"<%(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 \"%" "\"<%(tag)s>\" ligne %(line)s n'est pas un tag valide. (Ligne débutant par \"%"
"(start)s\".)" "(start)s\".)"
#: core/validators.py:479 #: core/validators.py:477
#, python-format #, python-format
msgid "" msgid ""
"A tag on line %(line)s is missing one or more required attributes. (Line " "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. " "Un tag, ou un ou plusieurs attributs, de la ligne %(line)s est manquant. "
"(Ligne débutant par \"%(start)s\".)" "(Ligne débutant par \"%(start)s\".)"
#: core/validators.py:484 #: core/validators.py:482
#, python-format #, python-format
msgid "" msgid ""
"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " "The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line "

View File

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

View File

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

View File

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

View File

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

View File

@ -126,7 +126,7 @@ def result_headers(cl):
try: try:
header = func.short_description header = func.short_description
except AttributeError: except AttributeError:
header = func.__name__ header = func.__name__.replace('_', ' ')
# Non-field list_display values don't get ordering capability. # Non-field list_display values don't get ordering capability.
yield {"text": header} yield {"text": header}
else: 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]) _fill_table_cache(opts, select, tables, where, opts.db_table, [opts.db_table])
# Add any additional SELECTs passed in via kwargs. # 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'): 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 clause
order_by = [] order_by = []

View File

@ -33,8 +33,8 @@ def technical_500_response(request, exc_type, exc_value, tb):
'pre_context_lineno' : pre_context_lineno, 'pre_context_lineno' : pre_context_lineno,
}) })
tb = tb.tb_next 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. # matches HIDDEN_SETTINGS along the way.
settings_dict = {} settings_dict = {}
for k in dir(settings): for k in dir(settings):
@ -43,7 +43,7 @@ def technical_500_response(request, exc_type, exc_value, tb):
settings_dict[k] = '********************' settings_dict[k] = '********************'
else: else:
settings_dict[k] = getattr(settings, k) settings_dict[k] = getattr(settings, k)
t = Template(TECHNICAL_500_TEMPLATE) t = Template(TECHNICAL_500_TEMPLATE)
c = Context({ c = Context({
'exception_type' : exc_type.__name__, 'exception_type' : exc_type.__name__,
@ -53,7 +53,7 @@ def technical_500_response(request, exc_type, exc_value, tb):
'request' : request, 'request' : request,
'request_protocol' : os.environ.get("HTTPS") == "on" and "https" or "http", 'request_protocol' : os.environ.get("HTTPS") == "on" and "https" or "http",
'settings' : settings_dict, 'settings' : settings_dict,
}) })
return HttpResponseServerError(t.render(c)) return HttpResponseServerError(t.render(c))
@ -66,7 +66,7 @@ def technical_404_response(request, exception):
tried = exception.args[0]['tried'] tried = exception.args[0]['tried']
except (IndexError, TypeError): except (IndexError, TypeError):
tried = [] tried = []
t = Template(TECHNICAL_404_TEMPLATE) t = Template(TECHNICAL_404_TEMPLATE)
c = Context({ c = Context({
'root_urlconf' : settings.ROOT_URLCONF, 'root_urlconf' : settings.ROOT_URLCONF,
@ -80,7 +80,7 @@ def technical_404_response(request, exception):
def _get_lines_from_file(filename, lineno, context_lines): 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). Returns (pre_context_lineno, pre_context, context_line, post_context).
""" """
try: 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]] pre_context = [line.strip('\n') for line in source[lower_bound:lineno]]
context_line = source[lineno].strip('\n') context_line = source[lineno].strip('\n')
post_context = [line.strip('\n') for line in source[lineno+1:upper_bound]] post_context = [line.strip('\n') for line in source[lineno+1:upper_bound]]
return lower_bound, pre_context, context_line, post_context return lower_bound, pre_context, context_line, post_context
except (OSError, IOError): except (OSError, IOError):
return None, [], None, [] return None, [], None, []
@ -131,8 +131,9 @@ TECHNICAL_500_TEMPLATE = """
ul.traceback li.frame { margin-bottom:1em; } ul.traceback li.frame { margin-bottom:1em; }
div.context { margin: 10px 0; } div.context { margin: 10px 0; }
div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; } 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 li { font-family:monospace; white-space:pre; color:#666; cursor:pointer; }
div.context ol.context-line li { color:black; background-color:#ccc; 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 { margin-left: 40px; }
div.commands a { color:black; text-decoration:none; } div.commands a { color:black; text-decoration:none; }
#summary { background: #ffc; } #summary { background: #ffc; }
@ -145,25 +146,26 @@ TECHNICAL_500_TEMPLATE = """
#requestinfo h3 { margin-bottom:-1em; } #requestinfo h3 { margin-bottom:-1em; }
</style> </style>
<script type="text/javascript"> <script type="text/javascript">
//<!--
function getElementsByClassName(oElm, strTagName, strClassName){ function getElementsByClassName(oElm, strTagName, strClassName){
// Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com // 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); oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array(); var arrReturnElements = new Array();
strClassName = strClassName.replace(/\-/g, "\\-"); strClassName = strClassName.replace(/\-/g, "\\-");
var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)"); var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
var oElement; var oElement;
for(var i=0; i<arrElements.length; i++){ for(var i=0; i<arrElements.length; i++){
oElement = arrElements[i]; oElement = arrElements[i];
if(oRegExp.test(oElement.className)){ if(oRegExp.test(oElement.className)){
arrReturnElements.push(oElement); arrReturnElements.push(oElement);
} }
} }
return (arrReturnElements) return (arrReturnElements)
} }
function hideAll(elems) { function hideAll(elems) {
for (var e = 0; e < elems.length; e++) { for (var e = 0; e < elems.length; e++) {
elems[e].style.display = 'none'; elems[e].style.display = 'none';
} }
} }
window.onload = function() { window.onload = function() {
@ -183,11 +185,12 @@ TECHNICAL_500_TEMPLATE = """
function varToggle(link, id) { function varToggle(link, id) {
toggle('v' + id); toggle('v' + id);
var s = link.getElementsByTagName('span')[0]; var s = link.getElementsByTagName('span')[0];
var uarr = String.fromCharCode(0x2191); var uarr = String.fromCharCode(0x25b6);
var darr = String.fromCharCode(0x2193); var darr = String.fromCharCode(0x25bc);
s.innerHTML = s.innerHTML == uarr ? darr : uarr; s.innerHTML = s.innerHTML == uarr ? darr : uarr;
return false; return false;
} }
//-->
</script> </script>
</head> </head>
<body> <body>
@ -225,22 +228,22 @@ TECHNICAL_500_TEMPLATE = """
{% for frame in frames %} {% for frame in frames %}
<li class="frame"> <li class="frame">
<code>{{ frame.filename }}</code> in <code>{{ frame.function }}</code> <code>{{ frame.filename }}</code> in <code>{{ frame.function }}</code>
{% if frame.context_line %} {% if frame.context_line %}
<div class="context" id="c{{ frame.id }}"> <div class="context" id="c{{ frame.id }}">
{% if frame.pre_context %} {% 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 %} {% 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 %} {% 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 %} {% endif %}
</div> </div>
{% endif %} {% endif %}
{% if frame.vars %} {% if frame.vars %}
<div class="commands"> <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> </div>
<table class="vars" id="v{{ frame.id }}"> <table class="vars" id="v{{ frame.id }}">
<thead> <thead>
@ -266,7 +269,7 @@ TECHNICAL_500_TEMPLATE = """
<div id="requestinfo"> <div id="requestinfo">
<h2>Request information</h2> <h2>Request information</h2>
<h3 id="get-info">GET</h3> <h3 id="get-info">GET</h3>
{% if request.GET %} {% if request.GET %}
<table class="req"> <table class="req">
@ -276,7 +279,7 @@ TECHNICAL_500_TEMPLATE = """
<th>Value</th> <th>Value</th>
</tr> </tr>
</thead> </thead>
</tbody> <tbody>
{% for var in request.GET.items %} {% for var in request.GET.items %}
<tr> <tr>
<td>{{ var.0 }}</td> <td>{{ var.0 }}</td>
@ -286,9 +289,9 @@ TECHNICAL_500_TEMPLATE = """
</tbody> </tbody>
</table> </table>
{% else %} {% else %}
<p>No GET data<p> <p>No GET data</p>
{% endif %} {% endif %}
<h3 id="post-info">POST</h3> <h3 id="post-info">POST</h3>
{% if request.POST %} {% if request.POST %}
<table class="req"> <table class="req">
@ -298,7 +301,7 @@ TECHNICAL_500_TEMPLATE = """
<th>Value</th> <th>Value</th>
</tr> </tr>
</thead> </thead>
</tbody> <tbody>
{% for var in request.POST.items %} {% for var in request.POST.items %}
<tr> <tr>
<td>{{ var.0 }}</td> <td>{{ var.0 }}</td>
@ -308,9 +311,9 @@ TECHNICAL_500_TEMPLATE = """
</tbody> </tbody>
</table> </table>
{% else %} {% else %}
<p>No POST data<p> <p>No POST data</p>
{% endif %} {% endif %}
<h3 id="cookie-info">COOKIES</h3> <h3 id="cookie-info">COOKIES</h3>
{% if request.COOKIES %} {% if request.COOKIES %}
<table class="req"> <table class="req">
@ -320,7 +323,7 @@ TECHNICAL_500_TEMPLATE = """
<th>Value</th> <th>Value</th>
</tr> </tr>
</thead> </thead>
</tbody> <tbody>
{% for var in request.COOKIES.items %} {% for var in request.COOKIES.items %}
<tr> <tr>
<td>{{ var.0 }}</td> <td>{{ var.0 }}</td>
@ -330,9 +333,9 @@ TECHNICAL_500_TEMPLATE = """
</tbody> </tbody>
</table> </table>
{% else %} {% else %}
<p>No cookie data<p> <p>No cookie data</p>
{% endif %} {% endif %}
<h3 id="meta-info">META</h3> <h3 id="meta-info">META</h3>
<table class="req"> <table class="req">
<thead> <thead>
@ -341,7 +344,7 @@ TECHNICAL_500_TEMPLATE = """
<th>Value</th> <th>Value</th>
</tr> </tr>
</thead> </thead>
</tbody> <tbody>
{% for var in request.META.items|dictsort:"0" %} {% for var in request.META.items|dictsort:"0" %}
<tr> <tr>
<td>{{ var.0 }}</td> <td>{{ var.0 }}</td>
@ -360,7 +363,7 @@ TECHNICAL_500_TEMPLATE = """
<th>Value</th> <th>Value</th>
</tr> </tr>
</thead> </thead>
</tbody> <tbody>
{% for var in settings.items|dictsort:"0" %} {% for var in settings.items|dictsort:"0" %}
<tr> <tr>
<td>{{ var.0 }}</td> <td>{{ var.0 }}</td>
@ -434,12 +437,12 @@ TECHNICAL_404_TEMPLATE = """
<li>{{ pattern|escape }}</li> <li>{{ pattern|escape }}</li>
{% endfor %} {% endfor %}
</ol> </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 %} {% else %}
<p>{{ reason|escape }}</p> <p>{{ reason|escape }}</p>
{% endif %} {% endif %}
</div> </div>
<div id="explanation"> <div id="explanation">
<p> <p>
You're seeing this error because you have <code>DEBUG = True</code> in 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 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 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 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 ``was_published_today`` is, by default, the name of the method (with
change that by giving that method a ``short_description`` attribute:: underscores replaced with spaces). But you can change that by giving that
method a ``short_description`` attribute::
def was_published_today(self): def was_published_today(self):
return self.pub_date.date() == datetime.date.today() 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 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 import template
from django.core.template import loader 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 # Helper objects for template tests
class SomeClass: class SomeClass:
@ -294,8 +296,11 @@ def run_tests(verbosity=0, standalone=False):
tests = TEMPLATE_TESTS.items() tests = TEMPLATE_TESTS.items()
tests.sort() tests.sort()
for name, vals in tests: for name, vals in tests:
install()
if 'LANGUAGE_CODE' in vals[1]: if 'LANGUAGE_CODE' in vals[1]:
activate(vals[1]['LANGUAGE_CODE']) activate(vals[1]['LANGUAGE_CODE'])
else:
activate('en-us')
try: try:
output = loader.get_template(name).render(template.Context(vals[1])) output = loader.get_template(name).render(template.Context(vals[1]))
except Exception, e: except Exception, e:
@ -304,6 +309,7 @@ def run_tests(verbosity=0, standalone=False):
print "Template test: %s -- Passed" % name print "Template test: %s -- Passed" % name
else: else:
if verbosity: if verbosity:
traceback.print_exc()
print "Template test: %s -- FAILED. Got %s, exception: %s" % (name, e.__class__, e) print "Template test: %s -- FAILED. Got %s, exception: %s" % (name, e.__class__, e)
failed_tests.append(name) failed_tests.append(name)
continue continue