[Python-modules-commits] [wtforms] 01/06: Import wtforms_2.1.orig.tar.gz

Orestis Ioannou oorestisime-guest at moszumanska.debian.org
Fri Jan 8 21:34:55 UTC 2016


This is an automated email from the git hooks/post-receive script.

oorestisime-guest pushed a commit to branch master
in repository wtforms.

commit 7dc254e99320dc56d47b5e1add88e83b4cf109a9
Author: Orestis Ioannou <orestis at oioannou.com>
Date:   Tue Dec 22 00:47:35 2015 +0200

    Import wtforms_2.1.orig.tar.gz
---
 .travis.yml                                      |   3 +
 CHANGES.rst                                      |  11 ++-
 docs/conf.py                                     |   4 +-
 docs/csrf.rst                                    |   4 +-
 docs/ext.rst                                     |   4 +-
 setup.py                                         |   2 +-
 tests/ext_django/tests.py                        |   8 ++-
 tests/fields.py                                  |  14 +++-
 tests/runtests.py                                |   2 +-
 tests/test_requirements.txt                      |   2 +-
 tests/widgets.py                                 |   7 ++
 wtforms/__init__.py                              |   2 +-
 wtforms/compat.py                                |  21 ++++--
 wtforms/ext/i18n/utils.py                        |   6 +-
 wtforms/ext/sqlalchemy/__init__.py               |   4 +-
 wtforms/ext/sqlalchemy/orm.py                    |   2 +-
 wtforms/fields/core.py                           |  17 +++--
 wtforms/locale/ar/LC_MESSAGES/wtforms.mo         | Bin 0 -> 4506 bytes
 wtforms/locale/{ca => ar}/LC_MESSAGES/wtforms.po |  88 ++++++++++++-----------
 wtforms/locale/ca/LC_MESSAGES/wtforms.mo         | Bin 3393 -> 3393 bytes
 wtforms/locale/ca/LC_MESSAGES/wtforms.po         |   4 +-
 wtforms/locale/cs_CZ/LC_MESSAGES/wtforms.mo      | Bin 3544 -> 3559 bytes
 wtforms/locale/cs_CZ/LC_MESSAGES/wtforms.po      |  45 ++++++------
 wtforms/locale/cy/LC_MESSAGES/wtforms.mo         | Bin 0 -> 3346 bytes
 wtforms/locale/{ca => cy}/LC_MESSAGES/wtforms.po |  85 +++++++++++-----------
 wtforms/locale/fr/LC_MESSAGES/wtforms.po         |  20 +++---
 wtforms/locale/ja/LC_MESSAGES/wtforms.mo         | Bin 0 -> 3934 bytes
 wtforms/locale/{ca => ja}/LC_MESSAGES/wtforms.po |  83 +++++++++++----------
 wtforms/locale/pl/LC_MESSAGES/wtforms.mo         | Bin 3386 -> 3514 bytes
 wtforms/locale/pl/LC_MESSAGES/wtforms.po         |  20 +++---
 wtforms/meta.py                                  |   3 +
 wtforms/validators.py                            |   6 +-
 wtforms/widgets/core.py                          |  11 ++-
 wtforms/widgets/html5.py                         |   8 ++-
 34 files changed, 283 insertions(+), 203 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 80a5bce..8f01a2d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,6 +4,7 @@ python:
   - 2.6
   - 2.7
   - 3.3
+  - 3.4
   - pypy
 
 env:
@@ -16,6 +17,8 @@ matrix:
   exclude:
     - python: 3.3
       env: DJANGO="Django<1.5"
+    - python: 3.4
+      env: DJANGO="Django<1.5"
 
 install:
   - "pip install $DJANGO $LOCALFLAVOR $SQLALCHEMY"
diff --git a/CHANGES.rst b/CHANGES.rst
index f1df816..9c0f878 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -1,6 +1,15 @@
 WTForms Changelog
 =================
 
+Version 2.1
+-----------
+Released December 15, 2015
+
+- Added `render_kw` to allow default rendering time options.
+- Updated / added a number of localizations
+- Updated docs
+- Allow widgets to set flags
+
 Version 2.0.2
 -------------
 Released January 18, 2015
@@ -21,7 +30,7 @@ Version 2.0
 -----------
 Released May 20, 2014
 
-- Add new `class Meta` paradigm for much more powerful customization 
+- Add new `class Meta` paradigm for much more powerful customization
   of WTForms.
 - Move i18n into core. Deprecate `wtforms.ext.i18n`.
 - Move CSRF into core. Deprecate `wtforms.ext.csrf`.
diff --git a/docs/conf.py b/docs/conf.py
index 460c61c..bc93627 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -54,9 +54,9 @@ copyright = '2010-2014 by Thomas Johansson, James Crasta'
 # other places throughout the built documents.
 #
 # The short X.Y version.
-version = '2.0.2'
+version = '2.1'
 # The full version, including alpha/beta/rc tags.
-release = '2.0.2'
+release = '2.1'
 
 
 # There are two options for replacing |today|: either, you set today to some
diff --git a/docs/csrf.rst b/docs/csrf.rst
index 171a67f..55a9363 100644
--- a/docs/csrf.rst
+++ b/docs/csrf.rst
@@ -293,7 +293,7 @@ available without passing it all the time:
 
 .. code-block:: python
 
-    from flask import request
+    from flask import session
     from wtforms.csrf.session import SessionCSRF
 
     class MyBaseForm(Form):
@@ -304,7 +304,7 @@ available without passing it all the time:
 
             @property
             def csrf_context(self):
-                return request.session
+                return session
 
 Now with any subclasses of MyBaseForm, you don't need to pass in the csrf 
 context, and on top of that, we grab the secret key out of your normal app
