From fa3ed6e1341f7c8b468e2267b3fafddeb58cdac2 Mon Sep 17 00:00:00 2001 From: Jeremy Dunck Date: Fri, 23 Mar 2007 16:35:57 +0000 Subject: [PATCH] gis: Merged revisions 4669-4785 via svnmerge from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/gis@4786 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- AUTHORS | 7 +- django/bin/compile-messages.py | 17 +- django/bin/make-messages.py | 4 +- django/conf/global_settings.py | 2 + django/conf/locale/fr/LC_MESSAGES/django.mo | Bin 32919 -> 39707 bytes django/conf/locale/fr/LC_MESSAGES/django.po | 2184 ++++++++++------- django/conf/locale/it/LC_MESSAGES/django.mo | Bin 40468 -> 40300 bytes django/conf/locale/it/LC_MESSAGES/django.po | 64 +- django/conf/locale/pl/LC_MESSAGES/djangojs.mo | Bin 0 -> 1564 bytes django/conf/locale/pl/LC_MESSAGES/djangojs.po | 112 + django/conf/locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 37681 bytes django/conf/locale/pt/LC_MESSAGES/django.po | 2125 ++++++++++++++++ django/conf/locale/pt/LC_MESSAGES/djangojs.mo | Bin 0 -> 1514 bytes django/conf/locale/pt/LC_MESSAGES/djangojs.po | 108 + django/conf/locale/sv/LC_MESSAGES/django.mo | Bin 39681 -> 39640 bytes django/conf/locale/sv/LC_MESSAGES/django.po | 76 +- django/conf/locale/sv/LC_MESSAGES/djangojs.mo | Bin 1691 -> 1680 bytes django/conf/locale/sv/LC_MESSAGES/djangojs.po | 14 +- django/conf/locale/ta/LC_MESSAGES/django.mo | Bin 52050 -> 60022 bytes django/conf/locale/ta/LC_MESSAGES/django.po | 1185 ++++----- django/conf/locale/ta/LC_MESSAGES/djangojs.mo | Bin 0 -> 2336 bytes django/conf/locale/ta/LC_MESSAGES/djangojs.po | 112 + django/conf/locale/te/LC_MESSAGES/django.mo | Bin 0 -> 35017 bytes django/conf/locale/te/LC_MESSAGES/django.po | 2106 ++++++++++++++++ django/conf/locale/te/LC_MESSAGES/djangojs.mo | Bin 0 -> 2206 bytes django/conf/locale/te/LC_MESSAGES/djangojs.po | 110 + django/conf/locale/tr/LC_MESSAGES/django.mo | Bin 37149 -> 38712 bytes django/conf/locale/tr/LC_MESSAGES/django.po | 1605 +++++++----- django/conf/project_template/settings.py | 3 +- .../admin/templatetags/admin_modify.py | 10 +- django/contrib/admin/views/doc.py | 6 +- django/contrib/contenttypes/management.py | 1 + django/contrib/contenttypes/models.py | 10 + .../formtools/templates/formtools/form.html | 2 +- .../templates/formtools/preview.html | 4 +- .../contrib/humanize/templatetags/humanize.py | 17 +- django/contrib/sessions/middleware.py | 13 +- django/contrib/sessions/models.py | 19 +- django/core/management.py | 25 +- django/core/serializers/__init__.py | 7 + django/core/serializers/base.py | 26 +- django/core/serializers/python.py | 9 +- django/core/serializers/pyyaml.py | 36 + django/core/serializers/xml_serializer.py | 40 +- django/core/validators.py | 5 +- django/db/backends/ado_mssql/base.py | 5 +- django/db/backends/mysql/base.py | 73 +- django/db/backends/mysql/client.py | 29 +- django/db/backends/mysql_old/__init__.py | 0 django/db/backends/mysql_old/base.py | 233 ++ django/db/backends/mysql_old/client.py | 14 + django/db/backends/mysql_old/creation.py | 29 + django/db/backends/mysql_old/introspection.py | 95 + django/db/backends/oracle/base.py | 5 +- django/db/backends/postgresql/base.py | 5 +- .../db/backends/postgresql_psycopg2/base.py | 5 +- django/db/backends/sqlite3/base.py | 5 +- django/db/models/fields/__init__.py | 12 +- django/db/models/fields/generic.py | 1 + django/db/models/options.py | 1 + django/db/models/query.py | 4 +- django/db/models/related.py | 4 +- django/oldforms/__init__.py | 7 +- django/shortcuts/__init__.py | 4 +- django/template/__init__.py | 9 +- django/template/defaultfilters.py | 17 +- django/template/defaulttags.py | 53 +- django/test/client.py | 8 + django/utils/datastructures.py | 7 + django/utils/dateformat.py | 13 +- django/utils/text.py | 2 +- django/views/i18n.py | 6 +- docs/add_ons.txt | 16 +- docs/contributing.txt | 41 +- docs/databases.txt | 162 ++ docs/db-api.txt | 6 +- docs/distributions.txt | 2 +- docs/django-admin.txt | 2 +- docs/fastcgi.txt | 11 + docs/forms.txt | 21 + docs/i18n.txt | 11 + docs/model-api.txt | 4 + docs/release_notes_0.96.txt | 264 ++ docs/serialization.txt | 3 +- docs/settings.txt | 10 +- docs/testing.txt | 6 + extras/django_bash_completion | 2 +- tests/modeltests/fixtures/models.py | 4 +- tests/modeltests/get_object_or_404/models.py | 6 +- tests/modeltests/test_client/models.py | 38 +- tests/modeltests/test_client/urls.py | 1 + tests/modeltests/test_client/views.py | 34 + tests/regressiontests/datastructures/tests.py | 33 +- tests/regressiontests/defaultfilters/tests.py | 6 + .../many_to_one_regress/models.py | 29 +- .../serializers_regress/__init__.py | 0 .../serializers_regress/models.py | 187 ++ .../serializers_regress/tests.py | 263 ++ tests/regressiontests/templates/tests.py | 14 + 99 files changed, 9509 insertions(+), 2377 deletions(-) create mode 100644 django/conf/locale/pl/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/pl/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/pt/LC_MESSAGES/django.mo create mode 100644 django/conf/locale/pt/LC_MESSAGES/django.po create mode 100644 django/conf/locale/pt/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/pt/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/ta/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/ta/LC_MESSAGES/djangojs.po create mode 100644 django/conf/locale/te/LC_MESSAGES/django.mo create mode 100644 django/conf/locale/te/LC_MESSAGES/django.po create mode 100644 django/conf/locale/te/LC_MESSAGES/djangojs.mo create mode 100644 django/conf/locale/te/LC_MESSAGES/djangojs.po create mode 100644 django/core/serializers/pyyaml.py create mode 100644 django/db/backends/mysql_old/__init__.py create mode 100644 django/db/backends/mysql_old/base.py create mode 100644 django/db/backends/mysql_old/client.py create mode 100644 django/db/backends/mysql_old/creation.py create mode 100644 django/db/backends/mysql_old/introspection.py create mode 100644 docs/databases.txt create mode 100644 docs/release_notes_0.96.txt create mode 100644 tests/regressiontests/serializers_regress/__init__.py create mode 100644 tests/regressiontests/serializers_regress/models.py create mode 100644 tests/regressiontests/serializers_regress/tests.py diff --git a/AUTHORS b/AUTHORS index 9991b4e00a..a2cf8c68cc 100644 --- a/AUTHORS +++ b/AUTHORS @@ -42,7 +42,6 @@ people who have submitted patches, reported bugs, added translations, helped answer newbie questions, and generally made Django that much better: adurdin@gmail.com - akaihola Andreas andy@jadedplanet.net ant9000@netwise.it @@ -86,10 +85,12 @@ answer newbie questions, and generally made Django that much better: Marc Fargas favo@exoweb.net Eric Floehr + Jorge Gajon gandalf@owca.info Baishampayan Ghose martin.glueck@gmail.com Simon Greenhill + Owen Griffiths Espen Grindhaug Brian Harring Brant Harris @@ -107,10 +108,12 @@ answer newbie questions, and generally made Django that much better: Michael Josephson jpellerin@gmail.com junzhang.jn@gmail.com + Antti Kaihola Ben Dean Kawamura Garth Kidd kilian Sune Kirkeby + Bastian Kleineidam Cameron Knight (ckknight) Meir Kriheli Bruce Kroeze @@ -130,6 +133,7 @@ answer newbie questions, and generally made Django that much better: masonsimon+django@gmail.com Manuzhai Petar Marić + Nuno Mariz mark@junklight.com Yasushi Masuda mattycakes@gmail.com @@ -148,6 +152,7 @@ answer newbie questions, and generally made Django that much better: Neal Norwitz oggie rob Jay Parlar + pavithran s pgross@thoughtworks.com phaedo phil@produxion.net diff --git a/django/bin/compile-messages.py b/django/bin/compile-messages.py index 0137ec8dd4..f2193d3122 100755 --- a/django/bin/compile-messages.py +++ b/django/bin/compile-messages.py @@ -1,9 +1,10 @@ #!/usr/bin/env python +import optparse import os import sys -def compile_messages(): +def compile_messages(locale=None): basedir = None if os.path.isdir(os.path.join('conf', 'locale')): @@ -14,6 +15,9 @@ def compile_messages(): print "This script should be run from the Django SVN tree or your project or app tree." sys.exit(1) + if locale is not None: + basedir = os.path.join(basedir, locale, 'LC_MESSAGES') + for dirpath, dirnames, filenames in os.walk(basedir): for f in filenames: if f.endswith('.po'): @@ -32,5 +36,14 @@ def compile_messages(): cmd = 'msgfmt -o "$djangocompilemo" "$djangocompilepo"' os.system(cmd) +def main(): + parser = optparse.OptionParser() + parser.add_option('-l', '--locale', dest='locale', + help="The locale to process. Default is to process all.") + options, args = parser.parse_args() + if len(args): + parser.error("This program takes no arguments") + compile_messages(options.locale) + if __name__ == "__main__": - compile_messages() + main() diff --git a/django/bin/make-messages.py b/django/bin/make-messages.py index 557cb5eeec..34fb68dcfe 100755 --- a/django/bin/make-messages.py +++ b/django/bin/make-messages.py @@ -81,7 +81,7 @@ def make_messages(): src = pythonize_re.sub('\n#', src) open(os.path.join(dirpath, '%s.py' % file), "wb").write(src) thefile = '%s.py' % file - cmd = 'xgettext %s -d %s -L Perl --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy -o - "%s"' % ( + cmd = 'xgettext %s -d %s -L Perl --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy --from-code UTF-8 -o - "%s"' % ( os.path.exists(potfile) and '--omit-header' or '', domain, os.path.join(dirpath, thefile)) (stdin, stdout, stderr) = os.popen3(cmd, 'b') msgs = stdout.read() @@ -103,7 +103,7 @@ def make_messages(): open(os.path.join(dirpath, '%s.py' % file), "wb").write(templatize(src)) thefile = '%s.py' % file if verbose: sys.stdout.write('processing file %s in %s\n' % (file, dirpath)) - cmd = 'xgettext %s -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy -o - "%s"' % ( + cmd = 'xgettext %s -d %s -L Python --keyword=gettext_noop --keyword=gettext_lazy --keyword=ngettext_lazy --from-code UTF-8 -o - "%s"' % ( os.path.exists(potfile) and '--omit-header' or '', domain, os.path.join(dirpath, thefile)) (stdin, stdout, stderr) = os.popen3(cmd, 'b') msgs = stdout.read() diff --git a/django/conf/global_settings.py b/django/conf/global_settings.py index 5ce856c37b..f26911d7f9 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -61,6 +61,7 @@ LANGUAGES = ( ('nl', gettext_noop('Dutch')), ('no', gettext_noop('Norwegian')), ('pl', gettext_noop('Polish')), + ('pt', gettext_noop('Portugese')), ('pt-br', gettext_noop('Brazilian')), ('ro', gettext_noop('Romanian')), ('ru', gettext_noop('Russian')), @@ -69,6 +70,7 @@ LANGUAGES = ( ('sr', gettext_noop('Serbian')), ('sv', gettext_noop('Swedish')), ('ta', gettext_noop('Tamil')), + ('te', gettext_noop('Telugu')), ('tr', gettext_noop('Turkish')), ('uk', gettext_noop('Ukrainian')), ('zh-cn', gettext_noop('Simplified Chinese')), diff --git a/django/conf/locale/fr/LC_MESSAGES/django.mo b/django/conf/locale/fr/LC_MESSAGES/django.mo index 7b2b1f6e9ecf4b069b56fec0a78cb92f8f8fcdd8..14b8a935a1acefb7805096d8647061b564a15853 100644 GIT binary patch delta 15446 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 XKXRLU)bjylwMr1lj}5)_nM3{ug^vHM delta 9512 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 diff --git a/django/conf/locale/fr/LC_MESSAGES/django.po b/django/conf/locale/fr/LC_MESSAGES/django.po index 104e9a2aa1..62f3b46c37 100644 --- a/django/conf/locale/fr/LC_MESSAGES/django.po +++ b/django/conf/locale/fr/LC_MESSAGES/django.po @@ -7,14 +7,775 @@ msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-05-16 10:11+0200\n" +"POT-Creation-Date: 2007-03-11 11:46+0100\n" "PO-Revision-Date: 2006-05-08 15:12+0200\n" -"Last-Translator: Gaël Chardon \n" +"Last-Translator: Baptiste Goupil \n" "Language-Team: français \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +#: oldforms/__init__.py:357 db/models/fields/__init__.py:116 +#: db/models/fields/__init__.py:273 db/models/fields/__init__.py:609 +#: db/models/fields/__init__.py:620 newforms/models.py:177 +#: newforms/fields.py:78 newforms/fields.py:374 newforms/fields.py:450 +#: newforms/fields.py:461 +msgid "This field is required." +msgstr "Ce champ est obligatoire." + +#: oldforms/__init__.py:392 +#, python-format +msgid "Ensure your text is less than %s character." +msgid_plural "Ensure your text is less than %s characters." +msgstr[0] "Assurez-vous que votre texte fait moins de %s caractère." +msgstr[1] "Assurez-vous que votre texte fait moins de %s caractères." + +#: oldforms/__init__.py:397 +msgid "Line breaks are not allowed here." +msgstr "Les retours à la ligne ne sont pas autorisés ici." + +#: oldforms/__init__.py:498 oldforms/__init__.py:571 oldforms/__init__.py:610 +#, python-format +msgid "Select a valid choice; '%(data)s' is not in %(choices)s." +msgstr "Sélectionnez un choix valide ; '%(data)s' n'est pas dans %(choices)s." + +#: oldforms/__init__.py:577 newforms/widgets.py:170 +#: contrib/admin/filterspecs.py:150 +msgid "Unknown" +msgstr "Inconnu" + +#: oldforms/__init__.py:577 newforms/widgets.py:170 +#: contrib/admin/filterspecs.py:143 +msgid "Yes" +msgstr "Oui" + +#: oldforms/__init__.py:577 newforms/widgets.py:170 +#: contrib/admin/filterspecs.py:143 +msgid "No" +msgstr "Non" + +#: oldforms/__init__.py:672 core/validators.py:174 core/validators.py:445 +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" + +#: oldforms/__init__.py:674 +msgid "The submitted file is empty." +msgstr "Le fichier soumis est vide." + +#: oldforms/__init__.py:730 +msgid "Enter a whole number between -32,768 and 32,767." +msgstr "Entrez un nombre entier entre -32 768 et 32 767." + +#: oldforms/__init__.py:740 +msgid "Enter a positive number." +msgstr "Entrez un nombre entier positif." + +#: oldforms/__init__.py:750 +msgid "Enter a whole number between 0 and 32,767." +msgstr "Entrez un nombre entier entre 0 et 32 767." + +#: db/models/manipulators.py:307 +#, python-format +msgid "%(object)s with this %(type)s already exists for the given %(field)s." +msgstr "" + +#: db/models/manipulators.py:308 contrib/admin/views/main.py:335 +#: contrib/admin/views/main.py:337 contrib/admin/views/main.py:339 +msgid "and" +msgstr "et" + +#: db/models/fields/__init__.py:42 +#, python-format +msgid "%(optname)s with this %(fieldname)s already exists." +msgstr "%(optname)s avec le champ %(fieldname)s existe déjà." + +#: db/models/fields/__init__.py:366 +msgid "This value must be an integer." +msgstr "Cette valeur doit être un entier." + +#: db/models/fields/__init__.py:401 +msgid "This value must be either True or False." +msgstr "Cette valeur doit être soit Vraie soit Fausse." + +#: db/models/fields/__init__.py:422 +msgid "This field cannot be null." +msgstr "Ce champ ne peut pas être vide." + +#: db/models/fields/__init__.py:456 core/validators.py:148 +msgid "Enter a valid date in YYYY-MM-DD format." +msgstr "Entrez une date valide au format AAAA-MM-JJ." + +#: db/models/fields/__init__.py:525 core/validators.py:157 +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." + +#: db/models/fields/__init__.py:629 +msgid "Enter a valid filename." +msgstr "Entrez un nom de fichier valide." + +#: db/models/fields/related.py:53 +#, python-format +msgid "Please enter a valid %s." +msgstr "Entrez un %s valide." + +#: db/models/fields/related.py:642 +msgid "Separate multiple IDs with commas." +msgstr "Séparez les ID par des virgules." + +#: db/models/fields/related.py:644 +msgid "" +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." +msgstr "" +"Maintenez \"Contrôle (ctrl)\", ou \"Commande (touche pomme)\" sur un Mac, " +"pour en sélectionner plusieurs." + +#: db/models/fields/related.py:691 +#, python-format +msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." +msgid_plural "" +"Please enter valid %(self)s IDs. The values %(value)r are invalid." +msgstr[0] "Entrez un ID %(self)s valide. La valeur %(value)r est invalide." +msgstr[1] "" +"Entrez des ID %(self)s valides. Les valeurs %(value)r sont invalides." + +#: conf/global_settings.py:39 +msgid "Arabic" +msgstr "Arabe" + +#: conf/global_settings.py:40 +msgid "Bengali" +msgstr "Indien" + +#: conf/global_settings.py:41 +msgid "Catalan" +msgstr "Catalan" + +#: conf/global_settings.py:42 +msgid "Czech" +msgstr "Tchèque" + +#: conf/global_settings.py:43 +msgid "Welsh" +msgstr "Gallois" + +#: conf/global_settings.py:44 +msgid "Danish" +msgstr "Dannois" + +#: conf/global_settings.py:45 +msgid "German" +msgstr "Allemand" + +#: conf/global_settings.py:46 +msgid "Greek" +msgstr "Grec" + +#: conf/global_settings.py:47 +msgid "English" +msgstr "Anglais" + +#: conf/global_settings.py:48 +msgid "Spanish" +msgstr "Espagnol" + +#: conf/global_settings.py:49 +msgid "Argentinean Spanish" +msgstr "Espagnol Argentin" + +#: conf/global_settings.py:50 +msgid "Finnish" +msgstr "Dannois" + +#: conf/global_settings.py:51 +msgid "French" +msgstr "Français" + +#: conf/global_settings.py:52 +msgid "Galician" +msgstr "Galicien" + +#: conf/global_settings.py:53 +msgid "Hungarian" +msgstr "Hongrois" + +#: conf/global_settings.py:54 +msgid "Hebrew" +msgstr "Israélien" + +#: conf/global_settings.py:55 +msgid "Icelandic" +msgstr "Islandais" + +#: conf/global_settings.py:56 +msgid "Italian" +msgstr "Italien" + +#: conf/global_settings.py:57 +msgid "Japanese" +msgstr "Japonais" + +#: conf/global_settings.py:58 +msgid "Kannada" +msgstr "Kannada" + +#: conf/global_settings.py:59 +msgid "Latvian" +msgstr "Letton" + +#: conf/global_settings.py:60 +msgid "Macedonian" +msgstr "Macédonien" + +#: conf/global_settings.py:61 +msgid "Dutch" +msgstr "Néerlandais" + +#: conf/global_settings.py:62 +msgid "Norwegian" +msgstr "Norvégien" + +#: conf/global_settings.py:63 +msgid "Polish" +msgstr "Polonais" + +#: conf/global_settings.py:64 +msgid "Brazilian" +msgstr "Brésilien" + +#: conf/global_settings.py:65 +msgid "Romanian" +msgstr "Roumain" + +#: conf/global_settings.py:66 +msgid "Russian" +msgstr "Russe" + +#: conf/global_settings.py:67 +msgid "Slovak" +msgstr "Slovaque" + +#: conf/global_settings.py:68 +msgid "Slovenian" +msgstr "Slovaque" + +#: conf/global_settings.py:69 +msgid "Serbian" +msgstr "Serbe" + +#: conf/global_settings.py:70 +msgid "Swedish" +msgstr "Suédois" + +#: conf/global_settings.py:71 +msgid "Tamil" +msgstr "Tamoul" + +#: conf/global_settings.py:72 +msgid "Telugu" +msgstr "Télougou" + +#: conf/global_settings.py:73 +msgid "Turkish" +msgstr "Turc" + +#: conf/global_settings.py:74 +msgid "Ukrainian" +msgstr "Ukrainien" + +#: conf/global_settings.py:75 +msgid "Simplified Chinese" +msgstr "Chinois simplifié" + +#: conf/global_settings.py:76 +msgid "Traditional Chinese" +msgstr "Chinois traditionnel" + +#: core/validators.py:64 +msgid "This value must contain only letters, numbers and underscores." +msgstr "" +"Ce champ ne doit contenir que des lettres, des nombres et des tirets bas " +"('_')." + +#: core/validators.py:68 +msgid "" +"This value must contain only letters, numbers, underscores, dashes or " +"slashes." +msgstr "" +"Ce champ ne doit contenir que des lettres, des nombres, des tirets bas ('_') " +"et des '/'." + +#: core/validators.py:72 +msgid "This value must contain only letters, numbers, underscores or hyphens." +msgstr "" +"Ce champ ne doit contenir que des lettres, des nombres, des tirets bas ('_') " +"et des '-'." + +#: core/validators.py:76 +msgid "Uppercase letters are not allowed here." +msgstr "Les lettres majuscules ne sont pas autorisées ici." + +#: core/validators.py:80 +msgid "Lowercase letters are not allowed here." +msgstr "Les lettres minuscules ne sont pas autorisées ici." + +#: core/validators.py:87 +msgid "Enter only digits separated by commas." +msgstr "Saisissez uniquement des chiffres séparés par des virgules." + +#: core/validators.py:99 +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:103 +msgid "Please enter a valid IP address." +msgstr "Entrez une adresse IP valide." + +#: core/validators.py:107 +msgid "Empty values are not allowed here." +msgstr "Vous ne pouvez pas laisser ce champ vide." + +#: core/validators.py:111 +msgid "Non-numeric characters aren't allowed here." +msgstr "Les caractères non numériques ne sont pas autorisés ici." + +#: core/validators.py:115 +msgid "This value can't be comprised solely of digits." +msgstr "Cette valeur ne peut pas être composé uniquement de chiffres." + +#: core/validators.py:120 newforms/fields.py:126 +msgid "Enter a whole number." +msgstr "Entrez un nombre entier." + +#: core/validators.py:124 +msgid "Only alphabetical characters are allowed here." +msgstr "Seules les lettres de l'alphabet sont autorisées ici." + +#: core/validators.py:139 +msgid "Year must be 1900 or later." +msgstr "L'année doit être supérieure à 1900." + +#: core/validators.py:143 +#, fuzzy, python-format +msgid "Invalid date: %s" +msgstr "URL invalide : %s" + +#: core/validators.py:153 +msgid "Enter a valid time in HH:MM format." +msgstr "Entrez une heure valide au format HH:MM." + +#: core/validators.py:162 newforms/fields.py:269 +msgid "Enter a valid e-mail address." +msgstr "Entrez une adresse de courriel valide." + +#: core/validators.py:178 +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +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:185 +#, 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:189 +#, 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 XXX-XXX-XXXX. \"%s\" est " +"incorrect." + +#: core/validators.py:197 +#, 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:201 +msgid "A valid URL is required." +msgstr "Une URL valide est requise." + +#: core/validators.py:215 +#, python-format +msgid "" +"Valid HTML is required. Specific errors are:\n" +"%s" +msgstr "" +"Du HTML valide est requis. Les erreurs sont les suivantes :\n" +"%s" + +#: core/validators.py:222 +#, python-format +msgid "Badly formed XML: %s" +msgstr "XML mal formé : %s" + +#: core/validators.py:239 +#, python-format +msgid "Invalid URL: %s" +msgstr "URL invalide : %s" + +#: core/validators.py:244 core/validators.py:246 +#, python-format +msgid "The URL %s is a broken link." +msgstr "L'URL %s est un lien cassé." + +#: core/validators.py:252 +msgid "Enter a valid U.S. state abbreviation." +msgstr "Entrez une abréviation d'état américain valide." + +#: core/validators.py:266 +#, 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:273 +#, python-format +msgid "This field must match the '%s' field." +msgstr "Ce champ doit correspondre au champ '%s'." + +#: core/validators.py:292 +msgid "Please enter something for at least one field." +msgstr "Saisissez au moins une valeur dans un des champs s'il vous plaît." + +#: core/validators.py:301 core/validators.py:312 +msgid "Please enter both fields or leave them both empty." +msgstr "" +"Renseignez chacun des champs ou laissez les deux vides s'il vous plaît." + +#: core/validators.py:320 +#, 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:333 +#, 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:352 +msgid "Duplicate values are not allowed." +msgstr "Des valeurs identiques ne sont pas autorisées." + +#: core/validators.py:367 +#, fuzzy, python-format +msgid "This value must be between %(lower)s and %(upper)s." +msgstr "Cette valeur doit être entre %(lower)s et %(upper)s." + +#: core/validators.py:369 +#, fuzzy, python-format +msgid "This value must be at least %s." +msgstr "Cette valeur doit être au moins %s." + +#: core/validators.py:371 +#, fuzzy, python-format +msgid "This value must be no more than %s." +msgstr "Cette valeur ne doit pas dépasser %s." + +#: core/validators.py:407 +#, python-format +msgid "This value must be a power of %s." +msgstr "Cette valeur doit être une puissance de %s." + +#: core/validators.py:418 +msgid "Please enter a valid decimal number." +msgstr "Saisissez un nombre décimal valide s'il vous plaît." + +#: core/validators.py:422 +#, python-format +msgid "Please enter a valid decimal number with at most %s total digit." +msgid_plural "" +"Please enter a valid decimal number with at most %s total digits." +msgstr[0] "" +"Saisissez un nombre décimal valide avec au plus %s chiffre s'il vous plaît." +msgstr[1] "" +"Saisissez un nombre décimal valide avec au plus %s chiffres s'il vous plaît." + +#: core/validators.py:425 +#, python-format +msgid "" +"Please enter a valid decimal number with a whole part of at most %s digit." +msgid_plural "" +"Please enter a valid decimal number with a whole part of at most %s digits." +msgstr[0] "Veuillez saisir un nombre décimal valide avec au plus %s chiffre." +msgstr[1] "Veuillez saisir un nombre décimal valide avec au plus %s chiffres." + +#: core/validators.py:428 +#, python-format +msgid "Please enter a valid decimal number with at most %s decimal place." +msgid_plural "" +"Please enter a valid decimal number with at most %s decimal places." +msgstr[0] "Veuillez saisir un nombre décimal valide avec au plus %s décimale." +msgstr[1] "Veuillez saisir un nombre décimal valide avec au plus %s décimales." + +#: core/validators.py:438 +#, 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:439 +#, 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:456 +msgid "The format for this field is wrong." +msgstr "Le format de ce champ est mauvais." + +#: core/validators.py:471 +msgid "This field is invalid." +msgstr "Ce champ est invalide." + +#: core/validators.py:507 +#, python-format +msgid "Could not retrieve anything from %s." +msgstr "Impossible de récupérer quoi que ce soit depuis %s." + +#: core/validators.py:510 +#, python-format +msgid "" +"The URL %(url)s returned the invalid Content-Type header '%(contenttype)s'." +msgstr "" +"L'entête Content-Type '%(contenttype)s', renvoyée par l'url %(url)s n'est " +"pas valide." + +#: core/validators.py:543 +#, python-format +msgid "" +"Please close the unclosed %(tag)s tag from line %(line)s. (Line starts with " +"\"%(start)s\".)" +msgstr "" +"Veuillez fermer le tag %(tag)s de la ligne %(line)s. (La ligne débutant par " +"\"%(start)s\".)" + +#: core/validators.py:547 +#, python-format +msgid "" +"Some text starting on line %(line)s is not allowed in that context. (Line " +"starts with \"%(start)s\".)" +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:552 +#, python-format +msgid "" +"\"%(attr)s\" on line %(line)s is an invalid attribute. (Line starts with \"%" +"(start)s\".)" +msgstr "" +"\"%(attr)s\" ligne %(line)s n'est pas un attribut valide. (Ligne débutant " +"par \"%(start)s\".)" + +#: core/validators.py:557 +#, python-format +msgid "" +"\"<%(tag)s>\" on line %(line)s is an invalid tag. (Line starts with \"%" +"(start)s\".)" +msgstr "" +"\"<%(tag)s>\" ligne %(line)s n'est pas un tag valide. (Ligne débutant par \"%" +"(start)s\".)" + +#: core/validators.py:561 +#, python-format +msgid "" +"A tag on line %(line)s is missing one or more required attributes. (Line " +"starts with \"%(start)s\".)" +msgstr "" +"Un tag, ou un ou plusieurs attributs, de la ligne %(line)s est manquant. " +"(Ligne débutant par \"%(start)s\".)" + +#: core/validators.py:566 +#, python-format +msgid "" +"The \"%(attr)s\" attribute on line %(line)s has an invalid value. (Line " +"starts with \"%(start)s\".)" +msgstr "" +"La valeur de l'attribut \"%(attr)s\" de la ligne %(line)s n'est pas valide. " +"(Ligne débutant par \"%(start)s\".)" + +#: views/generic/create_update.py:43 +#, python-format +msgid "The %(verbose_name)s was created successfully." +msgstr "L'objet %(verbose_name)s a été créé avec succès." + +#: views/generic/create_update.py:117 +#, python-format +msgid "The %(verbose_name)s was updated successfully." +msgstr "L'objet %(verbose_name)s a été mis à jour avec succès." + +#: views/generic/create_update.py:184 +#, python-format +msgid "The %(verbose_name)s was deleted." +msgstr "L'objet %(verbose_name)s a été supprimé." + +#: newforms/models.py:164 newforms/fields.py:360 +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" +"Sélectionnez un choix valide. Ce choix ne fait pas partie de ceux " +"disponibles." + +#: newforms/models.py:181 newforms/fields.py:378 newforms/fields.py:454 +msgid "Enter a list of values." +msgstr "Entrez une liste de valeur." + +#: newforms/models.py:187 newforms/fields.py:387 +#, python-format +msgid "Select a valid choice. %s is not one of the available choices." +msgstr "Sélectionnez un choix valide ; %s n'en fait pas partie." + +#: newforms/fields.py:101 newforms/fields.py:254 +#, python-format +msgid "Ensure this value has at most %d characters." +msgstr "Assurez-vous que cette valeur fait moins de %d caractère." + +#: newforms/fields.py:103 newforms/fields.py:256 +#, python-format +msgid "Ensure this value has at least %d characters." +msgstr "Assurez-vous que cette valeur fait au moins %d caractère." + +#: newforms/fields.py:128 +#, python-format +msgid "Ensure this value is less than or equal to %s." +msgstr "Assurez-vous que cette valeur soit plus petite ou égale à %s." + +#: newforms/fields.py:130 +#, python-format +msgid "Ensure this value is greater than or equal to %s." +msgstr "Assurez-vous que cette valeur soit plus grande ou égale à %s." + +#: newforms/fields.py:163 +msgid "Enter a valid date." +msgstr "Entrez une date valide." + +#: newforms/fields.py:190 +msgid "Enter a valid time." +msgstr "Entrez une heure valide." + +#: newforms/fields.py:226 +msgid "Enter a valid date/time." +msgstr "Entrez une date et une heure valides." + +#: newforms/fields.py:240 +msgid "Enter a valid value." +msgstr "Entrez une valeur valide." + +#: newforms/fields.py:287 newforms/fields.py:309 +msgid "Enter a valid URL." +msgstr "Entrez une URL valide." + +#: newforms/fields.py:311 +msgid "This URL appears to be a broken link." +msgstr "L'URL est un lien cassé." + +#: contrib/humanize/templatetags/humanize.py:16 +msgid "th" +msgstr "e" + +#: contrib/humanize/templatetags/humanize.py:16 +msgid "st" +msgstr "er" + +#: contrib/humanize/templatetags/humanize.py:16 +msgid "nd" +msgstr "d" + +#: contrib/humanize/templatetags/humanize.py:16 +msgid "rd" +msgstr "e" + +#: contrib/humanize/templatetags/humanize.py:48 +#, python-format +msgid "%(value).1f million" +msgid_plural "%(value).1f million" +msgstr[0] "%(value).1f million" +msgstr[1] "%(value).1f millions" + +#: contrib/humanize/templatetags/humanize.py:51 +#, python-format +msgid "%(value).1f billion" +msgid_plural "%(value).1f billion" +msgstr[0] "%(value).1f milliard" +msgstr[1] "%(value).1f milliards" + +#: contrib/humanize/templatetags/humanize.py:54 +#, python-format +msgid "%(value).1f trillion" +msgid_plural "%(value).1f trillion" +msgstr[0] "%(value).1f billion" +msgstr[1] "%(value).1f billions" + +#: contrib/humanize/templatetags/humanize.py:69 +msgid "one" +msgstr "un" + +#: contrib/humanize/templatetags/humanize.py:69 +msgid "two" +msgstr "deux" + +#: contrib/humanize/templatetags/humanize.py:69 +msgid "three" +msgstr "trois" + +#: contrib/humanize/templatetags/humanize.py:69 +msgid "four" +msgstr "quatre" + +#: contrib/humanize/templatetags/humanize.py:69 +msgid "five" +msgstr "cinq" + +#: contrib/humanize/templatetags/humanize.py:69 +msgid "six" +msgstr "six" + +#: contrib/humanize/templatetags/humanize.py:69 +msgid "seven" +msgstr "sept" + +#: contrib/humanize/templatetags/humanize.py:69 +msgid "eight" +msgstr "huit" + +#: contrib/humanize/templatetags/humanize.py:69 +msgid "nine" +msgstr "neuf" + +#: contrib/redirects/models.py:7 +msgid "redirect from" +msgstr "redirigé depuis" + +#: contrib/redirects/models.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.py:9 +msgid "redirect to" +msgstr "redirigé vers" + +#: contrib/redirects/models.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.py:13 +msgid "redirect" +msgstr "redirige" + +#: contrib/redirects/models.py:14 +msgid "redirects" +msgstr "redirige" + #: contrib/comments/models.py:67 contrib/comments/models.py:166 msgid "object ID" msgstr "ID de l'objet" @@ -72,7 +833,7 @@ msgstr "date et heure soumises" msgid "is public" msgstr "est public" -#: contrib/comments/models.py:85 contrib/admin/views/doc.py:289 +#: contrib/comments/models.py:85 contrib/admin/views/doc.py:304 msgid "IP address" msgstr "adresse IP" @@ -209,13 +970,13 @@ msgstr "ID de commentaire invalide" msgid "No voting for yourself" msgstr "Impossible de voter pour soi-même" -#: contrib/comments/views/comments.py:28 +#: contrib/comments/views/comments.py:27 msgid "" "This rating is required because you've entered at least one other rating." msgstr "" "Ce votre est nécéssaire parceque vous avez saisi au moins un autre vote." -#: contrib/comments/views/comments.py:112 +#: contrib/comments/views/comments.py:111 #, python-format msgid "" "This comment was posted by a user who has posted fewer than %(count)s " @@ -238,7 +999,7 @@ msgstr[1] "" "\n" "%(text)s" -#: contrib/comments/views/comments.py:117 +#: contrib/comments/views/comments.py:116 #, python-format msgid "" "This comment was posted by a sketchy user:\n" @@ -249,24 +1010,24 @@ msgstr "" "\n" "%(text)s" -#: contrib/comments/views/comments.py:189 +#: contrib/comments/views/comments.py:188 #: contrib/comments/views/comments.py:280 msgid "Only POSTs are allowed" msgstr "Seuls les POSTs sont autorisés" -#: contrib/comments/views/comments.py:193 +#: contrib/comments/views/comments.py:192 #: contrib/comments/views/comments.py:284 msgid "One or more of the required fields wasn't submitted" msgstr "Un ou plusieurs champs requis n'ont pas été remplis" -#: contrib/comments/views/comments.py:197 +#: contrib/comments/views/comments.py:196 #: contrib/comments/views/comments.py:286 msgid "Somebody tampered with the comment form (security violation)" msgstr "" "Quelqu'un a trafiqué le formulaire de commentaire (violation des règles de " "sécurité)" -#: contrib/comments/views/comments.py:207 +#: contrib/comments/views/comments.py:206 #: contrib/comments/views/comments.py:292 msgid "" "The comment form had an invalid 'target' parameter -- the object ID was " @@ -282,6 +1043,20 @@ msgstr "" "Le formulaire de commentaire ne proposait ni les options de prévisualisation " "ni d'envoi" +#: contrib/comments/templates/comments/freeform.html:4 +msgid "Your name:" +msgstr "Votre nom :" + +#: contrib/comments/templates/comments/freeform.html:5 +#: contrib/comments/templates/comments/form.html:28 +msgid "Comment:" +msgstr "Commentaire :" + +#: contrib/comments/templates/comments/freeform.html:10 +#: contrib/comments/templates/comments/form.html:35 +msgid "Preview comment" +msgstr "Prévisualisation du commentaire" + #: contrib/comments/templates/comments/form.html:6 #: contrib/comments/templates/comments/form.html:8 #: contrib/admin/templates/admin/login.html:17 @@ -289,20 +1064,12 @@ msgid "Username:" msgstr "Nom d'utilisateur" #: contrib/comments/templates/comments/form.html:6 -#: contrib/admin/templates/admin/login.html:20 -msgid "Password:" -msgstr "Mot de passe" - -#: contrib/comments/templates/comments/form.html:6 -msgid "Forgotten your password?" -msgstr "Mot de passe oublié?" - -#: contrib/comments/templates/comments/form.html:8 #: contrib/admin/templates/admin/object_history.html:3 #: contrib/admin/templates/admin/change_list.html:5 -#: contrib/admin/templates/admin/base.html:23 -#: contrib/admin/templates/admin/delete_confirmation.html:3 #: contrib/admin/templates/admin/change_form.html:10 +#: contrib/admin/templates/admin/base.html:25 +#: contrib/admin/templates/admin/delete_confirmation.html:3 +#: contrib/admin/templates/admin/auth/user/change_password.html:9 #: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/admin_doc/bookmarklets.html:4 @@ -318,6 +1085,15 @@ msgstr "Mot de passe oublié?" msgid "Log out" msgstr "Déconnexion" +#: contrib/comments/templates/comments/form.html:8 +#: contrib/admin/templates/admin/login.html:20 +msgid "Password:" +msgstr "Mot de passe" + +#: contrib/comments/templates/comments/form.html:8 +msgid "Forgotten your password?" +msgstr "Mot de passe oublié?" + #: contrib/comments/templates/comments/form.html:12 msgid "Ratings" msgstr "Votes" @@ -336,19 +1112,21 @@ msgstr "Optionel" msgid "Post a photo" msgstr "Poster une photo" -#: contrib/comments/templates/comments/form.html:27 -#: contrib/comments/templates/comments/freeform.html:5 -msgid "Comment:" -msgstr "Commentaire :" +#: contrib/sites/models.py:10 +msgid "domain name" +msgstr "nom de domaine" -#: contrib/comments/templates/comments/form.html:32 -#: contrib/comments/templates/comments/freeform.html:9 -msgid "Preview comment" -msgstr "Prévisualisation du commentaire" +#: contrib/sites/models.py:11 +msgid "display name" +msgstr "nom à afficher" -#: contrib/comments/templates/comments/freeform.html:4 -msgid "Your name:" -msgstr "Votre nom :" +#: contrib/sites/models.py:15 +msgid "site" +msgstr "site" + +#: contrib/sites/models.py:16 +msgid "sites" +msgstr "sites" #: contrib/admin/filterspecs.py:40 #, python-format @@ -360,7 +1138,7 @@ msgstr "" "