You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(10) |
Dec
(4) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(1) |
Feb
(8) |
Mar
(8) |
Apr
(4) |
May
(19) |
Jun
(1) |
Jul
(1) |
Aug
(18) |
Sep
(18) |
Oct
(19) |
Nov
(75) |
Dec
(80) |
2006 |
Jan
(86) |
Feb
(61) |
Mar
(60) |
Apr
(47) |
May
(39) |
Jun
(16) |
Jul
(30) |
Aug
(13) |
Sep
(13) |
Oct
(21) |
Nov
(1) |
Dec
(10) |
2007 |
Jan
(2) |
Feb
(7) |
Mar
(9) |
Apr
(3) |
May
(9) |
Jun
(4) |
Jul
(1) |
Aug
(2) |
Sep
|
Oct
(12) |
Nov
(1) |
Dec
(7) |
2008 |
Jan
|
Feb
(2) |
Mar
(14) |
Apr
(9) |
May
(23) |
Jun
(4) |
Jul
|
Aug
(13) |
Sep
(8) |
Oct
(15) |
Nov
(40) |
Dec
(14) |
2009 |
Jan
|
Feb
(4) |
Mar
(10) |
Apr
(2) |
May
(2) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <sub...@co...> - 2008-11-17 23:01:31
|
Author: pjenvey Date: 2008-11-17 16:01:24 -0700 (Mon, 17 Nov 2008) New Revision: 3675 Removed: FormEncode/trunk/regen-lang Modified: FormEncode/trunk/docs/Validator.txt FormEncode/trunk/setup.cfg Log: integrate babel, with new translator docs Modified: FormEncode/trunk/docs/Validator.txt =================================================================== --- FormEncode/trunk/docs/Validator.txt 2008-11-17 20:46:29 UTC (rev 3674) +++ FormEncode/trunk/docs/Validator.txt 2008-11-17 23:01:24 UTC (rev 3675) @@ -550,12 +550,11 @@ translation (where ``<lang>`` is you language code):: $ svn co http://svn.formencode.org/FormEncode/trunk/`` - $ cd formencode/i18n - $ mkdir <lang>/LC_MESSAGES - $ cp FormEncode.pot <lang>/LC_MESSAGES/FormEncode.po - $ emacs <lang>/LC_MESSAGES/FormEncode.po # or whatever editor you prefer - # make the translation - $ python msgfmt.py <lang>/LC_MESSAGES/FormEncode.po + $ easy_install Babel + $ python setup.py init_catalog -l <lang> + $ emacs formencode/i18n/<lang>/LC_MESSAGES/FormEncode.po # or whatever + # editor you prefer make the translation + $ python setup.py compile_catalog -l <lang> Then test, and send the PO and MO files to g...@gregor-horvath.com. Deleted: FormEncode/trunk/regen-lang =================================================================== --- FormEncode/trunk/regen-lang 2008-11-17 20:46:29 UTC (rev 3674) +++ FormEncode/trunk/regen-lang 2008-11-17 23:01:24 UTC (rev 3675) @@ -1,23 +0,0 @@ -#!/bin/sh - -case "$1" - in - mo) - echo "Regenerating all .mo files" - for F in `find . -name '*.po'` ; do - DEST="`basename $F .po`.mo" - echo msgfmt "$F" -o "$DEST" - done - ;; - gettext) - FILES="formencode/api.py formencode/compound.py formencode/fieldstorage.py - formencode/foreach.py formencode/national.py formencode/schema.py - formencode/validators.py" - echo pygettext $FILES --output=formencode/i18n/FormEncode.pot - ;; - *) - echo "Error: unknown command $1" - echo "Usage: `basename $0` mo | gettext" - exit 2 - ;; -esac Modified: FormEncode/trunk/setup.cfg =================================================================== --- FormEncode/trunk/setup.cfg 2008-11-17 20:46:29 UTC (rev 3674) +++ FormEncode/trunk/setup.cfg 2008-11-17 23:01:24 UTC (rev 3675) @@ -41,3 +41,27 @@ [nosetests] detailed-errors = 1 + +# Babel configuration +[compile_catalog] +domain = FormEncode +directory = formencode/i18n +statistics = true + +[extract_messages] +add_comments = TRANSLATORS: +output_file = formencode/i18n/FormEncode.pot +charset = utf-8 +msgid_bugs_address = for...@li... +width = 80 + +[init_catalog] +domain = FormEncode +input_file = formencode/i18n/FormEncode.pot +output_dir = formencode/i18n + +[update_catalog] +domain = FormEncode +input_file = formencode/i18n/FormEncode.pot +output_dir = formencode/i18n +previous = true |
From: <sub...@co...> - 2008-11-17 20:46:32
|
Author: pjenvey Date: 2008-11-17 13:46:29 -0700 (Mon, 17 Nov 2008) New Revision: 3674 Modified: FormEncode/trunk/formencode/i18n/el/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/es/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/et/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/sk/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/sl/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/zh_TW/LC_MESSAGES/FormEncode.po Log: fix various typos/mistakes Modified: FormEncode/trunk/formencode/i18n/el/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/el/LC_MESSAGES/FormEncode.po 2008-11-17 20:32:50 UTC (rev 3673) +++ FormEncode/trunk/formencode/i18n/el/LC_MESSAGES/FormEncode.po 2008-11-17 20:46:29 UTC (rev 3674) @@ -134,7 +134,7 @@ #: validators.py:999 msgid "Enter a value %(min)i characters long or more" -msgstr "Εισάγετε μία τιμή με μήκος τουλάχιστον %(max)i χαρακτήρες" +msgstr "Εισάγετε μία τιμή με μήκος τουλάχιστον %(min)i χαρακτήρες" #: validators.py:1050 msgid "Invalid data or incorrect encoding" Modified: FormEncode/trunk/formencode/i18n/es/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/es/LC_MESSAGES/FormEncode.po 2008-11-17 20:32:50 UTC (rev 3673) +++ FormEncode/trunk/formencode/i18n/es/LC_MESSAGES/FormEncode.po 2008-11-17 20:46:29 UTC (rev 3674) @@ -292,7 +292,7 @@ #: validators.py:2027 msgid "Value should be %(true)r or %(false)r" -msgstr "El valor debe ser %(true)r o %(falso)r" +msgstr "El valor debe ser %(true)r o %(false)r" #: validators.py:2062 msgid "Value does not contain a signature" Modified: FormEncode/trunk/formencode/i18n/et/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/et/LC_MESSAGES/FormEncode.po 2008-11-17 20:32:50 UTC (rev 3673) +++ FormEncode/trunk/formencode/i18n/et/LC_MESSAGES/FormEncode.po 2008-11-17 20:46:29 UTC (rev 3674) @@ -126,7 +126,7 @@ #: validators.py:998 msgid "Enter a value less than %(max)i characters long" -msgstr "Palun sisestada väärtus, mis on lühem kui %(maxLength)i sümbolit" +msgstr "Palun sisestada väärtus, mis on lühem kui %(max)i sümbolit" #: validators.py:999 msgid "Enter a value %(min)i characters long or more" Modified: FormEncode/trunk/formencode/i18n/sk/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/sk/LC_MESSAGES/FormEncode.po 2008-11-17 20:32:50 UTC (rev 3673) +++ FormEncode/trunk/formencode/i18n/sk/LC_MESSAGES/FormEncode.po 2008-11-17 20:46:29 UTC (rev 3674) @@ -150,7 +150,7 @@ #: validators.py:1180 msgid "The username portion of the email address is invalid (the portion before the @: %(username)s)" -msgstr "Doména z e-mailovej adresy neexistuje (časť po @: %(domain)s)" +msgstr "Doména z e-mailovej adresy neexistuje (časť po @: %(username)s)" #: validators.py:1181 #: validators.py:1294 Modified: FormEncode/trunk/formencode/i18n/sl/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/sl/LC_MESSAGES/FormEncode.po 2008-11-17 20:32:50 UTC (rev 3673) +++ FormEncode/trunk/formencode/i18n/sl/LC_MESSAGES/FormEncode.po 2008-11-17 20:46:29 UTC (rev 3674) @@ -73,7 +73,7 @@ #: validators.py:605 msgid "Value must be one of: %(items)s (not %(value)r)" -msgstr "Vrednost mora biti ena izmed: (%items)s (ne %(value)r)" +msgstr "Vrednost mora biti ena izmed: %(items)s (ne %(value)r)" #: validators.py:668 msgid "Choose something" Modified: FormEncode/trunk/formencode/i18n/zh_TW/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/zh_TW/LC_MESSAGES/FormEncode.po 2008-11-17 20:32:50 UTC (rev 3673) +++ FormEncode/trunk/formencode/i18n/zh_TW/LC_MESSAGES/FormEncode.po 2008-11-17 20:46:29 UTC (rev 3674) @@ -41,7 +41,7 @@ #: validators.py:163 msgid "%(object)r must be of the type %(type)s" -msgstr "%(object)r 必須為 %(typeList)s 類型" +msgstr "%(object)r 必須為 %(type)s 類型" #: validators.py:344 msgid "Enter a value less than %(maxLength)i characters long" |
From: <sub...@co...> - 2008-11-17 20:32:54
|
Author: pjenvey Date: 2008-11-17 13:32:50 -0700 (Mon, 17 Nov 2008) New Revision: 3673 Modified: FormEncode/trunk/tests/test_i18n.py Log: also update the tw test for zh_TW Modified: FormEncode/trunk/tests/test_i18n.py =================================================================== --- FormEncode/trunk/tests/test_i18n.py 2008-11-17 20:31:27 UTC (rev 3672) +++ FormEncode/trunk/tests/test_i18n.py 2008-11-17 20:32:50 UTC (rev 3673) @@ -66,8 +66,8 @@ def test_pt_BR(): _test_lang("pt_BR", u"Por favor digite um valor") -def test_tw(): - _test_lang("tw", u"請輸入一個值") +def test_zh_TW(): + _test_lang("zh_TW", u"請輸入一個值") def test_sk(): _test_lang("sk",u"Zadajte hodnotu, prosím") |
From: <sub...@co...> - 2008-11-17 20:31:34
|
Author: pjenvey Date: 2008-11-17 13:31:27 -0700 (Mon, 17 Nov 2008) New Revision: 3672 Added: FormEncode/trunk/formencode/i18n/zh_TW/ Removed: FormEncode/trunk/formencode/i18n/tw/ Modified: FormEncode/trunk/docs/news.txt Log: rename the tw locale to the more standard zh_TW Modified: FormEncode/trunk/docs/news.txt =================================================================== --- FormEncode/trunk/docs/news.txt 2008-11-17 17:27:07 UTC (rev 3671) +++ FormEncode/trunk/docs/news.txt 2008-11-17 20:31:27 UTC (rev 3672) @@ -26,6 +26,8 @@ * :class:`formencode.validators.Number` works with ``inf`` float values (before it would raise a OverflowError). + +* The ``tw`` locale has been renamed to the more standard ``zh_TW``. 1.1 --- Copied: FormEncode/trunk/formencode/i18n/zh_TW (from rev 3671, FormEncode/trunk/formencode/i18n/tw) |
From: <sub...@co...> - 2008-11-17 06:35:05
|
Author: pjenvey Date: 2008-11-16 23:35:00 -0700 (Sun, 16 Nov 2008) New Revision: 3670 Modified: FormEncode/trunk/formencode/i18n/FormEncode.pot FormEncode/trunk/formencode/i18n/es/LC_MESSAGES/FormEncode.po Log: fix bad charsets Modified: FormEncode/trunk/formencode/i18n/FormEncode.pot =================================================================== --- FormEncode/trunk/formencode/i18n/FormEncode.pot 2008-11-17 06:33:06 UTC (rev 3669) +++ FormEncode/trunk/formencode/i18n/FormEncode.pot 2008-11-17 06:35:00 UTC (rev 3670) @@ -5,12 +5,12 @@ msgid "" msgstr "" "Project-Id-Version: 1.0.1\n" -"POT-Creation-Date: 2008-03-29 12:00+CET\n" +"POT-Creation-Date: 2008-03-29 12:00+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL...@li...>\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" +"Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: ENCODING\n" "Generated-By: pygettext.py 1.5\n" Modified: FormEncode/trunk/formencode/i18n/es/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/es/LC_MESSAGES/FormEncode.po 2008-11-17 06:33:06 UTC (rev 3669) +++ FormEncode/trunk/formencode/i18n/es/LC_MESSAGES/FormEncode.po 2008-11-17 06:35:00 UTC (rev 3670) @@ -10,7 +10,7 @@ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL...@li...>\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" +"Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" # Traduccioón de FormEncode al Castellano. |
From: <sub...@co...> - 2008-11-17 06:33:12
|
Author: pjenvey Date: 2008-11-16 23:33:06 -0700 (Sun, 16 Nov 2008) New Revision: 3669 Modified: FormEncode/trunk/formencode/i18n/cs/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/de/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/et/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/fr/LC_MESSAGES/FormEncode.po Log: more irregular tz fixes Modified: FormEncode/trunk/formencode/i18n/cs/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/cs/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) +++ FormEncode/trunk/formencode/i18n/cs/LC_MESSAGES/FormEncode.po 2008-11-17 06:33:06 UTC (rev 3669) @@ -4,7 +4,7 @@ msgstr "" "Project-Id-Version: 0.1\n" "POT-Creation-Date: 2006-10-02 20:59+0200\n" -"PO-Revision-Date: 2007-06-04 15:40+PRAG\n" +"PO-Revision-Date: 2007-06-04 15:40+0100\n" "Last-Translator: Martin Šenkeřík <mar...@em...>\n" "Language-Team: \n" "MIME-Version: 1.0\n" Modified: FormEncode/trunk/formencode/i18n/de/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/de/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) +++ FormEncode/trunk/formencode/i18n/de/LC_MESSAGES/FormEncode.po 2008-11-17 06:33:06 UTC (rev 3669) @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: FormEncode 1.0.1\n" -"POT-Creation-Date: 2008-03-29 12:00+CET\n" -"PO-Revision-Date: 2008-03-29 12:30+CET\n" +"POT-Creation-Date: 2008-03-29 12:00+0100\n" +"PO-Revision-Date: 2008-03-29 12:30+0100\n" "Last-Translator: Christoph Zwerschke <ci...@on...>\n" "Language-Team: Gregor Horvath <gh...@gr...>\n" "MIME-Version: 1.0\n" Modified: FormEncode/trunk/formencode/i18n/et/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/et/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) +++ FormEncode/trunk/formencode/i18n/et/LC_MESSAGES/FormEncode.po 2008-11-17 06:33:06 UTC (rev 3669) @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: FormEncode 0.7.1\n" "POT-Creation-Date: 2006-10-02 20:59+0200\n" -"PO-Revision-Date: 2008-05-20 09:26+EEST\n" +"PO-Revision-Date: 2008-05-20 09:26+0300\n" "Last-Translator: Ahti Kelder <aht...@ma...>\n" "Language-Team: ESTONIAN <ET...@li...>\n" "MIME-Version: 1.0\n" Modified: FormEncode/trunk/formencode/i18n/fr/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/fr/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) +++ FormEncode/trunk/formencode/i18n/fr/LC_MESSAGES/FormEncode.po 2008-11-17 06:33:06 UTC (rev 3669) @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: FormEncode 1.0\n" -"POT-Creation-Date: 2008-11-05 12:01+CET\n" +"POT-Creation-Date: 2008-11-05 12:01+0100\n" "PO-Revision-Date: 2008-10-16 12:46+0200\n" "Last-Translator: Stéphane Raimbault <ste...@gm...>\n" "Language-Team: GNOME French Team <gn...@tr...>\n" |
From: <sub...@co...> - 2008-11-17 06:26:46
|
Author: pjenvey Date: 2008-11-16 23:26:41 -0700 (Sun, 16 Nov 2008) New Revision: 3668 Modified: FormEncode/trunk/formencode/i18n/cs/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/el/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/es/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/et/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/fi/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/it/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/lt/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/nl/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/pl/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/pt_BR/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/pt_PT/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/ru/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/sk/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/sl/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/tw/LC_MESSAGES/FormEncode.po FormEncode/trunk/formencode/i18n/zh_CN/LC_MESSAGES/FormEncode.po Log: fix the irregular timezone format generated by pygettext that blows up babel Modified: FormEncode/trunk/formencode/i18n/cs/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/cs/LC_MESSAGES/FormEncode.po 2008-11-15 21:03:27 UTC (rev 3667) +++ FormEncode/trunk/formencode/i18n/cs/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1\n" -"POT-Creation-Date: 2006-10-02 20:59+CEST\n" +"POT-Creation-Date: 2006-10-02 20:59+0200\n" "PO-Revision-Date: 2007-06-04 15:40+PRAG\n" "Last-Translator: Martin Šenkeřík <mar...@em...>\n" "Language-Team: \n" Modified: FormEncode/trunk/formencode/i18n/el/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/el/LC_MESSAGES/FormEncode.po 2008-11-15 21:03:27 UTC (rev 3667) +++ FormEncode/trunk/formencode/i18n/el/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: FormEncode\n" -"POT-Creation-Date: 2006-10-02 20:59+CEST\n" +"POT-Creation-Date: 2006-10-02 20:59+0200\n" "PO-Revision-Date: 2007-07-07 01:59+0100\n" "Last-Translator: Dimitris Glezos <dim...@gl...>\n" "Language-Team: Greek <fed...@re...>\n" Modified: FormEncode/trunk/formencode/i18n/es/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/es/LC_MESSAGES/FormEncode.po 2008-11-15 21:03:27 UTC (rev 3667) +++ FormEncode/trunk/formencode/i18n/es/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: FormEncode 0.5.1\n" -"POT-Creation-Date: 2006-10-02 20:59+CEST\n" +"POT-Creation-Date: 2006-10-02 20:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Alberto Valverde González <al...@to...>\n" "Language-Team: Alberto Valverde González <al...@to...>\n" Modified: FormEncode/trunk/formencode/i18n/et/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/et/LC_MESSAGES/FormEncode.po 2008-11-15 21:03:27 UTC (rev 3667) +++ FormEncode/trunk/formencode/i18n/et/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: FormEncode 0.7.1\n" -"POT-Creation-Date: 2006-10-02 20:59+CEST\n" +"POT-Creation-Date: 2006-10-02 20:59+0200\n" "PO-Revision-Date: 2008-05-20 09:26+EEST\n" "Last-Translator: Ahti Kelder <aht...@ma...>\n" "Language-Team: ESTONIAN <ET...@li...>\n" Modified: FormEncode/trunk/formencode/i18n/fi/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/fi/LC_MESSAGES/FormEncode.po 2008-11-15 21:03:27 UTC (rev 3667) +++ FormEncode/trunk/formencode/i18n/fi/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: FormEncode 0.7.1\n" -"POT-Creation-Date: 2006-10-02 20:59+CEST\n" +"POT-Creation-Date: 2006-10-02 20:59+0200\n" "PO-Revision-Date: 2007-11-07 10:45+ZONE\n" "Last-Translator: Marko Manninen <mm...@gm...>\n" "Language-Team: FINNISH <FI...@li...>\n" Modified: FormEncode/trunk/formencode/i18n/it/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/it/LC_MESSAGES/FormEncode.po 2008-11-15 21:03:27 UTC (rev 3667) +++ FormEncode/trunk/formencode/i18n/it/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: FormEncode 0.51\n" -"POT-Creation-Date: 2006-10-02 20:59+CEST\n" +"POT-Creation-Date: 2006-10-02 20:59+0200\n" "PO-Revision-Date: 2006-10-03 08:59-0300\n" "Last-Translator: Jose Soares Da Silva <jos...@sf...>\n" "Language-Team: Jose Soares Da Silva <jos...@sf...>\n" Modified: FormEncode/trunk/formencode/i18n/lt/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/lt/LC_MESSAGES/FormEncode.po 2008-11-15 21:03:27 UTC (rev 3667) +++ FormEncode/trunk/formencode/i18n/lt/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: FormEncode 0.6\n" -"POT-Creation-Date: 2008-04-16 20:59+CEST\n" -"PO-Revision-Date: 2008-04-16 21:53+CEST\n" +"POT-Creation-Date: 2008-04-16 20:59+0200\n" +"PO-Revision-Date: 2008-04-16 21:53+0200\n" "Last-Translator: Dalius Dobravolskas <da...@sa...>\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "(n%100<10 || n%100>=20) ? 1 : 2)\n" Modified: FormEncode/trunk/formencode/i18n/nl/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/nl/LC_MESSAGES/FormEncode.po 2008-11-15 21:03:27 UTC (rev 3667) +++ FormEncode/trunk/formencode/i18n/nl/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: r2591\n" -"POT-Creation-Date: 2006-10-02 20:59+CEST\n" +"POT-Creation-Date: 2006-10-02 20:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Jan-Wijbrand Kolman <jk...@th...>\n" "Language-Team: LANGUAGE <LL...@li...>\n" Modified: FormEncode/trunk/formencode/i18n/pl/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/pl/LC_MESSAGES/FormEncode.po 2008-11-15 21:03:27 UTC (rev 3667) +++ FormEncode/trunk/formencode/i18n/pl/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: FormEncode 0.7.1\n" -"POT-Creation-Date: 2006-09-26 07:57+CEST\n" +"POT-Creation-Date: 2006-09-26 07:57+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Robert Wojciechowicz <rw...@sm...>\n" "Language-Team: Robert Wojciechowicz <rw...@sm...>\n" Modified: FormEncode/trunk/formencode/i18n/pt_BR/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/pt_BR/LC_MESSAGES/FormEncode.po 2008-11-15 21:03:27 UTC (rev 3667) +++ FormEncode/trunk/formencode/i18n/pt_BR/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: FormEncode 0.51\n" -"POT-Creation-Date: 2006-10-02 20:59+CEST\n" +"POT-Creation-Date: 2006-10-02 20:59+0200\n" "PO-Revision-Date: 2006-10-03 08:59-0300\n" "Last-Translator: Jorge Godoy <go...@g2...>\n" "Language-Team: Jorge Godoy <go...@g2...>\n" Modified: FormEncode/trunk/formencode/i18n/pt_PT/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/pt_PT/LC_MESSAGES/FormEncode.po 2008-11-15 21:03:27 UTC (rev 3667) +++ FormEncode/trunk/formencode/i18n/pt_PT/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: FormEncode 0.51\n" -"POT-Creation-Date: 2006-10-02 20:59+CEST\n" +"POT-Creation-Date: 2006-10-02 20:59+0200\n" "PO-Revision-Date: 2006-10-03 08:59-0300\n" "Last-Translator: Pedro Algarvio <uf...@uf...>\n" "Language-Team: Pedro Algarvio <uf...@uf...>\n" Modified: FormEncode/trunk/formencode/i18n/ru/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/ru/LC_MESSAGES/FormEncode.po 2008-11-15 21:03:27 UTC (rev 3667) +++ FormEncode/trunk/formencode/i18n/ru/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: FormEncode 0.6\n" -"POT-Creation-Date: 2006-10-02 20:59+CEST\n" +"POT-Creation-Date: 2006-10-02 20:59+0200\n" "PO-Revision-Date: 2006-10-31 11:59+0200\n" "Last-Translator: Oleg Deribas <thi...@td...>\n" "Language-Team: RUSSIAN <RU...@li...>\n" Modified: FormEncode/trunk/formencode/i18n/sk/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/sk/LC_MESSAGES/FormEncode.po 2008-11-15 21:03:27 UTC (rev 3667) +++ FormEncode/trunk/formencode/i18n/sk/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2006-10-02 20:59+CEST\n" +"POT-Creation-Date: 2006-10-02 20:59+0200\n" "PO-Revision-Date: 2006-10-04 17:39+0100\n" "Last-Translator: Julius Minka <ju...@mi...>\n" "Language-Team: LANGUAGE <LL...@li...>\n" Modified: FormEncode/trunk/formencode/i18n/sl/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/sl/LC_MESSAGES/FormEncode.po 2008-11-15 21:03:27 UTC (rev 3667) +++ FormEncode/trunk/formencode/i18n/sl/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: FormEncode 0.6\n" -"POT-Creation-Date: 2006-10-02 20:59+CEST\n" +"POT-Creation-Date: 2006-10-02 20:59+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Matej Barič <mat...@gm...>\n" "Language-Team: Matej Barič <mat...@gm...>\n" Modified: FormEncode/trunk/formencode/i18n/tw/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/tw/LC_MESSAGES/FormEncode.po 2008-11-15 21:03:27 UTC (rev 3667) +++ FormEncode/trunk/formencode/i18n/tw/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2006-10-02 20:59+CEST\n" +"POT-Creation-Date: 2006-10-02 20:59+0200\n" "PO-Revision-Date: 2006-10-03 20:12+0800\n" "Last-Translator: Fred Lin <ga...@gm...>\n" "Language-Team: LANGUAGE <LL...@li...>\n" Modified: FormEncode/trunk/formencode/i18n/zh_CN/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/zh_CN/LC_MESSAGES/FormEncode.po 2008-11-15 21:03:27 UTC (rev 3667) +++ FormEncode/trunk/formencode/i18n/zh_CN/LC_MESSAGES/FormEncode.po 2008-11-17 06:26:41 UTC (rev 3668) @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-10-02 20:59+CEST\n" +"POT-Creation-Date: 2006-10-02 20:59+0200\n" "PO-Revision-Date: 2007-08-20 17:38+0800\n" "Last-Translator: qcshzihnus <qcs...@gm...>\n" "Language-Team: Chinese/Simplified\n" |
From: <sub...@co...> - 2008-11-15 21:03:31
|
Author: ianb Date: 2008-11-15 14:03:27 -0700 (Sat, 15 Nov 2008) New Revision: 3667 Modified: FormEncode/trunk/tests/test_validators.py Log: fix bad month style Modified: FormEncode/trunk/tests/test_validators.py =================================================================== --- FormEncode/trunk/tests/test_validators.py 2008-11-15 20:57:10 UTC (rev 3666) +++ FormEncode/trunk/tests/test_validators.py 2008-11-15 21:03:27 UTC (rev 3667) @@ -91,13 +91,13 @@ assert validate(iv, "15") == messages('tooHigh', None, max=10) def test_month_style(): - date = DateConverter(month_style='dd/mm/yyy') + date = DateConverter(month_style='dd/mm/yyyy') d = datetime.date(2007,12,20) assert date.to_python('20/12/2007') == d assert date.from_python(d) == '20/12/2007' def test_date(): - date = DateConverter(month_style='dd/mm/yyy') + date = DateConverter(month_style='dd/mm/yyyy') try: date.to_python('20/12/150') except Invalid, e: |
From: <sub...@co...> - 2008-11-15 20:57:12
|
Author: ianb Date: 2008-11-15 13:57:10 -0700 (Sat, 15 Nov 2008) New Revision: 3666 Modified: FormEncode/trunk/docs/news.txt FormEncode/trunk/formencode/htmlfill.py FormEncode/trunk/tests/test_htmlfill.py Log: Don't overwrite the src attribute in <input type="image"> fields (SF 1974350) Modified: FormEncode/trunk/docs/news.txt =================================================================== --- FormEncode/trunk/docs/news.txt 2008-11-15 20:54:28 UTC (rev 3665) +++ FormEncode/trunk/docs/news.txt 2008-11-15 20:57:10 UTC (rev 3666) @@ -12,7 +12,9 @@ * Added :meth:`formencode.api.Invalid.__unicode__` * In :mod:`formencode.htmlfill` use a default encoding of utf8 when - handling mixed ``str``/``unicode`` content. + handling mixed ``str``/``unicode`` content. Also do not modify + ``<input type="image">`` tags (previously ``src`` would be + overwritten, for no good reason). * In :class:`formencode.validators.Email` allow single-character domain names (like x.com). Modified: FormEncode/trunk/formencode/htmlfill.py =================================================================== --- FormEncode/trunk/formencode/htmlfill.py 2008-11-15 20:54:28 UTC (rev 3665) +++ FormEncode/trunk/formencode/htmlfill.py 2008-11-15 20:57:10 UTC (rev 3666) @@ -389,8 +389,6 @@ self.skip_next = True self.add_key(name) elif t == 'image': - self.set_attr(attrs, 'src', value or - self.get_attr(attrs, 'src', '')) self.write_tag('input', attrs, startend) self.skip_next = True self.add_key(name) Modified: FormEncode/trunk/tests/test_htmlfill.py =================================================================== --- FormEncode/trunk/tests/test_htmlfill.py 2008-11-15 20:54:28 UTC (rev 3665) +++ FormEncode/trunk/tests/test_htmlfill.py 2008-11-15 20:57:10 UTC (rev 3666) @@ -123,3 +123,8 @@ assert (htmlfill.render('<form:error name="foo" />', errors={'foo': htmlfill.htmlliteral('<test>')}) == '<span class="error-message"><test></span><br />\n') + +def test_image_submit(): + assert (htmlfill.render('<input name="image-submit" type="image" src="foo.jpg" value="bar">', + defaults={'image-submit': 'blahblah'}) + == '<input name="image-submit" type="image" src="foo.jpg" value="bar">') |
From: <sub...@co...> - 2008-11-15 20:54:39
|
Author: ianb Date: 2008-11-15 13:54:28 -0700 (Sat, 15 Nov 2008) New Revision: 3665 Modified: FormEncode/trunk/formencode/validators.py Log: typo/syntax error Modified: FormEncode/trunk/formencode/validators.py =================================================================== --- FormEncode/trunk/formencode/validators.py 2008-11-15 20:47:50 UTC (rev 3664) +++ FormEncode/trunk/formencode/validators.py 2008-11-15 20:54:28 UTC (rev 3665) @@ -59,7 +59,7 @@ # The surrounding _("string") of the strings is only for extracting # the strings automatically # (Note: we can't use a def statement, because pygettext dislikes it) -_ = lambda s: return s +_ = lambda s: s ############################################################ ## Utility methods |
From: <sub...@co...> - 2008-11-15 20:47:55
|
Author: ianb Date: 2008-11-15 13:47:50 -0700 (Sat, 15 Nov 2008) New Revision: 3664 Modified: FormEncode/trunk/formencode/validators.py Log: Change the way _ is defined so pygettext doesn't mind it Modified: FormEncode/trunk/formencode/validators.py =================================================================== --- FormEncode/trunk/formencode/validators.py 2008-11-15 20:47:24 UTC (rev 3663) +++ FormEncode/trunk/formencode/validators.py 2008-11-15 20:47:50 UTC (rev 3664) @@ -54,11 +54,12 @@ True, False = (1==1), (0==1) -def _(s): return s # dummy translation function, nothing is translated here. - # Instead this is actually done in api.message. - # The surrounding _("string") of the strings is only for extracting - # the strings automatically - # if you run pygettext with this source comment this function out temporarly +# dummy translation function, nothing is translated here. +# Instead this is actually done in api.message. +# The surrounding _("string") of the strings is only for extracting +# the strings automatically +# (Note: we can't use a def statement, because pygettext dislikes it) +_ = lambda s: return s ############################################################ ## Utility methods |
From: <sub...@co...> - 2008-11-15 20:47:31
|
Author: ianb Date: 2008-11-15 13:47:24 -0700 (Sat, 15 Nov 2008) New Revision: 3663 Added: FormEncode/trunk/regen-lang Log: Create a script to manage language/translation stuff Added: FormEncode/trunk/regen-lang =================================================================== --- FormEncode/trunk/regen-lang (rev 0) +++ FormEncode/trunk/regen-lang 2008-11-15 20:47:24 UTC (rev 3663) @@ -0,0 +1,23 @@ +#!/bin/sh + +case "$1" + in + mo) + echo "Regenerating all .mo files" + for F in `find . -name '*.po'` ; do + DEST="`basename $F .po`.mo" + echo msgfmt "$F" -o "$DEST" + done + ;; + gettext) + FILES="formencode/api.py formencode/compound.py formencode/fieldstorage.py + formencode/foreach.py formencode/national.py formencode/schema.py + formencode/validators.py" + echo pygettext $FILES --output=formencode/i18n/FormEncode.pot + ;; + *) + echo "Error: unknown command $1" + echo "Usage: `basename $0` mo | gettext" + exit 2 + ;; +esac Property changes on: FormEncode/trunk/regen-lang ___________________________________________________________________ Name: svn:executable + * |
From: <sub...@co...> - 2008-11-14 23:57:25
|
Author: ianb Date: 2008-11-14 16:57:15 -0700 (Fri, 14 Nov 2008) New Revision: 3662 Modified: FormEncode/trunk/docs/modules/validators.txt FormEncode/trunk/docs/news.txt FormEncode/trunk/formencode/validators.py Log: Added formencode.validators.IPAddress from Leandro Lucarella (SF 2001367) Modified: FormEncode/trunk/docs/modules/validators.txt =================================================================== --- FormEncode/trunk/docs/modules/validators.txt 2008-11-14 23:48:20 UTC (rev 3661) +++ FormEncode/trunk/docs/modules/validators.txt 2008-11-14 23:57:15 UTC (rev 3662) @@ -68,6 +68,7 @@ .. autoclass:: Email .. autoclass:: URL +.. autoclass:: IPAddress .. autoclass:: CIDR .. autoclass:: MACAddress Modified: FormEncode/trunk/docs/news.txt =================================================================== --- FormEncode/trunk/docs/news.txt 2008-11-14 23:48:20 UTC (rev 3661) +++ FormEncode/trunk/docs/news.txt 2008-11-14 23:57:15 UTC (rev 3662) @@ -6,6 +6,9 @@ svn trunk --------- +* Added :class:`formencode.validators.IPAddress`, validating IP + addresses, from Leandro Lucarella. + * Added :meth:`formencode.api.Invalid.__unicode__` * In :mod:`formencode.htmlfill` use a default encoding of utf8 when Modified: FormEncode/trunk/formencode/validators.py =================================================================== --- FormEncode/trunk/formencode/validators.py 2008-11-14 23:48:20 UTC (rev 3661) +++ FormEncode/trunk/formencode/validators.py 2008-11-14 23:57:15 UTC (rev 3662) @@ -2424,8 +2424,52 @@ chr(random.randrange(256)) for i in range(self.nonce_length)]) -class CIDR(FancyValidator): +class IPAddress(FancyValidator): """ + Formencode validator to check whether a string is a correct IP address + + Examples:: + + >>> ip = IPAddress() + >>> ip.to_python('127.0.0.1') + '127.0.0.1' + >>> ip.to_python('299.0.0.1') + Traceback (most recent call last): + ... + Invalid: The octets must be within the range of 0-255 (not '299') + >>> ip.to_python('192.168.0.1/1') + Traceback (most recent call last): + ... + Invalid: Please enter a valid IP address (a.b.c.d) + >>> ip.to_python('asdf') + Traceback (most recent call last): + ... + Invalid: Please enter a valid IP address (a.b.c.d) + """ + messages = { + 'bad_format' : u'Please enter a valid IP address (a.b.c.d)', + 'illegal_octets' : u'The octets must be within the range of 0-255 (not %(octet)r)', + } + + def validate_python(self, value, state): + try: + octets = value.split('.') + + # Only 4 octets? + if len(octets) != 4: + raise Invalid(self.message("bad_format", state, value=value), value, state) + + # Correct octets? + for octet in octets: + if int(octet) < 0 or int(octet) > 255: + raise Invalid(self.message("illegal_octets", state, octet=octet), value, state) + + # Splitting faild: wrong syntax + except ValueError: + raise Invalid(self.message("bad_format", state), value, state) + +class CIDR(IPAddress): + """ Formencode validator to check whether a string is in correct CIDR notation (IP address, or IP address plus /mask) @@ -2447,11 +2491,10 @@ ... Invalid: Please enter a valid IP address (a.b.c.d) or IP network (a.b.c.d/e) """ - messages = { - 'not_cidr_format' : u'Please enter a valid IP address (a.b.c.d) or IP network (a.b.c.d/e)', - 'illegal_octets' : u'The octets must be within the range of 0-255 (not %(octet)r)', - 'illegal_bits' : u'The network size (bits) must be within the range of 8-32 (not %(bits)r)', - } + messages = dict(IPAddress._messages, + bad_format = u'Please enter a valid IP address (a.b.c.d) or IP network (a.b.c.d/e)', + illegal_bits = u'The network size (bits) must be within the range of 8-32 (not %(bits)r)', + ) def validate_python(self, value, state): try: @@ -2461,24 +2504,16 @@ else: # a.b.c.d addr, bits = value, 32 - octets = addr.split('.') + # Use IPAddress validator to validate the IP part + IPAddress.validate_python(self, addr, state) - # Only 4 octets? - if len(octets) != 4: - raise Invalid(self.message("not_cidr_format", state, value=value), value, state) - - # Correct octets? - for octet in octets: - if int(octet) < 0 or int(octet) > 255: - raise Invalid(self.message("illegal_octets", state, octet=octet), value, state) - # Bits (netmask) correct? if int(bits) < 8 or int(bits) > 32: raise Invalid(self.message("illegal_bits", state, bits=bits), value, state) # Splitting faild: wrong syntax except ValueError: - raise Invalid(self.message("not_cidr_format", state), value, state) + raise Invalid(self.message("bad_format", state), value, state) class MACAddress(FancyValidator): """ |
From: <sub...@co...> - 2008-11-14 23:48:25
|
Author: ianb Date: 2008-11-14 16:48:20 -0700 (Fri, 14 Nov 2008) New Revision: 3661 Modified: FormEncode/trunk/formencode/validators.py Log: Add a check for month_style being a valid value Modified: FormEncode/trunk/formencode/validators.py =================================================================== --- FormEncode/trunk/formencode/validators.py 2008-11-14 23:45:59 UTC (rev 3660) +++ FormEncode/trunk/formencode/validators.py 2008-11-14 23:48:20 UTC (rev 3661) @@ -1887,7 +1887,6 @@ ... Invalid: Please enter a four-digit year after 1899 - If you change ``month_style`` you can get European-style dates:: >>> d = DateConverter(month_style='dd/mm/yyyy') @@ -1942,6 +1941,11 @@ 'wrongFormat': _('Please enter the date in the form %(format)s'), } + def __init__(self, *args, **kw): + super(DateConverter, self).__init__(*args, **kw) + if not self.month_style in ('dd/mm/yyyy', 'mm/dd/yyyy'): + raise TypeError("Bad month_style: %r" % self.month_style) + def _to_python(self, value, state): if self.accept_day: return self.convert_day(value, state) |
From: <sub...@co...> - 2008-11-14 23:46:04
|
Author: ianb Date: 2008-11-14 16:45:59 -0700 (Fri, 14 Nov 2008) New Revision: 3660 Modified: FormEncode/trunk/formencode/schema.py FormEncode/trunk/formencode/validators.py Log: Removed tabs Modified: FormEncode/trunk/formencode/schema.py =================================================================== --- FormEncode/trunk/formencode/schema.py 2008-11-14 23:43:30 UTC (rev 3659) +++ FormEncode/trunk/formencode/schema.py 2008-11-14 23:45:59 UTC (rev 3660) @@ -196,8 +196,8 @@ value_dict, state, error_dict=errors) - for validator in self.chained_validators: - new = validator.to_python(new, state) + for validator in self.chained_validators: + new = validator.to_python(new, state) return new Modified: FormEncode/trunk/formencode/validators.py =================================================================== --- FormEncode/trunk/formencode/validators.py 2008-11-14 23:43:30 UTC (rev 3659) +++ FormEncode/trunk/formencode/validators.py 2008-11-14 23:45:59 UTC (rev 3660) @@ -1358,14 +1358,14 @@ value, state) if self.resolve_domain: assert have_dns, "pyDNS should be available" - try: + try: a=DNS.DnsRequest(domain, qtype='mx').req().answers if not a: a=DNS.DnsRequest(domain, qtype='a').req().answers dnsdomains=[x['data'] for x in a] - except (socket.error, DNS.DNSError), e: - raise Invalid( - self.message('socketError', state, error=e), + except (socket.error, DNS.DNSError), e: + raise Invalid( + self.message('socketError', state, error=e), value, state) if not dnsdomains: raise Invalid( |
From: <sub...@co...> - 2008-11-14 23:43:36
|
Author: ianb Date: 2008-11-14 16:43:30 -0700 (Fri, 14 Nov 2008) New Revision: 3659 Modified: FormEncode/trunk/formencode/validators.py Log: add a unicode Email doctest Modified: FormEncode/trunk/formencode/validators.py =================================================================== --- FormEncode/trunk/formencode/validators.py 2008-11-14 23:38:17 UTC (rev 3658) +++ FormEncode/trunk/formencode/validators.py 2008-11-14 23:43:30 UTC (rev 3659) @@ -1298,6 +1298,8 @@ Traceback (most recent call last): ... Invalid: The domain of the email address does not exist (the portion after the @: thisdomaindoesnotexistithinkforsure.com) + >>> e.to_python(u'te...@go...') + u'te...@go...' >>> e = Email(not_empty=False) >>> e.to_python('') |
From: <sub...@co...> - 2008-11-14 23:38:23
|
Author: ianb Date: 2008-11-14 16:38:17 -0700 (Fri, 14 Nov 2008) New Revision: 3658 Modified: FormEncode/trunk/formencode/validators.py Log: clarify not_empty=True requirement for MinLength Modified: FormEncode/trunk/formencode/validators.py =================================================================== --- FormEncode/trunk/formencode/validators.py 2008-11-14 23:36:32 UTC (rev 3657) +++ FormEncode/trunk/formencode/validators.py 2008-11-14 23:38:17 UTC (rev 3658) @@ -371,8 +371,10 @@ class MinLength(FancyValidator): """ - Invalid if the value is shorter than `minlength`. Uses len(), - so it can work for strings, lists, or anything with length. + Invalid if the value is shorter than `minlength`. Uses len(), so + it can work for strings, lists, or anything with length. Note + that you **must** use ``not_empty=True`` if you don't want to + accept empty values -- empty values are not tested for length. Examples:: |
From: <sub...@co...> - 2008-11-14 23:36:43
|
Author: ianb Date: 2008-11-14 16:36:32 -0700 (Fri, 14 Nov 2008) New Revision: 3657 Modified: FormEncode/trunk/docs/news.txt FormEncode/trunk/formencode/validators.py Log: Fix some URL doctests (which were requesting some bad sites). Also i-name test. Lastly fix Number.to_python('infinity'), which failed because you can't convert that float value to an integer (SF 2213051) Modified: FormEncode/trunk/docs/news.txt =================================================================== --- FormEncode/trunk/docs/news.txt 2008-11-14 23:25:49 UTC (rev 3656) +++ FormEncode/trunk/docs/news.txt 2008-11-14 23:36:32 UTC (rev 3657) @@ -19,6 +19,9 @@ all missing keys as the empty string (previously the first key was required and would raise KeyError). +* :class:`formencode.validators.Number` works with ``inf`` float + values (before it would raise a OverflowError). + 1.1 --- Modified: FormEncode/trunk/formencode/validators.py =================================================================== --- FormEncode/trunk/formencode/validators.py 2008-11-14 23:25:49 UTC (rev 3656) +++ FormEncode/trunk/formencode/validators.py 2008-11-14 23:36:32 UTC (rev 3657) @@ -1002,6 +1002,8 @@ Traceback (most recent call last): ... Invalid: Please enter a number that is 10.5 or smaller + >>> Number().to_python('infinity') + inf """ @@ -1012,8 +1014,12 @@ def _to_python(self, value, state): try: value = float(value) - if value == int(value): - return int(value) + try: + int_value = int(value) + except OverflowError: + int_value = None + if value == int_value: + return int_value return value except ValueError: raise Invalid(self.message('number', state), @@ -1411,11 +1417,11 @@ Traceback (most recent call last): ... Invalid: You must start your URL with http://, https://, etc - >>> u.to_python('http://colorstudy.com/doesnotexist.html') + >>> u.to_python('http://ianbicking.org/doesnotexist.html') Traceback (most recent call last): ... Invalid: The server responded that the page could not be found - >>> u.to_python('http://this.domain.does.not.exists.formencode.org/test.html') + >>> u.to_python('http://this.domain.does.not.exist.example.org/test.html') Traceback (most recent call last): ... Invalid: An error occured when trying to connect to the server: ... @@ -1554,7 +1560,7 @@ >>> inames.to_python("=John Smith") Traceback (most recent call last): ... - formencode.api.Invalid: "John Smith" is an invalid i-name + Invalid: "John Smith" is an invalid i-name >>> inumbers = XRI(xri_type="i-number") >>> inumbers.to_python("!!1000!de21.4536.2cb2.8074") '!!1000!de21.4536.2cb2.8074' |
From: <sub...@co...> - 2008-11-14 23:25:51
|
Author: ianb Date: 2008-11-14 16:25:49 -0700 (Fri, 14 Nov 2008) New Revision: 3656 Modified: FormEncode/trunk/formencode/htmlfill.py FormEncode/trunk/tests/test_htmlfill.py Log: Fixed htmlliteral.__repr__, added test for htmlliteral Modified: FormEncode/trunk/formencode/htmlfill.py =================================================================== --- FormEncode/trunk/formencode/htmlfill.py 2008-11-14 23:21:26 UTC (rev 3655) +++ FormEncode/trunk/formencode/htmlfill.py 2008-11-14 23:25:49 UTC (rev 3656) @@ -96,7 +96,8 @@ return self.text def __repr__(self): - return '<%s html=%r text=%r>' % (self.html, self.text) + return '<%s html=%r text=%r>' % ( + self.__class__.__name__, self.html, self.text) def __html__(self): return self.html Modified: FormEncode/trunk/tests/test_htmlfill.py =================================================================== --- FormEncode/trunk/tests/test_htmlfill.py 2008-11-14 23:21:26 UTC (rev 3655) +++ FormEncode/trunk/tests/test_htmlfill.py 2008-11-14 23:25:49 UTC (rev 3656) @@ -119,3 +119,7 @@ errors={'field1': 'foo'}, auto_insert_errors=False) == 'errors') +def test_literal(): + assert (htmlfill.render('<form:error name="foo" />', + errors={'foo': htmlfill.htmlliteral('<test>')}) + == '<span class="error-message"><test></span><br />\n') |
From: <sub...@co...> - 2008-11-14 23:21:32
|
Author: ianb Date: 2008-11-14 16:21:26 -0700 (Fri, 14 Nov 2008) New Revision: 3655 Modified: FormEncode/trunk/docs/news.txt FormEncode/trunk/formencode/validators.py Log: Make FieldsMatch not require the first key be present (it would raise KeyError in that case) Also fixes SF 2261391 Modified: FormEncode/trunk/docs/news.txt =================================================================== --- FormEncode/trunk/docs/news.txt 2008-11-14 23:19:09 UTC (rev 3654) +++ FormEncode/trunk/docs/news.txt 2008-11-14 23:21:26 UTC (rev 3655) @@ -15,7 +15,9 @@ domain names (like x.com). * Make :class:`formencode.validators.FieldsMatch` give a normal - ``Invalid`` exception if you pass it a non-dictionary. + ``Invalid`` exception if you pass it a non-dictionary. Also treat + all missing keys as the empty string (previously the first key was + required and would raise KeyError). 1.1 --- Modified: FormEncode/trunk/formencode/validators.py =================================================================== --- FormEncode/trunk/formencode/validators.py 2008-11-14 23:19:09 UTC (rev 3654) +++ FormEncode/trunk/formencode/validators.py 2008-11-14 23:21:26 UTC (rev 3655) @@ -2648,6 +2648,8 @@ except TypeError: # Generally because field_dict isn't a dict raise Invalid(self.message('notDict', state), field_dict, state) + except KeyError: + ref = '' errors = {} for name in self.field_names[1:]: if field_dict.get(name, '') != ref: |
From: <sub...@co...> - 2008-11-14 23:19:16
|
Author: ianb Date: 2008-11-14 16:19:09 -0700 (Fri, 14 Nov 2008) New Revision: 3654 Modified: FormEncode/trunk/docs/news.txt FormEncode/trunk/formencode/validators.py Log: Make FieldsMatch raise a normal Invalid error when passed a non-dictionary (SF 2261391) Modified: FormEncode/trunk/docs/news.txt =================================================================== --- FormEncode/trunk/docs/news.txt 2008-11-14 23:11:35 UTC (rev 3653) +++ FormEncode/trunk/docs/news.txt 2008-11-14 23:19:09 UTC (rev 3654) @@ -14,6 +14,9 @@ * In :class:`formencode.validators.Email` allow single-character domain names (like x.com). +* Make :class:`formencode.validators.FieldsMatch` give a normal + ``Invalid`` exception if you pass it a non-dictionary. + 1.1 --- Modified: FormEncode/trunk/formencode/validators.py =================================================================== --- FormEncode/trunk/formencode/validators.py 2008-11-14 23:11:35 UTC (rev 3653) +++ FormEncode/trunk/formencode/validators.py 2008-11-14 23:19:09 UTC (rev 3654) @@ -2628,8 +2628,14 @@ messages = { 'invalid': _("Fields do not match (should be %(match)s)"), 'invalidNoMatch': _("Fields do not match"), + 'notDict': _("Fields should be a dictionary"), } + def __init__(self, *args, **kw): + super(FormValidator, self).__init__(*args, **kw) + if len(self.field_names) < 2: + raise TypeError("FieldsMatch() requires at least two field names") + def validate_partial(self, field_dict, state): for name in self.field_names: if not field_dict.has_key(name): @@ -2637,7 +2643,11 @@ self.validate_python(field_dict, state) def validate_python(self, field_dict, state): - ref = field_dict[self.field_names[0]] + try: + ref = field_dict[self.field_names[0]] + except TypeError: + # Generally because field_dict isn't a dict + raise Invalid(self.message('notDict', state), field_dict, state) errors = {} for name in self.field_names[1:]: if field_dict.get(name, '') != ref: |
From: <sub...@co...> - 2008-11-14 23:11:45
|
Author: ianb Date: 2008-11-14 16:11:35 -0700 (Fri, 14 Nov 2008) New Revision: 3653 Modified: FormEncode/trunk/docs/news.txt FormEncode/trunk/formencode/validators.py Log: Allow single-character domain names in emails (SF 2275865) Modified: FormEncode/trunk/docs/news.txt =================================================================== --- FormEncode/trunk/docs/news.txt 2008-11-14 23:10:44 UTC (rev 3652) +++ FormEncode/trunk/docs/news.txt 2008-11-14 23:11:35 UTC (rev 3653) @@ -11,6 +11,9 @@ * In :mod:`formencode.htmlfill` use a default encoding of utf8 when handling mixed ``str``/``unicode`` content. +* In :class:`formencode.validators.Email` allow single-character + domain names (like x.com). + 1.1 --- Modified: FormEncode/trunk/formencode/validators.py =================================================================== --- FormEncode/trunk/formencode/validators.py 2008-11-14 23:10:44 UTC (rev 3652) +++ FormEncode/trunk/formencode/validators.py 2008-11-14 23:11:35 UTC (rev 3653) @@ -1299,7 +1299,7 @@ usernameRE = re.compile(r"^[^ \t\n\r@<>()]+$", re.I) domainRE = re.compile(r''' - ^(?:[a-z0-9][a-z0-9\-]{1,62}\.)+ # (sub)domain - alpha followed by 62max chars (63 total) + ^(?:[a-z0-9][a-z0-9\-]{0,62}\.)+ # (sub)domain - alpha followed by 62max chars (63 total) [a-z]{2,}$ # TLD ''', re.I | re.VERBOSE) |
From: <sub...@co...> - 2008-11-14 23:10:48
|
Author: ianb Date: 2008-11-14 16:10:44 -0700 (Fri, 14 Nov 2008) New Revision: 3652 Modified: FormEncode/trunk/docs/news.txt FormEncode/trunk/formencode/htmlfill.py Log: Added a default encoding when handling mixed str/unicode content Modified: FormEncode/trunk/docs/news.txt =================================================================== --- FormEncode/trunk/docs/news.txt 2008-11-11 22:46:20 UTC (rev 3651) +++ FormEncode/trunk/docs/news.txt 2008-11-14 23:10:44 UTC (rev 3652) @@ -8,6 +8,9 @@ * Added :meth:`formencode.api.Invalid.__unicode__` +* In :mod:`formencode.htmlfill` use a default encoding of utf8 when + handling mixed ``str``/``unicode`` content. + 1.1 --- Modified: FormEncode/trunk/formencode/htmlfill.py =================================================================== --- FormEncode/trunk/formencode/htmlfill.py 2008-11-11 22:46:20 UTC (rev 3651) +++ FormEncode/trunk/formencode/htmlfill.py 2008-11-14 23:10:44 UTC (rev 3652) @@ -166,6 +166,8 @@ <input type="checkbox" name="nice_guy"> """ + default_encoding = 'utf8' + def __init__(self, defaults, errors=None, use_all_keys=False, error_formatters=None, error_class='error', add_attributes=None, listener=None, @@ -213,9 +215,9 @@ if type(str1) == type(str2): return str1 == str2 if isinstance(str1, unicode): - str1 = str1.encode(self.encoding) + str1 = str1.encode(self.encoding or self.default_encoding) else: - str2 = str2.encode(self.encoding) + str2 = str2.encode(self.encoding or self.default_encoding) return str1 == str2 def close(self): |
From: <sub...@co...> - 2008-11-10 05:52:30
|
Author: ianb Date: 2008-11-09 22:52:26 -0700 (Sun, 09 Nov 2008) New Revision: 3648 Modified: FormEncode/trunk/formencode/api.py Log: fix for previous attempt at a GAE fix Modified: FormEncode/trunk/formencode/api.py =================================================================== --- FormEncode/trunk/formencode/api.py 2008-11-07 06:49:33 UTC (rev 3647) +++ FormEncode/trunk/formencode/api.py 2008-11-10 05:52:26 UTC (rev 3648) @@ -34,7 +34,7 @@ pass if not hasattr(os, 'access'): # This happens on Google App Engine - os.path.join(os.path.dirname(__file__), 'i18n') + return os.path.join(os.path.dirname(__file__), 'i18n') if os.access(locale_dir, os.R_OK | os.X_OK): # If the resource is present in the egg, use it return locale_dir |
From: <sub...@co...> - 2008-11-05 12:10:02
|
Author: mark Date: 2008-11-05 04:52:04 -0700 (Wed, 05 Nov 2008) New Revision: 3644 Modified: FormEncode/trunk/formencode/i18n/fr/LC_MESSAGES/FormEncode.po Log: fr translation updated, by courtesy of St?\195?\169phane Raimbault Modified: FormEncode/trunk/formencode/i18n/fr/LC_MESSAGES/FormEncode.po =================================================================== --- FormEncode/trunk/formencode/i18n/fr/LC_MESSAGES/FormEncode.po 2008-11-02 22:15:58 UTC (rev 3643) +++ FormEncode/trunk/formencode/i18n/fr/LC_MESSAGES/FormEncode.po 2008-11-05 11:52:04 UTC (rev 3644) @@ -7,323 +7,484 @@ msgid "" msgstr "" "Project-Id-Version: FormEncode 1.0\n" -"POT-Creation-Date: \n" -"PO-Revision-Date: 2008-08-12 16:38+0200\n" +"POT-Creation-Date: 2008-11-05 12:01+CET\n" +"PO-Revision-Date: 2008-10-16 12:46+0200\n" "Last-Translator: Stéphane Raimbault <ste...@gm...>\n" "Language-Team: GNOME French Team <gn...@tr...>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: api.py:335 -#: validators.py:433 +#: api.py:381 validators.py:443 msgid "Please enter a value" msgstr "Saisissez une valeur" -#: api.py:336 +#: api.py:382 msgid "The input must be a string (not a %(type)s: %(value)r)" -msgstr "La valeur saisie doit être une chaîne (et non une %(type)s : %(value)r)" +msgstr "" +"La valeur saisie doit être une chaîne (et non une %(type)s : %(value)r)" -#: api.py:337 +#: api.py:383 msgid "The input must be a string (not None)" msgstr "La valeur saisie doit être une chaîne (et non « None »)" -#: validators.py:160 +#: national.py:21 +msgid "Belarus" +msgstr "Biélorussie" + +#: national.py:22 +msgid "Montenegro" +msgstr "Monténégro" + +#: national.py:23 +msgid "Tasmania" +msgstr "Tasmanie" + +#: national.py:28 +msgid "Britain" +msgstr "Bretagne" + +#: national.py:29 +msgid "Great Britain" +msgstr "Grande Bretagne" + +#: national.py:30 +msgid "Cote de Ivoire" +msgstr "Côte d'Ivoire" + +#: national.py:135 +msgid "%d digits" +msgstr "%d chiffres" + +#: national.py:156 national.py:216 national.py:251 +msgid "Please enter a zip code (%s)" +msgstr "Saisissez un code postal (%s)" + +#: national.py:216 +msgid "LnnnnLLL" +msgstr "LnnnnLLL" + +#: national.py:251 +msgid "LnL nLn" +msgstr "LnL nLn" + +#: national.py:286 +msgid "Please enter a valid postal code (for format see BS 7666)" +msgstr "Saisissez un code postal valide (suivant le format BS 7666)" + +#: national.py:327 +msgid "That country is not listed in ISO 3166" +msgstr "Ce pays n'est pas mentionné dans la norme ISO 3166" + +#: national.py:375 +msgid "Given postal code does not match the country's format." +msgstr "Le format du code postal saisi ne correspond pas à celui du pays." + +#: national.py:465 +msgid "Please enter a state code" +msgstr "Saisissez un code d'état" + +#: national.py:466 +msgid "Please enter a state code with TWO letters" +msgstr "Saisissez un code d'état composé de DEUX lettres" + +#: national.py:467 +msgid "That is not a valid state code" +msgstr "Ceci n'est pas un code d'état valide" + +#: national.py:521 +msgid "" +"Please enter a number, with area code, in the form ###-###-####, optionally " +"with \"ext.####\"" +msgstr "" +"Saisissez un nombre, avec un code de zone, sous la forme ###-###-####, " +"éventuellement sous la forme « ext.#### »" + +#: national.py:631 +msgid "Please enter a number, with area code, in the form +##-###-#######." +msgstr "" +"Saisissez un nombre, avec un code de zone, sous la forme +###-###-#######." + +#: national.py:709 +msgid "That language is not listed in ISO 639" +msgstr "Cette langue n'est pas mentionnée dans la norme ISO 639" + +#: schema.py:61 +msgid "The input field %(name)s was not expected." +msgstr "Le champ de saisi « %(name)s » n'était pas attendu." + +#: schema.py:62 +msgid "Missing value" +msgstr "Valeur manquante" + +#: schema.py:63 +msgid "The input must be dict-like (not a %(type)s: %(value)r)" +msgstr "" +"La valeur saisie doit être un dictionnaire (et non %(type)s: %(value)r)" + +#: validators.py:170 msgid "%(object)r is not a subclass of %(subclass)s" msgstr "%(object)r n'est pas une sous-classe de %(subclass)s" -#: validators.py:161 +#: validators.py:171 msgid "%(object)r is not a subclass of one of the types %(subclassList)s" msgstr "%(object)r n'est pas une sous-classe d'un des types %(subclassList)s" -#: validators.py:162 +#: validators.py:172 msgid "%(object)r must be one of the types %(typeList)s" msgstr "%(object)r doit être d'un des types %(typeList)s" -#: validators.py:163 +#: validators.py:173 msgid "%(object)r must be of the type %(type)s" msgstr "%(object)r doit être de type %(type)s" -#: validators.py:344 +#: validators.py:354 msgid "Enter a value less than %(maxLength)i characters long" -msgstr "Saisissez une chaîne dont la longueur est inférieure à %(maxLength)i caractères" +msgstr "" +"Saisissez une chaîne dont la longueur est inférieure à %(maxLength)i " +"caractères" -#: validators.py:345 -#: validators.py:399 +#: validators.py:355 validators.py:409 msgid "Invalid value (value with length expected)" msgstr "Valeur non valide (valeur d'une certaine longueur attendue)" -#: validators.py:398 +#: validators.py:408 msgid "Enter a value at least %(minLength)i characters long" msgstr "Saisissez une valeur d'au moins %(minLength)i caractères" -#: validators.py:458 +#: validators.py:468 msgid "You cannot enter a value here" msgstr "Vous ne pouvez pas saisir une valeur ici" -#: validators.py:509 +#: validators.py:519 msgid "The input is not valid" msgstr "La valeur saisie est non valide" -#: validators.py:565 +#: validators.py:574 msgid "Enter only letters, numbers, or _ (underscore)" msgstr "Saisissez seulement des lettres, nombres ou « _ » (underscore)" -#: validators.py:604 +#: validators.py:613 msgid "Invalid value" msgstr "Valeur non valide" -#: validators.py:605 +#: validators.py:614 msgid "Value must be one of: %(items)s (not %(value)r)" msgstr "La valeur doit être une des suivantes : %(items)s (et non %(value)r)" -#: validators.py:668 +#: validators.py:677 msgid "Choose something" msgstr "Choississez quelque chose" -#: validators.py:669 +#: validators.py:678 msgid "Enter a value from: %(items)s" msgstr "Saisissez une valeur parmi : %(items)s" -#: validators.py:670 +#: validators.py:679 msgid "That value is not known" msgstr "Cette valeur est inconnue" -#: validators.py:671 -msgid "Nothing in my dictionary goes by the value %(value)s. Choose one of: %(items)s" -msgstr "La valeur saisie n'a pas correspondance dans le dictionnaire %(value)s. Choississez l'une des suivantes : %(items)s" +#: validators.py:680 +msgid "" +"Nothing in my dictionary goes by the value %(value)s. Choose one of: %" +"(items)s" +msgstr "" +"La valeur saisie n'a pas correspondance dans le dictionnaire %(value)s. " +"Choississez l'une des suivantes : %(items)s" -#: validators.py:732 +#: validators.py:741 msgid "Must be an integer index" msgstr "L'index doit être un entier" -#: validators.py:733 +#: validators.py:742 msgid "Index out of range" msgstr "Index en dehors de l'intervalle" -#: validators.py:734 +#: validators.py:743 msgid "Item %(value)s was not found in the list" msgstr "L'élément %(value)s n'a pas été trouvé dans la liste" -#: validators.py:809 +#: validators.py:818 msgid "Date must be after %(date)s" msgstr "La date doit se situer après %(date)s" -#: validators.py:810 +#: validators.py:819 msgid "Date must be before %(date)s" msgstr "La date doit se situer avant %(date)s" -#: validators.py:812 +#: validators.py:821 msgid "%%A, %%d %%B %%Y" msgstr "%%A %%d %%B %%Y" -#: validators.py:813 +#: validators.py:822 msgid "The date must be sometime in the future" msgstr "La date doit être dans le futur" -#: validators.py:913 +#: validators.py:930 +msgid "Please enter a number that is %(min)s or greater" +msgstr "Saisissez un nombre supérieur ou égal à %(min)s" + +#: validators.py:931 +msgid "Please enter a number that is %(max)s or smaller" +msgstr "Saisissez un nombre inférieur ou égal à %(max)s" + +#: validators.py:970 msgid "Please enter an integer value" msgstr "Saisissez une valeur entière" -#: validators.py:945 +#: validators.py:1009 msgid "Please enter a number" msgstr "Saisissez un nombre" -#: validators.py:998 +#: validators.py:1069 msgid "Enter a value less than %(max)i characters long" -msgstr "Saisissez une valeur dont la longueur est inférieure à %(max)i caractères" +msgstr "" +"Saisissez une valeur dont la longueur est inférieure à %(max)i caractères" -#: validators.py:999 +#: validators.py:1070 msgid "Enter a value %(min)i characters long or more" msgstr "Saisissez une valeur d'au moins %(min)i caractères" -#: validators.py:1050 +#: validators.py:1143 msgid "Invalid data or incorrect encoding" msgstr "Donnée non valide ou codage incorrect" -#: validators.py:1178 +#: validators.py:1307 msgid "Please enter an email address" msgstr "Saisissez une adresse électronique" -#: validators.py:1179 +#: validators.py:1308 msgid "An email address must contain a single @" msgstr "Une adresse électronique ne doit contenir qu'un seul « @ »" -#: validators.py:1180 -msgid "The username portion of the email address is invalid (the portion before the @: %(username)s)" -msgstr "Le nom d'utilisateur de l'adresse électronique n'est pas valide (partie avant le « @ » : %(username)s)" +#: validators.py:1309 +msgid "" +"The username portion of the email address is invalid (the portion before the " +"@: %(username)s)" +msgstr "" +"Le nom d'utilisateur de l'adresse électronique n'est pas valide (partie " +"avant le « @ » : %(username)s)" -#: validators.py:1181 -#: validators.py:1294 +#: validators.py:1310 validators.py:1452 msgid "An error occured when trying to connect to the server: %(error)s" -msgstr "Une erreur est survenue lors de la tentative de connexion au serveur : %(error)s" +msgstr "" +"Une erreur est survenue lors de la tentative de connexion au serveur : %" +"(error)s" -#: validators.py:1182 -msgid "The domain portion of the email address is invalid (the portion after the @: %(domain)s)" -msgstr "Le nom de domaine de l'adresse électronique n'est pas valide (la partie après le « @ » : %(domain)s)" +#: validators.py:1311 +msgid "" +"The domain portion of the email address is invalid (the portion after the @: " +"%(domain)s)" +msgstr "" +"Le nom de domaine de l'adresse électronique n'est pas valide (la partie " +"après le « @ » : %(domain)s)" -#: validators.py:1183 -msgid "The domain of the email address does not exist (the portion after the @: %(domain)s)" -msgstr "Le nom de domaine de l'adresse électronique n'existe pas (la partie après le « @ » : %(domain)s)" +#: validators.py:1312 +msgid "" +"The domain of the email address does not exist (the portion after the @: %" +"(domain)s)" +msgstr "" +"Le nom de domaine de l'adresse électronique n'existe pas (la partie après le " +"« @ » : %(domain)s)" -#: validators.py:1291 +#: validators.py:1449 msgid "You must start your URL with http://, https://, etc" msgstr "L'adresse doit commencer par http://, https://, etc." -#: validators.py:1292 +#: validators.py:1450 msgid "That is not a valid URL" msgstr "Ceci n'est pas une adresse valide" -#: validators.py:1293 +#: validators.py:1451 msgid "An error occurred when trying to access the URL: %(error)s" -msgstr "Une erreur est survenue lors de la tentative d'accès à l'adresse : %(error)s" +msgstr "" +"Une erreur est survenue lors de la tentative d'accès à l'adresse : %(error)s" -#: validators.py:1295 +#: validators.py:1453 msgid "The server responded that the page could not be found" msgstr "Le serveur a répondu que la page n'a pu être trouvée" -#: validators.py:1296 +#: validators.py:1454 msgid "The server responded with a bad status code (%(status)s)" msgstr "Le serveur a répondu avec un code de retour incorrect (%(status)s)" -#: validators.py:1399 -msgid "Please enter a state code" -msgstr "Saisissez un code d'état" +#: validators.py:1455 +msgid "You must provide a full domain name (like %(domain)s.com)" +msgstr "Vous devez saisir un nom de domaine complet (tel que %(domain)s.com)" -#: validators.py:1400 -msgid "Please enter a state code with TWO letters" -msgstr "Saisissez un code d'état composé de DEUX lettres" +#: validators.py:1591 +msgid "" +"The type of i-name is not defined; it may be either individual or " +"organizational" +msgstr "" +"Le type de « i-name » n'est pas défini ; cela peut être un particulier ou une " +"organisation" -#: validators.py:1401 -msgid "That is not a valid state code" -msgstr "Ceci n'est pas un code d'état valide" +#: validators.py:1592 +msgid "Dots and dashes may not be repeated consecutively" +msgstr "Les points et les tirets ne peuvent pas êtres répétés consécutivement" -#: validators.py:1452 -msgid "Please enter a number, with area code, in the form ###-###-####, optionally with \"ext.####\"" -msgstr "Saisissez un nombre, avec un code de zone, sous la forme ###-###-####, éventuellement sous la forme « ext.#### »" +#: validators.py:1593 +msgid "\"%(iname)s\" is an invalid i-name" +msgstr "« %(iname)s » n'est pas un « i-name » valide" -#: validators.py:1614 -#: validators.py:1622 +#: validators.py:1594 +msgid "i-names may not start with numbers nor punctuation marks" +msgstr "" +"Les « i-names » ne peuvent pas débuter avec des nombres ou des caractères de " +"ponctuation" + +#: validators.py:1596 +msgid "\"%(inumber)s\" is an invalid i-number" +msgstr "« %(inumber)s » n'est pas « i-number » valide<" + +#: validators.py:1597 +msgid "The XRI must be a string (not a %(type)s: %(value)r)" +msgstr "La XRI doit être une chaîne (et non %(type)s : %(value)r)" + +#: validators.py:1598 +msgid "\"%(xri_type)s\" is not a valid type of XRI" +msgstr "« %(xri_type)s » n'est un type valide de XRI" + +#: validators.py:1699 +msgid "\"%(id)s\" is not a valid OpenId (it is neither an URL nor an XRI)" +msgstr "« %(id)s » n'est pas un OpenID valide (car n'est ni une URL ni un XRI)" + +#: validators.py:1924 validators.py:1932 msgid "Please enter the date in the form %(format)s" msgstr "Saisissez la date sous la forme %(format)s" -#: validators.py:1615 +#: validators.py:1925 msgid "Please enter a month from 1 to 12" msgstr "Saisissez un mois compris entre 1 et 12" -#: validators.py:1616 +#: validators.py:1926 msgid "Please enter a valid day" msgstr "Saisissez un jour valide" -#: validators.py:1617 +#: validators.py:1927 msgid "That month only has %(days)i days" msgstr "Ce mois a seulement %(days)i jours" -#: validators.py:1618 +#: validators.py:1928 msgid "That is not a valid day (%(exception)s)" msgstr "Ceci n'est pas un jour valide (%(exception)s)" -#: validators.py:1619 +#: validators.py:1929 msgid "Unknown month name: %(month)s" msgstr "Nom de mois inconnu : %(month)s" -#: validators.py:1620 +#: validators.py:1930 msgid "Please enter a number for the year" msgstr "Saisissez un nombre pour l'année" -#: validators.py:1621 -msgid "Please enter a four-digit year" -msgstr "Saisissez une année composée de quatre chiffres" +#: validators.py:1931 +msgid "Please enter a four-digit year after 1899" +msgstr "Saisissez une année avec quatre chiffres supérieure à 1899" -#: validators.py:1800 +#: validators.py:2113 msgid "You must indicate AM or PM" msgstr "Vous devez préciser AM ou PM" -#: validators.py:1801 +#: validators.py:2114 msgid "There are too many :'s" msgstr "Il y a trop de « ' »" -#: validators.py:1802 +#: validators.py:2115 msgid "You may not enter seconds" msgstr "Vous ne pouvez pas saisir de secondes" -#: validators.py:1803 +#: validators.py:2116 msgid "You must enter seconds" msgstr "Vous devez saisir des secondes" -#: validators.py:1804 +#: validators.py:2117 msgid "You must enter minutes (after a :)" msgstr "Vous devez saisir des minutes (après un « : »)" -#: validators.py:1805 +#: validators.py:2118 msgid "The %(part)s value you gave is not a number: %(number)r" msgstr "La valeur %(part)s n'est pas un nombre : %(number)r" -#: validators.py:1806 +#: validators.py:2119 msgid "You must enter an hour in the range %(range)s" msgstr "Vous devez saisir une heure dans l'intervalle %(range)s" -#: validators.py:1807 +#: validators.py:2120 msgid "You must enter a minute in the range 0-59" msgstr "Vous devez saisir une minute comprise entre 0 et 59" -#: validators.py:1808 +#: validators.py:2121 msgid "You must enter a second in the range 0-59" msgstr "Vous devez saisir une seconde comprise entre 0 et 59" -#: validators.py:1962 -msgid "Please enter a zip code (5 digits)" -msgstr "Saisissez un code postal (5 chiffres)" - -#: validators.py:1986 +#: validators.py:2280 msgid "The name %(name)s is missing" msgstr "Le nom %(name)s est manquant" -#: validators.py:2027 +#: validators.py:2324 msgid "Value should be %(true)r or %(false)r" msgstr "La valeur doit être %(true)r ou %(false)r" -#: validators.py:2062 +#: validators.py:2359 msgid "Value does not contain a signature" msgstr "Le nom %(name)s est manquant" -#: validators.py:2063 +#: validators.py:2360 msgid "Signature is not correct" msgstr "La signature est incorrecte" -#: validators.py:2185 +#: validators.py:2496 +msgid "" +"A MAC address must contain 12 digits and A-F; the value you gave has %" +"(length)s characters" +msgstr "" +"Une adresse MAC doit contenir 12 chiffres et lettres comprisent entre A et " +"F ; la valuer saisie a %(length)s caractères" + +#: validators.py:2497 +msgid "" +"MAC addresses may only contain 0-9 and A-F (and optionally :), not %(char)r" +msgstr "" +"Une adresse MAC peut seulement contenir des chiffres entre 0 et 9 et des " +"lettres entre A et F, mais pas %(char)r" + +#: validators.py:2629 msgid "Fields do not match (should be %(match)s)" msgstr "Les champs ne correspondent pas (devrait être %(match)s)" -#: validators.py:2186 +#: validators.py:2630 msgid "Fields do not match" msgstr "Les champs ne correspondent pas" -#: validators.py:2248 +#: validators.py:2696 msgid "Please enter only the number, no other characters" msgstr "Veuillez seulement saisir un chiffre, pas d'autres caractères" -#: validators.py:2249 +#: validators.py:2697 msgid "You did not enter a valid number of digits" msgstr "Le nombre de chiffres saisis n'est pas valide" -#: validators.py:2250 +#: validators.py:2698 msgid "That number is not valid" msgstr "Ce nombre n'est pas valide" -#: validators.py:2365 +#: validators.py:2699 +msgid "The field %(key)s is missing" +msgstr "Le champ %(key)s est manquant" + +#: validators.py:2818 msgid "Please enter numbers only for month and year" msgstr "Saisissez seulement des nombres pour le mois et l'année" -#: validators.py:2366 +#: validators.py:2819 msgid "Invalid Expiration Date" msgstr "Date d'expiration non valide" -#: validators.py:2435 +#: validators.py:2888 msgid "Please enter numbers only for credit card security code" msgstr "Saisissez uniquement des chiffres pour le code de la carte bancaire" -#: validators.py:2436 +#: validators.py:2889 msgid "Invalid credit card security code length" msgstr "La longueur du code de la carte bancaire est non valide" - |