diff --git a/docs/ext.rst b/docs/ext.rst
index 77c9ee9..3b66ba8 100644
--- a/docs/ext.rst
+++ b/docs/ext.rst
@@ -61,7 +61,7 @@ For better date-time parsing using the `python-dateutil`_  package,
 :mod:`wtforms.ext.dateutil` provides a set of fields to use to accept a wider
 range of date input. 
 
-.. _python-dateutil: http://labix.org/python-dateutil
+.. _python-dateutil: https://dateutil.readthedocs.org/
 
 .. autoclass:: DateTimeField(default field arguments, parse_kwargs=None, display_format='%Y-%m-%d %H:%M')
 
@@ -86,7 +86,7 @@ Templatetags
 ~~~~~~~~~~~~
 .. module:: wtforms.ext.django.templatetags.wtforms
 
-Django templates does not allow arbitrarily calling functions with parameters,
+Django templates do not allow arbitrarily calling functions with parameters,
 making it impossible to use the html attribute rendering feature of WTForms. To
 alleviate this, we provide a templatetag.
 
diff --git a/setup.py b/setup.py
index 1607733..2a48a8f 100644
--- a/setup.py
+++ b/setup.py
@@ -9,7 +9,7 @@ if sys.version_info < (2, 7):
 
 setup(
     name='WTForms',
-    version='2.0.2',
+    version='2.1',
     url='http://wtforms.simplecodes.com/',
     license='BSD',
     author='Thomas Johansson, James Crasta',
diff --git a/tests/ext_django/tests.py b/tests/ext_django/tests.py
index 2d17e78..168320f 100644
--- a/tests/ext_django/tests.py
+++ b/tests/ext_django/tests.py
@@ -31,7 +31,13 @@ settings.configure(
             'ENGINE': 'django.db.backends.sqlite3',
             'NAME': ':memory:'
         }
-    }
+    },
+    # this fixes warnings in django 1.7
+    MIDDLEWARE_CLASSES = [
+            'django.contrib.sessions.middleware.SessionMiddleware',
+            'django.contrib.auth.middleware.AuthenticationMiddleware',
+            'django.contrib.messages.middleware.MessageMiddleware',
+    ]
 )
 
 from django.db import connection
diff --git a/tests/fields.py b/tests/fields.py
index 7f717f2..0a845a8 100644
--- a/tests/fields.py
+++ b/tests/fields.py
@@ -134,7 +134,7 @@ class FiltersTest(TestCase):
 
 class FieldTest(TestCase):
     class F(Form):
-        a = TextField(default='hello')
+        a = TextField(default='hello', render_kw={'readonly': True, 'foo': u'bar'})
 
     def setUp(self):
         self.field = self.F().a
@@ -144,7 +144,7 @@ class FieldTest(TestCase):
         assert unbound.creation_counter != 0
         assert unbound.field_class is TextField
         self.assertEqual(unbound.args, ())
-        self.assertEqual(unbound.kwargs, {'default': 'hello'})
+        self.assertEqual(unbound.kwargs, {'default': 'hello', 'render_kw': {'readonly': True, 'foo': u'bar'}})
         assert repr(unbound).startswith('<UnboundField(TextField')
 
     def test_htmlstring(self):
@@ -174,6 +174,15 @@ class FieldTest(TestCase):
         # Do we fail if both _meta and _form are None?
         self.assertRaises(TypeError, TextField, _name='foo', _form=None)
 
+    def test_render_kw(self):
+        form = self.F()
+        self.assertEqual(form.a(), u'<input foo="bar" id="a" name="a" readonly type="text" value="hello">')
+        self.assertEqual(form.a(foo=u'baz'), u'<input foo="baz" id="a" name="a" readonly type="text" value="hello">')
+        self.assertEqual(
+            form.a(foo=u'baz', readonly=False, other='hello'),
+            u'<input foo="baz" id="a" name="a" other="hello" type="text" value="hello">'
+        )
+
 
 class PrePostTestField(TextField):
     def pre_validate(self, form):
@@ -363,6 +372,7 @@ class HiddenFieldTest(TestCase):
     def test(self):
         form = self.F()
         self.assertEqual(form.a(), """<input id="a" name="a" type="hidden" value="LE DEFAULT">""")
+        self.assertTrue(form.a.flags.hidden)
 
 
 class TextAreaFieldTest(TestCase):
diff --git a/tests/runtests.py b/tests/runtests.py
index c65ecd5..0ef2f34 100755
--- a/tests/runtests.py
+++ b/tests/runtests.py
@@ -60,7 +60,7 @@ def main():
             max_line_length=130,
         )
         guide_tests = pep8.StyleGuide(
-            ignore=['E221'],
+            ignore=['E221', 'E731', 'E402'],
             paths=['tests/'],
             max_line_length=150,
         )
diff --git a/tests/test_requirements.txt b/tests/test_requirements.txt
index e178e5e..5351cd7 100644
--- a/tests/test_requirements.txt
+++ b/tests/test_requirements.txt
@@ -1,5 +1,5 @@
 coverage
 Babel>=1.3
 SQLAlchemy
-pep8
+pep8==1.6.2
 python-dateutil
diff --git a/tests/widgets.py b/tests/widgets.py
index 16ff47d..0432d8f 100644
--- a/tests/widgets.py
+++ b/tests/widgets.py
@@ -92,6 +92,7 @@ class BasicWidgetsTest(TestCase):
 
     def test_hidden_input(self):
         self.assertTrue('type="hidden"' in HiddenInput()(self.field))
