From 99f8cd48238290bbca057b3cc7973b6de4977370 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Sun, 21 Feb 2010 23:42:03 +0000 Subject: [PATCH] =?UTF-8?q?Fixed=20#12874=20-=20Updated=20French=20locale.?= =?UTF-8?q?=20Thanks,=20St=C3=A9phane=20Raimbault.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.djangoproject.com/svn/django/trunk@12469 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/conf/locale/fr/LC_MESSAGES/django.mo | Bin 68262 -> 78010 bytes django/conf/locale/fr/LC_MESSAGES/django.po | 1803 +++++++++++++------ 2 files changed, 1246 insertions(+), 557 deletions(-) diff --git a/django/conf/locale/fr/LC_MESSAGES/django.mo b/django/conf/locale/fr/LC_MESSAGES/django.mo index f1994164eea574739929793a3b228adbd86f5c08..b9fc8ec807164cf17c3b8f7db6e8dd77c8820ad4 100644 GIT binary patch literal 78010 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�gm;M9*&4N;YcPKbbqW6Lje1A;2e>`< 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 F{|8}ZS{eWV delta 23546 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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 464c17dc0f..1367d21c11 100644 --- a/django/conf/locale/fr/LC_MESSAGES/django.po +++ b/django/conf/locale/fr/LC_MESSAGES/django.po @@ -2,16 +2,16 @@ # This file is distributed under the same license as the Django package. # Copyright (C) 2008 Django Software Foundation and individual contributors. # -# Stéphane Raimbault , 2009 +# Stéphane Raimbault , 2009-2010. # Claude Paroz , 2009 # msgid "" msgstr "" "Project-Id-Version: Django\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-08-06 15:05+0200\n" -"PO-Revision-Date: 2009-08-06 15:09+0200\n" -"Last-Translator: Claude Paroz \n" +"POT-Creation-Date: 2010-02-18 11:44+0100\n" +"PO-Revision-Date: 2010-02-18 22:12+0100\n" +"Last-Translator: Stéphane Raimbault \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,202 +23,218 @@ msgid "Arabic" msgstr "Arabe" #: conf/global_settings.py:45 -msgid "Bengali" -msgstr "Bengalî" - -#: conf/global_settings.py:46 msgid "Bulgarian" msgstr "Bulgare" +#: conf/global_settings.py:46 +msgid "Bengali" +msgstr "Bengalî" + #: conf/global_settings.py:47 +msgid "Bosnian" +msgstr "Bosniaque" + +#: conf/global_settings.py:48 msgid "Catalan" msgstr "Catalan" -#: conf/global_settings.py:48 +#: conf/global_settings.py:49 msgid "Czech" msgstr "Tchèque" -#: conf/global_settings.py:49 +#: conf/global_settings.py:50 msgid "Welsh" msgstr "Gallois" -#: conf/global_settings.py:50 +#: conf/global_settings.py:51 msgid "Danish" msgstr "Dannois" -#: conf/global_settings.py:51 +#: conf/global_settings.py:52 msgid "German" msgstr "Allemand" -#: conf/global_settings.py:52 +#: conf/global_settings.py:53 msgid "Greek" msgstr "Grec" -#: conf/global_settings.py:53 +#: conf/global_settings.py:54 msgid "English" msgstr "Anglais" -#: conf/global_settings.py:54 +#: conf/global_settings.py:55 msgid "Spanish" msgstr "Espagnol" -#: conf/global_settings.py:55 -msgid "Estonian" -msgstr "Estonien" - #: conf/global_settings.py:56 msgid "Argentinean Spanish" msgstr "Espagnol argentin" #: conf/global_settings.py:57 +msgid "Estonian" +msgstr "Estonien" + +#: conf/global_settings.py:58 msgid "Basque" msgstr "Basque" -#: conf/global_settings.py:58 +#: conf/global_settings.py:59 msgid "Persian" msgstr "Perse" -#: conf/global_settings.py:59 +#: conf/global_settings.py:60 msgid "Finnish" msgstr "Finlandais" -#: conf/global_settings.py:60 +#: conf/global_settings.py:61 msgid "French" msgstr "Français" -#: conf/global_settings.py:61 +#: conf/global_settings.py:62 +msgid "Frisian" +msgstr "Frise" + +#: conf/global_settings.py:63 msgid "Irish" msgstr "Irlandais" -#: conf/global_settings.py:62 +#: conf/global_settings.py:64 msgid "Galician" msgstr "Galicien" -#: conf/global_settings.py:63 -msgid "Hungarian" -msgstr "Hongrois" - -#: conf/global_settings.py:64 +#: conf/global_settings.py:65 msgid "Hebrew" msgstr "Hébreu" -#: conf/global_settings.py:65 +#: conf/global_settings.py:66 msgid "Hindi" msgstr "Hindi" -#: conf/global_settings.py:66 +#: conf/global_settings.py:67 msgid "Croatian" msgstr "Croate" -#: conf/global_settings.py:67 +#: conf/global_settings.py:68 +msgid "Hungarian" +msgstr "Hongrois" + +#: conf/global_settings.py:69 msgid "Icelandic" msgstr "Islandais" -#: conf/global_settings.py:68 +#: conf/global_settings.py:70 msgid "Italian" msgstr "Italien" -#: conf/global_settings.py:69 +#: conf/global_settings.py:71 msgid "Japanese" msgstr "Japonais" -#: conf/global_settings.py:70 +#: conf/global_settings.py:72 msgid "Georgian" msgstr "Géorgien" -#: conf/global_settings.py:71 -msgid "Korean" -msgstr "Coréen" - -#: conf/global_settings.py:72 +#: conf/global_settings.py:73 msgid "Khmer" msgstr "Khmer" -#: conf/global_settings.py:73 +#: conf/global_settings.py:74 msgid "Kannada" msgstr "Kannada" -#: conf/global_settings.py:74 -msgid "Latvian" -msgstr "Letton" - #: conf/global_settings.py:75 +msgid "Korean" +msgstr "Coréen" + +#: conf/global_settings.py:76 msgid "Lithuanian" msgstr "Lituanien" -#: conf/global_settings.py:76 +#: conf/global_settings.py:77 +msgid "Latvian" +msgstr "Letton" + +#: conf/global_settings.py:78 msgid "Macedonian" msgstr "Macédonien" -#: conf/global_settings.py:77 +#: conf/global_settings.py:79 msgid "Dutch" msgstr "Hollandais" -#: conf/global_settings.py:78 +#: conf/global_settings.py:80 msgid "Norwegian" msgstr "Norvégien" -#: conf/global_settings.py:79 +#: conf/global_settings.py:81 msgid "Polish" msgstr "Polonais" -#: conf/global_settings.py:80 +#: conf/global_settings.py:82 msgid "Portuguese" msgstr "Portugais" -#: conf/global_settings.py:81 +#: conf/global_settings.py:83 msgid "Brazilian Portuguese" msgstr "Portugais brésilien" -#: conf/global_settings.py:82 +#: conf/global_settings.py:84 msgid "Romanian" msgstr "Roumain" -#: conf/global_settings.py:83 +#: conf/global_settings.py:85 msgid "Russian" msgstr "Russe" -#: conf/global_settings.py:84 +#: conf/global_settings.py:86 msgid "Slovak" msgstr "Slovaque" -#: conf/global_settings.py:85 +#: conf/global_settings.py:87 msgid "Slovenian" msgstr "Slovène" -#: conf/global_settings.py:86 +#: conf/global_settings.py:88 +msgid "Albanian" +msgstr "Albanais" + +#: conf/global_settings.py:89 msgid "Serbian" msgstr "Serbe" -#: conf/global_settings.py:87 +#: conf/global_settings.py:90 +msgid "Serbian Latin" +msgstr "Serbe latin" + +#: conf/global_settings.py:91 msgid "Swedish" msgstr "Suédois" -#: conf/global_settings.py:88 +#: conf/global_settings.py:92 msgid "Tamil" msgstr "Tamoul" -#: conf/global_settings.py:89 +#: conf/global_settings.py:93 msgid "Telugu" msgstr "Télougou" -#: conf/global_settings.py:90 +#: conf/global_settings.py:94 msgid "Thai" msgstr "Thaï" -#: conf/global_settings.py:91 +#: conf/global_settings.py:95 msgid "Turkish" msgstr "Turc" -#: conf/global_settings.py:92 +#: conf/global_settings.py:96 msgid "Ukrainian" msgstr "Ukrainien" -#: conf/global_settings.py:93 +#: conf/global_settings.py:97 msgid "Simplified Chinese" msgstr "Chinois simplifié" -#: conf/global_settings.py:94 +#: conf/global_settings.py:98 msgid "Traditional Chinese" msgstr "Chinois traditionnel" @@ -227,7 +243,7 @@ msgstr "Chinois traditionnel" msgid "Successfully deleted %(count)d %(items)s." msgstr "%(count)d %(items)s supprimés avec succès." -#: contrib/admin/actions.py:67 contrib/admin/options.py:1027 +#: contrib/admin/actions.py:67 contrib/admin/options.py:1096 msgid "Are you sure?" msgstr "Êtes-vous sûr ?" @@ -270,19 +286,19 @@ msgstr "Ce mois-ci" msgid "This year" msgstr "Cette année" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:435 msgid "Yes" msgstr "Oui" -#: contrib/admin/filterspecs.py:147 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:147 forms/widgets.py:435 msgid "No" msgstr "Non" -#: contrib/admin/filterspecs.py:154 forms/widgets.py:434 +#: contrib/admin/filterspecs.py:154 forms/widgets.py:435 msgid "Unknown" msgstr "Inconnu" -#: contrib/admin/helpers.py:14 +#: contrib/admin/helpers.py:19 msgid "Action:" msgstr "Action :" @@ -314,61 +330,60 @@ msgstr "entrée d'historique" msgid "log entries" msgstr "entrées d'historique" -#: contrib/admin/options.py:133 contrib/admin/options.py:147 +#: contrib/admin/options.py:139 contrib/admin/options.py:154 msgid "None" msgstr "Aucun(e)" -#: contrib/admin/options.py:519 +#: contrib/admin/options.py:558 #, python-format msgid "Changed %s." msgstr "Modifié %s." -#: contrib/admin/options.py:519 contrib/admin/options.py:529 -#: contrib/comments/templates/comments/preview.html:16 forms/models.py:388 -#: forms/models.py:600 +#: contrib/admin/options.py:558 contrib/admin/options.py:568 +#: contrib/comments/templates/comments/preview.html:16 db/models/base.py:797 +#: forms/models.py:544 msgid "and" msgstr "et" -#: contrib/admin/options.py:524 +#: contrib/admin/options.py:563 #, python-format msgid "Added %(name)s \"%(object)s\"." msgstr "%(name)s « %(object)s » ajouté." -#: contrib/admin/options.py:528 +#: contrib/admin/options.py:567 #, python-format msgid "Changed %(list)s for %(name)s \"%(object)s\"." msgstr "%(list)s modifié pour %(name)s « %(object)s »." -#: contrib/admin/options.py:533 +#: contrib/admin/options.py:572 #, python-format msgid "Deleted %(name)s \"%(object)s\"." msgstr "%(name)s « %(object)s » supprimé." -#: contrib/admin/options.py:537 +#: contrib/admin/options.py:576 msgid "No fields changed." msgstr "Aucun champ modifié." -#: contrib/admin/options.py:599 contrib/auth/admin.py:67 +#: contrib/admin/options.py:642 #, python-format msgid "The %(name)s \"%(obj)s\" was added successfully." msgstr "L'objet %(name)s « %(obj)s » a été ajouté avec succès." -#: contrib/admin/options.py:603 contrib/admin/options.py:636 -#: contrib/auth/admin.py:75 +#: contrib/admin/options.py:646 contrib/admin/options.py:679 msgid "You may edit it again below." msgstr "Vous pouvez continuer l'édition ci-dessous." -#: contrib/admin/options.py:613 contrib/admin/options.py:646 +#: contrib/admin/options.py:656 contrib/admin/options.py:689 #, python-format msgid "You may add another %s below." msgstr "Vous pouvez ajouter un autre %s ci-dessous." -#: contrib/admin/options.py:634 +#: contrib/admin/options.py:677 #, python-format msgid "The %(name)s \"%(obj)s\" was changed successfully." msgstr "L'objet %(name)s « %(obj)s » a été modifié avec succès." -#: contrib/admin/options.py:642 +#: contrib/admin/options.py:685 #, python-format msgid "" "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." @@ -376,46 +391,58 @@ msgstr "" "L'objet %(name)s « %(obj)s » a été ajouté avec succès. Vous pouvez continuer " "l'édition ci-dessous." +#: contrib/admin/options.py:738 +msgid "" +"Items must be selected in order to perform actions on them. No items have " +"been changed." +msgstr "" +"Des éléments doivent être sélectionnés afin d'appliquer les actions. Aucun " +"élément n'a été modifié." + +#: contrib/admin/options.py:756 +msgid "No action selected." +msgstr "Aucune action sélectionnée." + # Titre -#: contrib/admin/options.py:773 +#: contrib/admin/options.py:836 #, python-format msgid "Add %s" msgstr "Ajout %s" -#: contrib/admin/options.py:804 contrib/admin/options.py:1005 +#: contrib/admin/options.py:862 contrib/admin/options.py:1074 #, python-format msgid "%(name)s object with primary key %(key)r does not exist." msgstr "L'objet %(name)s avec la clef primaire %(key)r n'existe pas." # Titre -#: contrib/admin/options.py:861 +#: contrib/admin/options.py:927 #, python-format msgid "Change %s" msgstr "Modification de %s" -#: contrib/admin/options.py:905 +#: contrib/admin/options.py:972 msgid "Database error" msgstr "Erreur de base de données" -#: contrib/admin/options.py:941 +#: contrib/admin/options.py:1008 #, python-format msgid "%(count)s %(name)s was changed successfully." msgid_plural "%(count)s %(name)s were changed successfully." msgstr[0] "%(count)s objet %(name)s a été modifié avec succès." msgstr[1] "%(count)s objets %(name)s ont été modifiés avec succès." -#: contrib/admin/options.py:1020 +#: contrib/admin/options.py:1089 #, python-format msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgstr "L'objet %(name)s « %(obj)s » a été supprimé avec succès." -#: contrib/admin/options.py:1057 +#: contrib/admin/options.py:1126 #, python-format msgid "Change history: %s" msgstr "Historique des changements : %s" -#: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14 -#: contrib/auth/forms.py:80 +#: contrib/admin/sites.py:22 contrib/admin/views/decorators.py:14 +#: contrib/auth/forms.py:81 msgid "" "Please enter a correct username and password. Note that both fields are case-" "sensitive." @@ -424,11 +451,11 @@ msgstr "" "chacun de ces champs est sensible à la casse (différenciation des majuscules/" "minuscules)." -#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40 +#: contrib/admin/sites.py:306 contrib/admin/views/decorators.py:40 msgid "Please log in again, because your session has expired." msgstr "Reconnectez-vous car votre session a expiré." -#: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47 +#: contrib/admin/sites.py:313 contrib/admin/views/decorators.py:47 msgid "" "Looks like your browser isn't configured to accept cookies. Please enable " "cookies, reload this page, and try again." @@ -436,64 +463,64 @@ msgstr "" "Il semblerait que votre navigateur n'accepte pas les cookies. Activez-les, " "rechargez cette page puis essayez à nouveau." -#: contrib/admin/sites.py:308 contrib/admin/sites.py:314 +#: contrib/admin/sites.py:329 contrib/admin/sites.py:335 #: contrib/admin/views/decorators.py:66 msgid "Usernames cannot contain the '@' character." msgstr "Les noms d'utilisateur ne peuvent contenir le caractère « @ »." -#: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62 +#: contrib/admin/sites.py:332 contrib/admin/views/decorators.py:62 #, python-format msgid "Your e-mail address is not your username. Try '%s' instead." msgstr "" "Votre adresse électronique n'est pas votre nom d'utilisateur. Essayez « %s » " "à la place." -#: contrib/admin/sites.py:367 +#: contrib/admin/sites.py:388 msgid "Site administration" msgstr "Administration du site" -#: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26 +#: contrib/admin/sites.py:402 contrib/admin/templates/admin/login.html:26 #: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/views/decorators.py:20 msgid "Log in" msgstr "Connexion" -#: contrib/admin/sites.py:426 +#: contrib/admin/sites.py:447 #, python-format msgid "%s administration" msgstr "Administration %s" -#: contrib/admin/util.py:168 +#: contrib/admin/util.py:170 #, python-format msgid "One or more %(fieldname)s in %(name)s: %(obj)s" msgstr "Un ou plusieurs %(fieldname)s dans %(name)s : %(obj)s" -#: contrib/admin/util.py:173 +#: contrib/admin/util.py:175 #, python-format msgid "One or more %(fieldname)s in %(name)s:" msgstr "Un ou plusieurs %(fieldname)s dans %(name)s :" -#: contrib/admin/widgets.py:71 +#: contrib/admin/widgets.py:75 msgid "Date:" msgstr "Date :" -#: contrib/admin/widgets.py:71 +#: contrib/admin/widgets.py:75 msgid "Time:" msgstr "Heure :" -#: contrib/admin/widgets.py:95 +#: contrib/admin/widgets.py:99 msgid "Currently:" msgstr "Actuellement :" -#: contrib/admin/widgets.py:95 +#: contrib/admin/widgets.py:99 msgid "Change:" msgstr "Modification :" -#: contrib/admin/widgets.py:124 +#: contrib/admin/widgets.py:129 msgid "Lookup" msgstr "Recherche" -#: contrib/admin/widgets.py:236 +#: contrib/admin/widgets.py:241 msgid "Add Another" msgstr "Ajouter un autre" @@ -509,16 +536,16 @@ msgstr "Nous sommes désolés, mais la page demandée est introuvable." #: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/app_index.html:8 #: contrib/admin/templates/admin/base.html:54 -#: contrib/admin/templates/admin/change_form.html:17 -#: contrib/admin/templates/admin/change_list.html:25 +#: contrib/admin/templates/admin/change_form.html:18 +#: contrib/admin/templates/admin/change_list.html:39 #: contrib/admin/templates/admin/delete_confirmation.html:6 #: contrib/admin/templates/admin/delete_selected_confirmation.html:6 #: contrib/admin/templates/admin/invalid_setup.html:4 #: contrib/admin/templates/admin/object_history.html:6 -#: contrib/admin/templates/admin/auth/user/change_password.html:10 +#: contrib/admin/templates/admin/auth/user/change_password.html:11 #: contrib/admin/templates/registration/logged_out.html:4 #: contrib/admin/templates/registration/password_change_done.html:4 -#: contrib/admin/templates/registration/password_change_form.html:4 +#: contrib/admin/templates/registration/password_change_form.html:5 #: contrib/admin/templates/registration/password_reset_complete.html:4 #: contrib/admin/templates/registration/password_reset_confirm.html:4 #: contrib/admin/templates/registration/password_reset_done.html:4 @@ -556,6 +583,32 @@ msgstr "Exécuter l'action sélectionnée" msgid "Go" msgstr "Envoyer" +# http://code.djangoproject.com/ticket/12903 +#: contrib/admin/templates/admin/actions.html:7 +#, python-format +msgid "" +"0 of %(total_count)s %(module_name)s selected" +msgstr "0 parmi %(total_count)s « %(module_name)s » sélectionnés" + +# http://code.djangoproject.com/ticket/12903 +#: contrib/admin/templates/admin/actions.html:11 +#, python-format +msgid "All %(total_count)s %(module_name)s selected" +msgstr "La totalité des %(total_count)s « %(module_name)s » ont été sélectionnés" + +#: contrib/admin/templates/admin/actions.html:14 +msgid "Click here to select all objects across all pages" +msgstr "Cliquez ici pour sélectionner tous les objets sur l'ensemble des pages" + +#: contrib/admin/templates/admin/actions.html:14 +#, python-format +msgid "Select all %(total_count)s %(module_name)s" +msgstr "Sélectionner tous les %(total_count)s %(module_name)s" + +#: contrib/admin/templates/admin/actions.html:16 +msgid "Clear selection" +msgstr "Effacer la sélection" + #: contrib/admin/templates/admin/app_index.html:10 #: contrib/admin/templates/admin/index.html:19 #, python-format @@ -568,22 +621,22 @@ msgstr "Bienvenue," #: contrib/admin/templates/admin/base.html:32 #: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_form.html:4 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 msgid "Documentation" msgstr "Documentation" #: contrib/admin/templates/admin/base.html:40 -#: contrib/admin/templates/admin/auth/user/change_password.html:14 -#: contrib/admin/templates/admin/auth/user/change_password.html:47 +#: contrib/admin/templates/admin/auth/user/change_password.html:15 +#: contrib/admin/templates/admin/auth/user/change_password.html:48 #: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_form.html:4 msgid "Change password" msgstr "Modifier votre mot de passe" #: contrib/admin/templates/admin/base.html:47 #: contrib/admin/templates/registration/password_change_done.html:3 -#: contrib/admin/templates/registration/password_change_form.html:3 +#: contrib/admin/templates/registration/password_change_form.html:4 msgid "Log out" msgstr "Déconnexion" @@ -595,41 +648,42 @@ msgstr "Site d'administration de Django" msgid "Django administration" msgstr "Administration de Django" -#: contrib/admin/templates/admin/change_form.html:20 +#: contrib/admin/templates/admin/change_form.html:21 #: contrib/admin/templates/admin/index.html:29 msgid "Add" msgstr "Ajouter" -#: contrib/admin/templates/admin/change_form.html:27 +#: contrib/admin/templates/admin/change_form.html:28 #: contrib/admin/templates/admin/object_history.html:10 msgid "History" msgstr "Historique" -#: contrib/admin/templates/admin/change_form.html:28 -#: contrib/admin/templates/admin/edit_inline/stacked.html:13 -#: contrib/admin/templates/admin/edit_inline/tabular.html:27 +#: contrib/admin/templates/admin/change_form.html:29 +#: contrib/admin/templates/admin/edit_inline/stacked.html:9 +#: contrib/admin/templates/admin/edit_inline/tabular.html:28 msgid "View on site" msgstr "Voir sur le site" -#: contrib/admin/templates/admin/change_form.html:38 -#: contrib/admin/templates/admin/change_list.html:54 -#: contrib/admin/templates/admin/auth/user/change_password.html:23 +#: contrib/admin/templates/admin/change_form.html:39 +#: contrib/admin/templates/admin/change_list.html:68 +#: contrib/admin/templates/admin/auth/user/change_password.html:24 +#: contrib/admin/templates/registration/password_change_form.html:15 msgid "Please correct the error below." msgid_plural "Please correct the errors below." msgstr[0] "Corrigez l'erreur suivante." msgstr[1] "Corrigez les erreurs suivantes." -#: contrib/admin/templates/admin/change_list.html:46 +#: contrib/admin/templates/admin/change_list.html:60 #, python-format msgid "Add %(name)s" msgstr "Ajouter %(name)s" -#: contrib/admin/templates/admin/change_list.html:65 +#: contrib/admin/templates/admin/change_list.html:79 msgid "Filter" msgstr "Filtre" #: contrib/admin/templates/admin/delete_confirmation.html:10 -#: contrib/admin/templates/admin/submit_line.html:4 forms/formsets.py:275 +#: contrib/admin/templates/admin/submit_line.html:4 forms/formsets.py:294 msgid "Delete" msgstr "Supprimer" @@ -656,7 +710,7 @@ msgstr "" #: contrib/admin/templates/admin/delete_confirmation.html:28 #: contrib/admin/templates/admin/delete_selected_confirmation.html:33 msgid "Yes, I'm sure" -msgstr "Oui, j'en suis certain" +msgstr "Oui, je suis sûr" #: contrib/admin/templates/admin/delete_selected_confirmation.html:9 msgid "Delete multiple objects" @@ -677,7 +731,7 @@ msgstr "" #, python-format msgid "" "Are you sure you want to delete the selected %(object_name)s objects? All of " -"the following objects and it's related items will be deleted:" +"the following objects and their related items will be deleted:" msgstr "" "Voulez-vous vraiment supprimer les objets %(object_name)s sélectionnés ? " "Tous les objets suivants et leurs éléments liés seront aussi supprimés :" @@ -743,15 +797,9 @@ msgid "User" msgstr "Utilisateur" #: contrib/admin/templates/admin/object_history.html:24 -#: contrib/comments/templates/comments/moderation_queue.html:33 msgid "Action" msgstr "Action" -#: contrib/admin/templates/admin/object_history.html:30 -#: utils/translation/trans_real.py:400 -msgid "DATETIME_FORMAT" -msgstr "j F Y, G:i" - #: contrib/admin/templates/admin/object_history.html:38 msgid "" "This object doesn't have a change history. It probably wasn't added via this " @@ -797,7 +845,7 @@ msgstr "Enregistrer et ajouter un nouveau" msgid "Save and continue editing" msgstr "Enregistrer et continuer les modifications" -#: contrib/admin/templates/admin/auth/user/add_form.html:6 +#: contrib/admin/templates/admin/auth/user/add_form.html:5 msgid "" "First, enter a username and password. Then, you'll be able to edit more user " "options." @@ -805,35 +853,41 @@ msgstr "" "Saisissez tout d'abord un nom d'utilisateur et un mot de passe. Vous pourrez " "ensuite modifier plus d'options." -#: contrib/admin/templates/admin/auth/user/add_form.html:13 -#: contrib/auth/forms.py:14 contrib/auth/forms.py:47 contrib/auth/forms.py:59 -msgid "Username" -msgstr "Nom d'utilisateur" - -#: contrib/admin/templates/admin/auth/user/add_form.html:20 -#: contrib/admin/templates/admin/auth/user/change_password.html:34 -#: contrib/auth/forms.py:17 contrib/auth/forms.py:60 contrib/auth/forms.py:185 -msgid "Password" -msgstr "Mot de passe" - -#: contrib/admin/templates/admin/auth/user/add_form.html:26 -#: contrib/admin/templates/admin/auth/user/change_password.html:40 -#: contrib/auth/forms.py:186 -msgid "Password (again)" -msgstr "Mot de passe (à nouveau)" - -#: contrib/admin/templates/admin/auth/user/add_form.html:27 -#: contrib/admin/templates/admin/auth/user/change_password.html:41 -msgid "Enter the same password as above, for verification." -msgstr "Saisissez le même mot de passe que précédemment, par sécurité." - -#: contrib/admin/templates/admin/auth/user/change_password.html:27 +#: contrib/admin/templates/admin/auth/user/change_password.html:28 #, python-format msgid "Enter a new password for the user %(username)s." msgstr "" "Saisissez un nouveau mot de passe pour l'utilisateur %(username)s." +#: contrib/admin/templates/admin/auth/user/change_password.html:35 +#: contrib/auth/forms.py:17 contrib/auth/forms.py:61 contrib/auth/forms.py:186 +msgid "Password" +msgstr "Mot de passe" + +#: contrib/admin/templates/admin/auth/user/change_password.html:41 +#: contrib/admin/templates/registration/password_change_form.html:37 +#: contrib/auth/forms.py:187 +msgid "Password (again)" +msgstr "Mot de passe (à nouveau)" + +#: contrib/admin/templates/admin/auth/user/change_password.html:42 +#: contrib/auth/forms.py:19 +msgid "Enter the same password as above, for verification." +msgstr "Saisissez le même mot de passe que précédemment, par sécurité." + +#: contrib/admin/templates/admin/edit_inline/stacked.html:53 +#: contrib/admin/templates/admin/edit_inline/tabular.html:99 +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Ajouter un objet %(verbose_name)s supplémentaire" + +#: contrib/admin/templates/admin/edit_inline/stacked.html:56 +#: contrib/admin/templates/admin/edit_inline/tabular.html:102 +#: contrib/comments/templates/comments/delete.html:12 +msgid "Remove" +msgstr "Supprimer" + #: contrib/admin/templates/admin/edit_inline/tabular.html:15 msgid "Delete?" msgstr "Supprimer ?" @@ -847,9 +901,9 @@ msgid "Log in again" msgstr "Connectez-vous à nouveau" #: contrib/admin/templates/registration/password_change_done.html:4 -#: contrib/admin/templates/registration/password_change_form.html:4 -#: contrib/admin/templates/registration/password_change_form.html:6 -#: contrib/admin/templates/registration/password_change_form.html:10 +#: contrib/admin/templates/registration/password_change_form.html:5 +#: contrib/admin/templates/registration/password_change_form.html:7 +#: contrib/admin/templates/registration/password_change_form.html:19 msgid "Password change" msgstr "Modification de votre mot de passe" @@ -862,7 +916,7 @@ msgstr "Mot de passe modifié avec succès" msgid "Your password was changed." msgstr "Votre mot de passe a été modifié." -#: contrib/admin/templates/registration/password_change_form.html:12 +#: contrib/admin/templates/registration/password_change_form.html:21 msgid "" "Please enter your old password, for security's sake, and then enter your new " "password twice so we can verify you typed it in correctly." @@ -871,21 +925,17 @@ msgstr "" "nouveau mot de passe à deux reprises afin de vérifier qu'il est correctement " "saisi." -#: contrib/admin/templates/registration/password_change_form.html:17 -msgid "Old password:" -msgstr "Ancien mot de passe :" +#: contrib/admin/templates/registration/password_change_form.html:27 +#: contrib/auth/forms.py:170 +msgid "Old password" +msgstr "Ancien mot de passe" -#: contrib/admin/templates/registration/password_change_form.html:19 -#: contrib/admin/templates/registration/password_reset_confirm.html:18 -msgid "New password:" -msgstr "Nouveau mot de passe :" +#: contrib/admin/templates/registration/password_change_form.html:32 +#: contrib/auth/forms.py:144 +msgid "New password" +msgstr "Nouveau mot de passe" -#: contrib/admin/templates/registration/password_change_form.html:21 -#: contrib/admin/templates/registration/password_reset_confirm.html:20 -msgid "Confirm password:" -msgstr "Confirmation du mot de passe :" - -#: contrib/admin/templates/registration/password_change_form.html:23 +#: contrib/admin/templates/registration/password_change_form.html:43 #: contrib/admin/templates/registration/password_reset_confirm.html:21 msgid "Change my password" msgstr "Modifier mon mot de passe" @@ -925,6 +975,14 @@ msgstr "" "Saisissez deux fois votre nouveau mot de passe afin de vérifier qu'il est " "correctement saisi." +#: contrib/admin/templates/registration/password_reset_confirm.html:18 +msgid "New password:" +msgstr "Nouveau mot de passe :" + +#: contrib/admin/templates/registration/password_reset_confirm.html:20 +msgid "Confirm password:" +msgstr "Confirmation du mot de passe :" + #: contrib/admin/templates/registration/password_reset_confirm.html:26 msgid "Password reset unsuccessful" msgstr "Échec lors de la mise à jour du mot de passe" @@ -996,7 +1054,7 @@ msgstr "Adresse électronique :" msgid "Reset my password" msgstr "Réinitialiser mon mot de passe" -#: contrib/admin/templatetags/admin_list.py:299 +#: contrib/admin/templatetags/admin_list.py:240 msgid "All dates" msgstr "Toutes les dates" @@ -1010,11 +1068,11 @@ msgstr "Sélectionnez %s" msgid "Select %s to change" msgstr "Sélectionnez l'objet %s à changer" -#: contrib/admin/views/template.py:37 contrib/sites/models.py:38 +#: contrib/admin/views/template.py:38 contrib/sites/models.py:38 msgid "site" msgstr "site" -#: contrib/admin/views/template.py:39 +#: contrib/admin/views/template.py:40 msgid "template" msgstr "template" @@ -1075,89 +1133,7 @@ msgstr "nombre de %s" msgid "Fields on %s objects" msgstr "Champs sur les objets %s" -#: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345 -#: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353 -#: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356 -msgid "Integer" -msgstr "Entier" - -#: contrib/admindocs/views.py:335 -msgid "Boolean (Either True or False)" -msgstr "Booléen (soit vrai ou faux)" - -#: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355 -#, python-format -msgid "String (up to %(max_length)s)" -msgstr "Chaîne de caractère (jusqu'à %(max_length)s)" - -#: contrib/admindocs/views.py:337 -msgid "Comma-separated integers" -msgstr "Des entiers séparés par une virgule" - -#: contrib/admindocs/views.py:338 -msgid "Date (without time)" -msgstr "Date (sans l'heure)" - -#: contrib/admindocs/views.py:339 -msgid "Date (with time)" -msgstr "Date (avec l'heure)" - -#: contrib/admindocs/views.py:340 -msgid "Decimal number" -msgstr "Nombre décimal" - -#: contrib/admindocs/views.py:341 -msgid "E-mail address" -msgstr "Adresse électronique" - -#: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343 -#: contrib/admindocs/views.py:346 -msgid "File path" -msgstr "Chemin vers le fichier" - -#: contrib/admindocs/views.py:344 -msgid "Floating point number" -msgstr "Nombre à virgule flottante" - -#: contrib/admindocs/views.py:348 contrib/comments/models.py:60 -msgid "IP address" -msgstr "adresse IP" - -#: contrib/admindocs/views.py:350 -msgid "Boolean (Either True, False or None)" -msgstr "Booléen (soit vrai, faux ou nul)" - -#: contrib/admindocs/views.py:351 -msgid "Relation to parent model" -msgstr "Relation au modèle parent" - -#: contrib/admindocs/views.py:352 -msgid "Phone number" -msgstr "Numéro de téléphone" - -#: contrib/admindocs/views.py:357 -msgid "Text" -msgstr "Texte" - -#: contrib/admindocs/views.py:358 -msgid "Time" -msgstr "Heure" - -#: contrib/admindocs/views.py:359 contrib/comments/forms.py:95 -#: contrib/comments/templates/comments/moderation_queue.html:37 -#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 -msgid "URL" -msgstr "URL" - -#: contrib/admindocs/views.py:360 -msgid "U.S. state (two uppercase letters)" -msgstr "État Américain (deux lettres majuscules)" - #: contrib/admindocs/views.py:361 -msgid "XML text" -msgstr "Texte XML" - -#: contrib/admindocs/views.py:387 #, python-format msgid "%s does not appear to be a urlpattern object" msgstr "%s ne semble pas être un objet urlpattern" @@ -1231,37 +1207,37 @@ msgstr "" "Comme ci-dessus, mais ouvre la page d'administration dans une nouvelle " "fenêtre." -#: contrib/auth/admin.py:21 +#: contrib/auth/admin.py:29 msgid "Personal info" msgstr "Information personnelle" -#: contrib/auth/admin.py:22 +#: contrib/auth/admin.py:30 msgid "Permissions" msgstr "Permissions" -#: contrib/auth/admin.py:23 +#: contrib/auth/admin.py:31 msgid "Important dates" msgstr "Dates importantes" -#: contrib/auth/admin.py:24 +#: contrib/auth/admin.py:32 msgid "Groups" msgstr "Groupes" -#: contrib/auth/admin.py:80 -msgid "Add user" -msgstr "Ajouter l'utilisateur" - -#: contrib/auth/admin.py:106 +#: contrib/auth/admin.py:114 msgid "Password changed successfully." msgstr "Mot de passe modifié avec succès" -#: contrib/auth/admin.py:112 +#: contrib/auth/admin.py:124 #, python-format msgid "Change password: %s" msgstr "Modifier le mot de passe : %s" -#: contrib/auth/forms.py:15 contrib/auth/forms.py:48 -#: contrib/auth/models.py:128 +#: contrib/auth/forms.py:14 contrib/auth/forms.py:48 contrib/auth/forms.py:60 +msgid "Username" +msgstr "Nom d'utilisateur" + +#: contrib/auth/forms.py:15 contrib/auth/forms.py:49 +#: contrib/auth/models.py:180 msgid "" "Required. 30 characters or fewer. Alphanumeric characters only (letters, " "digits and underscores)." @@ -1269,7 +1245,7 @@ msgstr "" "Requis. 30 caractères maximum, alphanumériques uniquement (lettres, " "chiffres, et tirets bas _)." -#: contrib/auth/forms.py:16 contrib/auth/forms.py:49 +#: contrib/auth/forms.py:16 contrib/auth/forms.py:50 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 _." @@ -1278,20 +1254,20 @@ msgstr "" msgid "Password confirmation" msgstr "Confirmation de votre mot de passe" -#: contrib/auth/forms.py:30 +#: contrib/auth/forms.py:31 msgid "A user with that username already exists." msgstr "Un utilisateur avec ce nom existe déjà." -#: contrib/auth/forms.py:36 contrib/auth/forms.py:155 -#: contrib/auth/forms.py:197 +#: contrib/auth/forms.py:37 contrib/auth/forms.py:156 +#: contrib/auth/forms.py:198 msgid "The two password fields didn't match." msgstr "Les deux mots de passe ne correspondent pas." -#: contrib/auth/forms.py:82 +#: contrib/auth/forms.py:83 msgid "This account is inactive." msgstr "Ce compte est inactif." -#: contrib/auth/forms.py:87 +#: contrib/auth/forms.py:88 msgid "" "Your Web browser doesn't appear to have cookies enabled. Cookies are " "required for logging in." @@ -1299,11 +1275,11 @@ msgstr "" "Votre navigateur ne semble pas avoir activé les cookies. Les cookies sont " "nécessaires pour se connecter." -#: contrib/auth/forms.py:100 +#: contrib/auth/forms.py:101 msgid "E-mail" msgstr "Courriel" -#: contrib/auth/forms.py:109 +#: contrib/auth/forms.py:110 msgid "" "That e-mail address doesn't have an associated user account. Are you sure " "you've registered?" @@ -1311,72 +1287,64 @@ msgstr "" "Cette adresse électronique ne correspond à aucun compte utilisateur. Êtes-" "vous sûr de vous être enregistré ?" -#: contrib/auth/forms.py:135 +#: contrib/auth/forms.py:136 #, python-format msgid "Password reset on %s" msgstr "Mot de passe mis à jour sur %s" -#: contrib/auth/forms.py:143 -msgid "New password" -msgstr "Nouveau mot de passe" - -#: contrib/auth/forms.py:144 +#: contrib/auth/forms.py:145 msgid "New password confirmation" msgstr "Confirmation du nouveau mot de passe" -#: contrib/auth/forms.py:169 -msgid "Old password" -msgstr "Ancien mot de passe" - -#: contrib/auth/forms.py:177 +#: contrib/auth/forms.py:178 msgid "Your old password was entered incorrectly. Please enter it again." msgstr "Votre ancien mot de passe est incorrect. Veuillez le rectifier." -#: contrib/auth/models.py:63 contrib/auth/models.py:86 +#: contrib/auth/models.py:66 contrib/auth/models.py:94 msgid "name" msgstr "nom" -#: contrib/auth/models.py:65 +#: contrib/auth/models.py:68 msgid "codename" msgstr "nom de code" -#: contrib/auth/models.py:68 +#: contrib/auth/models.py:72 msgid "permission" msgstr "permission" -#: contrib/auth/models.py:69 contrib/auth/models.py:87 +#: contrib/auth/models.py:73 contrib/auth/models.py:95 msgid "permissions" msgstr "permissions" -#: contrib/auth/models.py:90 +#: contrib/auth/models.py:98 msgid "group" msgstr "groupe" -#: contrib/auth/models.py:91 contrib/auth/models.py:138 +#: contrib/auth/models.py:99 contrib/auth/models.py:190 msgid "groups" msgstr "groupes" -#: contrib/auth/models.py:128 +#: contrib/auth/models.py:180 msgid "username" msgstr "nom d'utilisateur" -#: contrib/auth/models.py:129 +#: contrib/auth/models.py:181 msgid "first name" msgstr "prénom" -#: contrib/auth/models.py:130 +#: contrib/auth/models.py:182 msgid "last name" msgstr "nom" -#: contrib/auth/models.py:131 +#: contrib/auth/models.py:183 msgid "e-mail address" msgstr "adresse électronique" -#: contrib/auth/models.py:132 +#: contrib/auth/models.py:184 msgid "password" msgstr "mot de passe" -#: contrib/auth/models.py:132 +#: contrib/auth/models.py:184 msgid "" "Use '[algo]$[salt]$[hexdigest]' or use the change " "password form." @@ -1384,19 +1352,19 @@ msgstr "" "Utilisez « [algo]$[salt]$[hexdigest] » ou le formulaire " "de changement de mot de passe." -#: contrib/auth/models.py:133 +#: contrib/auth/models.py:185 msgid "staff status" msgstr "statut équipe" -#: contrib/auth/models.py:133 +#: contrib/auth/models.py:185 msgid "Designates whether the user can log into this admin site." msgstr "Précise si l'utilisateur peut se connecter à ce site d'administration." -#: contrib/auth/models.py:134 +#: contrib/auth/models.py:186 msgid "active" msgstr "actif" -#: contrib/auth/models.py:134 +#: contrib/auth/models.py:186 msgid "" "Designates whether this user should be treated as active. Unselect this " "instead of deleting accounts." @@ -1404,11 +1372,11 @@ msgstr "" "Précise si l'utilisateur doit être considéré comme actif. Décochez ceci " "plutôt que de supprimer le compte." -#: contrib/auth/models.py:135 +#: contrib/auth/models.py:187 msgid "superuser status" msgstr "statut super-utilisateur" -#: contrib/auth/models.py:135 +#: contrib/auth/models.py:187 msgid "" "Designates that this user has all permissions without explicitly assigning " "them." @@ -1416,15 +1384,15 @@ msgstr "" "Précise que l'utilisateur possède toutes les permissions sans les assigner " "explicitement." -#: contrib/auth/models.py:136 +#: contrib/auth/models.py:188 msgid "last login" msgstr "dernière connexion" -#: contrib/auth/models.py:137 +#: contrib/auth/models.py:189 msgid "date joined" msgstr "date d'inscription" -#: contrib/auth/models.py:139 +#: contrib/auth/models.py:191 msgid "" "In addition to the permissions manually assigned, this user will also get " "all permissions granted to each group he/she is in." @@ -1433,39 +1401,72 @@ msgstr "" "recevra aussi toutes les permissions de tous les groupes auxquels il " "appartient. " -#: contrib/auth/models.py:140 +#: contrib/auth/models.py:192 msgid "user permissions" msgstr "permissions de l'utilisateur" -#: contrib/auth/models.py:144 contrib/comments/models.py:50 +#: contrib/auth/models.py:196 contrib/comments/models.py:50 #: contrib/comments/models.py:168 msgid "user" msgstr "utilisateur" -#: contrib/auth/models.py:145 +#: contrib/auth/models.py:197 msgid "users" msgstr "utilisateurs" -#: contrib/auth/models.py:301 +#: contrib/auth/models.py:367 msgid "message" msgstr "message" -#: contrib/auth/views.py:56 +#: contrib/auth/views.py:60 msgid "Logged out" msgstr "Déconnecté" -#: contrib/auth/management/commands/createsuperuser.py:23 forms/fields.py:429 +#: contrib/auth/management/commands/createsuperuser.py:23 +#: core/validators.py:85 forms/fields.py:414 msgid "Enter a valid e-mail address." msgstr "Entrez une adresse de courriel valide." -#: contrib/comments/admin.py:11 +#: contrib/comments/admin.py:12 msgid "Content" msgstr "Contenu" -#: contrib/comments/admin.py:14 +#: contrib/comments/admin.py:15 msgid "Metadata" msgstr "Métadonnées" +#: contrib/comments/admin.py:39 +msgid "flagged" +msgstr "marqué" + +#: contrib/comments/admin.py:40 +msgid "Flag selected comments" +msgstr "Marquer les commentaires sélectionnés" + +#: contrib/comments/admin.py:43 +msgid "approved" +msgstr "approuvé" + +#: contrib/comments/admin.py:44 +msgid "Approve selected comments" +msgstr "Approuver les commentaires sélectionnés" + +#: contrib/comments/admin.py:47 +msgid "removed" +msgstr "supprimé" + +#: contrib/comments/admin.py:48 +msgid "Remove selected comments" +msgstr "Supprimer les commentaires sélectionnés" + +# Nous avons artificiellement ajouté un « s » à l'action de la forme plurielle +#: contrib/comments/admin.py:60 +#, python-format +msgid "1 comment was successfully %(action)s." +msgid_plural "%(count)s comments were successfully %(action)s." +msgstr[0] "1 commentaire a été %(action)s avec succès." +msgstr[1] "%(count)s commentaires ont été %(action)ss avec succès." + #: contrib/comments/feeds.py:13 #, python-format msgid "%(site_name)s comments" @@ -1477,7 +1478,6 @@ msgid "Latest comments on %(site_name)s" msgstr "Derniers commentaires sur %(site_name)s" #: contrib/comments/forms.py:93 -#: contrib/comments/templates/comments/moderation_queue.html:34 msgid "Name" msgstr "Nom" @@ -1485,12 +1485,16 @@ msgstr "Nom" msgid "Email address" msgstr "Adresse électronique" +#: contrib/comments/forms.py:95 contrib/flatpages/admin.py:8 +#: contrib/flatpages/models.py:7 db/models/fields/__init__.py:1107 +msgid "URL" +msgstr "URL" + #: contrib/comments/forms.py:96 -#: contrib/comments/templates/comments/moderation_queue.html:35 msgid "Comment" msgstr "Commentaire" -#: contrib/comments/forms.py:173 +#: contrib/comments/forms.py:175 #, 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." @@ -1498,14 +1502,14 @@ msgstr[0] "Attention à votre langage ! Le terme %s n'est pas autorisé ici." msgstr[1] "" "Attention à votre langage ! Les termes %s ne sont pas autorisés ici." -#: contrib/comments/forms.py:180 +#: contrib/comments/forms.py:182 msgid "" "If you enter anything in this field your comment will be treated as spam" msgstr "" "Si vous saisissez quelque chose dans ce champ, votre commentaire sera " "considéré comme étant indésirable" -#: contrib/comments/models.py:22 contrib/contenttypes/models.py:74 +#: contrib/comments/models.py:22 contrib/contenttypes/models.py:81 msgid "content type" msgstr "type de contenu" @@ -1534,6 +1538,10 @@ msgstr "commentaire" msgid "date/time submitted" msgstr "date et heure soumises" +#: contrib/comments/models.py:60 db/models/fields/__init__.py:909 +msgid "IP address" +msgstr "adresse IP" + #: contrib/comments/models.py:61 msgid "is public" msgstr "est public" @@ -1616,7 +1624,6 @@ msgid "Really make this comment public?" msgstr "Voulez-vous rendre ce commentaire public ?" #: contrib/comments/templates/comments/approve.html:12 -#: contrib/comments/templates/comments/moderation_queue.html:49 msgid "Approve" msgstr "Valider" @@ -1641,11 +1648,6 @@ msgstr "Supprimer un commentaire" msgid "Really remove this comment?" msgstr "Voulez-vous supprimer définitivement ce commentaire ?" -#: contrib/comments/templates/comments/delete.html:12 -#: contrib/comments/templates/comments/moderation_queue.html:53 -msgid "Remove" -msgstr "Supprimer" - #: contrib/comments/templates/comments/deleted.html:4 msgid "Thanks for removing" msgstr "Merci pour cette suppression" @@ -1676,39 +1678,6 @@ msgstr "Envoyer" msgid "Preview" msgstr "Prévisualiser" -#: contrib/comments/templates/comments/moderation_queue.html:4 -#: contrib/comments/templates/comments/moderation_queue.html:19 -msgid "Comment moderation queue" -msgstr "Liste de modération des commentaires" - -#: contrib/comments/templates/comments/moderation_queue.html:26 -msgid "No comments to moderate" -msgstr "Aucun commentaire à modérer" - -#: contrib/comments/templates/comments/moderation_queue.html:36 -msgid "Email" -msgstr "Courriel" - -#: contrib/comments/templates/comments/moderation_queue.html:38 -msgid "Authenticated?" -msgstr "Authentifié ?" - -#: contrib/comments/templates/comments/moderation_queue.html:39 -msgid "IP Address" -msgstr "Adresse IP" - -#: contrib/comments/templates/comments/moderation_queue.html:40 -msgid "Date posted" -msgstr "Date de soumission" - -#: contrib/comments/templates/comments/moderation_queue.html:63 -msgid "yes" -msgstr "oui" - -#: contrib/comments/templates/comments/moderation_queue.html:63 -msgid "no" -msgstr "non" - #: contrib/comments/templates/comments/posted.html:4 msgid "Thanks for commenting" msgstr "Merci pour votre commentaire" @@ -1736,11 +1705,11 @@ msgstr "Envoyer votre commentaire" msgid "or make changes" msgstr "ou le modifier" -#: contrib/contenttypes/models.py:70 +#: contrib/contenttypes/models.py:77 msgid "python model class name" msgstr "nom de la classe python du modèle" -#: contrib/contenttypes/models.py:75 +#: contrib/contenttypes/models.py:82 msgid "content types" msgstr "types de contenu" @@ -1805,7 +1774,7 @@ msgstr "page statique" msgid "flat pages" msgstr "pages statiques" -#: contrib/formtools/wizard.py:130 +#: contrib/formtools/wizard.py:134 msgid "" "We apologize, but your form has expired. Please continue filling out the " "form from this page." @@ -1813,17 +1782,51 @@ msgstr "" "Nous sommes désolés, mais votre formulaire a expiré. Veuillez compléter le " "formulaire sur cette page." +#: contrib/gis/db/models/fields.py:50 +msgid "The base GIS field -- maps to the OpenGIS Specification Geometry type." +msgstr "" +"Le champ GIS -- convertit dans le type de spécification géométrique " +"d'OpenGIS." + +#: contrib/gis/db/models/fields.py:269 +msgid "Point" +msgstr "Point" + +#: contrib/gis/db/models/fields.py:273 +msgid "Line string" +msgstr "Chaîne de segment" + +#: contrib/gis/db/models/fields.py:277 +msgid "Polygon" +msgstr "Polygone" + +#: contrib/gis/db/models/fields.py:281 +msgid "Multi-point" +msgstr "Multipoint" + +#: contrib/gis/db/models/fields.py:285 +msgid "Multi-line string" +msgstr "Chaîne multisegment" + +#: contrib/gis/db/models/fields.py:289 +msgid "Multi polygon" +msgstr "Multipolygone" + +#: contrib/gis/db/models/fields.py:293 +msgid "Geometry collection" +msgstr "Collection géométrique" + #: contrib/gis/forms/fields.py:17 msgid "No geometry value provided." -msgstr "Valeur géométrique manquante." +msgstr "Acune valeur géométrique fournie." #: contrib/gis/forms/fields.py:18 msgid "Invalid geometry value." -msgstr "Valeur géométrique non valide" +msgstr "Valeur géométrique non valide." #: contrib/gis/forms/fields.py:19 msgid "Invalid geometry type." -msgstr "Type de géométrie non valide" +msgstr "Type de géométrie non valide." #: contrib/gis/forms/fields.py:20 msgid "" @@ -1843,7 +1846,7 @@ msgstr "er" #: contrib/humanize/templatetags/humanize.py:19 msgid "nd" -msgstr "d" +msgstr "e" #: contrib/humanize/templatetags/humanize.py:19 msgid "rd" @@ -1918,25 +1921,25 @@ msgstr "demain" msgid "yesterday" msgstr "hier" -#: contrib/localflavor/ar/forms.py:27 +#: contrib/localflavor/ar/forms.py:28 msgid "Enter a postal code in the format NNNN or ANNNNAAA." msgstr "Saisissez un code postal au format NNNN ou ANNNNAAA." -#: contrib/localflavor/ar/forms.py:49 contrib/localflavor/br/forms.py:96 -#: contrib/localflavor/br/forms.py:135 contrib/localflavor/pe/forms.py:23 -#: contrib/localflavor/pe/forms.py:51 +#: contrib/localflavor/ar/forms.py:50 contrib/localflavor/br/forms.py:97 +#: contrib/localflavor/br/forms.py:136 contrib/localflavor/pe/forms.py:24 +#: contrib/localflavor/pe/forms.py:52 msgid "This field requires only numbers." msgstr "Ce champ ne doit contenir que des nombres." -#: contrib/localflavor/ar/forms.py:50 +#: contrib/localflavor/ar/forms.py:51 msgid "This field requires 7 or 8 digits." msgstr "Ce champ requiert 7 ou 8 chiffres." -#: contrib/localflavor/ar/forms.py:79 +#: contrib/localflavor/ar/forms.py:80 msgid "Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format." msgstr "Saisissez un numéro CUIT au format XX-XXXXXXXX-X ou XXXXXXXXXXXX." -#: contrib/localflavor/ar/forms.py:80 +#: contrib/localflavor/ar/forms.py:81 msgid "Invalid CUIT." msgstr "CUIT non valide." @@ -1976,8 +1979,8 @@ msgstr "Vorarlberg" msgid "Vienna" msgstr "Vienne" -#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:16 -#: contrib/localflavor/no/forms.py:12 +#: contrib/localflavor/at/forms.py:20 contrib/localflavor/ch/forms.py:17 +#: contrib/localflavor/no/forms.py:13 msgid "Enter a zip code in the format XXXX." msgstr "Saisissez un code postal norvégien au format XXXX." @@ -1987,19 +1990,19 @@ msgstr "" "Saisissez un numéro de sécurité sociale autrichien valide au format XXXX " "XXXXXX." -#: contrib/localflavor/au/forms.py:16 +#: contrib/localflavor/au/forms.py:17 msgid "Enter a 4 digit post code." msgstr "Saisissez un code postal australien (4 chiffres)." -#: contrib/localflavor/br/forms.py:21 +#: contrib/localflavor/br/forms.py:22 msgid "Enter a zip code in the format XXXXX-XXX." msgstr "Saisissez un code postal brésilien au format XXXXX-XXX." -#: contrib/localflavor/br/forms.py:30 +#: contrib/localflavor/br/forms.py:31 msgid "Phone numbers must be in XX-XXXX-XXXX format." msgstr "Les numéros de téléphone doivent être au format XX-XXXX-XXXX." -#: contrib/localflavor/br/forms.py:58 +#: contrib/localflavor/br/forms.py:59 msgid "" "Select a valid brazilian state. That state is not one of the available " "states." @@ -2007,27 +2010,27 @@ msgstr "" "Sélectionnez un état brésilien valide. Cet état ne fait pas partie de ceux " "disponibles." -#: contrib/localflavor/br/forms.py:94 +#: contrib/localflavor/br/forms.py:95 msgid "Invalid CPF number." msgstr "Numéro CPF non valide." -#: contrib/localflavor/br/forms.py:95 +#: contrib/localflavor/br/forms.py:96 msgid "This field requires at most 11 digits or 14 characters." msgstr "Ce champ requiert au plus 11 chiffres ou 14 caractères." -#: contrib/localflavor/br/forms.py:134 +#: contrib/localflavor/br/forms.py:135 msgid "Invalid CNPJ number." msgstr "Numéro CNPJ non valide." -#: contrib/localflavor/br/forms.py:136 +#: contrib/localflavor/br/forms.py:137 msgid "This field requires at least 14 digits" msgstr "Ce champ requiert au minimum 14 chiffres" -#: contrib/localflavor/ca/forms.py:17 +#: contrib/localflavor/ca/forms.py:25 msgid "Enter a postal code in the format XXX XXX." msgstr "Saisissez un code postal au format XXX XXX." -#: contrib/localflavor/ca/forms.py:88 +#: contrib/localflavor/ca/forms.py:96 msgid "Enter a valid Canadian Social Insurance number in XXX-XXX-XXX format." msgstr "" "Saisissez un numéro de sécurité sociale canadien au format XXX-XXX-XXX." @@ -2136,7 +2139,7 @@ msgstr "Zoug" msgid "Zurich" msgstr "Zurich" -#: contrib/localflavor/ch/forms.py:64 +#: contrib/localflavor/ch/forms.py:65 msgid "" "Enter a valid Swiss identity or passport card number in X1234567<0 or " "1234567890 format." @@ -2144,15 +2147,15 @@ msgstr "" "Saisissez un numéro de passeport ou de carte d'identité suisse valide au " "format X1234567<0 ou 1234567890." -#: contrib/localflavor/cl/forms.py:29 +#: contrib/localflavor/cl/forms.py:30 msgid "Enter a valid Chilean RUT." msgstr "Saisissez un RUT chilien valide." -#: contrib/localflavor/cl/forms.py:30 +#: contrib/localflavor/cl/forms.py:31 msgid "Enter a valid Chilean RUT. The format is XX.XXX.XXX-X." msgstr "Saisissez un RUT chilien valide au format XX.XXX.XXX-X." -#: contrib/localflavor/cl/forms.py:31 +#: contrib/localflavor/cl/forms.py:32 msgid "The Chilean RUT is not valid." msgstr "Ce RUT chilien est non valide." @@ -2212,25 +2215,25 @@ msgstr "Zlin" msgid "Moravian-Silesian Region" msgstr "Moravie-Silésie" -#: contrib/localflavor/cz/forms.py:27 contrib/localflavor/sk/forms.py:30 +#: contrib/localflavor/cz/forms.py:28 contrib/localflavor/sk/forms.py:30 msgid "Enter a postal code in the format XXXXX or XXX XX." msgstr "Saisissez un code postal au format XXXXX ou XXX XX." -#: contrib/localflavor/cz/forms.py:47 +#: contrib/localflavor/cz/forms.py:48 msgid "Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX." msgstr "Saisissez une date de naissance au format XXXXXX/XXXX ou XXXXXXXXXX." -#: contrib/localflavor/cz/forms.py:48 +#: contrib/localflavor/cz/forms.py:49 msgid "Invalid optional parameter Gender, valid values are 'f' and 'm'" msgstr "" "Le paramètre optionnel du genre est non valide, les valeurs autorisées sont " "« f » et « m »" -#: contrib/localflavor/cz/forms.py:49 +#: contrib/localflavor/cz/forms.py:50 msgid "Enter a valid birth number." msgstr "Saisissez une date de naissance valide." -#: contrib/localflavor/cz/forms.py:106 +#: contrib/localflavor/cz/forms.py:107 msgid "Enter a valid IC number." msgstr "Saisissez un numéro IC valide." @@ -2298,12 +2301,12 @@ msgstr "Schleswig-Holstein" msgid "Thuringia" msgstr "Thuringe" -#: contrib/localflavor/de/forms.py:14 contrib/localflavor/fi/forms.py:12 -#: contrib/localflavor/fr/forms.py:15 +#: contrib/localflavor/de/forms.py:15 contrib/localflavor/fi/forms.py:13 +#: contrib/localflavor/fr/forms.py:16 msgid "Enter a zip code in the format XXXXX." msgstr "Saisissez un code postal au format XXXXX." -#: contrib/localflavor/de/forms.py:41 +#: contrib/localflavor/de/forms.py:42 msgid "" "Enter a valid German identity card number in XXXXXXXXXXX-XXXXXXX-XXXXXXX-X " "format." @@ -2578,74 +2581,508 @@ msgstr "Navarre" msgid "Valencian Community" msgstr "Communauté valencienne" -#: contrib/localflavor/es/forms.py:19 +#: contrib/localflavor/es/forms.py:20 msgid "Enter a valid postal code in the range and format 01XXX - 52XXX." msgstr "Saisissez un code postal dans l'intervalle et au format 01XXX - 52XXX." -#: contrib/localflavor/es/forms.py:39 +#: contrib/localflavor/es/forms.py:40 msgid "" "Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or " "9XXXXXXXX." msgstr "" "Saisissez un numéro de téléphone au format 6XXXXXXXX, 8XXXXXXXX ou 9XXXXXXXX." -#: contrib/localflavor/es/forms.py:66 +#: contrib/localflavor/es/forms.py:67 msgid "Please enter a valid NIF, NIE, or CIF." msgstr "Saisissez une adresse NIF, NIE ou CIF valide." -#: contrib/localflavor/es/forms.py:67 +#: contrib/localflavor/es/forms.py:68 msgid "Please enter a valid NIF or NIE." msgstr "Saisissez un NIF ou NIE valide." -#: contrib/localflavor/es/forms.py:68 +#: contrib/localflavor/es/forms.py:69 msgid "Invalid checksum for NIF." msgstr "Mauvais checksum pour NIF." -#: contrib/localflavor/es/forms.py:69 +#: contrib/localflavor/es/forms.py:70 msgid "Invalid checksum for NIE." msgstr "Mauvais checksum pour NIE." -#: contrib/localflavor/es/forms.py:70 +#: contrib/localflavor/es/forms.py:71 msgid "Invalid checksum for CIF." msgstr "Mauvais checksum pour CIF." -#: contrib/localflavor/es/forms.py:142 +#: contrib/localflavor/es/forms.py:143 msgid "" "Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX." msgstr "" "Saisissez un numéro de compte bancaire valide au format XXXXX-XXXX-XX-" "XXXXXXXXXX." -#: contrib/localflavor/es/forms.py:143 +#: contrib/localflavor/es/forms.py:144 msgid "Invalid checksum for bank account number." msgstr "Somme de contrôle non valide pour le numéro de compte bancaire." -#: contrib/localflavor/fi/forms.py:28 +#: contrib/localflavor/fi/forms.py:29 msgid "Enter a valid Finnish social security number." msgstr "Saisissez un numéro de sécurité sociale finlandais." -#: contrib/localflavor/in_/forms.py:14 +#: contrib/localflavor/fr/forms.py:31 +msgid "Phone numbers must be in 0X XX XX XX XX format." +msgstr "Les numéros de téléphone doivent être au format 0X XX XX XX XX." + +#: contrib/localflavor/id/forms.py:28 +msgid "Enter a valid post code" +msgstr "Saisissez un code postal valide" + +#: contrib/localflavor/id/forms.py:68 contrib/localflavor/nl/forms.py:53 +msgid "Enter a valid phone number" +msgstr "Saisissez un numéro de téléphone valide" + +#: contrib/localflavor/id/forms.py:107 +msgid "Enter a valid vehicle license plate number" +msgstr "Saisissez un numéro de plaque d'immatriculation valide" + +#: contrib/localflavor/id/forms.py:170 +msgid "Enter a valid NIK/KTP number" +msgstr "Saisissez un numéro NIK/KTP valide" + +#: contrib/localflavor/id/id_choices.py:9 +#: contrib/localflavor/id/id_choices.py:73 +msgid "Bali" +msgstr "Bali" + +#: contrib/localflavor/id/id_choices.py:10 +#: contrib/localflavor/id/id_choices.py:45 +msgid "Banten" +msgstr "Banten" + +#: contrib/localflavor/id/id_choices.py:11 +#: contrib/localflavor/id/id_choices.py:54 +msgid "Bengkulu" +msgstr "Bengkulu" + +#: contrib/localflavor/id/id_choices.py:12 +#: contrib/localflavor/id/id_choices.py:47 +msgid "Yogyakarta" +msgstr "Yogyakarta" + +#: contrib/localflavor/id/id_choices.py:13 +#: contrib/localflavor/id/id_choices.py:51 +msgid "Jakarta" +msgstr "Jakarta" + +#: contrib/localflavor/id/id_choices.py:14 +#: contrib/localflavor/id/id_choices.py:75 +msgid "Gorontalo" +msgstr "Gorontalo" + +#: contrib/localflavor/id/id_choices.py:15 +#: contrib/localflavor/id/id_choices.py:57 +msgid "Jambi" +msgstr "Jambi" + +#: contrib/localflavor/id/id_choices.py:16 +msgid "Jawa Barat" +msgstr "Java occidental" + +#: contrib/localflavor/id/id_choices.py:17 +msgid "Jawa Tengah" +msgstr "Java central" + +#: contrib/localflavor/id/id_choices.py:18 +msgid "Jawa Timur" +msgstr "Java oriental" + +#: contrib/localflavor/id/id_choices.py:19 +#: contrib/localflavor/id/id_choices.py:88 +msgid "Kalimantan Barat" +msgstr "Kalimantan occidental" + +#: contrib/localflavor/id/id_choices.py:20 +#: contrib/localflavor/id/id_choices.py:66 +msgid "Kalimantan Selatan" +msgstr "Kalimantan du sud" + +#: contrib/localflavor/id/id_choices.py:21 +#: contrib/localflavor/id/id_choices.py:89 +msgid "Kalimantan Tengah" +msgstr "Kalimantan central" + +#: contrib/localflavor/id/id_choices.py:22 +#: contrib/localflavor/id/id_choices.py:90 +msgid "Kalimantan Timur" +msgstr "Kalimantan oriental" + +#: contrib/localflavor/id/id_choices.py:23 +msgid "Kepulauan Bangka-Belitung" +msgstr "Île Bangka-Belitung" + +#: contrib/localflavor/id/id_choices.py:24 +#: contrib/localflavor/id/id_choices.py:62 +msgid "Kepulauan Riau" +msgstr "Île Riau" + +#: contrib/localflavor/id/id_choices.py:25 +#: contrib/localflavor/id/id_choices.py:55 +msgid "Lampung" +msgstr "Lampung" + +#: contrib/localflavor/id/id_choices.py:26 +#: contrib/localflavor/id/id_choices.py:70 +msgid "Maluku" +msgstr "Moluques" + +#: contrib/localflavor/id/id_choices.py:27 +#: contrib/localflavor/id/id_choices.py:71 +msgid "Maluku Utara" +msgstr "Moluques du nord" + +#: contrib/localflavor/id/id_choices.py:28 +#: contrib/localflavor/id/id_choices.py:59 +msgid "Nanggroe Aceh Darussalam" +msgstr "Nanggroe Aceh Darussalam" + +#: contrib/localflavor/id/id_choices.py:29 +msgid "Nusa Tenggara Barat" +msgstr "Nusa Tenggara occidental" + +#: contrib/localflavor/id/id_choices.py:30 +msgid "Nusa Tenggara Timur" +msgstr "Nusa Tenggara oriental" + +#: contrib/localflavor/id/id_choices.py:31 +msgid "Papua" +msgstr "Papouasie" + +#: contrib/localflavor/id/id_choices.py:32 +msgid "Papua Barat" +msgstr "Papouasie occidentale" + +#: contrib/localflavor/id/id_choices.py:33 +#: contrib/localflavor/id/id_choices.py:60 +msgid "Riau" +msgstr "Riau" + +#: contrib/localflavor/id/id_choices.py:34 +#: contrib/localflavor/id/id_choices.py:68 +msgid "Sulawesi Barat" +msgstr "Sulawesi occidental" + +#: contrib/localflavor/id/id_choices.py:35 +#: contrib/localflavor/id/id_choices.py:69 +msgid "Sulawesi Selatan" +msgstr "Sulawesi du Sud" + +#: contrib/localflavor/id/id_choices.py:36 +#: contrib/localflavor/id/id_choices.py:76 +msgid "Sulawesi Tengah" +msgstr "Sulawesi central" + +#: contrib/localflavor/id/id_choices.py:37 +#: contrib/localflavor/id/id_choices.py:79 +msgid "Sulawesi Tenggara" +msgstr "Sulawesi du Sud-Est" + +#: contrib/localflavor/id/id_choices.py:38 +msgid "Sulawesi Utara" +msgstr "Sulawesi du Nord" + +#: contrib/localflavor/id/id_choices.py:39 +#: contrib/localflavor/id/id_choices.py:52 +msgid "Sumatera Barat" +msgstr "Sumaratera occidental" + +#: contrib/localflavor/id/id_choices.py:40 +#: contrib/localflavor/id/id_choices.py:56 +msgid "Sumatera Selatan" +msgstr "Sumatera du Sud" + +#: contrib/localflavor/id/id_choices.py:41 +#: contrib/localflavor/id/id_choices.py:58 +msgid "Sumatera Utara" +msgstr "Sumatera du Nord" + +#: contrib/localflavor/id/id_choices.py:46 +msgid "Magelang" +msgstr "Megelang" + +#: contrib/localflavor/id/id_choices.py:48 +msgid "Surakarta - Solo" +msgstr "Surakarta - Solo" + +#: contrib/localflavor/id/id_choices.py:49 +msgid "Madiun" +msgstr "Madiun" + +#: contrib/localflavor/id/id_choices.py:50 +msgid "Kediri" +msgstr "Kediri" + +#: contrib/localflavor/id/id_choices.py:53 +msgid "Tapanuli" +msgstr "Tapanuli" + +#: contrib/localflavor/id/id_choices.py:61 +msgid "Kepulauan Bangka Belitung" +msgstr "Kepulauan Bangka Belitung" + +# http://en.wikipedia.org/wiki/Consular_corps +#: contrib/localflavor/id/id_choices.py:63 +msgid "Corps Consulate" +msgstr "Corps consulaire" + +#: contrib/localflavor/id/id_choices.py:64 +msgid "Corps Diplomatic" +msgstr "Corps diplomatique" + +#: contrib/localflavor/id/id_choices.py:65 +msgid "Bandung" +msgstr "Bandung" + +#: contrib/localflavor/id/id_choices.py:67 +msgid "Sulawesi Utara Daratan" +msgstr "Sulawesi du Nord" + +# NTT signifie Nusa Tenggara Timur +#: contrib/localflavor/id/id_choices.py:72 +msgid "NTT - Timor" +msgstr "NTT - Timor" + +#: contrib/localflavor/id/id_choices.py:74 +msgid "Sulawesi Utara Kepulauan" +msgstr "Îles de Sulawesi du Nord" + +#: contrib/localflavor/id/id_choices.py:77 +msgid "NTB - Lombok" +msgstr "NTB - Lombok" + +#: contrib/localflavor/id/id_choices.py:78 +msgid "Papua dan Papua Barat" +msgstr "Papua dan Papua Barat" + +#: contrib/localflavor/id/id_choices.py:80 +msgid "Cirebon" +msgstr "Cirebon" + +#: contrib/localflavor/id/id_choices.py:81 +msgid "NTB - Sumbawa" +msgstr "NTB - Sumbawa" + +#: contrib/localflavor/id/id_choices.py:82 +msgid "NTT - Flores" +msgstr "NTT - Florès" + +#: contrib/localflavor/id/id_choices.py:83 +msgid "NTT - Sumba" +msgstr "NTT - Sumba" + +#: contrib/localflavor/id/id_choices.py:84 +msgid "Bogor" +msgstr "Bogor" + +#: contrib/localflavor/id/id_choices.py:85 +msgid "Pekalongan" +msgstr "Pekalongan" + +#: contrib/localflavor/id/id_choices.py:86 +msgid "Semarang" +msgstr "Semarang" + +#: contrib/localflavor/id/id_choices.py:87 +msgid "Pati" +msgstr "Pati" + +#: contrib/localflavor/id/id_choices.py:91 +msgid "Surabaya" +msgstr "Surabaya" + +#: contrib/localflavor/id/id_choices.py:92 +msgid "Madura" +msgstr "Madura" + +#: contrib/localflavor/id/id_choices.py:93 +msgid "Malang" +msgstr "Malang" + +#: contrib/localflavor/id/id_choices.py:94 +msgid "Jember" +msgstr "Jember" + +#: contrib/localflavor/id/id_choices.py:95 +msgid "Banyumas" +msgstr "Banyumas" + +#: contrib/localflavor/id/id_choices.py:96 +msgid "Federal Government" +msgstr "Gouvernement fédéral" + +#: contrib/localflavor/id/id_choices.py:97 +msgid "Bojonegoro" +msgstr "Bojonegoro" + +#: contrib/localflavor/id/id_choices.py:98 +msgid "Purwakarta" +msgstr "Purwakarta" + +#: contrib/localflavor/id/id_choices.py:99 +msgid "Sidoarjo" +msgstr "Sidoarjo" + +#: contrib/localflavor/id/id_choices.py:100 +msgid "Garut" +msgstr "Garut" + +#: contrib/localflavor/ie/ie_counties.py:8 +msgid "Antrim" +msgstr "Antrim" + +#: contrib/localflavor/ie/ie_counties.py:9 +msgid "Armagh" +msgstr "Armagh" + +#: contrib/localflavor/ie/ie_counties.py:10 +msgid "Carlow" +msgstr "Carlow" + +#: contrib/localflavor/ie/ie_counties.py:11 +msgid "Cavan" +msgstr "Cavan" + +#: contrib/localflavor/ie/ie_counties.py:12 +msgid "Clare" +msgstr "Clare" + +#: contrib/localflavor/ie/ie_counties.py:13 +msgid "Cork" +msgstr "Cork" + +#: contrib/localflavor/ie/ie_counties.py:14 +msgid "Derry" +msgstr "Derry" + +#: contrib/localflavor/ie/ie_counties.py:15 +msgid "Donegal" +msgstr "Donegal" + +#: contrib/localflavor/ie/ie_counties.py:16 +msgid "Down" +msgstr "Down" + +#: contrib/localflavor/ie/ie_counties.py:17 +msgid "Dublin" +msgstr "Dublin" + +#: contrib/localflavor/ie/ie_counties.py:18 +msgid "Fermanagh" +msgstr "Fermanagh" + +#: contrib/localflavor/ie/ie_counties.py:19 +msgid "Galway" +msgstr "Galway" + +#: contrib/localflavor/ie/ie_counties.py:20 +msgid "Kerry" +msgstr "Kerry" + +#: contrib/localflavor/ie/ie_counties.py:21 +msgid "Kildare" +msgstr "Kildare" + +#: contrib/localflavor/ie/ie_counties.py:22 +msgid "Kilkenny" +msgstr "Kilkenny" + +#: contrib/localflavor/ie/ie_counties.py:23 +msgid "Laois" +msgstr "Laois" + +#: contrib/localflavor/ie/ie_counties.py:24 +msgid "Leitrim" +msgstr "Leitrim" + +#: contrib/localflavor/ie/ie_counties.py:25 +msgid "Limerick" +msgstr "Limerick" + +#: contrib/localflavor/ie/ie_counties.py:26 +msgid "Longford" +msgstr "Longford" + +#: contrib/localflavor/ie/ie_counties.py:27 +msgid "Louth" +msgstr "Louth" + +#: contrib/localflavor/ie/ie_counties.py:28 +msgid "Mayo" +msgstr "Mayo" + +#: contrib/localflavor/ie/ie_counties.py:29 +msgid "Meath" +msgstr "Meath" + +#: contrib/localflavor/ie/ie_counties.py:30 +msgid "Monaghan" +msgstr "Monaghan" + +#: contrib/localflavor/ie/ie_counties.py:31 +msgid "Offaly" +msgstr "Offaly" + +#: contrib/localflavor/ie/ie_counties.py:32 +msgid "Roscommon" +msgstr "Roscommon" + +#: contrib/localflavor/ie/ie_counties.py:33 +msgid "Sligo" +msgstr "Sligo" + +#: contrib/localflavor/ie/ie_counties.py:34 +msgid "Tipperary" +msgstr "Tipperary" + +#: contrib/localflavor/ie/ie_counties.py:35 +msgid "Tyrone" +msgstr "Tyrone" + +#: contrib/localflavor/ie/ie_counties.py:36 +msgid "Waterford" +msgstr "Waterford" + +#: contrib/localflavor/ie/ie_counties.py:37 +msgid "Westmeath" +msgstr "Westmeath" + +#: contrib/localflavor/ie/ie_counties.py:38 +msgid "Wexford" +msgstr "Wexford" + +#: contrib/localflavor/ie/ie_counties.py:39 +msgid "Wicklow" +msgstr "Wicklow" + +#: contrib/localflavor/in_/forms.py:15 msgid "Enter a zip code in the format XXXXXXX." msgstr "Saisissez un code postal au format XXXXXXX." -#: contrib/localflavor/is_/forms.py:17 +#: contrib/localflavor/is_/forms.py:18 msgid "" "Enter a valid Icelandic identification number. The format is XXXXXX-XXXX." msgstr "Saisissez un code postal islandais valide au format XXXXXX-XXXX." -#: contrib/localflavor/is_/forms.py:18 +#: contrib/localflavor/is_/forms.py:19 msgid "The Icelandic identification number is not valid." msgstr "Le numéro d'identification islandais est non valide." -#: contrib/localflavor/it/forms.py:14 +#: contrib/localflavor/it/forms.py:15 msgid "Enter a valid zip code." msgstr "Saisissez un code postal valide." -#: contrib/localflavor/it/forms.py:43 +#: contrib/localflavor/it/forms.py:44 msgid "Enter a valid Social Security number." msgstr "Saisissez un numéro valide de Sécurité Sociale." -#: contrib/localflavor/it/forms.py:68 +#: contrib/localflavor/it/forms.py:69 msgid "Enter a valid VAT number." msgstr "Saisissez un numéro de TVA valide." @@ -2841,6 +3278,10 @@ msgstr "Kagoshima" msgid "Okinawa" msgstr "Okinawa" +#: contrib/localflavor/kw/forms.py:25 +msgid "Enter a valid Kuwaiti Civil ID number" +msgstr "Saisissez un numéro d'identification civil koweïtien valide" + #: contrib/localflavor/mx/mx_states.py:12 msgid "Aguascalientes" msgstr "Aguascalientes" @@ -2969,15 +3410,11 @@ msgstr "Yucatán" msgid "Zacatecas" msgstr "Zacatecas" -#: contrib/localflavor/nl/forms.py:21 +#: contrib/localflavor/nl/forms.py:22 msgid "Enter a valid postal code" msgstr "Saisissez un code postal valide." -#: contrib/localflavor/nl/forms.py:52 -msgid "Enter a valid phone number" -msgstr "Saisissez un numéro de téléphone valide." - -#: contrib/localflavor/nl/forms.py:78 +#: contrib/localflavor/nl/forms.py:79 msgid "Enter a valid SoFi number" msgstr "Saisissez un numéro SoFi valide." @@ -3029,21 +3466,21 @@ msgstr "Zeeland" msgid "Zuid-Holland" msgstr "Hollande-Méridionale" -#: contrib/localflavor/no/forms.py:33 +#: contrib/localflavor/no/forms.py:34 msgid "Enter a valid Norwegian social security number." msgstr "Saisissez un numéro de sécurité sociale norvégien valide." -#: contrib/localflavor/pe/forms.py:24 +#: contrib/localflavor/pe/forms.py:25 msgid "This field requires 8 digits." -msgstr "Ce champ requiert 8 chiffres." +msgstr "Ce champ requiert 8 chiffres." -#: contrib/localflavor/pe/forms.py:52 +#: contrib/localflavor/pe/forms.py:53 msgid "This field requires 11 digits." -msgstr "Ce champ requiert 11 chiffres." +msgstr "Ce champ requiert 11 chiffres." #: contrib/localflavor/pl/forms.py:38 msgid "National Identification Number consists of 11 digits." -msgstr "Le numéro national d'identification (NIN) comporte 11 chiffres." +msgstr "Le numéro national d'identification (NIN) comporte 11 chiffres." #: contrib/localflavor/pl/forms.py:39 msgid "Wrong checksum for the National Identification Number." @@ -3062,7 +3499,7 @@ msgstr "Somme de contrôle non valide du numéro de taxe (NIP)." #: contrib/localflavor/pl/forms.py:109 msgid "National Business Register Number (REGON) consists of 9 or 14 digits." msgstr "" -"Le numéro de registre du commerce national (REGON) comporte 9 ou 14 chiffres." +"Le numéro de registre du commerce national (REGON) comporte 9 ou 14 chiffres." #: contrib/localflavor/pl/forms.py:110 msgid "Wrong checksum for the National Business Register Number (REGON)." @@ -3138,6 +3575,16 @@ msgstr "Grande-Pologne" msgid "West Pomerania" msgstr "Poméranie Occidentale" +#: contrib/localflavor/pt/forms.py:17 +msgid "Enter a zip code in the format XXXX-XXX." +msgstr "Saisissez un code postal au format XXXX-XXX." + +#: contrib/localflavor/pt/forms.py:37 +msgid "Phone numbers must have 9 digits, or start by + or 00." +msgstr "" +"Les numéros de téléphone doivent comporter 9 chiffres, ou débuter par un + " +"ou 00." + #: contrib/localflavor/ro/forms.py:19 msgid "Enter a valid CIF." msgstr "Saisissez une CIF valide." @@ -3158,6 +3605,107 @@ msgstr "Les numéros de téléphone doivent être au format XXXX-XXXXXX." msgid "Enter a valid postal code in the format XXXXXX" msgstr "Saisissez un code postal valide au format XXXXXX" +#: contrib/localflavor/se/forms.py:50 +msgid "Enter a valid Swedish organisation number." +msgstr "Saisissez un numéro d'organisation suédois valide." + +#: contrib/localflavor/se/forms.py:107 +msgid "Enter a valid Swedish personal identity number." +msgstr "Saisissez un numéro d'identité personnelle suédois valide." + +# The source code doesn't offer any help to explain the term +#: contrib/localflavor/se/forms.py:108 +msgid "Co-ordination numbers are not allowed." +msgstr "Le nombres de co-ordination ne sont pas autorisés." + +#: contrib/localflavor/se/forms.py:150 +msgid "Enter a Swedish postal code in the format XXXXX." +msgstr "Saisissez un code postal suédois au format XXXXX." + +#: contrib/localflavor/se/se_counties.py:15 +msgid "Stockholm" +msgstr "Stockholm" + +#: contrib/localflavor/se/se_counties.py:16 +msgid "Västerbotten" +msgstr "Västerbotten" + +#: contrib/localflavor/se/se_counties.py:17 +msgid "Norrbotten" +msgstr "Norrbotten" + +#: contrib/localflavor/se/se_counties.py:18 +msgid "Uppsala" +msgstr "Uppsala" + +#: contrib/localflavor/se/se_counties.py:19 +msgid "Södermanland" +msgstr "Södermanland" + +#: contrib/localflavor/se/se_counties.py:20 +msgid "Östergötland" +msgstr "Östergötland" + +#: contrib/localflavor/se/se_counties.py:21 +msgid "Jönköping" +msgstr "Jönköping" + +#: contrib/localflavor/se/se_counties.py:22 +msgid "Kronoberg" +msgstr "Kronoberg" + +#: contrib/localflavor/se/se_counties.py:23 +msgid "Kalmar" +msgstr "Kalmar" + +#: contrib/localflavor/se/se_counties.py:24 +msgid "Gotland" +msgstr "Gotland" + +#: contrib/localflavor/se/se_counties.py:25 +msgid "Blekinge" +msgstr "Blekinge" + +#: contrib/localflavor/se/se_counties.py:26 +msgid "Skåne" +msgstr "Skåne" + +#: contrib/localflavor/se/se_counties.py:27 +msgid "Halland" +msgstr "Halland" + +#: contrib/localflavor/se/se_counties.py:28 +msgid "Västra Götaland" +msgstr "Västra Götaland" + +#: contrib/localflavor/se/se_counties.py:29 +msgid "Värmland" +msgstr "Värmland" + +#: contrib/localflavor/se/se_counties.py:30 +msgid "Örebro" +msgstr "Örebro" + +#: contrib/localflavor/se/se_counties.py:31 +msgid "Västmanland" +msgstr "Västmanland" + +#: contrib/localflavor/se/se_counties.py:32 +msgid "Dalarna" +msgstr "Dalarna" + +#: contrib/localflavor/se/se_counties.py:33 +msgid "Gävleborg" +msgstr "Gävleborg" + +#: contrib/localflavor/se/se_counties.py:34 +msgid "Västernorrland" +msgstr "Västernorrland" + +#: contrib/localflavor/se/se_counties.py:35 +msgid "Jämtland" +msgstr "Jämtland" + #: contrib/localflavor/sk/sk_districts.py:8 msgid "Banska Bystrica" msgstr "Banská Bystrica" @@ -3180,23 +3728,23 @@ msgstr "Brezno" #: contrib/localflavor/sk/sk_districts.py:13 msgid "Bratislava I" -msgstr "Bratislava·I" +msgstr "Bratislava I" #: contrib/localflavor/sk/sk_districts.py:14 msgid "Bratislava II" -msgstr "Bratislava·II" +msgstr "Bratislava II" #: contrib/localflavor/sk/sk_districts.py:15 msgid "Bratislava III" -msgstr "Bratislava·III" +msgstr "Bratislava III" #: contrib/localflavor/sk/sk_districts.py:16 msgid "Bratislava IV" -msgstr "Bratislava·IV" +msgstr "Bratislava IV" #: contrib/localflavor/sk/sk_districts.py:17 msgid "Bratislava V" -msgstr "Bratislava·V" +msgstr "Bratislava V" #: contrib/localflavor/sk/sk_districts.py:18 msgid "Bytca" @@ -3790,20 +4338,45 @@ msgstr "Écosse" msgid "Wales" msgstr "Pays de Galles" -#: contrib/localflavor/us/forms.py:16 +#: contrib/localflavor/us/forms.py:17 msgid "Enter a zip code in the format XXXXX or XXXXX-XXXX." msgstr "Saisissez un code postal américain au format XXXXX ou XXXXX-XXXX." -#: contrib/localflavor/us/forms.py:54 +#: contrib/localflavor/us/forms.py:26 +msgid "Phone numbers must be in XXX-XXX-XXXX format." +msgstr "Les numéros de téléphone doivent être au format XXX-XXX-XXXX." + +#: contrib/localflavor/us/forms.py:55 msgid "Enter a valid U.S. Social Security number in XXX-XX-XXXX format." msgstr "" "Saisissez un numéro de sécurité sociale américain au format XXX-XX-XXXX." -#: contrib/localflavor/za/forms.py:20 +#: contrib/localflavor/us/forms.py:88 +msgid "Enter a U.S. state or territory." +msgstr "Saisissez un état ou un territoire américain." + +#: contrib/localflavor/us/models.py:8 +msgid "U.S. state (two uppercase letters)" +msgstr "État Américain (deux lettres majuscules)" + +#: contrib/localflavor/us/models.py:17 +msgid "Phone number" +msgstr "Numéro de téléphone" + +#: contrib/localflavor/uy/forms.py:28 +msgid "Enter a valid CI number in X.XXX.XXX-X,XXXXXXX-X or XXXXXXXX format." +msgstr "" +"Saisissez un numéro de CI valide au format X.XXX.XXX-X,XXXXXXX-X ou XXXXXXXX." + +#: contrib/localflavor/uy/forms.py:30 +msgid "Enter a valid CI number." +msgstr "Saisissez un numéro CI valide." + +#: contrib/localflavor/za/forms.py:21 msgid "Enter a valid South African ID number" msgstr "Saisissez un numéro d'identification sud-africain valide." -#: contrib/localflavor/za/forms.py:54 +#: contrib/localflavor/za/forms.py:55 msgid "Enter a valid South African postal code" msgstr "Saisissez un code postal sud-africain valide." @@ -3843,6 +4416,10 @@ msgstr "Nord-Ouest" msgid "Western Cape" msgstr "Cap-Occidental" +#: contrib/messages/tests/base.py:101 +msgid "lazy message" +msgstr "message « lazy »" + #: contrib/redirects/models.py:7 msgid "redirect from" msgstr "redirigé depuis" @@ -3907,61 +4484,227 @@ msgstr "nom à afficher" msgid "sites" msgstr "sites" -#: db/models/fields/__init__.py:356 db/models/fields/__init__.py:710 -msgid "This value must be an integer." -msgstr "Cette valeur doit être un entier." +#: core/validators.py:19 forms/fields.py:66 +msgid "Enter a valid value." +msgstr "Saisissez une valeur valide." -#: db/models/fields/__init__.py:388 -msgid "This value must be either True or False." -msgstr "Cette valeur doit être soit vraie (True) soit fausse (False)." +#: core/validators.py:69 forms/fields.py:515 +msgid "Enter a valid URL." +msgstr "Saisissez une URL valide." -#: db/models/fields/__init__.py:427 -msgid "This field cannot be null." -msgstr "Ce champ ne peut pas être vide." +#: core/validators.py:71 forms/fields.py:516 +msgid "This URL appears to be a broken link." +msgstr "Cette URL semble être cassée." -#: db/models/fields/__init__.py:443 +#: core/validators.py:88 forms/fields.py:859 +msgid "" +"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." +msgstr "" +"Ce champ ne doit contenir que des lettres, des nombres, des tirets bas _ et " +"des traits d'union." + +#: core/validators.py:91 forms/fields.py:852 +msgid "Enter a valid IPv4 address." +msgstr "Saisissez une adresse IPv4 valide." + +#: core/validators.py:94 db/models/fields/__init__.py:591 msgid "Enter only digits separated by commas." msgstr "Saisissez uniquement des chiffres séparés par des virgules." -#: db/models/fields/__init__.py:474 +#: core/validators.py:100 +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" +"Assurez-vous que cette valeur est %(limit_value)s (actuellement %(show_value)" +"s)." + +#: core/validators.py:118 forms/fields.py:196 forms/fields.py:248 +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" +"Assurez-vous que cette valeur est inférieure ou égale à %(limit_value)s." + +#: core/validators.py:123 forms/fields.py:197 forms/fields.py:249 +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" +"Assurez-vous que cette valeur est supérieure ou égale à %(limit_value)s." + +#: core/validators.py:129 +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d characters (it has %" +"(show_value)d)." +msgstr "" +"Assurez-vous que cette valeur comporte au moins %(limit_value)d caractères " +"(actuellement %(show_value)d)." + +#: core/validators.py:135 +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d characters (it has %" +"(show_value)d)." +msgstr "" +"Assurez-vous que cette valeur comporte au maximum %(limit_value)d caractères " +"(actuellement %(show_value)d)." + +#: db/models/base.py:775 +#, python-format +msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s." +msgstr "" +"%(field_name)s doit être unique pour la partie %(lookup)s de %(date_field)s." + +#: db/models/base.py:790 db/models/base.py:798 +#, python-format +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "Un(e) %(model_name)s avec ce %(field_label)s existe déjà." + +#: db/models/fields/__init__.py:62 +#, python-format +msgid "Value %r is not a valid choice." +msgstr "La valeur « %r » n'est pas un choix valide." + +#: db/models/fields/__init__.py:63 +msgid "This field cannot be null." +msgstr "Ce champ ne peut pas être vide." + +#: db/models/fields/__init__.py:64 +msgid "This field cannot be blank." +msgstr "Ce champ ne peut pas être vide." + +#: db/models/fields/__init__.py:69 +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "Champ de type : %(field_type)s" + +#: db/models/fields/__init__.py:475 db/models/fields/__init__.py:871 +#: db/models/fields/__init__.py:967 db/models/fields/__init__.py:978 +#: db/models/fields/__init__.py:1005 +msgid "Integer" +msgstr "Entier" + +#: db/models/fields/__init__.py:479 +msgid "This value must be an integer." +msgstr "Cette valeur doit être un entier." + +#: db/models/fields/__init__.py:514 +msgid "This value must be either True or False." +msgstr "Cette valeur doit être soit vraie (True) soit fausse (False)." + +#: db/models/fields/__init__.py:516 +msgid "Boolean (Either True or False)" +msgstr "Booléen (soit vrai ou faux)" + +#: db/models/fields/__init__.py:558 db/models/fields/__init__.py:988 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "Chaîne de caractère (jusqu'à %(max_length)s)" + +#: db/models/fields/__init__.py:586 +msgid "Comma-separated integers" +msgstr "Des entiers séparés par une virgule" + +#: db/models/fields/__init__.py:600 +msgid "Date (without time)" +msgstr "Date (sans l'heure)" + +#: db/models/fields/__init__.py:604 msgid "Enter a valid date in YYYY-MM-DD format." msgstr "Saisissez une date valide au format AAAA-MM-JJ." -#: db/models/fields/__init__.py:483 +#: db/models/fields/__init__.py:605 #, python-format msgid "Invalid date: %s" msgstr "Date non valide : %s" -#: db/models/fields/__init__.py:547 db/models/fields/__init__.py:565 +#: db/models/fields/__init__.py:686 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format." msgstr "" "Saisissez une date et une heure valides au format AAAA-MM-JJ HH:MM[:ss[." "uuuuuu]]." -#: db/models/fields/__init__.py:601 +#: db/models/fields/__init__.py:688 +msgid "Date (with time)" +msgstr "Date (avec l'heure)" + +#: db/models/fields/__init__.py:754 msgid "This value must be a decimal number." msgstr "Cette valeur doit être un nombre décimal." -#: db/models/fields/__init__.py:686 +#: db/models/fields/__init__.py:756 +msgid "Decimal number" +msgstr "Nombre décimal" + +#: db/models/fields/__init__.py:811 +msgid "E-mail address" +msgstr "Adresse électronique" + +#: db/models/fields/__init__.py:818 db/models/fields/files.py:220 +#: db/models/fields/files.py:331 +msgid "File path" +msgstr "Chemin vers le fichier" + +#: db/models/fields/__init__.py:841 db/models/fields/__init__.py:869 msgid "This value must be a float." msgstr "Cette valeur doit être un nombre réel." -#: db/models/fields/__init__.py:746 +#: db/models/fields/__init__.py:843 +msgid "Floating point number" +msgstr "Nombre à virgule flottante" + +#: db/models/fields/__init__.py:896 +msgid "Big (8 byte) integer" +msgstr "Grand entier (8 octets)" + +#: db/models/fields/__init__.py:925 msgid "This value must be either None, True or False." msgstr "Cette valeur doit être nulle (None), vraie (True) ou fausse (False)." -#: db/models/fields/__init__.py:849 db/models/fields/__init__.py:863 +#: db/models/fields/__init__.py:927 +msgid "Boolean (Either True, False or None)" +msgstr "Booléen (soit vrai, faux ou nul)" + +#: db/models/fields/__init__.py:1011 +msgid "Text" +msgstr "Texte" + +#: db/models/fields/__init__.py:1027 +msgid "Time" +msgstr "Heure" + +#: db/models/fields/__init__.py:1031 msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgstr "Saisissez une heure valide au format HH:MM[:ss[.uuuuuu]]." -#: db/models/fields/related.py:816 +#: db/models/fields/__init__.py:1115 +msgid "XML text" +msgstr "Texte XML" + +#: db/models/fields/related.py:755 +#, python-format +msgid "Model %(model)s with pk %(pk)r does not exist." +msgstr "Le modèle %(model)s avec la clef primaire %(pk)r n'existe pas." + +#: db/models/fields/related.py:757 +msgid "Foreign Key (type determined by related field)" +msgstr "Clé étrangère (type défini par le champ lié)" + +#: db/models/fields/related.py:879 +msgid "One-to-one relationship" +msgstr "Relation un à un" + +#: db/models/fields/related.py:939 +msgid "Many-to-many relationship" +msgstr "Relation plusieurs à plusieurs" + +#: db/models/fields/related.py:959 msgid "" "Hold down \"Control\", or \"Command\" on a Mac, to select more than one." msgstr "" "Maintenez appuyé « Ctrl », ou « Commande (touche pomme) » sur un Mac, pour en " "sélectionner plusieurs." -#: db/models/fields/related.py:894 +#: db/models/fields/related.py:1020 #, python-format msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid_plural "" @@ -3971,87 +4714,59 @@ msgstr[0] "" msgstr[1] "" "Saisissez des ID %(self)s valides. Les valeurs %(value)r sont non valides." -#: forms/fields.py:54 +#: forms/fields.py:65 msgid "This field is required." msgstr "Ce champ est obligatoire." -#: forms/fields.py:55 -msgid "Enter a valid value." -msgstr "Saisissez une valeur valide." - -#: forms/fields.py:138 -#, python-format -msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." -msgstr "" -"Assurez-vous que cette valeur fait moins de %(max)d caractères (actuellement " -"%(length)d caractères)." - -#: forms/fields.py:139 -#, python-format -msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." -msgstr "" -"Assurez-vous que cette valeur fait plus de %(min)d caractères (actuellement %" -"(length)d caractères)." - -#: forms/fields.py:166 +#: forms/fields.py:195 msgid "Enter a whole number." msgstr "Saisissez un nombre entier." -#: forms/fields.py:167 forms/fields.py:196 forms/fields.py:225 -#, python-format -msgid "Ensure this value is less than or equal to %s." -msgstr "Assurez-vous que cette valeur est inférieure ou égale à %s." - -#: forms/fields.py:168 forms/fields.py:197 forms/fields.py:226 -#, python-format -msgid "Ensure this value is greater than or equal to %s." -msgstr "Assurez-vous que cette valeur est supérieure ou égale à %s." - -#: forms/fields.py:195 forms/fields.py:224 +#: forms/fields.py:225 forms/fields.py:247 msgid "Enter a number." msgstr "Saisissez un nombre." -#: forms/fields.py:227 +#: forms/fields.py:250 #, python-format msgid "Ensure that there are no more than %s digits in total." msgstr "Assurez-vous qu'il n'y a pas plus de %s chiffres au total." -#: forms/fields.py:228 +#: forms/fields.py:251 #, python-format msgid "Ensure that there are no more than %s decimal places." msgstr "Assurez-vous qu'il n'y a pas plus de %s chiffres après la virgule." -#: forms/fields.py:229 +#: forms/fields.py:252 #, python-format msgid "Ensure that there are no more than %s digits before the decimal point." msgstr "Assurez-vous qu'il n'y a pas plus de %s chiffres avant la virgule." -#: forms/fields.py:288 forms/fields.py:863 +#: forms/fields.py:309 forms/fields.py:824 msgid "Enter a valid date." msgstr "Saisissez une date valide." -#: forms/fields.py:322 forms/fields.py:864 +#: forms/fields.py:337 forms/fields.py:825 msgid "Enter a valid time." msgstr "Saisissez une heure valide." -#: forms/fields.py:361 +#: forms/fields.py:363 msgid "Enter a valid date/time." msgstr "Saisissez une date et une heure valides." -#: forms/fields.py:447 +#: forms/fields.py:421 msgid "No file was submitted. Check the encoding type on the form." msgstr "" "Aucun fichier n'a été soumis. Vérifiez le type d'encodage du formulaire." -#: forms/fields.py:448 +#: forms/fields.py:422 msgid "No file was submitted." msgstr "Aucun fichier n'a été soumis." -#: forms/fields.py:449 +#: forms/fields.py:423 msgid "The submitted file is empty." msgstr "Le fichier soumis est vide." -#: forms/fields.py:450 +#: forms/fields.py:424 #, python-format msgid "" "Ensure this filename has at most %(max)d characters (it has %(length)d)." @@ -4059,7 +4774,7 @@ msgstr "" "Assurez-vous que ce nom de fichier ne contient pas plus de %(max)d " "caractères (actuellement %(length)d caractères)." -#: forms/fields.py:483 +#: forms/fields.py:459 msgid "" "Upload a valid image. The file you uploaded was either not an image or a " "corrupted image." @@ -4067,63 +4782,33 @@ msgstr "" "Téléversez une image valide. Le fichier que vous avez transféré n'est pas " "une image ou bien est corrompu." -#: forms/fields.py:544 -msgid "Enter a valid URL." -msgstr "Saisissez une URL valide." - -#: forms/fields.py:545 -msgid "This URL appears to be a broken link." -msgstr "Cette URL semble être cassée." - -#: forms/fields.py:625 forms/fields.py:703 +#: forms/fields.py:582 forms/fields.py:657 #, python-format msgid "Select a valid choice. %(value)s is not one of the available choices." msgstr "Sélectionnez un choix valide. %(value)s n'en fait pas partie." -#: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003 +#: forms/fields.py:658 forms/fields.py:720 forms/models.py:961 msgid "Enter a list of values." msgstr "Saisissez une liste de valeurs." -#: forms/fields.py:892 -msgid "Enter a valid IPv4 address." -msgstr "Saisissez une adresse IPv4 valide." - -#: forms/fields.py:902 -msgid "" -"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." -msgstr "" -"Ce champ ne doit contenir que des lettres, des nombres, des tirets bas _ et " -"des traits d'union." - # Si « : » est requis, créer un ticket -#: forms/formsets.py:271 forms/formsets.py:273 +#: forms/formsets.py:290 forms/formsets.py:292 msgid "Order" msgstr "Ordre" -#: forms/models.py:367 -#, python-format -msgid "%(field_name)s must be unique for %(date_field)s %(lookup)s." -msgstr "" -"%(field_name)s doit être unique pour la partie %(lookup)s de %(date_field)s." - -#: forms/models.py:381 forms/models.py:389 -#, python-format -msgid "%(model_name)s with this %(field_label)s already exists." -msgstr "Un(e) %(model_name)s avec ce %(field_label)s existe déjà." - -#: forms/models.py:594 +#: forms/models.py:538 #, python-format msgid "Please correct the duplicate data for %(field)s." msgstr "Corrigez les données à double dans %(field)s." -#: forms/models.py:598 +#: forms/models.py:542 #, python-format msgid "Please correct the duplicate data for %(field)s, which must be unique." msgstr "" "Corrigez les données à double dans %(field)s qui doit contenir des valeurs " "uniques." -#: forms/models.py:604 +#: forms/models.py:548 #, python-format msgid "" "Please correct the duplicate data for %(field_name)s which must be unique " @@ -4132,54 +4817,54 @@ msgstr "" "Corrigez les données à double dans %(field_name)s qui doit contenir des " "valeurs uniques pour la partie %(lookup)s de %(date_field)s." -#: forms/models.py:612 +#: forms/models.py:556 msgid "Please correct the duplicate values below." msgstr "Corrigez les valeurs à double ci-dessous." -#: forms/models.py:867 +#: forms/models.py:820 msgid "The inline foreign key did not match the parent instance primary key." msgstr "" "La clé étrangère en ligne ne correspond pas à la clé primaire de l'instance " "parente." -#: forms/models.py:930 +#: forms/models.py:886 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." -#: forms/models.py:1004 +#: forms/models.py:962 #, 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." -#: forms/models.py:1006 +#: forms/models.py:964 #, python-format msgid "\"%s\" is not a valid value for a primary key." msgstr "« %s » n'est pas une valeur correcte pour une clé primaire." -#: template/defaultfilters.py:767 +#: template/defaultfilters.py:775 msgid "yes,no,maybe" msgstr "oui, non, peut-être" -#: template/defaultfilters.py:798 +#: template/defaultfilters.py:806 #, python-format msgid "%(size)d byte" msgid_plural "%(size)d bytes" msgstr[0] "%(size)d octet" msgstr[1] "%(size)d octets" -#: template/defaultfilters.py:800 +#: template/defaultfilters.py:808 #, python-format msgid "%.1f KB" msgstr "%.1f Ko" -#: template/defaultfilters.py:802 +#: template/defaultfilters.py:810 #, python-format msgid "%.1f MB" msgstr "%.1f Mo" -#: template/defaultfilters.py:803 +#: template/defaultfilters.py:811 #, python-format msgid "%.1f GB" msgstr "%.1f Go" @@ -4390,7 +5075,7 @@ msgstr "nov." msgid "Dec." msgstr "déc." -#: utils/text.py:128 +#: utils/text.py:130 msgid "or" msgstr "ou" @@ -4444,33 +5129,37 @@ msgstr "%(number)d %(type)s" msgid ", %(number)d %(type)s" msgstr ", %(number)d %(type)s" -#: utils/translation/trans_real.py:399 +#: utils/translation/trans_real.py:512 msgid "DATE_FORMAT" msgstr "j F Y" -#: utils/translation/trans_real.py:401 +#: utils/translation/trans_real.py:513 +msgid "DATETIME_FORMAT" +msgstr "j F Y, G:i" + +#: utils/translation/trans_real.py:514 msgid "TIME_FORMAT" msgstr "G:i:s" -#: utils/translation/trans_real.py:417 +#: utils/translation/trans_real.py:535 msgid "YEAR_MONTH_FORMAT" msgstr "F Y" -#: utils/translation/trans_real.py:418 +#: utils/translation/trans_real.py:536 msgid "MONTH_DAY_FORMAT" msgstr "j F" -#: views/generic/create_update.py:114 +#: views/generic/create_update.py:115 #, 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:156 +#: views/generic/create_update.py:158 #, 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:198 +#: views/generic/create_update.py:201 #, python-format msgid "The %(verbose_name)s was deleted." msgstr "L'objet %(verbose_name)s a été supprimé."