diff --git a/AUTHORS b/AUTHORS index 521a210900..760ffdd21e 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 @@ -136,6 +139,7 @@ answer newbie questions, and generally made Django that much better: Jason McBrayer mccutchen@gmail.com michael.mcewan@gmail.com + mikko@sorl.net mitakummaa@gmail.com mmarshall Eric Moritz @@ -147,6 +151,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 148afe0e38..02a882fd99 100644 --- a/django/conf/global_settings.py +++ b/django/conf/global_settings.py @@ -69,6 +69,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')), @@ -319,3 +320,10 @@ TEST_RUNNER = 'django.test.simple.run_tests' # The name of the database to use for testing purposes. # If None, a name of 'test_' + DATABASE_NAME will be assumed TEST_DATABASE_NAME = None + +############ +# FIXTURES # +############ + +# The list of directories to search for fixtures +FIXTURE_DIRS = () diff --git a/django/conf/locale/es/LC_MESSAGES/django.mo b/django/conf/locale/es/LC_MESSAGES/django.mo index 8edce68c53..e9105aa64c 100644 Binary files a/django/conf/locale/es/LC_MESSAGES/django.mo and b/django/conf/locale/es/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/es/LC_MESSAGES/django.po b/django/conf/locale/es/LC_MESSAGES/django.po index 9c68183113..d8166e6201 100644 --- a/django/conf/locale/es/LC_MESSAGES/django.po +++ b/django/conf/locale/es/LC_MESSAGES/django.po @@ -5,14 +5,14 @@ # Ricardo Javier Crdenes Medina , 2005. # Ricardo Javier Cardenes Medina , 2005. # AgarFu , 2007. -# Mario Gonzalez +# Mario Gonzalez , 2007 msgid "" msgstr "" "Project-Id-Version: django\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-02-24 17:08+0000\n" "PO-Revision-Date: 2007-02-24 18:02-0600\n" -"Last-Translator: AgarFu \n" +"Last-Translator: Mario Gonzalez \n" "Language-Team: Castellano \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" @@ -435,7 +435,7 @@ msgstr "Introduzca una fecha v #: db/models/fields/__init__.py:521 core/validators.py:156 msgid "Enter a valid date/time in YYYY-MM-DD HH:MM format." -msgstr "Introduzca una fecha/hora vlida en formato YYYY-MM-DD HH:MM." +msgstr "Introduzca una fecha/hora vlida en formato AAAA-MM-DD HH:MM." #: db/models/fields/__init__.py:625 msgid "Enter a valid filename." @@ -934,19 +934,19 @@ msgstr "nombre en c #: contrib/auth/models.py:42 msgid "permission" -msgstr "Permiso" +msgstr "permiso" #: contrib/auth/models.py:43 contrib/auth/models.py:58 msgid "permissions" -msgstr "Permisos" +msgstr "permisos" #: contrib/auth/models.py:60 msgid "group" -msgstr "Grupo" +msgstr "grupo" #: contrib/auth/models.py:61 contrib/auth/models.py:100 msgid "groups" -msgstr "Grupos" +msgstr "grupos" #: contrib/auth/models.py:90 msgid "username" @@ -1034,15 +1034,15 @@ msgstr "" #: contrib/auth/models.py:102 msgid "user permissions" -msgstr "Permisos" +msgstr "permisos" #: contrib/auth/models.py:105 msgid "user" -msgstr "Usuario" +msgstr "usuario" #: contrib/auth/models.py:106 msgid "users" -msgstr "Usuarios" +msgstr "usuarios" #: contrib/auth/models.py:111 msgid "Personal info" @@ -1062,7 +1062,7 @@ msgstr "Grupos" #: contrib/auth/models.py:258 msgid "message" -msgstr "Mensaje" +msgstr "mensaje" #: contrib/auth/forms.py:17 contrib/auth/forms.py:138 msgid "The two password fields didn't match." @@ -1220,11 +1220,11 @@ msgstr "aprobado por el staff" #: contrib/comments/models.py:176 msgid "free comment" -msgstr "Comentario libre" +msgstr "comentario libre" #: contrib/comments/models.py:177 msgid "free comments" -msgstr "Comentarios libres" +msgstr "comentarios libres" #: contrib/comments/models.py:233 msgid "score" @@ -1236,16 +1236,16 @@ msgstr "fecha de la puntuaci #: contrib/comments/models.py:237 msgid "karma score" -msgstr "Punto karma" +msgstr "punto karma" #: contrib/comments/models.py:238 msgid "karma scores" -msgstr "Puntos karma" +msgstr "puntos karma" #: contrib/comments/models.py:242 #, python-format msgid "%(score)d rating by %(user)s" -msgstr "Puntuado %(score)d por %(user)s" +msgstr "puntuado %(score)d por %(user)s" #: contrib/comments/models.py:258 #, python-format @@ -1264,11 +1264,11 @@ msgstr "fecha de la marca" #: contrib/comments/models.py:268 msgid "user flag" -msgstr "Marca de usuario" +msgstr "marca de usuario" #: contrib/comments/models.py:269 msgid "user flags" -msgstr "Marcas de usuario" +msgstr "marcas de usuario" #: contrib/comments/models.py:273 #, python-format @@ -1281,11 +1281,11 @@ msgstr "fecha de eliminaci #: contrib/comments/models.py:280 msgid "moderator deletion" -msgstr "Eliminacin de moderador" +msgstr "eliminacin de moderador" #: contrib/comments/models.py:281 msgid "moderator deletions" -msgstr "Eliminaciones de moderador" +msgstr "eliminaciones de moderador" #: contrib/comments/models.py:285 #, python-format @@ -2095,7 +2095,7 @@ msgstr "etiqueta:" #: contrib/admin/views/doc.py:77 contrib/admin/views/doc.py:79 #: contrib/admin/views/doc.py:81 msgid "filter:" -msgstr "Filtro:" +msgstr "filtro:" #: contrib/admin/views/doc.py:135 contrib/admin/views/doc.py:137 #: contrib/admin/views/doc.py:139 diff --git a/django/conf/locale/fi/LC_MESSAGES/django.mo b/django/conf/locale/fi/LC_MESSAGES/django.mo index f6470abdd0..024d2ad98b 100644 Binary files a/django/conf/locale/fi/LC_MESSAGES/django.mo and b/django/conf/locale/fi/LC_MESSAGES/django.mo differ diff --git a/django/conf/locale/fi/LC_MESSAGES/django.po b/django/conf/locale/fi/LC_MESSAGES/django.po index 3aa824378d..275feaaf81 100644 --- a/django/conf/locale/fi/LC_MESSAGES/django.po +++ b/django/conf/locale/fi/LC_MESSAGES/django.po @@ -93,7 +93,7 @@ msgstr "tšekki" #: conf/global_settings.py:42 msgid "Welsh" -msgstr "" +msgstr "wales" #: conf/global_settings.py:43 msgid "Danish" @@ -169,15 +169,15 @@ msgstr "venäjä" #: conf/global_settings.py:61 msgid "Slovak" -msgstr "" +msgstr "slovakia" #: conf/global_settings.py:62 msgid "Slovenian" -msgstr "" +msgstr "slovenia" #: conf/global_settings.py:63 msgid "Serbian" -msgstr "" +msgstr "serbia" #: conf/global_settings.py:64 msgid "Swedish" @@ -189,15 +189,15 @@ msgstr "" #: conf/global_settings.py:66 msgid "Ukrainian" -msgstr "" +msgstr "ukraina" #: conf/global_settings.py:67 msgid "Simplified Chinese" -msgstr "" +msgstr "kiina (yksinkertaistettu)" #: conf/global_settings.py:68 msgid "Traditional Chinese" -msgstr "" +msgstr "kiina (perinteinen)" #: core/validators.py:63 msgid "This value must contain only letters, numbers and underscores." @@ -211,7 +211,7 @@ msgstr "Tässä voidaan käyttää vain kirjaimia (a-z), numeroita (0-9) sekä a #: core/validators.py:75 msgid "Uppercase letters are not allowed here." -msgstr "Versaalit (ABC) eivät kelpaa tässä." +msgstr "Isot kirjaimet (ABC) eivät kelpaa tässä." #: core/validators.py:79 msgid "Lowercase letters are not allowed here." @@ -270,7 +270,7 @@ msgstr "Kuva ei kelpaa. Lähettämäsi tiedosto ei ole kuva, tai tiedosto on vio #: core/validators.py:162 #, python-format msgid "The URL %s does not point to a valid image." -msgstr "Osoittessa %s ei ole kelpaavaa kuvaa." +msgstr "Osoittessa %s ei ole kuvaa tai se on vioittunut." #: core/validators.py:166 #, python-format @@ -280,7 +280,7 @@ msgstr "Puhelinnumeron tulee olla muodossa XXX-XXX-XXXX. \"%s\" ei kelpaa." #: core/validators.py:174 #, python-format msgid "The URL %s does not point to a valid QuickTime video." -msgstr "Osoitteessa %s ei ole kelpaavaa QuickTime-videota." +msgstr "Osoitteessa %s ei ole QuickTime-videota tai se on vioittunut." #: core/validators.py:178 msgid "A valid URL is required." @@ -308,7 +308,7 @@ msgstr "URL-osoite %s ei kelpaa." #: core/validators.py:213 core/validators.py:215 #, python-format msgid "The URL %s is a broken link." -msgstr "Osoite %s on katkennut linkki." +msgstr "Osoite %s on rikkoutunut tai väärä linkki." #: core/validators.py:221 msgid "Enter a valid U.S. state abbreviation." @@ -324,7 +324,7 @@ msgstr[1] "Sanoja \"%s\" ei saa käyttää tässä." #: core/validators.py:243 #, python-format msgid "This field must match the '%s' field." -msgstr "" +msgstr "Arvon täytyy olla sama kuin kentässä '%s'." #: core/validators.py:262 msgid "Please enter something for at least one field." @@ -403,7 +403,7 @@ msgstr "Tämä arvo ei kelpaa." #: core/validators.py:441 #, python-format msgid "Could not retrieve anything from %s." -msgstr "" +msgstr "Tietoja ei voida noutaa kohteesta: %s." #: core/validators.py:444 #, python-format @@ -1676,7 +1676,13 @@ msgid_plural "" "\n" "%(text)s" msgstr[0] "" +"Kommentin kirjoittanut käyttäjä on kirjoittanut vain yhden kommentin:\n" +"\n" +"%(text)s" msgstr[1] "" +"Kommentin kirjoittanut käyttäjä on kirjoittanut alle %(count)s kommenttia:\n" +"\n" +"%(text)s" # Mitä "sketchy user" tarkoittaa? #: contrib/comments/views/comments.py:116 @@ -1972,38 +1978,38 @@ msgstr "joulu" #: utils/timesince.py:12 msgid "year" msgid_plural "years" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "vuosi" +msgstr[1] "vuotta" #: utils/timesince.py:13 msgid "month" msgid_plural "months" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "kuukausi" +msgstr[1] "kuukautta" #: utils/timesince.py:14 msgid "week" msgid_plural "weeks" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "viikko" +msgstr[1] "viikkoa" #: utils/timesince.py:15 msgid "day" msgid_plural "days" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "päivä" +msgstr[1] "päivää" #: utils/timesince.py:16 msgid "hour" msgid_plural "hours" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "tunti" +msgstr[1] "tuntia" #: utils/timesince.py:17 msgid "minute" msgid_plural "minutes" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "minuutti" +msgstr[1] "minuuttia" #: utils/translation/trans_real.py:362 msgid "DATE_FORMAT" @@ -2019,10 +2025,9 @@ msgstr "G:i" #: utils/translation/trans_real.py:380 msgid "YEAR_MONTH_FORMAT" -msgstr "N j, Y" +msgstr "N Y" #: utils/translation/trans_real.py:381 -#, fuzzy msgid "MONTH_DAY_FORMAT" msgstr "N j, Y" diff --git a/django/conf/locale/fr/LC_MESSAGES/django.mo b/django/conf/locale/fr/LC_MESSAGES/django.mo index 7b2b1f6e9e..14b8a935a1 100644 Binary files a/django/conf/locale/fr/LC_MESSAGES/django.mo and b/django/conf/locale/fr/LC_MESSAGES/django.mo differ 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 "" "