+        self.assertTrue('hidden' in HiddenInput().field_flags)
 
     def test_checkbox_input(self):
         self.assertEqual(CheckboxInput()(self.field, value='v'), '<input checked id="id" name="bar" type="checkbox" value="v">')
@@ -144,6 +145,12 @@ class HTML5Test(TestCase):
         self.assertEqual(i1(self.field), '<input id="id" name="bar" step="any" type="number" value="42">')
         i2 = html5.NumberInput(step=2)
         self.assertEqual(i2(self.field, step=3), '<input id="id" name="bar" step="3" type="number" value="42">')
+        i3 = html5.NumberInput(min=10)
+        self.assertEqual(i3(self.field), '<input id="id" min="10" name="bar" type="number" value="42">')
+        self.assertEqual(i3(self.field, min=5), '<input id="id" min="5" name="bar" type="number" value="42">')
+        i4 = html5.NumberInput(max=100)
+        self.assertEqual(i4(self.field), '<input id="id" max="100" name="bar" type="number" value="42">')
+        self.assertEqual(i4(self.field, max=50), '<input id="id" max="50" name="bar" type="number" value="42">')
 
     def test_range(self):
         i1 = html5.RangeInput(step='any')
diff --git a/wtforms/__init__.py b/wtforms/__init__.py
index 97c91b0..45288e7 100644
--- a/wtforms/__init__.py
+++ b/wtforms/__init__.py
@@ -13,4 +13,4 @@ from wtforms.fields import *
 from wtforms.form import Form
 from wtforms.validators import ValidationError
 
-__version__ = '2.0.2'
+__version__ = '2.1'
diff --git a/wtforms/compat.py b/wtforms/compat.py
index 8ee381c..a6fd200 100644
--- a/wtforms/compat.py
+++ b/wtforms/compat.py
@@ -1,19 +1,32 @@
 import sys
 
+__all__ = (
+    'text_type', 'string_types', 'izip', 'iteritems', 'itervalues',
+    'with_metaclass',
+)
+
 if sys.version_info[0] >= 3:
     text_type = str
     string_types = (str, )
-    iteritems = lambda o: o.items()
-    itervalues = lambda o: o.values()
     izip = zip
 
+    def iteritems(o):
+        return o.items()
+
+    def itervalues(o):
+        return o.values()
+
 else:
     text_type = unicode
     string_types = (basestring, )
-    iteritems = lambda o: o.iteritems()
-    itervalues = lambda o: o.itervalues()
     from itertools import izip
 
+    def iteritems(o):
+        return o.iteritems()
+
+    def itervalues(o):
+        return o.itervalues()
+
 
 def with_metaclass(meta, base=object):
     return meta("NewBase", (base,), {})
diff --git a/wtforms/ext/i18n/utils.py b/wtforms/ext/i18n/utils.py
index a31a75a..5db33b3 100644
--- a/wtforms/ext/i18n/utils.py
+++ b/wtforms/ext/i18n/utils.py
@@ -3,12 +3,12 @@ Module is just here for compatibility reasons, and will be removed in a future r
 
 Importing this will cause a DeprecationWarning.
 """
-__all__ = ('messages_path', 'get_builtin_gnu_translations', 'get_translations', 'DefaultTranslations')
-
 from wtforms.i18n import (messages_path, get_builtin_gnu_translations, get_translations, DefaultTranslations)
+import warnings
+
+__all__ = ('messages_path', 'get_builtin_gnu_translations', 'get_translations', 'DefaultTranslations')
 
 
-import warnings
 warnings.warn(
     'i18n utils have been merged into core, and this module will go away in WTForms 3.0',
     category=DeprecationWarning, stacklevel=2
diff --git a/wtforms/ext/sqlalchemy/__init__.py b/wtforms/ext/sqlalchemy/__init__.py
index 90b737c..3bbfa84 100644
--- a/wtforms/ext/sqlalchemy/__init__.py
+++ b/wtforms/ext/sqlalchemy/__init__.py
@@ -2,7 +2,9 @@ import warnings
 
 warnings.warn(
     'wtforms.ext.sqlalchemy is deprecated, and will be removed in WTForms 3.0. '
-    'Instead transition to the excellent WTForms-Alchemy package: '
+    'The package has been extracted to a separate package wtforms_sqlalchemy: '
+    'https://github.com/wtforms/wtforms-sqlalchemy .\n'
+    'Or alternately, check out the WTForms-Alchemy package which provides declarative mapping and more: '
     'https://github.com/kvesteri/wtforms-alchemy',
     DeprecationWarning
 )
diff --git a/wtforms/ext/sqlalchemy/orm.py b/wtforms/ext/sqlalchemy/orm.py
index 6a8b5f9..3743917 100644
--- a/wtforms/ext/sqlalchemy/orm.py
+++ b/wtforms/ext/sqlalchemy/orm.py
@@ -264,7 +264,7 @@ def model_form(model, db_session=None, base_class=Form, only=None,
     """
     Create a wtforms Form for a given SQLAlchemy model class::
 
-        from wtalchemy.orm import model_form
+        from wtforms.ext.sqlalchemy.orm import model_form
         from myapp.models import User
         UserForm = model_form(User)
 
