2 commits - po/de_DE.po po/de.po po/POTFILES.in po/POTFILES.skip po/pykolab.pot pykolab/xml tests/functional wallace/module_invitationpolicy.py wallace/module_resources.py

Thomas Brüderli bruederli at kolabsys.com
Tue Jul 22 16:03:10 CEST 2014


 po/POTFILES.in                                             |   13 
 po/POTFILES.skip                                           |  282 -
 po/de.po                                                   | 2250 +++++++++----
 po/de_DE.po                                                | 2232 +++++++++---
 po/pykolab.pot                                             |  917 +++--
 pykolab/xml/attendee.py                                    |    2 
 tests/functional/test_wallace/test_007_invitationpolicy.py |   52 
 wallace/module_invitationpolicy.py                         |    3 
 wallace/module_resources.py                                |    9 
 9 files changed, 4216 insertions(+), 1544 deletions(-)

New commits:
commit b3e6648328dd00dd53e60633b23a40ed6ff578e5
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Tue Jul 22 10:03:03 2014 -0400

    Test localized notifications from iTip messages

diff --git a/pykolab/xml/attendee.py b/pykolab/xml/attendee.py
index a01d955..5d469c2 100644
--- a/pykolab/xml/attendee.py
+++ b/pykolab/xml/attendee.py
@@ -22,7 +22,7 @@ participant_status_labels = {
     }
 
 def participant_status_label(status):
-    return _(participant_status_labels[status]) if participant_status_labels.has_key(status) else status
+    return _(participant_status_labels[status]) if participant_status_labels.has_key(status) else _(status)
 
 
 class Attendee(kolabformat.Attendee):
diff --git a/tests/functional/test_wallace/test_007_invitationpolicy.py b/tests/functional/test_wallace/test_007_invitationpolicy.py
index dd419f0..1af22ff 100644
--- a/tests/functional/test_wallace/test_007_invitationpolicy.py
+++ b/tests/functional/test_wallace/test_007_invitationpolicy.py
@@ -178,14 +178,14 @@ class TestWallaceInvitationpolicy(unittest.TestCase):
             'kolabinvitationpolicy': ['ACT_TENTATIVE_IF_NO_CONFLICT','ACT_SAVE_TO_CALENDAR','ACT_UPDATE']
         }
 
