[Python-modules-commits] [django-recurrence] 01/01: New upstream version 1.5.0
Michael Fladischer
fladi at moszumanska.debian.org
Tue Oct 31 08:04:28 UTC 2017
This is an automated email from the git hooks/post-receive script.
fladi pushed a commit to branch upstream
in repository django-recurrence.
commit 022d3b8069b62eb76ae4c44d58997804cbec747d
Author: Michael Fladischer <FladischerMichael at fladi.at>
Date: Tue Oct 31 08:22:28 2017 +0100
New upstream version 1.5.0
---
PKG-INFO | 2 +-
django_recurrence.egg-info/PKG-INFO | 2 +-
django_recurrence.egg-info/SOURCES.txt | 4 +
docs/changelog.rst | 16 +
docs/conf.py | 4 +-
docs/installation.rst | 5 +-
docs/usage/recurrence_field.rst | 36 ++
recurrence/base.py | 55 ++-
recurrence/fields.py | 6 +-
recurrence/locale/de/LC_MESSAGES/django.mo | Bin 4385 -> 4442 bytes
recurrence/locale/de/LC_MESSAGES/django.po | 247 +++++-----
recurrence/locale/de/LC_MESSAGES/djangojs.mo | Bin 4822 -> 5375 bytes
recurrence/locale/de/LC_MESSAGES/djangojs.po | 301 +++++++-----
recurrence/locale/en/LC_MESSAGES/django.mo | Bin 367 -> 378 bytes
recurrence/locale/en/LC_MESSAGES/django.po | 215 +++++----
recurrence/locale/en/LC_MESSAGES/djangojs.mo | Bin 367 -> 378 bytes
recurrence/locale/en/LC_MESSAGES/djangojs.po | 299 +++++++-----
recurrence/locale/es/LC_MESSAGES/django.mo | Bin 4454 -> 4537 bytes
recurrence/locale/es/LC_MESSAGES/django.po | 238 ++++-----
recurrence/locale/es/LC_MESSAGES/djangojs.mo | Bin 4365 -> 4967 bytes
recurrence/locale/es/LC_MESSAGES/djangojs.po | 312 +++++++-----
recurrence/locale/eu/LC_MESSAGES/django.mo | Bin 4161 -> 4160 bytes
recurrence/locale/eu/LC_MESSAGES/django.po | 144 ++++--
recurrence/locale/eu/LC_MESSAGES/djangojs.mo | Bin 5187 -> 5187 bytes
recurrence/locale/eu/LC_MESSAGES/djangojs.po | 306 +++++++-----
recurrence/locale/fr/LC_MESSAGES/django.mo | Bin 4359 -> 4705 bytes
recurrence/locale/fr/LC_MESSAGES/django.po | 133 +++--
recurrence/locale/fr/LC_MESSAGES/djangojs.mo | Bin 5249 -> 5579 bytes
recurrence/locale/fr/LC_MESSAGES/djangojs.po | 293 ++++++-----
recurrence/locale/nl/LC_MESSAGES/django.mo | Bin 4467 -> 4544 bytes
recurrence/locale/nl/LC_MESSAGES/django.po | 239 ++++-----
recurrence/locale/nl/LC_MESSAGES/djangojs.mo | Bin 4793 -> 5342 bytes
recurrence/locale/nl/LC_MESSAGES/djangojs.po | 309 +++++++-----
recurrence/locale/pt_BR/LC_MESSAGES/django.mo | Bin 4437 -> 4510 bytes
recurrence/locale/pt_BR/LC_MESSAGES/django.po | 237 ++++-----
recurrence/locale/pt_BR/LC_MESSAGES/djangojs.mo | Bin 4805 -> 5380 bytes
recurrence/locale/pt_BR/LC_MESSAGES/djangojs.po | 305 +++++++-----
recurrence/locale/sk/LC_MESSAGES/django.mo | Bin 0 -> 4547 bytes
recurrence/locale/sk/LC_MESSAGES/django.po | 403 ++++++++++++++++
recurrence/locale/sk/LC_MESSAGES/djangojs.mo | Bin 0 -> 5589 bytes
recurrence/locale/sk/LC_MESSAGES/djangojs.po | 537 +++++++++++++++++++++
recurrence/static/recurrence/css/recurrence.css | 11 +-
.../static/recurrence/js/recurrence-widget.js | 35 +-
recurrence/static/recurrence/js/recurrence.js | 37 +-
setup.py | 2 +-
tests/test_fields.py | 63 ++-
tests/test_serialization.py | 47 ++
47 files changed, 3304 insertions(+), 1539 deletions(-)
diff --git a/PKG-INFO b/PKG-INFO
index 785df83..2445cce 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: django-recurrence
-Version: 1.4.1
+Version: 1.5.0
Summary: Django utility wrapping dateutil.rrule
Home-page: UNKNOWN
Author: Tamas Kemenczy
diff --git a/django_recurrence.egg-info/PKG-INFO b/django_recurrence.egg-info/PKG-INFO
index 785df83..2445cce 100644
--- a/django_recurrence.egg-info/PKG-INFO
+++ b/django_recurrence.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: django-recurrence
-Version: 1.4.1
+Version: 1.5.0
Summary: Django utility wrapping dateutil.rrule
Home-page: UNKNOWN
Author: Tamas Kemenczy
diff --git a/django_recurrence.egg-info/SOURCES.txt b/django_recurrence.egg-info/SOURCES.txt
index 211c94a..f6c3348 100644
--- a/django_recurrence.egg-info/SOURCES.txt
+++ b/django_recurrence.egg-info/SOURCES.txt
@@ -59,6 +59,10 @@ recurrence/locale/pt_BR/LC_MESSAGES/django.mo
recurrence/locale/pt_BR/LC_MESSAGES/django.po
recurrence/locale/pt_BR/LC_MESSAGES/djangojs.mo
recurrence/locale/pt_BR/LC_MESSAGES/djangojs.po
+recurrence/locale/sk/LC_MESSAGES/django.mo
+recurrence/locale/sk/LC_MESSAGES/django.po
+recurrence/locale/sk/LC_MESSAGES/djangojs.mo
+recurrence/locale/sk/LC_MESSAGES/djangojs.po
recurrence/migrations/0001_initial.py
recurrence/migrations/__init__.py
recurrence/static/recurrence/css/recurrence.css
diff --git a/docs/changelog.rst b/docs/changelog.rst
index 4cc634d..e580155 100644
--- a/docs/changelog.rst
+++ b/docs/changelog.rst
@@ -1,6 +1,22 @@
Changelog
=========
+1.5.0 (pending)
+---------------
+
+* Add Slovakian translations (:issue:`98`);
+* Add support for events occurring at a fixed point before the
+ end of the month - e.g. the second last Tuesday before the end of
+ the month (:issue:`88`);
+* Add minor style changes to make django-recurrence compatible with
+ Wagtail (:issue:`100`);
+* Allow changing the behaviour of generating recurrences on
+ ``dtstart`` by default. You can opt in to this by setting
+ ``include_dtstart=False`` on your ``RecurrenceField``
+ (:issue:`93`);
+* Ensure broken values raise ``DeserializationError`` where expected
+ (:issue:`103`).
+
1.4.1
-----
diff --git a/docs/conf.py b/docs/conf.py
index 5f94a0c..42681c7 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -60,9 +60,9 @@ copyright = u'2014, django-recurrence developers'
# built documents.
#
# The short X.Y version.
-version = '1.4.1'
+version = '1.5.0'
# The full version, including alpha/beta/rc tags.
-release = '1.4.1'
+release = '1.5.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff --git a/docs/installation.rst b/docs/installation.rst
index 90637b5..ef17d62 100644
--- a/docs/installation.rst
+++ b/docs/installation.rst
@@ -30,7 +30,7 @@ Supported Django and Python versions
Currently, django-recurrence supports Python 2.7, Python 3.3, Python
3.4 and Python 3.5.
-django-recurrence works with Django from versions 1.7 to 1.9.
+django-recurrence works with Django from versions 1.7 to 1.11.
Set up internationalization
---------------------------
@@ -95,4 +95,5 @@ to ensure you also have ``django.contrib.staticfiles`` in your
python manage.py collectstatic
.. note::
- After collecting static files, you can use {{ form.media }} to include recurrence's static files within your templates.
+ After collecting static files, you can use {{ form.media }} to
+ include recurrence's static files within your templates.
diff --git a/docs/usage/recurrence_field.rst b/docs/usage/recurrence_field.rst
index 76c999c..ca293bb 100644
--- a/docs/usage/recurrence_field.rst
+++ b/docs/usage/recurrence_field.rst
@@ -76,6 +76,42 @@ The effective starting date for any recurrence pattern is essentially
the later of the first argument and ``dtstart``. To minimize
confusion, you probably want to set them both to the same value.
+.. warning::
+
+ Note that per default ``dtstart`` will be the first occurence in
+ your list if specified, according to RFC 2445. This practice
+ deviates from how ``dateutil.rrule`` handles ``dtstart`` and can
+ therefore lead to confusion. Read on for how you can control this
+ behavior for your own recurrence patterns.
+
+To switch off the automatic inclusion of ``dtstart`` into the
+occurence list, set ``include_dtstart=False`` as an argument for the
+``RecurrenceField`` whose behavior you want to change:
+
+.. code-block:: python
+ :emphasize-lines: 3
+
+ class Course(models.Model):
+ title = models.CharField(max_length=200)
+ recurrences = RecurrenceField(include_dtstart=False)
+
+With this change any ``dtstart`` value will only be an occurence if
+it matches the pattern specified in ``recurrences``. This also works
+for instantiating ``Recurrence`` objects directly:
+
+.. code-block:: python
+ :emphasize-lines: 3
+
+ pattern = recurrence.Recurrence(
+ rrules=[recurrence.Rule(recurrence.WEEKLY, byday=recurrence.MONDAY)],
+ include_dtstart=False).between(
+ datetime(2010, 1, 1, 0, 0, 0),
+ datetime(2014, 12, 31, 0, 0, 0),
+ dtstart=datetime(2010, 1, 1, 0, 0, 0),
+ inc=True
+ )
+ )
+
.. _occurrences:
Getting all occurrences
diff --git a/recurrence/base.py b/recurrence/base.py
index 03c8eb2..95c7040 100644
--- a/recurrence/base.py
+++ b/recurrence/base.py
@@ -249,7 +249,7 @@ class Recurrence(object):
A `Recurrence` instance provides the combined behavior of the
rfc2445 `DTSTART`, `DTEND`, `RRULE`, `EXRULE`, `RDATE`, and
- `EXDATE` propeties in generating recurring date/times.
+ `EXDATE` properties in generating recurring date/times.
This is a wrapper around the `dateutil.rrule.rruleset` class while
adhering to the rfc2445 spec. Notably a `dtstart` parameter can be
@@ -286,10 +286,18 @@ class Recurrence(object):
occurrence set generation. Dates included that way will
not be generated, even if some inclusive `Rule` or
`datetime.datetime` instances matches them.
+
+ `include_dtstart` : bool
+ Defines if `dtstart` is included in the recurrence set as
+ the first occurrence. With `include_dtstart == True` it is
+ both the starting point for recurrences and the first
+ recurrence in the set (according to the rfc2445 spec).
+ With `include_dtstart == False` `dtstart` is only the rule's
+ starting point like in python's `dateutil.rrule`.
"""
def __init__(
- self, dtstart=None, dtend=None,
- rrules=(), exrules=(), rdates=(), exdates=()
+ self, dtstart=None, dtend=None, rrules=(), exrules=(),
+ rdates=(), exdates=(), include_dtstart=True
):
"""
Create a new recurrence.
@@ -306,6 +314,7 @@ class Recurrence(object):
self.exrules = list(exrules)
self.rdates = list(rdates)
self.exdates = list(exdates)
+ self.include_dtstart = include_dtstart
def __iter__(self):
return self.occurrences()
@@ -535,6 +544,8 @@ class Recurrence(object):
dtstart = dtstart or self.dtstart
dtend = dtend or self.dtend
+ include_dtstart = self.include_dtstart
+
if dtend:
dtend = normalize_offset_awareness(dtend or self.dtend, dtstart)
@@ -552,7 +563,7 @@ class Recurrence(object):
for exrule in self.exrules:
rruleset.exrule(exrule.to_dateutil_rrule(dtstart, dtend, cache))
- if dtstart is not None:
+ if include_dtstart and dtstart is not None:
rruleset.rdate(dtstart)
for rdate in self.rdates:
rdate = normalize_offset_awareness(rdate, dtstart)
@@ -783,7 +794,7 @@ def validate(rule_or_recurrence):
elif param == 'bymonth':
validate_iterable_ints(rule, param, 1, 12)
elif param == 'bymonthday':
- validate_iterable_ints(rule, param, 1, 31)
+ validate_iterable_ints(rule, param, -4, 31)
elif param == 'byhour':
validate_iterable_ints(rule, param, 0, 23)
elif param == 'byminute':
@@ -921,7 +932,7 @@ def serialize(rule_or_recurrence):
return u'\n'.join(u'%s:%s' % i for i in items)
-def deserialize(text):
+def deserialize(text, include_dtstart=True):
"""
Deserialize a rfc2445 formatted string.
@@ -991,9 +1002,8 @@ def deserialize(text):
for label, param_text in tokens:
if not param_text:
raise exceptions.DeserializationError('empty property: %r' % label)
- if u'=' not in param_text:
- params = param_text
- else:
+
+ if label in (u'RRULE', u'EXRULE'):
params = {}
param_tokens = filter(lambda p: p, param_text.split(u';'))
for item in param_tokens:
@@ -1006,7 +1016,6 @@ def deserialize(text):
params[param_name] = list(map(
lambda i: i.strip(), param_value.split(u',')))
- if label in (u'RRULE', u'EXRULE'):
kwargs = {}
for key, value in params.items():
if key == u'FREQ':
@@ -1064,15 +1073,15 @@ def deserialize(text):
else:
exrules.append(Rule(**kwargs))
elif label == u'DTSTART':
- dtstart = deserialize_dt(params)
+ dtstart = deserialize_dt(param_text)
elif label == u'DTEND':
- dtend = deserialize_dt(params)
+ dtend = deserialize_dt(param_text)
elif label == u'RDATE':
- rdates.append(deserialize_dt(params))
+ rdates.append(deserialize_dt(param_text))
elif label == u'EXDATE':
- exdates.append(deserialize_dt(params))
+ exdates.append(deserialize_dt(param_text))
- return Recurrence(dtstart, dtend, rrules, exrules, rdates, exdates)
+ return Recurrence(dtstart, dtend, rrules, exrules, rdates, exdates, include_dtstart)
def rule_to_text(rule, short=False):
@@ -1101,6 +1110,12 @@ def rule_to_text(rule, short=False):
-2: _('2nd last %(weekday)s'),
-3: _('3rd last %(weekday)s'),
}
+ last_of_month_display = {
+ -1: _('last'),
+ -2: _('2nd last'),
+ -3: _('3rd last'),
+ -4: _('4th last'),
+ }
weekdays_display = (
_('Mon'), _('Tue'), _('Wed'),
_('Thu'), _('Fri'), _('Sat'), _('Sun'),
@@ -1121,6 +1136,12 @@ def rule_to_text(rule, short=False):
-2: _('second last %(weekday)s'),
-3: _('third last %(weekday)s'),
}
+ last_of_month_display = {
+ -1: _('last'),
+ -2: _('second last'),
+ -3: _('third last'),
+ -4: _('fourth last'),
+ }
weekdays_display = (
_('Monday'), _('Tuesday'), _('Wednesday'),
_('Thursday'), _('Friday'), _('Saturday'), _('Sunday'),
@@ -1175,8 +1196,8 @@ def rule_to_text(rule, short=False):
if rule.freq == MONTHLY:
if rule.bymonthday:
items = _(', ').join([
- dateformat.format(
- datetime.datetime(1, 1, day), 'jS')
+ dateformat.format(datetime.datetime(1, 1, day), 'jS') if day > 0
+ else last_of_month_display.get(day, day)
for day in rule.bymonthday])
parts.append(_('on the %(items)s') % {'items': items})
elif rule.byday:
diff --git a/recurrence/fields.py b/recurrence/fields.py
index d4652cb..fed705a 100644
--- a/recurrence/fields.py
+++ b/recurrence/fields.py
@@ -18,6 +18,10 @@ except ImportError:
class RecurrenceField(fields.Field):
"""Field that stores a `recurrence.base.Recurrence` to the database."""
+ def __init__(self, include_dtstart=True, **kwargs):
+ self.include_dtstart = include_dtstart
+ super(RecurrenceField, self).__init__(**kwargs)
+
def get_internal_type(self):
return 'TextField'
@@ -25,7 +29,7 @@ class RecurrenceField(fields.Field):
if value is None or isinstance(value, recurrence.Recurrence):
return value
value = super(RecurrenceField, self).to_python(value) or u''
- return recurrence.deserialize(value)
+ return recurrence.deserialize(value, self.include_dtstart)
def from_db_value(self, value, *args, **kwargs):
return self.to_python(value)
diff --git a/recurrence/locale/de/LC_MESSAGES/django.mo b/recurrence/locale/de/LC_MESSAGES/django.mo
index bfbd33c..87ed42b 100644
Binary files a/recurrence/locale/de/LC_MESSAGES/django.mo and b/recurrence/locale/de/LC_MESSAGES/django.mo differ
diff --git a/recurrence/locale/de/LC_MESSAGES/django.po b/recurrence/locale/de/LC_MESSAGES/django.po
index 9018a95..8e73816 100644
--- a/recurrence/locale/de/LC_MESSAGES/django.po
+++ b/recurrence/locale/de/LC_MESSAGES/django.po
@@ -7,336 +7,332 @@ msgid ""
msgstr ""
"Project-Id-Version: Django Recurrence 1.4.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-02-05 13:25-0600\n"
-"PO-Revision-Date: 2016-11-22 01:09+0100\n"
+"POT-Creation-Date: 2017-02-24 23:21+0100\n"
+"PO-Revision-Date: 2017-02-24 23:22+0100\n"
"Last-Translator: Denis Anuschewski\n"
"Language-Team: \n"
+"Language: German\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: German\n"
-#: base.py:871
+#: base.py:1087
msgid "annually"
msgstr "jährlich"
-#: base.py:871
+#: base.py:1087
msgid "monthly"
msgstr "monatlich"
-#: base.py:871
+#: base.py:1087
msgid "weekly"
msgstr "wöchentlich"
-#: base.py:871
+#: base.py:1087
msgid "daily"
msgstr "täglich"
-#: base.py:872
+#: base.py:1088
msgid "hourly"
msgstr "stündlich"
-#: base.py:872
+#: base.py:1088
msgid "minutely"
msgstr "minütlich"
-#: base.py:872
+#: base.py:1088
msgid "secondly"
msgstr "sekündlich"
-#: base.py:875
-msgid "year"
-msgstr "Jahr"
-
-#: base.py:875
-msgid "month"
-msgstr "Monat"
-
-#: base.py:875
-msgid "week"
-msgstr "Woche"
-
-#: base.py:875
-msgid "day"
-msgstr "Tag"
-
-#: base.py:876
-msgid "hour"
-msgstr "Stunde"
-
-#: base.py:876
-msgid "minute"
-msgstr "Minute"
-
-#: base.py:876
-msgid "second"
-msgstr "Sekunde"
-
-#: base.py:879
+#: base.py:1091
msgid "years"
msgstr "Jahre"
-#: base.py:879
+#: base.py:1091
msgid "months"
msgstr "Monate"
-#: base.py:879
+#: base.py:1091
msgid "weeks"
msgstr "Wochen"
-#: base.py:879
+#: base.py:1091
msgid "days"
msgstr "Tage"
-#: base.py:880
+#: base.py:1092
msgid "hours"
msgstr "Stunden"
-#: base.py:880
+#: base.py:1092
msgid "minutes"
msgstr "Minuten"
-#: base.py:880
+#: base.py:1092
msgid "seconds"
msgstr "Sekunden"
-#: base.py:885
+#: base.py:1097
#, python-format
msgid "1st %(weekday)s"
msgstr "1. %(weekday)s"
-#: base.py:886
+#: base.py:1098
#, python-format
msgid "2nd %(weekday)s"
msgstr "2. %(weekday)s"
-#: base.py:887
+#: base.py:1099
#, python-format
msgid "3rd %(weekday)s"
msgstr "3. %(weekday)s"
-#: base.py:888 base.py:907
+#: base.py:1100 base.py:1126
#, python-format
msgid "last %(weekday)s"
msgstr "letzten %(weekday)s"
-#: base.py:889
+#: base.py:1101
#, python-format
msgid "2nd last %(weekday)s"
-msgstr "zweitletzten %(weekday)s"
+msgstr "2. letzten %(weekday)s"
-#: base.py:890
+#: base.py:1102
#, python-format
msgid "3rd last %(weekday)s"
-msgstr "drittletzten %(weekday)s"
+msgstr "3. letzten %(weekday)s"
+
+#: base.py:1105 base.py:1131
+msgid "last"
+msgstr "letzten"
+
+#: base.py:1106
+msgid "2nd last"
+msgstr "2. letzten"
-#: base.py:893
+#: base.py:1107
+msgid "3rd last"
+msgstr "3. letzten"
+
+#: base.py:1108
+msgid "4th last"
+msgstr "4. letzten"
+
+#: base.py:1111
msgid "Mon"
msgstr "Mo"
-#: base.py:893
+#: base.py:1111
msgid "Tue"
msgstr "Di"
-#: base.py:893
+#: base.py:1111
msgid "Wed"
msgstr "Mi"
-#: base.py:894
+#: base.py:1112
msgid "Thu"
msgstr "Do"
-#: base.py:894
+#: base.py:1112
msgid "Fri"
msgstr "Fr"
-#: base.py:894
+#: base.py:1112
msgid "Sat"
msgstr "Sa"
-#: base.py:894
+#: base.py:1112
msgid "Sun"
msgstr "So"
-#: base.py:897
+#: base.py:1115
msgid "Jan"
msgstr "Jan"
-#: base.py:897
+#: base.py:1115
msgid "Feb"
msgstr "Feb"
-#: base.py:897
+#: base.py:1115
msgid "Mar"
msgstr "Mrz"
-#: base.py:897
+#: base.py:1115
msgid "Apr"
msgstr "Apr"
-#: base.py:898 base.py:917 choices.py:31
-msgid "May"
-msgstr "Mai"
-
-#: base.py:898
+#: base.py:1116
msgid "Jun"
msgstr "Jun"
-#: base.py:898
+#: base.py:1116
msgid "Jul"
msgstr "Jul"
-#: base.py:898
+#: base.py:1116
msgid "Aug"
msgstr "Aug"
-#: base.py:899
+#: base.py:1117
msgid "Sep"
msgstr "Sep"
-#: base.py:899
+#: base.py:1117
msgid "Oct"
msgstr "Okt"
-#: base.py:899
+#: base.py:1117
msgid "Nov"
msgstr "Nov"
-#: base.py:899
+#: base.py:1117
msgid "Dec"
msgstr "Dez"
-#: base.py:904
+#: base.py:1122
#, python-format
msgid "first %(weekday)s"
msgstr "ersten %(weekday)s"
-#: base.py:905
+#: base.py:1123
#, python-format
msgid "second %(weekday)s"
msgstr "zweiten %(weekday)s"
-#: base.py:906
+#: base.py:1124
#, python-format
msgid "third %(weekday)s"
msgstr "dritten %(weekday)s"
-#: base.py:906
+#: base.py:1125
#, python-format
msgid "fourth %(weekday)s"
msgstr "vierten %(weekday)s"
-#: base.py:908
+#: base.py:1127
#, python-format
msgid "second last %(weekday)s"
-msgstr "zweitletzten %(weekday)s"
+msgstr "vorletzten %(weekday)s"
-#: base.py:909
+#: base.py:1128
#, python-format
msgid "third last %(weekday)s"
msgstr "drittletzten %(weekday)s"
-#: base.py:912 choices.py:17
+#: base.py:1132
+msgid "second last"
+msgstr "vorletzten"
+
+#: base.py:1133
+msgid "third last"
+msgstr "drittletzten"
+
+#: base.py:1134
+msgid "fourth last"
+msgstr "viertletzten"
+
+#: base.py:1137 choices.py:17
msgid "Monday"
msgstr "Montag"
-#: base.py:912 choices.py:18
+#: base.py:1137 choices.py:18
msgid "Tuesday"
msgstr "Dienstag"
-#: base.py:912 choices.py:19
+#: base.py:1137 choices.py:19
msgid "Wednesday"
msgstr "Mittwoch"
-#: base.py:913 choices.py:20
+#: base.py:1138 choices.py:20
msgid "Thursday"
msgstr "Donnerstag"
-#: base.py:913 choices.py:21
+#: base.py:1138 choices.py:21
msgid "Friday"
msgstr "Freitag"
-#: base.py:913 choices.py:22
+#: base.py:1138 choices.py:22
msgid "Saturday"
msgstr "Samstag"
-#: base.py:913 choices.py:23
+#: base.py:1138 choices.py:23
msgid "Sunday"
msgstr "Sonntag"
-#: base.py:916 choices.py:27
+#: base.py:1141 choices.py:27
msgid "January"
msgstr "Januar"
-#: base.py:916 choices.py:28
+#: base.py:1141 choices.py:28
msgid "February"
msgstr "Februar"
-#: base.py:916 choices.py:29
+#: base.py:1141 choices.py:29
msgid "March"
msgstr "März"
-#: base.py:916 choices.py:30
+#: base.py:1141 choices.py:30
msgid "April"
msgstr "April"
-#: base.py:917 choices.py:32
+#: base.py:1142 choices.py:32
msgid "June"
msgstr "Juni"
-#: base.py:917 choices.py:33
+#: base.py:1142 choices.py:33
msgid "July"
msgstr "Juli"
-#: base.py:917 choices.py:34
+#: base.py:1142 choices.py:34
msgid "August"
msgstr "August"
-#: base.py:918 choices.py:35
+#: base.py:1143 choices.py:35
msgid "September"
msgstr "September"
-#: base.py:918 choices.py:36
+#: base.py:1143 choices.py:36
msgid "October"
msgstr "Oktober"
-#: base.py:918 choices.py:37
+#: base.py:1143 choices.py:37
msgid "November"
msgstr "November"
-#: base.py:918 choices.py:38
+#: base.py:1143 choices.py:38
msgid "December"
msgstr "Dezember"
-#: base.py:936 base.py:951 base.py:974 base.py:992
+#: base.py:1161 base.py:1178 base.py:1189 base.py:1202 base.py:1220
msgid ", "
msgstr ""
-#: base.py:942
+#: base.py:1167
#, python-format
msgid "every %(number)s %(freq)s"
msgstr "alle %(number)s %(freq)s"
-#: base.py:953 base.py:977
+#: base.py:1181 base.py:1205
#, python-format
msgid "each %(items)s"
msgstr "jeden %(items)s"
-#: base.py:956 base.py:965 base.py:969
+#: base.py:1184 base.py:1193 base.py:1197
#, python-format
msgid "on the %(items)s"
msgstr "am %(items)s"
-#: base.py:984
+#: base.py:1212
msgid "occuring once"
msgstr "einmalig"
-#: base.py:986
+#: base.py:1214
#, python-format
msgid "occuring %(number)s times"
msgstr "bis zum %(number)s. Mal"
-#: base.py:989
+#: base.py:1217
#, python-format
msgid "until %(date)s"
msgstr "bis %(date)s"
@@ -369,6 +365,10 @@ msgstr "Monatlich"
msgid "Yearly"
msgstr "Jährlich"
+#: choices.py:31
+msgid "May"
+msgstr "Mai"
+
#: choices.py:44
msgid "Inclusion"
msgstr "Einschließlich"
@@ -377,27 +377,48 @@ msgstr "Einschließlich"
msgid "Exclusion"
msgstr "Ohne"
-#: forms.py:64
+#: forms.py:72
msgid "Invalid frequency."
msgstr "Ungültige Frequenz."
-#: forms.py:66
+#: forms.py:74
#, python-format
msgid "Max rules exceeded. The limit is %(limit)s"
msgstr "Maximale Anzahl an %(limit)s Regeln ist überschritten."
-#: forms.py:68
+#: forms.py:76
#, python-format
msgid "Max exclusion rules exceeded. The limit is %(limit)s"
msgstr "Maximale Anzahl an %(limit)s Ausschlussregeln ist überschritten."
-#: forms.py:70
+#: forms.py:78
#, python-format
msgid "Max dates exceeded. The limit is %(limit)s"
msgstr "Maximale Anzahl an %(limit)s Datumsangaben ist überschritten."
-#: forms.py:72
+#: forms.py:80
#, python-format
msgid "Max exclusion dates exceeded. The limit is %(limit)s"
-msgstr "Maximale Anzahl an %(limit)s ausschließenden Datumsangaben ist überschritten."
+msgstr ""
+"Maximale Anzahl an %(limit)s ausschließenden Datumsangaben ist überschritten."
+
+#~ msgid "year"
+#~ msgstr "Jahr"
+
+#~ msgid "month"
+#~ msgstr "Monat"
+
+#~ msgid "week"
+#~ msgstr "Woche"
+
+#~ msgid "day"
+#~ msgstr "Tag"
+
+#~ msgid "hour"
+#~ msgstr "Stunde"
+
+#~ msgid "minute"
+#~ msgstr "Minute"
+#~ msgid "second"
+#~ msgstr "Sekunde"
diff --git a/recurrence/locale/de/LC_MESSAGES/djangojs.mo b/recurrence/locale/de/LC_MESSAGES/djangojs.mo
index b263240..fd4c6c8 100644
Binary files a/recurrence/locale/de/LC_MESSAGES/djangojs.mo and b/recurrence/locale/de/LC_MESSAGES/djangojs.mo differ
diff --git a/recurrence/locale/de/LC_MESSAGES/djangojs.po b/recurrence/locale/de/LC_MESSAGES/djangojs.po
index fdc5da4..6a73735 100644
--- a/recurrence/locale/de/LC_MESSAGES/djangojs.po
+++ b/recurrence/locale/de/LC_MESSAGES/djangojs.po
@@ -7,476 +7,533 @@ msgid ""
msgstr ""
"Project-Id-Version: Django Recurrence 1.4.1\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-02-05 13:25-0600\n"
-"PO-Revision-Date: 2016-11-22 01:10+0100\n"
+"POT-Creation-Date: 2017-02-24 23:11+0100\n"
+"PO-Revision-Date: 2017-02-24 23:10+0100\n"
"Last-Translator: Denis Anuschewski\n"
"Language-Team: \n"
+"Language: German\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: German\n"
-#: recurrence-widget.js:1610
+#: static/recurrence/js/recurrence-widget.js:1609
msgctxt "date"
msgid "%l, %F %j, %Y"
msgstr "%l, %j. %F %Y"
-#: recurrence-widget.js:1732
+#: static/recurrence/js/recurrence-widget.js:1774
msgid "including"
msgstr "einschließend"
-#: recurrence-widget.js:1732
+#: static/recurrence/js/recurrence-widget.js:1774
msgid "excluding"
msgstr "ohne"
-#: recurrence-widget.js:1736
+#: static/recurrence/js/recurrence-widget.js:1778
msgid "Frequency"
msgstr "Frequenz"
-#: recurrence-widget.js:1737
+#: static/recurrence/js/recurrence-widget.js:1779
msgid "On the"
msgstr "Am"
-#: recurrence-widget.js:1738
+#: static/recurrence/js/recurrence-widget.js:1780
msgid "Each"
msgstr "Jeden"
-#: recurrence-widget.js:1739
+#: static/recurrence/js/recurrence-widget.js:1781
msgid "Every"
msgstr "Alle"
-#: recurrence-widget.js:1740
+#: static/recurrence/js/recurrence-widget.js:1782
msgid "Until"
msgstr "Bis"
-#: recurrence-widget.js:1741
+#: static/recurrence/js/recurrence-widget.js:1783
msgid "Occurs %(number)s time"
msgstr "Bis zum %(number)s. Mal"
-#: recurrence-widget.js:1742
+#: static/recurrence/js/recurrence-widget.js:1784
msgid "Occurs %(number)s times"
msgstr "Bis zum %(number)s. Mal"
-#: recurrence-widget.js:1743
+#: static/recurrence/js/recurrence-widget.js:1785
msgid "Date"
msgstr "Datum"
-#: recurrence-widget.js:1744
+#: static/recurrence/js/recurrence-widget.js:1786
msgid "Time"
msgstr "Zeit"
-#: recurrence-widget.js:1745
+#: static/recurrence/js/recurrence-widget.js:1787
msgid "Repeat until"
msgstr "Wiederholen bis"
-#: recurrence-widget.js:1746
+#: static/recurrence/js/recurrence-widget.js:1788
msgid "Exclude these occurences"
msgstr "Diese Vorkommen ausschließen"
-#: recurrence-widget.js:1747
+#: static/recurrence/js/recurrence-widget.js:1789
msgid "Exclude this date"
msgstr "Dieses Datum ausschließen"
-#: recurrence-widget.js:1748
+#: static/recurrence/js/recurrence-widget.js:1790
msgid "Add rule"
msgstr "Regel hinzufügen"
... 8475 lines suppressed ...
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/django-recurrence.git
More information about the Python-modules-commits
mailing list