diff --git a/wtforms/fields/core.py b/wtforms/fields/core.py
index c3cbd21..c4b4d78 100644
--- a/wtforms/fields/core.py
+++ b/wtforms/fields/core.py
@@ -39,8 +39,8 @@ class Field(object):
 
     def __init__(self, label=None, validators=None, filters=tuple(),
                  description='', id=None, default=None, widget=None,
-                 _form=None, _name=None, _prefix='', _translations=None,
-                 _meta=None):
+                 render_kw=None, _form=None, _name=None, _prefix='',
+                 _translations=None, _meta=None):
         """
         Construct a new field.
 
@@ -60,6 +60,9 @@ class Field(object):
             input is provided. May be a callable.
         :param widget:
             If provided, overrides the widget used to render the field.
+        :param dict render_kw:
+            If provided, a dictionary which provides default keywords that
+            will be given to the widget at render time.
         :param _form:
             The form holding this field. It is passed by the form itself during
             construction. You should never pass this value yourself.
@@ -93,6 +96,7 @@ class Field(object):
 
         self.default = default
         self.description = description
+        self.render_kw = render_kw
         self.filters = filters
         self.flags = Flags()
         self.name = _prefix + _name
@@ -106,7 +110,7 @@ class Field(object):
         if widget is not None:
             self.widget = widget
 
-        for v in self.validators:
+        for v in itertools.chain(self.validators, [self.widget]):
             flags = getattr(v, 'field_flags', ())
             for f in flags:
                 setattr(self.flags, f, True)
@@ -679,7 +683,9 @@ class FloatField(Field):
 
 class BooleanField(Field):
     """
-    Represents an ``<input type="checkbox">``.
+    Represents an ``<input type="checkbox">``. Set the ``checked``-status by using the
+    ``default``-option. Any value for ``default``, e.g. ``default="checked"`` puts
+    ``checked`` into the html-element and sets the ``data`` to ``True``
 
     :param false_values:
         If provided, a sequence of strings each of which is an exact match
@@ -946,7 +952,8 @@ class FieldList(Field):
         self.last_index = index
         name = '%s-%d' % (self.short_name, index)
         id = '%s-%d' % (self.id, index)
-        field = self.unbound_field.bind(form=None, name=name, prefix=self._prefix, id=id, _meta=self.meta)
+        field = self.unbound_field.bind(form=None, name=name, prefix=self._prefix, id=id, _meta=self.meta,
+                                        translations=self._translations)
         field.process(formdata, data)
         self.entries.append(field)
         return field
diff --git a/wtforms/locale/ar/LC_MESSAGES/wtforms.mo b/wtforms/locale/ar/LC_MESSAGES/wtforms.mo
new file mode 100644
index 0000000..b364aec
Binary files /dev/null and b/wtforms/locale/ar/LC_MESSAGES/wtforms.mo differ
diff --git a/wtforms/locale/ca/LC_MESSAGES/wtforms.po b/wtforms/locale/ar/LC_MESSAGES/wtforms.po
similarity index 58%
copy from wtforms/locale/ca/LC_MESSAGES/wtforms.po
copy to wtforms/locale/ar/LC_MESSAGES/wtforms.po
index cd7218d..13b4dbd 100644
--- a/wtforms/locale/ca/LC_MESSAGES/wtforms.po
+++ b/wtforms/locale/ar/LC_MESSAGES/wtforms.po
@@ -1,16 +1,18 @@
-# Catalan translations for WTForms.
+# Arabic translations for WTForms.
 # Copyright (C) 2013 WTForms Team
 # This file is distributed under the same license as the WTForms project.
+# FIRST AUTHOR <jalal.maqdisi at gmail.com>, 2015.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: WTForms 2.0dev\n"
 "Report-Msgid-Bugs-To: wtforms+i18n at jamescrasta.com\n"
 "POT-Creation-Date: 2013-11-08 15:21-0700\n"
-"PO-Revision-Date: 2014-01-16 09:58+0100\n"
-"Last-Translator: Òscar Vilaplana <oscar.vilaplana at paylogic.eu>\n"
-"Language-Team: ca <oscar.vilaplana at paylogic.eu>\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"PO-Revision-Date: 2015-04-08 20:59+0100\n"
+"Last-Translator: Jalal Maqdisi <jalal.maqdisi at gmail.com>\n"
+"Language-Team: ar <LL at li.org>\n"
+"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n>=3 "
+"&& n<=10 ? 3 : n>=11 && n<=99 ? 4 : 5)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -19,100 +21,102 @@ msgstr ""
 #: wtforms/validators.py:55
 #, python-format
 msgid "Invalid field name '%s'."
-msgstr "Nom de camp no vàlid '%s'."
+msgstr "اسم الحقل '%s' غير صالح."
 
 #: wtforms/validators.py:63
 #, python-format
 msgid "Field must be equal to %(other_name)s."
-msgstr "El camp ha de ser igual a %(other_name)s."
+msgstr "يجب على الحقل ان يساوي %(other_name)s ."
 
 #: wtforms/validators.py:96
 #, python-format
 msgid "Field must be at least %(min)d character long."
 msgid_plural "Field must be at least %(min)d characters long."
-msgstr[0] "El camp ha de contenir almenys %(min)d caràcter."
-msgstr[1] "El camp ha de contenir almenys %(min)d caràcters."
+msgstr[0] "لا يمكن للحقل ان يحتوي على اقل من %(min)d حرف."
+msgstr[1] "لا يمكن للحقل ان يحتوي على اقل من %(min)d حروف."
+
 
 #: wtforms/validators.py:99
 #, python-format
 msgid "Field cannot be longer than %(max)d character."
 msgid_plural "Field cannot be longer than %(max)d characters."
-msgstr[0] "El camp no pot contenir més d'%(min)d caràcter."
-msgstr[1] "El camp no pot contenir més de %(min)d caràcters."
+msgstr[0] "لا يمكن للحقل ان يحتوي على اكثر من %(max)d حرف."
+msgstr[1] "لا يمكن للحقل ان يحتوي على اكثر من %(max)d حروف."
+
 
 #: wtforms/validators.py:102
 #, python-format
 msgid "Field must be between %(min)d and %(max)d characters long."