-        self.bob = {
-            'displayname': 'Bob Auto',
-            'mail': 'bob.auto at example.org',
-            'dn': 'uid=auto,ou=People,dc=example,dc=org',
-            'preferredlanguage': 'en_US',
-            'mailbox': 'user/bob.auto at example.org',
-            'kolabtargetfolder': 'user/bob.auto/Calendar at example.org',
-            'kolabinvitationpolicy': ['ACT_ACCEPT','ACT_UPDATE']
+        self.mark = {
+            'displayname': 'Mark German',
+            'mail': 'mark.german at example.org',
+            'dn': 'uid=german,ou=People,dc=example,dc=org',
+            'preferredlanguage': 'de_DE',
+            'mailbox': 'user/mark.german at example.org',
+            'kolabtargetfolder': 'user/mark.german/Calendar at example.org',
+            'kolabinvitationpolicy': ['ACT_ACCEPT','ACT_UPDATE_AND_NOTIFY']
         }
 
         self.external = {
@@ -197,7 +197,7 @@ class TestWallaceInvitationpolicy(unittest.TestCase):
         user_add("John", "Doe", kolabinvitationpolicy=self.john['kolabinvitationpolicy'], preferredlanguage=self.john['preferredlanguage'])
         user_add("Jane", "Manager", kolabinvitationpolicy=self.jane['kolabinvitationpolicy'], preferredlanguage=self.jane['preferredlanguage'])
         user_add("Jack", "Tentative", kolabinvitationpolicy=self.jack['kolabinvitationpolicy'], preferredlanguage=self.jack['preferredlanguage'])
-        user_add("Bob", "Auto", kolabinvitationpolicy=self.bob['kolabinvitationpolicy'], preferredlanguage=self.bob['preferredlanguage'])
+        user_add("Mark", "German", kolabinvitationpolicy=self.mark['kolabinvitationpolicy'], preferredlanguage=self.mark['preferredlanguage'])
 
         time.sleep(1)
         from tests.functional.synchronize import synchronize_once
@@ -606,18 +606,18 @@ class TestWallaceInvitationpolicy(unittest.TestCase):
         self.purge_mailbox(self.john['mailbox'])
 
         start = datetime.datetime(2014,8,12, 16,0,0, tzinfo=pytz.timezone("Europe/Berlin"))
-        uid = self.create_calendar_event(start, user=self.john, attendees=[self.jane, self.bob, self.jack])
+        uid = self.create_calendar_event(start, user=self.john, attendees=[self.jane, self.mark, self.jack])
 
         # send a reply from jane to john
         self.send_itip_reply(uid, self.jane['mail'], self.john['mail'], start=start)
 
         # check for notification message
-        # this notification should be suppressed until bob has replied, too
+        # this notification should be suppressed until mark has replied, too
         notification = self.check_message_received(_('"%s" has been updated') % ('test'), self.john['mail'])
         self.assertEqual(notification, None)
 
-        # send a reply from bob to john
-        self.send_itip_reply(uid, self.bob['mail'], self.john['mail'], start=start, partstat='ACCEPTED')
+        # send a reply from mark to john
+        self.send_itip_reply(uid, self.mark['mail'], self.john['mail'], start=start, partstat='ACCEPTED')
 
         notification = self.check_message_received(_('"%s" has been updated') % ('test'), self.john['mail'])
         self.assertIsInstance(notification, email.message.Message)
@@ -628,7 +628,7 @@ class TestWallaceInvitationpolicy(unittest.TestCase):
 
         self.purge_mailbox(self.john['mailbox'])
 
-        # send a reply from bob to john
+        # send a reply from mark to john
         self.send_itip_reply(uid, self.jack['mail'], self.john['mail'], start=start, partstat='ACCEPTED')
 
         # this triggers an additional notification
@@ -639,6 +639,28 @@ class TestWallaceInvitationpolicy(unittest.TestCase):
         self.assertNotIn(_("PENDING"), notification_text)
 
 
+    def test_008_notify_translated(self):
+        self.purge_mailbox(self.mark['mailbox'])
+
+        start = datetime.datetime(2014,8,12, 16,0,0, tzinfo=pytz.timezone("Europe/Berlin"))
+        uid = self.create_calendar_event(start, user=self.mark, attendees=[self.jane])
+
+        # send a reply from jane to mark
+        self.send_itip_reply(uid, self.jane['mail'], self.mark['mail'], start=start)
+
+        # change translations to de_DE
+        pykolab.translate.setUserLanguage(self.mark['preferredlanguage'])
+        notification = self.check_message_received(_('"%s" has been updated') % ('test'), self.mark['mail'], self.mark['mailbox'])
+        self.assertIsInstance(notification, email.message.Message)
+
+        notification_text = str(notification.get_payload());
+        self.assertIn(self.jane['mail'], notification_text)
+        self.assertIn(participant_status_label("ACCEPTED")+":", notification_text)
+
+        # reset localization
+        pykolab.translate.setUserLanguage(conf.get('kolab','default_locale'))
+
+
     def test_009_outdated_reply(self):
         self.purge_mailbox(self.john['mailbox'])
 
@@ -711,3 +733,5 @@ class TestWallaceInvitationpolicy(unittest.TestCase):
         jacks = self.check_user_calendar_event(self.jack['kolabtargetfolder'], uid)
         self.assertEqual(jacks.get_attendee(self.jane['mail']).get_participant_status(), kolabformat.PartAccepted)
         self.assertEqual(jacks.get_attendee(self.jack['mail']).get_participant_status(), kolabformat.PartNeedsAction)
+
+
diff --git a/wallace/module_invitationpolicy.py b/wallace/module_invitationpolicy.py
index 03585ee..de29450 100644
--- a/wallace/module_invitationpolicy.py
+++ b/wallace/module_invitationpolicy.py
@@ -144,6 +144,9 @@ def cleanup():
 def execute(*args, **kw):
     global auth, imap
 
+    # (re)set language to default
+    pykolab.translate.setUserLanguage(conf.get('kolab','default_locale'))
+
     if not os.path.isdir(mybasepath):
         os.makedirs(mybasepath)
 
diff --git a/wallace/module_resources.py b/wallace/module_resources.py
index dba2653..b31a8d0 100644
--- a/wallace/module_resources.py
+++ b/wallace/module_resources.py
@@ -100,6 +100,9 @@ def cleanup():
 def execute(*args, **kw):
     global auth, imap
 
+    # (re)set language to default
+    pykolab.translate.setUserLanguage(conf.get('kolab','default_locale'))
+
     if not os.path.isdir(mybasepath):
         os.makedirs(mybasepath)
 
@@ -875,6 +878,8 @@ def send_response(from_address, itip_events, owner=None):
         attendee = itip_event['xml'].get_attendee_by_email(from_address)
         participant_status = itip_event['xml'].get_ical_attendee_participant_status(attendee)
 
+        # TODO: look-up event organizer in LDAP and change localization to its preferredlanguage
+
         message_text = reservation_response_text(participant_status, owner)
         subject_template = _("Reservation Request for %(summary)s was %(status)s")
 
@@ -944,6 +949,10 @@ def send_owner_notification(resource, owner, itip_event, success=True):
             level=8
         )
 
+        # change gettext language to the preferredlanguage setting of the resource owner
+        if owner.has_key('preferredlanguage'):
+            pykolab.translate.setUserLanguage(owner['preferredlanguage'])
+
         message_text = owner_notification_text(resource, owner, itip_event['xml'], success)
 
         msg = MIMEText(utils.stripped_message(message_text))


commit 9876593d6551fe4e7dcd7ce93011f70ebab5b8a1
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Tue Jul 22 09:08:36 2014 -0400

    Updated localization index and some German texts

diff --git a/po/POTFILES.in b/po/POTFILES.in
index 8109c28..5a5bc37 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -12,11 +12,10 @@ ext/python/Tools/freeze/makefreeze.py
 ext/python/Tools/freeze/makemakefile.py
 ext/python/Tools/freeze/parsesetup.py
 ext/python/Tools/freeze/winmakemakefile.py
+kolab-cli.py
 kolabd/__init__.py
 kolabd/process.py
 kolabd.py
-kolab/__init__.py
-kolab.py
 pykolab/auth/__init__.py
 pykolab/auth/ldap/auth_cache.py
 pykolab/auth/ldap/cache.py
@@ -84,11 +83,13 @@ pykolab/imap/cyrus.py
 pykolab/imap/__init__.py
 pykolab/imap_utf7.py
 pykolab/__init__.py
+pykolab/itip/__init__.py
 pykolab/logger.py
 pykolab/plugins/defaultfolders/__init__.py
 pykolab/plugins/dynamicquota/__init__.py
 pykolab/plugins/__init__.py
 pykolab/plugins/recipientpolicy/__init__.py
+pykolab/plugins/roundcubedb/__init__.py
 pykolab/plugins/sievemgmt/__init__.py
 pykolab/setup/components.py
 pykolab/setup/__init__.py
@@ -137,6 +138,8 @@ tests/functional/test_wallace/test_003_nonascii_subject.py
 tests/functional/test_wallace/test_004_nonascii_addresses.py
 tests/functional/test_wallace/test_005_resource_add.py
 tests/functional/test_wallace/test_005_resource_invitation.py
+tests/functional/test_wallace/test_006_resource_performance.py
+tests/functional/test_wallace/test_007_invitationpolicy.py
 tests/functional/test_wap_client/__init__.py
 tests/functional/test_wap_client/test_001_connect.py
 tests/functional/test_wap_client/test_002_user_add.py
@@ -160,12 +163,18 @@ tests/unit/test-007-ldap_syncrepl.py
 tests/unit/test-008-sievelib.py
 tests/unit/test-009-parse_ldap_uri.py
 tests/unit/test-010-transliterate.py
+tests/unit/test-011-itip.py
 tests/unit/test-011-wallace_resources.py
+tests/unit/test-012-wallace_invitationpolicy.py
+tests/unit/test-014-conf-and-raw.py
+tests/unit/test-015-translate.py
 test-wallace.py
 ucs/kolab_sieve.py
 ucs/listener.py
 wallace/__init__.py
 wallace/module_footer.py
+wallace/module_gpgencrypt.py
+wallace/module_invitationpolicy.py
 wallace/module_optout.py
 wallace/module_resources.py
 wallace/modules.py
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
index b2ac963..1966fae 100644
--- a/po/POTFILES.skip
+++ b/po/POTFILES.skip
@@ -1,214 +1,70 @@
-activate_domain.py
-bin/test_parse_policy.py
-bin/test-read-input.py
-bonnie/__init__.py
-bonnie.py
-demo.py
-kwap/data/templates/home/kanarip/devel/src/kolab/pykolab.git/kwap/kwap/templates/about.mak.py
-kwap/data/templates/home/kanarip/devel/src/kolab/pykolab.git/kwap/kwap/templates/authentication.mak.py
-kwap/data/templates/home/kanarip/devel/src/kolab/pykolab.git/kwap/kwap/templates/data.mak.py
-kwap/data/templates/home/kanarip/devel/src/kolab/pykolab.git/kwap/kwap/templates/environ.mak.py
-kwap/data/templates/home/kanarip/devel/src/kolab/pykolab.git/kwap/kwap/templates/error.mak.py
-kwap/data/templates/home/kanarip/devel/src/kolab/pykolab.git/kwap/kwap/templates/index.mak.py
-kwap/data/templates/home/kanarip/devel/src/kolab/pykolab.git/kwap/kwap/templates/login.mak.py
-kwap/data/templates/home/kanarip/devel/src/kolab/pykolab.git/kwap/kwap/templates/master.mak.py
-kwap/ez_setup/__init__.py
-kwap/kwap/config/app_cfg.py
-kwap/kwap/config/environment.py
-kwap/kwap/config/__init__.py
-kwap/kwap/config/middleware.py
-kwap/kwap/controllers/domain.py
-kwap/kwap/controllers/error.py
-kwap/kwap/controllers/__init__.py
-kwap/kwap/controllers/root.py
-kwap/kwap/controllers/secure.py
-kwap/kwap/controllers/template.py
-kwap/kwap/grids/domains.py
-kwap/kwap/grids/__init__.py
-kwap/kwap/__init__.py
-kwap/kwap/lib/app_globals.py
-kwap/kwap/lib/base.py
-kwap/kwap/lib/helpers.py
-kwap/kwap/lib/__init__.py
-kwap/kwap/model/auth.py
-kwap/kwap/model/__init__.py
-kwap/kwap/templates/domain/__init__.py
-kwap/kwap/templates/__init__.py
-kwap/kwap/tests/functional/__init__.py
-kwap/kwap/tests/functional/test_authentication.py
-kwap/kwap/tests/functional/test_root.py
-kwap/kwap/tests/__init__.py
-kwap/kwap/tests/models/__init__.py
-kwap/kwap/tests/models/test_auth.py
-kwap/kwap/websetup/bootstrap.py
-kwap/kwap/websetup/__init__.py
-kwap/kwap/websetup/schema.py
-kwap/setup.py
-munich_demo.py
-play/anon-imap/anon-imap.py
-play/augeas-insert.py
-play/base_64_decode.py
-play/brepr_vs_unicode.py
-play/cleanup_acls.py
-play/cliconfmgmt.py
-play/conf-add-file-to-service.py
-play/conf-add-setting.py
-play/conf-list-config-files.py
-play/confmgmt/augeas.py
-play/confmgmt/db.py
-play/confmgmt/__init__.py
-play/confmgmt/model.py
-play/conf.py
-play/conf-settings-from-file.py
-play/conf-update-file.py
-play/detect-object-type.py
-play/dttz.py
-play/effectiverights.py
-play/flawed_zpush_testing_create_folders.py
-play/fork.py
-play/get_uid.py
-play/imap_annotations_test.py
-play/kolab-sap/kolab_smtp_access_policy.py
-play/libkolabxml/contact.py
-play/libkolabxml/event_imap.py
-play/libkolabxml/event.py
-play/libkolabxml/event_rfc822.py
-play/libkolabxml/todo.py
-play/load_test.py
-play/migrate_lowercase_uid.py
-play/migrate_mail_to_uid_prod.py
-play/migrate_mail_to_uid.py
-play/migrate_uid_to_mail_prod.py
-play/migrate_uid_to_mail.py
-play/noheaderini.py
-play/not-an-itip-message.py
-play/openssl/license.py
-play/parallel_persistent_searches.py
-play/parse_policy.py
-play/persistent_search_kolab_23.py
-play/persistent_search.py
-play/pooling.py
-play/purge_users_roundcube.py
-play/push_contacts.py
-play/pygpgme/sign.py
-play/pygpgme/verify.py
-play/regexps.py
-play/rolequota/__init__.py
-play/roundcube_database/identities.py
-play/roundcube_database/__init__.py
-play/roundcube_database.py
-play/roundcube_database/users.py
-play/split_message_file.py
-play/sqlalchemy_schemadisplay.py
-play/strip_many_headers.py
-play/sync_client.py
-play/sync_repl_kolab_23.py
-play/test_augeas_load.py
-play/test_cal_spread.py
-play/test-entitlements.py
-play/test_filter.py
-play/test_folders.py
-play/test-icalendar-attendee.py
-play/test_imapd.py
-play/test_imap.py
-play/test-kolab-smtp-access-policy-load.py
-play/test_kolabxml.py
-play/test-login-as.py
-play/test-namespace.py
-play/test-output.py
-play/test_page_control.py
-play/test-parse_ldap_uri.py
-play/test.py
-play/test_sk.ks.c.py
-play/test_socket_client.py
-play/test_socket.py
-play/test_submission.py
-play/test_undelete.py
-play/translit.py
-play/unicode_test.py
-play/unicode-to-ascii.py
-play/wap/domain.info.py
-play/wap/domains.capabilities.py
-play/wap/domains.list.py
-play/wap/form_value.generate_cn.py
-play/wap/form_value.generate_displayname.py
-play/wap/form_value.generate_mail.py
-play/wap/form_value.generate_password.py
-play/wap/form_value.generate_uid.py
-play/wap/form_value.list_options-c.py
-play/wap/form_value.select_options-ou.py
-play/wap/form_value.select_options-preferredlanguage.py
-play/wap/group.add.py
-play/wap/group.info.py
-play/wap/group.members_list.py
-play/wap/groups.list.py
-play/wap/group_types.list.py
-play/wap/role.add.py
-play/wap/role.capabilities.py
-play/wap/role.delete.py
-play/wap/role.find_by_attribute.py
-play/wap/role.info.py
-play/wap/roles.list.py
-play/wap/scu.py
-play/wap/system.capabilities.py
-play/wap/system.select_domain.py
-play/wap/user.add.py
-play/wap/user.delete.py
-play/wap/user.edit.py
-play/wap/user.info.py
-play/wap/users.list.py
-play/wap/user_types.list.py
-play/xmlevent.py
-play/xmlformat.py
-play/xmlfromical.py
-play/zorbadb/test.py
-pykolab/auth/ldap/fds/__init__.py
-pykolab/auth/ldap/msds/__init__.py
-pykolab/auth/ldap/openldap/__init__.py
-pykolab/auth/ldap/rhds/__init__.py
-pykolab/auth/ldap/sunds/__init__.py
-pykolab/auth/sql/__init__.py
-pykolab/cli/cmd_examine_message.py
-pykolab/cli/cmd_list_contacts.py
-pykolab/cli/cmd_list_events.py
-pykolab/cli/cmd_rebalance_mailboxes.py
-pykolab/cli/cmd_role_info.py
-pykolab/cli/cmd_set_quota.py
-pykolab/cli/cmd_summarize_quota_allocation.py
-pykolab/confmgmt/augeas.py
-pykolab/conf/parser.py
+kolabd/.___init__.py
+pykolab/auth/.___init__.py
+pykolab/auth/ldap/._cache.py
+pykolab/auth/ldap/.___init__.py
+pykolab/._base.py
+pykolab/cli/._cmd_create_mailbox.py
+pykolab/cli/._cmd_list_mailbox_metadata.py
+pykolab/cli/._cmd_list_quota.py
+pykolab/cli/._cmd_set_language.py
+pykolab/cli/._cmd_set_mailbox_acl.py
+pykolab/cli/._cmd_set_mail.py
+pykolab/conf/._defaults.py
+pykolab/conf/.___init__.py
+pykolab/._constants.py
 pykolab/constants.py
-pykolab/ical/itip.py
-pykolab/imap/dovecot.py
-pykolab/plugins/roundcube/__init__.py
-pykolab/wap_client.old/__init__.py
-pykolab/xml/task.py
-sievelib-0.5/setup.py
-sievelib-0.5/sievelib/commands.py
-sievelib-0.5/sievelib/digest_md5.py
-sievelib-0.5/sievelib/factory.py
-sievelib-0.5/sievelib/__init__.py
-sievelib-0.5/sievelib/managesieve.py
-sievelib-0.5/sievelib/parser.py
-testaci.py
-test-ask_menu.py
-test-search.py
-test-send-mail-kolab_smtp_access_policy.py
-test-send-mail-kolab_smtp_access_policy-relay.py
-tests/functional/test_kolabd/test_004_many_aliases.py
-test-subscribe-address-to-ml.py
-tests/unit/test-011-base64_encoded_contact.py
-tests/unit/test-012-utf7.py
-test-urllib.py
-test-wallace-loadmsg.py
-test-wallace-resource.py
-test-wallace-send.py
-wallace/future_module_bcc.py
-wallace/future_module_conversations.py
-wallace/future_module_correctsentdate.py
-wallace/future_module_dlp.py
-wallace/future_module_footer.py
-wallace/future_module_freebusy.py
-wallace/future_module_googletranslate.py
-wallace/future_module_statistics.py
-wap_raw.py
+pykolab/._constants.py.in
+pykolab/imap/._cyrus.py
+pykolab/imap/.___init__.py
+pykolab/.___init__.py
+pykolab/itip/.___init__.py
+pykolab/._logger.py
+pykolab/plugins/dynamicquota/.___init__.py
+pykolab/plugins/.___init__.py
+pykolab/plugins/roundcubedb/.___init__.py
+pykolab/setup/.___init__.py
+pykolab/setup/._setup_freebusy.py
+pykolab/setup/._setup_ldap.py
+pykolab/setup/._setup_mta.py
+pykolab/setup/._setup_roundcube.py
+pykolab/._translate.py
+pykolab/._translit.py
+pykolab/._utils.py
+pykolab/wap_client/.___init__.py
+pykolab/xml/._attendee.py
+pykolab/xml/._event.py
+pykolab/xml/.___init__.py
+pykolab/xml/._utils.py
+tests/functional/._purge_users.py
+tests/functional/._resource_func.py
+tests/functional/._synchronize.py
+tests/functional/test_auth/.___init__.py
+tests/functional/test_auth/._test_001_ldap.py
+tests/functional/test_auth/._test_002_sql.py
+tests/functional/test_auth/._test_003_pam.py
+tests/functional/test_auth/._test_004_saslauthd.py
+tests/functional/test_kolabd/._test_001_user_sync.py
+tests/functional/test_wallace/._test_001_user_add.py
+tests/functional/test_wallace/._test_002_footer.py
+tests/functional/test_wallace/._test_005_resource_add.py
+tests/functional/test_wallace/._test_005_resource_invitation.py
+tests/functional/test_wallace/._test_006_resource_performance.py
+tests/functional/test_wallace/._test_007_invitationpolicy.py
+tests/functional/test_wap_client/._test_002_user_add.py
+tests/functional/._user_add.py
+tests/unit/._test-000-imports.py
+tests/unit/._test-002-attendee.py
+tests/unit/._test-003-event.py
+tests/unit/._test-006-ldap_psearch.py
+tests/unit/._test-007-ldap_syncrepl.py
+tests/unit/._test-010-transliterate.py
+tests/unit/._test-011-itip.py
+tests/unit/._test-011-wallace_resources.py
+tests/unit/._test-012-wallace_invitationpolicy.py
+tests/unit/._test-014-conf-and-raw.py
+tests/unit/._test-015-translate.py
+wallace/.___init__.py
+wallace/._module_gpgencrypt.py
+wallace/._module_invitationpolicy.py
+wallace/._module_resources.py
+wallace/._modules.py
diff --git a/po/de.po b/po/de.po
index b49222d..46f34fc 100644
--- a/po/de.po
+++ b/po/de.po
@@ -3,331 +3,362 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# Christoph Wickert <cwickert at fedoraproject.org>, 2011.
-#   <grote at kolabsys.com>, 2012.
+# Christoph Wickert <christoph.wickert at gmail.com>, 2011
+# Grote <grote at kolabsys.com>, 2012
+# balin <johannes_graumann at web.de>, 2012
+# Jo <jo at caj-augsburg.de>, 2012
+# bitnukl <robert at proemper.net>, 2014
+# Thomas Brüderli <roundcube at gmail.com>, 2014
+# Till Savekoul <till at koul.de>, 2012
 msgid ""
 msgstr ""
 "Project-Id-Version: Kolab Groupware Solution\n"
-"Report-Msgid-Bugs-To: https://isues.kolab.org/\n"
-"POT-Creation-Date: 2012-08-14 12:22+0100\n"
-"PO-Revision-Date: 2012-08-14 11:13+0000\n"
-"Last-Translator: Jeroen van Meeuwen <vanmeeuwen at kolabsys.com>\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-07-10 07:21-0400\n"
+"PO-Revision-Date: 2014-07-22 13:01+0000\n"
+"Last-Translator: Thomas Brüderli <roundcube at gmail.com>\n"
 "Language-Team: German (http://www.transifex.com/projects/p/kolab/language/de/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../bin/kolab_smtp_access_policy.py:206
+#: ../bin/kolab_smtp_access_policy.py:209
 #, python-format
 msgid "Adding policy request to instance %s"
 msgstr "Füge Richtlinien-Anfrage zu Instanz %s hinzu"
 
-#: ../bin/kolab_smtp_access_policy.py:446
+#: ../bin/kolab_smtp_access_policy.py:479
 msgid "Unauthorized access not allowed"
 msgstr "Unberechtigter Zugriff nicht erlaubt"
 
-#: ../bin/kolab_smtp_access_policy.py:467
-#: ../bin/kolab_smtp_access_policy.py:657
+#: ../bin/kolab_smtp_access_policy.py:508
+#: ../bin/kolab_smtp_access_policy.py:689
 msgid "Could not find recipient"
 msgstr "Konnte den Empfänger nicht finden"
 
-#: ../bin/kolab_smtp_access_policy.py:486
-#: ../bin/kolab_smtp_access_policy.py:586
+#: ../bin/kolab_smtp_access_policy.py:527
 #, python-format
-msgid "Could not find envelope sender user %s"
-msgstr "Konnte den Absender-Umschlag für den Benutzer %s nicht finden"
+msgid "Could not find envelope sender user %s (511)"
+msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:529
+#: ../bin/kolab_smtp_access_policy.py:570
 #, python-format
 msgid "Obtained authenticated user details for %r: %r"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:608
+#: ../bin/kolab_smtp_access_policy.py:627
+#, python-format
+msgid "Could not find envelope sender user %s"
+msgstr "Konnte den Absender-Umschlag für den Benutzer %s nicht finden"
+
+#: ../bin/kolab_smtp_access_policy.py:649
 #, python-format
 msgid "%s is unauthorized to send on behalf of %s"
 msgstr "Benutzer %s ist nicht berechtigt als Benutzer %s zu senden"
 
-#: ../bin/kolab_smtp_access_policy.py:618
+#: ../bin/kolab_smtp_access_policy.py:659
 #, python-format
 msgid ""
 "User %s attempted to use envelope sender address %s without authorization"
-msgstr ""
+msgstr "Benutzer %s versuchte die Absendeadresse %s ohne Berechtigung zu verwenden"
 
-#: ../bin/kolab_smtp_access_policy.py:681
-#: ../bin/kolab_smtp_access_policy.py:692
+#: ../bin/kolab_smtp_access_policy.py:713
+#: ../bin/kolab_smtp_access_policy.py:724
 #, python-format
 msgid "Found user %s to be a delegate user of %s"
 msgstr "Benutzer %s ist ein delegierter Benutzer von %s"
 
-#: ../bin/kolab_smtp_access_policy.py:716
+#: ../bin/kolab_smtp_access_policy.py:748
 #, python-format
 msgid ""
 "Verifying authenticated sender '%(sender)s' with sasl_username "
 "'%(sasl_username)s' for recipient '%(recipient)s'"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:719
+#: ../bin/kolab_smtp_access_policy.py:751
 #, python-format
 msgid ""
 "Verifying unauthenticated sender '%(sender)s' for recipient '%(recipient)s'"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:735
+#: ../bin/kolab_smtp_access_policy.py:767
 #, python-format
 msgid "Reproducing verify_recipient(%s, %s) from cache"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:753
+#: ../bin/kolab_smtp_access_policy.py:804
 #, python-format
 msgid "Using authentication domain %s instead of %s"
 msgstr "Benutze Authentisierungsdomain %s anstelle von %s"
 
-#: ../bin/kolab_smtp_access_policy.py:763
+#: ../bin/kolab_smtp_access_policy.py:814
 #, python-format
 msgid "Domain %s is a primary domain"
 msgstr "Die Domain %s ist die primäre Domain"
 
-#: ../bin/kolab_smtp_access_policy.py:771
+#: ../bin/kolab_smtp_access_policy.py:822
 #, python-format
 msgid ""
 "Checking the recipient for domain %s that is not ours. This is probably a "
 "configuration error."
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:786
+#: ../bin/kolab_smtp_access_policy.py:837
 msgid ""
 "This recipient address is related to multiple object entries and the SMTP "
 "Access Policy can therefore not restrict message flow"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:793
+#: ../bin/kolab_smtp_access_policy.py:854
 #, python-format
 msgid ""
 "Recipient address %r not found. Allowing since the MTA was configured to "
 "accept the recipient."
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:820
+#: ../bin/kolab_smtp_access_policy.py:890
 msgid "Invalid recipient"
 msgstr "Ungültiger Empfänger"
 
-#: ../bin/kolab_smtp_access_policy.py:831
+#: ../bin/kolab_smtp_access_policy.py:901
 msgid "Could not find this user, accepting"
 msgstr "Konnte keine Einschränkung für diesen Benutzer finden, akzeptiere Nachricht"
 
-#: ../bin/kolab_smtp_access_policy.py:894
-#: ../bin/kolab_smtp_access_policy.py:945
+#: ../bin/kolab_smtp_access_policy.py:974
+#: ../bin/kolab_smtp_access_policy.py:1050
 #, python-format
 msgid "Sender %s is not allowed to send to recipient %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:933
+#: ../bin/kolab_smtp_access_policy.py:1038
 #, python-format
 msgid "Reproducing verify_sender(%r) from cache"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:960
+#: ../bin/kolab_smtp_access_policy.py:1055
+msgid "Unverifiable sender."
+msgstr ""
+
+#: ../bin/kolab_smtp_access_policy.py:1060
+msgid "Sender is not using an alias"
+msgstr ""
+
+#: ../bin/kolab_smtp_access_policy.py:1068
 msgid "Sender uses unauthorized envelope sender address"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:977
+#: ../bin/kolab_smtp_access_policy.py:1085
 msgid "Could not verify sender"
 msgstr "Konnte den Absender nicht verifizieren"
 
-#: ../bin/kolab_smtp_access_policy.py:984
+#: ../bin/kolab_smtp_access_policy.py:1092
 msgid ""
 "Verifying whether sender is allowed to send to recipient using sender policy"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:997
+#: ../bin/kolab_smtp_access_policy.py:1105
 #, python-format
 msgid "Result is %r"
 msgstr "Das Ergebnis ist %r"
 
-#: ../bin/kolab_smtp_access_policy.py:1002
+#: ../bin/kolab_smtp_access_policy.py:1110
 msgid "No recipient policy restrictions exist for this sender"
 msgstr "Es existiert keine Empfängerrichtlinie für diesen Absender"
 
-#: ../bin/kolab_smtp_access_policy.py:1011
+#: ../bin/kolab_smtp_access_policy.py:1119
 msgid "Found a recipient policy to apply for this sender."
 msgstr "Empfänger-Richtlinie für diesen Benutzer gefunden"
 
-#: ../bin/kolab_smtp_access_policy.py:1026
+#: ../bin/kolab_smtp_access_policy.py:1134
 #, python-format
 msgid "Sender %s not allowed to send to recipient %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1056
+#: ../bin/kolab_smtp_access_policy.py:1155
 msgid "Cleaning up the cache"
 msgstr "Aufräumen des Cache"
 
-#: ../bin/kolab_smtp_access_policy.py:1093
+#: ../bin/kolab_smtp_access_policy.py:1177
+msgid ""
+"The 'uri' setting in the kolab_smtp_access_policy section is soon going to "
+"be deprecated in favor of 'cache_uri'"
+msgstr ""
+
+#: ../bin/kolab_smtp_access_policy.py:1193
 #, python-format
 msgid "Operational Error in caching: %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1144
+#: ../bin/kolab_smtp_access_policy.py:1245
 #, python-format
 msgid "Caching the policy result with timestamp %d"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1221
+#: ../bin/kolab_smtp_access_policy.py:1319
 #, python-format
 msgid "Returning action DEFER_IF_PERMIT: %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1226
+#: ../bin/kolab_smtp_access_policy.py:1324
 #, python-format
 msgid "Returning action DUNNO: %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1231
+#: ../bin/kolab_smtp_access_policy.py:1329
 #, python-format
 msgid "Returning action HOLD: %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1236
+#: ../bin/kolab_smtp_access_policy.py:1334
 #, python-format
 msgid "Returning action PERMIT: %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1241
+#: ../bin/kolab_smtp_access_policy.py:1459
 #, python-format
 msgid "Returning action REJECT: %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1287
+#: ../bin/kolab_smtp_access_policy.py:1505
 msgid "Starting to loop for new request"
 msgstr "Starte Schleife für neue Anfrage"
 
-#: ../bin/kolab_smtp_access_policy.py:1294
+#: ../bin/kolab_smtp_access_policy.py:1512
 msgid "Timeout for policy request reading exceeded"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1300
+#: ../bin/kolab_smtp_access_policy.py:1518
 msgid "End of current request"
 msgstr "Ende der aktuellen Anfrage"
 
-#: ../bin/kolab_smtp_access_policy.py:1304
+#: ../bin/kolab_smtp_access_policy.py:1522
 #, python-format
 msgid "Getting line: %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1308
+#: ../bin/kolab_smtp_access_policy.py:1526
 msgid "Returning request"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1334
+#: ../bin/kolab_smtp_access_policy.py:1555
 msgid "Access Policy Options"
 msgstr "Zugriffsrichtlinien-Einstellungen"
 
-#: ../bin/kolab_smtp_access_policy.py:1341
+#: ../bin/kolab_smtp_access_policy.py:1562
 msgid "SMTP Policy request timeout."
 msgstr "Zeitüberschreitung der SMTP Richtlinien-Anfrage"
 
-#: ../bin/kolab_smtp_access_policy.py:1347
+#: ../bin/kolab_smtp_access_policy.py:1568
 msgid "Verify the recipient access policy."
 msgstr "Verifiziere die Empfänger-Zugriffs-Richtlinie."
 
-#: ../bin/kolab_smtp_access_policy.py:1353
+#: ../bin/kolab_smtp_access_policy.py:1574
 msgid "Verify the sender access policy."
 msgstr "Verifiziere die Sender-Zugriffs-Richtlinie."
 
-#: ../bin/kolab_smtp_access_policy.py:1359
+#: ../bin/kolab_smtp_access_policy.py:1580
 msgid "Allow unauthenticated senders."
 msgstr "Erlaube nicht authentisierte Sender."
 
-#: ../bin/kolab_smtp_access_policy.py:1373
+#: ../bin/kolab_smtp_access_policy.py:1594
 #, python-format
 msgid "Got request instance %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1382
+#: ../bin/kolab_smtp_access_policy.py:1603
 #, python-format
 msgid "Request instance %s is in state %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1390
+#: ../bin/kolab_smtp_access_policy.py:1611
 #, python-format
 msgid "Request instance %s is not yet in DATA state"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1402
+#: ../bin/kolab_smtp_access_policy.py:1623
 #, python-format
 msgid "Request instance %s reached DATA state"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1420
+#: ../bin/kolab_smtp_access_policy.py:1643
+#, python-format
+msgid "Unhandled exception caught: %r"
+msgstr ""
+
+#: ../bin/kolab_smtp_access_policy.py:1647
 msgid "Sender access denied"
 msgstr "Sender Zugriff verweigert"
 
-#: ../bin/kolab_smtp_access_policy.py:1422
+#: ../bin/kolab_smtp_access_policy.py:1649
 msgid "Recipient access denied"
 msgstr "Empfänger Zugriff verweigert"
 
-#: ../bin/kolab_smtp_access_policy.py:1424
+#: ../bin/kolab_smtp_access_policy.py:1651
 msgid "No objections"
 msgstr "Keine Einwände"
 
-#: ../conf.py:37 ../kolab.py:34 ../saslauthd.py:33
+#: ../conf.py:37 ../kolab-cli.py:34 ../saslauthd.py:33
 msgid "Cannot load pykolab/logger.py:"
-msgstr ""
+msgstr "Laden von pykolab/logger.py nicht möglich:"
 
-#: ../kolabd/__init__.py:49 ../saslauthd/__init__.py:48
-#: ../wallace/__init__.py:65
+#: ../kolabd/__init__.py:49 ../saslauthd/__init__.py:51
+#: ../wallace/__init__.py:85
 msgid "Daemon Options"
 msgstr "Daemon Optionen"
 
-#: ../kolabd/__init__.py:56 ../saslauthd/__init__.py:55
-#: ../wallace/__init__.py:72
+#: ../kolabd/__init__.py:56 ../saslauthd/__init__.py:58
+#: ../wallace/__init__.py:92
 msgid "Fork to the background."
 msgstr "In den Hintergrund abtauchen"
 
-#: ../kolabd/__init__.py:65 ../saslauthd/__init__.py:64
-#: ../wallace/__init__.py:98
+#: ../kolabd/__init__.py:65 ../saslauthd/__init__.py:67
+#: ../wallace/__init__.py:118
 msgid "Path to the PID file to use."
 msgstr "Pfad zur PID-Datei"
 
-#: ../kolabd/__init__.py:74 ../saslauthd/__init__.py:73
-#: ../wallace/__init__.py:115
+#: ../kolabd/__init__.py:74 ../saslauthd/__init__.py:76
+#: ../wallace/__init__.py:135
 msgid "Run as user USERNAME"
-msgstr ""
+msgstr "Als Benutzer USERNAME ausführen"
 
-#: ../kolabd/__init__.py:84 ../saslauthd/__init__.py:83
-#: ../wallace/__init__.py:89
+#: ../kolabd/__init__.py:84 ../saslauthd/__init__.py:86
+#: ../wallace/__init__.py:109
 msgid "Run as group GROUPNAME"
-msgstr ""
+msgstr "Als Gruppe GROUPNAME ausführen"
 
-#: ../kolabd/__init__.py:122 ../pykolab/utils.py:151
-#: ../wallace/__init__.py:288
+#: ../kolabd/__init__.py:122 ../pykolab/logger.py:139 ../pykolab/utils.py:234
+#: ../saslauthd/__init__.py:292 ../wallace/__init__.py:329
 #, python-format
 msgid "Group %s does not exist"
-msgstr ""
+msgstr "Gruppe %s exisitert nicht"
 
-#: ../kolabd/__init__.py:131 ../wallace/__init__.py:297
+#: ../kolabd/__init__.py:131 ../saslauthd/__init__.py:301
+#: ../wallace/__init__.py:338
 #, python-format
 msgid "Switching real and effective group id to %d"
 msgstr ""
 
-#: ../kolabd/__init__.py:153 ../pykolab/utils.py:175
-#: ../wallace/__init__.py:319
+#: ../kolabd/__init__.py:153 ../pykolab/logger.py:159 ../pykolab/utils.py:258
+#: ../saslauthd/__init__.py:323 ../wallace/__init__.py:360
 #, python-format
 msgid "User %s does not exist"
 msgstr "Benutzer %s existiert nicht"
 
-#: ../kolabd/__init__.py:163 ../wallace/__init__.py:329
+#: ../kolabd/__init__.py:163 ../saslauthd/__init__.py:333
+#: ../wallace/__init__.py:370
 #, python-format
 msgid "Switching real and effective user id to %d"
 msgstr ""
 
-#: ../kolabd/__init__.py:172 ../wallace/__init__.py:338
+#: ../kolabd/__init__.py:172 ../saslauthd/__init__.py:342
+#: ../wallace/__init__.py:379
 msgid "Could not change real and effective uid and/or gid"
 msgstr ""
 
-#: ../kolabd/__init__.py:192 ../saslauthd/__init__.py:122
-#: ../wallace/__init__.py:358
+#: ../kolabd/__init__.py:192 ../saslauthd/__init__.py:133
+#: ../wallace/__init__.py:399
 msgid "Interrupted by user"
 msgstr "Vom Benutzer unterbrochen"
 
@@ -335,328 +366,492 @@ msgstr "Vom Benutzer unterbrochen"
 msgid "Traceback occurred, please report a "
 msgstr ""
 
-#: ../kolabd/__init__.py:203 ../saslauthd/__init__.py:130
-#: ../wallace/__init__.py:367
+#: ../kolabd/__init__.py:203 ../saslauthd/__init__.py:141
+#: ../wallace/__init__.py:408
 #, python-format
 msgid "Type Error: %s"
 msgstr "Typ-Fehler: %s"
 
-#: ../kolabd/__init__.py:223 ../pykolab/auth/ldap/__init__.py:1591
+#: ../kolabd/__init__.py:230
+msgid "Could not connect to LDAP, is it running?"
+msgstr ""
+
+#: ../kolabd/__init__.py:233 ../pykolab/auth/ldap/__init__.py:2137
 #: ../pykolab/cli/cmd_sync.py:36
 msgid "Listing domains..."
 msgstr "Liste Domains auf..."
 
-#: ../kolabd/__init__.py:256
+#: ../kolabd/__init__.py:244
+msgid "No domains. Not syncing"
+msgstr ""
+
+#: ../kolabd/__init__.py:275
 #, python-format
 msgid "added domains: %r, removed domains: %r"
 msgstr ""
 
+#: ../kolabd/process.py:33
+#, python-format
+msgid "Process created for domain %s"
+msgstr ""
+
+#: ../kolabd/process.py:42
+#, python-format
+msgid "Synchronizing for domain %s"
+msgstr ""
+
+#: ../kolabd/process.py:59
+#, python-format
+msgid ""
+"Error in process %r, terminating:\n"
+"\t%r"
+msgstr ""
+
 #: ../kolabd.py:31 ../setup-kolab.py:36 ../wallace.py:31
 msgid "Cannot load pykolab/constants.py:"
 msgstr "Konnte nicht pykolab/constants.py laden:"
 
-#: ../pykolab/auth/__init__.py:94
+#: ../pykolab/auth/__init__.py:89
 #, python-format
 msgid "Called for domain %r"
 msgstr ""
 
-#: ../pykolab/auth/__init__.py:107 ../pykolab/auth/__init__.py:116
+#: ../pykolab/auth/__init__.py:106 ../pykolab/auth/__init__.py:115
 #, python-format
 msgid "Using section %s and domain %s"
 msgstr ""
 
-#: ../pykolab/auth/__init__.py:121
+#: ../pykolab/auth/__init__.py:120
 #, python-format
 msgid "Connecting to Authentication backend for domain %s"
 msgstr ""
 
-#: ../pykolab/auth/__init__.py:132
+#: ../pykolab/auth/__init__.py:131
 #, python-format
 msgid "Section %s has no option 'auth_mechanism'"
 msgstr ""
 
-#: ../pykolab/auth/__init__.py:139
+#: ../pykolab/auth/__init__.py:138
 #, python-format
 msgid "Section %s has auth_mechanism: %r"
 msgstr ""
 
-#: ../pykolab/auth/__init__.py:148 ../pykolab/auth/__init__.py:157
+#: ../pykolab/auth/__init__.py:147 ../pykolab/auth/__init__.py:156
 msgid "Starting LDAP..."
 msgstr "Starte LDAP..."
 
-#: ../pykolab/auth/ldap/cache.py:109
+#: ../pykolab/auth/ldap/cache.py:126
 #, python-format
 msgid "Inserting cache entry %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/cache.py:122
+#: ../pykolab/auth/ldap/cache.py:147
 #, python-format
 msgid "Updating timestamp for cache entry %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/cache.py:129
+#: ../pykolab/auth/ldap/cache.py:155
 #, python-format
 msgid "Updating result_attribute for cache entry %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:51
+#: ../pykolab/auth/ldap/__init__.py:52
 msgid "Python LDAP library does not support persistent search"
 msgstr "Die Python LDAP Bibliothek unterstützt keine persistente Suche"
 
-#: ../pykolab/auth/ldap/__init__.py:142
+#: ../pykolab/auth/ldap/__init__.py:143
 #, python-format
 msgid "Attempting to authenticate user %s in realm %s"
 msgstr "Versuche Benutzer %s in Bereich %s zu authentisieren"
 
-#: ../pykolab/auth/ldap/__init__.py:184
+#: ../pykolab/auth/ldap/__init__.py:175 ../pykolab/auth/ldap/__init__.py:226
+#, python-format
+msgid "Authentication cache failed: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:216 ../pykolab/auth/ldap/__init__.py:240
 #, python-format
 msgid "Binding with user_dn %s and password %s"
 msgstr "Binde mit user_dn %s und Passwort %s"
 
-#: ../pykolab/auth/ldap/__init__.py:194
+#: ../pykolab/auth/ldap/__init__.py:231 ../pykolab/auth/ldap/__init__.py:263
 #, python-format
 msgid "Failed to authenticate as user %s"
+msgstr "Autorisation als Benutzer %s gescheitert"
+
+#: ../pykolab/auth/ldap/__init__.py:249
+#, python-format
+msgid "Error occured, there is no such object: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:254
+msgid "Authentication cache failed to clear entry"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:260
+#, python-format
+msgid "Exception occured: %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:211
+#: ../pykolab/auth/ldap/__init__.py:280
 msgid "Connecting to LDAP..."
 msgstr "Verbinde zum LDAP..."
 
-#: ../pykolab/auth/ldap/__init__.py:215
+#: ../pykolab/auth/ldap/__init__.py:284
 #, python-format
 msgid "Attempting to use LDAP URI %s"
 msgstr "Versuche LDAP URI %s zu benutzen"
 
-#: ../pykolab/auth/ldap/__init__.py:357
+#: ../pykolab/auth/ldap/__init__.py:371
+#, python-format
+msgid "Entry ID: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:373
+#, python-format
+msgid "Entry DN: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:376
+#, python-format
+msgid ""
+"ldap search: (%r, %r, filterstr='(objectclass=*)', attrlist=[ 'dn' ] + %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:453
 #, python-format
 msgid "Finding recipient with filter %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:425
+#: ../pykolab/auth/ldap/__init__.py:529
 #, python-format
 msgid "Finding resource with filter %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:448
+#: ../pykolab/auth/ldap/__init__.py:560
 #, python-format
 msgid "Using timestamp %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:480
+#: ../pykolab/auth/ldap/__init__.py:595
+msgid "Applying recipient policy disabled through configuration"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:600
 #, python-format
 msgid "Applying recipient policy to %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:497
+#: ../pykolab/auth/ldap/__init__.py:617
 #, python-format
 msgid "Using mail attributes: %r, with primary %r and "
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:508
+#: ../pykolab/auth/ldap/__init__.py:628
 #, python-format
 msgid "key %r not in entry"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:510
+#: ../pykolab/auth/ldap/__init__.py:630
 #, python-format
 msgid "key %r is the prim. mail attr."
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:512
+#: ../pykolab/auth/ldap/__init__.py:632
 msgid "prim. mail pol. is not empty"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:515
+#: ../pykolab/auth/ldap/__init__.py:635
 #, python-format
 msgid "key %r is the sec. mail attr."
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:517
+#: ../pykolab/auth/ldap/__init__.py:637
 msgid "sec. mail pol. is not empty"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:520 ../pykolab/auth/ldap/__init__.py:533
+#: ../pykolab/auth/ldap/__init__.py:641 ../pykolab/auth/ldap/__init__.py:655
 #, python-format
 msgid "Attributes %r are not yet available for entry %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:574
+#: ../pykolab/auth/ldap/__init__.py:694
 #, python-format
 msgid "No results for mail address %s found"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:585
+#: ../pykolab/auth/ldap/__init__.py:705
 #, python-format
 msgid "1 result for address %s found, verifying"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:595
+#: ../pykolab/auth/ldap/__init__.py:715
 #, python-format
 msgid "Too bad, primary email address %s "
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:606 ../pykolab/auth/ldap/__init__.py:695
+#: ../pykolab/auth/ldap/__init__.py:726 ../pykolab/auth/ldap/__init__.py:815
 msgid "Address assigned to us"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:661
+#: ../pykolab/auth/ldap/__init__.py:781
 #, python-format
 msgid "No results for address %s found"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:672
+#: ../pykolab/auth/ldap/__init__.py:792
 #, python-format
 msgid "1 result for address %s found, "
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:683
+#: ../pykolab/auth/ldap/__init__.py:803
 msgid "Too bad, secondary email "
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:710
+#: ../pykolab/auth/ldap/__init__.py:830
 msgid "Recipient policy composed the following set of secondary "
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:716
+#: ../pykolab/auth/ldap/__init__.py:841
 #, python-format
 msgid "Secondary mail addresses that we want is not None: %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:727
+#: ../pykolab/auth/ldap/__init__.py:852
 msgid "Avoiding the duplication of the primary mail "
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:738
+#: ../pykolab/auth/ldap/__init__.py:863
 #, python-format
 msgid "Entry is getting secondary mail addresses: %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:746
+#: ../pykolab/auth/ldap/__init__.py:871
 msgid "Entry did not have any secondary mail "
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:772
+#: ../pykolab/auth/ldap/__init__.py:888 ../pykolab/auth/ldap/__init__.py:894
+#, python-format
+msgid "secondary_mail_addresses: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:889 ../pykolab/auth/ldap/__init__.py:895
+#, python-format
+msgid "entry[%s]: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:906
 #, python-format
 msgid "Entry modifications list: %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:792
+#: ../pykolab/auth/ldap/__init__.py:934
 #, python-format
 msgid "Setting entry attribute %r to %r for %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:828
+#: ../pykolab/auth/ldap/__init__.py:970
 #, python-format
-msgid "Could not update dn %r"
+msgid ""
+"Could not update dn %r:\n"
+"%r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:841
+#: ../pykolab/auth/ldap/__init__.py:983
 #, python-format
 msgid "Using filter %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:879
+#: ../pykolab/auth/ldap/__init__.py:998
+#, python-format
+msgid "Synchronization is searching against base DN: %s"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:1044
 #, python-format
 msgid "About to consider the user quota for %r (used: %r, "
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:945
+#: ../pykolab/auth/ldap/__init__.py:1115
 msgid "Invalid DN, username and/or password."
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1229
+#: ../pykolab/auth/ldap/__init__.py:1236 ../pykolab/auth/ldap/__init__.py:1249
+#: ../pykolab/auth/ldap/__init__.py:1614 ../pykolab/auth/ldap/__init__.py:1627
+#, python-format
+msgid "Found a subject %r with access %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:1356
+#, python-format
+msgid "Entry %s attribute value: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:1364
 #, python-format
-msgid "Current changelog entry %s with %s"
+msgid "imap.user_mailbox_server(%r) result: %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1242
+#: ../pykolab/auth/ldap/__init__.py:1684 ../pykolab/auth/ldap/__init__.py:1853
 #, python-format
 msgid "Result from recipient policy: %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1385
+#: ../pykolab/auth/ldap/__init__.py:1908
 #, python-format
 msgid "Kolab user %s does not have a result attribute %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1527
+#: ../pykolab/auth/ldap/__init__.py:2067
 #, python-format
 msgid "Finding domain root dn for domain %s"
-msgstr ""
+msgstr "Suche root dn für die Domain %s"
 
-#: ../pykolab/auth/ldap/__init__.py:1615
+#: ../pykolab/auth/ldap/__init__.py:2164
 msgid "Authentication database DOWN"
 msgstr "Authentisierungsdatenbank UNTEN"
 
-#: ../pykolab/auth/ldap/__init__.py:1699 ../pykolab/auth/ldap/__init__.py:1734
+#: ../pykolab/auth/ldap/__init__.py:2248 ../pykolab/auth/ldap/__init__.py:2296
 #, python-format
 msgid "Entry type: %s"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1822
+#: ../pykolab/auth/ldap/__init__.py:2321
+#, python-format
+msgid "Done with _synchronize_callback() for entry %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:2393
 msgid "LDAP Search Result Data Entry:"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1838
+#: ../pykolab/auth/ldap/__init__.py:2409
 msgid "Entry Change Notification attributes:"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1843
+#: ../pykolab/auth/ldap/__init__.py:2414
 #, python-format
 msgid "Change Type: %r (%r)"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1851
+#: ../pykolab/auth/ldap/__init__.py:2422
 #, python-format
 msgid "Previous DN: %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1906
+#: ../pykolab/auth/ldap/__init__.py:2477
 #, python-format
 msgid "Object %s searched no longer exists"
 msgstr "Das gesuchte Objekt %s existiert nicht mehr"
 
-#: ../pykolab/auth/ldap/__init__.py:1916
+#: ../pykolab/auth/ldap/__init__.py:2487
 #, python-format
 msgid "%d results..."
 msgstr "%d Ergebnisse..."
 
-#: ../pykolab/auth/ldap/__init__.py:2014
+#: ../pykolab/auth/ldap/__init__.py:2590
 #, python-format
 msgid "Searching with filter %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2058
+#: ../pykolab/auth/ldap/__init__.py:2642
 #, python-format
 msgid "Checking for support for %s on %s"
 msgstr ""
 
-#: ../pykolab/cli/cmd_add_domain.py:36 ../pykolab/cli/cmd_create_mailbox.py:36
+#: ../pykolab/auth/ldap/__init__.py:2661
+#, python-format
+msgid "Found support for %s"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:2706
+#, python-format
+msgid "An error occured using %s: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/syncrepl.py:46
+msgid "The name of the persistent, unique attribute "
+msgstr ""
+
+#: ../pykolab/cli/cmd_acl_cleanup.py:34
+msgid "Clean up ACLs that use identifiers that no longer exist"
+msgstr ""
+
+#: ../pykolab/cli/cmd_acl_cleanup.py:56
+#, python-format
+msgid "Deleting ACL %s for subject %s on folder %s"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_alias.py:42
+msgid "Specify the (new) alias address"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_alias.py:45
+msgid "Specify the existing recipient address"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_alias.py:66 ../pykolab/cli/cmd_add_alias.py:70
+#, python-format
+msgid "Domain %r is not a local domain"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_alias.py:75
+msgid "Primary and secondary domain do not have the same parent domain"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_alias.py:81
+#, python-format
+msgid "No such recipient %r"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_alias.py:87
+#, python-format
+msgid "Recipient for alias %r already exists"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_alias.py:97
+msgid "Environment is not configured for "
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_alias.py:105
+#, python-format
+msgid "Recipient %r is not the primary recipient for address %r"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_domain.py:36
+#: ../pykolab/cli/cmd_count_domain_mailboxes.py:38
+#: ../pykolab/cli/cmd_create_mailbox.py:36
 #: ../pykolab/cli/cmd_export_mailbox.py:33
-#: ../pykolab/cli/cmd_list_mailboxes.py:39
-#: ../pykolab/cli/cmd_list_user_subscriptions.py:35
+#: ../pykolab/cli/cmd_list_deleted_mailboxes.py:38
+#: ../pykolab/cli/cmd_list_domain_mailboxes.py:36
+#: ../pykolab/cli/cmd_list_mailboxes.py:40
+#: ../pykolab/cli/cmd_list_mailbox_metadata.py:37
+#: ../pykolab/cli/cmd_list_messages.py:37 ../pykolab/cli/cmd_list_quota.py:36
+#: ../pykolab/cli/cmd_list_user_subscriptions.py:36
+#: ../pykolab/cli/cmd_server_info.py:34
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:38
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:39
+#: ../pykolab/cli/cmd_undelete_mailbox.py:34
 msgid "CLI Options"
 msgstr "Kommandozeilen-Parameter"
 
 #: ../pykolab/cli/cmd_add_domain.py:42
-msgid "Add domain as alias for DOMAIN"
+msgid "Add alias domain."
 msgstr ""
 
 #: ../pykolab/cli/cmd_add_domain.py:47
-msgid "Add a new domain or domain alias."
-msgstr "Füge eine neue Domain oder einen neuen Domain Alias hinzu."
-
-#: ../pykolab/cli/cmd_add_domain.py:55
-msgid "Could not find credentials with sufficient permissions"
+msgid "Add a new domain."
 msgstr ""
 
-#: ../pykolab/cli/cmd_add_domain.py:80 ../pykolab/wap_client/__init__.py:113
-msgid "Invalid parent domain"
+#: ../pykolab/cli/cmd_add_domain.py:55 ../pykolab/cli/cmd_delete_domain.py:44
+#: ../pykolab/cli/cmd_find_domain.py:44
+msgid "Could not find credentials with sufficient permissions"
 msgstr ""
 
-#: ../pykolab/cli/cmd_add_domain.py:86
+#: ../pykolab/cli/cmd_add_domain.py:67 ../pykolab/cli/cmd_delete_domain.py:56
+#: ../pykolab/cli/cmd_find_domain.py:56
 msgid "Domain name"
-msgstr ""
+msgstr "Name der Domain"
 
 #: ../pykolab/cli/cmd_add_user_subscription.py:37
 msgid "Subscribe a user to a folder."
@@ -670,7 +865,7 @@ msgid "Folder pattern"
 msgstr ""
 
 #: ../pykolab/cli/cmd_add_user_subscription.py:50
-#: ../pykolab/cli/cmd_list_user_subscriptions.py:56
+#: ../pykolab/cli/cmd_list_user_subscriptions.py:63
 #: ../pykolab/cli/cmd_remove_user_subscription.py:50
 msgid "User ID"
 msgstr "Benutzer ID"
@@ -682,30 +877,39 @@ msgid "Cannot subscribe user to folder %r:"
 msgstr ""
 
 #: ../pykolab/cli/cmd_add_user_subscription.py:73
+#: ../pykolab/cli/cmd_delete_message.py:61
+#: ../pykolab/cli/cmd_list_messages.py:67
 #: ../pykolab/cli/cmd_remove_user_subscription.py:73
 msgid "No such folder"
-msgstr ""
+msgstr "Dieser Ordner ist nicht vorhanden"
 
-#: ../pykolab/cli/cmd_add_user_subscription.py:86
-#, python-format
-msgid "Successfully subscribed user %s to the following folders:"
-msgstr ""
-
-#: ../pykolab/cli/cmd_add_user_subscription.py:92
-#, python-format
-msgid "User %s not subscribed to any folders."
+#: ../pykolab/cli/cmd_count_domain_mailboxes.py:44
+#: ../pykolab/cli/cmd_list_deleted_mailboxes.py:50
+#: ../pykolab/cli/cmd_list_domain_mailboxes.py:48
+#: ../pykolab/cli/cmd_list_mailboxes.py:52 ../pykolab/cli/cmd_list_quota.py:42
+#: ../pykolab/cli/cmd_server_info.py:40
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:57
+msgid "List mailboxes on server SERVER only."
 msgstr ""
 
-#: ../pykolab/cli/cmd_create_mailbox.py:41
+#: ../pykolab/cli/cmd_create_mailbox.py:42
 msgid "Set metadata for folder to ANNOTATION=VALUE"
 msgstr ""
 
 #: ../pykolab/cli/cmd_create_mailbox.py:50
-msgid "Invalid argument"
+msgid "Create folder on PARTITION."
 msgstr ""
 
-#: ../pykolab/cli/cmd_create_mailbox.py:58
+#: ../pykolab/cli/cmd_create_mailbox.py:60
+msgid "Invalid argument"
+msgstr "Ungültiges Argument"
+
+#: ../pykolab/cli/cmd_create_mailbox.py:68
 msgid "Invalid argument for metadata"
+msgstr "Ungültiges Argument für die Metadaten"
+
+#: ../pykolab/cli/cmd_delete_domain.py:36
+msgid "Delete a domain."
 msgstr ""
 
 #: ../pykolab/cli/cmd_delete_mailbox_acl.py:45
@@ -716,26 +920,48 @@ msgid "ACI Subject"
 msgstr ""
 
 #: ../pykolab/cli/cmd_delete_mailbox_acl.py:48
-#: ../pykolab/cli/cmd_list_mailbox_acls.py:41
-#: ../pykolab/cli/cmd_list_mailbox_metadata.py:41
+#: ../pykolab/cli/cmd_list_mailbox_acls.py:43
+#: ../pykolab/cli/cmd_list_mailbox_metadata.py:54
 #: ../pykolab/cli/cmd_set_mailbox_acl.py:54
-#: ../pykolab/cli/cmd_set_mailbox_metadata.py:54
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:66
+#: ../pykolab/cli/cmd_set_quota.py:46 ../tests/unit/test-015-translate.py:12
+#: ../tests/unit/test-015-translate.py:16
+#: ../tests/unit/test-015-translate.py:18
+#: ../tests/unit/test-015-translate.py:20
 msgid "Folder name"
 msgstr "Ordnername"
 
 #: ../pykolab/cli/cmd_delete_mailbox_acl.py:60
-#: ../pykolab/cli/cmd_list_mailbox_acls.py:52
-#: ../pykolab/cli/cmd_list_mailbox_metadata.py:52
+#: ../pykolab/cli/cmd_list_mailbox_acls.py:54
+#: ../pykolab/cli/cmd_list_mailbox_metadata.py:80
 #: ../pykolab/cli/cmd_set_mailbox_acl.py:67
-#: ../pykolab/cli/cmd_set_mailbox_metadata.py:67
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:94
+#: ../pykolab/cli/cmd_set_quota.py:58
 #, python-format
 msgid "No such folder %r"
-msgstr ""
+msgstr "Kein Ordner %r verfügbar"
 
 #: ../pykolab/cli/cmd_delete_mailbox.py:46
 msgid "No mailbox specified"
 msgstr "Keine Mailbox angegeben"
 
+#: ../pykolab/cli/cmd_delete_mailbox.py:56
+msgid "No such folder(s)"
+msgstr ""
+
+#: ../pykolab/cli/cmd_delete_message.py:36
+msgid "Delete a message from a folder"
+msgstr ""
+
+#: ../pykolab/cli/cmd_delete_message.py:49
+msgid "Specify a UID"
+msgstr ""
+
+#: ../pykolab/cli/cmd_delete_message.py:52
+#: ../pykolab/cli/cmd_list_messages.py:58
+msgid "Specify a folder"
+msgstr ""
+
 #: ../pykolab/cli/cmd_export_mailbox.py:38
 msgid "All folders this user has access to"
 msgstr ""
@@ -743,40 +969,77 @@ msgstr ""
 #: ../pykolab/cli/cmd_export_mailbox.py:108
 #, python-format
 msgid "%s is not a directory"
-msgstr ""
+msgstr "%s ist kein Verzeichnis"
 
 #: ../pykolab/cli/cmd_export_mailbox.py:118
 #, python-format
 msgid "ZIP file at %s.zip"
-msgstr ""
+msgstr "ZIP-Datei unter %s.zip"
 
 #: ../pykolab/cli/cmd_export_mailbox.py:120
 #, python-format
 msgid "No directories found for user %s"
 msgstr ""
 
-#: ../pykolab/cli/cmd_list_mailboxes.py:44
+#: ../pykolab/cli/cmd_find_domain.py:36
+msgid "Find a domain."
+msgstr ""
+
+#: ../pykolab/cli/cmd_list_deleted_mailboxes.py:43
+#: ../pykolab/cli/cmd_list_domain_mailboxes.py:41
+#: ../pykolab/cli/cmd_list_mailboxes.py:45
+#: ../pykolab/cli/cmd_list_user_subscriptions.py:41
 msgid "Display raw IMAP UTF-7 folder names"
 msgstr ""
 
-#: ../pykolab/cli/cmd_list_mailboxes.py:75
+#: ../pykolab/cli/cmd_list_domain_mailboxes.py:58
+msgid "Domain"
+msgstr "Domäne"
+
+#: ../pykolab/cli/cmd_list_mailboxes.py:87
 #, python-format
 msgid "Appending folder search for %r"
 msgstr ""
 
-#: ../pykolab/cli/cmd_list_user_subscriptions.py:40
+#: ../pykolab/cli/cmd_list_mailbox_metadata.py:44
+msgid "List annotations as user USER"
+msgstr ""
+
+#: ../pykolab/cli/cmd_list_messages.py:43
+msgid "Include messages flagged as \\Deleted"
+msgstr ""
+
+#: ../pykolab/cli/cmd_list_messages.py:47
+msgid "List messages in a folder"
+msgstr ""
+
+#: ../pykolab/cli/cmd_list_quota.py:73 ../pykolab/cli/cmd_list_quota.py:89
+#, python-format
+msgid "The quota for folder %s is set to literally allow 0KB of storage."
+msgstr ""
+
+#: ../pykolab/cli/cmd_list_user_subscriptions.py:47
 msgid "List unsubscribed folders"
 msgstr "Liste nicht abonnierte Ordner"
 
-#: ../pykolab/cli/cmd_list_user_subscriptions.py:43
+#: ../pykolab/cli/cmd_list_user_subscriptions.py:50
 msgid "List the folders a user is subscribed to."
 msgstr "Liste die Ordner, die ein Benutzer abonniert hat."
 
-#: ../pykolab/cli/cmd_list_user_subscriptions.py:88
+#: ../pykolab/cli/cmd_list_user_subscriptions.py:98
 #, python-format
 msgid "No unsubscribed folders for user %s"
 msgstr ""
 
+#: ../pykolab/cli/cmd_mailbox_cleanup.py:37
+msgid "Clean up mailboxes that do no longer have an owner."
+msgstr ""
+
+#: ../pykolab/cli/cmd_mailbox_cleanup.py:61
+#, python-format
+msgid "Deleting folder 'user/%s'"
+msgstr ""
+
 #: ../pykolab/cli/cmd_remove_mailaddress.py:49
 msgid "Invalid or unqualified email address."
 msgstr ""
@@ -811,23 +1074,23 @@ msgstr ""
 
 #: ../pykolab/cli/cmd_remove_user_subscription.py:92
 #, python-format
-msgid "User %s not be unsubscribed from any folders."
+msgid "User %s was not unsubscribed from any folders."
 msgstr ""
 
-#: ../pykolab/cli/cmd_rename_mailbox.py:48
+#: ../pykolab/cli/cmd_rename_mailbox.py:52
 msgid "No target mailbox name specified"
 msgstr ""
 
-#: ../pykolab/cli/cmd_rename_mailbox.py:50
+#: ../pykolab/cli/cmd_rename_mailbox.py:54
 msgid "No source mailbox name specified"
 msgstr ""
 
-#: ../pykolab/cli/cmd_rename_mailbox.py:62
+#: ../pykolab/cli/cmd_rename_mailbox.py:66
 #, python-format
 msgid "Source folder %r does not exist"
 msgstr ""
 
-#: ../pykolab/cli/cmd_rename_mailbox.py:66
+#: ../pykolab/cli/cmd_rename_mailbox.py:70
 #, python-format
 msgid "Target folder %r already exists"
 msgstr ""
@@ -838,17 +1101,75 @@ msgstr ""
 msgid "ACI Permissions"
 msgstr ""
 
-#: ../pykolab/cli/cmd_set_mailbox_metadata.py:47
-#: ../pykolab/cli/cmd_set_mailbox_metadata.py:51
-#: ../pykolab/cli/cmd_set_mailbox_metadata.py:56
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:45
+msgid "Set annotation as user USER"
+msgstr ""
+
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:59
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:63
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:68
 msgid "Metadata value"
 msgstr ""
 
-#: ../pykolab/cli/cmd_set_mailbox_metadata.py:50
-#: ../pykolab/cli/cmd_set_mailbox_metadata.py:55
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:62
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:67
 msgid "Metadata path"
 msgstr ""
 
+#: ../pykolab/cli/cmd_set_quota.py:43 ../pykolab/cli/cmd_set_quota.py:47
+msgid "New quota"
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:44
+msgid "Delete mailboxes for recipients that do not appear to exist in LDAP."
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:50
+msgid "Display changes, do not apply them."
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:88
+#, python-format
+msgid "Domains in IMAP not in LDAP: %r"
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:101
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:142
+#, python-format
+msgid ""
+"No recipients for '%s' (would have deleted the mailbox if not for --dry-"
+"run)!"
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:106
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:147
+#, python-format
+msgid "Deleting mailbox '%s' because it has no recipients"
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:110
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:151
+#, python-format
+msgid "An error occurred removing mailbox %r: %r"
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:112
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:153
+#, python-format
+msgid "Not automatically deleting shared folder '%s'"
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:114
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:155
+#, python-format
+msgid "No recipients for '%s' (use --delete to delete)!"
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:136
+#, python-format
+msgid "Multiple recipients for '%s'!"
+msgstr ""
+
 #: ../pykolab/cli/cmd_sync.py:41
 #, python-format
 msgid "Found %d domains in %d seconds"
@@ -859,15 +1180,23 @@ msgstr "%d Domains in %d Sekunden gefunden"
 msgid "Running for domain %s"
 msgstr "Starte für Domain %s"
 
-#: ../pykolab/cli/cmd_sync.py:57
+#: ../pykolab/cli/cmd_sync.py:58
 #, python-format
 msgid "Synchronizing users for %s took %d seconds"
 msgstr "Benutzer für %s zu synchronisieren dauerte %d Sekunden"
 
-#: ../pykolab/cli/cmd_undelete_mailbox.py:33
+#: ../pykolab/cli/cmd_undelete_mailbox.py:39
+msgid "Do not actually execute, but state what would have been executed."
+msgstr ""
+
+#: ../pykolab/cli/cmd_undelete_mailbox.py:42
 msgid "Recover mailboxes previously deleted."
 msgstr ""
 
+#: ../pykolab/cli/cmd_user_info.py:39
+msgid "Email address"
+msgstr "E-Mail-Adresse"
+
 #. This is a nested command
 #. This is a nested component
 #: ../pykolab/cli/commands.py:98 ../pykolab/setup/components.py:90
@@ -875,25 +1204,102 @@ msgstr ""
 msgid "Command Group: %s"
 msgstr ""
 
-#: ../pykolab/cli/commands.py:109 ../pykolab/cli/commands.py:114
+#: ../pykolab/cli/commands.py:113 ../pykolab/cli/commands.py:118
 msgid "No such command."
 msgstr "Dieses Kommando existiert nicht."
 
-#: ../pykolab/cli/commands.py:165 ../pykolab/setup/components.py:231
+#: ../pykolab/cli/commands.py:168 ../pykolab/setup/components.py:231
 #, python-format
 msgid "Command '%s' already registered"
 msgstr ""
 
-#: ../pykolab/cli/commands.py:190 ../pykolab/setup/components.py:257
-#: ../wallace/modules.py:338
+#: ../pykolab/cli/commands.py:193 ../pykolab/setup/components.py:257
+#: ../wallace/modules.py:369
 #, python-format
 msgid "Alias for %s"
 msgstr "Alias für %s"
 
-#: ../pykolab/cli/commands.py:198 ../pykolab/setup/components.py:265
+#: ../pykolab/cli/commands.py:201 ../pykolab/setup/components.py:265
 msgid "Not yet implemented"
 msgstr "Diese Funktion ist noch nicht implementiert"
 
+#: ../pykolab/cli/sieve/cmd_list.py:43 ../pykolab/cli/sieve/cmd_put.py:42
+#: ../pykolab/cli/sieve/cmd_refresh.py:44 ../pykolab/cli/sieve/cmd_test.py:43
+msgid "Email Address"
+msgstr "E-mail-Adresse"
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:99
+#: ../pykolab/plugins/sievemgmt/__init__.py:111
+#, python-format
+msgid "Found the following scripts for user %s: %s"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:100
+#: ../pykolab/plugins/sievemgmt/__init__.py:112
+#, python-format
+msgid "And the following script is active for user %s: %s"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:178
+#: ../pykolab/plugins/sievemgmt/__init__.py:190
+#, python-format
+msgid ""
+"Delivery to folder active, but no folder name attribute available for user "
+"%r"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:181
+#: ../pykolab/plugins/sievemgmt/__init__.py:193
+msgid "Delivery to folder active, but no folder name attribute configured"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:359
+#, python-format
+msgid "MANAGEMENT script for user %s contents: %r"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:364
+#: ../pykolab/plugins/sievemgmt/__init__.py:374
+#, python-format
+msgid "Uploading script MANAGEMENT failed for user %s"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:366
+#: ../pykolab/plugins/sievemgmt/__init__.py:376
+#, python-format
+msgid "Uploading script MANAGEMENT for user %s succeeded"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:377
+#: ../pykolab/plugins/sievemgmt/__init__.py:387
+#, python-format
+msgid "Including script %s in USER (for user %s)"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:386
+#: ../pykolab/plugins/sievemgmt/__init__.py:396
+#, python-format
+msgid "Uploading script USER failed for user %s"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:388
+#: ../pykolab/plugins/sievemgmt/__init__.py:398
+#, python-format
+msgid "Uploading script USER for user %s succeeded"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:416
+#: ../pykolab/plugins/sievemgmt/__init__.py:426
+#, python-format
+msgid "Uploading script MASTER failed for user %s"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:418
+#: ../pykolab/plugins/sievemgmt/__init__.py:428
+#, python-format
+msgid "Uploading script MASTER for user %s succeeded"
+msgstr ""
+
 #: ../pykolab/cli/telemetry/cmd_examine_command_issue.py:40
 msgid "Unspecified command issue identifier"
 msgstr ""
@@ -958,27 +1364,27 @@ msgstr ""
 #: ../pykolab/conf/__init__.py:87
 #, python-format
 msgid "Setting %s to %r (from defaults)"
-msgstr ""
+msgstr "Setze %s auf %r (aus den Standardeinstellungen)"
 
 #: ../pykolab/conf/__init__.py:106
 #, python-format
 msgid "Setting %s to %r (from CLI, verified)"
-msgstr ""
+msgstr "Setze %s auf %r (von der Kommandozeile, überprüft)"
 
 #: ../pykolab/conf/__init__.py:109
 #, python-format
 msgid "Setting %s to %r (from CLI, not checked)"
-msgstr ""
+msgstr "Setze %s auf %r (von der Kommandozeile, nicht überprüft)"
 
 #: ../pykolab/conf/__init__.py:150 ../pykolab/conf/__init__.py:207
 #, python-format
 msgid "Setting %s_%s to '****' (from configuration file)"
-msgstr ""
+msgstr "Setze %s_%s auf '****' (aus Konfigurationsdatei)"
 
 #: ../pykolab/conf/__init__.py:152 ../pykolab/conf/__init__.py:209
 #, python-format
 msgid "Setting %s_%s to %r (from configuration file)"
-msgstr ""
+msgstr "Setze %s_%s auf %r (aus Konfigurationsdatei)"
 
 #: ../pykolab/conf/__init__.py:162
 msgid "Setting options from configuration file"
@@ -1039,76 +1445,76 @@ msgstr "Ja auf alle Fragen."
 msgid "No command supplied"
 msgstr "Kein Befehl angegeben"
 
-#: ../pykolab/conf/__init__.py:411
+#: ../pykolab/conf/__init__.py:416
 msgid "Insufficient options. Need section, key and value -in that order."
 msgstr "Unzureichende Optionen. Brauche Sektion, Schlüssel und Wert in dieser Reihenfolge."
 
-#: ../pykolab/conf/__init__.py:414
+#: ../pykolab/conf/__init__.py:419
 #, python-format
 msgid "No section '%s' exists."
 msgstr "Es existiert keine Sektion '%s'."
 
-#: ../pykolab/conf/__init__.py:445
+#: ../pykolab/conf/__init__.py:461
 #, python-format
 msgid "Setting %s to %r (from the default values for CLI options)"
-msgstr ""
+msgstr "Setze %s auf %r (aus den Standardwerten für Kommandozeilenoptionen)"
 
-#: ../pykolab/conf/__init__.py:514
+#: ../pykolab/conf/__init__.py:534
 #, python-format
 msgid "Could not execute configuration function: %s"
-msgstr ""
+msgstr "Konnte die Konfigurationsfunktion nicht ausführen: %s"
 
-#: ../pykolab/conf/__init__.py:522
+#: ../pykolab/conf/__init__.py:542
 #, python-format
 msgid "Option %s/%s does not exist in config file %s, pulling from defaults"
-msgstr ""
+msgstr "Die Option %s/%s existiert in der Konfigurationsdatei %s nicht, sie wird aus den Standardeinstellungen geholt"
 
-#: ../pykolab/conf/__init__.py:530 ../pykolab/conf/__init__.py:533
+#: ../pykolab/conf/__init__.py:550 ../pykolab/conf/__init__.py:553
 msgid "Option does not exist in defaults."
 msgstr "Diese Option hat keinen Standardwert."
 
-#: ../pykolab/conf/__init__.py:543
+#: ../pykolab/conf/__init__.py:563
 #, python-format
 msgid "Configuration file %s not readable."
 msgstr "Konfigurationsdatei %s ist nicht lesbar."
 
-#: ../pykolab/conf/__init__.py:546
+#: ../pykolab/conf/__init__.py:566
 #, python-format
 msgid "Configuration file %s does not exist."
 msgstr "Konfigurationsdatei %s existiert nicht."
 
-#: ../pykolab/conf/__init__.py:551
+#: ../pykolab/conf/__init__.py:571
 msgid ""
 "WARNING: A negative debug level value does not make this program be any more"
 " silent."
 msgstr "Warnung: Eine negative Fehlerprotokollierungszahl macht dieses Programm nicht noch stiller."
 
-#: ../pykolab/conf/__init__.py:557
+#: ../pykolab/conf/__init__.py:577
 msgid "This program has 9 levels of verbosity. Using the maximum of 9."
 msgstr "Dieses Programm hat 9 Ebenen der Detailliertheit. Benutze das Maximum 9."
 
-#: ../pykolab/conf/__init__.py:565 ../pykolab/conf/__init__.py:571
+#: ../pykolab/conf/__init__.py:585 ../pykolab/conf/__init__.py:591
 msgid "Cannot start SASL authentication daemon"
 msgstr "Konnte SASL Authentisierungsdaemon nicht starten"
 
-#: ../pykolab/conf/__init__.py:582
+#: ../pykolab/conf/__init__.py:602
 msgid "No imaplib library found."
-msgstr ""
+msgstr "Keine imaplib-Bibliothek gefunden."
 
-#: ../pykolab/conf/__init__.py:592
+#: ../pykolab/conf/__init__.py:612
 msgid "No LMTP class found in the smtplib library."
-msgstr ""
+msgstr "Keine Klasse namens LMTP in der smtplib-Bibliothek gefunden."
 
-#: ../pykolab/conf/__init__.py:602
+#: ../pykolab/conf/__init__.py:622
 msgid "No SMTP class found in the smtplib library."
-msgstr ""
+msgstr "Keine Klasse namens SMTP in der smtplib-Bibliothek gefunden."
 
-#: ../pykolab/conf/__init__.py:616
+#: ../pykolab/conf/__init__.py:636
 #, python-format
 msgid "Found you specified a specific set of items to test: %s"
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:624
+#: ../pykolab/conf/__init__.py:644
 #, python-format
 msgid "Selectively selecting: %s"
 msgstr ""
@@ -1137,263 +1543,383 @@ msgstr "389 Verzeichnisserver oder Red Hat Verzeichnisserver"
 msgid "OpenLDAP or compatible"
 msgstr "OpenLDAP oder kompatibel"
 
-#: ../pykolab/imap/cyrus.py:79
+#: ../pykolab/imap/cyrus.py:80
 #, python-format
 msgid "Could not connect to Cyrus IMAP server %r"
-msgstr ""
+msgstr "Verbindung zum Cyrus IMAP-Server %r nicht möglich"
 
-#: ../pykolab/imap/cyrus.py:134
+#: ../pykolab/imap/cyrus.py:137
 #, python-format
 msgid "Continuing with separator: %r"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:139
+#: ../pykolab/imap/cyrus.py:142
 msgid "Detected we are running in a Murder topology"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:143
+#: ../pykolab/imap/cyrus.py:146
 msgid "This system is not part of a murder topology"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:164
+#: ../pykolab/imap/cyrus.py:167
 #, python-format
 msgid "Checking actual backend server for folder %s through annotations"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:179
+#: ../pykolab/imap/cyrus.py:172
+msgid "Possibly reproducing the find "
+msgstr ""
+
+#: ../pykolab/imap/cyrus.py:195
 #, python-format
 msgid "Could not get the annotations after %s tries."
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:183
+#: ../pykolab/imap/cyrus.py:199
 #, python-format
 msgid "No annotations for %s: %r"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:190
+#: ../pykolab/imap/cyrus.py:206
 #, python-format
 msgid "Server for INBOX folder %s is %s"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:202
+#: ../pykolab/imap/cyrus.py:226
 #, python-format
 msgid "Setting quota for folder %s to %s"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:206
+#: ../pykolab/imap/cyrus.py:230
 #, python-format
 msgid "Could not set quota for mailfolder %s"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:215
+#: ../pykolab/imap/cyrus.py:239
 #, python-format
 msgid "Moving INBOX folder %s to %s"
-msgstr ""
+msgstr "Verschiebe Eingangsordner %s nach %s"
 
-#: ../pykolab/imap/cyrus.py:227
+#: ../pykolab/imap/cyrus.py:254
 #, python-format
 msgid "Setting annotation %s on folder %s"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:234
+#: ../pykolab/imap/cyrus.py:259
 #, python-format
 msgid "Could not set annotation %r on mail folder %r: %r"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:238
+#: ../pykolab/imap/cyrus.py:263
 #, python-format
 msgid "Transferring folder %s from %s to %s"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:298
+#: ../pykolab/imap/cyrus.py:323
 #, python-format
 msgid "Undeleting %s to %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:45
+#: ../pykolab/imap/cyrus.py:334
+#, python-format
+msgid "Would have transfered %s from %s to %s"
+msgstr ""
+
+#: ../pykolab/imap/cyrus.py:336
+#, python-format
+msgid "Would have renamed %s to %s"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:46
 #, python-format
 msgid "Cleaning up ACL entries for %s across all folders"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:60
+#: ../pykolab/imap/__init__.py:61
 #, python-format
 msgid "Cleaning up ACL entries referring to identifier %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:69
+#: ../pykolab/imap/__init__.py:70
 #, python-format
 msgid "Iterating over %d folders"
 msgstr ""
 
 #. Set the ACL to '' (effectively deleting the ACL entry)
-#: ../pykolab/imap/__init__.py:82
+#: ../pykolab/imap/__init__.py:83
 #, python-format
 msgid "Removing acl %r for subject %r from folder %r"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:143
+#: ../pykolab/imap/__init__.py:145
+msgid "No administrator password is available."
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:153
 #, python-format
 msgid "Logging on to Cyrus IMAP server %s"
-msgstr ""
+msgstr "Anmeldung am Cyrus IMAP Server %s"
 
-#: ../pykolab/imap/__init__.py:152
+#: ../pykolab/imap/__init__.py:162
 #, python-format
 msgid "Logging on to Dovecot IMAP server %s"
-msgstr ""
+msgstr "Anmeldung am Dovecot IMAP Server %s"
 
-#: ../pykolab/imap/__init__.py:161
+#: ../pykolab/imap/__init__.py:171
 #, python-format
 msgid "Logging on to generic IMAP server %s"
-msgstr ""
+msgstr "Anmeldung am generischen IMAP Server %s"
 
-#: ../pykolab/imap/__init__.py:179
+#: ../pykolab/imap/__init__.py:189
 #, python-format
 msgid "Reusing existing IMAP server connection to %s"
 msgstr "Benutze Verbindung zum IMAP Server %s wieder"
 
-#: ../pykolab/imap/__init__.py:181
+#: ../pykolab/imap/__init__.py:191
 #, python-format
 msgid "Reconnecting to IMAP server %s"
 msgstr "Verbinde nochmal zum IMAP Server %s"
 
-#: ../pykolab/imap/__init__.py:197
+#: ../pykolab/imap/__init__.py:208
 msgid "Called imap.disconnect() on a server that we had no connection to."
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:212
+#: ../pykolab/imap/__init__.py:222 ../pykolab/imap/__init__.py:234
 #, python-format
-msgid "%r has no attribute %s"
-msgstr "%r hat kein Attribut %s"
+msgid "Could not create folder %r"
+msgstr ""
 
-#: ../pykolab/imap/__init__.py:285
-msgid "Private annotations need to be set using the appropriate user account."
+#: ../pykolab/imap/__init__.py:223
+#, python-format
+msgid " on server %r"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:318 ../pykolab/imap/__init__.py:353
+#: ../pykolab/imap/__init__.py:244 ../pykolab/imap/__init__.py:246
+#, python-format
+msgid "%r has no attribute %s"
+msgstr "%r hat kein Attribut %s"
+
+#: ../pykolab/imap/__init__.py:393 ../pykolab/imap/__init__.py:428
 #, python-format
 msgid "Creating new shared folder %s"
 msgstr "Erzeuge einen neuen geteilten Ordner %s"
 
-#: ../pykolab/imap/__init__.py:375
+#: ../pykolab/imap/__init__.py:453 ../pykolab/imap/__init__.py:675
+#, python-format
+msgid "Downcasing mailbox name %r"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:457
 #, python-format
 msgid "Creating new mailbox for user %s"
 msgstr "Erzeuge eine neue Mailbox für Benutzer %s"
 
-#: ../pykolab/imap/__init__.py:404
+#: ../pykolab/imap/__init__.py:470
+msgid "Waiting for the Cyrus IMAP Murder to settle..."
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:516
 #, python-format
 msgid "Creating additional folders for user %s"
 msgstr "Erzeuge weitere Order für Benutzer %s"
 
-#: ../pykolab/imap/__init__.py:428
+#: ../pykolab/imap/__init__.py:535
+#, python-format
+msgid "Waiting for the Cyrus murder to settle... %r"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:547
+#, python-format
+msgid "Correcting additional folder name from %r to %r"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:553
 #, python-format
 msgid "Mailbox already exists: %s"
 msgstr "Mailbox existiert bereits: %s"
 
-#: ../pykolab/imap/__init__.py:471
+#: ../pykolab/imap/__init__.py:593
 msgid "Subscribing user to the additional folders"
 msgstr "Abonniere weitere Ordner für den Benutzer"
 
-#: ../pykolab/imap/__init__.py:531 ../pykolab/imap/__init__.py:605
+#: ../pykolab/imap/__init__.py:607
+msgid "Using the following tests for folder subscriptions:"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:609
+#, python-format
+msgid "    %r"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:612
+#, python-format
+msgid "Folder %s"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:624
+#, python-format
+msgid "Subscribing %s to folder %s"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:628
+#, python-format
+msgid "Subscribing %s to folder %s failed: %r"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:658
+#, python-format
+msgid "Could not rename %s to reside on partition %s"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:691
+#, python-format
+msgid "INBOX folder to rename (%s) does not exist"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:694 ../pykolab/imap/__init__.py:770
 #, python-format
 msgid "Renaming INBOX from %s to %s"
 msgstr "Benenne INBOX Ordner von %s in %s um"
 
-#: ../pykolab/imap/__init__.py:535
+#: ../pykolab/imap/__init__.py:698
 #, python-format
 msgid "Could not rename INBOX folder %s to %s"
 msgstr "Konnte INBOX Ordner nicht von %s in %s umbenennen"
 
-#: ../pykolab/imap/__init__.py:537 ../pykolab/imap/__init__.py:609
+#: ../pykolab/imap/__init__.py:700 ../pykolab/imap/__init__.py:774
 #, python-format
 msgid ""
 "Moving INBOX folder %s won't succeed as target folder %s already exists"
+msgstr "Der INBOX-Ordner %s kann nicht verschoben werden, weil der Zielordner %s bereits existiert"
+
+#: ../pykolab/imap/__init__.py:704
+#, python-format
+msgid "Server for mailbox %r is %r"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:547
+#: ../pykolab/imap/__init__.py:712
 #, python-format
 msgid "Looking for folder '%s', we found folders: %r"
-msgstr ""
+msgstr "Auf der Suche nach dem Ordner '%s' haben wir diese Ordner gefunden: %r"
 
-#: ../pykolab/imap/__init__.py:570
+#: ../pykolab/imap/__init__.py:735
 #, python-format
 msgid "Setting ACL rights %s for subject %s on folder "
 msgstr "Richte ACL Rechte %s für Subjekt %s des Ordners ein"
 
-#: ../pykolab/imap/__init__.py:581
+#: ../pykolab/imap/__init__.py:746
 #, python-format
 msgid "Removing ACL rights %s for subject %s on folder "
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:602
+#: ../pykolab/imap/__init__.py:767
 #, python-format
 msgid "Found old INBOX folder %s"
-msgstr ""
+msgstr "Alter INBOX-Ordner %s gefunden"
 
-#: ../pykolab/imap/__init__.py:611
+#: ../pykolab/imap/__init__.py:776
 #, python-format
 msgid "Did not find old folder user/%s to rename"
 msgstr "Konnte alten Ordner user/%s nicht zum umbenennen finden."
 
-#: ../pykolab/imap/__init__.py:613
+#: ../pykolab/imap/__init__.py:778
 msgid "Value for user is not a dictionary"
 msgstr "Der Wert für user ist kein dictionary"
 
 #. TODO: Go in fact correct the quota.
-#: ../pykolab/imap/__init__.py:673
+#: ../pykolab/imap/__init__.py:846
 #, python-format
 msgid "Cannot get current IMAP quota for folder %s"
 msgstr "Kann aktuelles IMAP Kontingent für den Ordner %s nicht bekommen"
 
-#: ../pykolab/imap/__init__.py:686
+#: ../pykolab/imap/__init__.py:859
 #, python-format
 msgid "Quota for %s currently is %s"
 msgstr "Kontingent für %s ist aktuell %s"
 
-#: ../pykolab/imap/__init__.py:692
+#: ../pykolab/imap/__init__.py:865
 #, python-format
 msgid "Adjusting authentication database quota for folder %s to %d"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:697
+#: ../pykolab/imap/__init__.py:870
 #, python-format
 msgid "Correcting quota for %s to %s (currently %s)"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:774
+#: ../pykolab/imap/__init__.py:947
 #, python-format
 msgid "Checking folder: %s"
 msgstr "Überprüfe Ordner: %s"
 
-#: ../pykolab/imap/__init__.py:779
+#: ../pykolab/imap/__init__.py:952
 #, python-format
 msgid "Folder has no corresponding user (1): %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:782
+#: ../pykolab/imap/__init__.py:955
 #, python-format
 msgid "Folder has no corresponding user (2): %s"
 msgstr ""
 
 #. We got user identifier only
-#: ../pykolab/imap/__init__.py:797
+#: ../pykolab/imap/__init__.py:970
 msgid "Please don't give us just a user identifier"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:800
+#: ../pykolab/imap/__init__.py:973
 #, python-format
 msgid "Deleting folder %s"
-msgstr ""
+msgstr "Lösche Verzeichnis %s"
 
 #: ../pykolab/__init__.py:50
 msgid "Returning thread local configuration"
 msgstr ""
 
-#: ../pykolab/logger.py:105
+#: ../pykolab/itip/__init__.py:43
+#, python-format
+msgid "Method %r not really interesting for us."
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:49
 #, python-format
-msgid "Could not change the ownership of log file %s"
+msgid "Raw iTip payload: %s"
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:59
+msgid "Could not read iTip from message."
 msgstr ""
 
-#: ../pykolab/logger.py:121
+#: ../pykolab/itip/__init__.py:67
+#, python-format
+msgid "Duplicate iTip object: %s"
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:90
+msgid "iTip event without a start"
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:132
+msgid "Message is not an iTip message (non-multipart message)"
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:225
+#, python-format
+msgid "Failed to compose iTip reply message: %r"
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:236 ../wallace/module_invitationpolicy.py:936
+#: ../wallace/module_resources.py:964
+#, python-format
+msgid "SMTP sendmail error: %r"
+msgstr ""
+
+#: ../pykolab/logger.py:173 ../pykolab/logger.py:179
+#, python-format
+msgid "Could not change permissions on %s: %r"
+msgstr ""
+
+#: ../pykolab/logger.py:196
 #, python-format
 msgid "Cannot log to file %s: %s"
 msgstr ""
@@ -1425,12 +1951,12 @@ msgstr ""
 #: ../pykolab/plugins/__init__.py:74
 #, python-format
 msgid "RuntimeError for plugin %s: %s"
-msgstr ""
+msgstr "Laufzeitfehler von Plugin %s: %s"
 
 #: ../pykolab/plugins/__init__.py:78
 #, python-format
 msgid "Plugin %s failed to load (%s: %s)"
-msgstr ""
+msgstr "Plugin %s konnte nicht geladen werden (%s: %s)"
 
 #: ../pykolab/plugins/__init__.py:116 ../pykolab/plugins/__init__.py:118
 #, python-format
@@ -1470,7 +1996,7 @@ msgstr ""
 #: ../pykolab/plugins/__init__.py:187
 #, python-format
 msgid "Cannot check options for plugin %s: %s"
-msgstr ""
+msgstr "Kein Zugriff auf Einstellungen des Plugins %s: %s"
 
 #: ../pykolab/plugins/__init__.py:189
 #, python-format
@@ -1491,16 +2017,51 @@ msgstr ""
 msgid "Attribute substitution for 'mail' failed in Recipient Policy"
 msgstr ""
 
-#: ../pykolab/plugins/recipientpolicy/__init__.py:115
+#: ../pykolab/plugins/recipientpolicy/__init__.py:116
 msgid "Could not parse the alternative mail routines"
 msgstr ""
 
+#: ../pykolab/plugins/recipientpolicy/__init__.py:120
+#, python-format
+msgid "Alternative mail routines: %r"
+msgstr ""
+
 #: ../pykolab/plugins/recipientpolicy/__init__.py:127
-#: ../pykolab/plugins/recipientpolicy/__init__.py:137
+#, python-format
+msgid ""
+"An error occurred in composing the secondary mail attribute for entry %r"
+msgstr ""
+
+#: ../pykolab/plugins/recipientpolicy/__init__.py:138
+#: ../pykolab/plugins/recipientpolicy/__init__.py:153
+#, python-format
+msgid "Appending additional mail address: %s"
+msgstr ""
+
+#: ../pykolab/plugins/recipientpolicy/__init__.py:142
+#, python-format
+msgid "Policy for secondary email address failed: %r"
+msgstr ""
+
+#: ../pykolab/plugins/recipientpolicy/__init__.py:157
 msgid ""
 "Attribute substitution for 'alternative_mail' failed in Recipient Policy"
 msgstr ""
 
+#: ../pykolab/plugins/roundcubedb/__init__.py:48
+#, python-format
+msgid "user_delete: %r"
+msgstr ""
+
+#: ../pykolab/plugins/roundcubedb/__init__.py:55
+#: ../pykolab/setup/setup_roundcube.py:160
+msgid "Roundcube installation path not found."
+msgstr ""
+
+#: ../pykolab/plugins/sievemgmt/__init__.py:51
+msgid "Wrong number of arguments for sieve management plugin"
+msgstr ""
+
 #: ../pykolab/setup/components.py:58
 msgid "Display this help."
 msgstr "Zeige diese Hilfe."
@@ -1521,47 +2082,27 @@ msgstr ""
 msgid "Free/Busy is not installed on this system"
 msgstr ""
 
-#: ../pykolab/setup/setup_freebusy.py:55
-msgid ""
-"\n"
-"                        Please supply the MySQL password for the 'roundcube'\n"
-"                        user. You have supplied this password earlier, and it is\n"
-"                        available from the database URI setting in\n"
-"                        /etc/roundcubemail/db.inc.php.\n"
-"                    "
-msgstr ""
-
-#: ../pykolab/setup/setup_freebusy.py:64
-#: ../pykolab/setup/setup_roundcube.py:56
-msgid "MySQL roundcube password"
-msgstr "MySQL roundcube Passwort"
+#: ../pykolab/setup/setup_imap.py:45
+msgid "Setup IMAP."
+msgstr "Richte IMAP ein."
 
-#: ../pykolab/setup/setup_freebusy.py:92
-#: ../pykolab/setup/setup_roundcube.py:116 ../pykolab/setup/setup_zpush.py:71
-#, python-format
-msgid "Using template file %r"
+#: ../pykolab/setup/setup_imap.py:89
+msgid "Could not write out Cyrus IMAP configuration file /etc/imapd.conf"
 msgstr ""
 
-#: ../pykolab/setup/setup_freebusy.py:99
-#: ../pykolab/setup/setup_roundcube.py:123 ../pykolab/setup/setup_zpush.py:78
-#, python-format
-msgid "Successfully compiled template %r, writing out to %r"
+#: ../pykolab/setup/setup_imap.py:114
+msgid "Could not write out Cyrus IMAP configuration file /etc/cyrus.conf"
 msgstr ""
 
-#: ../pykolab/setup/setup_freebusy.py:119 ../pykolab/setup/setup_imap.py:143
-#: ../pykolab/setup/setup_ldap.py:288 ../pykolab/setup/setup_ldap.py:521
-#: ../pykolab/setup/setup_mta.py:309 ../pykolab/setup/setup_mysql.py:49
-#: ../pykolab/setup/setup_roundcube.py:191
-#: ../pykolab/setup/setup_syncroton.py:66 ../pykolab/setup/setup_zpush.py:98
-msgid "Could not start and configure to start on boot, the "
+#: ../pykolab/setup/setup_imap.py:158
+msgid "Could not start the cyrus-imapd and kolab-saslauthd services."
 msgstr ""
 
-#: ../pykolab/setup/setup_imap.py:44
-msgid "Setup IMAP."
-msgstr "Richte IMAP ein."
-
-#: ../pykolab/setup/setup_imap.py:88 ../pykolab/setup/setup_imap.py:113
-msgid "Could not write out Cyrus IMAP configuration file /etc/imapd.conf"
+#: ../pykolab/setup/setup_imap.py:173 ../pykolab/setup/setup_kolabd.py:81
+#: ../pykolab/setup/setup_ldap.py:426 ../pykolab/setup/setup_mta.py:455
+#: ../pykolab/setup/setup_mysql.py:58 ../pykolab/setup/setup_roundcube.py:237
+#: ../pykolab/setup/setup_syncroton.py:102
+msgid "Could not configure to start on boot, the "
 msgstr ""
 
 #: ../pykolab/setup/setup_kolabd.py:43
@@ -1577,23 +2118,62 @@ msgid ""
 "                        "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:43
+#: ../pykolab/setup/setup_kolabd.py:72
+msgid "Could not start the kolab server service."
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:45
 msgid "LDAP Options"
 msgstr "LDAP Optionen"
 
-#: ../pykolab/setup/setup_ldap.py:50
+#: ../pykolab/setup/setup_ldap.py:52
 msgid "Specify FQDN (overriding defaults)."
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:58
+#: ../pykolab/setup/setup_ldap.py:60
 msgid "Allow anonymous binds (default: no)."
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:62
+#: ../pykolab/setup/setup_ldap.py:68
+msgid "Skip setting up the LDAP server."
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:76
+msgid "Setup configuration for OpenLDAP compatibility."
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:84
+msgid "Setup configuration for Active Directory compatibility."
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:88
 msgid "Setup LDAP."
 msgstr "LDAP Einrichten"
 
-#: ../pykolab/setup/setup_ldap.py:74
+#: ../pykolab/setup/setup_ldap.py:97
+msgid "Skipping setup of LDAP, as specified"
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:126
+msgid ""
+"\n"
+"                        You can not configure Kolab to run against OpenLDAP\n"
+"                        and Active Directory simultaneously.\n"
+"                    "
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:139
+msgid ""
+"\n"
+"                                It seems 389 Directory Server has an existing\n"
+"                                instance configured. This setup script does not\n"
+"                                intend to destroy or overwrite your data. Please\n"
+"                                make sure /etc/dirsrv/ and /var/lib/dirsrv/ are\n"
+"                                clean so that this setup does not have to worry.\n"
+"                            "
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:154
 msgid ""
 "\n"
 "                        Please supply a password for the LDAP administrator user\n"
@@ -1602,11 +2182,11 @@ msgid ""
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:82
+#: ../pykolab/setup/setup_ldap.py:162
 msgid "Administrator password"
 msgstr "Administrator Passwort"
 
-#: ../pykolab/setup/setup_ldap.py:89
+#: ../pykolab/setup/setup_ldap.py:169
 msgid ""
 "\n"
 "                        Please supply a password for the LDAP Directory Manager\n"
@@ -1616,11 +2196,11 @@ msgid ""
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:98
+#: ../pykolab/setup/setup_ldap.py:178
 msgid "Directory Manager password"
 msgstr "Verzeichnismanager Passwort"
 
-#: ../pykolab/setup/setup_ldap.py:105
+#: ../pykolab/setup/setup_ldap.py:185
 msgid ""
 "\n"
 "                        Please choose the system user and group the service\n"
@@ -1629,15 +2209,15 @@ msgid ""
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:112
+#: ../pykolab/setup/setup_ldap.py:195 ../pykolab/setup/setup_ldap.py:198
 msgid "User"
 msgstr "Benutzer"
 
-#: ../pykolab/setup/setup_ldap.py:113
+#: ../pykolab/setup/setup_ldap.py:196 ../pykolab/setup/setup_ldap.py:199
 msgid "Group"
 msgstr "Gruppe"
 
-#: ../pykolab/setup/setup_ldap.py:143
+#: ../pykolab/setup/setup_ldap.py:234
 msgid ""
 "\n"
 "                        This setup procedure plans to set up Kolab Groupware for\n"
@@ -1648,18 +2228,18 @@ msgid ""
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:157
+#: ../pykolab/setup/setup_ldap.py:248
 msgid "Domain name to use"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:162 ../pykolab/setup/setup_ldap.py:187
+#: ../pykolab/setup/setup_ldap.py:253 ../pykolab/setup/setup_ldap.py:278
 msgid ""
 "\n"
 "                                    Invalid input. Please try again.\n"
 "                                "
-msgstr ""
+msgstr "\n                                    Ungültige Eingabe. Bitte nochmals versuchen.\n                                "
 
-#: ../pykolab/setup/setup_ldap.py:171
+#: ../pykolab/setup/setup_ldap.py:262
 msgid ""
 "\n"
 "                        The standard root dn we composed for you follows. Please\n"
@@ -1667,11 +2247,15 @@ msgid ""
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:182
+#: ../pykolab/setup/setup_ldap.py:273
 msgid "Root DN to use"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:234
+#: ../pykolab/setup/setup_ldap.py:325
+msgid "No directory server setup tool available."
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:337
 msgid ""
 "\n"
 "                    Setup is now going to set up the 389 Directory Server. This\n"
@@ -1680,24 +2264,42 @@ msgid ""
 "                "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:241
+#: ../pykolab/setup/setup_ldap.py:344
 msgid "Setting up 389 Directory Server"
 msgstr "Richte 389 Verzeichnisserver ein"
 
-#. TODO: Get the return code and display output if not successful.
-#: ../pykolab/setup/setup_ldap.py:253
+#: ../pykolab/setup/setup_ldap.py:356
+msgid ""
+"\n"
+"                        An error was detected in the setup procedure for 389\n"
+"                        Directory Server. This setup will write out stderr and\n"
+"                        stdout to /var/log/kolab/setup.error.log and\n"
+"                        /var/log/kolab/setup.out.log respectively, before it\n"
+"                        exits.\n"
+"                    "
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:373
 msgid "Setup DS stdout:"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:256
+#: ../pykolab/setup/setup_ldap.py:376
 msgid "Setup DS stderr:"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:279 ../pykolab/setup/setup_mysql.py:129
-msgid "Could not find the Kolab schema file"
-msgstr "Konnte Kolab Schema Datei nicht finden"
+#: ../pykolab/setup/setup_ldap.py:402
+msgid "Could not copy the LDAP extensions for Kolab"
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:405
+msgid "Could not find the ldap Kolab schema file"
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:417
+msgid "Could not start the directory server service."
+msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:293
+#: ../pykolab/setup/setup_ldap.py:431
 msgid ""
 "\n"
 "                        Please supply a Cyrus Administrator password. This\n"
@@ -1708,11 +2310,11 @@ msgid ""
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:303
+#: ../pykolab/setup/setup_ldap.py:441
 msgid "Cyrus Administrator password"
 msgstr "Cyrus Administrator Passwort"
 
-#: ../pykolab/setup/setup_ldap.py:310
+#: ../pykolab/setup/setup_ldap.py:448
 msgid ""
 "\n"
 "                        Please supply a Kolab Service account password. This\n"
@@ -1722,98 +2324,127 @@ msgid ""
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:319
+#: ../pykolab/setup/setup_ldap.py:457
 msgid "Kolab Service password"
 msgstr "Kolab-Dienst-Passwort"
 
-#: ../pykolab/setup/setup_ldap.py:329
+#: ../pykolab/setup/setup_ldap.py:467
 msgid "Writing out configuration to kolab.conf"
 msgstr "Schreibe Einstellungen in kolab.conf"
 
-#: ../pykolab/setup/setup_ldap.py:343
+#: ../pykolab/setup/setup_ldap.py:481
 msgid "Inserting service users into LDAP."
 msgstr "Füge Service-Benutzer ins LDAP ein."
 
-#: ../pykolab/setup/setup_ldap.py:417
+#: ../pykolab/setup/setup_ldap.py:555
 msgid "Writing out cn=kolab,cn=config"
 msgstr "Schreibe cn=kolab,cn=config"
 
 #. TODO: Add kolab-admin role
 #. TODO: Assign kolab-admin admin ACLs
-#: ../pykolab/setup/setup_ldap.py:441
+#: ../pykolab/setup/setup_ldap.py:579
 #, python-format
 msgid "Adding domain %s to list of domains for this deployment"
 msgstr "Füge Domain %s zu dieser Installation hinzu"
 
-#: ../pykolab/setup/setup_ldap.py:457
+#: ../pykolab/setup/setup_ldap.py:607
 msgid "Disabling anonymous binds"
 msgstr "Stelle anonymes Binden ab"
 
 #. TODO: Ensure the uid attribute is unique
 #. TODO^2: Consider renaming the general "attribute uniqueness to "uid
 #. attribute uniqueness"
-#: ../pykolab/setup/setup_ldap.py:465
+#: ../pykolab/setup/setup_ldap.py:615
 msgid "Enabling attribute uniqueness plugin"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:471
+#: ../pykolab/setup/setup_ldap.py:621
 msgid "Enabling referential integrity plugin"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:477
+#: ../pykolab/setup/setup_ldap.py:627
 msgid "Enabling and configuring account policy plugin"
 msgstr ""
 
 #. TODO: Add kolab-admin role
-#: ../pykolab/setup/setup_ldap.py:492
+#: ../pykolab/setup/setup_ldap.py:642
 msgid "Adding the kolab-admin role"
 msgstr "Füge Kolab-Admin Rolle hinzu"
 
 #. TODO: User writeable attributes on root_dn
-#: ../pykolab/setup/setup_ldap.py:503
+#: ../pykolab/setup/setup_ldap.py:653
 #, python-format
 msgid "Setting access control to %s"
 msgstr ""
 
-#: ../pykolab/setup/setup_mta.py:40
+#: ../pykolab/setup/setup_ldap.py:679
+msgid "Could not start and configure to start on boot, the "
+msgstr ""
+
+#: ../pykolab/setup/setup_mta.py:41
 msgid "Setup MTA."
 msgstr "Richte MTA ein."
 
-#: ../pykolab/setup/setup_mta.py:224 ../pykolab/setup/setup_php.py:80
+#: ../pykolab/setup/setup_mta.py:317 ../pykolab/setup/setup_php.py:106
 #, python-format
 msgid "Setting key %r to %r"
 msgstr ""
 
-#: ../pykolab/setup/setup_mta.py:252
+#: ../pykolab/setup/setup_mta.py:350
 msgid "Could not write out Postfix configuration file /etc/postfix/master.cf"
 msgstr ""
 
-#: ../pykolab/setup/setup_mta.py:287
-msgid ""
-"Could not write out Amavis configuration file /etc/amavisd/amavisd.conf"
+#: ../pykolab/setup/setup_mta.py:397
+msgid "Could not write out Amavis configuration file amavisd.conf"
+msgstr ""
+
+#: ../pykolab/setup/setup_mta.py:405
+msgid "Not writing out any configuration for Amavis."
+msgstr ""
+
+#: ../pykolab/setup/setup_mta.py:437
+msgid "Could not start the postfix, clamav and amavisd services services."
 msgstr ""
 
 #: ../pykolab/setup/setup_mysql.py:39
 msgid "Setup MySQL."
 msgstr "Richte MySQL ein."
 
-#: ../pykolab/setup/setup_mysql.py:53
+#: ../pykolab/setup/setup_mysql.py:49
+msgid "Could not start the MySQL database service."
+msgstr ""
+
+#: ../pykolab/setup/setup_mysql.py:71
+msgid "What MySQL server are we setting up?"
+msgstr ""
+
+#: ../pykolab/setup/setup_mysql.py:75
 msgid ""
 "\n"
-"                    Please supply a root password for MySQL. This password will\n"
-"                    be the administrative user for this MySQL server, and it\n"
-"                    should be kept a secret. After this setup process has\n"
-"                    completed, Kolab is going to discard and forget about this\n"
-"                    password, but you will need it for administrative tasks in\n"
-"                    MySQL.\n"
-"                "
+"                        Please supply the root password for MySQL, so we can set\n"
+"                        up user accounts for other components that use MySQL.\n"
+"                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_mysql.py:64
+#: ../pykolab/setup/setup_mysql.py:82 ../pykolab/setup/setup_mysql.py:99
+#: ../pykolab/setup/setup_roundcube.py:183
+#: ../pykolab/setup/setup_syncroton.py:63
 msgid "MySQL root password"
+msgstr "MySQL root Password"
+
+#: ../pykolab/setup/setup_mysql.py:88
+msgid ""
+"\n"
+"                        Please supply a root password for MySQL. This password\n"
+"                        will be the administrative user for this MySQL server,\n"
+"                        and it should be kept a secret. After this setup process\n"
+"                        has completed, Kolab is going to discard and forget\n"
+"                        about this password, but you will need it for\n"
+"                        administrative tasks in MySQL.\n"
+"                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_mysql.py:103
+#: ../pykolab/setup/setup_mysql.py:139
 msgid ""
 "\n"
 "                        Please supply a password for the MySQL user 'kolab'.\n"
@@ -1822,8 +2453,12 @@ msgid ""
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_mysql.py:111
+#: ../pykolab/setup/setup_mysql.py:147
 msgid "MySQL kolab password"
+msgstr "MySQL-kolab Password"
+
+#: ../pykolab/setup/setup_mysql.py:165
+msgid "Could not find the MySQL Kolab schema file"
 msgstr ""
 
 #: ../pykolab/setup/setup_php.py:42
@@ -1832,23 +2467,38 @@ msgstr "PHP Optionen"
 
 #: ../pykolab/setup/setup_php.py:49
 msgid "Specify the timezone for PHP."
+msgstr "Zeitzone für PHP definieren."
+
+#: ../pykolab/setup/setup_php.py:57
+msgid "Specify the path to the php.ini file used with the webserver."
 msgstr ""
 
-#: ../pykolab/setup/setup_php.py:53
+#: ../pykolab/setup/setup_php.py:61
 msgid "Setup PHP."
 msgstr "Richte PHP ein."
 
-#: ../pykolab/setup/setup_php.py:58
+#: ../pykolab/setup/setup_php.py:66
 msgid ""
 "\n"
 "                        Please supply the timezone PHP should be using.\n"
+"                        You have to use a Continent or Country / City locality name\n"
+"                        like 'Europe/Berlin', but not just 'CEST'.\n"
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_php.py:64
+#: ../pykolab/setup/setup_php.py:74
 msgid "Timezone ID"
 msgstr "Zeitzonen ID"
 
+#: ../pykolab/setup/setup_php.py:80
+#, python-format
+msgid "Cannot configure PHP through %r (No such file or directory)"
+msgstr ""
+
+#: ../pykolab/setup/setup_php.py:91
+msgid "Could not find PHP configuration file php.ini"
+msgstr ""
+
 #: ../pykolab/setup/setup_roundcube.py:44
 msgid "Setup Roundcube."
 msgstr "Stelle Roundcube ein."
@@ -1862,18 +2512,29 @@ msgid ""
 "                "
 msgstr ""
 
-#: ../pykolab/setup/setup_syncroton.py:40
-msgid "Setup Syncroton."
-msgstr "Richte Syncroton ein."
+#: ../pykolab/setup/setup_roundcube.py:56
+msgid "MySQL roundcube password"
+msgstr "MySQL roundcube Passwort"
 
-#: ../pykolab/setup/setup_zpush.py:41
-msgid "Setup zpush."
-msgstr "zpush einrichten."
+#: ../pykolab/setup/setup_roundcube.py:120
+#, python-format
+msgid "Using template file %r"
+msgstr ""
 
-#: ../pykolab/setup/setup_zpush.py:45
-msgid "Z-Push is not installed on this system"
+#: ../pykolab/setup/setup_roundcube.py:127
+#, python-format
+msgid "Successfully compiled template %r, writing out to %r"
 msgstr ""
 
+#: ../pykolab/setup/setup_roundcube.py:228
+#: ../pykolab/setup/setup_syncroton.py:93
+msgid "Could not start the webserver server service."
+msgstr ""
+
+#: ../pykolab/setup/setup_syncroton.py:40
+msgid "Setup Syncroton."
+msgstr "Richte Syncroton ein."
+
 #. start_max = (int)(time.time())
 #: ../pykolab/telemetry.py:588
 #, python-format
@@ -1899,111 +2560,181 @@ msgstr ""
 msgid "No database available"
 msgstr "Keine Datenbank verfügbar"
 
-#: ../pykolab/utils.py:57 ../pykolab/utils.py:59
+#: ../pykolab/utils.py:62 ../pykolab/utils.py:64
 #, python-format
 msgid "Confirm %s: "
-msgstr ""
+msgstr "Bestätige %s:"
 
-#: ../pykolab/utils.py:62
+#: ../pykolab/utils.py:67
 msgid "Incorrect confirmation. "
-msgstr ""
+msgstr "Ungültige Bestätigung."
 
-#: ../pykolab/utils.py:67 ../pykolab/utils.py:72
+#: ../pykolab/utils.py:72 ../pykolab/utils.py:77
 #, python-format
 msgid "%s: "
 msgstr "%s:"
 
-#: ../pykolab/utils.py:69 ../pykolab/utils.py:74
+#: ../pykolab/utils.py:74 ../pykolab/utils.py:79
 #, python-format
 msgid "%s [%s]: "
 msgstr "%s [%s]: "
 
-#: ../pykolab/utils.py:119
+#: ../pykolab/utils.py:124
 msgid "Please answer 'yes' or 'no'."
 msgstr "Bitte antworten Sie mit 'yes' (ja) oder 'no' (nein)."
 
-#: ../pykolab/utils.py:185
+#: ../pykolab/utils.py:164
+msgid "Choice"
+msgstr ""
+
+#: ../pykolab/utils.py:167
+msgid "Choice (type '?' for options)"
+msgstr ""
+
+#: ../pykolab/utils.py:268
 #, python-format
 msgid "Could not change the permissions on %s"
 msgstr ""
 
-#: ../pykolab/wap_client/__init__.py:257
+#: ../pykolab/utils.py:479
+#, python-format
+msgid "Transliterating string %r with locale %r"
+msgstr ""
+
+#: ../pykolab/utils.py:487
+msgid "Attempting to set locale"
+msgstr ""
+
+#: ../pykolab/utils.py:489
+msgid "Success setting locale"
+msgstr ""
+
+#: ../pykolab/utils.py:491
+msgid "Failure to set locale"
+msgstr ""
+
+#: ../pykolab/utils.py:499
+#, python-format
+msgid "Executing '%s | %s'"
+msgstr ""
+
+#: ../pykolab/utils.py:510
+#, python-format
+msgid "Could not translate %s using locale %s"
+msgstr ""
+
+#: ../pykolab/wap_client/__init__.py:320
 #, python-format
 msgid "Requesting %r with params %r"
 msgstr ""
 
-#: ../pykolab/wap_client/__init__.py:263
+#: ../pykolab/wap_client/__init__.py:328
 #, python-format
 msgid "Got response: %r"
 msgstr ""
 
 #. Some data is not JSON
-#: ../pykolab/wap_client/__init__.py:268
+#: ../pykolab/wap_client/__init__.py:334
 msgid "Response data is not JSON"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:79 ../pykolab/xml/attendee.py:99
+#. support integer values, too
+#: ../pykolab/xml/attendee.py:9 ../pykolab/xml/attendee.py:17
+msgid "Needs Action"
+msgstr ""
+
+#: ../pykolab/xml/attendee.py:10 ../pykolab/xml/attendee.py:18
+msgid "Accepted"
+msgstr "Akzeptiert"
+
+#: ../pykolab/xml/attendee.py:11 ../pykolab/xml/attendee.py:19
+msgid "Declined"
+msgstr "Abgelehnt"
+
+#: ../pykolab/xml/attendee.py:12 ../pykolab/xml/attendee.py:20
+msgid "Tentatively Accepted"
+msgstr "Provisorisch Akzeptiert"
+
+#: ../pykolab/xml/attendee.py:13 ../pykolab/xml/attendee.py:21
+msgid "Delegated"
+msgstr "Delegiert"
+
+#: ../pykolab/xml/attendee.py:14
+msgid "Completed"
+msgstr ""
+
+#: ../pykolab/xml/attendee.py:15
+msgid "In Process"
+msgstr ""
+
+#: ../pykolab/xml/attendee.py:108 ../pykolab/xml/attendee.py:130
 msgid "Not a valid attendee"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:84
+#: ../pykolab/xml/attendee.py:115
 msgid "No valid delegator references found"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:104
+#: ../pykolab/xml/attendee.py:135
 msgid "No valid delegatee references found"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:140
+#: ../pykolab/xml/attendee.py:180
 #, python-format
 msgid "Invalid cutype %r"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:151
+#: ../pykolab/xml/attendee.py:192
 #, python-format
 msgid "Invalid participant status %r"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:159
+#: ../pykolab/xml/attendee.py:200
 #, python-format
 msgid "Invalid role %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:172
+#: ../pykolab/xml/event.py:100 ../pykolab/xml/event.py:708
+#: ../pykolab/xml/event.py:751
+msgid "Event start needs datetime.date or datetime.datetime instance"
+msgstr ""
+
+#: ../pykolab/xml/event.py:241
 #, python-format
 msgid "No attendee with email or name %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:180
+#: ../pykolab/xml/event.py:249
 #, python-format
 msgid "Invalid argument value attendee %r, must be basestring or Attendee"
 msgstr ""
 
-#: ../pykolab/xml/event.py:186
+#: ../pykolab/xml/event.py:255
 #, python-format
 msgid "No attendee with email %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:192
+#: ../pykolab/xml/event.py:261
 #, python-format
 msgid "No attendee with name %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:338
+#: ../pykolab/xml/event.py:426
 msgid "Invalid participant status"
 msgstr ""
 
-#: ../pykolab/xml/event.py:538
-msgid "Event end needs datetime.date or datetime.datetime instance"
+#: ../pykolab/xml/event.py:542
+#, python-format
+msgid "Invalid status %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:654
+#: ../pykolab/xml/event.py:550
 #, python-format
-msgid "Invalid status %r"
+msgid "Invalid classification %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:675 ../pykolab/xml/event.py:725
-msgid "Event start needs datetime.date or datetime.datetime instance"
+#: ../pykolab/xml/event.py:577
+msgid "Event end needs datetime.date or datetime.datetime instance"
 msgstr ""
 
 #: ../pykolab/xml/event.py:761
@@ -2011,62 +2742,434 @@ msgstr ""
 msgid "Invalid status set: %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:879
+#: ../pykolab/xml/event.py:923
 msgid "No sender specified"
 msgstr ""
 
-#: ../saslauthd/__init__.py:126 ../saslauthd/__init__.py:134
-#: ../wallace/__init__.py:362 ../wallace/__init__.py:371
+#: ../pykolab/xml/event.py:932
+#, python-format
+msgid "Invitation for %s was %s"
+msgstr ""
+
+#: ../pykolab/xml/event.py:937
+msgid "This is an automated response to one of your event requests."
+msgstr ""
+
+#: ../saslauthd/__init__.py:99
+#, python-format
+msgid "Could not create %r: %r"
+msgstr ""
+
+#: ../saslauthd/__init__.py:137 ../saslauthd/__init__.py:145
+#: ../wallace/__init__.py:403 ../wallace/__init__.py:412
 msgid ""
 "Traceback occurred, please report a bug at http://bugzilla.kolabsys.com"
 msgstr "Ein Fehler mit Traceback trat auf, bitte legen Sie einen Bericht auf  http://bugzilla.kolabsys.com an"
 
-#: ../wallace/__init__.py:61
+#: ../saslauthd/__init__.py:185
+msgid "kolab-saslauthd could not accept "
+msgstr ""
+
+#: ../saslauthd/__init__.py:190
+msgid "Maximum tries exceeded, exiting"
+msgstr ""
+
+#: ../tests/functional/test_wallace/test_005_resource_invitation.py:190
+#: ../wallace/module_resources.py:879
+#, python-format
+msgid "Reservation Request for %(summary)s was %(status)s"
+msgstr ""
+
+#. check notification message sent to resource owner (jane)
+#: ../tests/functional/test_wallace/test_005_resource_invitation.py:605
+#: ../tests/functional/test_wallace/test_005_resource_invitation.py:621
+#: ../wallace/module_resources.py:954
+#, python-format
+msgid "Booking for %s has been %s"
+msgstr "Buchung für %s wurde %s"
+
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:146
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:720
+#: ../wallace/module_invitationpolicy.py:374
+#, python-format
+msgid "\"%(summary)s\" has been %(status)s"
+msgstr "\"%(summary)s\" wurde %(status)s"
+
+#. check for notification message
+#. this notification should be suppressed until mark has replied, too
+#. this triggers an additional notification
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:616
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:622
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:635
+#: ../wallace/module_invitationpolicy.py:925
+#, python-format
+msgid "\"%s\" has been updated"
+msgstr "\"%s\" wurde aktualisiert"
+
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:627
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:639
+msgid "PENDING"
+msgstr ""
+
+#: ../wallace/__init__.py:57
+#, python-format
+msgid "Wallace modules: %r"
+msgstr ""
+
+#: ../wallace/__init__.py:69
+#, python-format
+msgid "Module %s.execute() failed on message %r with error: %s"
+msgstr ""
+
+#: ../wallace/__init__.py:78
 #, python-format
 msgid "Worker process %s initializing"
 msgstr ""
 
-#: ../wallace/__init__.py:80
+#: ../wallace/__init__.py:100
 msgid "Bind address for Wallace."
-msgstr ""
+msgstr "Bind-Adresse für Wallace."
 
-#: ../wallace/__init__.py:106
+#: ../wallace/__init__.py:126
 msgid "Port that Wallace is supposed to use."
 msgstr "Port, den Wallace benutzen soll."
 
-#: ../wallace/__init__.py:157
+#: ../wallace/__init__.py:177
 #, python-format
 msgid "Could not bind to socket on port %d on bind "
 msgstr ""
 
-#: ../wallace/__init__.py:169
+#: ../wallace/__init__.py:189
 msgid "Could not shut down socket"
-msgstr ""
+msgstr "Konnte Socket nicht schließen"
 
-#: ../wallace/__init__.py:226
+#: ../wallace/__init__.py:253
 msgid "Accepted connection"
 msgstr "Verbindung akzeptiert"
 
-#: ../wallace/__init__.py:387
+#: ../wallace/__init__.py:428
 #, python-format
 msgid "Could not write pid file %s"
 msgstr ""
 
-#: ../wallace/module_optout.py:61 ../wallace/module_resources.py:94
+#: ../wallace/module_footer.py:60 ../wallace/module_gpgencrypt.py:60
+#: ../wallace/module_invitationpolicy.py:168 ../wallace/module_optout.py:61
+#: ../wallace/module_resources.py:120
 #, python-format
 msgid "Issuing callback after processing to stage %s"
 msgstr ""
 
-#: ../wallace/module_optout.py:62 ../wallace/module_resources.py:100
+#: ../wallace/module_footer.py:61 ../wallace/module_gpgencrypt.py:61
+#: ../wallace/module_invitationpolicy.py:170 ../wallace/module_optout.py:62
+#: ../wallace/module_resources.py:126
 #, python-format
 msgid "Testing cb_action_%s()"
 msgstr ""
 
-#: ../wallace/module_optout.py:64 ../wallace/module_resources.py:103
+#: ../wallace/module_footer.py:63 ../wallace/module_gpgencrypt.py:63
+#: ../wallace/module_invitationpolicy.py:172 ../wallace/module_optout.py:64
+#: ../wallace/module_resources.py:129
 #, python-format
 msgid "Attempting to execute cb_action_%s()"
 msgstr ""
 
+#: ../wallace/module_footer.py:67
+#, python-format
+msgid "Executing module footer for %r, %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:66
+#, python-format
+msgid "Executing module gpgencrypt for %r, %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:98
+msgid "Message is already encrypted (app/pgp-enc content-type)"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:102
+msgid "Message already encrypted by main content-type header"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:131
+msgid ""
+"Configured to encrypt to a key not configured, and strict policy enabled. "
+"Bailing out."
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:134
+msgid ""
+"Configured to encrypt to a key not configured, but continuing anyway (see "
+"'gpgencrypt_strict')."
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:171
+#, python-format
+msgid "Recipients: %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:183
+#, python-format
+msgid "Current keys: %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:188
+#, python-format
+msgid "Retrieving key for recipient: %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:192 ../wallace/module_gpgencrypt.py:208
+#, python-format
+msgid "Found matching address %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:200
+#, python-format
+msgid "Found matching address %r in remote keys"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:232
+#, python-format
+msgid "An error occurred: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:154
+#, python-format
+msgid "Invitation policy called for %r, %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:211
+#: ../wallace/module_resources.py:169
+#, python-format
+msgid "Failed to parse iTip events from message: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:215
+msgid ""
+"Message is not an iTip message or does not contain any (valid) iTip events."
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:219
+#, python-format
+msgid ""
+"iTip events attached to this message contain the following information: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:232
+#, python-format
+msgid "No itips, no users, pass along %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:235
+#, python-format
+msgid "iTips, but no users, pass along %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:255
+#, python-format
+msgid "No user attendee matching envelope recipient %s, skip message"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:259
+#, python-format
+msgid "Receiving user: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:284
+#, python-format
+msgid "Apply invitation policy %r for domain %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:295
+#, python-format
+msgid "Ignoring '%s' iTip method"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:299
+#, python-format
+msgid "iTip message %r consumed by the invitationpolicy module"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:315
+msgid "Pass invitation for manual processing"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:320
+#, python-format
+msgid "Receiving Attendee: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:339
+#, python-format
+msgid "Existing event: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:350
+#, python-format
+msgid "Precondition for event %r fulfilled: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:386
+#, python-format
+msgid "No RSVP for recipient %r requested"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:412
+msgid "Pass reply for manual processing"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:419
+#, python-format
+msgid "Sender Attendee: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:431
+#, python-format
+msgid ""
+"The iTip reply sequence (%r) doesn't match the referred event version (%r). "
+"Forwarding to Inbox."
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:437
+#, python-format
+msgid "Auto-updating event %r on iTip REPLY"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:459
+#: ../wallace/module_invitationpolicy.py:488
+msgid ""
+"The event referred by this reply was not found in the user's calendars. "
+"Forwarding to Inbox."
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:472
+msgid "Pass cancellation for manual processing"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:517
+#, python-format
+msgid "Checking if email address %r belongs to a local user"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:522
+#, python-format
+msgid "User DN: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:524
+#, python-format
+msgid "No user record(s) found for %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:577
+#, python-format
+msgid "User record doesn't have the mailbox attribute %r set"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:590
+#, python-format
+msgid "IMAP proxy authentication failed: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:612
+#, python-format
+msgid "List calendar folders for user %r: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:628
+#, python-format
+msgid "IMAP metadata for %r: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:658
+#, python-format
+msgid "Searching folder %r for event %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:670
+#: ../wallace/module_invitationpolicy.py:709
+#: ../wallace/module_resources.py:486
+#, python-format
+msgid "Failed to parse event from message %s/%s: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:696
+#, python-format
+msgid "Listing events from folder %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:715
+#, python-format
+msgid "Existing event %r conflicts with invitation %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:722
+#: ../wallace/module_resources.py:344
+#, python-format
+msgid "start: %r, end: %r, total: %r, messages: %d"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:748
+#, python-format
+msgid "%r is locked, waiting..."
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:811
+#, python-format
+msgid "Failed to save event: no calendar folder found for user %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:814
+#, python-format
+msgid "Save event %r to user calendar %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:827
+#, python-format
+msgid "Failed to save event to user calendar at %r: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:843
+#, python-format
+msgid "Delete event %r in %r: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:863
+#, python-format
+msgid "Compose participation status summary for event %r to user %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:901
+#, python-format
+msgid ""
+"Waiting for more automated replies (got %d of %d); skipping notification"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:998
+#, python-format
+msgid "Updated %s's copy of %r: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:1001
+#, python-format
+msgid "Attendee %s's copy of %r not found"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:1004
+#, python-format
+msgid "Attendee %r not found in LDAP"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:1008
+#, python-format
+msgid ""
+"\n"
+"        %(name)s has %(status)s your invitation for %(summary)s.\n"
+"\n"
+"        *** This is an automated response sent by the Kolab Invitation system ***\n"
+"    "
+msgstr ""
+
 #. modules.next_module('optout')
 #: ../wallace/module_optout.py:70
 #, python-format
@@ -2088,210 +3191,295 @@ msgstr ""
 msgid "Could not send request to optout_url %s"
 msgstr ""
 
-#: ../wallace/module_resources.py:81
+#: ../wallace/module_resources.py:110
 #, python-format
 msgid "Resource Management called for %r, %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:139
+#: ../wallace/module_resources.py:174
 msgid "Message is not an iTip message or does not contain any "
 msgstr ""
 
-#: ../wallace/module_resources.py:147
+#: ../wallace/module_resources.py:182
 msgid "iTip events attached to this message contain the "
 msgstr ""
 
-#: ../wallace/module_resources.py:174
+#: ../wallace/module_resources.py:205
 msgid "Not an iTip message, but sent to resource nonetheless. Reject message"
 msgstr ""
 
-#: ../wallace/module_resources.py:182
-msgid "No itips, no resources, pass along"
+#: ../wallace/module_resources.py:213
+#, python-format
+msgid "No itips, no resources, pass along %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:186
-msgid "iTips, but no resources, pass along"
+#: ../wallace/module_resources.py:216
+#, python-format
+msgid "iTips, but no resources, pass along %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:218
+#: ../wallace/module_resources.py:225
 #, python-format
-msgid "Resources: %r"
+msgid "No resource attendees matching envelope recipient %s, Reject message"
 msgstr ""
 
-#: ../wallace/module_resources.py:236
+#: ../wallace/module_resources.py:234
 #, python-format
-msgid "Checking events in resource folder %r"
+msgid "Resources: %r; %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:243
+#: ../wallace/module_resources.py:244
 #, python-format
-msgid "Mailbox for resource %r doesn't exist"
+msgid "Receiving Resource: %r; %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:256
+#: ../wallace/module_resources.py:252
 #, python-format
-msgid "Fetching message UID %r from folder %r"
+msgid "Recipient %r is non-participant, ignoring message"
 msgstr ""
 
-#: ../wallace/module_resources.py:295
+#: ../wallace/module_resources.py:279
 #, python-format
-msgid "Event %r conflicts with event "
+msgid "Accept invitation for individual resource %r / %r"
 msgstr ""
 
 #: ../wallace/module_resources.py:308
 #, python-format
-msgid "start: %r, end: %r, total: %r, messages: %r"
+msgid "Delegate invitation for resource collection %r to %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:315
+#: ../wallace/module_resources.py:340
+#, python-format
+msgid "Failed to read resource calendar for %r: %r"
+msgstr ""
+
+#: ../wallace/module_resources.py:350
 #, python-format
 msgid "Polling for resource %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:319
+#: ../wallace/module_resources.py:353
 #, python-format
 msgid "Resource %r has been popped from the list"
 msgstr ""
 
-#: ../wallace/module_resources.py:326
+#: ../wallace/module_resources.py:357
 msgid "Resource is a collection"
 msgstr ""
 
-#: ../wallace/module_resources.py:374 ../wallace/module_resources.py:424
+#: ../wallace/module_resources.py:368
 #, python-format
-msgid "Adding event to %r"
+msgid "Removed conflicting resources from %r: (%r) => %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:473
+#: ../wallace/module_resources.py:380
 #, python-format
-msgid "Method %r not really interesting for us."
+msgid "Conflicting events: %r for resource %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:481
+#: ../wallace/module_resources.py:397
 #, python-format
-msgid "Raw iTip payload: %s"
+msgid "Delegate to another resource collection member: %r to %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:491
-msgid "Could not read iTip from message."
+#: ../wallace/module_resources.py:459
+#, python-format
+msgid "Checking events in resource folder %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:513
-msgid "iTip event without a start"
+#: ../wallace/module_resources.py:475
+#, python-format
+msgid "Fetching message UID %r from folder %r"
 msgstr ""
 
-#. end if c.name == "VEVENT"
-#. end for c in cal.walk()
-#. end if part.get_content_type() == "text/calendar"
-#. end for part in message.walk()
-#. if message.is_multipart()
-#: ../wallace/module_resources.py:543
-msgid "Message is not an iTip message (non-multipart message)"
+#: ../wallace/module_resources.py:498
+#, python-format
+msgid "Event %r conflicts with event %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:564
+#: ../wallace/module_resources.py:525
 #, python-format
-msgid "Checking if email address %r belongs to a resource (collection)"
+msgid "Adding event to %r: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:575 ../wallace/module_resources.py:649
-#: ../wallace/module_resources.py:699
+#: ../wallace/module_resources.py:573
 #, python-format
-msgid "No resource (collection) records found for %r"
+msgid "Failed to save event to resource calendar at %r: %r"
+msgstr ""
+
+#: ../wallace/module_resources.py:590
+#, python-format
+msgid "Delete resource calendar object %r in %r: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:583 ../wallace/module_resources.py:657
-#: ../wallace/module_resources.py:707
+#: ../wallace/module_resources.py:633
+#, python-format
+msgid "Checking if email address %r belongs to a resource (collection)"
+msgstr ""
+
+#: ../wallace/module_resources.py:641 ../wallace/module_resources.py:709
+#: ../wallace/module_resources.py:743
 #, python-format
 msgid "Resource record(s): %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:589 ../wallace/module_resources.py:664
-#: ../wallace/module_resources.py:714
+#: ../wallace/module_resources.py:643 ../wallace/module_resources.py:711
+#: ../wallace/module_resources.py:746
+#, python-format
+msgid "No resource (collection) records found for %r"
+msgstr ""
+
+#: ../wallace/module_resources.py:647 ../wallace/module_resources.py:715
+#: ../wallace/module_resources.py:750
 #, python-format
 msgid "Resource record: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:608
+#: ../wallace/module_resources.py:667
 #, python-format
 msgid "Raw itip_events: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:616
+#: ../wallace/module_resources.py:675
 #, python-format
 msgid "Raw set of attendees: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:624
+#: ../wallace/module_resources.py:683
 #, python-format
 msgid "Raw set of resources: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:638
+#: ../wallace/module_resources.py:702
 #, python-format
 msgid "Checking if attendee %r is a resource (collection)"
 msgstr ""
 
-#: ../wallace/module_resources.py:671 ../wallace/module_resources.py:717
+#: ../wallace/module_resources.py:718 ../wallace/module_resources.py:752
 msgid "Resource reservation made but no resource records found"
 msgstr ""
 
-#: ../wallace/module_resources.py:689
+#: ../wallace/module_resources.py:737
 #, python-format
 msgid "Checking if resource %r is a resource (collection)"
 msgstr ""
 
-#: ../wallace/module_resources.py:721
+#: ../wallace/module_resources.py:755
 msgid "The following resources are being referred to in the "
 msgstr ""
 
+#: ../wallace/module_resources.py:894
+#, python-format
+msgid ""
+"\n"
+"                *** This is an automated response, please do not reply! ***\n"
+"\n"
+"                Your reservation was delegated to \"%s\" which is available for the requested time.\n"
+"            "
+msgstr ""
+
+#: ../wallace/module_resources.py:905
+#, python-format
+msgid ""
+"\n"
+"        *** This is an automated response, please do not reply! ***\n"
+"        \n"
+"        We hereby inform you that your reservation was %s.\n"
+"    "
+msgstr ""
+
+#: ../wallace/module_resources.py:912
+#, python-format
+msgid ""
+"\n"
+"            If you have questions about this reservation, please contact\n"
+"            %s <%s> %s\n"
+"        "
+msgstr ""
+
+#: ../wallace/module_resources.py:941
+#, python-format
+msgid "Sending booking notification for event %r to %r from %r"
+msgstr ""
+
+#: ../wallace/module_resources.py:954
+msgid "failed"
+msgstr ""
+
+#: ../wallace/module_resources.py:973
+#, python-format
+msgid ""
+"\n"
+"            The resource booking for %(resource)s by %(orgname)s <%(orgemail)s> has been %(status)s for %(date)s.\n"
+"\n"
+"            *** This is an automated message, sent to you as the resource owner. ***\n"
+"        "
+msgstr ""
+
+#: ../wallace/module_resources.py:979
+#, python-format
+msgid ""
+"\n"
+"            A reservation request for %(resource)s could not be processed automatically.\n"
+"            Please contact %(orgname)s <%(orgemail)s> who requested this resource for %(date)s. Subject: %(summary)s.\n"
+"\n"
+"            *** This is an automated message, sent to you as the resource owner. ***\n"
+"        "
+msgstr ""
+
 #. This is a nested module
-#: ../wallace/modules.py:96
+#: ../wallace/modules.py:97
 #, python-format
 msgid "Module Group: %s"
+msgstr "Modulgruppe: %s"
+
+#: ../wallace/modules.py:108
+#, python-format
+msgid "No such module %r in modules %r (1)."
 msgstr ""
 
-#: ../wallace/modules.py:107 ../wallace/modules.py:112
-msgid "No such module."
+#: ../wallace/modules.py:113
+#, python-format
+msgid "No such module %r in modules %r (2)."
 msgstr ""
 
-#: ../wallace/modules.py:118
+#: ../wallace/modules.py:119
 #, python-format
 msgid "Holding message in queue for manual review (%s by %s)"
-msgstr ""
+msgstr "Behalte Nachricht zur manuellen Prüfung in der Warteliste (%s von %s)"
 
-#: ../wallace/modules.py:121
+#: ../wallace/modules.py:122
 #, python-format
 msgid "Deferring message in %s (by module %s)"
 msgstr ""
 
-#: ../wallace/modules.py:131
+#: ../wallace/modules.py:134
 #, python-format
 msgid "The time when the message was sent: %r"
-msgstr ""
+msgstr "Zeitpunkt des Versandts: %r"
 
-#: ../wallace/modules.py:132
+#: ../wallace/modules.py:135
 #, python-format
 msgid "The time now: %r"
 msgstr "Die Zeit ist jetzt: %r"
 
-#: ../wallace/modules.py:133
+#: ../wallace/modules.py:136
 #, python-format
 msgid "The time delta: %r"
-msgstr ""
+msgstr "Die Zeitdifferenz: %r"
 
 #. TODO: Send NDR back to user
-#: ../wallace/modules.py:137
+#: ../wallace/modules.py:140
 #, python-format
 msgid "Message in file %s older then 5 days, deleting"
 msgstr ""
 
-#: ../wallace/modules.py:162
+#: ../wallace/modules.py:165
 #, python-format
 msgid "Rejecting message in %s (by module %s)"
 msgstr ""
 
-#: ../wallace/modules.py:180
+#: ../wallace/modules.py:186
 #, python-format
 msgid ""
 "This is the email system Wallace at %s.\n"
@@ -2304,21 +3492,31 @@ msgid ""
 "Your message is being delivered to any other recipients you may have\n"
 "sent your message to. There is no need to resend the message to those\n"
 "recipients.\n"
-msgstr ""
+msgstr "Ich bin das E-Mail-System Wallace auf %s.\n\nMit Bedauern muß ich Sie informieren, daß die angehängte Nachricht\nnicht an die folgenden Empfänger zugestellt werden konnte:\n\n- %s\n\nFalls Sie noch andere Empfänger angegeben haben wurde die Nachricht\nan diese zugestellt. An diese Empfänger müssen sie die Nachricht\nnicht erneut senden.\n"
 
-#: ../wallace/modules.py:195
+#: ../wallace/modules.py:201
 #, python-format
 msgid ""
 "X-Wallace-Module: %s\n"
 "X-Wallace-Result: REJECT\n"
 msgstr ""
 
-#: ../wallace/modules.py:248
+#: ../wallace/modules.py:260
 #, python-format
 msgid "Accepting message in %s (by module %s)"
 msgstr ""
 
-#: ../wallace/modules.py:316
+#: ../wallace/modules.py:262
 #, python-format
-msgid "Module '%s' already registered"
+msgid "Accepting message in: %r"
 msgstr ""
+
+#: ../wallace/modules.py:269
+#, python-format
+msgid "recipients: %r"
+msgstr ""
+
+#: ../wallace/modules.py:347
+#, python-format
+msgid "Module '%s' already registered"
+msgstr "Modul '%s' ist bereits registriert"
diff --git a/po/de_DE.po b/po/de_DE.po
index e849ee9..b8bcc6f 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -1,678 +1,913 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
-#
+# 
 # Translators:
-#   <grote at kolabsys.com>, 2012.
+# Christoph Wickert <christoph.wickert at gmail.com>, 2012
+# Grote <grote at kolabsys.com>, 2012
+# Thomas Brüderli <roundcube at gmail.com>, 2014
 msgid ""
 msgstr ""
 "Project-Id-Version: Kolab Groupware Solution\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-01-12 11:17+0000\n"
-"PO-Revision-Date: 2012-08-14 11:13+0000\n"
-"Last-Translator: Jeroen van Meeuwen <vanmeeuwen at kolabsys.com>\n"
-"Language-Team: German (Germany) (http://www.transifex.com/projects/p/kolab/"
-"language/de_DE/)\n"
-"Language: de_DE\n"
+"POT-Creation-Date: 2014-07-10 07:21-0400\n"
+"PO-Revision-Date: 2014-07-22 13:04+0000\n"
+"Last-Translator: Thomas Brüderli <roundcube at gmail.com>\n"
+"Language-Team: German (Germany) (http://www.transifex.com/projects/p/kolab/language/de_DE/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"Language: de_DE\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: ../bin/kolab_smtp_access_policy.py:206
+#: ../bin/kolab_smtp_access_policy.py:209
 #, python-format
 msgid "Adding policy request to instance %s"
 msgstr "Füge Richtlinien-Anfrage zu Instanz %s hinzu"
 
-#: ../bin/kolab_smtp_access_policy.py:446
+#: ../bin/kolab_smtp_access_policy.py:479
 msgid "Unauthorized access not allowed"
 msgstr "Unberechtigter Zugriff nicht erlaubt"
 
-#: ../bin/kolab_smtp_access_policy.py:475
-#: ../bin/kolab_smtp_access_policy.py:657
+#: ../bin/kolab_smtp_access_policy.py:508
+#: ../bin/kolab_smtp_access_policy.py:689
 msgid "Could not find recipient"
 msgstr "Konnte den Empfänger nicht finden"
 
-#: ../bin/kolab_smtp_access_policy.py:494
-#: ../bin/kolab_smtp_access_policy.py:594
+#: ../bin/kolab_smtp_access_policy.py:527
 #, python-format
-msgid "Could not find envelope sender user %s"
-msgstr "Konnte den Absender-Umschlag für den Benutzer %s nicht finden"
+msgid "Could not find envelope sender user %s (511)"
+msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:537
+#: ../bin/kolab_smtp_access_policy.py:570
 #, python-format
 msgid "Obtained authenticated user details for %r: %r"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:616
+#: ../bin/kolab_smtp_access_policy.py:627
+#, python-format
+msgid "Could not find envelope sender user %s"
+msgstr "Konnte den Absender-Umschlag für den Benutzer %s nicht finden"
+
+#: ../bin/kolab_smtp_access_policy.py:649
 #, python-format
 msgid "%s is unauthorized to send on behalf of %s"
 msgstr "Benutzer %s ist nicht berechtigt als Benutzer %s zu senden"
 
-#: ../bin/kolab_smtp_access_policy.py:626
+#: ../bin/kolab_smtp_access_policy.py:659
 #, python-format
-msgid "User %s attempted to use envelope sender address %s "
+msgid ""
+"User %s attempted to use envelope sender address %s without authorization"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:681
-#: ../bin/kolab_smtp_access_policy.py:692
+#: ../bin/kolab_smtp_access_policy.py:713
+#: ../bin/kolab_smtp_access_policy.py:724
 #, python-format
 msgid "Found user %s to be a delegate user of %s"
 msgstr "Benutzer %s ist ein delegierter Benutzer von %s"
 
-#: ../bin/kolab_smtp_access_policy.py:716
+#: ../bin/kolab_smtp_access_policy.py:748
 #, python-format
-msgid "Verifying authenticated sender '%(sender)s' with "
+msgid ""
+"Verifying authenticated sender '%(sender)s' with sasl_username "
+"'%(sasl_username)s' for recipient '%(recipient)s'"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:721
+#: ../bin/kolab_smtp_access_policy.py:751
 #, python-format
-msgid "Verifying unauthenticated sender '%(sender)s' "
+msgid ""
+"Verifying unauthenticated sender '%(sender)s' for recipient '%(recipient)s'"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:738
+#: ../bin/kolab_smtp_access_policy.py:767
 #, python-format
-msgid "Reproducing verify_recipient(%s, %s) from "
+msgid "Reproducing verify_recipient(%s, %s) from cache"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:760
+#: ../bin/kolab_smtp_access_policy.py:804
 #, python-format
 msgid "Using authentication domain %s instead of %s"
 msgstr "Benutze Authentisierungsdomain %s anstelle von %s"
 
-#: ../bin/kolab_smtp_access_policy.py:770
+#: ../bin/kolab_smtp_access_policy.py:814
 #, python-format
 msgid "Domain %s is a primary domain"
 msgstr "Die Domain %s ist die primäre Domain"
 
-#: ../bin/kolab_smtp_access_policy.py:778
+#: ../bin/kolab_smtp_access_policy.py:822
 #, python-format
-msgid "Checking the recipient for domain %s that is not "
+msgid ""
+"Checking the recipient for domain %s that is not ours. This is probably a "
+"configuration error."
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:794
-msgid "This recipient address is related to multiple "
+#: ../bin/kolab_smtp_access_policy.py:837
+msgid ""
+"This recipient address is related to multiple object entries and the SMTP "
+"Access Policy can therefore not restrict message flow"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:803
+#: ../bin/kolab_smtp_access_policy.py:854
 #, python-format
-msgid "Recipient address %r not found. Allowing since "
+msgid ""
+"Recipient address %r not found. Allowing since the MTA was configured to "
+"accept the recipient."
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:831
+#: ../bin/kolab_smtp_access_policy.py:890
 msgid "Invalid recipient"
 msgstr "Ungültiger Empfänger"
 
-#: ../bin/kolab_smtp_access_policy.py:842
+#: ../bin/kolab_smtp_access_policy.py:901
 msgid "Could not find this user, accepting"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:905
-#: ../bin/kolab_smtp_access_policy.py:958
+#: ../bin/kolab_smtp_access_policy.py:974
+#: ../bin/kolab_smtp_access_policy.py:1050
 #, python-format
-msgid "Sender %s is not allowed to send to "
+msgid "Sender %s is not allowed to send to recipient %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:945
+#: ../bin/kolab_smtp_access_policy.py:1038
 #, python-format
-msgid "Reproducing verify_sender(%r) from cache, "
+msgid "Reproducing verify_sender(%r) from cache"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:974
+#: ../bin/kolab_smtp_access_policy.py:1055
+msgid "Unverifiable sender."
+msgstr ""
+
+#: ../bin/kolab_smtp_access_policy.py:1060
+msgid "Sender is not using an alias"
+msgstr ""
+
+#: ../bin/kolab_smtp_access_policy.py:1068
 msgid "Sender uses unauthorized envelope sender address"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:991
+#: ../bin/kolab_smtp_access_policy.py:1085
 msgid "Could not verify sender"
 msgstr "Konnte den Absender nicht verifizieren"
 
-#: ../bin/kolab_smtp_access_policy.py:998
-msgid "Verifying whether sender is allowed to send to "
+#: ../bin/kolab_smtp_access_policy.py:1092
+msgid ""
+"Verifying whether sender is allowed to send to recipient using sender policy"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1012
+#: ../bin/kolab_smtp_access_policy.py:1105
 #, python-format
 msgid "Result is %r"
 msgstr "Das Ergebnis ist %r"
 
-#: ../bin/kolab_smtp_access_policy.py:1017
+#: ../bin/kolab_smtp_access_policy.py:1110
 msgid "No recipient policy restrictions exist for this sender"
 msgstr "Es existiert keine Empfängerrichtlinie für diesen Absender"
 
-#: ../bin/kolab_smtp_access_policy.py:1026
+#: ../bin/kolab_smtp_access_policy.py:1119
 msgid "Found a recipient policy to apply for this sender."
 msgstr "Empfänger-Richtlinie für diesen Benutzer gefunden"
 
-#: ../bin/kolab_smtp_access_policy.py:1041
+#: ../bin/kolab_smtp_access_policy.py:1134
 #, python-format
-msgid "Sender %s not allowed to send to recipient "
+msgid "Sender %s not allowed to send to recipient %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1063
+#: ../bin/kolab_smtp_access_policy.py:1155
 msgid "Cleaning up the cache"
 msgstr "Aufräumen des Cache"
 
-#: ../bin/kolab_smtp_access_policy.py:1085
+#: ../bin/kolab_smtp_access_policy.py:1177
 msgid ""
 "The 'uri' setting in the kolab_smtp_access_policy section is soon going to "
 "be deprecated in favor of 'cache_uri'"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1101
+#: ../bin/kolab_smtp_access_policy.py:1193
 #, python-format
 msgid "Operational Error in caching: %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1152
+#: ../bin/kolab_smtp_access_policy.py:1245
 #, python-format
 msgid "Caching the policy result with timestamp %d"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1229
+#: ../bin/kolab_smtp_access_policy.py:1319
 #, python-format
 msgid "Returning action DEFER_IF_PERMIT: %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1234
+#: ../bin/kolab_smtp_access_policy.py:1324
 #, python-format
 msgid "Returning action DUNNO: %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1239
+#: ../bin/kolab_smtp_access_policy.py:1329
 #, python-format
 msgid "Returning action HOLD: %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1244
+#: ../bin/kolab_smtp_access_policy.py:1334
 #, python-format
 msgid "Returning action PERMIT: %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1249
+#: ../bin/kolab_smtp_access_policy.py:1459
 #, python-format
 msgid "Returning action REJECT: %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1298
+#: ../bin/kolab_smtp_access_policy.py:1505
 msgid "Starting to loop for new request"
 msgstr "Starte Schleife für neue Anfrage"
 
-#: ../bin/kolab_smtp_access_policy.py:1305
+#: ../bin/kolab_smtp_access_policy.py:1512
 msgid "Timeout for policy request reading exceeded"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1311
+#: ../bin/kolab_smtp_access_policy.py:1518
 msgid "End of current request"
 msgstr "Ende der aktuellen Anfrage"
 
-#: ../bin/kolab_smtp_access_policy.py:1315
+#: ../bin/kolab_smtp_access_policy.py:1522
 #, python-format
 msgid "Getting line: %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1319
+#: ../bin/kolab_smtp_access_policy.py:1526
 msgid "Returning request"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1348
+#: ../bin/kolab_smtp_access_policy.py:1555
 msgid "Access Policy Options"
 msgstr "Zugriffsrichtlinien-Einstellungen"
 
-#: ../bin/kolab_smtp_access_policy.py:1355
+#: ../bin/kolab_smtp_access_policy.py:1562
 msgid "SMTP Policy request timeout."
 msgstr "Zeitüberschreitung der SMTP Richtlinien-Anfrage"
 
-#: ../bin/kolab_smtp_access_policy.py:1361
+#: ../bin/kolab_smtp_access_policy.py:1568
 msgid "Verify the recipient access policy."
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1367
+#: ../bin/kolab_smtp_access_policy.py:1574
 msgid "Verify the sender access policy."
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1373
+#: ../bin/kolab_smtp_access_policy.py:1580
 msgid "Allow unauthenticated senders."
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1385
+#: ../bin/kolab_smtp_access_policy.py:1594
 #, python-format
 msgid "Got request instance %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1394
+#: ../bin/kolab_smtp_access_policy.py:1603
 #, python-format
 msgid "Request instance %s is in state %s"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1402
+#: ../bin/kolab_smtp_access_policy.py:1611
 #, python-format
 msgid "Request instance %s is not yet in DATA state"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1414
+#: ../bin/kolab_smtp_access_policy.py:1623
 #, python-format
 msgid "Request instance %s reached DATA state"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1432
+#: ../bin/kolab_smtp_access_policy.py:1643
+#, python-format
+msgid "Unhandled exception caught: %r"
+msgstr ""
+
+#: ../bin/kolab_smtp_access_policy.py:1647
 msgid "Sender access denied"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1434
+#: ../bin/kolab_smtp_access_policy.py:1649
 msgid "Recipient access denied"
 msgstr ""
 
-#: ../bin/kolab_smtp_access_policy.py:1436
+#: ../bin/kolab_smtp_access_policy.py:1651
 msgid "No objections"
 msgstr ""
 
-#: ../conf.py:37 ../kolab.py:34 ../saslauthd.py:33
+#: ../conf.py:37 ../kolab-cli.py:34 ../saslauthd.py:33
 msgid "Cannot load pykolab/logger.py:"
 msgstr ""
 
-#: ../kolabd/__init__.py:49 ../saslauthd/__init__.py:48
-#: ../wallace/__init__.py:66
+#: ../kolabd/__init__.py:49 ../saslauthd/__init__.py:51
+#: ../wallace/__init__.py:85
 msgid "Daemon Options"
 msgstr ""
 
-#: ../kolabd/__init__.py:56 ../saslauthd/__init__.py:55
-#: ../wallace/__init__.py:73
+#: ../kolabd/__init__.py:56 ../saslauthd/__init__.py:58
+#: ../wallace/__init__.py:92
 msgid "Fork to the background."
 msgstr ""
 
-#: ../kolabd/__init__.py:65 ../saslauthd/__init__.py:64
-#: ../wallace/__init__.py:99
+#: ../kolabd/__init__.py:65 ../saslauthd/__init__.py:67
+#: ../wallace/__init__.py:118
 msgid "Path to the PID file to use."
 msgstr ""
 
-#: ../kolabd/__init__.py:74 ../saslauthd/__init__.py:73
-#: ../wallace/__init__.py:116
+#: ../kolabd/__init__.py:74 ../saslauthd/__init__.py:76
+#: ../wallace/__init__.py:135
 msgid "Run as user USERNAME"
 msgstr ""
 
-#: ../kolabd/__init__.py:84 ../saslauthd/__init__.py:83
-#: ../wallace/__init__.py:90
+#: ../kolabd/__init__.py:84 ../saslauthd/__init__.py:86
+#: ../wallace/__init__.py:109
 msgid "Run as group GROUPNAME"
 msgstr ""
 
-#: ../kolabd/__init__.py:122 ../pykolab/utils.py:180
-#: ../wallace/__init__.py:297
+#: ../kolabd/__init__.py:122 ../pykolab/logger.py:139 ../pykolab/utils.py:234
+#: ../saslauthd/__init__.py:292 ../wallace/__init__.py:329
 #, python-format
 msgid "Group %s does not exist"
 msgstr ""
 
-#: ../kolabd/__init__.py:131 ../wallace/__init__.py:306
+#: ../kolabd/__init__.py:131 ../saslauthd/__init__.py:301
+#: ../wallace/__init__.py:338
 #, python-format
 msgid "Switching real and effective group id to %d"
 msgstr ""
 
-#: ../kolabd/__init__.py:153 ../pykolab/utils.py:204
-#: ../wallace/__init__.py:328
+#: ../kolabd/__init__.py:153 ../pykolab/logger.py:159 ../pykolab/utils.py:258
+#: ../saslauthd/__init__.py:323 ../wallace/__init__.py:360
 #, python-format
 msgid "User %s does not exist"
 msgstr ""
 
-#: ../kolabd/__init__.py:163 ../wallace/__init__.py:338
+#: ../kolabd/__init__.py:163 ../saslauthd/__init__.py:333
+#: ../wallace/__init__.py:370
 #, python-format
 msgid "Switching real and effective user id to %d"
 msgstr ""
 
-#: ../kolabd/__init__.py:172 ../wallace/__init__.py:347
+#: ../kolabd/__init__.py:172 ../saslauthd/__init__.py:342
+#: ../wallace/__init__.py:379
 msgid "Could not change real and effective uid and/or gid"
 msgstr ""
 
-#: ../kolabd/__init__.py:192 ../saslauthd/__init__.py:122
-#: ../wallace/__init__.py:367
+#: ../kolabd/__init__.py:192 ../saslauthd/__init__.py:133
+#: ../wallace/__init__.py:399
 msgid "Interrupted by user"
 msgstr ""
 
 #: ../kolabd/__init__.py:197 ../kolabd/__init__.py:208
-#: ../wallace/__init__.py:371 ../wallace/__init__.py:381
 msgid "Traceback occurred, please report a "
 msgstr ""
 
-#: ../kolabd/__init__.py:203 ../saslauthd/__init__.py:130
-#: ../wallace/__init__.py:377
+#: ../kolabd/__init__.py:203 ../saslauthd/__init__.py:141
+#: ../wallace/__init__.py:408
 #, python-format
 msgid "Type Error: %s"
 msgstr ""
 
-#: ../kolabd/__init__.py:223 ../pykolab/auth/ldap/__init__.py:1623
+#: ../kolabd/__init__.py:230
+msgid "Could not connect to LDAP, is it running?"
+msgstr ""
+
+#: ../kolabd/__init__.py:233 ../pykolab/auth/ldap/__init__.py:2137
 #: ../pykolab/cli/cmd_sync.py:36
 msgid "Listing domains..."
+msgstr "Domänen werden geladen…"
+
+#: ../kolabd/__init__.py:244
+msgid "No domains. Not syncing"
 msgstr ""
 
-#: ../kolabd/__init__.py:260
+#: ../kolabd/__init__.py:275
 #, python-format
 msgid "added domains: %r, removed domains: %r"
 msgstr ""
 
-#: ../kolabd/process.py:48
+#: ../kolabd/process.py:33
+#, python-format
+msgid "Process created for domain %s"
+msgstr ""
+
+#: ../kolabd/process.py:42
 #, python-format
-msgid "Error in process %r, terminating: %r"
+msgid "Synchronizing for domain %s"
+msgstr ""
+
+#: ../kolabd/process.py:59
+#, python-format
+msgid ""
+"Error in process %r, terminating:\n"
+"\t%r"
 msgstr ""
 
 #: ../kolabd.py:31 ../setup-kolab.py:36 ../wallace.py:31
 msgid "Cannot load pykolab/constants.py:"
 msgstr ""
 
-#: ../pykolab/auth/__init__.py:94
+#: ../pykolab/auth/__init__.py:89
 #, python-format
 msgid "Called for domain %r"
 msgstr ""
 
-#: ../pykolab/auth/__init__.py:107 ../pykolab/auth/__init__.py:116
+#: ../pykolab/auth/__init__.py:106 ../pykolab/auth/__init__.py:115
 #, python-format
 msgid "Using section %s and domain %s"
 msgstr ""
 
-#: ../pykolab/auth/__init__.py:121
+#: ../pykolab/auth/__init__.py:120
 #, python-format
 msgid "Connecting to Authentication backend for domain %s"
 msgstr ""
 
-#: ../pykolab/auth/__init__.py:132
+#: ../pykolab/auth/__init__.py:131
 #, python-format
 msgid "Section %s has no option 'auth_mechanism'"
 msgstr ""
 
-#: ../pykolab/auth/__init__.py:139
+#: ../pykolab/auth/__init__.py:138
 #, python-format
 msgid "Section %s has auth_mechanism: %r"
 msgstr ""
 
-#: ../pykolab/auth/__init__.py:148 ../pykolab/auth/__init__.py:157
+#: ../pykolab/auth/__init__.py:147 ../pykolab/auth/__init__.py:156
 msgid "Starting LDAP..."
 msgstr ""
 
-#: ../pykolab/auth/ldap/cache.py:112
+#: ../pykolab/auth/ldap/cache.py:126
 #, python-format
 msgid "Inserting cache entry %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/cache.py:129
+#: ../pykolab/auth/ldap/cache.py:147
 #, python-format
 msgid "Updating timestamp for cache entry %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/cache.py:136
+#: ../pykolab/auth/ldap/cache.py:155
 #, python-format
 msgid "Updating result_attribute for cache entry %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:51
+#: ../pykolab/auth/ldap/__init__.py:52
 msgid "Python LDAP library does not support persistent search"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:142
+#: ../pykolab/auth/ldap/__init__.py:143
 #, python-format
 msgid "Attempting to authenticate user %s in realm %s"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:184
+#: ../pykolab/auth/ldap/__init__.py:175 ../pykolab/auth/ldap/__init__.py:226
+#, python-format
+msgid "Authentication cache failed: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:216 ../pykolab/auth/ldap/__init__.py:240
 #, python-format
 msgid "Binding with user_dn %s and password %s"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:194
+#: ../pykolab/auth/ldap/__init__.py:231 ../pykolab/auth/ldap/__init__.py:263
 #, python-format
 msgid "Failed to authenticate as user %s"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:211
-msgid "Connecting to LDAP..."
+#: ../pykolab/auth/ldap/__init__.py:249
+#, python-format
+msgid "Error occured, there is no such object: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:254
+msgid "Authentication cache failed to clear entry"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:215
+#: ../pykolab/auth/ldap/__init__.py:260
+#, python-format
+msgid "Exception occured: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:280
+msgid "Connecting to LDAP..."
+msgstr "Zum LDAP verbinden…"
+
+#: ../pykolab/auth/ldap/__init__.py:284
 #, python-format
 msgid "Attempting to use LDAP URI %s"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:363
+#: ../pykolab/auth/ldap/__init__.py:371
+#, python-format
+msgid "Entry ID: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:373
+#, python-format
+msgid "Entry DN: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:376
+#, python-format
+msgid ""
+"ldap search: (%r, %r, filterstr='(objectclass=*)', attrlist=[ 'dn' ] + %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:453
 #, python-format
 msgid "Finding recipient with filter %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:431
+#: ../pykolab/auth/ldap/__init__.py:529
 #, python-format
 msgid "Finding resource with filter %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:454
+#: ../pykolab/auth/ldap/__init__.py:560
 #, python-format
 msgid "Using timestamp %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:486
+#: ../pykolab/auth/ldap/__init__.py:595
+msgid "Applying recipient policy disabled through configuration"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:600
 #, python-format
 msgid "Applying recipient policy to %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:503
+#: ../pykolab/auth/ldap/__init__.py:617
 #, python-format
 msgid "Using mail attributes: %r, with primary %r and "
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:514
+#: ../pykolab/auth/ldap/__init__.py:628
 #, python-format
 msgid "key %r not in entry"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:516
+#: ../pykolab/auth/ldap/__init__.py:630
 #, python-format
 msgid "key %r is the prim. mail attr."
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:518
+#: ../pykolab/auth/ldap/__init__.py:632
 msgid "prim. mail pol. is not empty"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:521
+#: ../pykolab/auth/ldap/__init__.py:635
 #, python-format
 msgid "key %r is the sec. mail attr."
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:523
+#: ../pykolab/auth/ldap/__init__.py:637
 msgid "sec. mail pol. is not empty"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:527 ../pykolab/auth/ldap/__init__.py:541
+#: ../pykolab/auth/ldap/__init__.py:641 ../pykolab/auth/ldap/__init__.py:655
 #, python-format
 msgid "Attributes %r are not yet available for entry %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:577
+#: ../pykolab/auth/ldap/__init__.py:694
 #, python-format
 msgid "No results for mail address %s found"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:588
+#: ../pykolab/auth/ldap/__init__.py:705
 #, python-format
 msgid "1 result for address %s found, verifying"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:598
+#: ../pykolab/auth/ldap/__init__.py:715
 #, python-format
 msgid "Too bad, primary email address %s "
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:609 ../pykolab/auth/ldap/__init__.py:698
+#: ../pykolab/auth/ldap/__init__.py:726 ../pykolab/auth/ldap/__init__.py:815
 msgid "Address assigned to us"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:664
+#: ../pykolab/auth/ldap/__init__.py:781
 #, python-format
 msgid "No results for address %s found"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:675
+#: ../pykolab/auth/ldap/__init__.py:792
 #, python-format
 msgid "1 result for address %s found, "
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:686
+#: ../pykolab/auth/ldap/__init__.py:803
 msgid "Too bad, secondary email "
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:713
+#: ../pykolab/auth/ldap/__init__.py:830
 msgid "Recipient policy composed the following set of secondary "
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:724
+#: ../pykolab/auth/ldap/__init__.py:841
 #, python-format
 msgid "Secondary mail addresses that we want is not None: %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:735
+#: ../pykolab/auth/ldap/__init__.py:852
 msgid "Avoiding the duplication of the primary mail "
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:746
+#: ../pykolab/auth/ldap/__init__.py:863
 #, python-format
 msgid "Entry is getting secondary mail addresses: %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:754
+#: ../pykolab/auth/ldap/__init__.py:871
 msgid "Entry did not have any secondary mail "
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:780
+#: ../pykolab/auth/ldap/__init__.py:888 ../pykolab/auth/ldap/__init__.py:894
+#, python-format
+msgid "secondary_mail_addresses: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:889 ../pykolab/auth/ldap/__init__.py:895
+#, python-format
+msgid "entry[%s]: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:906
 #, python-format
 msgid "Entry modifications list: %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:800
+#: ../pykolab/auth/ldap/__init__.py:934
 #, python-format
 msgid "Setting entry attribute %r to %r for %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:836
+#: ../pykolab/auth/ldap/__init__.py:970
 #, python-format
-msgid "Could not update dn %r"
+msgid ""
+"Could not update dn %r:\n"
+"%r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:849
+#: ../pykolab/auth/ldap/__init__.py:983
 #, python-format
 msgid "Using filter %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:887
+#: ../pykolab/auth/ldap/__init__.py:998
+#, python-format
+msgid "Synchronization is searching against base DN: %s"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:1044
 #, python-format
 msgid "About to consider the user quota for %r (used: %r, "
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:953
-#, fuzzy
-msgid "Invalid bind credentials"
-msgstr "Ungültiger Empfänger"
+#: ../pykolab/auth/ldap/__init__.py:1115
+msgid "Invalid DN, username and/or password."
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:1236 ../pykolab/auth/ldap/__init__.py:1249
+#: ../pykolab/auth/ldap/__init__.py:1614 ../pykolab/auth/ldap/__init__.py:1627
+#, python-format
+msgid "Found a subject %r with access %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:1356
+#, python-format
+msgid "Entry %s attribute value: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:1364
+#, python-format
+msgid "imap.user_mailbox_server(%r) result: %r"
+msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1248 ../pykolab/auth/ldap/__init__.py:1372
+#: ../pykolab/auth/ldap/__init__.py:1684 ../pykolab/auth/ldap/__init__.py:1853
 #, python-format
 msgid "Result from recipient policy: %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1417
+#: ../pykolab/auth/ldap/__init__.py:1908
 #, python-format
 msgid "Kolab user %s does not have a result attribute %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1559
+#: ../pykolab/auth/ldap/__init__.py:2067
 #, python-format
 msgid "Finding domain root dn for domain %s"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1647
+#: ../pykolab/auth/ldap/__init__.py:2164
 msgid "Authentication database DOWN"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1731 ../pykolab/auth/ldap/__init__.py:1766
+#: ../pykolab/auth/ldap/__init__.py:2248 ../pykolab/auth/ldap/__init__.py:2296
 #, python-format
 msgid "Entry type: %s"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1854
+#: ../pykolab/auth/ldap/__init__.py:2321
+#, python-format
+msgid "Done with _synchronize_callback() for entry %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/__init__.py:2393
 msgid "LDAP Search Result Data Entry:"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1870
+#: ../pykolab/auth/ldap/__init__.py:2409
 msgid "Entry Change Notification attributes:"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1875
+#: ../pykolab/auth/ldap/__init__.py:2414
 #, python-format
 msgid "Change Type: %r (%r)"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1883
+#: ../pykolab/auth/ldap/__init__.py:2422
 #, python-format
 msgid "Previous DN: %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1938
+#: ../pykolab/auth/ldap/__init__.py:2477
 #, python-format
 msgid "Object %s searched no longer exists"
-msgstr ""
+msgstr "Das gesuchte Objekt %s existiert nicht mehr"
 
-#: ../pykolab/auth/ldap/__init__.py:1948
+#: ../pykolab/auth/ldap/__init__.py:2487
 #, python-format
 msgid "%d results..."
-msgstr ""
+msgstr "%d Ergebnisse…"
 
-#: ../pykolab/auth/ldap/__init__.py:2051
+#: ../pykolab/auth/ldap/__init__.py:2590
 #, python-format
 msgid "Searching with filter %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2095
+#: ../pykolab/auth/ldap/__init__.py:2642
 #, python-format
 msgid "Checking for support for %s on %s"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2114
+#: ../pykolab/auth/ldap/__init__.py:2661
 #, python-format
 msgid "Found support for %s"
 msgstr ""
 
-#: ../pykolab/cli/cmd_add_domain.py:36 ../pykolab/cli/cmd_create_mailbox.py:36
+#: ../pykolab/auth/ldap/__init__.py:2706
+#, python-format
+msgid "An error occured using %s: %r"
+msgstr ""
+
+#: ../pykolab/auth/ldap/syncrepl.py:46
+msgid "The name of the persistent, unique attribute "
+msgstr ""
+
+#: ../pykolab/cli/cmd_acl_cleanup.py:34
+msgid "Clean up ACLs that use identifiers that no longer exist"
+msgstr ""
+
+#: ../pykolab/cli/cmd_acl_cleanup.py:56
+#, python-format
+msgid "Deleting ACL %s for subject %s on folder %s"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_alias.py:42
+msgid "Specify the (new) alias address"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_alias.py:45
+msgid "Specify the existing recipient address"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_alias.py:66 ../pykolab/cli/cmd_add_alias.py:70
+#, python-format
+msgid "Domain %r is not a local domain"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_alias.py:75
+msgid "Primary and secondary domain do not have the same parent domain"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_alias.py:81
+#, python-format
+msgid "No such recipient %r"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_alias.py:87
+#, python-format
+msgid "Recipient for alias %r already exists"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_alias.py:97
+msgid "Environment is not configured for "
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_alias.py:105
+#, python-format
+msgid "Recipient %r is not the primary recipient for address %r"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_domain.py:36
+#: ../pykolab/cli/cmd_count_domain_mailboxes.py:38
+#: ../pykolab/cli/cmd_create_mailbox.py:36
 #: ../pykolab/cli/cmd_export_mailbox.py:33
-#: ../pykolab/cli/cmd_list_mailboxes.py:39
+#: ../pykolab/cli/cmd_list_deleted_mailboxes.py:38
+#: ../pykolab/cli/cmd_list_domain_mailboxes.py:36
+#: ../pykolab/cli/cmd_list_mailboxes.py:40
 #: ../pykolab/cli/cmd_list_mailbox_metadata.py:37
-#: ../pykolab/cli/cmd_set_mailbox_metadata.py:37
+#: ../pykolab/cli/cmd_list_messages.py:37 ../pykolab/cli/cmd_list_quota.py:36
+#: ../pykolab/cli/cmd_list_user_subscriptions.py:36
+#: ../pykolab/cli/cmd_server_info.py:34
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:38
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:39
+#: ../pykolab/cli/cmd_undelete_mailbox.py:34
 msgid "CLI Options"
-msgstr ""
+msgstr "Kommandozeilenoptionen"
 
 #: ../pykolab/cli/cmd_add_domain.py:42
-msgid "Add domain as alias for DOMAIN"
+msgid "Add alias domain."
 msgstr ""
 
 #: ../pykolab/cli/cmd_add_domain.py:47
-msgid "Add a new domain or domain alias."
+msgid "Add a new domain."
 msgstr ""
 
-#: ../pykolab/cli/cmd_add_domain.py:55
+#: ../pykolab/cli/cmd_add_domain.py:55 ../pykolab/cli/cmd_delete_domain.py:44
+#: ../pykolab/cli/cmd_find_domain.py:44
 msgid "Could not find credentials with sufficient permissions"
 msgstr ""
 
-#: ../pykolab/cli/cmd_add_domain.py:80 ../pykolab/wap_client/__init__.py:113
-msgid "Invalid parent domain"
+#: ../pykolab/cli/cmd_add_domain.py:67 ../pykolab/cli/cmd_delete_domain.py:56
+#: ../pykolab/cli/cmd_find_domain.py:56
+msgid "Domain name"
 msgstr ""
 
-#: ../pykolab/cli/cmd_add_domain.py:86
-msgid "Domain name"
+#: ../pykolab/cli/cmd_add_user_subscription.py:37
+msgid "Subscribe a user to a folder."
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_user_subscription.py:47
+#: ../pykolab/cli/cmd_add_user_subscription.py:51
+#: ../pykolab/cli/cmd_remove_user_subscription.py:47
+#: ../pykolab/cli/cmd_remove_user_subscription.py:51
+msgid "Folder pattern"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_user_subscription.py:50
+#: ../pykolab/cli/cmd_list_user_subscriptions.py:63
+#: ../pykolab/cli/cmd_remove_user_subscription.py:50
+msgid "User ID"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_user_subscription.py:72
+#: ../pykolab/cli/cmd_remove_user_subscription.py:72
+#, python-format
+msgid "Cannot subscribe user to folder %r:"
+msgstr ""
+
+#: ../pykolab/cli/cmd_add_user_subscription.py:73
+#: ../pykolab/cli/cmd_delete_message.py:61
+#: ../pykolab/cli/cmd_list_messages.py:67
+#: ../pykolab/cli/cmd_remove_user_subscription.py:73
+msgid "No such folder"
+msgstr ""
+
+#: ../pykolab/cli/cmd_count_domain_mailboxes.py:44
+#: ../pykolab/cli/cmd_list_deleted_mailboxes.py:50
+#: ../pykolab/cli/cmd_list_domain_mailboxes.py:48
+#: ../pykolab/cli/cmd_list_mailboxes.py:52 ../pykolab/cli/cmd_list_quota.py:42
+#: ../pykolab/cli/cmd_server_info.py:40
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:57
+msgid "List mailboxes on server SERVER only."
 msgstr ""
 
 #: ../pykolab/cli/cmd_create_mailbox.py:42
 msgid "Set metadata for folder to ANNOTATION=VALUE"
 msgstr ""
 
-#: ../pykolab/cli/cmd_create_mailbox.py:52
-msgid "Invalid argument"
+#: ../pykolab/cli/cmd_create_mailbox.py:50
+msgid "Create folder on PARTITION."
 msgstr ""
 
 #: ../pykolab/cli/cmd_create_mailbox.py:60
+msgid "Invalid argument"
+msgstr ""
+
+#: ../pykolab/cli/cmd_create_mailbox.py:68
 msgid "Invalid argument for metadata"
 msgstr ""
 
+#: ../pykolab/cli/cmd_delete_domain.py:36
+msgid "Delete a domain."
+msgstr ""
+
 #: ../pykolab/cli/cmd_delete_mailbox_acl.py:45
 #: ../pykolab/cli/cmd_delete_mailbox_acl.py:49
 #: ../pykolab/cli/cmd_set_mailbox_acl.py:50
@@ -684,15 +919,20 @@ msgstr ""
 #: ../pykolab/cli/cmd_list_mailbox_acls.py:43
 #: ../pykolab/cli/cmd_list_mailbox_metadata.py:54
 #: ../pykolab/cli/cmd_set_mailbox_acl.py:54
-#: ../pykolab/cli/cmd_set_mailbox_metadata.py:65
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:66
+#: ../pykolab/cli/cmd_set_quota.py:46 ../tests/unit/test-015-translate.py:12
+#: ../tests/unit/test-015-translate.py:16
+#: ../tests/unit/test-015-translate.py:18
+#: ../tests/unit/test-015-translate.py:20
 msgid "Folder name"
-msgstr "Ordnername"
+msgstr ""
 
 #: ../pykolab/cli/cmd_delete_mailbox_acl.py:60
 #: ../pykolab/cli/cmd_list_mailbox_acls.py:54
 #: ../pykolab/cli/cmd_list_mailbox_metadata.py:80
 #: ../pykolab/cli/cmd_set_mailbox_acl.py:67
-#: ../pykolab/cli/cmd_set_mailbox_metadata.py:93
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:94
+#: ../pykolab/cli/cmd_set_quota.py:58
 #, python-format
 msgid "No such folder %r"
 msgstr ""
@@ -701,6 +941,23 @@ msgstr ""
 msgid "No mailbox specified"
 msgstr ""
 
+#: ../pykolab/cli/cmd_delete_mailbox.py:56
+msgid "No such folder(s)"
+msgstr ""
+
+#: ../pykolab/cli/cmd_delete_message.py:36
+msgid "Delete a message from a folder"
+msgstr ""
+
+#: ../pykolab/cli/cmd_delete_message.py:49
+msgid "Specify a UID"
+msgstr ""
+
+#: ../pykolab/cli/cmd_delete_message.py:52
+#: ../pykolab/cli/cmd_list_messages.py:58
+msgid "Specify a folder"
+msgstr ""
+
 #: ../pykolab/cli/cmd_export_mailbox.py:38
 msgid "All folders this user has access to"
 msgstr ""
@@ -720,11 +977,22 @@ msgstr ""
 msgid "No directories found for user %s"
 msgstr ""
 
-#: ../pykolab/cli/cmd_list_mailboxes.py:44
+#: ../pykolab/cli/cmd_find_domain.py:36
+msgid "Find a domain."
+msgstr ""
+
+#: ../pykolab/cli/cmd_list_deleted_mailboxes.py:43
+#: ../pykolab/cli/cmd_list_domain_mailboxes.py:41
+#: ../pykolab/cli/cmd_list_mailboxes.py:45
+#: ../pykolab/cli/cmd_list_user_subscriptions.py:41
 msgid "Display raw IMAP UTF-7 folder names"
 msgstr ""
 
-#: ../pykolab/cli/cmd_list_mailboxes.py:75
+#: ../pykolab/cli/cmd_list_domain_mailboxes.py:58
+msgid "Domain"
+msgstr "Domäne"
+
+#: ../pykolab/cli/cmd_list_mailboxes.py:87
 #, python-format
 msgid "Appending folder search for %r"
 msgstr ""
@@ -733,11 +1001,41 @@ msgstr ""
 msgid "List annotations as user USER"
 msgstr ""
 
-#: ../pykolab/cli/cmd_list_quota.py:59 ../pykolab/cli/cmd_list_quota.py:71
+#: ../pykolab/cli/cmd_list_messages.py:43
+msgid "Include messages flagged as \\Deleted"
+msgstr ""
+
+#: ../pykolab/cli/cmd_list_messages.py:47
+msgid "List messages in a folder"
+msgstr ""
+
+#: ../pykolab/cli/cmd_list_quota.py:73 ../pykolab/cli/cmd_list_quota.py:89
 #, python-format
 msgid "The quota for folder %s is set to literally allow 0KB of storage."
 msgstr ""
 
+#: ../pykolab/cli/cmd_list_user_subscriptions.py:47
+msgid "List unsubscribed folders"
+msgstr ""
+
+#: ../pykolab/cli/cmd_list_user_subscriptions.py:50
+msgid "List the folders a user is subscribed to."
+msgstr ""
+
+#: ../pykolab/cli/cmd_list_user_subscriptions.py:98
+#, python-format
+msgid "No unsubscribed folders for user %s"
+msgstr ""
+
+#: ../pykolab/cli/cmd_mailbox_cleanup.py:37
+msgid "Clean up mailboxes that do no longer have an owner."
+msgstr ""
+
+#: ../pykolab/cli/cmd_mailbox_cleanup.py:61
+#, python-format
+msgid "Deleting folder 'user/%s'"
+msgstr ""
+
 #: ../pykolab/cli/cmd_remove_mailaddress.py:49
 msgid "Invalid or unqualified email address."
 msgstr ""
@@ -761,20 +1059,34 @@ msgstr ""
 msgid "Found the following recipients:"
 msgstr ""
 
-#: ../pykolab/cli/cmd_rename_mailbox.py:48
+#: ../pykolab/cli/cmd_remove_user_subscription.py:37
+msgid "Unsubscribe a user from a folder."
+msgstr ""
+
+#: ../pykolab/cli/cmd_remove_user_subscription.py:86
+#, python-format
+msgid "Successfully unsubscribed user %s from the following folders:"
+msgstr ""
+
+#: ../pykolab/cli/cmd_remove_user_subscription.py:92
+#, python-format
+msgid "User %s was not unsubscribed from any folders."
+msgstr ""
+
+#: ../pykolab/cli/cmd_rename_mailbox.py:52
 msgid "No target mailbox name specified"
 msgstr ""
 
-#: ../pykolab/cli/cmd_rename_mailbox.py:50
+#: ../pykolab/cli/cmd_rename_mailbox.py:54
 msgid "No source mailbox name specified"
 msgstr ""
 
-#: ../pykolab/cli/cmd_rename_mailbox.py:62
+#: ../pykolab/cli/cmd_rename_mailbox.py:66
 #, python-format
 msgid "Source folder %r does not exist"
 msgstr ""
 
-#: ../pykolab/cli/cmd_rename_mailbox.py:66
+#: ../pykolab/cli/cmd_rename_mailbox.py:70
 #, python-format
 msgid "Target folder %r already exists"
 msgstr ""
@@ -785,21 +1097,75 @@ msgstr ""
 msgid "ACI Permissions"
 msgstr ""
 
-#: ../pykolab/cli/cmd_set_mailbox_metadata.py:44
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:45
 msgid "Set annotation as user USER"
 msgstr ""
 
-#: ../pykolab/cli/cmd_set_mailbox_metadata.py:58
-#: ../pykolab/cli/cmd_set_mailbox_metadata.py:62
-#: ../pykolab/cli/cmd_set_mailbox_metadata.py:67
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:59
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:63
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:68
 msgid "Metadata value"
 msgstr ""
 
-#: ../pykolab/cli/cmd_set_mailbox_metadata.py:61
-#: ../pykolab/cli/cmd_set_mailbox_metadata.py:66
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:62
+#: ../pykolab/cli/cmd_set_mailbox_metadata.py:67
 msgid "Metadata path"
 msgstr ""
 
+#: ../pykolab/cli/cmd_set_quota.py:43 ../pykolab/cli/cmd_set_quota.py:47
+msgid "New quota"
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:44
+msgid "Delete mailboxes for recipients that do not appear to exist in LDAP."
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:50
+msgid "Display changes, do not apply them."
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:88
+#, python-format
+msgid "Domains in IMAP not in LDAP: %r"
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:101
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:142
+#, python-format
+msgid ""
+"No recipients for '%s' (would have deleted the mailbox if not for --dry-"
+"run)!"
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:106
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:147
+#, python-format
+msgid "Deleting mailbox '%s' because it has no recipients"
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:110
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:151
+#, python-format
+msgid "An error occurred removing mailbox %r: %r"
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:112
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:153
+#, python-format
+msgid "Not automatically deleting shared folder '%s'"
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:114
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:155
+#, python-format
+msgid "No recipients for '%s' (use --delete to delete)!"
+msgstr ""
+
+#: ../pykolab/cli/cmd_sync_mailhost_attrs.py:136
+#, python-format
+msgid "Multiple recipients for '%s'!"
+msgstr ""
+
 #: ../pykolab/cli/cmd_sync.py:41
 #, python-format
 msgid "Found %d domains in %d seconds"
@@ -810,37 +1176,126 @@ msgstr ""
 msgid "Running for domain %s"
 msgstr ""
 
-#: ../pykolab/cli/cmd_sync.py:57
+#: ../pykolab/cli/cmd_sync.py:58
 #, python-format
 msgid "Synchronizing users for %s took %d seconds"
 msgstr ""
 
+#: ../pykolab/cli/cmd_undelete_mailbox.py:39
+msgid "Do not actually execute, but state what would have been executed."
+msgstr ""
+
+#: ../pykolab/cli/cmd_undelete_mailbox.py:42
+msgid "Recover mailboxes previously deleted."
+msgstr ""
+
+#: ../pykolab/cli/cmd_user_info.py:39
+msgid "Email address"
+msgstr ""
+
 #. This is a nested command
 #. This is a nested component
-#: ../pykolab/cli/commands.py:101 ../pykolab/setup/components.py:90
+#: ../pykolab/cli/commands.py:98 ../pykolab/setup/components.py:90
 #, python-format
 msgid "Command Group: %s"
 msgstr ""
 
-#: ../pykolab/cli/commands.py:116 ../pykolab/cli/commands.py:121
+#: ../pykolab/cli/commands.py:113 ../pykolab/cli/commands.py:118
 msgid "No such command."
 msgstr ""
 
-#: ../pykolab/cli/commands.py:171 ../pykolab/setup/components.py:231
+#: ../pykolab/cli/commands.py:168 ../pykolab/setup/components.py:231
 #, python-format
 msgid "Command '%s' already registered"
 msgstr ""
 
-#: ../pykolab/cli/commands.py:196 ../pykolab/setup/components.py:257
-#: ../wallace/modules.py:348
+#: ../pykolab/cli/commands.py:193 ../pykolab/setup/components.py:257
+#: ../wallace/modules.py:369
 #, python-format
 msgid "Alias for %s"
 msgstr ""
 
-#: ../pykolab/cli/commands.py:204 ../pykolab/setup/components.py:265
+#: ../pykolab/cli/commands.py:201 ../pykolab/setup/components.py:265
 msgid "Not yet implemented"
 msgstr ""
 
+#: ../pykolab/cli/sieve/cmd_list.py:43 ../pykolab/cli/sieve/cmd_put.py:42
+#: ../pykolab/cli/sieve/cmd_refresh.py:44 ../pykolab/cli/sieve/cmd_test.py:43
+msgid "Email Address"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:99
+#: ../pykolab/plugins/sievemgmt/__init__.py:111
+#, python-format
+msgid "Found the following scripts for user %s: %s"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:100
+#: ../pykolab/plugins/sievemgmt/__init__.py:112
+#, python-format
+msgid "And the following script is active for user %s: %s"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:178
+#: ../pykolab/plugins/sievemgmt/__init__.py:190
+#, python-format
+msgid ""
+"Delivery to folder active, but no folder name attribute available for user "
+"%r"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:181
+#: ../pykolab/plugins/sievemgmt/__init__.py:193
+msgid "Delivery to folder active, but no folder name attribute configured"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:359
+#, python-format
+msgid "MANAGEMENT script for user %s contents: %r"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:364
+#: ../pykolab/plugins/sievemgmt/__init__.py:374
+#, python-format
+msgid "Uploading script MANAGEMENT failed for user %s"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:366
+#: ../pykolab/plugins/sievemgmt/__init__.py:376
+#, python-format
+msgid "Uploading script MANAGEMENT for user %s succeeded"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:377
+#: ../pykolab/plugins/sievemgmt/__init__.py:387
+#, python-format
+msgid "Including script %s in USER (for user %s)"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:386
+#: ../pykolab/plugins/sievemgmt/__init__.py:396
+#, python-format
+msgid "Uploading script USER failed for user %s"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:388
+#: ../pykolab/plugins/sievemgmt/__init__.py:398
+#, python-format
+msgid "Uploading script USER for user %s succeeded"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:416
+#: ../pykolab/plugins/sievemgmt/__init__.py:426
+#, python-format
+msgid "Uploading script MASTER failed for user %s"
+msgstr ""
+
+#: ../pykolab/cli/sieve/cmd_refresh.py:418
+#: ../pykolab/plugins/sievemgmt/__init__.py:428
+#, python-format
+msgid "Uploading script MASTER for user %s succeeded"
+msgstr ""
+
 #: ../pykolab/cli/telemetry/cmd_examine_command_issue.py:40
 msgid "Unspecified command issue identifier"
 msgstr ""
@@ -986,357 +1441,429 @@ msgstr ""
 msgid "No command supplied"
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:411
+#: ../pykolab/conf/__init__.py:416
 msgid "Insufficient options. Need section, key and value -in that order."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:414
+#: ../pykolab/conf/__init__.py:419
 #, python-format
 msgid "No section '%s' exists."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:445
+#: ../pykolab/conf/__init__.py:461
 #, python-format
 msgid "Setting %s to %r (from the default values for CLI options)"
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:514
+#: ../pykolab/conf/__init__.py:534
 #, python-format
 msgid "Could not execute configuration function: %s"
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:522
+#: ../pykolab/conf/__init__.py:542
 #, python-format
 msgid "Option %s/%s does not exist in config file %s, pulling from defaults"
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:530 ../pykolab/conf/__init__.py:533
+#: ../pykolab/conf/__init__.py:550 ../pykolab/conf/__init__.py:553
 msgid "Option does not exist in defaults."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:543
+#: ../pykolab/conf/__init__.py:563
 #, python-format
 msgid "Configuration file %s not readable."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:546
+#: ../pykolab/conf/__init__.py:566
 #, python-format
 msgid "Configuration file %s does not exist."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:551
+#: ../pykolab/conf/__init__.py:571
 msgid ""
-"WARNING: A negative debug level value does not make this program be any more "
-"silent."
+"WARNING: A negative debug level value does not make this program be any more"
+" silent."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:557
+#: ../pykolab/conf/__init__.py:577
 msgid "This program has 9 levels of verbosity. Using the maximum of 9."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:565 ../pykolab/conf/__init__.py:571
+#: ../pykolab/conf/__init__.py:585 ../pykolab/conf/__init__.py:591
 msgid "Cannot start SASL authentication daemon"
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:582
+#: ../pykolab/conf/__init__.py:602
 msgid "No imaplib library found."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:592
+#: ../pykolab/conf/__init__.py:612
 msgid "No LMTP class found in the smtplib library."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:602
+#: ../pykolab/conf/__init__.py:622
 msgid "No SMTP class found in the smtplib library."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:616
+#: ../pykolab/conf/__init__.py:636
 #, python-format
 msgid "Found you specified a specific set of items to test: %s"
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:624
+#: ../pykolab/conf/__init__.py:644
 #, python-format
 msgid "Selectively selecting: %s"
 msgstr ""
 
 #: ../pykolab/constants.py.in:40
-msgid "PyKolab is a Kolab Systems product. For more information "
+msgid ""
+"PyKolab is a Kolab Systems product. For more information about Kolab or "
+"PyKolab, visit http://www.kolabsys.com"
 msgstr ""
 
-#: ../pykolab/constants.py.in:54
+#: ../pykolab/constants.py.in:53
 msgid "WARNING"
 msgstr ""
 
-#: ../pykolab/constants.py.in:54
-msgid "The Fully Qualified "
+#: ../pykolab/constants.py.in:53
+msgid ""
+"The Fully Qualified Domain Name or FQDN for this system is incorrect. "
+"Falling back to 'localdomain'."
 msgstr ""
 
-#: ../pykolab/constants.py.in:75
+#: ../pykolab/constants.py.in:72
 msgid "389 Directory Server or Red Hat Directory Server"
 msgstr ""
 
-#: ../pykolab/constants.py.in:79 ../pykolab/constants.py.in:83
+#: ../pykolab/constants.py.in:76 ../pykolab/constants.py.in:80
 msgid "OpenLDAP or compatible"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:79
+#: ../pykolab/imap/cyrus.py:80
 #, python-format
 msgid "Could not connect to Cyrus IMAP server %r"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:136
+#: ../pykolab/imap/cyrus.py:137
 #, python-format
 msgid "Continuing with separator: %r"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:141
+#: ../pykolab/imap/cyrus.py:142
 msgid "Detected we are running in a Murder topology"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:145
+#: ../pykolab/imap/cyrus.py:146
 msgid "This system is not part of a murder topology"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:166
+#: ../pykolab/imap/cyrus.py:167
 #, python-format
 msgid "Checking actual backend server for folder %s through annotations"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:181
+#: ../pykolab/imap/cyrus.py:172
+msgid "Possibly reproducing the find "
+msgstr ""
+
+#: ../pykolab/imap/cyrus.py:195
 #, python-format
 msgid "Could not get the annotations after %s tries."
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:185
+#: ../pykolab/imap/cyrus.py:199
 #, python-format
 msgid "No annotations for %s: %r"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:192
+#: ../pykolab/imap/cyrus.py:206
 #, python-format
 msgid "Server for INBOX folder %s is %s"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:204
+#: ../pykolab/imap/cyrus.py:226
 #, python-format
 msgid "Setting quota for folder %s to %s"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:208
+#: ../pykolab/imap/cyrus.py:230
 #, python-format
 msgid "Could not set quota for mailfolder %s"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:217
+#: ../pykolab/imap/cyrus.py:239
 #, python-format
 msgid "Moving INBOX folder %s to %s"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:232
+#: ../pykolab/imap/cyrus.py:254
 #, python-format
 msgid "Setting annotation %s on folder %s"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:237
+#: ../pykolab/imap/cyrus.py:259
 #, python-format
 msgid "Could not set annotation %r on mail folder %r: %r"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:241
+#: ../pykolab/imap/cyrus.py:263
 #, python-format
 msgid "Transferring folder %s from %s to %s"
 msgstr ""
 
-#: ../pykolab/imap/cyrus.py:301
+#: ../pykolab/imap/cyrus.py:323
 #, python-format
 msgid "Undeleting %s to %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:45
+#: ../pykolab/imap/cyrus.py:334
+#, python-format
+msgid "Would have transfered %s from %s to %s"
+msgstr ""
+
+#: ../pykolab/imap/cyrus.py:336
+#, python-format
+msgid "Would have renamed %s to %s"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:46
 #, python-format
 msgid "Cleaning up ACL entries for %s across all folders"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:60
+#: ../pykolab/imap/__init__.py:61
 #, python-format
 msgid "Cleaning up ACL entries referring to identifier %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:69
+#: ../pykolab/imap/__init__.py:70
 #, python-format
 msgid "Iterating over %d folders"
 msgstr ""
 
 #. Set the ACL to '' (effectively deleting the ACL entry)
-#: ../pykolab/imap/__init__.py:82
+#: ../pykolab/imap/__init__.py:83
 #, python-format
 msgid "Removing acl %r for subject %r from folder %r"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:143
+#: ../pykolab/imap/__init__.py:145
+msgid "No administrator password is available."
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:153
 #, python-format
 msgid "Logging on to Cyrus IMAP server %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:152
+#: ../pykolab/imap/__init__.py:162
 #, python-format
 msgid "Logging on to Dovecot IMAP server %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:161
+#: ../pykolab/imap/__init__.py:171
 #, python-format
 msgid "Logging on to generic IMAP server %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:179
+#: ../pykolab/imap/__init__.py:189
 #, python-format
 msgid "Reusing existing IMAP server connection to %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:181
+#: ../pykolab/imap/__init__.py:191
 #, python-format
 msgid "Reconnecting to IMAP server %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:197
+#: ../pykolab/imap/__init__.py:208
 msgid "Called imap.disconnect() on a server that we had no connection to."
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:212
+#: ../pykolab/imap/__init__.py:222 ../pykolab/imap/__init__.py:234
 #, python-format
-msgid "%r has no attribute %s"
+msgid "Could not create folder %r"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:223
+#, python-format
+msgid " on server %r"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:279
-msgid "Private annotations need to be set using the appropriate user account."
+#: ../pykolab/imap/__init__.py:244 ../pykolab/imap/__init__.py:246
+#, python-format
+msgid "%r has no attribute %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:294 ../pykolab/imap/__init__.py:329
+#: ../pykolab/imap/__init__.py:393 ../pykolab/imap/__init__.py:428
 #, python-format
 msgid "Creating new shared folder %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:354 ../pykolab/imap/__init__.py:504
+#: ../pykolab/imap/__init__.py:453 ../pykolab/imap/__init__.py:675
 #, python-format
 msgid "Downcasing mailbox name %r"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:358
+#: ../pykolab/imap/__init__.py:457
 #, python-format
 msgid "Creating new mailbox for user %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:387
+#: ../pykolab/imap/__init__.py:470
+msgid "Waiting for the Cyrus IMAP Murder to settle..."
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:516
 #, python-format
 msgid "Creating additional folders for user %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:407
+#: ../pykolab/imap/__init__.py:535
+#, python-format
+msgid "Waiting for the Cyrus murder to settle... %r"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:547
+#, python-format
+msgid "Correcting additional folder name from %r to %r"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:553
 #, python-format
 msgid "Mailbox already exists: %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:443
+#: ../pykolab/imap/__init__.py:593
 msgid "Subscribing user to the additional folders"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:458
+#: ../pykolab/imap/__init__.py:607
+msgid "Using the following tests for folder subscriptions:"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:609
+#, python-format
+msgid "    %r"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:612
 #, python-format
 msgid "Folder %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:470
+#: ../pykolab/imap/__init__.py:624
 #, python-format
 msgid "Subscribing %s to folder %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:520 ../pykolab/imap/__init__.py:594
+#: ../pykolab/imap/__init__.py:628
+#, python-format
+msgid "Subscribing %s to folder %s failed: %r"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:658
+#, python-format
+msgid "Could not rename %s to reside on partition %s"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:691
+#, python-format
+msgid "INBOX folder to rename (%s) does not exist"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:694 ../pykolab/imap/__init__.py:770
 #, python-format
 msgid "Renaming INBOX from %s to %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:524
+#: ../pykolab/imap/__init__.py:698
 #, python-format
 msgid "Could not rename INBOX folder %s to %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:526 ../pykolab/imap/__init__.py:598
+#: ../pykolab/imap/__init__.py:700 ../pykolab/imap/__init__.py:774
 #, python-format
-msgid "Moving INBOX folder %s won't succeed as target folder %s already exists"
+msgid ""
+"Moving INBOX folder %s won't succeed as target folder %s already exists"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:536
+#: ../pykolab/imap/__init__.py:704
+#, python-format
+msgid "Server for mailbox %r is %r"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:712
 #, python-format
 msgid "Looking for folder '%s', we found folders: %r"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:559
+#: ../pykolab/imap/__init__.py:735
 #, python-format
 msgid "Setting ACL rights %s for subject %s on folder "
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:570
+#: ../pykolab/imap/__init__.py:746
 #, python-format
 msgid "Removing ACL rights %s for subject %s on folder "
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:591
+#: ../pykolab/imap/__init__.py:767
 #, python-format
 msgid "Found old INBOX folder %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:600
+#: ../pykolab/imap/__init__.py:776
 #, python-format
 msgid "Did not find old folder user/%s to rename"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:602
+#: ../pykolab/imap/__init__.py:778
 msgid "Value for user is not a dictionary"
 msgstr ""
 
 #. TODO: Go in fact correct the quota.
-#: ../pykolab/imap/__init__.py:662
+#: ../pykolab/imap/__init__.py:846
 #, python-format
 msgid "Cannot get current IMAP quota for folder %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:675
+#: ../pykolab/imap/__init__.py:859
 #, python-format
 msgid "Quota for %s currently is %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:681
+#: ../pykolab/imap/__init__.py:865
 #, python-format
 msgid "Adjusting authentication database quota for folder %s to %d"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:686
+#: ../pykolab/imap/__init__.py:870
 #, python-format
 msgid "Correcting quota for %s to %s (currently %s)"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:763
+#: ../pykolab/imap/__init__.py:947
 #, python-format
 msgid "Checking folder: %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:768
+#: ../pykolab/imap/__init__.py:952
 #, python-format
 msgid "Folder has no corresponding user (1): %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:771
+#: ../pykolab/imap/__init__.py:955
 #, python-format
 msgid "Folder has no corresponding user (2): %s"
 msgstr ""
 
 #. We got user identifier only
-#: ../pykolab/imap/__init__.py:786
+#: ../pykolab/imap/__init__.py:970
 msgid "Please don't give us just a user identifier"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:789
+#: ../pykolab/imap/__init__.py:973
 #, python-format
 msgid "Deleting folder %s"
 msgstr ""
@@ -1345,12 +1872,50 @@ msgstr ""
 msgid "Returning thread local configuration"
 msgstr ""
 
-#: ../pykolab/logger.py:106
+#: ../pykolab/itip/__init__.py:43
+#, python-format
+msgid "Method %r not really interesting for us."
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:49
+#, python-format
+msgid "Raw iTip payload: %s"
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:59
+msgid "Could not read iTip from message."
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:67
+#, python-format
+msgid "Duplicate iTip object: %s"
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:90
+msgid "iTip event without a start"
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:132
+msgid "Message is not an iTip message (non-multipart message)"
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:225
+#, python-format
+msgid "Failed to compose iTip reply message: %r"
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:236 ../wallace/module_invitationpolicy.py:936
+#: ../wallace/module_resources.py:964
 #, python-format
-msgid "Could not change the ownership of log file %s"
+msgid "SMTP sendmail error: %r"
 msgstr ""
 
-#: ../pykolab/logger.py:122
+#: ../pykolab/logger.py:173 ../pykolab/logger.py:179
+#, python-format
+msgid "Could not change permissions on %s: %r"
+msgstr ""
+
+#: ../pykolab/logger.py:196
 #, python-format
 msgid "Cannot log to file %s: %s"
 msgstr ""
@@ -1448,27 +2013,51 @@ msgstr ""
 msgid "Attribute substitution for 'mail' failed in Recipient Policy"
 msgstr ""
 
-#: ../pykolab/plugins/recipientpolicy/__init__.py:115
+#: ../pykolab/plugins/recipientpolicy/__init__.py:116
 msgid "Could not parse the alternative mail routines"
 msgstr ""
 
-#: ../pykolab/plugins/recipientpolicy/__init__.py:119
+#: ../pykolab/plugins/recipientpolicy/__init__.py:120
 #, python-format
 msgid "Alternative mail routines: %r"
 msgstr ""
 
-#: ../pykolab/plugins/recipientpolicy/__init__.py:130
-#: ../pykolab/plugins/recipientpolicy/__init__.py:141
+#: ../pykolab/plugins/recipientpolicy/__init__.py:127
+#, python-format
+msgid ""
+"An error occurred in composing the secondary mail attribute for entry %r"
+msgstr ""
+
+#: ../pykolab/plugins/recipientpolicy/__init__.py:138
+#: ../pykolab/plugins/recipientpolicy/__init__.py:153
 #, python-format
 msgid "Appending additional mail address: %s"
 msgstr ""
 
-#: ../pykolab/plugins/recipientpolicy/__init__.py:134
-#: ../pykolab/plugins/recipientpolicy/__init__.py:145
+#: ../pykolab/plugins/recipientpolicy/__init__.py:142
+#, python-format
+msgid "Policy for secondary email address failed: %r"
+msgstr ""
+
+#: ../pykolab/plugins/recipientpolicy/__init__.py:157
 msgid ""
 "Attribute substitution for 'alternative_mail' failed in Recipient Policy"
 msgstr ""
 
+#: ../pykolab/plugins/roundcubedb/__init__.py:48
+#, python-format
+msgid "user_delete: %r"
+msgstr ""
+
+#: ../pykolab/plugins/roundcubedb/__init__.py:55
+#: ../pykolab/setup/setup_roundcube.py:160
+msgid "Roundcube installation path not found."
+msgstr ""
+
+#: ../pykolab/plugins/sievemgmt/__init__.py:51
+msgid "Wrong number of arguments for sieve management plugin"
+msgstr ""
+
 #: ../pykolab/setup/components.py:58
 msgid "Display this help."
 msgstr ""
@@ -1489,61 +2078,29 @@ msgstr ""
 msgid "Free/Busy is not installed on this system"
 msgstr ""
 
-#: ../pykolab/setup/setup_freebusy.py:55
-msgid ""
-"\n"
-"                        Please supply the MySQL password for the "
-"'roundcube'\n"
-"                        user. You have supplied this password earlier, and "
-"it is\n"
-"                        available from the database URI setting in\n"
-"                        /etc/roundcubemail/db.inc.php.\n"
-"                    "
-msgstr ""
-
-#: ../pykolab/setup/setup_freebusy.py:64
-#: ../pykolab/setup/setup_roundcube.py:56
-msgid "MySQL roundcube password"
+#: ../pykolab/setup/setup_imap.py:45
+msgid "Setup IMAP."
 msgstr ""
 
-#: ../pykolab/setup/setup_freebusy.py:92
-#: ../pykolab/setup/setup_roundcube.py:115 ../pykolab/setup/setup_zpush.py:71
-#, python-format
-msgid "Using template file %r"
+#: ../pykolab/setup/setup_imap.py:89
+msgid "Could not write out Cyrus IMAP configuration file /etc/imapd.conf"
 msgstr ""
 
-#: ../pykolab/setup/setup_freebusy.py:99
-#: ../pykolab/setup/setup_roundcube.py:122 ../pykolab/setup/setup_zpush.py:78
-#, python-format
-msgid "Successfully compiled template %r, writing out to %r"
+#: ../pykolab/setup/setup_imap.py:114
+msgid "Could not write out Cyrus IMAP configuration file /etc/cyrus.conf"
 msgstr ""
 
-#: ../pykolab/setup/setup_freebusy.py:119
-#: ../pykolab/setup/setup_roundcube.py:193
-#: ../pykolab/setup/setup_syncroton.py:66 ../pykolab/setup/setup_zpush.py:98
-msgid "Could not start the webserver server service."
+#: ../pykolab/setup/setup_imap.py:158
+msgid "Could not start the cyrus-imapd and kolab-saslauthd services."
 msgstr ""
 
-#: ../pykolab/setup/setup_freebusy.py:128 ../pykolab/setup/setup_imap.py:169
-#: ../pykolab/setup/setup_kolabd.py:81 ../pykolab/setup/setup_ldap.py:327
-#: ../pykolab/setup/setup_mta.py:378 ../pykolab/setup/setup_mysql.py:58
-#: ../pykolab/setup/setup_roundcube.py:202
-#: ../pykolab/setup/setup_syncroton.py:75 ../pykolab/setup/setup_zpush.py:107
+#: ../pykolab/setup/setup_imap.py:173 ../pykolab/setup/setup_kolabd.py:81
+#: ../pykolab/setup/setup_ldap.py:426 ../pykolab/setup/setup_mta.py:455
+#: ../pykolab/setup/setup_mysql.py:58 ../pykolab/setup/setup_roundcube.py:237
+#: ../pykolab/setup/setup_syncroton.py:102
 msgid "Could not configure to start on boot, the "
 msgstr ""
 
-#: ../pykolab/setup/setup_imap.py:45
-msgid "Setup IMAP."
-msgstr ""
-
-#: ../pykolab/setup/setup_imap.py:89 ../pykolab/setup/setup_imap.py:114
-msgid "Could not write out Cyrus IMAP configuration file /etc/imapd.conf"
-msgstr ""
-
-#: ../pykolab/setup/setup_imap.py:154
-msgid "Could not start the cyrus-imapd and kolab-saslauthd services."
-msgstr ""
-
 #: ../pykolab/setup/setup_kolabd.py:43
 msgid "Setup the Kolab daemon."
 msgstr ""
@@ -1552,8 +2109,7 @@ msgstr ""
 #, python-format
 msgid ""
 "\n"
-"                            Copying the configuration section for 'example."
-"org' over to\n"
+"                            Copying the configuration section for 'example.org' over to\n"
 "                            a section applicable to your domain '%s'.\n"
 "                        "
 msgstr ""
@@ -1574,220 +2130,250 @@ msgstr ""
 msgid "Allow anonymous binds (default: no)."
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:64
-msgid "Setup LDAP."
+#: ../pykolab/setup/setup_ldap.py:68
+msgid "Skip setting up the LDAP server."
 msgstr ""
 
 #: ../pykolab/setup/setup_ldap.py:76
+msgid "Setup configuration for OpenLDAP compatibility."
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:84
+msgid "Setup configuration for Active Directory compatibility."
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:88
+msgid "Setup LDAP."
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:97
+msgid "Skipping setup of LDAP, as specified"
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:126
+msgid ""
+"\n"
+"                        You can not configure Kolab to run against OpenLDAP\n"
+"                        and Active Directory simultaneously.\n"
+"                    "
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:139
+msgid ""
+"\n"
+"                                It seems 389 Directory Server has an existing\n"
+"                                instance configured. This setup script does not\n"
+"                                intend to destroy or overwrite your data. Please\n"
+"                                make sure /etc/dirsrv/ and /var/lib/dirsrv/ are\n"
+"                                clean so that this setup does not have to worry.\n"
+"                            "
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:154
 msgid ""
 "\n"
-"                        Please supply a password for the LDAP administrator "
-"user\n"
-"                        'admin', used to login to the graphical console of "
-"389\n"
+"                        Please supply a password for the LDAP administrator user\n"
+"                        'admin', used to login to the graphical console of 389\n"
 "                        Directory server.\n"
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:84
+#: ../pykolab/setup/setup_ldap.py:162
 msgid "Administrator password"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:91
+#: ../pykolab/setup/setup_ldap.py:169
 msgid ""
 "\n"
-"                        Please supply a password for the LDAP Directory "
-"Manager\n"
-"                        user, which is the administrator user you will be "
-"using\n"
-"                        to at least initially log in to the Web Admin, and "
-"that\n"
+"                        Please supply a password for the LDAP Directory Manager\n"
+"                        user, which is the administrator user you will be using\n"
+"                        to at least initially log in to the Web Admin, and that\n"
 "                        Kolab uses to perform administrative tasks.\n"
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:100
+#: ../pykolab/setup/setup_ldap.py:178
 msgid "Directory Manager password"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:107
+#: ../pykolab/setup/setup_ldap.py:185
 msgid ""
 "\n"
 "                        Please choose the system user and group the service\n"
 "                        should use to run under. These should be existing,\n"
-"                        unprivileged, local system POSIX accounts with no "
-"shell.\n"
+"                        unprivileged, local system POSIX accounts with no shell.\n"
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:117 ../pykolab/setup/setup_ldap.py:120
+#: ../pykolab/setup/setup_ldap.py:195 ../pykolab/setup/setup_ldap.py:198
 msgid "User"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:118 ../pykolab/setup/setup_ldap.py:121
+#: ../pykolab/setup/setup_ldap.py:196 ../pykolab/setup/setup_ldap.py:199
 msgid "Group"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:157
+#: ../pykolab/setup/setup_ldap.py:234
 msgid ""
 "\n"
-"                        This setup procedure plans to set up Kolab Groupware "
-"for\n"
-"                        the following domain name space. This domain name "
-"is\n"
+"                        This setup procedure plans to set up Kolab Groupware for\n"
+"                        the following domain name space. This domain name is\n"
 "                        obtained from the reverse DNS entry on your network\n"
-"                        interface. Please confirm this is the appropriate "
-"domain\n"
+"                        interface. Please confirm this is the appropriate domain\n"
 "                        name space.\n"
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:171
+#: ../pykolab/setup/setup_ldap.py:248
 msgid "Domain name to use"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:176 ../pykolab/setup/setup_ldap.py:201
+#: ../pykolab/setup/setup_ldap.py:253 ../pykolab/setup/setup_ldap.py:278
 msgid ""
 "\n"
 "                                    Invalid input. Please try again.\n"
 "                                "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:185
+#: ../pykolab/setup/setup_ldap.py:262
 msgid ""
 "\n"
-"                        The standard root dn we composed for you follows. "
-"Please\n"
+"                        The standard root dn we composed for you follows. Please\n"
 "                        confirm this is the root dn you wish to use.\n"
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:196
+#: ../pykolab/setup/setup_ldap.py:273
 msgid "Root DN to use"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:244
+#: ../pykolab/setup/setup_ldap.py:325
 msgid "No directory server setup tool available."
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:255
+#: ../pykolab/setup/setup_ldap.py:337
 msgid ""
 "\n"
-"                    Setup is now going to set up the 389 Directory Server. "
-"This\n"
-"                    may take a little while (during which period there is "
-"no\n"
+"                    Setup is now going to set up the 389 Directory Server. This\n"
+"                    may take a little while (during which period there is no\n"
 "                    output and no progress indication).\n"
 "                "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:262
+#: ../pykolab/setup/setup_ldap.py:344
 msgid "Setting up 389 Directory Server"
 msgstr ""
 
-#. TODO: Get the return code and display output if not successful.
-#: ../pykolab/setup/setup_ldap.py:274
+#: ../pykolab/setup/setup_ldap.py:356
+msgid ""
+"\n"
+"                        An error was detected in the setup procedure for 389\n"
+"                        Directory Server. This setup will write out stderr and\n"
+"                        stdout to /var/log/kolab/setup.error.log and\n"
+"                        /var/log/kolab/setup.out.log respectively, before it\n"
+"                        exits.\n"
+"                    "
+msgstr ""
+
+#: ../pykolab/setup/setup_ldap.py:373
 msgid "Setup DS stdout:"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:277
+#: ../pykolab/setup/setup_ldap.py:376
 msgid "Setup DS stderr:"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:303
+#: ../pykolab/setup/setup_ldap.py:402
 msgid "Could not copy the LDAP extensions for Kolab"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:306
+#: ../pykolab/setup/setup_ldap.py:405
 msgid "Could not find the ldap Kolab schema file"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:318
+#: ../pykolab/setup/setup_ldap.py:417
 msgid "Could not start the directory server service."
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:332
+#: ../pykolab/setup/setup_ldap.py:431
 msgid ""
 "\n"
 "                        Please supply a Cyrus Administrator password. This\n"
 "                        password is used by Kolab to execute administrative\n"
 "                        tasks in Cyrus IMAP. You may also need the password\n"
 "                        yourself to troubleshoot Cyrus IMAP and/or perform\n"
-"                        other administrative tasks against Cyrus IMAP "
-"directly.\n"
+"                        other administrative tasks against Cyrus IMAP directly.\n"
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:342
+#: ../pykolab/setup/setup_ldap.py:441
 msgid "Cyrus Administrator password"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:349
+#: ../pykolab/setup/setup_ldap.py:448
 msgid ""
 "\n"
-"                        Please supply a Kolab Service account password. "
-"This\n"
-"                        account is used by various services such as "
-"Postfix,\n"
-"                        and Roundcube, as anonymous binds to the LDAP "
-"server\n"
+"                        Please supply a Kolab Service account password. This\n"
+"                        account is used by various services such as Postfix,\n"
+"                        and Roundcube, as anonymous binds to the LDAP server\n"
 "                        will not be allowed.\n"
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:358
+#: ../pykolab/setup/setup_ldap.py:457
 msgid "Kolab Service password"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:368
+#: ../pykolab/setup/setup_ldap.py:467
 msgid "Writing out configuration to kolab.conf"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:382
+#: ../pykolab/setup/setup_ldap.py:481
 msgid "Inserting service users into LDAP."
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:456
+#: ../pykolab/setup/setup_ldap.py:555
 msgid "Writing out cn=kolab,cn=config"
 msgstr ""
 
 #. TODO: Add kolab-admin role
 #. TODO: Assign kolab-admin admin ACLs
-#: ../pykolab/setup/setup_ldap.py:480
+#: ../pykolab/setup/setup_ldap.py:579
 #, python-format
 msgid "Adding domain %s to list of domains for this deployment"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:497
+#: ../pykolab/setup/setup_ldap.py:607
 msgid "Disabling anonymous binds"
 msgstr ""
 
 #. TODO: Ensure the uid attribute is unique
-#. TODO^2: Consider renaming the general "attribute uniqueness to "uid attribute uniqueness"
-#: ../pykolab/setup/setup_ldap.py:505
+#. TODO^2: Consider renaming the general "attribute uniqueness to "uid
+#. attribute uniqueness"
+#: ../pykolab/setup/setup_ldap.py:615
 msgid "Enabling attribute uniqueness plugin"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:511
+#: ../pykolab/setup/setup_ldap.py:621
 msgid "Enabling referential integrity plugin"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:517
+#: ../pykolab/setup/setup_ldap.py:627
 msgid "Enabling and configuring account policy plugin"
 msgstr ""
 
 #. TODO: Add kolab-admin role
-#: ../pykolab/setup/setup_ldap.py:532
+#: ../pykolab/setup/setup_ldap.py:642
 msgid "Adding the kolab-admin role"
 msgstr ""
 
 #. TODO: User writeable attributes on root_dn
-#: ../pykolab/setup/setup_ldap.py:543
+#: ../pykolab/setup/setup_ldap.py:653
 #, python-format
 msgid "Setting access control to %s"
 msgstr ""
 
-#: ../pykolab/setup/setup_ldap.py:568
+#: ../pykolab/setup/setup_ldap.py:679
 msgid "Could not start and configure to start on boot, the "
 msgstr ""
 
@@ -1795,24 +2381,24 @@ msgstr ""
 msgid "Setup MTA."
 msgstr ""
 
-#: ../pykolab/setup/setup_mta.py:245 ../pykolab/setup/setup_php.py:104
+#: ../pykolab/setup/setup_mta.py:317 ../pykolab/setup/setup_php.py:106
 #, python-format
 msgid "Setting key %r to %r"
 msgstr ""
 
-#: ../pykolab/setup/setup_mta.py:278
+#: ../pykolab/setup/setup_mta.py:350
 msgid "Could not write out Postfix configuration file /etc/postfix/master.cf"
 msgstr ""
 
-#: ../pykolab/setup/setup_mta.py:321
-msgid "Could not write out Amavis configuration file /etc/amavisd/amavisd.conf"
+#: ../pykolab/setup/setup_mta.py:397
+msgid "Could not write out Amavis configuration file amavisd.conf"
 msgstr ""
 
-#: ../pykolab/setup/setup_mta.py:329
+#: ../pykolab/setup/setup_mta.py:405
 msgid "Not writing out any configuration for Amavis."
 msgstr ""
 
-#: ../pykolab/setup/setup_mta.py:360
+#: ../pykolab/setup/setup_mta.py:437
 msgid "Could not start the postfix, clamav and amavisd services services."
 msgstr ""
 
@@ -1824,55 +2410,50 @@ msgstr ""
 msgid "Could not start the MySQL database service."
 msgstr ""
 
-#: ../pykolab/setup/setup_mysql.py:68
+#: ../pykolab/setup/setup_mysql.py:71
 msgid "What MySQL server are we setting up?"
 msgstr ""
 
-#: ../pykolab/setup/setup_mysql.py:72
+#: ../pykolab/setup/setup_mysql.py:75
 msgid ""
 "\n"
-"                        Please supply the root password for MySQL, so we can "
-"set\n"
-"                        up user accounts for other components that use "
-"MySQL.\n"
+"                        Please supply the root password for MySQL, so we can set\n"
+"                        up user accounts for other components that use MySQL.\n"
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_mysql.py:79 ../pykolab/setup/setup_mysql.py:96
+#: ../pykolab/setup/setup_mysql.py:82 ../pykolab/setup/setup_mysql.py:99
+#: ../pykolab/setup/setup_roundcube.py:183
+#: ../pykolab/setup/setup_syncroton.py:63
 msgid "MySQL root password"
 msgstr ""
 
-#: ../pykolab/setup/setup_mysql.py:85
+#: ../pykolab/setup/setup_mysql.py:88
 msgid ""
 "\n"
-"                        Please supply a root password for MySQL. This "
-"password\n"
-"                        will be the administrative user for this MySQL "
-"server,\n"
-"                        and it should be kept a secret. After this setup "
-"process\n"
+"                        Please supply a root password for MySQL. This password\n"
+"                        will be the administrative user for this MySQL server,\n"
+"                        and it should be kept a secret. After this setup process\n"
 "                        has completed, Kolab is going to discard and forget\n"
 "                        about this password, but you will need it for\n"
 "                        administrative tasks in MySQL.\n"
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_mysql.py:136
+#: ../pykolab/setup/setup_mysql.py:139
 msgid ""
 "\n"
-"                        Please supply a password for the MySQL user "
-"'kolab'.\n"
-"                        This password will be used by Kolab services, such "
-"as\n"
+"                        Please supply a password for the MySQL user 'kolab'.\n"
+"                        This password will be used by Kolab services, such as\n"
 "                        the Web Administration Panel.\n"
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_mysql.py:144
+#: ../pykolab/setup/setup_mysql.py:147
 msgid "MySQL kolab password"
 msgstr ""
 
-#: ../pykolab/setup/setup_mysql.py:162
+#: ../pykolab/setup/setup_mysql.py:165
 msgid "Could not find the MySQL Kolab schema file"
 msgstr ""
 
@@ -1896,19 +2477,21 @@ msgstr ""
 msgid ""
 "\n"
 "                        Please supply the timezone PHP should be using.\n"
+"                        You have to use a Continent or Country / City locality name\n"
+"                        like 'Europe/Berlin', but not just 'CEST'.\n"
 "                    "
 msgstr ""
 
-#: ../pykolab/setup/setup_php.py:72
+#: ../pykolab/setup/setup_php.py:74
 msgid "Timezone ID"
 msgstr ""
 
-#: ../pykolab/setup/setup_php.py:78
+#: ../pykolab/setup/setup_php.py:80
 #, python-format
 msgid "Cannot configure PHP through %r (No such file or directory)"
 msgstr ""
 
-#: ../pykolab/setup/setup_php.py:89
+#: ../pykolab/setup/setup_php.py:91
 msgid "Could not find PHP configuration file php.ini"
 msgstr ""
 
@@ -1919,23 +2502,33 @@ msgstr ""
 #: ../pykolab/setup/setup_roundcube.py:48
 msgid ""
 "\n"
-"                    Please supply a password for the MySQL user "
-"'roundcube'.\n"
+"                    Please supply a password for the MySQL user 'roundcube'.\n"
 "                    This password will be used by the Roundcube webmail\n"
 "                    interface.\n"
 "                "
 msgstr ""
 
-#: ../pykolab/setup/setup_syncroton.py:40
-msgid "Setup Syncroton."
+#: ../pykolab/setup/setup_roundcube.py:56
+msgid "MySQL roundcube password"
 msgstr ""
 
-#: ../pykolab/setup/setup_zpush.py:41
-msgid "Setup zpush."
+#: ../pykolab/setup/setup_roundcube.py:120
+#, python-format
+msgid "Using template file %r"
 msgstr ""
 
-#: ../pykolab/setup/setup_zpush.py:45
-msgid "Z-Push is not installed on this system"
+#: ../pykolab/setup/setup_roundcube.py:127
+#, python-format
+msgid "Successfully compiled template %r, writing out to %r"
+msgstr ""
+
+#: ../pykolab/setup/setup_roundcube.py:228
+#: ../pykolab/setup/setup_syncroton.py:93
+msgid "Could not start the webserver server service."
+msgstr ""
+
+#: ../pykolab/setup/setup_syncroton.py:40
+msgid "Setup Syncroton."
 msgstr ""
 
 #. start_max = (int)(time.time())
@@ -1963,198 +2556,616 @@ msgstr ""
 msgid "No database available"
 msgstr ""
 
-#: ../pykolab/utils.py:60 ../pykolab/utils.py:62
+#: ../pykolab/utils.py:62 ../pykolab/utils.py:64
 #, python-format
 msgid "Confirm %s: "
 msgstr ""
 
-#: ../pykolab/utils.py:65
+#: ../pykolab/utils.py:67
 msgid "Incorrect confirmation. "
 msgstr ""
 
-#: ../pykolab/utils.py:70 ../pykolab/utils.py:75
+#: ../pykolab/utils.py:72 ../pykolab/utils.py:77
 #, python-format
 msgid "%s: "
 msgstr ""
 
-#: ../pykolab/utils.py:72 ../pykolab/utils.py:77
+#: ../pykolab/utils.py:74 ../pykolab/utils.py:79
 #, python-format
 msgid "%s [%s]: "
 msgstr ""
 
-#: ../pykolab/utils.py:122
+#: ../pykolab/utils.py:124
 msgid "Please answer 'yes' or 'no'."
 msgstr ""
 
-#: ../pykolab/utils.py:148
+#: ../pykolab/utils.py:164
 msgid "Choice"
 msgstr ""
 
-#: ../pykolab/utils.py:214
+#: ../pykolab/utils.py:167
+msgid "Choice (type '?' for options)"
+msgstr ""
+
+#: ../pykolab/utils.py:268
 #, python-format
 msgid "Could not change the permissions on %s"
 msgstr ""
 
-#: ../pykolab/utils.py:395
+#: ../pykolab/utils.py:479
 #, python-format
 msgid "Transliterating string %r with locale %r"
 msgstr ""
 
-#: ../pykolab/utils.py:403
+#: ../pykolab/utils.py:487
 msgid "Attempting to set locale"
 msgstr ""
 
-#: ../pykolab/utils.py:405
+#: ../pykolab/utils.py:489
 msgid "Success setting locale"
 msgstr ""
 
-#: ../pykolab/utils.py:407
+#: ../pykolab/utils.py:491
 msgid "Failure to set locale"
 msgstr ""
 
-#: ../pykolab/utils.py:415
+#: ../pykolab/utils.py:499
 #, python-format
 msgid "Executing '%s | %s'"
 msgstr ""
 
-#: ../pykolab/wap_client/__init__.py:257
+#: ../pykolab/utils.py:510
+#, python-format
+msgid "Could not translate %s using locale %s"
+msgstr ""
+
+#: ../pykolab/wap_client/__init__.py:320
 #, python-format
 msgid "Requesting %r with params %r"
 msgstr ""
 
-#: ../pykolab/wap_client/__init__.py:263
+#: ../pykolab/wap_client/__init__.py:328
 #, python-format
 msgid "Got response: %r"
 msgstr ""
 
 #. Some data is not JSON
-#: ../pykolab/wap_client/__init__.py:268
+#: ../pykolab/wap_client/__init__.py:334
 msgid "Response data is not JSON"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:79 ../pykolab/xml/attendee.py:99
+#. support integer values, too
+#: ../pykolab/xml/attendee.py:9 ../pykolab/xml/attendee.py:17
+msgid "Needs Action"
+msgstr ""
+
+#: ../pykolab/xml/attendee.py:10 ../pykolab/xml/attendee.py:18
+msgid "Accepted"
+msgstr "Akzeptiert"
+
+#: ../pykolab/xml/attendee.py:11 ../pykolab/xml/attendee.py:19
+msgid "Declined"
+msgstr "Abgelehnt"
+
+#: ../pykolab/xml/attendee.py:12 ../pykolab/xml/attendee.py:20
+msgid "Tentatively Accepted"
+msgstr "Provisorisch Akzeptiert"
+
+#: ../pykolab/xml/attendee.py:13 ../pykolab/xml/attendee.py:21
+msgid "Delegated"
+msgstr "Delegiert"
+
+#: ../pykolab/xml/attendee.py:14
+msgid "Completed"
+msgstr ""
+
+#: ../pykolab/xml/attendee.py:15
+msgid "In Process"
+msgstr ""
+
+#: ../pykolab/xml/attendee.py:108 ../pykolab/xml/attendee.py:130
 msgid "Not a valid attendee"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:84
+#: ../pykolab/xml/attendee.py:115
 msgid "No valid delegator references found"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:104
+#: ../pykolab/xml/attendee.py:135
 msgid "No valid delegatee references found"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:140
+#: ../pykolab/xml/attendee.py:180
 #, python-format
 msgid "Invalid cutype %r"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:151
+#: ../pykolab/xml/attendee.py:192
 #, python-format
 msgid "Invalid participant status %r"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:159
+#: ../pykolab/xml/attendee.py:200
 #, python-format
 msgid "Invalid role %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:172
+#: ../pykolab/xml/event.py:100 ../pykolab/xml/event.py:708
+#: ../pykolab/xml/event.py:751
+msgid "Event start needs datetime.date or datetime.datetime instance"
+msgstr ""
+
+#: ../pykolab/xml/event.py:241
 #, python-format
 msgid "No attendee with email or name %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:180
+#: ../pykolab/xml/event.py:249
 #, python-format
 msgid "Invalid argument value attendee %r, must be basestring or Attendee"
 msgstr ""
 
-#: ../pykolab/xml/event.py:186
+#: ../pykolab/xml/event.py:255
 #, python-format
 msgid "No attendee with email %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:192
+#: ../pykolab/xml/event.py:261
 #, python-format
 msgid "No attendee with name %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:338
+#: ../pykolab/xml/event.py:426
 msgid "Invalid participant status"
 msgstr ""
 
-#: ../pykolab/xml/event.py:538
-msgid "Event end needs datetime.date or datetime.datetime instance"
+#: ../pykolab/xml/event.py:542
+#, python-format
+msgid "Invalid status %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:657
+#: ../pykolab/xml/event.py:550
 #, python-format
-msgid "Invalid status %r"
+msgid "Invalid classification %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:678 ../pykolab/xml/event.py:728
-msgid "Event start needs datetime.date or datetime.datetime instance"
+#: ../pykolab/xml/event.py:577
+msgid "Event end needs datetime.date or datetime.datetime instance"
 msgstr ""
 
-#: ../pykolab/xml/event.py:764
+#: ../pykolab/xml/event.py:761
 #, python-format
 msgid "Invalid status set: %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:882
+#: ../pykolab/xml/event.py:923
 msgid "No sender specified"
 msgstr ""
 
-#: ../saslauthd/__init__.py:126 ../saslauthd/__init__.py:134
-msgid "Traceback occurred, please report a bug at http://bugzilla.kolabsys.com"
+#: ../pykolab/xml/event.py:932
+#, python-format
+msgid "Invitation for %s was %s"
+msgstr ""
+
+#: ../pykolab/xml/event.py:937
+msgid "This is an automated response to one of your event requests."
 msgstr ""
 
-#: ../wallace/__init__.py:62
+#: ../saslauthd/__init__.py:99
+#, python-format
+msgid "Could not create %r: %r"
+msgstr ""
+
+#: ../saslauthd/__init__.py:137 ../saslauthd/__init__.py:145
+#: ../wallace/__init__.py:403 ../wallace/__init__.py:412
+msgid ""
+"Traceback occurred, please report a bug at http://bugzilla.kolabsys.com"
+msgstr ""
+
+#: ../saslauthd/__init__.py:185
+msgid "kolab-saslauthd could not accept "
+msgstr ""
+
+#: ../saslauthd/__init__.py:190
+msgid "Maximum tries exceeded, exiting"
+msgstr ""
+
+#: ../tests/functional/test_wallace/test_005_resource_invitation.py:190
+#: ../wallace/module_resources.py:879
+#, python-format
+msgid "Reservation Request for %(summary)s was %(status)s"
+msgstr ""
+
+#. check notification message sent to resource owner (jane)
+#: ../tests/functional/test_wallace/test_005_resource_invitation.py:605
+#: ../tests/functional/test_wallace/test_005_resource_invitation.py:621
+#: ../wallace/module_resources.py:954
+#, python-format
+msgid "Booking for %s has been %s"
+msgstr ""
+
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:146
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:720
+#: ../wallace/module_invitationpolicy.py:374
+#, python-format
+msgid "\"%(summary)s\" has been %(status)s"
+msgstr ""
+
+#. check for notification message
+#. this notification should be suppressed until mark has replied, too
+#. this triggers an additional notification
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:616
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:622
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:635
+#: ../wallace/module_invitationpolicy.py:925
+#, python-format
+msgid "\"%s\" has been updated"
+msgstr ""
+
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:627
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:639
+msgid "PENDING"
+msgstr ""
+
+#: ../wallace/__init__.py:57
+#, python-format
+msgid "Wallace modules: %r"
+msgstr ""
+
+#: ../wallace/__init__.py:69
+#, python-format
+msgid "Module %s.execute() failed on message %r with error: %s"
+msgstr ""
+
+#: ../wallace/__init__.py:78
 #, python-format
 msgid "Worker process %s initializing"
 msgstr ""
 
-#: ../wallace/__init__.py:81
+#: ../wallace/__init__.py:100
 msgid "Bind address for Wallace."
 msgstr ""
 
-#: ../wallace/__init__.py:107
+#: ../wallace/__init__.py:126
 msgid "Port that Wallace is supposed to use."
 msgstr ""
 
-#: ../wallace/__init__.py:158
+#: ../wallace/__init__.py:177
 #, python-format
 msgid "Could not bind to socket on port %d on bind "
 msgstr ""
 
-#: ../wallace/__init__.py:170
+#: ../wallace/__init__.py:189
 msgid "Could not shut down socket"
 msgstr ""
 
-#: ../wallace/__init__.py:227
+#: ../wallace/__init__.py:253
 msgid "Accepted connection"
 msgstr ""
 
-#: ../wallace/__init__.py:398
+#: ../wallace/__init__.py:428
 #, python-format
 msgid "Could not write pid file %s"
 msgstr ""
 
-#: ../wallace/module_optout.py:61 ../wallace/module_resources.py:93
+#: ../wallace/module_footer.py:60 ../wallace/module_gpgencrypt.py:60
+#: ../wallace/module_invitationpolicy.py:168 ../wallace/module_optout.py:61
+#: ../wallace/module_resources.py:120
 #, python-format
 msgid "Issuing callback after processing to stage %s"
 msgstr ""
 
-#: ../wallace/module_optout.py:62 ../wallace/module_resources.py:99
+#: ../wallace/module_footer.py:61 ../wallace/module_gpgencrypt.py:61
+#: ../wallace/module_invitationpolicy.py:170 ../wallace/module_optout.py:62
+#: ../wallace/module_resources.py:126
 #, python-format
 msgid "Testing cb_action_%s()"
 msgstr ""
 
-#: ../wallace/module_optout.py:64 ../wallace/module_resources.py:102
+#: ../wallace/module_footer.py:63 ../wallace/module_gpgencrypt.py:63
+#: ../wallace/module_invitationpolicy.py:172 ../wallace/module_optout.py:64
+#: ../wallace/module_resources.py:129
 #, python-format
 msgid "Attempting to execute cb_action_%s()"
 msgstr ""
 
+#: ../wallace/module_footer.py:67
+#, python-format
+msgid "Executing module footer for %r, %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:66
+#, python-format
+msgid "Executing module gpgencrypt for %r, %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:98
+msgid "Message is already encrypted (app/pgp-enc content-type)"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:102
+msgid "Message already encrypted by main content-type header"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:131
+msgid ""
+"Configured to encrypt to a key not configured, and strict policy enabled. "
+"Bailing out."
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:134
+msgid ""
+"Configured to encrypt to a key not configured, but continuing anyway (see "
+"'gpgencrypt_strict')."
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:171
+#, python-format
+msgid "Recipients: %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:183
+#, python-format
+msgid "Current keys: %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:188
+#, python-format
+msgid "Retrieving key for recipient: %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:192 ../wallace/module_gpgencrypt.py:208
+#, python-format
+msgid "Found matching address %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:200
+#, python-format
+msgid "Found matching address %r in remote keys"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:232
+#, python-format
+msgid "An error occurred: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:154
+#, python-format
+msgid "Invitation policy called for %r, %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:211
+#: ../wallace/module_resources.py:169
+#, python-format
+msgid "Failed to parse iTip events from message: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:215
+msgid ""
+"Message is not an iTip message or does not contain any (valid) iTip events."
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:219
+#, python-format
+msgid ""
+"iTip events attached to this message contain the following information: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:232
+#, python-format
+msgid "No itips, no users, pass along %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:235
+#, python-format
+msgid "iTips, but no users, pass along %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:255
+#, python-format
+msgid "No user attendee matching envelope recipient %s, skip message"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:259
+#, python-format
+msgid "Receiving user: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:284
+#, python-format
+msgid "Apply invitation policy %r for domain %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:295
+#, python-format
+msgid "Ignoring '%s' iTip method"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:299
+#, python-format
+msgid "iTip message %r consumed by the invitationpolicy module"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:315
+msgid "Pass invitation for manual processing"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:320
+#, python-format
+msgid "Receiving Attendee: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:339
+#, python-format
+msgid "Existing event: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:350
+#, python-format
+msgid "Precondition for event %r fulfilled: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:386
+#, python-format
+msgid "No RSVP for recipient %r requested"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:412
+msgid "Pass reply for manual processing"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:419
+#, python-format
+msgid "Sender Attendee: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:431
+#, python-format
+msgid ""
+"The iTip reply sequence (%r) doesn't match the referred event version (%r). "
+"Forwarding to Inbox."
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:437
+#, python-format
+msgid "Auto-updating event %r on iTip REPLY"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:459
+#: ../wallace/module_invitationpolicy.py:488
+msgid ""
+"The event referred by this reply was not found in the user's calendars. "
+"Forwarding to Inbox."
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:472
+msgid "Pass cancellation for manual processing"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:517
+#, python-format
+msgid "Checking if email address %r belongs to a local user"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:522
+#, python-format
+msgid "User DN: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:524
+#, python-format
+msgid "No user record(s) found for %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:577
+#, python-format
+msgid "User record doesn't have the mailbox attribute %r set"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:590
+#, python-format
+msgid "IMAP proxy authentication failed: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:612
+#, python-format
+msgid "List calendar folders for user %r: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:628
+#, python-format
+msgid "IMAP metadata for %r: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:658
+#, python-format
+msgid "Searching folder %r for event %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:670
+#: ../wallace/module_invitationpolicy.py:709
+#: ../wallace/module_resources.py:486
+#, python-format
+msgid "Failed to parse event from message %s/%s: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:696
+#, python-format
+msgid "Listing events from folder %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:715
+#, python-format
+msgid "Existing event %r conflicts with invitation %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:722
+#: ../wallace/module_resources.py:344
+#, python-format
+msgid "start: %r, end: %r, total: %r, messages: %d"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:748
+#, python-format
+msgid "%r is locked, waiting..."
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:811
+#, python-format
+msgid "Failed to save event: no calendar folder found for user %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:814
+#, python-format
+msgid "Save event %r to user calendar %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:827
+#, python-format
+msgid "Failed to save event to user calendar at %r: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:843
+#, python-format
+msgid "Delete event %r in %r: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:863
+#, python-format
+msgid "Compose participation status summary for event %r to user %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:901
+#, python-format
+msgid ""
+"Waiting for more automated replies (got %d of %d); skipping notification"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:998
+#, python-format
+msgid "Updated %s's copy of %r: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:1001
+#, python-format
+msgid "Attendee %s's copy of %r not found"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:1004
+#, python-format
+msgid "Attendee %r not found in LDAP"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:1008
+#, python-format
+msgid ""
+"\n"
+"        %(name)s has %(status)s your invitation for %(summary)s.\n"
+"\n"
+"        *** This is an automated response sent by the Kolab Invitation system ***\n"
+"    "
+msgstr ""
+
 #. modules.next_module('optout')
 #: ../wallace/module_optout.py:70
 #, python-format
@@ -2176,171 +3187,256 @@ msgstr ""
 msgid "Could not send request to optout_url %s"
 msgstr ""
 
-#: ../wallace/module_resources.py:80
+#: ../wallace/module_resources.py:110
 #, python-format
 msgid "Resource Management called for %r, %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:143
+#: ../wallace/module_resources.py:174
 msgid "Message is not an iTip message or does not contain any "
 msgstr ""
 
-#: ../wallace/module_resources.py:151
+#: ../wallace/module_resources.py:182
 msgid "iTip events attached to this message contain the "
 msgstr ""
 
-#: ../wallace/module_resources.py:171
+#: ../wallace/module_resources.py:205
 msgid "Not an iTip message, but sent to resource nonetheless. Reject message"
 msgstr ""
 
-#: ../wallace/module_resources.py:179
-msgid "No itips, no resources, pass along"
+#: ../wallace/module_resources.py:213
+#, python-format
+msgid "No itips, no resources, pass along %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:183
-msgid "iTips, but no resources, pass along"
+#: ../wallace/module_resources.py:216
+#, python-format
+msgid "iTips, but no resources, pass along %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:215
+#: ../wallace/module_resources.py:225
 #, python-format
-msgid "Resources: %r"
+msgid "No resource attendees matching envelope recipient %s, Reject message"
 msgstr ""
 
-#: ../wallace/module_resources.py:233
+#: ../wallace/module_resources.py:234
 #, python-format
-msgid "Checking events in resource folder %r"
+msgid "Resources: %r; %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:240
+#: ../wallace/module_resources.py:244
 #, python-format
-msgid "Mailbox for resource %r doesn't exist"
+msgid "Receiving Resource: %r; %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:253
+#: ../wallace/module_resources.py:252
 #, python-format
-msgid "Fetching message UID %r from folder %r"
+msgid "Recipient %r is non-participant, ignoring message"
 msgstr ""
 
-#: ../wallace/module_resources.py:292
+#: ../wallace/module_resources.py:279
 #, python-format
-msgid "Event %r conflicts with event "
+msgid "Accept invitation for individual resource %r / %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:305
+#: ../wallace/module_resources.py:308
 #, python-format
-msgid "start: %r, end: %r, total: %r, messages: %r"
+msgid "Delegate invitation for resource collection %r to %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:312
+#: ../wallace/module_resources.py:340
+#, python-format
+msgid "Failed to read resource calendar for %r: %r"
+msgstr ""
+
+#: ../wallace/module_resources.py:350
 #, python-format
 msgid "Polling for resource %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:316
+#: ../wallace/module_resources.py:353
 #, python-format
 msgid "Resource %r has been popped from the list"
 msgstr ""
 
-#: ../wallace/module_resources.py:323
+#: ../wallace/module_resources.py:357
 msgid "Resource is a collection"
 msgstr ""
 
-#: ../wallace/module_resources.py:371 ../wallace/module_resources.py:421
+#: ../wallace/module_resources.py:368
 #, python-format
-msgid "Adding event to %r"
+msgid "Removed conflicting resources from %r: (%r) => %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:470
+#: ../wallace/module_resources.py:380
 #, python-format
-msgid "Method %r not really interesting for us."
+msgid "Conflicting events: %r for resource %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:478
+#: ../wallace/module_resources.py:397
 #, python-format
-msgid "Raw iTip payload: %s"
+msgid "Delegate to another resource collection member: %r to %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:488
-msgid "Could not read iTip from message."
+#: ../wallace/module_resources.py:459
+#, python-format
+msgid "Checking events in resource folder %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:510
-msgid "iTip event without a start"
+#: ../wallace/module_resources.py:475
+#, python-format
+msgid "Fetching message UID %r from folder %r"
 msgstr ""
 
-#. end if c.name == "VEVENT"
-#. end for c in cal.walk()
-#. end if part.get_content_type() == "text/calendar"
-#. end for part in message.walk()
-#. if message.is_multipart()
-#: ../wallace/module_resources.py:540
-msgid "Message is not an iTip message (non-multipart message)"
+#: ../wallace/module_resources.py:498
+#, python-format
+msgid "Event %r conflicts with event %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:561
+#: ../wallace/module_resources.py:525
 #, python-format
-msgid "Checking if email address %r belongs to a resource (collection)"
+msgid "Adding event to %r: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:572 ../wallace/module_resources.py:646
-#: ../wallace/module_resources.py:696
+#: ../wallace/module_resources.py:573
 #, python-format
-msgid "No resource (collection) records found for %r"
+msgid "Failed to save event to resource calendar at %r: %r"
+msgstr ""
+
+#: ../wallace/module_resources.py:590
+#, python-format
+msgid "Delete resource calendar object %r in %r: %r"
+msgstr ""
+
+#: ../wallace/module_resources.py:633
+#, python-format
+msgid "Checking if email address %r belongs to a resource (collection)"
 msgstr ""
 
-#: ../wallace/module_resources.py:580 ../wallace/module_resources.py:654
-#: ../wallace/module_resources.py:704
+#: ../wallace/module_resources.py:641 ../wallace/module_resources.py:709
+#: ../wallace/module_resources.py:743
 #, python-format
 msgid "Resource record(s): %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:586 ../wallace/module_resources.py:661
-#: ../wallace/module_resources.py:711
+#: ../wallace/module_resources.py:643 ../wallace/module_resources.py:711
+#: ../wallace/module_resources.py:746
+#, python-format
+msgid "No resource (collection) records found for %r"
+msgstr ""
+
+#: ../wallace/module_resources.py:647 ../wallace/module_resources.py:715
+#: ../wallace/module_resources.py:750
 #, python-format
 msgid "Resource record: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:605
+#: ../wallace/module_resources.py:667
 #, python-format
 msgid "Raw itip_events: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:613
+#: ../wallace/module_resources.py:675
 #, python-format
 msgid "Raw set of attendees: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:621
+#: ../wallace/module_resources.py:683
 #, python-format
 msgid "Raw set of resources: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:635
+#: ../wallace/module_resources.py:702
 #, python-format
 msgid "Checking if attendee %r is a resource (collection)"
 msgstr ""
 
-#: ../wallace/module_resources.py:668 ../wallace/module_resources.py:714
+#: ../wallace/module_resources.py:718 ../wallace/module_resources.py:752
 msgid "Resource reservation made but no resource records found"
 msgstr ""
 
-#: ../wallace/module_resources.py:686
+#: ../wallace/module_resources.py:737
 #, python-format
 msgid "Checking if resource %r is a resource (collection)"
 msgstr ""
 
-#: ../wallace/module_resources.py:718
+#: ../wallace/module_resources.py:755
 msgid "The following resources are being referred to in the "
 msgstr ""
 
+#: ../wallace/module_resources.py:894
+#, python-format
+msgid ""
+"\n"
+"                *** This is an automated response, please do not reply! ***\n"
+"\n"
+"                Your reservation was delegated to \"%s\" which is available for the requested time.\n"
+"            "
+msgstr ""
+
+#: ../wallace/module_resources.py:905
+#, python-format
+msgid ""
+"\n"
+"        *** This is an automated response, please do not reply! ***\n"
+"        \n"
+"        We hereby inform you that your reservation was %s.\n"
+"    "
+msgstr ""
+
+#: ../wallace/module_resources.py:912
+#, python-format
+msgid ""
+"\n"
+"            If you have questions about this reservation, please contact\n"
+"            %s <%s> %s\n"
+"        "
+msgstr ""
+
+#: ../wallace/module_resources.py:941
+#, python-format
+msgid "Sending booking notification for event %r to %r from %r"
+msgstr ""
+
+#: ../wallace/module_resources.py:954
+msgid "failed"
+msgstr ""
+
+#: ../wallace/module_resources.py:973
+#, python-format
+msgid ""
+"\n"
+"            The resource booking for %(resource)s by %(orgname)s <%(orgemail)s> has been %(status)s for %(date)s.\n"
+"\n"
+"            *** This is an automated message, sent to you as the resource owner. ***\n"
+"        "
+msgstr ""
+
+#: ../wallace/module_resources.py:979
+#, python-format
+msgid ""
+"\n"
+"            A reservation request for %(resource)s could not be processed automatically.\n"
+"            Please contact %(orgname)s <%(orgemail)s> who requested this resource for %(date)s. Subject: %(summary)s.\n"
+"\n"
+"            *** This is an automated message, sent to you as the resource owner. ***\n"
+"        "
+msgstr ""
+
 #. This is a nested module
 #: ../wallace/modules.py:97
 #, python-format
 msgid "Module Group: %s"
 msgstr ""
 
-#: ../wallace/modules.py:108 ../wallace/modules.py:113
-msgid "No such module."
+#: ../wallace/modules.py:108
+#, python-format
+msgid "No such module %r in modules %r (1)."
+msgstr ""
+
+#: ../wallace/modules.py:113
+#, python-format
+msgid "No such module %r in modules %r (2)."
 msgstr ""
 
 #: ../wallace/modules.py:119
@@ -2353,33 +3449,33 @@ msgstr ""
 msgid "Deferring message in %s (by module %s)"
 msgstr ""
 
-#: ../wallace/modules.py:133
+#: ../wallace/modules.py:134
 #, python-format
 msgid "The time when the message was sent: %r"
 msgstr ""
 
-#: ../wallace/modules.py:134
+#: ../wallace/modules.py:135
 #, python-format
 msgid "The time now: %r"
 msgstr ""
 
-#: ../wallace/modules.py:135
+#: ../wallace/modules.py:136
 #, python-format
 msgid "The time delta: %r"
 msgstr ""
 
 #. TODO: Send NDR back to user
-#: ../wallace/modules.py:139
+#: ../wallace/modules.py:140
 #, python-format
 msgid "Message in file %s older then 5 days, deleting"
 msgstr ""
 
-#: ../wallace/modules.py:164
+#: ../wallace/modules.py:165
 #, python-format
 msgid "Rejecting message in %s (by module %s)"
 msgstr ""
 
-#: ../wallace/modules.py:185
+#: ../wallace/modules.py:186
 #, python-format
 msgid ""
 "This is the email system Wallace at %s.\n"
@@ -2394,19 +3490,29 @@ msgid ""
 "recipients.\n"
 msgstr ""
 
-#: ../wallace/modules.py:200
+#: ../wallace/modules.py:201
 #, python-format
 msgid ""
 "X-Wallace-Module: %s\n"
 "X-Wallace-Result: REJECT\n"
 msgstr ""
 
-#: ../wallace/modules.py:253
+#: ../wallace/modules.py:260
 #, python-format
 msgid "Accepting message in %s (by module %s)"
 msgstr ""
 
-#: ../wallace/modules.py:326
+#: ../wallace/modules.py:262
+#, python-format
+msgid "Accepting message in: %r"
+msgstr ""
+
+#: ../wallace/modules.py:269
+#, python-format
+msgid "recipients: %r"
+msgstr ""
+
+#: ../wallace/modules.py:347
 #, python-format
 msgid "Module '%s' already registered"
 msgstr ""
diff --git a/po/pykolab.pot b/po/pykolab.pot
index c3c276a..389ca9b 100644
--- a/po/pykolab.pot
+++ b/po/pykolab.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-02-21 02:15-0500\n"
+"POT-Creation-Date: 2014-07-10 07:21-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -291,66 +291,66 @@ msgstr ""
 msgid "No objections"
 msgstr ""
 
-#: ../conf.py:37 ../kolab.py:34 ../saslauthd.py:33
+#: ../conf.py:37 ../kolab-cli.py:34 ../saslauthd.py:33
 msgid "Cannot load pykolab/logger.py:"
 msgstr ""
 
 #: ../kolabd/__init__.py:49 ../saslauthd/__init__.py:51
-#: ../wallace/__init__.py:68
+#: ../wallace/__init__.py:85
 msgid "Daemon Options"
 msgstr ""
 
 #: ../kolabd/__init__.py:56 ../saslauthd/__init__.py:58
-#: ../wallace/__init__.py:75
+#: ../wallace/__init__.py:92
 msgid "Fork to the background."
 msgstr ""
 
 #: ../kolabd/__init__.py:65 ../saslauthd/__init__.py:67
-#: ../wallace/__init__.py:101
+#: ../wallace/__init__.py:118
 msgid "Path to the PID file to use."
 msgstr ""
 
 #: ../kolabd/__init__.py:74 ../saslauthd/__init__.py:76
-#: ../wallace/__init__.py:118
+#: ../wallace/__init__.py:135
 msgid "Run as user USERNAME"
 msgstr ""
 
 #: ../kolabd/__init__.py:84 ../saslauthd/__init__.py:86
-#: ../wallace/__init__.py:92
+#: ../wallace/__init__.py:109
 msgid "Run as group GROUPNAME"
 msgstr ""
 
 #: ../kolabd/__init__.py:122 ../pykolab/logger.py:139 ../pykolab/utils.py:234
-#: ../saslauthd/__init__.py:292 ../wallace/__init__.py:312
+#: ../saslauthd/__init__.py:292 ../wallace/__init__.py:329
 #, python-format
 msgid "Group %s does not exist"
 msgstr ""
 
 #: ../kolabd/__init__.py:131 ../saslauthd/__init__.py:301
-#: ../wallace/__init__.py:321
+#: ../wallace/__init__.py:338
 #, python-format
 msgid "Switching real and effective group id to %d"
 msgstr ""
 
 #: ../kolabd/__init__.py:153 ../pykolab/logger.py:159 ../pykolab/utils.py:258
-#: ../saslauthd/__init__.py:323 ../wallace/__init__.py:343
+#: ../saslauthd/__init__.py:323 ../wallace/__init__.py:360
 #, python-format
 msgid "User %s does not exist"
 msgstr ""
 
 #: ../kolabd/__init__.py:163 ../saslauthd/__init__.py:333
-#: ../wallace/__init__.py:353
+#: ../wallace/__init__.py:370
 #, python-format
 msgid "Switching real and effective user id to %d"
 msgstr ""
 
 #: ../kolabd/__init__.py:172 ../saslauthd/__init__.py:342
-#: ../wallace/__init__.py:362
+#: ../wallace/__init__.py:379
 msgid "Could not change real and effective uid and/or gid"
 msgstr ""
 
 #: ../kolabd/__init__.py:192 ../saslauthd/__init__.py:133
-#: ../wallace/__init__.py:382
+#: ../wallace/__init__.py:399
 msgid "Interrupted by user"
 msgstr ""
 
@@ -359,7 +359,7 @@ msgid "Traceback occurred, please report a "
 msgstr ""
 
 #: ../kolabd/__init__.py:203 ../saslauthd/__init__.py:141
-#: ../wallace/__init__.py:391
+#: ../wallace/__init__.py:408
 #, python-format
 msgid "Type Error: %s"
 msgstr ""
@@ -368,7 +368,7 @@ msgstr ""
 msgid "Could not connect to LDAP, is it running?"
 msgstr ""
 
-#: ../kolabd/__init__.py:233 ../pykolab/auth/ldap/__init__.py:2110
+#: ../kolabd/__init__.py:233 ../pykolab/auth/ldap/__init__.py:2137
 #: ../pykolab/cli/cmd_sync.py:36
 msgid "Listing domains..."
 msgstr ""
@@ -442,7 +442,7 @@ msgstr ""
 msgid "Updating timestamp for cache entry %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/cache.py:154
+#: ../pykolab/auth/ldap/cache.py:155
 #, python-format
 msgid "Updating result_attribute for cache entry %r"
 msgstr ""
@@ -668,95 +668,95 @@ msgstr ""
 msgid "Invalid DN, username and/or password."
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1234 ../pykolab/auth/ldap/__init__.py:1247
-#: ../pykolab/auth/ldap/__init__.py:1603 ../pykolab/auth/ldap/__init__.py:1616
+#: ../pykolab/auth/ldap/__init__.py:1236 ../pykolab/auth/ldap/__init__.py:1249
+#: ../pykolab/auth/ldap/__init__.py:1614 ../pykolab/auth/ldap/__init__.py:1627
 #, python-format
 msgid "Found a subject %r with access %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1354
+#: ../pykolab/auth/ldap/__init__.py:1356
 #, python-format
 msgid "Entry %s attribute value: %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1362
+#: ../pykolab/auth/ldap/__init__.py:1364
 #, python-format
 msgid "imap.user_mailbox_server(%r) result: %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1673 ../pykolab/auth/ldap/__init__.py:1830
+#: ../pykolab/auth/ldap/__init__.py:1684 ../pykolab/auth/ldap/__init__.py:1853
 #, python-format
 msgid "Result from recipient policy: %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:1885
+#: ../pykolab/auth/ldap/__init__.py:1908
 #, python-format
 msgid "Kolab user %s does not have a result attribute %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2040
+#: ../pykolab/auth/ldap/__init__.py:2067
 #, python-format
 msgid "Finding domain root dn for domain %s"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2137
+#: ../pykolab/auth/ldap/__init__.py:2164
 msgid "Authentication database DOWN"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2221 ../pykolab/auth/ldap/__init__.py:2269
+#: ../pykolab/auth/ldap/__init__.py:2248 ../pykolab/auth/ldap/__init__.py:2296
 #, python-format
 msgid "Entry type: %s"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2294
+#: ../pykolab/auth/ldap/__init__.py:2321
 #, python-format
 msgid "Done with _synchronize_callback() for entry %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2366
+#: ../pykolab/auth/ldap/__init__.py:2393
 msgid "LDAP Search Result Data Entry:"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2382
+#: ../pykolab/auth/ldap/__init__.py:2409
 msgid "Entry Change Notification attributes:"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2387
+#: ../pykolab/auth/ldap/__init__.py:2414
 #, python-format
 msgid "Change Type: %r (%r)"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2395
+#: ../pykolab/auth/ldap/__init__.py:2422
 #, python-format
 msgid "Previous DN: %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2450
+#: ../pykolab/auth/ldap/__init__.py:2477
 #, python-format
 msgid "Object %s searched no longer exists"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2460
+#: ../pykolab/auth/ldap/__init__.py:2487
 #, python-format
 msgid "%d results..."
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2563
+#: ../pykolab/auth/ldap/__init__.py:2590
 #, python-format
 msgid "Searching with filter %r"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2615
+#: ../pykolab/auth/ldap/__init__.py:2642
 #, python-format
 msgid "Checking for support for %s on %s"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2634
+#: ../pykolab/auth/ldap/__init__.py:2661
 #, python-format
 msgid "Found support for %s"
 msgstr ""
 
-#: ../pykolab/auth/ldap/__init__.py:2679
+#: ../pykolab/auth/ldap/__init__.py:2706
 #, python-format
 msgid "An error occured using %s: %r"
 msgstr ""
@@ -916,7 +916,10 @@ msgstr ""
 #: ../pykolab/cli/cmd_list_mailbox_metadata.py:54
 #: ../pykolab/cli/cmd_set_mailbox_acl.py:54
 #: ../pykolab/cli/cmd_set_mailbox_metadata.py:66
-#: ../pykolab/cli/cmd_set_quota.py:46
+#: ../pykolab/cli/cmd_set_quota.py:46 ../tests/unit/test-015-translate.py:12
+#: ../tests/unit/test-015-translate.py:16
+#: ../tests/unit/test-015-translate.py:18
+#: ../tests/unit/test-015-translate.py:20
 msgid "Folder name"
 msgstr ""
 
@@ -1063,7 +1066,7 @@ msgstr ""
 
 #: ../pykolab/cli/cmd_remove_user_subscription.py:92
 #, python-format
-msgid "User %s not be unsubscribed from any folders."
+msgid "User %s was not unsubscribed from any folders."
 msgstr ""
 
 #: ../pykolab/cli/cmd_rename_mailbox.py:52
@@ -1432,76 +1435,76 @@ msgstr ""
 msgid "No command supplied"
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:411
+#: ../pykolab/conf/__init__.py:416
 msgid "Insufficient options. Need section, key and value -in that order."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:414
+#: ../pykolab/conf/__init__.py:419
 #, python-format
 msgid "No section '%s' exists."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:445
+#: ../pykolab/conf/__init__.py:461
 #, python-format
 msgid "Setting %s to %r (from the default values for CLI options)"
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:518
+#: ../pykolab/conf/__init__.py:534
 #, python-format
 msgid "Could not execute configuration function: %s"
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:526
+#: ../pykolab/conf/__init__.py:542
 #, python-format
 msgid "Option %s/%s does not exist in config file %s, pulling from defaults"
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:534 ../pykolab/conf/__init__.py:537
+#: ../pykolab/conf/__init__.py:550 ../pykolab/conf/__init__.py:553
 msgid "Option does not exist in defaults."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:547
+#: ../pykolab/conf/__init__.py:563
 #, python-format
 msgid "Configuration file %s not readable."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:550
+#: ../pykolab/conf/__init__.py:566
 #, python-format
 msgid "Configuration file %s does not exist."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:555
+#: ../pykolab/conf/__init__.py:571
 msgid ""
 "WARNING: A negative debug level value does not make this program be any more "
 "silent."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:561
+#: ../pykolab/conf/__init__.py:577
 msgid "This program has 9 levels of verbosity. Using the maximum of 9."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:569 ../pykolab/conf/__init__.py:575
+#: ../pykolab/conf/__init__.py:585 ../pykolab/conf/__init__.py:591
 msgid "Cannot start SASL authentication daemon"
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:586
+#: ../pykolab/conf/__init__.py:602
 msgid "No imaplib library found."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:596
+#: ../pykolab/conf/__init__.py:612
 msgid "No LMTP class found in the smtplib library."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:606
+#: ../pykolab/conf/__init__.py:622
 msgid "No SMTP class found in the smtplib library."
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:620
+#: ../pykolab/conf/__init__.py:636
 #, python-format
 msgid "Found you specified a specific set of items to test: %s"
 msgstr ""
 
-#: ../pykolab/conf/__init__.py:628
+#: ../pykolab/conf/__init__.py:644
 #, python-format
 msgid "Selectively selecting: %s"
 msgstr ""
@@ -1686,169 +1689,174 @@ msgstr ""
 msgid "%r has no attribute %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:390 ../pykolab/imap/__init__.py:425
+#: ../pykolab/imap/__init__.py:393 ../pykolab/imap/__init__.py:428
 #, python-format
 msgid "Creating new shared folder %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:450 ../pykolab/imap/__init__.py:672
+#: ../pykolab/imap/__init__.py:453 ../pykolab/imap/__init__.py:675
 #, python-format
 msgid "Downcasing mailbox name %r"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:454
+#: ../pykolab/imap/__init__.py:457
 #, python-format
 msgid "Creating new mailbox for user %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:467
+#: ../pykolab/imap/__init__.py:470
 msgid "Waiting for the Cyrus IMAP Murder to settle..."
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:513
+#: ../pykolab/imap/__init__.py:516
 #, python-format
 msgid "Creating additional folders for user %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:532
+#: ../pykolab/imap/__init__.py:535
 #, python-format
 msgid "Waiting for the Cyrus murder to settle... %r"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:544
+#: ../pykolab/imap/__init__.py:547
 #, python-format
 msgid "Correcting additional folder name from %r to %r"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:550
+#: ../pykolab/imap/__init__.py:553
 #, python-format
 msgid "Mailbox already exists: %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:590
+#: ../pykolab/imap/__init__.py:593
 msgid "Subscribing user to the additional folders"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:604
+#: ../pykolab/imap/__init__.py:607
 msgid "Using the following tests for folder subscriptions:"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:606
+#: ../pykolab/imap/__init__.py:609
 #, python-format
 msgid "    %r"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:609
+#: ../pykolab/imap/__init__.py:612
 #, python-format
 msgid "Folder %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:621
+#: ../pykolab/imap/__init__.py:624
 #, python-format
 msgid "Subscribing %s to folder %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:625
+#: ../pykolab/imap/__init__.py:628
 #, python-format
 msgid "Subscribing %s to folder %s failed: %r"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:655
+#: ../pykolab/imap/__init__.py:658
 #, python-format
 msgid "Could not rename %s to reside on partition %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:688 ../pykolab/imap/__init__.py:764
+#: ../pykolab/imap/__init__.py:691
+#, python-format
+msgid "INBOX folder to rename (%s) does not exist"
+msgstr ""
+
+#: ../pykolab/imap/__init__.py:694 ../pykolab/imap/__init__.py:770
 #, python-format
 msgid "Renaming INBOX from %s to %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:692
+#: ../pykolab/imap/__init__.py:698
 #, python-format
 msgid "Could not rename INBOX folder %s to %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:694 ../pykolab/imap/__init__.py:768
+#: ../pykolab/imap/__init__.py:700 ../pykolab/imap/__init__.py:774
 #, python-format
 msgid "Moving INBOX folder %s won't succeed as target folder %s already exists"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:698
+#: ../pykolab/imap/__init__.py:704
 #, python-format
 msgid "Server for mailbox %r is %r"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:706
+#: ../pykolab/imap/__init__.py:712
 #, python-format
 msgid "Looking for folder '%s', we found folders: %r"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:729
+#: ../pykolab/imap/__init__.py:735
 #, python-format
 msgid "Setting ACL rights %s for subject %s on folder "
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:740
+#: ../pykolab/imap/__init__.py:746
 #, python-format
 msgid "Removing ACL rights %s for subject %s on folder "
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:761
+#: ../pykolab/imap/__init__.py:767
 #, python-format
 msgid "Found old INBOX folder %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:770
+#: ../pykolab/imap/__init__.py:776
 #, python-format
 msgid "Did not find old folder user/%s to rename"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:772
+#: ../pykolab/imap/__init__.py:778
 msgid "Value for user is not a dictionary"
 msgstr ""
 
 #. TODO: Go in fact correct the quota.
-#: ../pykolab/imap/__init__.py:840
+#: ../pykolab/imap/__init__.py:846
 #, python-format
 msgid "Cannot get current IMAP quota for folder %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:853
+#: ../pykolab/imap/__init__.py:859
 #, python-format
 msgid "Quota for %s currently is %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:859
+#: ../pykolab/imap/__init__.py:865
 #, python-format
 msgid "Adjusting authentication database quota for folder %s to %d"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:864
+#: ../pykolab/imap/__init__.py:870
 #, python-format
 msgid "Correcting quota for %s to %s (currently %s)"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:941
+#: ../pykolab/imap/__init__.py:947
 #, python-format
 msgid "Checking folder: %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:946
+#: ../pykolab/imap/__init__.py:952
 #, python-format
 msgid "Folder has no corresponding user (1): %s"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:949
+#: ../pykolab/imap/__init__.py:955
 #, python-format
 msgid "Folder has no corresponding user (2): %s"
 msgstr ""
 
 #. We got user identifier only
-#: ../pykolab/imap/__init__.py:964
+#: ../pykolab/imap/__init__.py:970
 msgid "Please don't give us just a user identifier"
 msgstr ""
 
-#: ../pykolab/imap/__init__.py:967
+#: ../pykolab/imap/__init__.py:973
 #, python-format
 msgid "Deleting folder %s"
 msgstr ""
@@ -1857,6 +1865,44 @@ msgstr ""
 msgid "Returning thread local configuration"
 msgstr ""
 
+#: ../pykolab/itip/__init__.py:43
+#, python-format
+msgid "Method %r not really interesting for us."
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:49
+#, python-format
+msgid "Raw iTip payload: %s"
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:59
+msgid "Could not read iTip from message."
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:67
+#, python-format
+msgid "Duplicate iTip object: %s"
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:90
+msgid "iTip event without a start"
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:132
+msgid "Message is not an iTip message (non-multipart message)"
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:225
+#, python-format
+msgid "Failed to compose iTip reply message: %r"
+msgstr ""
+
+#: ../pykolab/itip/__init__.py:236 ../wallace/module_invitationpolicy.py:936
+#: ../wallace/module_resources.py:964
+#, python-format
+msgid "SMTP sendmail error: %r"
+msgstr ""
+
 #: ../pykolab/logger.py:173 ../pykolab/logger.py:179
 #, python-format
 msgid "Could not change permissions on %s: %r"
@@ -1991,6 +2037,16 @@ msgid ""
 "Attribute substitution for 'alternative_mail' failed in Recipient Policy"
 msgstr ""
 
+#: ../pykolab/plugins/roundcubedb/__init__.py:48
+#, python-format
+msgid "user_delete: %r"
+msgstr ""
+
+#: ../pykolab/plugins/roundcubedb/__init__.py:55
+#: ../pykolab/setup/setup_roundcube.py:160
+msgid "Roundcube installation path not found."
+msgstr ""
+
 #: ../pykolab/plugins/sievemgmt/__init__.py:51
 msgid "Wrong number of arguments for sieve management plugin"
 msgstr ""
@@ -2007,11 +2063,11 @@ msgstr ""
 msgid "No such component."
 msgstr ""
 
-#: ../pykolab/setup/setup_freebusy.py:45
+#: ../pykolab/setup/setup_freebusy.py:46
 msgid "Setup Free/Busy."
 msgstr ""
 
-#: ../pykolab/setup/setup_freebusy.py:49
+#: ../pykolab/setup/setup_freebusy.py:50
 msgid "Free/Busy is not installed on this system"
 msgstr ""
 
@@ -2033,7 +2089,7 @@ msgstr ""
 
 #: ../pykolab/setup/setup_imap.py:173 ../pykolab/setup/setup_kolabd.py:81
 #: ../pykolab/setup/setup_ldap.py:426 ../pykolab/setup/setup_mta.py:455
-#: ../pykolab/setup/setup_mysql.py:58 ../pykolab/setup/setup_roundcube.py:234
+#: ../pykolab/setup/setup_mysql.py:58 ../pykolab/setup/setup_roundcube.py:237
 #: ../pykolab/setup/setup_syncroton.py:102
 msgid "Could not configure to start on boot, the "
 msgstr ""
@@ -2371,10 +2427,6 @@ msgstr ""
 msgid "Could not start the MySQL database service."
 msgstr ""
 
-#. Regular old-fashioned Enterprise Linux
-#. Debian
-#. (open)SUSE
-#. "Unbreakable" Linux from Oracle
 #: ../pykolab/setup/setup_mysql.py:71
 msgid "What MySQL server are we setting up?"
 msgstr ""
@@ -2390,7 +2442,7 @@ msgid ""
 msgstr ""
 
 #: ../pykolab/setup/setup_mysql.py:82 ../pykolab/setup/setup_mysql.py:99
-#: ../pykolab/setup/setup_roundcube.py:180
+#: ../pykolab/setup/setup_roundcube.py:183
 #: ../pykolab/setup/setup_syncroton.py:63
 msgid "MySQL root password"
 msgstr ""
@@ -2486,21 +2538,17 @@ msgstr ""
 msgid "MySQL roundcube password"
 msgstr ""
 
-#: ../pykolab/setup/setup_roundcube.py:117
+#: ../pykolab/setup/setup_roundcube.py:120
 #, python-format
 msgid "Using template file %r"
 msgstr ""
 
-#: ../pykolab/setup/setup_roundcube.py:124
+#: ../pykolab/setup/setup_roundcube.py:127
 #, python-format
 msgid "Successfully compiled template %r, writing out to %r"
 msgstr ""
 
-#: ../pykolab/setup/setup_roundcube.py:157
-msgid "Roundcube installation path not found."
-msgstr ""
-
-#: ../pykolab/setup/setup_roundcube.py:225
+#: ../pykolab/setup/setup_roundcube.py:228
 #: ../pykolab/setup/setup_syncroton.py:93
 msgid "Could not start the webserver server service."
 msgstr ""
@@ -2570,29 +2618,29 @@ msgstr ""
 msgid "Could not change the permissions on %s"
 msgstr ""
 
-#: ../pykolab/utils.py:476
+#: ../pykolab/utils.py:479
 #, python-format
 msgid "Transliterating string %r with locale %r"
 msgstr ""
 
-#: ../pykolab/utils.py:484
+#: ../pykolab/utils.py:487
 msgid "Attempting to set locale"
 msgstr ""
 
-#: ../pykolab/utils.py:486
+#: ../pykolab/utils.py:489
 msgid "Success setting locale"
 msgstr ""
 
-#: ../pykolab/utils.py:488
+#: ../pykolab/utils.py:491
 msgid "Failure to set locale"
 msgstr ""
 
-#: ../pykolab/utils.py:496
+#: ../pykolab/utils.py:499
 #, python-format
 msgid "Executing '%s | %s'"
 msgstr ""
 
-#: ../pykolab/utils.py:507
+#: ../pykolab/utils.py:510
 #, python-format
 msgid "Could not translate %s using locale %s"
 msgstr ""
@@ -2608,90 +2656,124 @@ msgid "Got response: %r"
 msgstr ""
 
 #. Some data is not JSON
-#: ../pykolab/wap_client/__init__.py:333
+#: ../pykolab/wap_client/__init__.py:334
 msgid "Response data is not JSON"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:86 ../pykolab/xml/attendee.py:108
+#. support integer values, too
+#: ../pykolab/xml/attendee.py:9 ../pykolab/xml/attendee.py:17
+msgid "Needs Action"
+msgstr ""
+
+#: ../pykolab/xml/attendee.py:10 ../pykolab/xml/attendee.py:18
+msgid "Accepted"
+msgstr ""
+
+#: ../pykolab/xml/attendee.py:11 ../pykolab/xml/attendee.py:19
+msgid "Declined"
+msgstr ""
+
+#: ../pykolab/xml/attendee.py:12 ../pykolab/xml/attendee.py:20
+msgid "Tentatively Accepted"
+msgstr ""
+
+#: ../pykolab/xml/attendee.py:13 ../pykolab/xml/attendee.py:21
+msgid "Delegated"
+msgstr ""
+
+#: ../pykolab/xml/attendee.py:14
+msgid "Completed"
+msgstr ""
+
+#: ../pykolab/xml/attendee.py:15
+msgid "In Process"
+msgstr ""
+
+#: ../pykolab/xml/attendee.py:108 ../pykolab/xml/attendee.py:130
 msgid "Not a valid attendee"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:93
+#: ../pykolab/xml/attendee.py:115
 msgid "No valid delegator references found"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:113
+#: ../pykolab/xml/attendee.py:135
 msgid "No valid delegatee references found"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:149
+#: ../pykolab/xml/attendee.py:180
 #, python-format
 msgid "Invalid cutype %r"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:160
+#: ../pykolab/xml/attendee.py:192
 #, python-format
 msgid "Invalid participant status %r"
 msgstr ""
 
-#: ../pykolab/xml/attendee.py:168
+#: ../pykolab/xml/attendee.py:200
 #, python-format
 msgid "Invalid role %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:70 ../pykolab/xml/event.py:570
-#: ../pykolab/xml/event.py:606
+#: ../pykolab/xml/event.py:100 ../pykolab/xml/event.py:708
+#: ../pykolab/xml/event.py:751
 msgid "Event start needs datetime.date or datetime.datetime instance"
 msgstr ""
 
-#: ../pykolab/xml/event.py:198
+#: ../pykolab/xml/event.py:241
 #, python-format
 msgid "No attendee with email or name %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:206
+#: ../pykolab/xml/event.py:249
 #, python-format
 msgid "Invalid argument value attendee %r, must be basestring or Attendee"
 msgstr ""
 
-#: ../pykolab/xml/event.py:212
+#: ../pykolab/xml/event.py:255
 #, python-format
 msgid "No attendee with email %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:218
+#: ../pykolab/xml/event.py:261
 #, python-format
 msgid "No attendee with name %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:323
+#: ../pykolab/xml/event.py:426
 msgid "Invalid participant status"
 msgstr ""
 
-#: ../pykolab/xml/event.py:445
-msgid "Event end needs datetime.date or datetime.datetime instance"
+#: ../pykolab/xml/event.py:542
+#, python-format
+msgid "Invalid status %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:549
+#: ../pykolab/xml/event.py:550
 #, python-format
-msgid "Invalid status %r"
+msgid "Invalid classification %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:616
+#: ../pykolab/xml/event.py:577
+msgid "Event end needs datetime.date or datetime.datetime instance"
+msgstr ""
+
+#: ../pykolab/xml/event.py:761
 #, python-format
 msgid "Invalid status set: %r"
 msgstr ""
 
-#: ../pykolab/xml/event.py:735
+#: ../pykolab/xml/event.py:923
 msgid "No sender specified"
 msgstr ""
 
-#: ../pykolab/xml/event.py:744
+#: ../pykolab/xml/event.py:932
 #, python-format
-msgid "Reservation Request for %s was %s"
+msgid "Invitation for %s was %s"
 msgstr ""
 
-#: ../pykolab/xml/event.py:749
+#: ../pykolab/xml/event.py:937
 msgid "This is an automated response to one of your event requests."
 msgstr ""
 
@@ -2701,7 +2783,7 @@ msgid "Could not create %r: %r"
 msgstr ""
 
 #: ../saslauthd/__init__.py:137 ../saslauthd/__init__.py:145
-#: ../wallace/__init__.py:386 ../wallace/__init__.py:395
+#: ../wallace/__init__.py:403 ../wallace/__init__.py:412
 msgid "Traceback occurred, please report a bug at http://bugzilla.kolabsys.com"
 msgstr ""
 
@@ -2713,51 +2795,101 @@ msgstr ""
 msgid "Maximum tries exceeded, exiting"
 msgstr ""
 
-#: ../wallace/__init__.py:61
+#: ../tests/functional/test_wallace/test_005_resource_invitation.py:190
+#: ../wallace/module_resources.py:879
+#, python-format
+msgid "Reservation Request for %(summary)s was %(status)s"
+msgstr ""
+
+#. check notification message sent to resource owner (jane)
+#: ../tests/functional/test_wallace/test_005_resource_invitation.py:605
+#: ../tests/functional/test_wallace/test_005_resource_invitation.py:621
+#: ../wallace/module_resources.py:954
+#, python-format
+msgid "Booking for %s has been %s"
+msgstr ""
+
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:146
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:720
+#: ../wallace/module_invitationpolicy.py:374
+#, python-format
+msgid "\"%(summary)s\" has been %(status)s"
+msgstr ""
+
+#. check for notification message
+#. this notification should be suppressed until mark has replied, too
+#. this triggers an additional notification
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:616
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:622
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:635
+#: ../wallace/module_invitationpolicy.py:925
+#, python-format
+msgid "\"%s\" has been updated"
+msgstr ""
+
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:627
+#: ../tests/functional/test_wallace/test_007_invitationpolicy.py:639
+msgid "PENDING"
+msgstr ""
+
+#: ../wallace/__init__.py:57
+#, python-format
+msgid "Wallace modules: %r"
+msgstr ""
+
+#: ../wallace/__init__.py:69
+#, python-format
+msgid "Module %s.execute() failed on message %r with error: %s"
+msgstr ""
+
+#: ../wallace/__init__.py:78
 #, python-format
 msgid "Worker process %s initializing"
 msgstr ""
 
-#: ../wallace/__init__.py:83
+#: ../wallace/__init__.py:100
 msgid "Bind address for Wallace."
 msgstr ""
 
-#: ../wallace/__init__.py:109
+#: ../wallace/__init__.py:126
 msgid "Port that Wallace is supposed to use."
 msgstr ""
 
-#: ../wallace/__init__.py:160
+#: ../wallace/__init__.py:177
 #, python-format
 msgid "Could not bind to socket on port %d on bind "
 msgstr ""
 
-#: ../wallace/__init__.py:172
+#: ../wallace/__init__.py:189
 msgid "Could not shut down socket"
 msgstr ""
 
-#: ../wallace/__init__.py:236
+#: ../wallace/__init__.py:253
 msgid "Accepted connection"
 msgstr ""
 
-#: ../wallace/__init__.py:411
+#: ../wallace/__init__.py:428
 #, python-format
 msgid "Could not write pid file %s"
 msgstr ""
 
-#: ../wallace/module_footer.py:60 ../wallace/module_optout.py:61
-#: ../wallace/module_resources.py:109
+#: ../wallace/module_footer.py:60 ../wallace/module_gpgencrypt.py:60
+#: ../wallace/module_invitationpolicy.py:168 ../wallace/module_optout.py:61
+#: ../wallace/module_resources.py:120
 #, python-format
 msgid "Issuing callback after processing to stage %s"
 msgstr ""
 
-#: ../wallace/module_footer.py:61 ../wallace/module_optout.py:62
-#: ../wallace/module_resources.py:115
+#: ../wallace/module_footer.py:61 ../wallace/module_gpgencrypt.py:61
+#: ../wallace/module_invitationpolicy.py:170 ../wallace/module_optout.py:62
+#: ../wallace/module_resources.py:126
 #, python-format
 msgid "Testing cb_action_%s()"
 msgstr ""
 
-#: ../wallace/module_footer.py:63 ../wallace/module_optout.py:64
-#: ../wallace/module_resources.py:118
+#: ../wallace/module_footer.py:63 ../wallace/module_gpgencrypt.py:63
+#: ../wallace/module_invitationpolicy.py:172 ../wallace/module_optout.py:64
+#: ../wallace/module_resources.py:129
 #, python-format
 msgid "Attempting to execute cb_action_%s()"
 msgstr ""
@@ -2767,6 +2899,299 @@ msgstr ""
 msgid "Executing module footer for %r, %r"
 msgstr ""
 
+#: ../wallace/module_gpgencrypt.py:66
+#, python-format
+msgid "Executing module gpgencrypt for %r, %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:98
+msgid "Message is already encrypted (app/pgp-enc content-type)"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:102
+msgid "Message already encrypted by main content-type header"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:131
+msgid ""
+"Configured to encrypt to a key not configured, and strict policy enabled. "
+"Bailing out."
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:134
+msgid ""
+"Configured to encrypt to a key not configured, but continuing anyway (see "
+"'gpgencrypt_strict')."
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:171
+#, python-format
+msgid "Recipients: %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:183
+#, python-format
+msgid "Current keys: %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:188
+#, python-format
+msgid "Retrieving key for recipient: %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:192 ../wallace/module_gpgencrypt.py:208
+#, python-format
+msgid "Found matching address %r"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:200
+#, python-format
+msgid "Found matching address %r in remote keys"
+msgstr ""
+
+#: ../wallace/module_gpgencrypt.py:232
+#, python-format
+msgid "An error occurred: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:154
+#, python-format
+msgid "Invitation policy called for %r, %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:211
+#: ../wallace/module_resources.py:169
+#, python-format
+msgid "Failed to parse iTip events from message: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:215
+msgid ""
+"Message is not an iTip message or does not contain any (valid) iTip events."
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:219
+#, python-format
+msgid ""
+"iTip events attached to this message contain the following information: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:232
+#, python-format
+msgid "No itips, no users, pass along %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:235
+#, python-format
+msgid "iTips, but no users, pass along %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:255
+#, python-format
+msgid "No user attendee matching envelope recipient %s, skip message"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:259
+#, python-format
+msgid "Receiving user: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:284
+#, python-format
+msgid "Apply invitation policy %r for domain %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:295
+#, python-format
+msgid "Ignoring '%s' iTip method"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:299
+#, python-format
+msgid "iTip message %r consumed by the invitationpolicy module"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:315
+msgid "Pass invitation for manual processing"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:320
+#, python-format
+msgid "Receiving Attendee: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:339
+#, python-format
+msgid "Existing event: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:350
+#, python-format
+msgid "Precondition for event %r fulfilled: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:386
+#, python-format
+msgid "No RSVP for recipient %r requested"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:412
+msgid "Pass reply for manual processing"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:419
+#, python-format
+msgid "Sender Attendee: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:431
+#, python-format
+msgid ""
+"The iTip reply sequence (%r) doesn't match the referred event version (%r). "
+"Forwarding to Inbox."
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:437
+#, python-format
+msgid "Auto-updating event %r on iTip REPLY"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:459
+#: ../wallace/module_invitationpolicy.py:488
+msgid ""
+"The event referred by this reply was not found in the user's calendars. "
+"Forwarding to Inbox."
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:472
+msgid "Pass cancellation for manual processing"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:517
+#, python-format
+msgid "Checking if email address %r belongs to a local user"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:522
+#, python-format
+msgid "User DN: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:524
+#, python-format
+msgid "No user record(s) found for %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:577
+#, python-format
+msgid "User record doesn't have the mailbox attribute %r set"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:590
+#, python-format
+msgid "IMAP proxy authentication failed: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:612
+#, python-format
+msgid "List calendar folders for user %r: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:628
+#, python-format
+msgid "IMAP metadata for %r: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:658
+#, python-format
+msgid "Searching folder %r for event %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:670
+#: ../wallace/module_invitationpolicy.py:709
+#: ../wallace/module_resources.py:486
+#, python-format
+msgid "Failed to parse event from message %s/%s: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:696
+#, python-format
+msgid "Listing events from folder %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:715
+#, python-format
+msgid "Existing event %r conflicts with invitation %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:722
+#: ../wallace/module_resources.py:344
+#, python-format
+msgid "start: %r, end: %r, total: %r, messages: %d"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:748
+#, python-format
+msgid "%r is locked, waiting..."
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:811
+#, python-format
+msgid "Failed to save event: no calendar folder found for user %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:814
+#, python-format
+msgid "Save event %r to user calendar %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:827
+#, python-format
+msgid "Failed to save event to user calendar at %r: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:843
+#, python-format
+msgid "Delete event %r in %r: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:863
+#, python-format
+msgid "Compose participation status summary for event %r to user %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:901
+#, python-format
+msgid ""
+"Waiting for more automated replies (got %d of %d); skipping notification"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:998
+#, python-format
+msgid "Updated %s's copy of %r: %r"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:1001
+#, python-format
+msgid "Attendee %s's copy of %r not found"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:1004
+#, python-format
+msgid "Attendee %r not found in LDAP"
+msgstr ""
+
+#: ../wallace/module_invitationpolicy.py:1008
+#, python-format
+msgid ""
+"\n"
+"        %(name)s has %(status)s your invitation for %(summary)s.\n"
+"\n"
+"        *** This is an automated response sent by the Kolab Invitation "
+"system ***\n"
+"    "
+msgstr ""
+
 #. modules.next_module('optout')
 #: ../wallace/module_optout.py:70
 #, python-format
@@ -2788,220 +3213,262 @@ msgstr ""
 msgid "Could not send request to optout_url %s"
 msgstr ""
 
-#: ../wallace/module_resources.py:96
+#: ../wallace/module_resources.py:110
 #, python-format
 msgid "Resource Management called for %r, %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:159
+#: ../wallace/module_resources.py:174
 msgid "Message is not an iTip message or does not contain any "
 msgstr ""
 
-#: ../wallace/module_resources.py:167
+#: ../wallace/module_resources.py:182
 msgid "iTip events attached to this message contain the "
 msgstr ""
 
-#: ../wallace/module_resources.py:188
+#: ../wallace/module_resources.py:205
 msgid "Not an iTip message, but sent to resource nonetheless. Reject message"
 msgstr ""
 
-#: ../wallace/module_resources.py:196
-msgid "No itips, no resources, pass along"
+#: ../wallace/module_resources.py:213
+#, python-format
+msgid "No itips, no resources, pass along %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:200
-msgid "iTips, but no resources, pass along"
+#: ../wallace/module_resources.py:216
+#, python-format
+msgid "iTips, but no resources, pass along %r"
+msgstr ""
+
+#: ../wallace/module_resources.py:225
+#, python-format
+msgid "No resource attendees matching envelope recipient %s, Reject message"
 msgstr ""
 
-#: ../wallace/module_resources.py:233
+#: ../wallace/module_resources.py:234
 #, python-format
 msgid "Resources: %r; %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:242
+#: ../wallace/module_resources.py:244
 #, python-format
 msgid "Receiving Resource: %r; %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:250
+#: ../wallace/module_resources.py:252
 #, python-format
 msgid "Recipient %r is non-participant, ignoring message"
 msgstr ""
 
-#: ../wallace/module_resources.py:281
+#: ../wallace/module_resources.py:279
 #, python-format
-msgid "Failed to read resource calendar for %r: %r"
+msgid "Accept invitation for individual resource %r / %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:286
+#: ../wallace/module_resources.py:308
 #, python-format
-msgid "start: %r, end: %r, total: %r, messages: %d"
+msgid "Delegate invitation for resource collection %r to %r"
+msgstr ""
+
+#: ../wallace/module_resources.py:340
+#, python-format
+msgid "Failed to read resource calendar for %r: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:292
+#: ../wallace/module_resources.py:350
 #, python-format
 msgid "Polling for resource %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:295
+#: ../wallace/module_resources.py:353
 #, python-format
 msgid "Resource %r has been popped from the list"
 msgstr ""
 
-#: ../wallace/module_resources.py:299
+#: ../wallace/module_resources.py:357
 msgid "Resource is a collection"
 msgstr ""
 
-#: ../wallace/module_resources.py:310
+#: ../wallace/module_resources.py:368
 #, python-format
 msgid "Removed conflicting resources from %r: (%r) => %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:322
+#: ../wallace/module_resources.py:380
 #, python-format
 msgid "Conflicting events: %r for resource %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:351
+#: ../wallace/module_resources.py:397
 #, python-format
-msgid "Accept invitation for individual resource %r / %r"
+msgid "Delegate to another resource collection member: %r to %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:365
-#, python-format
-msgid "Delegate invitation for resource collection %r to %r"
-msgstr ""
-
-#: ../wallace/module_resources.py:408
+#: ../wallace/module_resources.py:459
 #, python-format
 msgid "Checking events in resource folder %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:424
+#: ../wallace/module_resources.py:475
 #, python-format
 msgid "Fetching message UID %r from folder %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:472
+#: ../wallace/module_resources.py:498
 #, python-format
 msgid "Event %r conflicts with event %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:499
+#: ../wallace/module_resources.py:525
 #, python-format
 msgid "Adding event to %r: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:537
+#: ../wallace/module_resources.py:573
 #, python-format
 msgid "Failed to save event to resource calendar at %r: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:553
+#: ../wallace/module_resources.py:590
 #, python-format
 msgid "Delete resource calendar object %r in %r: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:587
-#, python-format
-msgid "Method %r not really interesting for us."
-msgstr ""
-
-#: ../wallace/module_resources.py:595
-#, python-format
-msgid "Raw iTip payload: %s"
-msgstr ""
-
-#: ../wallace/module_resources.py:605
-msgid "Could not read iTip from message."
-msgstr ""
-
-#: ../wallace/module_resources.py:613
-#, python-format
-msgid "Duplicate iTip event: %s"
-msgstr ""
-
-#: ../wallace/module_resources.py:638
-msgid "iTip event without a start"
-msgstr ""
-
-#: ../wallace/module_resources.py:676
-msgid "Message is not an iTip message (non-multipart message)"
-msgstr ""
-
-#: ../wallace/module_resources.py:705
+#: ../wallace/module_resources.py:633
 #, python-format
 msgid "Checking if email address %r belongs to a resource (collection)"
 msgstr ""
 
-#: ../wallace/module_resources.py:713 ../wallace/module_resources.py:781
-#: ../wallace/module_resources.py:815
+#: ../wallace/module_resources.py:641 ../wallace/module_resources.py:709
+#: ../wallace/module_resources.py:743
 #, python-format
 msgid "Resource record(s): %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:715 ../wallace/module_resources.py:783
-#: ../wallace/module_resources.py:818
+#: ../wallace/module_resources.py:643 ../wallace/module_resources.py:711
+#: ../wallace/module_resources.py:746
 #, python-format
 msgid "No resource (collection) records found for %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:719 ../wallace/module_resources.py:787
-#: ../wallace/module_resources.py:822
+#: ../wallace/module_resources.py:647 ../wallace/module_resources.py:715
+#: ../wallace/module_resources.py:750
 #, python-format
 msgid "Resource record: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:739
+#: ../wallace/module_resources.py:667
 #, python-format
 msgid "Raw itip_events: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:747
+#: ../wallace/module_resources.py:675
 #, python-format
 msgid "Raw set of attendees: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:755
+#: ../wallace/module_resources.py:683
 #, python-format
 msgid "Raw set of resources: %r"
 msgstr ""
 
-#: ../wallace/module_resources.py:774
+#: ../wallace/module_resources.py:702
 #, python-format
 msgid "Checking if attendee %r is a resource (collection)"
 msgstr ""
 
-#: ../wallace/module_resources.py:790 ../wallace/module_resources.py:824
+#: ../wallace/module_resources.py:718 ../wallace/module_resources.py:752
 msgid "Resource reservation made but no resource records found"
 msgstr ""
 
-#: ../wallace/module_resources.py:809
+#: ../wallace/module_resources.py:737
 #, python-format
 msgid "Checking if resource %r is a resource (collection)"
 msgstr ""
 
-#: ../wallace/module_resources.py:827
+#: ../wallace/module_resources.py:755
 msgid "The following resources are being referred to in the "
 msgstr ""
 
-#: ../wallace/module_resources.py:867
+#: ../wallace/module_resources.py:894
 #, python-format
 msgid ""
 "\n"
-"                Your reservation was delegated to \"%s\"\n"
-"                which is available for the requested time.\n"
+"                *** This is an automated response, please do not reply! ***\n"
+"\n"
+"                Your reservation was delegated to \"%s\" which is available "
+"for the requested time.\n"
 "            "
 msgstr ""
 
+#: ../wallace/module_resources.py:905
+#, python-format
+msgid ""
+"\n"
+"        *** This is an automated response, please do not reply! ***\n"
+"        \n"
+"        We hereby inform you that your reservation was %s.\n"
+"    "
+msgstr ""
+
+#: ../wallace/module_resources.py:912
+#, python-format
+msgid ""
+"\n"
+"            If you have questions about this reservation, please contact\n"
+"            %s <%s> %s\n"
+"        "
+msgstr ""
+
+#: ../wallace/module_resources.py:941
+#, python-format
+msgid "Sending booking notification for event %r to %r from %r"
+msgstr ""
+
+#: ../wallace/module_resources.py:954
+msgid "failed"
+msgstr ""
+
+#: ../wallace/module_resources.py:973
+#, python-format
+msgid ""
+"\n"
+"            The resource booking for %(resource)s by %(orgname)s <%(orgemail)"
+"s> has been %(status)s for %(date)s.\n"
+"\n"
+"            *** This is an automated message, sent to you as the resource "
+"owner. ***\n"
+"        "
+msgstr ""
+
+#: ../wallace/module_resources.py:979
+#, python-format
+msgid ""
+"\n"
+"            A reservation request for %(resource)s could not be processed "
+"automatically.\n"
+"            Please contact %(orgname)s <%(orgemail)s> who requested this "
+"resource for %(date)s. Subject: %(summary)s.\n"
+"\n"
+"            *** This is an automated message, sent to you as the resource "
+"owner. ***\n"
+"        "
+msgstr ""
+
 #. This is a nested module
 #: ../wallace/modules.py:97
 #, python-format
 msgid "Module Group: %s"
 msgstr ""
 
-#: ../wallace/modules.py:108 ../wallace/modules.py:113
-msgid "No such module."
+#: ../wallace/modules.py:108
+#, python-format
+msgid "No such module %r in modules %r (1)."
+msgstr ""
+
+#: ../wallace/modules.py:113
+#, python-format
+msgid "No such module %r in modules %r (2)."
 msgstr ""
 
 #: ../wallace/modules.py:119




More information about the commits mailing list