-msgstr "El camp ha de contenir entre %(min)d i %(min)d caràcters."
+msgstr "يجب على طول الحقل ان يكون ما بين %(min) و %(max)d حرف."
 
 #: wtforms/validators.py:138
 #, python-format
 msgid "Number must be at least %(min)s."
-msgstr "El nombre ha de ser major o igual a %(min)s."
+msgstr "لا يجب على الرقم ان يقل عن %(min)s."
 
 #: wtforms/validators.py:140
 #, python-format
 msgid "Number must be at most %(max)s."
-msgstr "El nombre ha de ser com a màxim %(max)s."
+msgstr "لا يجب على الرقم ان يزيد عن %(max)s. "
 
 #: wtforms/validators.py:142
 #, python-format
 msgid "Number must be between %(min)s and %(max)s."
-msgstr "El nombre ha d'estar entre %(min)s i %(max)s."
+msgstr "يجب على الرقم ان يكون ما بين %(min)s و %(max)s."
 
 #: wtforms/validators.py:198 wtforms/validators.py:233
 msgid "This field is required."
-msgstr "Aquest camp és obligatori."
+msgstr "هذا الحقل مطلوب."
 
 #: wtforms/validators.py:264
 msgid "Invalid input."
-msgstr "Valor no vàlid."
+msgstr "الاملاء غير صالح."
 
 #: wtforms/validators.py:286
 msgid "Invalid email address."
-msgstr "Adreça d'e-mail no vàlida."
+msgstr "البريد الالكتروني غير صالح."
 
 #: wtforms/validators.py:318
 msgid "Invalid IP address."
-msgstr "Adreça IP no vàlida."
+msgstr "پروتوكول الانترنت IP غير صالح."
 
 #: wtforms/validators.py:367
 msgid "Invalid Mac address."
-msgstr "Adreça MAC no vàlida."
+msgstr "عنوان Mac غير صالح."
 
 #: wtforms/validators.py:393
 msgid "Invalid URL."
-msgstr "URL no vàlida."
+msgstr "عنوان الرابط غير صالح."
 
 #: wtforms/validators.py:412
 msgid "Invalid UUID."
-msgstr "UUID no vàlid."
+msgstr "عنوان UUID غير صالح."
 
 #: wtforms/validators.py:440
 #, python-format
 msgid "Invalid value, must be one of: %(values)s."
-msgstr "Valor no vàlid, ha de ser un d'entre: %(values)s."
+msgstr "قيمة غير صالحة، يجب أن تكون واحدة من: %(values)s."
 
 #: wtforms/validators.py:472
 #, python-format
 msgid "Invalid value, can't be any of: %(values)s."
-msgstr "Valor no vàlid, no pot ser cap d'aquests: %(values)s."
+msgstr "قيمة غير صالحة، يجب أن تكون اي من: %(values)s."
 
 #: wtforms/csrf/core.py:83 wtforms/ext/csrf/form.py:47
 msgid "Invalid CSRF Token"
-msgstr "Token CSRF no vàlid"
+msgstr "رمز CSRF غير صالح."
 
 #: wtforms/csrf/session.py:61 wtforms/ext/csrf/session.py:58
 msgid "CSRF token missing"
-msgstr "Falta el token CSRF"
+msgstr "رمز CSRF مفقود."
 
 #: wtforms/csrf/session.py:69 wtforms/ext/csrf/session.py:66
 msgid "CSRF failed"
-msgstr "Ha fallat la comprovació de CSRF"
+msgstr "CSRF قد فشل."
 
 #: wtforms/csrf/session.py:74 wtforms/ext/csrf/session.py:71
 msgid "CSRF token expired"
-msgstr "Token CSRF caducat"
+msgstr "انتهت صلاحية رمز CSRF."
 
 #: wtforms/ext/appengine/fields.py:87 wtforms/ext/appengine/fields.py:164
 #: wtforms/ext/appengine/fields.py:166 wtforms/ext/django/fields.py:96
@@ -120,58 +124,58 @@ msgstr "Token CSRF caducat"
 #: wtforms/ext/sqlalchemy/fields.py:177 wtforms/ext/sqlalchemy/fields.py:182
 #: wtforms/fields/core.py:456
 msgid "Not a valid choice"
-msgstr "Opció no acceptada"
+msgstr "اختيار غير صحيح."
 
 #: wtforms/ext/appengine/fields.py:185
 msgid "Not a valid list"
-msgstr "Llista no vàlida"
+msgstr "قائمة غير صالحة."
 
 #: wtforms/ext/appengine/fields.py:204
 msgid "Not a valid integer list"
-msgstr "Llista d'enters no vàlida"
+msgstr "قائمة الاعداد غير صالحة."
 
 #: wtforms/ext/dateutil/fields.py:63
 msgid "Please input a date/time value"
-msgstr "Introduïu una data i hora vàlides"
+msgstr ""
 
 #: wtforms/ext/dateutil/fields.py:75 wtforms/ext/dateutil/fields.py:83
 msgid "Invalid date/time input"
-msgstr "Data/hora no vàlides"
+msgstr "الرجاء املاء التاريخ و الوقت."
 
 #: wtforms/ext/sqlalchemy/validators.py:34
 msgid "Already exists."
-msgstr "Ja existeix."
+msgstr "موجود اصلآ."
 
 #: wtforms/fields/core.py:449
 msgid "Invalid Choice: could not coerce"
-msgstr "Opció no vàlida"
+msgstr "اختيار غير صالح: لا يمكن الاجبار."
 
 #: wtforms/fields/core.py:482
 msgid "Invalid choice(s): one or more data inputs could not be coerced"
-msgstr "Opció o opcions no vàlides: alguna de les entrades no s'ha pogut processar"
+msgstr "اختيارات غير صالحة: واحدة او اكثر من الادخالات لا يمكن اجبارها."
 
 #: wtforms/fields/core.py:489
 #, python-format
 msgid "'%(value)s' is not a valid choice for this field"
-msgstr "'%(value)s' no és una opció acceptada per a aquest camp"
+msgstr "القيمة '%(value)s' ليست باختيار صحيح لهذا الحقل."
 
 #: wtforms/fields/core.py:572
 msgid "Not a valid integer value"
-msgstr "Valor enter no vàlid"
+msgstr "قيمة العدد الحقيقي غير صالحة."
 
 #: wtforms/fields/core.py:638
 msgid "Not a valid decimal value"
-msgstr "Valor decimal no vàlid"
+msgstr "القيمة العشرية غير صالحة."
 
 #: wtforms/fields/core.py:665
 msgid "Not a valid float value"
-msgstr "Valor en coma flotant no vàlid"
+msgstr "القيمة العائمة غير صالحة."
 
 #: wtforms/fields/core.py:724
 msgid "Not a valid datetime value"
-msgstr "Valor de data i hora no vàlid"
+msgstr "قيمة الوقت والتاريخ غير صالحة."
 
 #: wtforms/fields/core.py:741
 msgid "Not a valid date value"
-msgstr "Valor de data no vàlid"
+msgstr "قيمة التاريخ غير صالحة."
 
diff --git a/wtforms/locale/ca/LC_MESSAGES/wtforms.mo b/wtforms/locale/ca/LC_MESSAGES/wtforms.mo
index edd30ab..2b00120 100644
Binary files a/wtforms/locale/ca/LC_MESSAGES/wtforms.mo and b/wtforms/locale/ca/LC_MESSAGES/wtforms.mo differ
diff --git a/wtforms/locale/ca/LC_MESSAGES/wtforms.po b/wtforms/locale/ca/LC_MESSAGES/wtforms.po
index cd7218d..550f6b5 100644
--- a/wtforms/locale/ca/LC_MESSAGES/wtforms.po
+++ b/wtforms/locale/ca/LC_MESSAGES/wtforms.po
@@ -37,8 +37,8 @@ msgstr[1] "El camp ha de contenir almenys %(min)d caràcters."
 #, python-format
 msgid "Field cannot be longer than %(max)d character."
 msgid_plural "Field cannot be longer than %(max)d characters."
-msgstr[0] "El camp no pot contenir més d'%(min)d caràcter."
-msgstr[1] "El camp no pot contenir més de %(min)d caràcters."
+msgstr[0] "El camp no pot contenir més d'%(max)d caràcter."
+msgstr[1] "El camp no pot contenir més de %(max)d caràcters."
 
 #: wtforms/validators.py:102
 #, python-format
diff --git a/wtforms/locale/cs_CZ/LC_MESSAGES/wtforms.mo b/wtforms/locale/cs_CZ/LC_MESSAGES/wtforms.mo
index 3e5de4d..ba3b6b8 100644
Binary files a/wtforms/locale/cs_CZ/LC_MESSAGES/wtforms.mo and b/wtforms/locale/cs_CZ/LC_MESSAGES/wtforms.mo differ
diff --git a/wtforms/locale/cs_CZ/LC_MESSAGES/wtforms.po b/wtforms/locale/cs_CZ/LC_MESSAGES/wtforms.po
index 385a198..97bc50b 100644
--- a/wtforms/locale/cs_CZ/LC_MESSAGES/wtforms.po
+++ b/wtforms/locale/cs_CZ/LC_MESSAGES/wtforms.po
@@ -19,7 +19,7 @@ msgstr ""
 #: validators.py:56
 #, python-format
 msgid "Invalid field name '%s'."
-msgstr "Špatný název pole '%s'."
+msgstr "Neplatný název pole '%s'."
 
 #: validators.py:64
 #, python-format
@@ -66,41 +66,41 @@ msgstr "Toto pole je povinné."
 
 #: validators.py:275
 msgid "Invalid input."
-msgstr "Špatně zadaný vstup."
+msgstr "Neplatný vstup."
 
 #: validators.py:301
 msgid "Invalid email address."
-msgstr "Špatně zadaná emailová adresa."
+msgstr "Neplatná emailová adresa."
 
 #: validators.py:335
 msgid "Invalid IP address."
-msgstr "Špatně zadaná IP adresa."
+msgstr "Neplatná IP adresa."
 
 #: validators.py:386
 msgid "Invalid Mac address."
-msgstr "Špatně zadaná MAC adresa."
+msgstr "Neplatná MAC adresa."
 
 #: validators.py:415
 msgid "Invalid URL."
-msgstr "Špatně zadané URL."
+msgstr "Neplatné URL."
 
 #: validators.py:436
 msgid "Invalid UUID."
-msgstr "Špatně zadané UUID."
+msgstr "Neplatné UUID."
 
 #: validators.py:464
 #, python-format
 msgid "Invalid value, must be one of: %(values)s."
-msgstr "Špatně zadaná hodnota, povolené hodnoty jsou: %(values)s."
+msgstr "Neplatná hodnota, povolené hodnoty jsou: %(values)s."
 
 #: validators.py:496
 #, python-format
 msgid "Invalid value, can't be any of: %(values)s."
-msgstr "Špatně zadaná hodnota, nesmí být nic z: %(values)s."
+msgstr "Neplatná hodnota, nesmí být mezi: %(values)s."
 
 #: csrf/core.py:98 ext/csrf/form.py:47
 msgid "Invalid CSRF Token"
-msgstr "Špatný CSRF token."
+msgstr "Neplatný CSRF token."
 
 #: csrf/session.py:61 ext/csrf/session.py:58
 msgid "CSRF token missing"
@@ -119,15 +119,15 @@ msgstr "Hodnota CSRF tokenu."
 #: ext/sqlalchemy/fields.py:125 ext/sqlalchemy/fields.py:127
 #: ext/sqlalchemy/fields.py:180 ext/sqlalchemy/fields.py:185 fields/core.py:468
 msgid "Not a valid choice"
-msgstr "Špatná volba."
+msgstr "Neplatná volba."
 
 #: ext/appengine/fields.py:185
 msgid "Not a valid list"
-msgstr "Špatný seznam."
+msgstr "Neplatná hodnota pro seznam"
 
 #: ext/appengine/fields.py:204
 msgid "Not a valid integer list"
-msgstr "Špatný seznam celých čísel."
+msgstr "Neplatná hodnota pro seznam celých čísel."
 
 #: ext/dateutil/fields.py:63
 msgid "Please input a date/time value"
@@ -135,38 +135,37 @@ msgstr "Uveďte, prosím, datum/čas."
 
 #: ext/dateutil/fields.py:75 ext/dateutil/fields.py:83
 msgid "Invalid date/time input"
-msgstr "Špatně zadaný datum/čas."
+msgstr "Neplatná hodnota pro datum/čas."
 
 #: fields/core.py:461
 msgid "Invalid Choice: could not coerce"
-msgstr "Špatná volba: nelze převedeny."
+msgstr "Neplatná volba: nelze převést."
 
 #: fields/core.py:494
 msgid "Invalid choice(s): one or more data inputs could not be coerced"
-msgstr "Špatná volba(y): jeden nebo více datových vstupů nemohou být převedeny."
+msgstr "Neplatná volba: jeden nebo více datových vstupů nemohou být převedeny."
 
 #: fields/core.py:501
 #, python-format
 msgid "'%(value)s' is not a valid choice for this field"
-msgstr "'%(value)s' není správnou volbou pro dané pole."
+msgstr "'%(value)s' není platnou volbou pro dané pole."
 
 #: fields/core.py:584
 msgid "Not a valid integer value"
-msgstr "Špatné celé číslo."
+msgstr "Neplatná hodnota pro celé číslo."
 
 #: fields/core.py:650
 msgid "Not a valid decimal value"
-msgstr "Špatné desetinné číslo."
+msgstr "Neplatná hodnota pro desetinné číslo."
 
 #: fields/core.py:677
 msgid "Not a valid float value"
-msgstr "Špatné číslo s plovoucí řadovou čárou."
+msgstr "Neplatná hodnota pro desetinné číslo."
 
 #: fields/core.py:736
 msgid "Not a valid datetime value"
-msgstr "Špatná datetime hodnota."
+msgstr "Neplatná hodnota pro datum a čas."
 
 #: fields/core.py:753
 msgid "Not a valid date value"
-msgstr "Špatný datum."
-
+msgstr "Neplatná hodnota pro datum."
diff --git a/wtforms/locale/cy/LC_MESSAGES/wtforms.mo b/wtforms/locale/cy/LC_MESSAGES/wtforms.mo
new file mode 100644
index 0000000..516c396
Binary files /dev/null and b/wtforms/locale/cy/LC_MESSAGES/wtforms.mo differ
diff --git a/wtforms/locale/ca/LC_MESSAGES/wtforms.po b/wtforms/locale/cy/LC_MESSAGES/wtforms.po
similarity index 66%
copy from wtforms/locale/ca/LC_MESSAGES/wtforms.po
copy to wtforms/locale/cy/LC_MESSAGES/wtforms.po
index cd7218d..db85f2c 100644
--- a/wtforms/locale/ca/LC_MESSAGES/wtforms.po
+++ b/wtforms/locale/cy/LC_MESSAGES/wtforms.po
@@ -1,15 +1,16 @@
-# Catalan translations for WTForms.
+# Welsh translations for WTForms.
 # Copyright (C) 2013 WTForms Team
 # This file is distributed under the same license as the WTForms project.
+# Josh Rowe josh.rowe at digital.justice.gov.uk, 2013.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: WTForms 2.0dev\n"
 "Report-Msgid-Bugs-To: wtforms+i18n at jamescrasta.com\n"
 "POT-Creation-Date: 2013-11-08 15:21-0700\n"
-"PO-Revision-Date: 2014-01-16 09:58+0100\n"
-"Last-Translator: Òscar Vilaplana <oscar.vilaplana at paylogic.eu>\n"
-"Language-Team: ca <oscar.vilaplana at paylogic.eu>\n"
+"PO-Revision-Date: 2015-01-29 14:07+0000\n"
+"Last-Translator: Josh Rowe josh.rowe at digital.justice.gov.uk\n"
+"Language-Team: cy <LL at li.org>\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
@@ -19,100 +20,100 @@ msgstr ""
 #: wtforms/validators.py:55
 #, python-format
 msgid "Invalid field name '%s'."
-msgstr "Nom de camp no vàlid '%s'."
+msgstr "Enw maes annilys '%s'."
 
 #: wtforms/validators.py:63
 #, python-format
 msgid "Field must be equal to %(other_name)s."
-msgstr "El camp ha de ser igual a %(other_name)s."
+msgstr "Rhaid i'r maes fod yr un fath â/ag %(other_name)s."
 
 #: wtforms/validators.py:96
 #, python-format
 msgid "Field must be at least %(min)d character long."
 msgid_plural "Field must be at least %(min)d characters long."
-msgstr[0] "El camp ha de contenir almenys %(min)d caràcter."
-msgstr[1] "El camp ha de contenir almenys %(min)d caràcters."
+msgstr[0] "Mae'n rhaid i Maes fod o leiaf %(min)d cymeriad hir."
+msgstr[1] "Mae'n rhaid i Maes fod o leiaf %(min)d nod o hyd."
 
 #: wtforms/validators.py:99
 #, python-format
 msgid "Field cannot be longer than %(max)d character."
 msgid_plural "Field cannot be longer than %(max)d characters."
-msgstr[0] "El camp no pot contenir més d'%(min)d caràcter."
-msgstr[1] "El camp no pot contenir més de %(min)d caràcters."
+msgstr[0] "Ni all Maes fod yn hirach na %(max)d cymeriad."
+msgstr[1] "Ni all Maes fod yn fwy na %(max)d cymeriadau."
 
 #: wtforms/validators.py:102
 #, python-format
 msgid "Field must be between %(min)d and %(max)d characters long."
-msgstr "El camp ha de contenir entre %(min)d i %(min)d caràcters."
+msgstr "Rhaid i'r maes fod rhwng %(min)d a %(max)d o nodau"
 
 #: wtforms/validators.py:138
 #, python-format
 msgid "Number must be at least %(min)s."
-msgstr "El nombre ha de ser major o igual a %(min)s."
+msgstr "Rhaid i'r rhif fod o leiaf %(min)s."
 
 #: wtforms/validators.py:140
 #, python-format
 msgid "Number must be at most %(max)s."
-msgstr "El nombre ha de ser com a màxim %(max)s."
+msgstr "Ni chaiff y rhif fod yn fwy na %(max)s. "
 
 #: wtforms/validators.py:142
 #, python-format
 msgid "Number must be between %(min)s and %(max)s."
-msgstr "El nombre ha d'estar entre %(min)s i %(max)s."
+msgstr "Rhaid i'r rhif fod rhwng %(min)s a %(max)s. "
 
 #: wtforms/validators.py:198 wtforms/validators.py:233
 msgid "This field is required."
-msgstr "Aquest camp és obligatori."
+msgstr "Rhaid cwblhau'r maes hwn."
 
 #: wtforms/validators.py:264
 msgid "Invalid input."
-msgstr "Valor no vàlid."
+msgstr "Mewnbwn annilys"
 
 #: wtforms/validators.py:286
 msgid "Invalid email address."
-msgstr "Adreça d'e-mail no vàlida."
+msgstr "Cyfeiriad e-bost annilys"
 
 #: wtforms/validators.py:318
 msgid "Invalid IP address."
-msgstr "Adreça IP no vàlida."
+msgstr "Cyfeiriad IP annilys"
 
 #: wtforms/validators.py:367
 msgid "Invalid Mac address."
-msgstr "Adreça MAC no vàlida."
+msgstr "Cyfeiriad Mac annilys."
 
 #: wtforms/validators.py:393
 msgid "Invalid URL."
-msgstr "URL no vàlida."
+msgstr "URL annilys."
 
 #: wtforms/validators.py:412
 msgid "Invalid UUID."
-msgstr "UUID no vàlid."
+msgstr "UUID annilys."
 
 #: wtforms/validators.py:440
 #, python-format
 msgid "Invalid value, must be one of: %(values)s."
-msgstr "Valor no vàlid, ha de ser un d'entre: %(values)s."
+msgstr "Gwerth annilys, rhaid i'r gwerth fod yn un o'r canlynol: %(values)s."
 
 #: wtforms/validators.py:472
 #, python-format
 msgid "Invalid value, can't be any of: %(values)s."
-msgstr "Valor no vàlid, no pot ser cap d'aquests: %(values)s."
+msgstr "Gwerth annilys, ni all fod yn un o'r canlynol: %(values)s"
 
 #: wtforms/csrf/core.py:83 wtforms/ext/csrf/form.py:47
 msgid "Invalid CSRF Token"
-msgstr "Token CSRF no vàlid"
+msgstr "Tocyn CSRF annilys"
 
 #: wtforms/csrf/session.py:61 wtforms/ext/csrf/session.py:58
 msgid "CSRF token missing"
-msgstr "Falta el token CSRF"
+msgstr "Tocyn CSRF ar goll"
 
 #: wtforms/csrf/session.py:69 wtforms/ext/csrf/session.py:66
 msgid "CSRF failed"
-msgstr "Ha fallat la comprovació de CSRF"
+msgstr "CSRF wedi methu"
 
 #: wtforms/csrf/session.py:74 wtforms/ext/csrf/session.py:71
 msgid "CSRF token expired"
-msgstr "Token CSRF caducat"
+msgstr "Tocyn CSRF wedi dod i ben"
 
 #: wtforms/ext/appengine/fields.py:87 wtforms/ext/appengine/fields.py:164
 #: wtforms/ext/appengine/fields.py:166 wtforms/ext/django/fields.py:96
@@ -120,58 +121,60 @@ msgstr "Token CSRF caducat"
 #: wtforms/ext/sqlalchemy/fields.py:177 wtforms/ext/sqlalchemy/fields.py:182
 #: wtforms/fields/core.py:456
 msgid "Not a valid choice"
-msgstr "Opció no acceptada"
+msgstr "Nid yw hwn yn ddewis dilys"
 
 #: wtforms/ext/appengine/fields.py:185
 msgid "Not a valid list"
-msgstr "Llista no vàlida"
+msgstr "Rhestr annilys"
 
 #: wtforms/ext/appengine/fields.py:204
 msgid "Not a valid integer list"
-msgstr "Llista d'enters no vàlida"
+msgstr "Rhestr integer annilys"
 
... 541 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/wtforms.git



More information about the Python-modules-commits mailing list