]> Frank Brehm's Git Trees - pixelpark/pp-admin-tools.git/commitdiff
Updating translations.
authorFrank Brehm <frank.brehm@pixelpark.com>
Tue, 30 Jan 2024 17:23:09 +0000 (18:23 +0100)
committerFrank Brehm <frank.brehm@pixelpark.com>
Tue, 30 Jan 2024 17:23:09 +0000 (18:23 +0100)
locale/de_DE/LC_MESSAGES/pp_admintools.po
locale/en_US/LC_MESSAGES/pp_admintools.po
locale/pp_admintools.pot

index c6c90e88db013a15b45524a48a6470b91161ddc2..fe3f81512737c1d1a5953ef2a355a3b8df9fc22c 100644 (file)
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pp_admintools 0.11.0\n"
 "Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2024-01-26 14:49+0100\n"
-"PO-Revision-Date: 2024-01-26 14:35+0100\n"
+"POT-Creation-Date: 2024-01-30 18:22+0100\n"
+"PO-Revision-Date: 2024-01-30 18:15+0100\n"
 "Last-Translator: Frank Brehm <frank.brehm@pixelpark.com>\n"
 "Language: de_DE\n"
 "Language-Team: de_DE <solution@pixelpark.com>\n"
@@ -16,13 +16,13 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
+"Generated-By: Babel 2.12.1\n"
 
-#: lib/pp_admintools/app/__init__.py:143
+#: lib/pp_admintools/app/__init__.py:128
 msgid "Using logfile {!r}."
 msgstr "Verwende Logdatei {!r}."
 
-#: lib/pp_admintools/app/__init__.py:145
+#: lib/pp_admintools/app/__init__.py:130
 msgid "Don't using a logfile."
 msgstr "Verwende keine Logdatei."
 
@@ -44,8 +44,9 @@ msgstr ""
 "Die DN des LDAP-Containers (meistens eine OU), in dem alle virtuellen Aliaseinträge geplegt "
 "werden sollen. Vorgabe: {!r}"
 
-#: lib/pp_admintools/app/barracuda_sync.py:149 lib/pp_admintools/app/ldap.py:492
-#: lib/pp_admintools/app/mirror_ldap.py:122 lib/pp_admintools/app/pdns.py:285
+#: lib/pp_admintools/app/barracuda_sync.py:149 lib/pp_admintools/app/ldap.py:457
+#: lib/pp_admintools/app/ldap.py:468 lib/pp_admintools/app/mirror_ldap.py:114
+#: lib/pp_admintools/app/pdns.py:275
 msgid "SECONDS"
 msgstr "SEKUNDEN"
 
@@ -84,11 +85,11 @@ msgid "Error {} on evaluating lookup table types"
 msgstr "Fehler {} beim Ermitteln der Lookup-Tabellentypen"
 
 #: lib/pp_admintools/app/barracuda_sync.py:231 lib/pp_admintools/app/barracuda_sync.py:427
-#: lib/pp_admintools/app/dns_deploy_zones.py:436 lib/pp_admintools/app/dns_deploy_zones.py:796
-#: lib/pp_admintools/app/ldap.py:1001 lib/pp_admintools/app/ldap.py:1134
-#: lib/pp_admintools/app/ldap.py:1187 lib/pp_admintools/app/ldap.py:1240
-#: lib/pp_admintools/app/ldap.py:1545 lib/pp_admintools/app/ldap.py:1579
-#: lib/pp_admintools/app/ldap.py:1613 lib/pp_admintools/app/ldap.py:1647
+#: lib/pp_admintools/app/dns_deploy_zones.py:431 lib/pp_admintools/app/dns_deploy_zones.py:791
+#: lib/pp_admintools/app/ldap.py:1120 lib/pp_admintools/app/ldap.py:1267
+#: lib/pp_admintools/app/ldap.py:1327 lib/pp_admintools/app/ldap.py:1387
+#: lib/pp_admintools/app/ldap.py:1695 lib/pp_admintools/app/ldap.py:1736
+#: lib/pp_admintools/app/ldap.py:1777 lib/pp_admintools/app/ldap.py:1818
 msgid "Result:"
 msgstr "Ergebnis:"
 
@@ -294,7 +295,7 @@ msgstr "Es sollen keine LDAP-Einträge geändert werden."
 msgid "LDAP Entries to modified:"
 msgstr "Zu ändernde LDAP-Einträge:"
 
-#: lib/pp_admintools/app/barracuda_sync.py:756 lib/pp_admintools/app/ldap.py:1760
+#: lib/pp_admintools/app/barracuda_sync.py:756 lib/pp_admintools/app/ldap.py:1931
 msgid "Values to add to attribute {!r}:"
 msgstr "Werte, die zu Attribut {!r} hinzugefügt werden:"
 
@@ -302,11 +303,11 @@ msgstr "Werte, die zu Attribut {!r} hinzugefügt werden:"
 msgid "Values to be removed from attribute {!r}:"
 msgstr "Werte, die von Attribut {!r} gelöscht werden sollen:"
 
-#: lib/pp_admintools/app/barracuda_sync.py:777 lib/pp_admintools/app/ldap.py:1781
+#: lib/pp_admintools/app/barracuda_sync.py:777 lib/pp_admintools/app/ldap.py:1952
 msgid "Changes for attribute {!r}:"
 msgstr "Änedrungen für Attribut {!r}:"
 
-#: lib/pp_admintools/app/barracuda_sync.py:780 lib/pp_admintools/app/ldap.py:1784
+#: lib/pp_admintools/app/barracuda_sync.py:780 lib/pp_admintools/app/ldap.py:1955
 msgid "No changes to attribute {!r}."
 msgstr "Keine Änderungen an Attribut {!r}."
 
@@ -364,11 +365,11 @@ msgstr[1] "{} Alias-Einträge im LDAP geändert."
 msgid "Get all necessary data from LDAP and static virtual aliases table ..."
 msgstr "Hole alle notwendigen Daten aus dem LDAP und aus der statische Tabelle der virtuellen Aliase …"
 
-#: lib/pp_admintools/app/barracuda_sync.py:972 lib/pp_admintools/app/mirror_ldap.py:352
+#: lib/pp_admintools/app/barracuda_sync.py:972 lib/pp_admintools/app/mirror_ldap.py:345
 msgid "Finished."
 msgstr "Beendet."
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:78
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:69
 msgid ""
 "Checking all attributes with a DN syntax ({alist}) in the given instance. The check is for the "
 "DN-syntax of the attributes and whether they are referencing to existing entries in LDAP."
@@ -376,70 +377,70 @@ msgstr ""
 "Überprüft alle Attribute mit einer DN-Syntax ({alist}) in der übergebenen Instanz. Es wird die "
 "DN-Syntax der Attribute überprüft, und ob sie existierende Einträge im LDAP referenzieren."
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:97
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:105
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:88
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:96
 msgid "Script options"
 msgstr "Skript-Optionen"
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:100
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:91
 msgid "FILE"
 msgstr "DATEI"
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:101
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:92
 msgid "Exportig the faulty entries and attributes into a YAML file, if there were found some of them."
 msgstr ""
 "Exportieren der fehlerhaften Einträge und Attribute in eine YAML-Datei, falls welche gefunden "
 "wurden."
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:129
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:120
 msgid "Created export file {!r}."
 msgstr "Export-Datei {!r} erstellt."
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:131
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:122
 msgid "Start checking all DN-like attributes in in LDAP instance {inst!r} ({url}) ..."
 msgstr "Beginne mit der Überprüfung aller Attribute mit DN-Syntax in der LDAP-Instanz {inst!r} ({url}) …"
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:154
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:145
 msgid "Found one entry to check."
 msgid_plural "Found {} entries to check."
 msgstr[0] "Fand einen Eintrag, der überprüft werden muss."
 msgstr[1] "Fand {} Einträge, die überprüft werden müssen."
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:158
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:149
 msgid "Found no to check."
 msgstr "Fand nichts zum überprüfen."
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:178
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:169
 msgid "Got an inconsistent entry."
 msgid_plural "Got {} inconsistent entries."
 msgstr[0] "Habe einen inkonsistenten Eintrag gefunden."
 msgstr[1] "Habe {} inkonsistente Einträge gefunden."
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:181
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:172
 msgid "There is one inconsistent attribute."
 msgid_plural "There are {} inconsistent attributes."
 msgstr[0] "Es gibt ein inkonsistentes Attribut."
 msgstr[1] "Es gibt {} inkonsistente Attribute."
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:186
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:177
 msgid "Writing export file {!r} ..."
 msgstr "Schreibe Export-Datei {!r} …"
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:193
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:184
 msgid "Did not found any inconsistent entries."
 msgstr "Keine inkonsistente Attribute gefunden."
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:214
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:205
 msgid "Checking DN-like attributes of entry {!r} ..."
 msgstr "Überprüfe Attribute mit DN-Syntax von Eintrag {!r} …"
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:219
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:189
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:233
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:210
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:180
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:224
 msgid "Got attributes:"
 msgstr "Gefundene Attribute:"
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:82
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:73
 msgid ""
 "Reports the password hashing schemes of {attr} attributes in LDAP. Without a filter or a more "
 "special Base-DN the hashing schemes of all {attr} attributes in the LDAP tree are shown. One can"
@@ -450,11 +451,11 @@ msgstr ""
 "angezeigt. Man kann die Ausgabe durch einen regulären LDAP-Filter bzw. durch die Angabe von "
 "einem oder mehreren Hashing-Schemen filtern."
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:108
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:99
 msgid "FILTER"
 msgstr "FILTER"
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:109
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:100
 msgid ""
 "An additional LDAP filter to limit the entries to print out their password hashing schema. "
 "Please note, that this filter will be wrapped by parantheses to combine it with the default "
@@ -464,7 +465,7 @@ msgstr ""
 "angezeigt werden soll. Bitte beachten, dass dieser Filter mit Klammern umgeben wird, um ihn mit "
 "dem Vorgabe-Filter {!r} zu verbinden."
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:123
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:114
 msgid ""
 "One or more schemes (hashing methods) for filtering the {attr} attributes. It is possible to "
 "give here the value {val_list!r}, then all possible schemes are shown and exit."
@@ -473,15 +474,15 @@ msgstr ""
 "den Wert {val_list!r} anzugeben, dann werden alle verfügbaren Hashing-Methoden ausgegeben und "
 "beendet."
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:129 lib/pp_admintools/app/set_ldap_password.py:183
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:120 lib/pp_admintools/app/set_ldap_password.py:175
 msgid "SCHEMA"
 msgstr "SCHEMA"
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:135
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:126
 msgid "Show more details in output, e.g. the entry DN."
 msgstr "Zeigt mehr Details in der Ausgabe an, die DNs der Einträge."
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:167
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:158
 msgid ""
 "Start reporting password hashing schemes of {attr} attributes in in LDAP instance {inst!r} "
 "({url}) ..."
@@ -489,23 +490,23 @@ msgstr ""
 "Beginne mit der Ausgabe der Passwort-Hashing-Mechanismen der {attr}-Attribute in der LDAP-"
 "Instanz {inst!r} ({url}) …"
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:180
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:171
 msgid "Used LDAP filter: {!r}."
 msgstr "Verwendeter LDAP-Filter: {!r}."
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:222
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:213
 msgid "Found entry {!r} with data:"
 msgstr "Fand Eintrag {!r} mit folgenden Daten:"
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:226
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:217
 msgid "Did not found any entries with a {attr} attribute and the given filters."
 msgstr "Keine Einträge mit einem {attr}-Attribut und dem gegebenen Filter gefunden."
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:233
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:224
 msgid "Found entry DNs:"
 msgstr "Gefundener Eintrag-DNs:"
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:75
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:66
 msgid ""
 "Removes all LDAP groups, which does not have any members, that means, they are one of the "
 "following objectClasses: {ocl}, and they have none of the following attributes: {atl}."
@@ -513,268 +514,268 @@ msgstr ""
 "Löscht alle LDAP-Gruppen, die keine Mitglieder haben. Das heißt, sie haben eine der folgenden "
 "Objektklassen: {ocl}, und sie besitzen keines der folgenden Attribute: {atl}."
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:124 lib/pp_admintools/app/remove_ldap_user.py:134
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:115 lib/pp_admintools/app/remove_ldap_user.py:127
 msgid "Removing options"
 msgstr "Lösch-Optionen"
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:128
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:119
 msgid "The base DN used as the root for the LDAP search."
 msgstr "Die Basis-DN, die als Ausgangspunkt bei der LDAP-Suche verwendet werden soll."
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:154 lib/pp_admintools/app/remove_ldap_user.py:202
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:145 lib/pp_admintools/app/remove_ldap_user.py:195
 msgid "Checking given instances for admin and read/write access."
 msgstr "Überprüfe die gegebenen Instanzen nach Admin- und Schreib-/Lesezugriffsrechten."
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:161 lib/pp_admintools/app/remove_ldap_user.py:209
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:152 lib/pp_admintools/app/remove_ldap_user.py:202
 msgid "LDAP instance {!r} not found in configuration."
 msgstr "Die LDAP-Instanz {!r} wurde nicht in der Konfiguration gefunden."
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:169 lib/pp_admintools/app/remove_ldap_user.py:217
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:160 lib/pp_admintools/app/remove_ldap_user.py:210
 msgid "LDAP instance {!r} has only readonly access."
 msgstr "Die LDAP-Instanz {!r} besitzt nur Lesezugriffsrechte."
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:174 lib/pp_admintools/app/remove_ldap_user.py:222
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:165 lib/pp_admintools/app/remove_ldap_user.py:215
 msgid "No admin access to LDAP instance {!r}."
 msgstr "Keine Admin-Zugriffsrechte bei LDAP-Instanz {!r}."
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:184
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:175
 msgid "Searching for empty groups ..."
 msgstr "Suche nach leeren Gruppen …"
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:191
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:182
 msgid "No more empty groups left for removing."
 msgstr "Keine weitern Gruppen zu Löschen."
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:194
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:185
 msgid "Lap {} on searching for empty groups to remove."
 msgstr "Runde {} bei der Suche nach zu löschenden leeren Gruppen."
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:229
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:220
 msgid "Searching for member attributes of {!r} ..."
 msgstr "Suche nach Mitglieds-Attributen von {!r} …"
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:239
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:230
 msgid "Found attribute {at!r} in group {g!r}."
 msgstr "Fand Attribut {at!r} in Gruppe {g!r}."
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:242
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:233
 msgid "Group {!r} is not empty!"
 msgstr "Die Gruppe {!r} ist nicht leer!"
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:247
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:238
 msgid "Removing group {!r} ..."
 msgstr "Lösche Gruppe {!r} …"
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:251
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:242
 msgid "Dont't removing group {!r}."
 msgstr "Kein Löschen der Gruppe {!r}."
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:258
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:249
 msgid "Do you really want to remove the group '{}'"
 msgstr "Möchten Sie die Gruppe '{}' wirklich löschen"
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:260
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:251
 msgid "[{yes}/{no}]?"
 msgstr "[{yes}/{no}]?"
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:261 lib/pp_admintools/app/ldap.py:368
-#: lib/pp_admintools/app/mirror_ldap.py:253 lib/pp_admintools/app/remove_ldap_user.py:308
-#: lib/pp_admintools/app/set_ldap_password.py:489
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:252 lib/pp_admintools/app/ldap.py:325
+#: lib/pp_admintools/app/mirror_ldap.py:245 lib/pp_admintools/app/remove_ldap_user.py:301
+#: lib/pp_admintools/app/set_ldap_password.py:481
 msgid "No"
 msgstr "Nein"
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:261 lib/pp_admintools/app/mirror_ldap.py:253
-#: lib/pp_admintools/app/remove_ldap_user.py:308 lib/pp_admintools/app/set_ldap_password.py:489
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:252 lib/pp_admintools/app/mirror_ldap.py:245
+#: lib/pp_admintools/app/remove_ldap_user.py:301 lib/pp_admintools/app/set_ldap_password.py:481
 msgid "yes"
 msgstr "ja"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:124
+#: lib/pp_admintools/app/dns_deploy_zones.py:119
 msgid "Generation of the BIND9 configuration file for slave zones."
 msgstr "Generierung der BIND9-Konfigurationsdatei für Slave-Zonen."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:252 lib/pp_admintools/app/mk_ldap_passwd.py:86
-#: lib/pp_admintools/app/set_ldap_password.py:125
+#: lib/pp_admintools/app/dns_deploy_zones.py:247 lib/pp_admintools/app/mk_ldap_passwd.py:78
+#: lib/pp_admintools/app/set_ldap_password.py:117
 msgid "Options for {}"
 msgstr "Optionen für {}"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:257
+#: lib/pp_admintools/app/dns_deploy_zones.py:252
 msgid "Keep a backup file for each changed configuration file."
 msgstr "Eine Backup-Datei für jede geänderte Konfigurationsdatei aufbewahren."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:262
+#: lib/pp_admintools/app/dns_deploy_zones.py:257
 msgid "Keeping the temporary directory instead of removing it at the end (e.g. for debugging purposes)"
 msgstr "Aufbewahren des temporären Verzeichnisses, anstatt es am Ende zu löschen (z.Bsp. zum Debuggen)"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:286
+#: lib/pp_admintools/app/dns_deploy_zones.py:281
 msgid "Post init phase."
 msgstr "Nach-Init-Phase."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:290
+#: lib/pp_admintools/app/dns_deploy_zones.py:285
 msgid "My own post init phase."
 msgstr "Die eigene Nach-Init-Phase."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:306
+#: lib/pp_admintools/app/dns_deploy_zones.py:301
 msgid "Unknown time zone: {!r}."
 msgstr "Unbekannte Zeitzone: {!r}."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:321
+#: lib/pp_admintools/app/dns_deploy_zones.py:316
 msgid "You must be root to execute this script."
 msgstr "Du musst root sein, um dieses Skript ausführen zu können."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:323
+#: lib/pp_admintools/app/dns_deploy_zones.py:318
 msgid "But in simulation mode we are continuing nevertheless."
 msgstr "Aber im Simulationsmodus machen wir trotzdem weiter."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:330
+#: lib/pp_admintools/app/dns_deploy_zones.py:325
 msgid "Starting: {}"
 msgstr "Starte: {}"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:338
+#: lib/pp_admintools/app/dns_deploy_zones.py:333
 msgid "Using the global DNS master is not supported, please use 'local' or 'public'"
 msgstr "Die Verwendung des glovalen Masters wird nicht unterstützt, bitte 'local' oder 'public' verwenden"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:351
+#: lib/pp_admintools/app/dns_deploy_zones.py:346
 msgid "Could not occupy pidfile: {}"
 msgstr "Konnte PID-Datei nicht vereinnahmen."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:376
+#: lib/pp_admintools/app/dns_deploy_zones.py:371
 msgid "Ending: {}"
 msgstr "Beendet: {}"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:381
+#: lib/pp_admintools/app/dns_deploy_zones.py:376
 msgid "Cleaning up ..."
 msgstr "Aufräumen …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:385
+#: lib/pp_admintools/app/dns_deploy_zones.py:380
 msgid "Searching for {!r}."
 msgstr "Suche nach {!r}."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:388
+#: lib/pp_admintools/app/dns_deploy_zones.py:383
 msgid "Keep existing backup file {!r}."
 msgstr "Behalte existierende Backup-Datei {!r}."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:390
+#: lib/pp_admintools/app/dns_deploy_zones.py:385
 msgid "Removing {!r} ..."
 msgstr "Lösche {!r} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:396
+#: lib/pp_admintools/app/dns_deploy_zones.py:391
 msgid "Error removing {p!r} - {c}: {e}"
 msgstr "Fehler beim Löschen {p!r} - {c}: {e}"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:401
+#: lib/pp_admintools/app/dns_deploy_zones.py:396
 msgid "Temporary directory {!r} will not be removed. It's on yours to remove it manually."
 msgstr ""
 "Das temporäre Verzeichnis {!r} wird nicht gelöscht. Du musst Dich selbst darum kümmern, es "
 "manuell zu löschen."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:406
+#: lib/pp_admintools/app/dns_deploy_zones.py:401
 msgid "Destroying temporary directory {!r} ..."
 msgstr "Zerstöre temporäres Verzeichnis {!r} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:414
+#: lib/pp_admintools/app/dns_deploy_zones.py:409
 msgid "Temporary directory: {!r}."
 msgstr "Temporäres Verzeichnis: {!r}."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:419
+#: lib/pp_admintools/app/dns_deploy_zones.py:414
 msgid "Temporary zones conf: {!r}"
 msgstr "Temporäre Zonenkonfiguration: {!r}"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:424
+#: lib/pp_admintools/app/dns_deploy_zones.py:419
 msgid "Trying to get all keys from named.conf ..."
 msgstr "Versuche alle Schlüssel der named.conf zu ermitteln …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:430 lib/pp_admintools/app/dns_deploy_zones.py:790
-#: lib/pp_admintools/app/dns_deploy_zones.py:826 lib/pp_admintools/app/dns_deploy_zones.py:858
-#: lib/pp_admintools/app/dns_deploy_zones.py:893 lib/pp_admintools/app/dns_deploy_zones.py:928
-#: lib/pp_admintools/app/mail.py:317
+#: lib/pp_admintools/app/dns_deploy_zones.py:425 lib/pp_admintools/app/dns_deploy_zones.py:785
+#: lib/pp_admintools/app/dns_deploy_zones.py:821 lib/pp_admintools/app/dns_deploy_zones.py:853
+#: lib/pp_admintools/app/dns_deploy_zones.py:888 lib/pp_admintools/app/dns_deploy_zones.py:923
+#: lib/pp_admintools/app/mail.py:310
 msgid "Executing: {}"
 msgstr "Führe aus: {}"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:477 lib/pp_admintools/app/dns_deploy_zones.py:479
+#: lib/pp_admintools/app/dns_deploy_zones.py:472 lib/pp_admintools/app/dns_deploy_zones.py:474
 msgid "Found named keys:"
 msgstr "iGefundene Schlüssel von named:"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:479 lib/pp_admintools/app/dns_deploy_zones.py:510
+#: lib/pp_admintools/app/dns_deploy_zones.py:474 lib/pp_admintools/app/dns_deploy_zones.py:505
 msgid "None"
 msgstr "Keine"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:484
+#: lib/pp_admintools/app/dns_deploy_zones.py:479
 msgid "Generating {} ..."
 msgstr "Generiere {} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:508 lib/pp_admintools/app/dns_deploy_zones.py:510
+#: lib/pp_admintools/app/dns_deploy_zones.py:503 lib/pp_admintools/app/dns_deploy_zones.py:505
 msgid "Collected server configuration:"
 msgstr "Ermittelte Servers-Konfiguration:"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:531
+#: lib/pp_admintools/app/dns_deploy_zones.py:526
 msgid "Generated file {!r}:"
 msgstr "Generierte Datei {!r}:"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:541
+#: lib/pp_admintools/app/dns_deploy_zones.py:536
 msgid "Could not get zone info for {z!r} - {cls}: {msg}"
 msgstr "Konnte keine Zoneninformationen für {z!r} holen - {cls}: {msg}"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:553
+#: lib/pp_admintools/app/dns_deploy_zones.py:548
 msgid "Pure local zone {!r} will not be considered."
 msgstr "Die rein lokale Zone {!r} wird nich mit beachtet."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:585
+#: lib/pp_admintools/app/dns_deploy_zones.py:580
 msgid "Key {k!r} for zone {z!r} not found in named configuration."
 msgstr "Der Schlüssel {k!r} für die Zone {z!r} wurde in der named-Konfiguration nicht gefunden."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:615
+#: lib/pp_admintools/app/dns_deploy_zones.py:610
 msgid "Got IPv4 tuples: {}"
 msgstr "Habe IPv4-Tupels erhalten: {}"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:639
+#: lib/pp_admintools/app/dns_deploy_zones.py:634
 msgid "Got IPv6 tokens: {}"
 msgstr "Habe IPv6-Tupels erhalten: {}"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:646
+#: lib/pp_admintools/app/dns_deploy_zones.py:641
 msgid "Comparing generated files with existing ones."
 msgstr "Vergleiche die generierten Dateien mit den existierenden."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:653
+#: lib/pp_admintools/app/dns_deploy_zones.py:648
 msgid "Files to replace:"
 msgstr "Dateien, die ersetzt werden:"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:659
+#: lib/pp_admintools/app/dns_deploy_zones.py:654
 msgid "Source file not defined."
 msgstr "Die Quell-Datei ist nicht definiert."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:661
+#: lib/pp_admintools/app/dns_deploy_zones.py:656
 msgid "Target file not defined."
 msgstr "Die Ziel-Datei ist nicht definiert."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:663
+#: lib/pp_admintools/app/dns_deploy_zones.py:658
 msgid "Comparing {one!r} with {two!r} ..."
 msgstr "Vergleiche {one!r} mit {two!r} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:667 lib/pp_admintools/app/dns_deploy_zones.py:676
+#: lib/pp_admintools/app/dns_deploy_zones.py:662 lib/pp_admintools/app/dns_deploy_zones.py:671
 msgid "{what} {f!r} does not exists."
 msgstr "Die {what} {f!r} existiert nicht."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:668 lib/pp_admintools/app/dns_deploy_zones.py:672
+#: lib/pp_admintools/app/dns_deploy_zones.py:663 lib/pp_admintools/app/dns_deploy_zones.py:667
 msgid "Source file"
 msgstr "Quell-Datei"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:671 lib/pp_admintools/app/dns_deploy_zones.py:681
+#: lib/pp_admintools/app/dns_deploy_zones.py:666 lib/pp_admintools/app/dns_deploy_zones.py:676
 msgid "{what} {f!r} is not a regular file."
 msgstr "Die {what} {f!r} ist keine reguläre Datei."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:677 lib/pp_admintools/app/dns_deploy_zones.py:682
+#: lib/pp_admintools/app/dns_deploy_zones.py:672 lib/pp_admintools/app/dns_deploy_zones.py:677
 msgid "Target file"
 msgstr "Ziel-Datei"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:688 lib/pp_admintools/app/dns_deploy_zones.py:705
+#: lib/pp_admintools/app/dns_deploy_zones.py:683 lib/pp_admintools/app/dns_deploy_zones.py:700
 msgid "Reading {!r} ..."
 msgstr "Lese {!r} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:698 lib/pp_admintools/app/dns_deploy_zones.py:715
+#: lib/pp_admintools/app/dns_deploy_zones.py:693 lib/pp_admintools/app/dns_deploy_zones.py:710
 msgid "Cleaned version of {!r}:"
 msgstr "Bereinigte Version von {!r}:"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:720
+#: lib/pp_admintools/app/dns_deploy_zones.py:715
 msgid ""
 "Source file {sf!r} has different number essential lines ({sl}) than the target file {tf!r} ({tl}"
 " lines)."
@@ -782,75 +783,75 @@ msgstr ""
 "Die Quelldatei {sf!r} besitzt eine andere Anzahl essentieller Zeilen ({sl}) als die Zieldatei "
 "{tf!r} ({tl} lines)."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:729
+#: lib/pp_admintools/app/dns_deploy_zones.py:724
 msgid "Source file {sf!r} has a different content than the target file {tf!r}."
 msgstr "Die Quelldate {sf!r} hat einen anderen Inhalt als die Zielfatei {tf!r}."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:741
+#: lib/pp_admintools/app/dns_deploy_zones.py:736
 msgid "No replacement of any config files necessary."
 msgstr "Es muss keine Datei ersetzt werden."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:744
+#: lib/pp_admintools/app/dns_deploy_zones.py:739
 msgid "Start replacing of config files ..."
 msgstr "Starting Ersatz von Konfigurations-Dateien …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:752 lib/pp_admintools/app/dns_deploy_zones.py:762
+#: lib/pp_admintools/app/dns_deploy_zones.py:747 lib/pp_admintools/app/dns_deploy_zones.py:757
 msgid "Copying {frm!r} => {to!r} ..."
 msgstr "Kopieren {frm!r} => {to!r} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:758
+#: lib/pp_admintools/app/dns_deploy_zones.py:753
 msgid "All backuped config files:"
 msgstr "Alle gesicherten Konfigurations-Dateien:"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:770
+#: lib/pp_admintools/app/dns_deploy_zones.py:765
 msgid "Restoring of original config files because of an exception."
 msgstr "Wiederherstellung der Original-Konfigurations-Dateien wegen eines Fehlers."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:774
+#: lib/pp_admintools/app/dns_deploy_zones.py:769
 msgid "Moving {frm!r} => {to!r} ..."
 msgstr "Verschieben {frm!r} => {to!r} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:780
+#: lib/pp_admintools/app/dns_deploy_zones.py:775
 msgid "Could not find backup file {!r}."
 msgstr "Konnte Backup-Datei {!r} nicht finden."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:785
+#: lib/pp_admintools/app/dns_deploy_zones.py:780
 msgid "Checking syntax correctness of named.conf ..."
 msgstr "Überprüfe synaktische Richtigkeit der named.conf …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:806
+#: lib/pp_admintools/app/dns_deploy_zones.py:801
 msgid "Reload or restart of named is not necessary."
 msgstr "Ein Reload oder Neustart von named ist nicht notwendig."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:811
+#: lib/pp_admintools/app/dns_deploy_zones.py:806
 msgid "Named is not running, please start it manually."
 msgstr "Named läuft nicht, bitte manuell starten."
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:822
+#: lib/pp_admintools/app/dns_deploy_zones.py:817
 msgid "Checking, whether named is running ..."
 msgstr "Überprüfen, ob named läuft …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:840 lib/pp_admintools/app/dns_deploy_zones.py:875
-#: lib/pp_admintools/app/dns_deploy_zones.py:910 lib/pp_admintools/app/dns_deploy_zones.py:945
+#: lib/pp_admintools/app/dns_deploy_zones.py:835 lib/pp_admintools/app/dns_deploy_zones.py:870
+#: lib/pp_admintools/app/dns_deploy_zones.py:905 lib/pp_admintools/app/dns_deploy_zones.py:940
 msgid "Return value: {!r}"
 msgstr "Rückgabewert: {!r}"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:842 lib/pp_admintools/app/dns_deploy_zones.py:844
-#: lib/pp_admintools/app/dns_deploy_zones.py:877 lib/pp_admintools/app/dns_deploy_zones.py:879
-#: lib/pp_admintools/app/dns_deploy_zones.py:912 lib/pp_admintools/app/dns_deploy_zones.py:914
-#: lib/pp_admintools/app/dns_deploy_zones.py:947 lib/pp_admintools/app/dns_deploy_zones.py:949
+#: lib/pp_admintools/app/dns_deploy_zones.py:837 lib/pp_admintools/app/dns_deploy_zones.py:839
+#: lib/pp_admintools/app/dns_deploy_zones.py:872 lib/pp_admintools/app/dns_deploy_zones.py:874
+#: lib/pp_admintools/app/dns_deploy_zones.py:907 lib/pp_admintools/app/dns_deploy_zones.py:909
+#: lib/pp_admintools/app/dns_deploy_zones.py:942 lib/pp_admintools/app/dns_deploy_zones.py:944
 msgid "Output on {}"
 msgstr "Ausgabe an {}"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:854
+#: lib/pp_admintools/app/dns_deploy_zones.py:849
 msgid "Starting {} ..."
 msgstr "Starten {} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:889
+#: lib/pp_admintools/app/dns_deploy_zones.py:884
 msgid "Restarting {} ..."
 msgstr "Neu starten {} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:924
+#: lib/pp_admintools/app/dns_deploy_zones.py:919
 msgid "Reloading {} ..."
 msgstr "Reload {} …"
 
@@ -905,7 +906,7 @@ msgstr "' …"
 msgid "Checking for dependend unique attribute '"
 msgstr "Überprüfe abhängig eindeutiges Attribut '"
 
-#: lib/pp_admintools/app/duplicate_attribs.py:172 lib/pp_admintools/app/ldap.py:627
+#: lib/pp_admintools/app/duplicate_attribs.py:172 lib/pp_admintools/app/ldap.py:611
 msgid "Used filter:"
 msgstr "Verwendeter Filter:"
 
@@ -913,93 +914,74 @@ msgstr "Verwendeter Filter:"
 msgid "No duplicates for attribute {!r} found."
 msgstr "Keine Duplikate für das Attribut {!r} gefunden."
 
-#: lib/pp_admintools/app/ldap.py:126 lib/pp_admintools/app/ldap.py:299
-msgid "The path {!r} must be an absolute path."
-msgstr "Der Pfad {!r} muss ein absoluter Pfad sein."
-
-#: lib/pp_admintools/app/ldap.py:132 lib/pp_admintools/app/ldap.py:303
-#: lib/pp_admintools/app/ldap.py:1663
-msgid "The file {!r} does not exists."
-msgstr "Die Datei {!r} existiert nicht."
-
-#: lib/pp_admintools/app/ldap.py:136 lib/pp_admintools/app/ldap.py:307
-#: lib/pp_admintools/app/ldap.py:1668
-msgid "The given path {!r} exists, but is not a regular file."
-msgstr "Der angegebene Pfad {!r} existiert, ist aber keine reguläre Datei."
-
-#: lib/pp_admintools/app/ldap.py:140 lib/pp_admintools/app/ldap.py:311
-#: lib/pp_admintools/app/ldap.py:1673
-msgid "The given file {!r} is not readable."
-msgstr "Die angegebene Datei {} ist nicht lesbar."
-
-#: lib/pp_admintools/app/ldap.py:162
-msgid "a port number must be greater than zero and less or equal to {}."
-msgstr "ein Port muss größer als Null und kleiner oder gleich {} sein."
-
-#: lib/pp_admintools/app/ldap.py:167
-msgid "Wrong port number {!r}:"
-msgstr "Ungültige Portnummer {!r}."
-
-#: lib/pp_admintools/app/ldap.py:326
+#: lib/pp_admintools/app/ldap.py:235
 msgid "The value {v} for {n} must be greater than zero."
 msgstr "Der Wert {v} für {n} muss größer als Null sein."
 
-#: lib/pp_admintools/app/ldap.py:357
+#: lib/pp_admintools/app/ldap.py:239 lib/pp_admintools/app/ldap.py:261
+msgid "The value {v} for {n} must not be greater than {m}."
+msgstr "Der Wert {v} für {n} darf nicht größer als {m} sein."
+
+#: lib/pp_admintools/app/ldap.py:257
+msgid "The value {v} for {n} must be equal to or greater than zero."
+msgstr "Der Wert {v} für {n} muss größer als oder gleich Null sein."
+
+#: lib/pp_admintools/app/ldap.py:314
 msgid "LDAP options"
 msgstr "LDAP-Optionen"
 
-#: lib/pp_admintools/app/ldap.py:359
+#: lib/pp_admintools/app/ldap.py:316
 msgid "Options for the default LDAP connection"
 msgstr "Optionen für die Vorgabe-LDAP-Verbindung"
 
-#: lib/pp_admintools/app/ldap.py:361
+#: lib/pp_admintools/app/ldap.py:318
 msgid "Options fo LDAP connections"
 msgstr "Optionen für die LDAP-Verbindungen"
 
-#: lib/pp_admintools/app/ldap.py:370
+#: lib/pp_admintools/app/ldap.py:327
 msgid "Yes"
 msgstr "Ja"
 
-#: lib/pp_admintools/app/ldap.py:376 lib/pp_admintools/app/ldap.py:472
+#: lib/pp_admintools/app/ldap.py:333 lib/pp_admintools/app/ldap.py:429
 msgid "HOST"
 msgstr "HOST"
 
-#: lib/pp_admintools/app/ldap.py:377
+#: lib/pp_admintools/app/ldap.py:334
 msgid "Hostname or address of the LDAP server to use. Default: {!r}"
 msgstr "Der Hostname oder die Adresse des zu verwendenden LDAP-Servers. Vorgabe: {!r}"
 
-#: lib/pp_admintools/app/ldap.py:384
+#: lib/pp_admintools/app/ldap.py:341
 msgid "Use ldaps to connect to the LDAP server. Default: {}"
 msgstr "Soll ldaps zum Verbinden mit dem LDAP-Server verwendet werden? Vorgabe: {}."
 
-#: lib/pp_admintools/app/ldap.py:389 lib/pp_admintools/app/ldap.py:478
-#: lib/pp_admintools/app/mail.py:250 lib/pp_admintools/app/pdns.py:274
+#: lib/pp_admintools/app/ldap.py:346 lib/pp_admintools/app/ldap.py:435
+#: lib/pp_admintools/app/mail.py:243 lib/pp_admintools/app/pdns.py:264
 msgid "PORT"
 msgstr "PORT"
 
-#: lib/pp_admintools/app/ldap.py:391
+#: lib/pp_admintools/app/ldap.py:348
 msgid "The port number to connect to the LDAP server. Default: {}"
 msgstr "Welcher Port soll verwendet werden, um sich mit dem LDAP-Server zu verbinden? Vorgabe: {}."
 
-#: lib/pp_admintools/app/ldap.py:397
+#: lib/pp_admintools/app/ldap.py:354
 msgid "The base DN used as the root for the LDAP searches. Default: {!r}"
 msgstr "Die Basis-DN, die als Ausgangspunkt bei LDAP-Suchen verwendet werden soll. Vorgabe: {!r}"
 
-#: lib/pp_admintools/app/ldap.py:404
+#: lib/pp_admintools/app/ldap.py:361
 msgid "The Bind DN to use to connect to the LDAP server. Default: {!r}"
 msgstr "Die Bind-DN, die zur Verbindung mit dem LDAP-Server verwendet werden soll. Vorgabe: {!r}"
 
-#: lib/pp_admintools/app/ldap.py:412 lib/pp_admintools/app/mk_ldap_passwd.py:131
-#: lib/pp_admintools/app/set_ldap_password.py:131 lib/pp_admintools/app/set_ldap_password.py:132
-#: lib/pp_admintools/app/set_ldap_password.py:149 lib/pp_admintools/app/set_ldap_password.py:152
+#: lib/pp_admintools/app/ldap.py:369 lib/pp_admintools/app/mk_ldap_passwd.py:123
+#: lib/pp_admintools/app/set_ldap_password.py:123 lib/pp_admintools/app/set_ldap_password.py:124
+#: lib/pp_admintools/app/set_ldap_password.py:141 lib/pp_admintools/app/set_ldap_password.py:144
 msgid "PASSWORD"
 msgstr "PASSWORT"
 
-#: lib/pp_admintools/app/ldap.py:413
+#: lib/pp_admintools/app/ldap.py:370
 msgid "Use PASSWORD as the password for simple LDAP authentication."
 msgstr "Verwende PASSWORT als Passwort für die einfache Authentifizierung."
 
-#: lib/pp_admintools/app/ldap.py:418
+#: lib/pp_admintools/app/ldap.py:375
 msgid ""
 "Prompt for simple LDAP authentication. This is used instead of specifying the password on the "
 "command line."
@@ -1007,30 +989,30 @@ msgstr ""
 "Nachfrage nach dem Passwort für eine einfache LDAP-Authentifizierung. Dies wird anstelle der "
 "Angabe des Passwortes an der Kommandozeile verwendet."
 
-#: lib/pp_admintools/app/ldap.py:424 lib/pp_admintools/app/set_ldap_password.py:143
-#: lib/pp_admintools/app/set_ldap_password.py:145
+#: lib/pp_admintools/app/ldap.py:381 lib/pp_admintools/app/set_ldap_password.py:135
+#: lib/pp_admintools/app/set_ldap_password.py:137
 msgid "PASSWORD_FILE"
 msgstr "PASSWORT_DATEI"
 
-#: lib/pp_admintools/app/ldap.py:426
+#: lib/pp_admintools/app/ldap.py:383
 msgid "Use contents of PASSWORD_FILE as the password for simple authentication."
 msgstr "Verwende den Inhalt der PASSWORT_DATEI als das Passort für eine einfache LDAP-Authentifizierung."
 
-#: lib/pp_admintools/app/ldap.py:434 lib/pp_admintools/app/pdns.py:248
+#: lib/pp_admintools/app/ldap.py:391 lib/pp_admintools/app/pdns.py:238
 msgid "INSTANCE"
 msgstr "INSTANZ"
 
-#: lib/pp_admintools/app/ldap.py:437
+#: lib/pp_admintools/app/ldap.py:394
 msgid "If not given, then the instance {!r} will be used."
 msgstr "Wenn nicht angegeben, dann wird die Instanz {!r} verwendet."
 
-#: lib/pp_admintools/app/ldap.py:441
+#: lib/pp_admintools/app/ldap.py:398
 msgid "The LDAP instance (LDAP cluster) from configuration, where to execute this script."
 msgstr ""
 "Die LDAP-Instanz (das LDAP-Cluster) aus der Konfiguration, in welcher das Skript ausgeführt "
 "werden soll."
 
-#: lib/pp_admintools/app/ldap.py:445
+#: lib/pp_admintools/app/ldap.py:402
 msgid ""
 "The LDAP instance (LDAP cluster) from configuration, where to execute this script. It is "
 "possible to give here the value {val_all!r}, then all found LDAP instances except {default!r} "
@@ -1042,424 +1024,458 @@ msgstr ""
 " außer {default!r} verwendet. Es ist ebenfalls möglich, den Wert {val_list!r} anzugeben, in "
 "diesem Fall werden alle LDAP-Instanzen ausgegeben, und das Skript beendet sich."
 
-#: lib/pp_admintools/app/ldap.py:473
+#: lib/pp_admintools/app/ldap.py:430
 msgid "Override configured hostname or address of the LDAP server."
 msgstr "Überschreibt den konfigurierten Hostnamen oder die Adresse des zu verwendenden LDAP-Servers."
 
-#: lib/pp_admintools/app/ldap.py:480
+#: lib/pp_admintools/app/ldap.py:437
 msgid "Override the configured port number to connect to the LDAP server."
 msgstr "Überschreibt den konfigurierten TCP Port für die Verbindung mit dem LDAP-Server."
 
-#: lib/pp_admintools/app/ldap.py:485
+#: lib/pp_admintools/app/ldap.py:442
 msgid "Override the configured base DN of the instance used as the root for the LDAP searches."
 msgstr ""
 "Überschreibt die konfigurierte Basis-DN, die als Ausgangspunkt bei der LDAP-Suche verwendet "
 "werden soll."
 
-#: lib/pp_admintools/app/ldap.py:494
+#: lib/pp_admintools/app/ldap.py:448
+msgid "COUNT"
+msgstr "ANZAHL"
+
+#: lib/pp_admintools/app/ldap.py:451
+msgid ""
+"The number of retries for executing a LDAP request, which was failing because of a connection "
+"problem. Default: {}"
+msgstr ""
+"Die Anzahl der Versuche zum Ausführen einer LDAP-Abfrage, welche wegen einem Verbindungsproblem "
+"misslang. Vorgabe: {}"
+
+#: lib/pp_admintools/app/ldap.py:460
+msgid ""
+"The time in seconds after a failed LDAP request, which was failing because of a connection "
+"problem, for the next try. Default: {}"
+msgstr ""
+"Die Wartezeit in Sekunden nach einer misslungenen LDAP-Abfrage, was von einem Verbindungsproblem"
+" verursacht wurde. Vorgabe: {}"
+
+#: lib/pp_admintools/app/ldap.py:470
 msgid "Using the given timeout in seconds for all LDAP operations. Default: {}"
 msgstr "Der Timeout in Sekunden für alle LDAP-Operationen. Vorgabe: {}."
 
-#: lib/pp_admintools/app/ldap.py:521
+#: lib/pp_admintools/app/ldap.py:505
 msgid "Limiting console timeout to {} seconds due to LDAP timeout."
 msgstr ""
 "Begrenze wegen des LDAP-Zeitüberschreitungslimits das Zeitüberschreitungslimit der Konsole auf "
 "{} Sekunden."
 
-#: lib/pp_admintools/app/ldap.py:532
+#: lib/pp_admintools/app/ldap.py:516
 msgid "Checking given instances."
 msgstr "Überprüfe die übergebenen Instanzen."
 
-#: lib/pp_admintools/app/ldap.py:536
+#: lib/pp_admintools/app/ldap.py:520
 msgid "Given insts:"
 msgstr "Übergebene Instanzen:"
 
-#: lib/pp_admintools/app/ldap.py:593
+#: lib/pp_admintools/app/ldap.py:577
 msgid "Configured LDAP instances:"
 msgstr "Konfigurierte LDAP-Instanzen:"
 
-#: lib/pp_admintools/app/ldap.py:614
+#: lib/pp_admintools/app/ldap.py:598
 msgid "Verifying given instances ..."
 msgstr "Überprüfe Instanzen …"
 
-#: lib/pp_admintools/app/ldap.py:652
+#: lib/pp_admintools/app/ldap.py:636
 msgid "Filtered instances:"
 msgstr "Gefilterte Instanzen:"
 
-#: lib/pp_admintools/app/ldap.py:660
+#: lib/pp_admintools/app/ldap.py:644
 msgid "LDAP instances to use:"
 msgstr "Verwendete LDAP-Instanzen:"
 
-#: lib/pp_admintools/app/ldap.py:676
+#: lib/pp_admintools/app/ldap.py:660
 msgid "LDAP instance {!r} not found in configuration or is not usable."
 msgstr "Die LDAP-Instanz {!r} wurde nicht in der Konfiguration gefunden oder ist nicht verwendbar."
 
-#: lib/pp_admintools/app/ldap.py:756
+#: lib/pp_admintools/app/ldap.py:740
 msgid "Preparations ..."
 msgstr "Vorbereitungen …"
 
-#: lib/pp_admintools/app/ldap.py:759
+#: lib/pp_admintools/app/ldap.py:744
 msgid "Open all necessary LDAP connections ..."
 msgstr "Öffne alle notwendigen LDAP-Verbindungen …"
 
-#: lib/pp_admintools/app/ldap.py:773
+#: lib/pp_admintools/app/ldap.py:758
 msgid "Password of user {usr} on LDAP instance {inst}:"
 msgstr "Passwort des Nutzers {usr} der LDAP-Instanz {inst}:"
 
-#: lib/pp_admintools/app/ldap.py:782
+#: lib/pp_admintools/app/ldap.py:770
 msgid "Info about LDAP server {}:"
 msgstr "Informationen zu LDAP-Server {}:"
 
-#: lib/pp_admintools/app/ldap.py:792
+#: lib/pp_admintools/app/ldap.py:783
 msgid "Trying to get LDAP server object for {} ..."
 msgstr "Versuche ein LDAP-Server-Objekt für {} zu bekommen …"
 
-#: lib/pp_admintools/app/ldap.py:808
+#: lib/pp_admintools/app/ldap.py:799
 msgid "Connect options to server {!r}:"
 msgstr "Verbindungs-Optionen zu Server {!r}:"
 
-#: lib/pp_admintools/app/ldap.py:815
+#: lib/pp_admintools/app/ldap.py:806
 msgid "LDAP server {s}: {re}"
 msgstr "LDAP-Server {s}: {re}"
 
-#: lib/pp_admintools/app/ldap.py:829
+#: lib/pp_admintools/app/ldap.py:824
 msgid "Connecting to LDAP server {url} as {dn!r} ..."
 msgstr "Verbinde mit LDAP-Server {url} als {dn!r} …"
 
-#: lib/pp_admintools/app/ldap.py:837
+#: lib/pp_admintools/app/ldap.py:832
 msgid "Could not connect to LDAP server {url!r} as {user!r}: {e}"
 msgstr "Konnte keine Verbindung zum LDAP-Server {url!r} als Nutzer {url!r} herstellen: {e}"
 
-#: lib/pp_admintools/app/ldap.py:842
+#: lib/pp_admintools/app/ldap.py:837
 msgid "{c} on connecting to LDAP server {url!r} as {user!r}: {e}"
 msgstr "{c} beim Verbinden mit LDAP-Server {url} als {user!r}: {e}"
 
-#: lib/pp_admintools/app/ldap.py:852
+#: lib/pp_admintools/app/ldap.py:847
 msgid "Finishing ..."
 msgstr "Beende …"
 
-#: lib/pp_admintools/app/ldap.py:863
+#: lib/pp_admintools/app/ldap.py:858
 msgid "Disconnecting from all remaining LDAP instances ..."
 msgstr "Trenne Verbindung zu allen verbleibenden LDAP-Instanzen …"
 
-#: lib/pp_admintools/app/ldap.py:876
+#: lib/pp_admintools/app/ldap.py:875
 msgid "Unbinding from LDAP server {!r} ..."
 msgstr "Trenne Bindung zu LDAP-Server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:883
-msgid "Disconnecting from LDAP server {!r} ..."
-msgstr "Trenne Verbindung zu LDAP-Server {!r} …"
+#: lib/pp_admintools/app/ldap.py:882
+msgid "Removing LDAP server connection data {!r} ..."
+msgstr "Entferne LDAP-Server-Verbindung {!r} …"
+
+#: lib/pp_admintools/app/ldap.py:905
+msgid "recursive"
+msgstr "rekursuv"
 
-#: lib/pp_admintools/app/ldap.py:910
-msgid "Searching in {uri}/{bdn} for all entries with filter {fltr!r}, giving attributes:"
-msgstr "Suche in {uri}/{bdn} nach allen Einträgen mit dem Filter {fltr!r} und den angegebenen Attributen:"
+#: lib/pp_admintools/app/ldap.py:921
+msgid "Searching in {uri}/{bdn} {rec}for all entries with filter {fltr!r}, giving attributes:"
+msgstr ""
+"Suche in {uri}/{bdn} {rec}nach allen Einträgen mit dem Filter {fltr!r} und den angegebenen "
+"Attributen:"
 
-#: lib/pp_admintools/app/ldap.py:922
+#: lib/pp_admintools/app/ldap.py:951
 msgid "Result of searching:"
 msgstr "Ergebnis der Suche:"
 
-#: lib/pp_admintools/app/ldap.py:927
+#: lib/pp_admintools/app/ldap.py:953 lib/pp_admintools/app/ldap.py:1105
+#: lib/pp_admintools/app/ldap.py:1159 lib/pp_admintools/app/ldap.py:1264
+#: lib/pp_admintools/app/ldap.py:1324 lib/pp_admintools/app/ldap.py:1384
+#: lib/pp_admintools/app/ldap.py:1692 lib/pp_admintools/app/ldap.py:1733
+#: lib/pp_admintools/app/ldap.py:1774 lib/pp_admintools/app/ldap.py:1815
+msgid "Got a response entry:"
+msgstr "Erhaltener Antwort-Eintrag:"
+
+#: lib/pp_admintools/app/ldap.py:957
+msgid "Search was not successful."
+msgstr "Die Suche war nicht erfolgreich."
+
+#: lib/pp_admintools/app/ldap.py:973
+msgid "Try number {} for searching ..."
+msgstr "Versuch Nummer {} zur Suche …"
+
+#: lib/pp_admintools/app/ldap.py:989 lib/pp_admintools/app/ldap.py:1002
+msgid "Got a {cls} on searching in LDAP instance {i!r}:"
+msgstr "Habe einen {cls} bei der Suche in der LDAP-Instanz {i!r} erhalten:"
+
+#: lib/pp_admintools/app/ldap.py:992
+msgid "Waiting because of a {}:"
+msgstr "Warten wegen einem {}:"
+
+#: lib/pp_admintools/app/ldap.py:997
+msgid "Session terminated by server on searching on instance {i!r}:"
+msgstr "Die Sitzung wurde vom Server bei der Suche in der Instanz {i!r} unterbrochen:"
+
+#: lib/pp_admintools/app/ldap.py:1038
 msgid "Found entry {!r}."
-msgstr "Gefundener Eintrag:"
+msgstr "Gefundener Eintrag {!r}."
 
-#: lib/pp_admintools/app/ldap.py:934 lib/pp_admintools/app/ldap.py:978
+#: lib/pp_admintools/app/ldap.py:1045 lib/pp_admintools/app/ldap.py:1097
 msgid "Found one entry with filter {fltr!r} in {uri}/{bdn}."
 msgid_plural "Found {nr} enries with filter {fltr!r} in {uri}/{bdn}."
 msgstr[0] "Fand einen Eintrag mit dem Filter {fltr!r} in {uri}/{bdn}."
 msgstr[1] "Fand {nr} Einträge mit dem Filter {fltr!r} in {uri}/{bdn}."
 
-#: lib/pp_admintools/app/ldap.py:938
+#: lib/pp_admintools/app/ldap.py:1049
 msgid "Got response entries:"
 msgstr "Erhaltene Antworteinträge:"
 
-#: lib/pp_admintools/app/ldap.py:942 lib/pp_admintools/app/ldap.py:990
+#: lib/pp_admintools/app/ldap.py:1053 lib/pp_admintools/app/ldap.py:1109
 msgid "No entry found with filter {fltr!r} in {uri}/{bdn}."
 msgstr "Keinen Eintrag mit dem Filter {fltr!r} in {uri}/{bdn} gefunden."
 
-#: lib/pp_admintools/app/ldap.py:966 lib/pp_admintools/app/ldap.py:1020
+#: lib/pp_admintools/app/ldap.py:1077 lib/pp_admintools/app/ldap.py:1138
 msgid "Using LDAP filter: {!r}"
 msgstr "Verwende LDAP-Filter: {!r}."
 
-#: lib/pp_admintools/app/ldap.py:982 lib/pp_admintools/app/ldap.py:1029
+#: lib/pp_admintools/app/ldap.py:1101 lib/pp_admintools/app/ldap.py:1155
 msgid "Result of searching for DNs of all entries:"
 msgstr "Ergebnis der Suche nach den DNs aller Einträge:"
 
-#: lib/pp_admintools/app/ldap.py:986 lib/pp_admintools/app/ldap.py:1033
-#: lib/pp_admintools/app/ldap.py:1131 lib/pp_admintools/app/ldap.py:1184
-#: lib/pp_admintools/app/ldap.py:1237 lib/pp_admintools/app/ldap.py:1342
-#: lib/pp_admintools/app/ldap.py:1542 lib/pp_admintools/app/ldap.py:1576
-#: lib/pp_admintools/app/ldap.py:1610 lib/pp_admintools/app/ldap.py:1644
-msgid "Got a response entry:"
-msgstr "Erhaltener Antwort-Eintrag:"
-
-#: lib/pp_admintools/app/ldap.py:1016
+#: lib/pp_admintools/app/ldap.py:1134
 msgid "Getting all Entry DNs of LDAP instance {i!r} below {b!r}."
 msgstr "Hole DNs aller Einträge der LDAP-Instanz {i!r} unterhalb von {b!r}."
 
-#: lib/pp_admintools/app/ldap.py:1055
+#: lib/pp_admintools/app/ldap.py:1181
 msgid "Trying to evaluate DN of user {user!r} in LDAP instance {inst} ..."
 msgstr "Versuche den DN des Nutzer {user!r} auf der LDAP-Instanz {inst} zu ermitteln …"
 
-#: lib/pp_admintools/app/ldap.py:1060
+#: lib/pp_admintools/app/ldap.py:1186
 msgid "Trying to evaluate DN of user {u!r} as a mail address ..."
 msgstr "Versuche den DN des Nutzer {u!r} als Mailadresse zu ermitteln …"
 
-#: lib/pp_admintools/app/ldap.py:1067
+#: lib/pp_admintools/app/ldap.py:1193
 msgid "Trying to evaluate DN of user {u!r} as a LDAP DN ..."
 msgstr "Versuche den DN des Nutzer {u!r} als LDAP DN zu ermitteln …"
 
-#: lib/pp_admintools/app/ldap.py:1074
+#: lib/pp_admintools/app/ldap.py:1200
 msgid "Trying to evaluate DN of user {u!r} as a UID (Posix user name) ..."
 msgstr "Versuche den DN des Nutzer {u!r} als UID (POSIX Benutzername) zu ermitteln …"
 
-#: lib/pp_admintools/app/ldap.py:1083 lib/pp_admintools/app/remove_ldap_user.py:318
+#: lib/pp_admintools/app/ldap.py:1209 lib/pp_admintools/app/remove_ldap_user.py:311
 msgid "Empty user given."
 msgstr "Leere Nutzername übergeben."
 
-#: lib/pp_admintools/app/ldap.py:1086
+#: lib/pp_admintools/app/ldap.py:1212
 msgid "Trying to evaluate DN of user {u!r} as a CN ({c}) ..."
 msgstr "Versuche den DN des Nutzer {u!r} als CN ({c}) zu ermitteln …"
 
-#: lib/pp_admintools/app/ldap.py:1116 lib/pp_admintools/app/ldap.py:1169
-#: lib/pp_admintools/app/ldap.py:1222 lib/pp_admintools/app/ldap.py:1530
-#: lib/pp_admintools/app/ldap.py:1564 lib/pp_admintools/app/ldap.py:1598
-#: lib/pp_admintools/app/ldap.py:1632
+#: lib/pp_admintools/app/ldap.py:1241 lib/pp_admintools/app/ldap.py:1301
+#: lib/pp_admintools/app/ldap.py:1361 lib/pp_admintools/app/ldap.py:1672
+#: lib/pp_admintools/app/ldap.py:1713 lib/pp_admintools/app/ldap.py:1754
+#: lib/pp_admintools/app/ldap.py:1795
 msgid "Searching in {uri}/{bdn} with filter: {fltr}"
 msgstr "Suche in {uri}/{bdn} mit dem Filter: {fltr}"
 
-#: lib/pp_admintools/app/ldap.py:1127
+#: lib/pp_admintools/app/ldap.py:1260
 msgid "Result of searching for mail address {m!r}:"
 msgstr "Ergebnis der Suche nach der Mailadresse {m!r}:"
 
-#: lib/pp_admintools/app/ldap.py:1138
+#: lib/pp_admintools/app/ldap.py:1271
 msgid "User with mail address {m!r} not found in {uri}/{bdn}."
 msgstr "Ein Nutzer mit der Mailadresse {m!r} wurde nicht in {uri}/{bdn} gefunden."
 
-#: lib/pp_admintools/app/ldap.py:1180
+#: lib/pp_admintools/app/ldap.py:1320
 msgid "Result of searching for uid {u!r}:"
 msgstr "Ergebnis der Suche nach UID {u!r}:"
 
-#: lib/pp_admintools/app/ldap.py:1191
+#: lib/pp_admintools/app/ldap.py:1331
 msgid "User with uid {u!r} not found in {uri}/{bdn}."
 msgstr "Ein Nutzer mit der UID {u!r} wurde nicht in {uri}/{bdn} gefunden."
 
-#: lib/pp_admintools/app/ldap.py:1233
+#: lib/pp_admintools/app/ldap.py:1380
 msgid "Result of searching for CN {cn!r}:"
 msgstr "Ergebnis der Suche nach CN {cn!r}:"
 
-#: lib/pp_admintools/app/ldap.py:1244
+#: lib/pp_admintools/app/ldap.py:1391
 msgid "User with cn {cn!r} not found in {uri}/{bdn}."
 msgstr "Ein Nutzer mit dem CN {cn!r} wurde nicht in {uri}/{bdn} gefunden."
 
-#: lib/pp_admintools/app/ldap.py:1261 lib/pp_admintools/app/set_ldap_password.py:409
+#: lib/pp_admintools/app/ldap.py:1408 lib/pp_admintools/app/set_ldap_password.py:401
 msgid "User with DN {dn!r} not found in {uri}."
 msgstr "Ein Nutzer mit dem DN {dn!r} wurde nicht in {uri} gefunden."
 
-#: lib/pp_admintools/app/ldap.py:1279
+#: lib/pp_admintools/app/ldap.py:1426
 msgid "ObjectClasses of {dn!r}:"
 msgstr "ObjectClasses von {dn!r}:"
 
-#: lib/pp_admintools/app/ldap.py:1289
+#: lib/pp_admintools/app/ldap.py:1436
 msgid "Entry {dn!r} in {uri} seems not to be an account."
 msgstr "Der Eintrag {dn!r} in {uri} scheint kein Nutzerkonto zu sein."
 
-#: lib/pp_admintools/app/ldap.py:1311
+#: lib/pp_admintools/app/ldap.py:1449
 msgid "Searching DN {dn!r} in {uri}."
 msgstr "Suche DN {dn!r} in {uri}."
 
-#: lib/pp_admintools/app/ldap.py:1328
-msgid "Waiting because of a failing read operation."
-msgstr "Warten wegen misslungener Leseoperation."
-
-#: lib/pp_admintools/app/ldap.py:1332
-msgid "Error on reading entry {dn!r} from instance {inst!r}:"
-msgstr "Fehler beim Lesen des Eintrags {dn!r} von der Instanz {inst!r}:"
-
-#: lib/pp_admintools/app/ldap.py:1338
-msgid "Result of searching for DN {dn!r}:"
-msgstr "Ergebnis der Suche nach dem DN {dn!r}:"
+#: lib/pp_admintools/app/ldap.py:1462
+msgid "Entry with DN {dn!r} not found in {i!r} ({uri})."
+msgstr "Ein Eintrag bit dem DN {dn!r} wurde nicht in {i!r} ({uri}) gefunden."
 
-#: lib/pp_admintools/app/ldap.py:1346
-msgid "Entry with DN {dn!r} not found in {uri}."
-msgstr "Ein Eintrag bit dem DN {dn!r} wurde nicht in {uri} gefunden."
-
-#: lib/pp_admintools/app/ldap.py:1391
+#: lib/pp_admintools/app/ldap.py:1506
 msgid "Creating entry {dn!r} on {uri}:"
 msgstr "Erstelle Eintrag {dn!r} in {uri} …"
 
-#: lib/pp_admintools/app/ldap.py:1397
+#: lib/pp_admintools/app/ldap.py:1512
 msgid "Simulation mode - entry will not be created."
 msgstr "Simulationsmodus - der Eintrag wird nicht erstellt."
 
-#: lib/pp_admintools/app/ldap.py:1404
+#: lib/pp_admintools/app/ldap.py:1526
 msgid "Creation of entry {dn!r} was NOT successfull - {c}: {e}"
 msgstr "Die Erstellung des Eintrags {dn!r} war NICHT erfolgreich - {c}: {e}"
 
-#: lib/pp_admintools/app/ldap.py:1419
+#: lib/pp_admintools/app/ldap.py:1544
 msgid "Creation status: {!r}."
 msgstr "Erstellungsstatus: {!r}"
 
-#: lib/pp_admintools/app/ldap.py:1421
+#: lib/pp_admintools/app/ldap.py:1546
 msgid "Result of creating:"
 msgstr "Ergebnis der Erstellung:"
 
-#: lib/pp_admintools/app/ldap.py:1424
+#: lib/pp_admintools/app/ldap.py:1549
 msgid "Creation of entry {dn!r} was NOT successful: {desc} - {msg}"
 msgstr "Die Erstellung des Eintrags {dn!r} war NICHT erfolgreich - {desc}: {msg}"
 
-#: lib/pp_admintools/app/ldap.py:1430
+#: lib/pp_admintools/app/ldap.py:1555
 msgid "Creation successful."
 msgstr "Die Erstellung war erfolgreich."
 
-#: lib/pp_admintools/app/ldap.py:1441
+#: lib/pp_admintools/app/ldap.py:1565
 msgid "Applying changes on {uri} to DN {dn!r}:"
 msgstr "Wende Änderungen in {uri} an DN {dn!r} an:"
 
-#: lib/pp_admintools/app/ldap.py:1446
+#: lib/pp_admintools/app/ldap.py:1570
 msgid "Simulation mode - changes are not applied."
 msgstr "Simulationsmodus - hier wird jetzt nichts geändert."
 
-#: lib/pp_admintools/app/ldap.py:1452
+#: lib/pp_admintools/app/ldap.py:1583
 msgid "Modification of {dn!r} was NOT successfull - {c}: {e}"
 msgstr "Die Änderung von {dn!r} war NICHT erfolgreich - {c}: {e}"
 
-#: lib/pp_admintools/app/ldap.py:1454 lib/pp_admintools/app/ldap.py:1473
-#: lib/pp_admintools/app/remove_ldap_user.py:449 lib/pp_admintools/app/remove_ldap_user.py:476
-#: lib/pp_admintools/app/remove_ldap_user.py:503 lib/pp_admintools/app/remove_ldap_user.py:534
-#: lib/pp_admintools/app/remove_ldap_user.py:565 lib/pp_admintools/app/remove_ldap_user.py:681
-#: lib/pp_admintools/app/set_ldap_password.py:518
+#: lib/pp_admintools/app/ldap.py:1585 lib/pp_admintools/app/ldap.py:1607
+#: lib/pp_admintools/app/remove_ldap_user.py:442 lib/pp_admintools/app/remove_ldap_user.py:469
+#: lib/pp_admintools/app/remove_ldap_user.py:496 lib/pp_admintools/app/remove_ldap_user.py:527
+#: lib/pp_admintools/app/remove_ldap_user.py:558 lib/pp_admintools/app/remove_ldap_user.py:674
+#: lib/pp_admintools/app/set_ldap_password.py:510
 msgid "Changes:"
 msgstr "Änderungen:"
 
-#: lib/pp_admintools/app/ldap.py:1466
+#: lib/pp_admintools/app/ldap.py:1600
 msgid "Modification status: {!r}."
 msgstr "Änderungsstatus: {!r}."
 
-#: lib/pp_admintools/app/ldap.py:1468
+#: lib/pp_admintools/app/ldap.py:1602
 msgid "Result of modifying:"
 msgstr "Ergebnis der Änderung:"
 
-#: lib/pp_admintools/app/ldap.py:1471
+#: lib/pp_admintools/app/ldap.py:1605
 msgid "Modification of {dn!r} was NOT successful: {desc} - {msg}"
 msgstr "Die Änderung von {dn!r} war NICHT erfolgreich - {desc}: {msg}"
 
-#: lib/pp_admintools/app/ldap.py:1476
+#: lib/pp_admintools/app/ldap.py:1610
 msgid "Modification successful."
 msgstr "Die Änderung war erfolgreich."
 
-#: lib/pp_admintools/app/ldap.py:1486
+#: lib/pp_admintools/app/ldap.py:1619
 msgid "Deleting LDAP entry {dn!r} on {uri} ..."
 msgstr "Lösche LDAP-Eintrag {dn!r} in {uri} …"
 
-#: lib/pp_admintools/app/ldap.py:1491
+#: lib/pp_admintools/app/ldap.py:1624
 msgid "Simulation mode - deletion will not be executed."
 msgstr "Simulationsmodus - hier wird jetzt nichts gelöscht."
 
-#: lib/pp_admintools/app/ldap.py:1497
+#: lib/pp_admintools/app/ldap.py:1637
 msgid "Deletion of {dn!r} was NOT successfull - {c}: {e}"
 msgstr "Das Löschen von {dn!r} war NICHT erfolgreich - {c}: {e}"
 
-#: lib/pp_admintools/app/ldap.py:1502
+#: lib/pp_admintools/app/ldap.py:1645
 msgid "Deletion status: {!r}."
 msgstr "Löschstatus: {!r}"
 
-#: lib/pp_admintools/app/ldap.py:1504
+#: lib/pp_admintools/app/ldap.py:1647
 msgid "Result of deletion:"
 msgstr "Ergebnis der Löschung:"
 
-#: lib/pp_admintools/app/ldap.py:1507
+#: lib/pp_admintools/app/ldap.py:1650
 msgid "Deletion of {dn!r} was NOT successful: {desc} - {msg}"
 msgstr "Das Löschen von {dn!r} war NICHT erfolgreich - {desc}: {msg}"
 
-#: lib/pp_admintools/app/ldap.py:1511
+#: lib/pp_admintools/app/ldap.py:1654
 msgid "Deletion successful."
 msgstr "Die Löschung war erfolgreich."
 
-#: lib/pp_admintools/app/ldap.py:1660
+#: lib/pp_admintools/app/ldap.py:1831
 msgid "Reading password file {!r} ..."
 msgstr "Lese Passwortdatei {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:1691
+#: lib/pp_admintools/app/ldap.py:1862
 msgid "Could not detect RDN from DN {!r}."
 msgstr "Konnte RDN nich aus {!r} ermitteln."
 
-#: lib/pp_admintools/app/ldap.py:1695
+#: lib/pp_admintools/app/ldap.py:1866
 msgid "Found RDN attribute {!r}."
 msgstr "Fand RDN-Attribut {!r}."
 
-#: lib/pp_admintools/app/ldap.py:1701
+#: lib/pp_admintools/app/ldap.py:1872
 msgid "RDN attribute {!r} will not be touched."
 msgstr "Das RDN-Attribut {!r} wird nicht angefasst."
 
-#: lib/pp_admintools/app/ldap.py:1707 lib/pp_admintools/app/ldap.py:1726
-#: lib/pp_admintools/app/ldap.py:1804
+#: lib/pp_admintools/app/ldap.py:1878 lib/pp_admintools/app/ldap.py:1897
+#: lib/pp_admintools/app/ldap.py:1975
 msgid "Attribute {!r} will not be touched."
 msgstr "Das Attribut {!r} wird nicht angefasst."
 
-#: lib/pp_admintools/app/ldap.py:1764
+#: lib/pp_admintools/app/ldap.py:1935
 msgid "Values to removed from attribute {!r}:"
 msgstr "Werte, die von Attribut {!r} gelöscht werden."
 
-#: lib/pp_admintools/app/mail.py:95
+#: lib/pp_admintools/app/mail.py:88
 msgid "Got invalid SMTP port number {!r}."
 msgstr "Ungültige SMTP-Port-Nummer {!r} erhalten."
 
-#: lib/pp_admintools/app/mail.py:113
+#: lib/pp_admintools/app/mail.py:106
 msgid "Got invalid mail from address {!r}."
 msgstr "Ungültige Absender-Mailadresse {!r} erhalten."
 
-#: lib/pp_admintools/app/mail.py:136
+#: lib/pp_admintools/app/mail.py:129
 msgid "Got invalid recipient mail addresses:"
 msgstr "Ungültige Empfänger-Mailadressen erhalten:"
 
-#: lib/pp_admintools/app/mail.py:164
+#: lib/pp_admintools/app/mail.py:157
 msgid "Got invalid cc mail addresses:"
 msgstr "Ungültige CC-Mailadressen erhalten:"
 
-#: lib/pp_admintools/app/mail.py:179
+#: lib/pp_admintools/app/mail.py:172
 msgid "Got invalid reply mail address {!r}."
 msgstr "Ungültige CC-Mailadresse {!r} erhalten."
 
-#: lib/pp_admintools/app/mail.py:190
+#: lib/pp_admintools/app/mail.py:183
 msgid "Mailing options"
 msgstr "E-Mail-Optionen"
 
-#: lib/pp_admintools/app/mail.py:205 lib/pp_admintools/app/mail.py:213
-#: lib/pp_admintools/app/mail.py:219 lib/pp_admintools/app/mail.py:225
+#: lib/pp_admintools/app/mail.py:198 lib/pp_admintools/app/mail.py:206
+#: lib/pp_admintools/app/mail.py:212 lib/pp_admintools/app/mail.py:218
 msgid "ADDRESS"
 msgstr "ADRESSE"
 
-#: lib/pp_admintools/app/mail.py:206
+#: lib/pp_admintools/app/mail.py:199
 msgid "Sender mail address for mails generated by this script. Default: {!r}"
 msgstr "Absender-Mailadresse von Mails, die von diesem Skript generiert werden. Vorgabe: {!r}"
 
-#: lib/pp_admintools/app/mail.py:214
+#: lib/pp_admintools/app/mail.py:207
 msgid "Mail addresses of all recipients for mails generated by this script."
 msgstr "Mailadressen aller Empfänger von Mails, die von diesem Skript generiert werden."
 
-#: lib/pp_admintools/app/mail.py:220
+#: lib/pp_admintools/app/mail.py:213
 msgid "Mail addresses of all CC recipients for mails generated by this script."
 msgstr "Mailadressen aller CC-Empfänger von Mails, die von diesem Skript generiert werden."
 
-#: lib/pp_admintools/app/mail.py:226
+#: lib/pp_admintools/app/mail.py:219
 msgid "Reply mail address for mails generated by this script."
 msgstr "Antwort-Mailadresse von Mails, die von diesem Skript generiert werden."
 
-#: lib/pp_admintools/app/mail.py:233
+#: lib/pp_admintools/app/mail.py:226
 msgid "METHOD"
 msgstr "METHODE"
 
-#: lib/pp_admintools/app/mail.py:234
+#: lib/pp_admintools/app/mail.py:227
 msgid "Method for sending the mails generated by this script. Valid values: {v}, default: {d!r}."
 msgstr ""
 "Methode zum Senden von Mails, die von diesem Skript generiert werden. Gültige Werte: {v}, "
 "Vorgabe: {d!r}."
 
-#: lib/pp_admintools/app/mail.py:242
+#: lib/pp_admintools/app/mail.py:235
 msgid "SERVER"
 msgstr "SERVER"
 
-#: lib/pp_admintools/app/mail.py:243
+#: lib/pp_admintools/app/mail.py:236
 msgid ""
 "Mail server for submitting generated by this script if the mail method of this script is 'smtp'."
 " Default: {!r}."
@@ -1467,7 +1483,7 @@ msgstr ""
 "Der Mailserver zur Übermittlung der von diesem Skript generierten Mails, wenn die Mail-Methode "
 "'smtp' ist. Vorgabe: {!r}."
 
-#: lib/pp_admintools/app/mail.py:252
+#: lib/pp_admintools/app/mail.py:245
 msgid ""
 "The port to use for submitting generated by this script if the mail method of this script is "
 "'smtp'. Default: {}."
@@ -1475,19 +1491,19 @@ msgstr ""
 "Der zu verwendende Port zur Übermittlung der von diesem Skript generierten Mails, wenn die Mail-"
 "Methode 'smtp' ist. Vorgabe: {}."
 
-#: lib/pp_admintools/app/mail.py:261
+#: lib/pp_admintools/app/mail.py:254
 msgid "Got command line arguments:"
 msgstr "Kommandozeilen-Argumente erhalten:"
 
-#: lib/pp_admintools/app/mail.py:278
+#: lib/pp_admintools/app/mail.py:271
 msgid "Mail to send:"
 msgstr "Die zu sendende Mail:"
 
-#: lib/pp_admintools/app/mail.py:311
+#: lib/pp_admintools/app/mail.py:304
 msgid "Did not found sendmail executable."
 msgstr "Kein ausführbares Programm 'sendmail' gefunden."
 
-#: lib/pp_admintools/app/mirror_ldap.py:100
+#: lib/pp_admintools/app/mirror_ldap.py:92
 msgid ""
 "Mirror the content of a complete LDAP instance (server or cluster) to another instance. This "
 "will be done first by clearing the target instance, then copying structural entries from the "
@@ -1501,15 +1517,15 @@ msgstr ""
 "dessen werden einige Transformationen ausgeführt, wie die Erssetzung der Inhalte bestimmter "
 "Attribute durch andere Werte."
 
-#: lib/pp_admintools/app/mirror_ldap.py:108
+#: lib/pp_admintools/app/mirror_ldap.py:100
 msgid "Do not execute a countdown before starting the application."
 msgstr "Keinen Countdown vor dem Start der Anwendung ausführen."
 
-#: lib/pp_admintools/app/mirror_ldap.py:119
+#: lib/pp_admintools/app/mirror_ldap.py:111
 msgid "Miroring options"
 msgstr "Spiegelungs--Optionen"
 
-#: lib/pp_admintools/app/mirror_ldap.py:124
+#: lib/pp_admintools/app/mirror_ldap.py:116
 msgid ""
 "Number of seconds to wait after each write operation. Given as a float value, and if set to "
 "zero, there is no waiting after a write. (default: {:.1f})"
@@ -1518,62 +1534,62 @@ msgstr ""
 "angegeben, und wenn sie auf Null gesetzt werden, erfolgt kein Warten nach dem Schreiben. "
 "(Vorgabe: {:.1f})"
 
-#: lib/pp_admintools/app/mirror_ldap.py:131 lib/pp_admintools/app/mk_ldap_passwd.py:121
+#: lib/pp_admintools/app/mirror_ldap.py:123 lib/pp_admintools/app/mk_ldap_passwd.py:113
 msgid "NUMBER"
 msgstr "ANZAHL"
 
-#: lib/pp_admintools/app/mirror_ldap.py:133
+#: lib/pp_admintools/app/mirror_ldap.py:125
 msgid "Limiting the mirroring to the first NUMBER entries. This option is valid only in simulation mode."
 msgstr ""
 "Begrenzung der Spiegelung auf die erste ANZAHL Einträge. Diese Option ist nur im Simulations-"
 "Modus gültig."
 
-#: lib/pp_admintools/app/mirror_ldap.py:140
+#: lib/pp_admintools/app/mirror_ldap.py:132
 msgid "Mirror only structural entries (entries with childs)."
 msgstr "Nur strukturelle Einträge (Einträge mit Child-Einträgen) spiegeln."
 
-#: lib/pp_admintools/app/mirror_ldap.py:161
+#: lib/pp_admintools/app/mirror_ldap.py:153
 msgid "Limiting the number of entries for mirroring to {} entries."
 msgstr "Begrenze die Anzahl der Einträge zum Spiegeln auf {}."
 
-#: lib/pp_admintools/app/mirror_ldap.py:165
+#: lib/pp_admintools/app/mirror_ldap.py:157
 msgid "Limition the number of entries for mirroring may only be done in simulation mode."
 msgstr "Die Begrenzung der Anzahl der Einträge zum Spiegeln ist nur im Simulationsmodus erlaubt."
 
-#: lib/pp_admintools/app/mirror_ldap.py:180
+#: lib/pp_admintools/app/mirror_ldap.py:172
 msgid "Data to modify:"
 msgstr "Zu ändernde Daten:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:182
+#: lib/pp_admintools/app/mirror_ldap.py:174
 msgid "No data to modify found."
 msgstr "Keine zu ändernde Daten gefunden."
 
-#: lib/pp_admintools/app/mirror_ldap.py:190
+#: lib/pp_admintools/app/mirror_ldap.py:182
 msgid "Did not found {tgt!r} in {e}:"
 msgstr "Fand {tgt!r} nicht in {e}:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:202
+#: lib/pp_admintools/app/mirror_ldap.py:194
 msgid "Checking mirror source instance for target instance {!r} ..."
 msgstr "Überprüfe die Quell-Instanz für Spiegelung zur Ziel-Instanz {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:206
+#: lib/pp_admintools/app/mirror_ldap.py:198
 msgid "Got {!r} as the mirror source instance."
 msgstr "Habe {!r} als Quell-Instanz für die Spiegelung erhalten."
 
-#: lib/pp_admintools/app/mirror_ldap.py:209 lib/pp_admintools/app/mirror_ldap.py:218
-#: lib/pp_admintools/app/mirror_ldap.py:229
+#: lib/pp_admintools/app/mirror_ldap.py:201 lib/pp_admintools/app/mirror_ldap.py:210
+#: lib/pp_admintools/app/mirror_ldap.py:221
 msgid "Error in configuration:"
 msgstr "Fehler in der Konfiguration:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:210
+#: lib/pp_admintools/app/mirror_ldap.py:202
 msgid "the source LDAP instance {src!r} for mirroring to {tgt!r} does not exists."
 msgstr "die Quell-LDAP-Instanz {src!r} für die Spiegelung nach {tgt!r} existiert nicht."
 
-#: lib/pp_admintools/app/mirror_ldap.py:219
+#: lib/pp_admintools/app/mirror_ldap.py:211
 msgid "the source LDAP instance {src!r} must not be the same like the target instance."
 msgstr "die Quell-LDAP-Instanz {src!r} darf nicht identisch mit der Ziel-Instanz sein."
 
-#: lib/pp_admintools/app/mirror_ldap.py:230
+#: lib/pp_admintools/app/mirror_ldap.py:222
 msgid ""
 "the base DN {src_dn!r} of the source instance {src!r} does not match the base DN {tgt_dn!r} of "
 "the target instance {tgt!r}."
@@ -1581,115 +1597,115 @@ msgstr ""
 "die Basis-DN {src_dn!r} der Quell-Instanz {src!r} stimmt nicht mit der Basis-DN {tgt_dn!r} der "
 "Ziel-Instanz {tgt!r} überein."
 
-#: lib/pp_admintools/app/mirror_ldap.py:246
+#: lib/pp_admintools/app/mirror_ldap.py:238
 msgid "Start mirroring LDAP instance {src} ({src_url}) to instance {tgt} ({tgt_url}) [{yes}/{no}]?"
 msgstr "Starte Spiegelung der LDAP-Instanz {src} ({src_url}) zur Instanz {tgt} ({tgt_url}) [{yes}/{no}]?"
 
-#: lib/pp_admintools/app/mirror_ldap.py:259 lib/pp_admintools/app/mirror_ldap.py:347
+#: lib/pp_admintools/app/mirror_ldap.py:251 lib/pp_admintools/app/mirror_ldap.py:340
 msgid "Interrupted on demand."
 msgstr "Abbruch auf Verlangen."
 
-#: lib/pp_admintools/app/mirror_ldap.py:262 lib/pp_admintools/app/mirror_ldap.py:269
+#: lib/pp_admintools/app/mirror_ldap.py:254 lib/pp_admintools/app/mirror_ldap.py:261
 msgid "Start mirroring LDAP instance {src!r} ({src_url}) to instance {tgt!r} ({tgt_url}) ..."
 msgstr "Starte Spiegelung der LDAP-Instanz {src!r} ({src_url}) zur Instanz {tgt!r} ({tgt_url}) …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:282
+#: lib/pp_admintools/app/mirror_ldap.py:274
 msgid "Waiting one second after write actions."
 msgid_plural "Waiting {} seconds after write actions."
 msgstr[0] "Warte eine Sekunde nach einer Schreibaktion."
 msgstr[1] "Warte {} Sekunden nach einer Schreibaktion."
 
-#: lib/pp_admintools/app/mirror_ldap.py:287
+#: lib/pp_admintools/app/mirror_ldap.py:279
 msgid "Don't waiting after simulated write actions."
 msgstr "Kein Warten nach einer simulierten Schreibaktion."
 
-#: lib/pp_admintools/app/mirror_ldap.py:289
+#: lib/pp_admintools/app/mirror_ldap.py:281
 msgid "Don't waiting after write actions, because {} was set to zero."
 msgstr "Kein Warten nach einer Schreibaktion da {} auf Null gesetzt wurde."
 
-#: lib/pp_admintools/app/mirror_ldap.py:292
+#: lib/pp_admintools/app/mirror_ldap.py:284
 msgid "The timeout on LDAP operations is {} seconds."
 msgstr "Das Limit für eine Zeitüberschreitung bei einer LDAP-Operation beträgt {} Sekunden."
 
-#: lib/pp_admintools/app/mirror_ldap.py:306 lib/pp_admintools/app/mirror_ldap.py:324
+#: lib/pp_admintools/app/mirror_ldap.py:298 lib/pp_admintools/app/mirror_ldap.py:316
 msgid "{:>5} entry deleted."
 msgid_plural "{:>5} entries deleted."
 msgstr[0] "{:>5} Eintrag gelöscht."
 msgstr[1] "{:>5} Einträge gelöscht."
 
-#: lib/pp_admintools/app/mirror_ldap.py:309 lib/pp_admintools/app/mirror_ldap.py:329
+#: lib/pp_admintools/app/mirror_ldap.py:301 lib/pp_admintools/app/mirror_ldap.py:321
 msgid "{:>5} entry updated."
 msgid_plural "{:>5} entries updated."
 msgstr[0] "{:>5} Eintrag aktualisiert."
 msgstr[1] "{:>5} Einträge aktualisiert."
 
-#: lib/pp_admintools/app/mirror_ldap.py:312 lib/pp_admintools/app/mirror_ldap.py:334
+#: lib/pp_admintools/app/mirror_ldap.py:304 lib/pp_admintools/app/mirror_ldap.py:326
 msgid "{:>5} entry created."
 msgid_plural "{:>5} entries created."
 msgstr[0] "{:>5} Eintrag erstellt."
 msgstr[1] "{:>5} Einträge erstellt."
 
-#: lib/pp_admintools/app/mirror_ldap.py:319
+#: lib/pp_admintools/app/mirror_ldap.py:311
 msgid "Changes total:"
 msgstr "Änderungen insgesamt:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:342 lib/pp_admintools/app/mirror_ldap.py:347
+#: lib/pp_admintools/app/mirror_ldap.py:335 lib/pp_admintools/app/mirror_ldap.py:340
 msgid "Got a {}:"
 msgstr "Habe ein {} erhalten:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:359
+#: lib/pp_admintools/app/mirror_ldap.py:352
 msgid "Trying to get DNs of all entries in the source LDAP instance."
 msgstr "Versuche die DNs aller Einträge in der Quell-LDAP-Instanz zu ermitteln."
 
-#: lib/pp_admintools/app/mirror_ldap.py:372 lib/pp_admintools/app/mirror_ldap.py:426
+#: lib/pp_admintools/app/mirror_ldap.py:365 lib/pp_admintools/app/mirror_ldap.py:419
 msgid "Found DNs in instance {!r}:"
 msgstr "Gefundene DNs in Instanz {!r}:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:389
+#: lib/pp_admintools/app/mirror_ldap.py:382
 msgid "Found total one entry in source LDAP"
 msgid_plural "Found {no} entries in source LDAP"
 msgstr[0] "Fand einen Eintrag im Quell-LDAP"
 msgstr[1] "Fand {no} Einträge im Quell-LDAP"
 
-#: lib/pp_admintools/app/mirror_ldap.py:393
+#: lib/pp_admintools/app/mirror_ldap.py:386
 msgid "one structural entry in source LDAP"
 msgid_plural "{no} structural entries in source LDAP"
 msgstr[0] "einen strukturellen Eintrag im Quell-LDAP"
 msgstr[1] "{no} strukturelle Einträge im Quell-LDAP"
 
-#: lib/pp_admintools/app/mirror_ldap.py:397
+#: lib/pp_admintools/app/mirror_ldap.py:390
 msgid "one non-structural entry in source LDAP."
 msgid_plural "{no} non-structural entries in source LDAP."
 msgstr[0] "einen nicht-strukturellen Eintrag im Ziel-LDAP."
 msgstr[1] "{no} nicht-strukturelle Einträge im Ziel-LDAP."
 
-#: lib/pp_admintools/app/mirror_ldap.py:405 lib/pp_admintools/app/mirror_ldap.py:459
+#: lib/pp_admintools/app/mirror_ldap.py:398 lib/pp_admintools/app/mirror_ldap.py:452
 msgid "Found structural DNs in instance {!r}:"
 msgstr "Gefundene strukturelle DNs in Instanz {!r}:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:413
+#: lib/pp_admintools/app/mirror_ldap.py:406
 msgid "Trying to get DNs of all entries in the target LDAP instance."
 msgstr "Versuche die DNs aller Einträge in der Ziel-LDAP-Instanz zu ermitteln."
 
-#: lib/pp_admintools/app/mirror_ldap.py:443
+#: lib/pp_admintools/app/mirror_ldap.py:436
 msgid "Found total one entry in target LDAP"
 msgid_plural "Found {no} entries in target LDAP"
 msgstr[0] "Fand insgesamt einen Eintrag im Ziel-LDAP"
 msgstr[1] "Fand {no} Einträge im Ziel-LDAP"
 
-#: lib/pp_admintools/app/mirror_ldap.py:447
+#: lib/pp_admintools/app/mirror_ldap.py:440
 msgid "one structural entry in target LDAP"
 msgid_plural "{no} structural entries in target LDAP"
 msgstr[0] "ein struktureller Eintrag im Ziel-LDAP"
 msgstr[1] "{no} strukturelle Einträge im Ziel-LDAP"
 
-#: lib/pp_admintools/app/mirror_ldap.py:451
+#: lib/pp_admintools/app/mirror_ldap.py:444
 msgid "one non-structural entry in target LDAP."
 msgid_plural "{no} non-structural entries in target LDAP."
 msgstr[0] "ein nicht-struktureller Eintrag im Ziel-LDAP."
 msgstr[1] "{no} nicht-strukturelle Einträge im Ziel-LDAP."
 
-#: lib/pp_admintools/app/mirror_ldap.py:466
+#: lib/pp_admintools/app/mirror_ldap.py:459
 msgid ""
 "Evaluating DNs of all target entries, which have to be synchronized, instead of removing and "
 "recreating them."
@@ -1697,168 +1713,168 @@ msgstr ""
 "Ermittel der DNs aller Zieleinträge, die synchronisiert werden müssen, anstatt sie zu löschen "
 "und sie neu anzulegen."
 
-#: lib/pp_admintools/app/mirror_ldap.py:524
+#: lib/pp_admintools/app/mirror_ldap.py:517
 msgid "Removing non structural entries from target LDAP instance."
 msgstr "Löschen nicht-struktureller Einträge in der Ziel-LDAP-Instanz."
 
-#: lib/pp_admintools/app/mirror_ldap.py:540 lib/pp_admintools/app/mirror_ldap.py:601
+#: lib/pp_admintools/app/mirror_ldap.py:533 lib/pp_admintools/app/mirror_ldap.py:594
 msgid "Entry {!r} exists on the source instance, will not be removed."
 msgstr "Der Eintrag {!r} existiert in der Ziel-Instanz und wird deshalb nicht gelöscht."
 
-#: lib/pp_admintools/app/mirror_ldap.py:546
+#: lib/pp_admintools/app/mirror_ldap.py:539
 msgid "Entry {!r} is a structural entry, will not be removed at this point."
 msgstr "Der Eintrag {!r} ist ein struktureller Eintrag, und wird deshalb an dieser Stelle nicht gelöscht."
 
-#: lib/pp_admintools/app/mirror_ldap.py:553 lib/pp_admintools/app/mirror_ldap.py:607
-#: lib/pp_admintools/app/mirror_ldap.py:672 lib/pp_admintools/app/mirror_ldap.py:973
+#: lib/pp_admintools/app/mirror_ldap.py:546 lib/pp_admintools/app/mirror_ldap.py:600
+#: lib/pp_admintools/app/mirror_ldap.py:665 lib/pp_admintools/app/mirror_ldap.py:966
 msgid "Entry {!r} is set to be kept."
 msgstr "Der Eintrag {!r} wurde auf Erhalten gesetzt."
 
-#: lib/pp_admintools/app/mirror_ldap.py:565
+#: lib/pp_admintools/app/mirror_ldap.py:558
 msgid "Removed one not structural entry in target LDAP instance."
 msgid_plural "Removed {no} not structural entries in target LDAP instance."
 msgstr[0] "Es wurde ein nicht-struktureller Eintrag in der Ziel-LDAP-Instanz gelöscht."
 msgstr[1] "Es wurden {no} nicht-strukturelle Einträge in der Ziel-LDAP-Instanz gelöscht."
 
-#: lib/pp_admintools/app/mirror_ldap.py:570
+#: lib/pp_admintools/app/mirror_ldap.py:563
 msgid "None not structural entries in target LDAP instance removed."
 msgstr "Es wurden keine nicht-strukturellen Einträge in der Ziel-LDAP-Instanz gelöscht."
 
-#: lib/pp_admintools/app/mirror_ldap.py:584
+#: lib/pp_admintools/app/mirror_ldap.py:577
 msgid "Removing structural entries from target LDAP instance."
 msgstr "Löschen struktureller Einträge in der Ziel-LDAP-Instanz."
 
-#: lib/pp_admintools/app/mirror_ldap.py:612
+#: lib/pp_admintools/app/mirror_ldap.py:605
 msgid "Entry {!r} is set to be synchronized."
 msgstr "Der Eintrag {!r} wurde auf Synchronisation gesetzt."
 
-#: lib/pp_admintools/app/mirror_ldap.py:624
+#: lib/pp_admintools/app/mirror_ldap.py:617
 msgid "Removed one structural entry in target LDAP instance."
 msgid_plural "Removed {no} structural entries in target LDAP instance."
 msgstr[0] "Es wurde ein struktureller Eintrag in der Ziel-LDAP-Instanz gelöscht."
 msgstr[1] "Es wurden {no} strukturelle Einträge in der Ziel-LDAP-Instanz gelöscht."
 
-#: lib/pp_admintools/app/mirror_ldap.py:629
+#: lib/pp_admintools/app/mirror_ldap.py:622
 msgid "None structural entries in target LDAP instance removed."
 msgstr "Es wurden keine strukturellen Einträge in der Ziel-LDAP-Instanz gelöscht."
 
-#: lib/pp_admintools/app/mirror_ldap.py:637
+#: lib/pp_admintools/app/mirror_ldap.py:630
 msgid "Mirroring structural entries from source to target LDAP instance."
 msgstr "Spiegeln struktureller Einträge von der Quell- in die Ziel-LDAP-Instanz."
 
-#: lib/pp_admintools/app/mirror_ldap.py:655
+#: lib/pp_admintools/app/mirror_ldap.py:648
 msgid "Mirrored one structural entry in target LDAP instance."
 msgid_plural "Mirrored {no} structural entries to target LDAP instance."
 msgstr[0] "Es wurde ein struktureller Eintrag in die Ziel-LDAP-Instanz gespiegelt."
 msgstr[1] "Es wurden {no} strukturelle Einträge in die Ziel-LDAP-Instanz gespiegelt."
 
-#: lib/pp_admintools/app/mirror_ldap.py:660
+#: lib/pp_admintools/app/mirror_ldap.py:653
 msgid "Mirrored no structural entries to target LDAP instance."
 msgstr "Es wurden keine strukturellen Einträge in die Ziel-LDAP-Instanz gespiegelt."
 
-#: lib/pp_admintools/app/mirror_ldap.py:676 lib/pp_admintools/app/mirror_ldap.py:979
+#: lib/pp_admintools/app/mirror_ldap.py:669 lib/pp_admintools/app/mirror_ldap.py:972
 msgid "Mirroring entry {!r} ..."
 msgstr "Spiegele Eintrag {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:682 lib/pp_admintools/app/mirror_ldap.py:984
+#: lib/pp_admintools/app/mirror_ldap.py:675 lib/pp_admintools/app/mirror_ldap.py:977
 msgid "Error on reading entry {!r} from source:"
 msgstr "Fehler beim Lesen des Eintrags {!r} von der Quelle:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:686 lib/pp_admintools/app/mirror_ldap.py:987
+#: lib/pp_admintools/app/mirror_ldap.py:679 lib/pp_admintools/app/mirror_ldap.py:980
 msgid "Did not found {!r} in the source LDAP."
 msgstr "Fand {!r} nicht in der Quell-Datenbank."
 
-#: lib/pp_admintools/app/mirror_ldap.py:708 lib/pp_admintools/app/mirror_ldap.py:998
+#: lib/pp_admintools/app/mirror_ldap.py:701 lib/pp_admintools/app/mirror_ldap.py:991
 msgid "Error on reading entry {!r} from target:"
 msgstr "Fehler beim Lesen des Eintrags {!r} vom Ziel:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:723 lib/pp_admintools/app/mirror_ldap.py:1013
+#: lib/pp_admintools/app/mirror_ldap.py:716 lib/pp_admintools/app/mirror_ldap.py:1006
 msgid "Modifying entry {!r} ..."
 msgstr "Ändere Eintrag {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:724 lib/pp_admintools/app/mirror_ldap.py:1014
+#: lib/pp_admintools/app/mirror_ldap.py:717 lib/pp_admintools/app/mirror_ldap.py:1007
 msgid "Got modify data for DN {!r}:"
 msgstr "Bekam Änderungsdaten für DN {!r}:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:734 lib/pp_admintools/app/mirror_ldap.py:1025
+#: lib/pp_admintools/app/mirror_ldap.py:727 lib/pp_admintools/app/mirror_ldap.py:1018
 msgid "No changes necessary on DN {!r}."
 msgstr "Keine Änderungen bei DN {!r} notwendig."
 
-#: lib/pp_admintools/app/mirror_ldap.py:738 lib/pp_admintools/app/mirror_ldap.py:1001
+#: lib/pp_admintools/app/mirror_ldap.py:731 lib/pp_admintools/app/mirror_ldap.py:994
 msgid "Target entry {!r} not found."
 msgstr "Der Ziel-Eintrag {!r} wurde nicht gefunden."
 
-#: lib/pp_admintools/app/mirror_ldap.py:741
+#: lib/pp_admintools/app/mirror_ldap.py:734
 msgid "Creating entry {!r} ..."
 msgstr "Erstelle Eintrag {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:742
+#: lib/pp_admintools/app/mirror_ldap.py:735
 msgid "Got create data for DN {!r}:"
 msgstr "Bekam Erstellungsdaten für DN {!r}:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:791
+#: lib/pp_admintools/app/mirror_ldap.py:784
 msgid "Modifying source data for {!r} ..."
 msgstr "Ändere Quelldaten für {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:802
+#: lib/pp_admintools/app/mirror_ldap.py:795
 msgid "Replacing attribute {a!r} in entry {dn!r} ..."
 msgstr "Ersetze Attribut {a!r} in Eintrag {dn!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:848
+#: lib/pp_admintools/app/mirror_ldap.py:841
 msgid "Deleting attribute {a!r} from entry {dn!r} ..."
 msgstr "Lösche Attribut {a!r} von Eintrag {dn!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:885
+#: lib/pp_admintools/app/mirror_ldap.py:878
 msgid "Adding attribute {a!r} to entry {dn!r} ..."
 msgstr "Füge Attribut {a!r} zu Eintrag {!r} hinzu …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:924
+#: lib/pp_admintools/app/mirror_ldap.py:917
 msgid "Mirroring non-structural entries from source to target LDAP instance."
 msgstr "Spiegeln nicht-struktureller Einträge von der Quell- in die Ziel-LDAP-Instanz."
 
-#: lib/pp_admintools/app/mirror_ldap.py:945
+#: lib/pp_admintools/app/mirror_ldap.py:938
 msgid "Mirrored one non-structural entry in target LDAP instance."
 msgid_plural "Mirrored {no} non-structural entries to target LDAP instance."
 msgstr[0] "Es wurde ein nicht-struktureller Eintrag in die Ziel-LDAP-Instanz gespiegelt."
 msgstr[1] "Es wurden {no} nicht-strukturelle Einträge in die Ziel-LDAP-Instanz gespiegelt."
 
-#: lib/pp_admintools/app/mirror_ldap.py:950
+#: lib/pp_admintools/app/mirror_ldap.py:943
 msgid "Mirrored none not-structural entries to target LDAP instance."
 msgstr "Es wurden keine nicht-strukturellen Einträge in die Ziel-LDAP-Instanz gespiegelt."
 
-#: lib/pp_admintools/app/mirror_ldap.py:959
+#: lib/pp_admintools/app/mirror_ldap.py:952
 msgid "Mirroring members in group entries from source to target LDAP instance."
 msgstr "Spiegeln von Mitgliedern in Gruppeneinträgen von der Quell- in die Ziel-LDAP-Instanz."
 
-#: lib/pp_admintools/app/mirror_ldap.py:1030
+#: lib/pp_admintools/app/mirror_ldap.py:1023
 msgid "Mirrored one group entry in target LDAP instance."
 msgid_plural "Mirrored {no} group entries to target LDAP instance."
 msgstr[0] "Es wurde ein Gruppeneintrag in die Ziel-LDAP-Instanz gespiegelt."
 msgstr[1] "Es wurden {no} Gruppeneinträge in die Ziel-LDAP-Instanz gespiegelt."
 
-#: lib/pp_admintools/app/mirror_ldap.py:1035
+#: lib/pp_admintools/app/mirror_ldap.py:1028
 msgid "Mirrored no group entries to target LDAP instance."
 msgstr "Es wurden keine Gruppeneinträge in die Ziel-LDAP-Instanz gespiegelt."
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:55
+#: lib/pp_admintools/app/mk_ldap_passwd.py:47
 msgid "Encrypting the password with a defined password schema."
 msgstr "Verschlüsseln eines Passwortes mit einem definierten Passwort-Schema."
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:99
+#: lib/pp_admintools/app/mk_ldap_passwd.py:91
 msgid "The schema (hashing method) to use to hash the new password. Default: {default!r}."
 msgstr ""
 "Das Schema (die Hashing-Methode), das zum Hashen des neuen Passwortes verwendet wird.  Vorgabe: "
 "{default!r}."
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:104
+#: lib/pp_admintools/app/mk_ldap_passwd.py:96
 msgid "TYPE"
 msgstr "TYP"
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:110
+#: lib/pp_admintools/app/mk_ldap_passwd.py:102
 msgid "Like {}"
 msgstr "Wie {}"
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:115 lib/pp_admintools/app/set_ldap_password.py:208
+#: lib/pp_admintools/app/mk_ldap_passwd.py:107 lib/pp_admintools/app/set_ldap_password.py:200
 msgid ""
 "A possible salt to use on hashing the password. Caution: not all hashing schemes are supporting "
 "a salt."
@@ -1866,7 +1882,7 @@ msgstr ""
 "Ein optionaler Salt, der zum Hashen des Passwortes verwendet werden kann. Achtung: nicht alle "
 "Hashing-Schemen unterstützen einen Salt."
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:122 lib/pp_admintools/app/set_ldap_password.py:215
+#: lib/pp_admintools/app/mk_ldap_passwd.py:114 lib/pp_admintools/app/set_ldap_password.py:207
 msgid ""
 "The number of calculation rounds to use on hashing the password. Caution: not all hashing "
 "schemes are supporting calculation rounds."
@@ -1874,7 +1890,7 @@ msgstr ""
 "Die Anzahl der Berechnungsrunden, die zum Hashen des Passwortes verwendet werden können. "
 "Achtung: nicht alle Hashing-Schemen unterstützen Berechnungsrunden."
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:127
+#: lib/pp_admintools/app/mk_ldap_passwd.py:119
 msgid ""
 "The password to hash. If not given and no file desriptor was given, then the password will be "
 "requested on TTY."
@@ -1882,140 +1898,140 @@ msgstr ""
 "Das Passort, das verschlüsselt werden soll. Wenn nicht angegeben, dann wird das Passwort über "
 "die Konsole abgefragt."
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:175
+#: lib/pp_admintools/app/mk_ldap_passwd.py:167
 msgid "Got no password by {}."
 msgstr "Kein Passwort üver {} erhalten."
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:178
+#: lib/pp_admintools/app/mk_ldap_passwd.py:170
 msgid "Password:"
 msgstr "Passwort:"
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:179 lib/pp_admintools/app/set_ldap_password.py:305
-#: lib/pp_admintools/app/set_ldap_password.py:325
+#: lib/pp_admintools/app/mk_ldap_passwd.py:171 lib/pp_admintools/app/set_ldap_password.py:297
+#: lib/pp_admintools/app/set_ldap_password.py:317
 msgid "Repeat password:"
 msgstr "Passwort-Wiederholung:"
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:193
+#: lib/pp_admintools/app/mk_ldap_passwd.py:185
 msgid "Encrypting password with hashing schema '{schema}' ..."
 msgstr "Verschlüsseln des Passwortes mit dem Hashing-Schema '{schema}' …"
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:200 lib/pp_admintools/app/set_ldap_password.py:478
+#: lib/pp_admintools/app/mk_ldap_passwd.py:192 lib/pp_admintools/app/set_ldap_password.py:470
 msgid "Used schema: {!r}."
 msgstr "Verwendetes Schama : {!r}."
 
-#: lib/pp_admintools/app/pdns.py:103 lib/pp_admintools/app/pdns.py:187
+#: lib/pp_admintools/app/pdns.py:93 lib/pp_admintools/app/pdns.py:177
 msgid "Configuration not available."
 msgstr "Die Konfiguration ist nicht verfügbar."
 
-#: lib/pp_admintools/app/pdns.py:117
+#: lib/pp_admintools/app/pdns.py:107
 msgid "Invalid API key {!r} given."
 msgstr "Ungültiger API-Schlüssel {!r} angegeben."
 
-#: lib/pp_admintools/app/pdns.py:129
+#: lib/pp_admintools/app/pdns.py:119
 msgid "Invalid API host {!r} given."
 msgstr "Ungültiger API-Host {!r} angegeben."
 
-#: lib/pp_admintools/app/pdns.py:142
+#: lib/pp_admintools/app/pdns.py:132
 msgid "Invalid API port {!r} given."
 msgstr "Ungültiger API-Port {!r} angegeben."
 
-#: lib/pp_admintools/app/pdns.py:154
+#: lib/pp_admintools/app/pdns.py:144
 msgid "Invalid API server name {!r} given."
 msgstr "Ungültiger API-Servername {!r} angegeben."
 
-#: lib/pp_admintools/app/pdns.py:172 lib/pp_admintools/app/pdns.py:175
+#: lib/pp_admintools/app/pdns.py:162 lib/pp_admintools/app/pdns.py:165
 msgid "Invalid instance {!r} given."
 msgstr "Ungültige Instanz {!r} angegeben."
 
-#: lib/pp_admintools/app/pdns.py:183
+#: lib/pp_admintools/app/pdns.py:173
 msgid "Evaluating instance {!r} ..."
 msgstr "Ermittle Instanz {!r} …"
 
-#: lib/pp_admintools/app/pdns.py:191
+#: lib/pp_admintools/app/pdns.py:181
 msgid "PDNS instance {!r} is not configured."
 msgstr "Die PDNS Instanz {!r} ist nicht konfiguriert."
 
-#: lib/pp_admintools/app/pdns.py:240
+#: lib/pp_admintools/app/pdns.py:230
 msgid "PowerDNS API options"
 msgstr "PowerDNS API-Optionen"
 
-#: lib/pp_admintools/app/pdns.py:249
+#: lib/pp_admintools/app/pdns.py:239
 msgid "Select, which PowerDNS instance to use. Valid values: {v}, default: {d!r}."
 msgstr "Auswahl der zu verwendenden PowerDNS-Instanz. Gültige Werte: {v}, Vorgaben: {d!r}."
 
-#: lib/pp_admintools/app/pdns.py:257 lib/pp_admintools/app/pdns.py:263
-#: lib/pp_admintools/app/pdns.py:269
+#: lib/pp_admintools/app/pdns.py:247 lib/pp_admintools/app/pdns.py:253
+#: lib/pp_admintools/app/pdns.py:259
 msgid "Using the {!r} PowerDNS instance."
 msgstr "Verwenden der {!r}-PowerDNS-Instanz."
 
-#: lib/pp_admintools/app/pdns.py:277
+#: lib/pp_admintools/app/pdns.py:267
 msgid "Which port to connect to PowerDNS API, default: {}."
 msgstr "Welcher Port soll verwendet werden, um sich mit der PowerDNS-API zu verbinden, Vorgabe: {}."
 
-#: lib/pp_admintools/app/pdns.py:281
+#: lib/pp_admintools/app/pdns.py:271
 msgid "The timeout in seconds for the communication with the PowerDNS-API. Default: {} seconds."
 msgstr "Der Timeout in Sekunden für die Kommunikation mit der PowerDNS-API. Vorgabe: {} Sekunden."
 
-#: lib/pp_admintools/app/pdns.py:330
+#: lib/pp_admintools/app/pdns.py:320
 msgid "No path given for{d} [{s}]/{k} in configuration."
 msgstr "Kein Pfad für{d} [{s}]/{k} in der Konfiguration angegegben."
 
-#: lib/pp_admintools/app/pdns.py:337
+#: lib/pp_admintools/app/pdns.py:327
 msgid "Path {p!r} for{d} [{s}]/{k} in configuration must be an absolute path."
 msgstr "Der Pfad {p!r} für{d} [{s}]/{k} in der Konfiguration muss ein absoluter sein."
 
-#: lib/pp_admintools/app/pdns.py:359 lib/pp_admintools/app/pdns.py:397
-#: lib/pp_admintools/app/pdns.py:422
+#: lib/pp_admintools/app/pdns.py:349 lib/pp_admintools/app/pdns.py:387
+#: lib/pp_admintools/app/pdns.py:412
 msgid "Executing {} ..."
 msgstr "Ausführung von {} …"
 
-#: lib/pp_admintools/app/pdns.py:377
+#: lib/pp_admintools/app/pdns.py:367
 msgid "Timeout of {t} seconds too big, at most {m} seconds are allowed."
 msgstr "Der Timeout von {t} Sekunden ist zu groß, es sind höchtens {m} Sekunden erlaubt."
 
-#: lib/pp_admintools/app/pdns.py:381
+#: lib/pp_admintools/app/pdns.py:371
 msgid "A timeout may not be negative."
 msgstr "Ein Timeout darf nicht negativ sein."
 
-#: lib/pp_admintools/app/pdns.py:399
+#: lib/pp_admintools/app/pdns.py:389
 msgid "Setting Loglevel of the requests module to {}."
 msgstr "Setze das Loglevel des Requests-Moduls auf {}."
 
-#: lib/pp_admintools/app/pdns.py:412
+#: lib/pp_admintools/app/pdns.py:402
 msgid "Executing nothing ..."
 msgstr "Führe nicht aus …"
 
-#: lib/pp_admintools/app/pdns.py:432 lib/pp_admintools/app/pdns.py:461
-#: lib/pp_admintools/app/pdns.py:472 lib/pp_admintools/app/pdns.py:486
+#: lib/pp_admintools/app/pdns.py:422 lib/pp_admintools/app/pdns.py:451
+#: lib/pp_admintools/app/pdns.py:462 lib/pp_admintools/app/pdns.py:476
 msgid "The PDNS server object does not exists."
 msgstr "Das PDNS-Server-Objekt existiert nicht."
 
-#: lib/pp_admintools/app/pdns.py:434 lib/pp_admintools/app/pdns.py:463
-#: lib/pp_admintools/app/pdns.py:474 lib/pp_admintools/app/pdns.py:488
+#: lib/pp_admintools/app/pdns.py:424 lib/pp_admintools/app/pdns.py:453
+#: lib/pp_admintools/app/pdns.py:464 lib/pp_admintools/app/pdns.py:478
 msgid "The PDNS server object is not initialized."
 msgstr "Das PDNS-Server-Objekt ist nicht initialisiert."
 
-#: lib/pp_admintools/app/pdns.py:441
+#: lib/pp_admintools/app/pdns.py:431
 msgid "Got a {} during evaluating the PDNS server version from API:"
 msgstr "Habe {} bei der Ermittlung der PowerDNS-Serverversion erhalten:"
 
-#: lib/pp_admintools/app/pdns.py:496
+#: lib/pp_admintools/app/pdns.py:486
 msgid "Trying to get complete information about zone {!r} ..."
 msgstr "Versuch die kompletten Informationen über die Zone {!r} zu bekommen …"
 
-#: lib/pp_admintools/app/pdns.py:502
+#: lib/pp_admintools/app/pdns.py:492
 msgid "The given zone {} was not found."
 msgstr "Die angegebene Zone {} wurde nicht gefunden."
 
-#: lib/pp_admintools/app/pdns.py:509
+#: lib/pp_admintools/app/pdns.py:499
 msgid "Got a response:"
 msgstr "Erhaltene Antwort:"
 
-#: lib/pp_admintools/app/pdns.py:514
+#: lib/pp_admintools/app/pdns.py:504
 msgid "Zone object:"
 msgstr "Zonen-Objekt:"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:77
+#: lib/pp_admintools/app/remove_ldap_user.py:70
 msgid ""
 "Disables or removes the given users from LDAP. If disabling, then the user will not be really "
 "removed, but disabled by locking the password, setting all status flags to {inact!r}, assigning "
@@ -2027,32 +2043,32 @@ msgstr ""
 "auf {inact!r}, Zuweisen von {shell!r} als Login-Shell und Löschen des Nutzers aus allen Gruppen "
 "deaktiviert. Beim Löschen wird der Nutzer tatsächlich im LDAP gelöscht."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:137
+#: lib/pp_admintools/app/remove_ldap_user.py:130
 msgid "This is the default."
 msgstr "Dieses ist die Vorgabe."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:138
+#: lib/pp_admintools/app/remove_ldap_user.py:131
 msgid "This is mutually exclusive to {!r}."
 msgstr "Das schließt sich mit {!r} gegenseitig aus."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:140
+#: lib/pp_admintools/app/remove_ldap_user.py:133
 msgid "Deactivating the user instead of removing it."
 msgstr "Deaktivieren der Nutzer anstatt Löschung."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:147
+#: lib/pp_admintools/app/remove_ldap_user.py:140
 msgid "Removing the user from LDAP."
 msgstr "Löschen der übergebenen Nutzer im LDAP."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:154
+#: lib/pp_admintools/app/remove_ldap_user.py:147
 msgid "Don't remove all mail addresses of the users to remove from all mailing lists."
 msgstr "Kein Löschen aller Mailadressen der zu löschenden Nutzer aus allen Mailing-Listen."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:162 lib/pp_admintools/app/set_ldap_password.py:201
-#: lib/pp_admintools/app/set_ldap_password.py:204
+#: lib/pp_admintools/app/remove_ldap_user.py:155 lib/pp_admintools/app/set_ldap_password.py:193
+#: lib/pp_admintools/app/set_ldap_password.py:196
 msgid "USER"
 msgstr "NUTZER"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:163
+#: lib/pp_admintools/app/remove_ldap_user.py:156
 msgid ""
 "The user, which should be deactivated or removed. They may be given by their Uid (the "
 "alphanumeric POSIX name), their mail address or their LDAP DN (be aware, that this may be "
@@ -2063,173 +2079,173 @@ msgstr ""
 "angegeben werden. Bitte beachten, dass sich letzterer bei den verschiedenen LDAP-Instanzen "
 "unterscheiden kann."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:184
+#: lib/pp_admintools/app/remove_ldap_user.py:177
 msgid "No users to remove given."
 msgstr "Kein Nutzername zum Löschen angegeben."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:239
+#: lib/pp_admintools/app/remove_ldap_user.py:232
 msgid "All given users were not found in any LDAP instance."
 msgstr "Alle übergebenen Nutzer wurden in keiner der LDAP-Instanzen gefunden."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:244
+#: lib/pp_admintools/app/remove_ldap_user.py:237
 msgid "Evaluated DNs to remove:"
 msgstr "Zum Löschen ermittelte DNs:"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:253
+#: lib/pp_admintools/app/remove_ldap_user.py:246
 msgid "Start disabling user entries in:"
 msgstr "Beginne Deaktivierung der Nutzereinträge in:"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:255
+#: lib/pp_admintools/app/remove_ldap_user.py:248
 msgid "Start removing user entries in:"
 msgstr "Beginne Löschung der Nutzereinträge in:"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:259
+#: lib/pp_admintools/app/remove_ldap_user.py:252
 msgid "Start disabling user entries ..."
 msgstr "Beginne Deaktivierung der Nutzereinträge …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:261
+#: lib/pp_admintools/app/remove_ldap_user.py:254
 msgid "Start removing user entries ..."
 msgstr "Beginne Löschung der Nutzereinträge …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:276
+#: lib/pp_admintools/app/remove_ldap_user.py:269
 msgid "Do you really want to deactivate the following users?"
 msgstr "Möchten Sie die folgenden Nutzer wirklich deaktivieren?"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:278
+#: lib/pp_admintools/app/remove_ldap_user.py:271
 msgid "Do you really want to remove the following users?"
 msgstr "Möchten Sie die folgenden Nutzer wirklich löschen?"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:304
+#: lib/pp_admintools/app/remove_ldap_user.py:297
 msgid "Deactivate [{yes}/{no}]?"
 msgstr "Deaktivieren [{yes}/{no}]?"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:306
+#: lib/pp_admintools/app/remove_ldap_user.py:299
 msgid "Remove [{yes}/{no}]?"
 msgstr "Löschen [{yes}/{no}]?"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:314
+#: lib/pp_admintools/app/remove_ldap_user.py:307
 msgid "Evaluating DNs of the user {!r} to remove ..."
 msgstr "Ermitteln der DNs des Nutzers {!r} zum Löschen …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:328 lib/pp_admintools/app/set_ldap_password.py:431
+#: lib/pp_admintools/app/remove_ldap_user.py:321 lib/pp_admintools/app/set_ldap_password.py:423
 msgid "Got DN {dn!r} for user {user!r} in LDAP instance {inst}."
 msgstr "Habe DN {dn!r} für den Nutzer {user!r} in der LDAP-Instanz {inst} ermittelt."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:335 lib/pp_admintools/app/set_ldap_password.py:436
+#: lib/pp_admintools/app/remove_ldap_user.py:328 lib/pp_admintools/app/set_ldap_password.py:428
 msgid "Found {nr} entries for user {u!r} in LDAP instance {i}."
 msgstr "Fand {nr} Einträge für den Nutzer {u!r} in der LDAP-Instanz {i}."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:347 lib/pp_admintools/app/set_ldap_password.py:450
+#: lib/pp_admintools/app/remove_ldap_user.py:340 lib/pp_admintools/app/set_ldap_password.py:442
 msgid "Did not found user {user!r} in LDAP instance {inst}."
 msgstr "Der Nutzer {user!r} wurde nicht in der LDAP-Instanz {inst} gefunden."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:356
+#: lib/pp_admintools/app/remove_ldap_user.py:349
 msgid "Deactivating all given users from {} ..."
 msgstr "Deaktivieren aller übergebenen Nutzer in {} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:358
+#: lib/pp_admintools/app/remove_ldap_user.py:351
 msgid "Removing all given users from {} ..."
 msgstr "Lösche alle übergebenen Nutzer in {} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:373
+#: lib/pp_admintools/app/remove_ldap_user.py:366
 msgid "Deactivating user {dn!r} from {inst} ..."
 msgstr "Deaktivieren von Nutzer {dn!r} in {inst} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:376
+#: lib/pp_admintools/app/remove_ldap_user.py:369
 msgid "Removing user {dn!r} from {inst} ..."
 msgstr "Lösche Nutzer {dn!r} in {inst} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:382
+#: lib/pp_admintools/app/remove_ldap_user.py:375
 msgid "Attributes of {!r}:"
 msgstr "Attribute von {!r}:"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:407
+#: lib/pp_admintools/app/remove_ldap_user.py:400
 msgid "{c} on removing user {dn!r}: {e}"
 msgstr "{c} beim Löschen des Nutzers {dn!r}: {e}"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:413
+#: lib/pp_admintools/app/remove_ldap_user.py:406
 msgid "User {dn!r} successful deactivated on {inst}."
 msgstr "Der Nutzer {dn!r} wurde erfolgreich auf {inst} deaktiviert."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:416
+#: lib/pp_admintools/app/remove_ldap_user.py:409
 msgid "User {dn!r} successful removed from {inst}."
 msgstr "Der Nutzer {dn!r} wurde erfolgreich von {inst} gelöscht."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:442
+#: lib/pp_admintools/app/remove_ldap_user.py:435
 msgid "Updating user info for {dn!r} on {inst} ..."
 msgstr "Aktualisiere die Nutzerinformationenn für {dn!r} in {inst} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:447
+#: lib/pp_admintools/app/remove_ldap_user.py:440
 msgid "{c} on deactivating user {dn!r}: {e}"
 msgstr "{c} beim Deaktivieren des Nutzers {dn!r}: {e}"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:463
+#: lib/pp_admintools/app/remove_ldap_user.py:456
 msgid "Did not found any group memberships of {dn!r} in {inst}."
 msgstr "Keine Gruppenmitgliedschaften von {dn!r} in {inst} gefunden."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:469 lib/pp_admintools/app/remove_ldap_user.py:496
-#: lib/pp_admintools/app/remove_ldap_user.py:527 lib/pp_admintools/app/remove_ldap_user.py:558
+#: lib/pp_admintools/app/remove_ldap_user.py:462 lib/pp_admintools/app/remove_ldap_user.py:489
+#: lib/pp_admintools/app/remove_ldap_user.py:520 lib/pp_admintools/app/remove_ldap_user.py:551
 msgid "Removing user {u!r} from group {g!r} ..."
 msgstr "Lösche Nutzer {u!r} aus der Gruppe {g!r} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:474 lib/pp_admintools/app/remove_ldap_user.py:501
-#: lib/pp_admintools/app/remove_ldap_user.py:532 lib/pp_admintools/app/remove_ldap_user.py:563
+#: lib/pp_admintools/app/remove_ldap_user.py:467 lib/pp_admintools/app/remove_ldap_user.py:494
+#: lib/pp_admintools/app/remove_ldap_user.py:525 lib/pp_admintools/app/remove_ldap_user.py:556
 msgid "{c} on removing user {dn!r} from group {g!r}: {e}"
 msgstr "{c} beim Löschen des Nutzers {dn!r} von der Gruppe {g!r}: {e}"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:490
+#: lib/pp_admintools/app/remove_ldap_user.py:483
 msgid "Did not found any unique group memberships of {dn!r} in {inst}."
 msgstr "Keine eindeutigen Gruppenmitgliedschaften von {dn!r} in {inst} gefunden."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:514
+#: lib/pp_admintools/app/remove_ldap_user.py:507
 msgid "Deleting user {uid!r} from all POSIX groups in {inst}."
 msgstr "Lösche Nutzer {uid!r} aus allen POSIX-Gruppen in {inst} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:521
+#: lib/pp_admintools/app/remove_ldap_user.py:514
 msgid "Did not found any POSIX group memberships of {uid!r} in {inst}."
 msgstr "Keine POSIX-Gruppenmitgliedschaften von {uid!r} in {inst} gefunden."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:545
+#: lib/pp_admintools/app/remove_ldap_user.py:538
 msgid "Deleting user {uid!r} from all sudo groups in {inst}."
 msgstr "Lösche Nutzer {uid!r} aus allen sudo-Gruppen in {inst}."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:552
+#: lib/pp_admintools/app/remove_ldap_user.py:545
 msgid "Did not found any sudo group memberships of {uid!r} in {inst}."
 msgstr "Keine sudo-Gruppenmitgliedschaften von {uid!r} in {inst} gefunden."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:585
+#: lib/pp_admintools/app/remove_ldap_user.py:578
 msgid "No mail addresses found to remove for user {!r}."
 msgstr "Keine Mailadressen des Nutzers {!r} zum Löschen efunden."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:589
+#: lib/pp_admintools/app/remove_ldap_user.py:582
 msgid "Trying to remove the following mail addresses from mailing lists:"
 msgstr "Versuche die folgenden Mailadressen aus Mailinglisten zu löschen:"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:609
+#: lib/pp_admintools/app/remove_ldap_user.py:602
 msgid "Ignoring mailing list {!r} ..."
 msgstr "Ignoriere Mailingliste {!r} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:614
+#: lib/pp_admintools/app/remove_ldap_user.py:607
 msgid "Found DNs of mailing lists:"
 msgstr "Gefundene DNs für Mailinglisten:"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:619
+#: lib/pp_admintools/app/remove_ldap_user.py:612
 msgid "Did not found any mail groups including address {!r}."
 msgstr "Keine Mailgruppen gefunden, die die Adresse {!r} enthalten."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:632
+#: lib/pp_admintools/app/remove_ldap_user.py:625
 msgid "Removing address {address!r} from mailing list {dn!r}."
 msgstr "Lösche Adresse {address!r} von Mailingliste {dn!r}."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:671
+#: lib/pp_admintools/app/remove_ldap_user.py:664
 msgid "There are no changes for mail {mail!r} on {dn!r}?!?"
 msgstr "Es gibt keine Änderungen für die Mailadresse {mail!r} in {dn!r}?!?"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:679
+#: lib/pp_admintools/app/remove_ldap_user.py:672
 msgid "{c} on removing mail {mail!r} from {dn!r}: {e}"
 msgstr "{c} beim Löschen des der Mailadresse {mail!r} von {dn!r}: {e}"
 
-#: lib/pp_admintools/app/set_ldap_password.py:89
+#: lib/pp_admintools/app/set_ldap_password.py:81
 msgid ""
 "Changing the password of the given user. If no user was given, then {app} tries to use the name "
 "of the user logged in on the controlling terminal."
@@ -2237,11 +2253,11 @@ msgstr ""
 "Ändern des Passwortes des angegebenen Nutzers. Wenn kein Nutzer angegeben wird, versucht {app} "
 "den Namen des am Terminal angemeldeten Nutzers zu verwenden."
 
-#: lib/pp_admintools/app/set_ldap_password.py:132
+#: lib/pp_admintools/app/set_ldap_password.py:124
 msgid "Use {} as the current user password."
 msgstr "Verwende {} als das aktuelle Nutzerpasswort."
 
-#: lib/pp_admintools/app/set_ldap_password.py:137
+#: lib/pp_admintools/app/set_ldap_password.py:129
 msgid ""
 "Prompt for current user password. This is used instead of specifying the password on the command"
 " line."
@@ -2249,19 +2265,19 @@ msgstr ""
 "Nachfrage nach dem aktuellen Passwort des Nutzers. Das wird anstelle der Angabe des Passortes in"
 " der Kommandozeile verwendet."
 
-#: lib/pp_admintools/app/set_ldap_password.py:145
+#: lib/pp_admintools/app/set_ldap_password.py:137
 msgid "Use contents of {} as the current user password."
 msgstr "Verwende den Inhalt von {} als das aktuelle Nutzerpasswort."
 
-#: lib/pp_admintools/app/set_ldap_password.py:150
+#: lib/pp_admintools/app/set_ldap_password.py:142
 msgid "Use {} as the new user password. If not given, it will be asked for it."
 msgstr "Verwende {} als das neue Nutzerpasswort. Wenn nicht angegeben, wird danach gefragt."
 
-#: lib/pp_admintools/app/set_ldap_password.py:158
+#: lib/pp_admintools/app/set_ldap_password.py:150
 msgid "Do not check the quality of the new password with the {} library."
 msgstr "Keine Überprüfung der Qualität des neuen Passwortes mit der {}-Bibliothek."
 
-#: lib/pp_admintools/app/set_ldap_password.py:173
+#: lib/pp_admintools/app/set_ldap_password.py:165
 msgid ""
 "The schema (hashing method) to use to hash the new password. It is possible to give here the "
 "value {val_list!r}, then all possible schemes are shown and exit. Default: {default!r}."
@@ -2270,13 +2286,13 @@ msgstr ""
 "möglich, hier den Wert {val_list!r} anzugeben, dann werden alle verfügbaren Schemen aufgelistet."
 " Vorgabe: {default!r}."
 
-#: lib/pp_admintools/app/set_ldap_password.py:178
+#: lib/pp_admintools/app/set_ldap_password.py:170
 msgid "If you are not using an admin account, then the password will hashed only by the default schema."
 msgstr ""
 "Wenn kein Admin-Account verwendet wird, dann wird das Passwort ausschließlich mit dem Vorgabe-"
 "Schema gehasht."
 
-#: lib/pp_admintools/app/set_ldap_password.py:187
+#: lib/pp_admintools/app/set_ldap_password.py:179
 msgid ""
 "The user, which password in the given LDAP instance should be changed. It may be given by its "
 "Uid (the alphanumeric POSIX name), its mail address or its LDAP DN."
@@ -2285,11 +2301,11 @@ msgstr ""
 "seine Uid (der alphanumerische POSIX-Nutzername), als seine Mailadresse oder als seine LDAP-DN "
 "angegeben werden."
 
-#: lib/pp_admintools/app/set_ldap_password.py:192
+#: lib/pp_admintools/app/set_ldap_password.py:184
 msgid "If not given, then your current user name {!r} will be used."
 msgstr "Wenn nicht angegeben, dann wird der aktuelle Nutzername {!r} verwendet."
 
-#: lib/pp_admintools/app/set_ldap_password.py:195
+#: lib/pp_admintools/app/set_ldap_password.py:187
 msgid ""
 "If you are using a readonly LDAP instance or an instance w/o admin access, then you must provide"
 " somehow the current password of the user to change."
@@ -2297,55 +2313,55 @@ msgstr ""
 "Wenn eine LDAP-Instanz verwendet wird, die nur Leserechte oder keinen Admin-Zugriff hat, dann "
 "muss irgendwie das neue Passwort des Nutzer zum Ändern angegeben werden."
 
-#: lib/pp_admintools/app/set_ldap_password.py:261
+#: lib/pp_admintools/app/set_ldap_password.py:253
 msgid "Could not detect your current login name."
 msgstr "Konnte den aktuellen Anmeldenamen nicht ermitteln."
 
-#: lib/pp_admintools/app/set_ldap_password.py:266
+#: lib/pp_admintools/app/set_ldap_password.py:258
 msgid "The user {!r} will never be managed by LDAP."
 msgstr "Der Nutzer {!r} wird niemals nimmer nicht von LDAP gemanagt."
 
-#: lib/pp_admintools/app/set_ldap_password.py:300
+#: lib/pp_admintools/app/set_ldap_password.py:292
 msgid "Using LDAP instance {inst!r} - {url}."
 msgstr "Verwende LDAP-Instanz {inst!r} - {url}."
 
-#: lib/pp_admintools/app/set_ldap_password.py:304
+#: lib/pp_admintools/app/set_ldap_password.py:296
 msgid "Current password of user {!r}:"
 msgstr "Aktuelles Passwort des Nutzers {!r}:"
 
-#: lib/pp_admintools/app/set_ldap_password.py:318
+#: lib/pp_admintools/app/set_ldap_password.py:310
 msgid "Non admin users must use the default schema {!r} for hashing their password."
 msgstr "Nicht-Admin-Nutzer müssen das Vorgabeschema {!r} für das Hashen des Passwortes verwenden."
 
-#: lib/pp_admintools/app/set_ldap_password.py:324
+#: lib/pp_admintools/app/set_ldap_password.py:316
 msgid "New password of user {!r}:"
 msgstr "Neues Passwort für Nutzer {!r}:"
 
-#: lib/pp_admintools/app/set_ldap_password.py:330
+#: lib/pp_admintools/app/set_ldap_password.py:322
 msgid "Checking the quality of the new password was disabled."
 msgstr "Die Überprüfung der Qualität des neuen Passwortes wurde deaktiviert."
 
-#: lib/pp_admintools/app/set_ldap_password.py:360
+#: lib/pp_admintools/app/set_ldap_password.py:352
 msgid "Unbinding user connection from LDAP server {} ..."
 msgstr "Trenne Verbindung des Nutzers zu LDAP-Server {} …"
 
-#: lib/pp_admintools/app/set_ldap_password.py:371
+#: lib/pp_admintools/app/set_ldap_password.py:363
 msgid "Testing connect to LDAP-Server {url} with current user {dn!r} and password ..."
 msgstr "Teste eine Anmeldung am LDAP-Server {url} als aktueller Nutzer {dn!r} mit Passwort …"
 
-#: lib/pp_admintools/app/set_ldap_password.py:383
+#: lib/pp_admintools/app/set_ldap_password.py:375
 msgid "Successful connected as {dn!r} to {url}."
 msgstr "Erfolgreich als {dn!r} an {url} angemeldet."
 
-#: lib/pp_admintools/app/set_ldap_password.py:389
+#: lib/pp_admintools/app/set_ldap_password.py:381
 msgid "Could not connect to {url} as {dn!r}: {e}"
 msgstr "Nutzer {dn!r} konnte nicht an {url} angemeldet werden: {e}"
 
-#: lib/pp_admintools/app/set_ldap_password.py:400
+#: lib/pp_admintools/app/set_ldap_password.py:392
 msgid "Trying to get current password hash of user {!r} ..."
 msgstr "Versuche den aktuellen Passwort-Hash des Nutzers {!r} zu holen …"
 
-#: lib/pp_admintools/app/set_ldap_password.py:438
+#: lib/pp_admintools/app/set_ldap_password.py:430
 msgid ""
 "Please use another username, or use the correct DN from the following list as a parameter for "
 "this script instead of the username:"
@@ -2353,69 +2369,108 @@ msgstr ""
 "Bitte einen anderen Nutzernamen oder den richtigen DN aus der folgenden Liste als Parameter für "
 "dieses Skript als Nutzername angeben:"
 
-#: lib/pp_admintools/app/set_ldap_password.py:455
+#: lib/pp_admintools/app/set_ldap_password.py:447
 msgid "Changing the password of user {dn!r} in LDAP instance {inst}."
 msgstr "Ändern des Passwortes des Nutzers {dn!r} in der LDAP-Instanz {inst}."
 
-#: lib/pp_admintools/app/set_ldap_password.py:462
+#: lib/pp_admintools/app/set_ldap_password.py:454
 msgid "Setting password of '{dn}' with hashing schema '{schema}' ..."
 msgstr "Setze das Passwort von '{dn}' mit dem Hashing-Schema '{schema}'."
 
-#: lib/pp_admintools/app/set_ldap_password.py:468
+#: lib/pp_admintools/app/set_ldap_password.py:460
 msgid "Current password hash: '{}'."
 msgstr "Aktueller Passwort-Hash: '{}'"
 
-#: lib/pp_admintools/app/set_ldap_password.py:471
+#: lib/pp_admintools/app/set_ldap_password.py:463
 msgid "The user '{}' has currently no password."
 msgstr "Der Nutzer '{}' hat aktuell kein Passwort."
 
-#: lib/pp_admintools/app/set_ldap_password.py:484
+#: lib/pp_admintools/app/set_ldap_password.py:476
 msgid "New password hash: '{}'."
 msgstr "Neuer Passwort-Hash: '{}'."
 
-#: lib/pp_admintools/app/set_ldap_password.py:488
+#: lib/pp_admintools/app/set_ldap_password.py:480
 msgid "Apply new password? [{yes}/{no}]?"
 msgstr "Neues Passwort setzen [{yes}/{no}]?"
 
-#: lib/pp_admintools/app/set_ldap_password.py:494
+#: lib/pp_admintools/app/set_ldap_password.py:486
 msgid "Do not setting password for {!r}."
 msgstr "Passwort für {!r} wird nicht gesetzt."
 
-#: lib/pp_admintools/app/set_ldap_password.py:510
+#: lib/pp_admintools/app/set_ldap_password.py:502
 msgid "Setting password ..."
 msgstr "Setze Passwort …"
 
-#: lib/pp_admintools/app/set_ldap_password.py:516
+#: lib/pp_admintools/app/set_ldap_password.py:508
 msgid "{c} on setting password of user {dn!r}: {e}"
 msgstr "{c} beim Setzen des Passwortes des Nutzers {dn!r}: {e}"
 
-#: lib/pp_admintools/argparse_actions.py:51
+#: lib/pp_admintools/argparse_actions.py:56
 msgid "Value {v!r} for a {what} port is invalid:"
 msgstr "Der Wert {v!r} für ein {what}-Port ist ungültig."
 
-#: lib/pp_admintools/argparse_actions.py:56
+#: lib/pp_admintools/argparse_actions.py:61
 msgid "Value {v!r} for a {what} port must be greater than 0 and less than {max}."
 msgstr "Der Wert {v!r} für ein {what}-Port muss größer als 0 und kleiner als {max} sein."
 
-#: lib/pp_admintools/argparse_actions.py:76 lib/pp_admintools/argparse_actions.py:107
+#: lib/pp_admintools/argparse_actions.py:89 lib/pp_admintools/argparse_actions.py:164
 msgid "Got a {c} for converting {v!r} into an integer value: {e}"
 msgstr "Habe ein {c} bei der Konvertierung von {v!r} in einen Integer-Wert erhalten: {e}"
 
-#: lib/pp_admintools/argparse_actions.py:81
+#: lib/pp_admintools/argparse_actions.py:94 lib/pp_admintools/argparse_actions.py:131
 msgid "The option must not be negative (given: {})."
 msgstr "Die Option darf nicht negativ sein (gegeben: {})."
 
-#: lib/pp_admintools/argparse_actions.py:113 lib/pp_admintools/argparse_actions.py:151
+#: lib/pp_admintools/argparse_actions.py:98 lib/pp_admintools/argparse_actions.py:135
+msgid "The option must not be zero."
+msgstr "Die Option darf nicht Null sein."
+
+#: lib/pp_admintools/argparse_actions.py:126 lib/pp_admintools/argparse_actions.py:218
+msgid "Got a {c} for converting {v!r} into a float value: {e}"
+msgstr "Habe ein {c} bei der Konvertierung von {v!r} in einen Float-Wert erhalten: {e}"
+
+#: lib/pp_admintools/argparse_actions.py:171 lib/pp_admintools/argparse_actions.py:225
 msgid "The option must be greater or equal to {m} (given: {v})."
 msgstr "Die Option muss größer oder gleich {m} sein (gegeben: {v})."
 
-#: lib/pp_admintools/argparse_actions.py:119 lib/pp_admintools/argparse_actions.py:156
+#: lib/pp_admintools/argparse_actions.py:176 lib/pp_admintools/argparse_actions.py:230
+msgid "The option must be greater than {m} (given: {v})."
+msgstr "Die Option muss größer als {m} sein (gegeben: {v})."
+
+#: lib/pp_admintools/argparse_actions.py:183 lib/pp_admintools/argparse_actions.py:237
 msgid "The option must be less or equal to {m} (given: {v})."
 msgstr "Die Option muss kleiner oder gleich {m} sein (gegeben: {v})."
 
-#: lib/pp_admintools/argparse_actions.py:146
-msgid "Got a {c} for converting {v!r} into a float value: {e}"
-msgstr "Habe ein {c} bei der Konvertierung von {v!r} in einen Float-Wert erhalten: {e}"
+#: lib/pp_admintools/argparse_actions.py:188 lib/pp_admintools/argparse_actions.py:242
+msgid "The option must be less than {m} (given: {v})."
+msgstr "Die Option muss kleiner als {m} sein (gegeben: {v})."
+
+#: lib/pp_admintools/app/ldap.py:208 lib/pp_admintools/argparse_actions.py:268
+msgid "The path {!r} must be an absolute path."
+msgstr "Der Pfad {!r} muss ein absoluter Pfad sein."
+
+#: lib/pp_admintools/app/ldap.py:212 lib/pp_admintools/app/ldap.py:1834
+#: lib/pp_admintools/argparse_actions.py:274
+msgid "The file {!r} does not exists."
+msgstr "Die Datei {!r} existiert nicht."
+
+#: lib/pp_admintools/app/ldap.py:216 lib/pp_admintools/app/ldap.py:1839
+#: lib/pp_admintools/argparse_actions.py:278
+msgid "The given path {!r} exists, but is not a regular file."
+msgstr "Der angegebene Pfad {!r} existiert, ist aber keine reguläre Datei."
+
+#: lib/pp_admintools/app/ldap.py:220 lib/pp_admintools/app/ldap.py:1844
+#: lib/pp_admintools/argparse_actions.py:282
+msgid "The given file {!r} is not readable."
+msgstr "Die angegebene Datei {} ist nicht lesbar."
+
+#: lib/pp_admintools/argparse_actions.py:304
+msgid "a port number must be greater than zero and less or equal to {}."
+msgstr "ein Port muss größer als Null und kleiner oder gleich {} sein."
+
+#: lib/pp_admintools/argparse_actions.py:309
+msgid "Wrong port number {!r}:"
+msgstr "Ungültige Portnummer {!r}."
 
 #: lib/pp_admintools/config/dns_deploy_zones.py:202 lib/pp_admintools/config/dns_deploy_zones.py:515
 #: lib/pp_admintools/config/mail.py:138 lib/pp_admintools/config/pdns.py:182
index 0a1e0bc2e4c5be2d1002e01c1bae895100be478b..f33f0b1138715d1b724fd093f7d40d8879c73a07 100644 (file)
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pp_admintools 0.11.0\n"
 "Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2024-01-26 14:49+0100\n"
-"PO-Revision-Date: 2024-01-26 14:20+0100\n"
+"POT-Creation-Date: 2024-01-30 18:22+0100\n"
+"PO-Revision-Date: 2024-01-30 18:10+0100\n"
 "Last-Translator: Frank Brehm <frank.brehm@pixelpark.com>\n"
 "Language: en_US\n"
 "Language-Team: Frank Brehm <frank.brehm@pixelpark.com>\n"
@@ -16,13 +16,13 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
+"Generated-By: Babel 2.12.1\n"
 
-#: lib/pp_admintools/app/__init__.py:143
+#: lib/pp_admintools/app/__init__.py:128
 msgid "Using logfile {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:145
+#: lib/pp_admintools/app/__init__.py:130
 msgid "Don't using a logfile."
 msgstr ""
 
@@ -40,8 +40,9 @@ msgid ""
 "Default: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/barracuda_sync.py:149 lib/pp_admintools/app/ldap.py:492
-#: lib/pp_admintools/app/mirror_ldap.py:122 lib/pp_admintools/app/pdns.py:285
+#: lib/pp_admintools/app/barracuda_sync.py:149 lib/pp_admintools/app/ldap.py:457
+#: lib/pp_admintools/app/ldap.py:468 lib/pp_admintools/app/mirror_ldap.py:114
+#: lib/pp_admintools/app/pdns.py:275
 msgid "SECONDS"
 msgstr ""
 
@@ -76,11 +77,11 @@ msgid "Error {} on evaluating lookup table types"
 msgstr ""
 
 #: lib/pp_admintools/app/barracuda_sync.py:231 lib/pp_admintools/app/barracuda_sync.py:427
-#: lib/pp_admintools/app/dns_deploy_zones.py:436 lib/pp_admintools/app/dns_deploy_zones.py:796
-#: lib/pp_admintools/app/ldap.py:1001 lib/pp_admintools/app/ldap.py:1134
-#: lib/pp_admintools/app/ldap.py:1187 lib/pp_admintools/app/ldap.py:1240
-#: lib/pp_admintools/app/ldap.py:1545 lib/pp_admintools/app/ldap.py:1579
-#: lib/pp_admintools/app/ldap.py:1613 lib/pp_admintools/app/ldap.py:1647
+#: lib/pp_admintools/app/dns_deploy_zones.py:431 lib/pp_admintools/app/dns_deploy_zones.py:791
+#: lib/pp_admintools/app/ldap.py:1120 lib/pp_admintools/app/ldap.py:1267
+#: lib/pp_admintools/app/ldap.py:1327 lib/pp_admintools/app/ldap.py:1387
+#: lib/pp_admintools/app/ldap.py:1695 lib/pp_admintools/app/ldap.py:1736
+#: lib/pp_admintools/app/ldap.py:1777 lib/pp_admintools/app/ldap.py:1818
 msgid "Result:"
 msgstr ""
 
@@ -284,7 +285,7 @@ msgstr ""
 msgid "LDAP Entries to modified:"
 msgstr ""
 
-#: lib/pp_admintools/app/barracuda_sync.py:756 lib/pp_admintools/app/ldap.py:1760
+#: lib/pp_admintools/app/barracuda_sync.py:756 lib/pp_admintools/app/ldap.py:1931
 msgid "Values to add to attribute {!r}:"
 msgstr ""
 
@@ -292,11 +293,11 @@ msgstr ""
 msgid "Values to be removed from attribute {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/barracuda_sync.py:777 lib/pp_admintools/app/ldap.py:1781
+#: lib/pp_admintools/app/barracuda_sync.py:777 lib/pp_admintools/app/ldap.py:1952
 msgid "Changes for attribute {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/barracuda_sync.py:780 lib/pp_admintools/app/ldap.py:1784
+#: lib/pp_admintools/app/barracuda_sync.py:780 lib/pp_admintools/app/ldap.py:1955
 msgid "No changes to attribute {!r}."
 msgstr ""
 
@@ -354,110 +355,110 @@ msgstr[1] ""
 msgid "Get all necessary data from LDAP and static virtual aliases table ..."
 msgstr "Get all necessary data from LDAP and static virtual aliases table …"
 
-#: lib/pp_admintools/app/barracuda_sync.py:972 lib/pp_admintools/app/mirror_ldap.py:352
+#: lib/pp_admintools/app/barracuda_sync.py:972 lib/pp_admintools/app/mirror_ldap.py:345
 msgid "Finished."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:78
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:69
 msgid ""
 "Checking all attributes with a DN syntax ({alist}) in the given instance. The check is for the "
 "DN-syntax of the attributes and whether they are referencing to existing entries in LDAP."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:97
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:105
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:88
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:96
 msgid "Script options"
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:100
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:91
 msgid "FILE"
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:101
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:92
 msgid "Exportig the faulty entries and attributes into a YAML file, if there were found some of them."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:129
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:120
 msgid "Created export file {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:131
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:122
 msgid "Start checking all DN-like attributes in in LDAP instance {inst!r} ({url}) ..."
 msgstr "tart checking all DN-like attributes in in LDAP instance {inst!r} ({url}) …"
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:154
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:145
 msgid "Found one entry to check."
 msgid_plural "Found {} entries to check."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:158
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:149
 msgid "Found no to check."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:178
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:169
 msgid "Got an inconsistent entry."
 msgid_plural "Got {} inconsistent entries."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:181
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:172
 msgid "There is one inconsistent attribute."
 msgid_plural "There are {} inconsistent attributes."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:186
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:177
 msgid "Writing export file {!r} ..."
 msgstr "Writing export file {!r} …"
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:193
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:184
 msgid "Did not found any inconsistent entries."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:214
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:205
 msgid "Checking DN-like attributes of entry {!r} ..."
 msgstr "Checking DN-like attributes of entry {!r} …"
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:219
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:189
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:233
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:210
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:180
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:224
 msgid "Got attributes:"
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:82
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:73
 msgid ""
 "Reports the password hashing schemes of {attr} attributes in LDAP. Without a filter or a more "
 "special Base-DN the hashing schemes of all {attr} attributes in the LDAP tree are shown. One can"
 " filter the output by a regular LDAP-filter rule of by one or more hashing schemes."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:108
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:99
 msgid "FILTER"
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:109
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:100
 msgid ""
 "An additional LDAP filter to limit the entries to print out their password hashing schema. "
 "Please note, that this filter will be wrapped by parantheses to combine it with the default "
 "filter {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:123
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:114
 msgid ""
 "One or more schemes (hashing methods) for filtering the {attr} attributes. It is possible to "
 "give here the value {val_list!r}, then all possible schemes are shown and exit."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:129 lib/pp_admintools/app/set_ldap_password.py:183
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:120 lib/pp_admintools/app/set_ldap_password.py:175
 msgid "SCHEMA"
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:135
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:126
 msgid "Show more details in output, e.g. the entry DN."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:167
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:158
 msgid ""
 "Start reporting password hashing schemes of {attr} attributes in in LDAP instance {inst!r} "
 "({url}) ..."
@@ -465,362 +466,362 @@ msgstr ""
 "Start reporting password hashing schemes of {attr} attributes in in LDAP instance {inst!r} "
 "({url})  …"
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:180
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:171
 msgid "Used LDAP filter: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:222
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:213
 msgid "Found entry {!r} with data:"
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:226
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:217
 msgid "Did not found any entries with a {attr} attribute and the given filters."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:233
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:224
 msgid "Found entry DNs:"
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:75
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:66
 msgid ""
 "Removes all LDAP groups, which does not have any members, that means, they are one of the "
 "following objectClasses: {ocl}, and they have none of the following attributes: {atl}."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:124 lib/pp_admintools/app/remove_ldap_user.py:134
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:115 lib/pp_admintools/app/remove_ldap_user.py:127
 msgid "Removing options"
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:128
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:119
 msgid "The base DN used as the root for the LDAP search."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:154 lib/pp_admintools/app/remove_ldap_user.py:202
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:145 lib/pp_admintools/app/remove_ldap_user.py:195
 msgid "Checking given instances for admin and read/write access."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:161 lib/pp_admintools/app/remove_ldap_user.py:209
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:152 lib/pp_admintools/app/remove_ldap_user.py:202
 msgid "LDAP instance {!r} not found in configuration."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:169 lib/pp_admintools/app/remove_ldap_user.py:217
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:160 lib/pp_admintools/app/remove_ldap_user.py:210
 msgid "LDAP instance {!r} has only readonly access."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:174 lib/pp_admintools/app/remove_ldap_user.py:222
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:165 lib/pp_admintools/app/remove_ldap_user.py:215
 msgid "No admin access to LDAP instance {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:184
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:175
 msgid "Searching for empty groups ..."
 msgstr "Searching for empty groups …"
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:191
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:182
 msgid "No more empty groups left for removing."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:194
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:185
 msgid "Lap {} on searching for empty groups to remove."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:229
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:220
 msgid "Searching for member attributes of {!r} ..."
 msgstr "Searching for member attributes of {!r} …"
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:239
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:230
 msgid "Found attribute {at!r} in group {g!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:242
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:233
 msgid "Group {!r} is not empty!"
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:247
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:238
 msgid "Removing group {!r} ..."
 msgstr "Removing group {!r} …"
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:251
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:242
 msgid "Dont't removing group {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:258
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:249
 msgid "Do you really want to remove the group '{}'"
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:260
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:251
 msgid "[{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:261 lib/pp_admintools/app/ldap.py:368
-#: lib/pp_admintools/app/mirror_ldap.py:253 lib/pp_admintools/app/remove_ldap_user.py:308
-#: lib/pp_admintools/app/set_ldap_password.py:489
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:252 lib/pp_admintools/app/ldap.py:325
+#: lib/pp_admintools/app/mirror_ldap.py:245 lib/pp_admintools/app/remove_ldap_user.py:301
+#: lib/pp_admintools/app/set_ldap_password.py:481
 msgid "No"
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:261 lib/pp_admintools/app/mirror_ldap.py:253
-#: lib/pp_admintools/app/remove_ldap_user.py:308 lib/pp_admintools/app/set_ldap_password.py:489
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:252 lib/pp_admintools/app/mirror_ldap.py:245
+#: lib/pp_admintools/app/remove_ldap_user.py:301 lib/pp_admintools/app/set_ldap_password.py:481
 msgid "yes"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:124
+#: lib/pp_admintools/app/dns_deploy_zones.py:119
 msgid "Generation of the BIND9 configuration file for slave zones."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:252 lib/pp_admintools/app/mk_ldap_passwd.py:86
-#: lib/pp_admintools/app/set_ldap_password.py:125
+#: lib/pp_admintools/app/dns_deploy_zones.py:247 lib/pp_admintools/app/mk_ldap_passwd.py:78
+#: lib/pp_admintools/app/set_ldap_password.py:117
 msgid "Options for {}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:257
+#: lib/pp_admintools/app/dns_deploy_zones.py:252
 msgid "Keep a backup file for each changed configuration file."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:262
+#: lib/pp_admintools/app/dns_deploy_zones.py:257
 msgid "Keeping the temporary directory instead of removing it at the end (e.g. for debugging purposes)"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:286
+#: lib/pp_admintools/app/dns_deploy_zones.py:281
 msgid "Post init phase."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:290
+#: lib/pp_admintools/app/dns_deploy_zones.py:285
 msgid "My own post init phase."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:306
+#: lib/pp_admintools/app/dns_deploy_zones.py:301
 msgid "Unknown time zone: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:321
+#: lib/pp_admintools/app/dns_deploy_zones.py:316
 msgid "You must be root to execute this script."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:323
+#: lib/pp_admintools/app/dns_deploy_zones.py:318
 msgid "But in simulation mode we are continuing nevertheless."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:330
+#: lib/pp_admintools/app/dns_deploy_zones.py:325
 msgid "Starting: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:338
+#: lib/pp_admintools/app/dns_deploy_zones.py:333
 msgid "Using the global DNS master is not supported, please use 'local' or 'public'"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:351
+#: lib/pp_admintools/app/dns_deploy_zones.py:346
 msgid "Could not occupy pidfile: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:376
+#: lib/pp_admintools/app/dns_deploy_zones.py:371
 msgid "Ending: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:381
+#: lib/pp_admintools/app/dns_deploy_zones.py:376
 msgid "Cleaning up ..."
 msgstr "Cleaning up …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:385
+#: lib/pp_admintools/app/dns_deploy_zones.py:380
 msgid "Searching for {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:388
+#: lib/pp_admintools/app/dns_deploy_zones.py:383
 msgid "Keep existing backup file {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:390
+#: lib/pp_admintools/app/dns_deploy_zones.py:385
 msgid "Removing {!r} ..."
 msgstr "Removing {!r} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:396
+#: lib/pp_admintools/app/dns_deploy_zones.py:391
 msgid "Error removing {p!r} - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:401
+#: lib/pp_admintools/app/dns_deploy_zones.py:396
 msgid "Temporary directory {!r} will not be removed. It's on yours to remove it manually."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:406
+#: lib/pp_admintools/app/dns_deploy_zones.py:401
 msgid "Destroying temporary directory {!r} ..."
 msgstr "Destroying temporary directory {!r} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:414
+#: lib/pp_admintools/app/dns_deploy_zones.py:409
 msgid "Temporary directory: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:419
+#: lib/pp_admintools/app/dns_deploy_zones.py:414
 msgid "Temporary zones conf: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:424
+#: lib/pp_admintools/app/dns_deploy_zones.py:419
 msgid "Trying to get all keys from named.conf ..."
 msgstr "Trying to get all keys from named.conf …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:430 lib/pp_admintools/app/dns_deploy_zones.py:790
-#: lib/pp_admintools/app/dns_deploy_zones.py:826 lib/pp_admintools/app/dns_deploy_zones.py:858
-#: lib/pp_admintools/app/dns_deploy_zones.py:893 lib/pp_admintools/app/dns_deploy_zones.py:928
-#: lib/pp_admintools/app/mail.py:317
+#: lib/pp_admintools/app/dns_deploy_zones.py:425 lib/pp_admintools/app/dns_deploy_zones.py:785
+#: lib/pp_admintools/app/dns_deploy_zones.py:821 lib/pp_admintools/app/dns_deploy_zones.py:853
+#: lib/pp_admintools/app/dns_deploy_zones.py:888 lib/pp_admintools/app/dns_deploy_zones.py:923
+#: lib/pp_admintools/app/mail.py:310
 msgid "Executing: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:477 lib/pp_admintools/app/dns_deploy_zones.py:479
+#: lib/pp_admintools/app/dns_deploy_zones.py:472 lib/pp_admintools/app/dns_deploy_zones.py:474
 msgid "Found named keys:"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:479 lib/pp_admintools/app/dns_deploy_zones.py:510
+#: lib/pp_admintools/app/dns_deploy_zones.py:474 lib/pp_admintools/app/dns_deploy_zones.py:505
 msgid "None"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:484
+#: lib/pp_admintools/app/dns_deploy_zones.py:479
 msgid "Generating {} ..."
 msgstr "Generating {} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:508 lib/pp_admintools/app/dns_deploy_zones.py:510
+#: lib/pp_admintools/app/dns_deploy_zones.py:503 lib/pp_admintools/app/dns_deploy_zones.py:505
 msgid "Collected server configuration:"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:531
+#: lib/pp_admintools/app/dns_deploy_zones.py:526
 msgid "Generated file {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:541
+#: lib/pp_admintools/app/dns_deploy_zones.py:536
 msgid "Could not get zone info for {z!r} - {cls}: {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:553
+#: lib/pp_admintools/app/dns_deploy_zones.py:548
 msgid "Pure local zone {!r} will not be considered."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:585
+#: lib/pp_admintools/app/dns_deploy_zones.py:580
 msgid "Key {k!r} for zone {z!r} not found in named configuration."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:615
+#: lib/pp_admintools/app/dns_deploy_zones.py:610
 msgid "Got IPv4 tuples: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:639
+#: lib/pp_admintools/app/dns_deploy_zones.py:634
 msgid "Got IPv6 tokens: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:646
+#: lib/pp_admintools/app/dns_deploy_zones.py:641
 msgid "Comparing generated files with existing ones."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:653
+#: lib/pp_admintools/app/dns_deploy_zones.py:648
 msgid "Files to replace:"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:659
+#: lib/pp_admintools/app/dns_deploy_zones.py:654
 msgid "Source file not defined."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:661
+#: lib/pp_admintools/app/dns_deploy_zones.py:656
 msgid "Target file not defined."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:663
+#: lib/pp_admintools/app/dns_deploy_zones.py:658
 msgid "Comparing {one!r} with {two!r} ..."
 msgstr "Comparing {one!r} with {two!r} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:667 lib/pp_admintools/app/dns_deploy_zones.py:676
+#: lib/pp_admintools/app/dns_deploy_zones.py:662 lib/pp_admintools/app/dns_deploy_zones.py:671
 msgid "{what} {f!r} does not exists."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:668 lib/pp_admintools/app/dns_deploy_zones.py:672
+#: lib/pp_admintools/app/dns_deploy_zones.py:663 lib/pp_admintools/app/dns_deploy_zones.py:667
 msgid "Source file"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:671 lib/pp_admintools/app/dns_deploy_zones.py:681
+#: lib/pp_admintools/app/dns_deploy_zones.py:666 lib/pp_admintools/app/dns_deploy_zones.py:676
 msgid "{what} {f!r} is not a regular file."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:677 lib/pp_admintools/app/dns_deploy_zones.py:682
+#: lib/pp_admintools/app/dns_deploy_zones.py:672 lib/pp_admintools/app/dns_deploy_zones.py:677
 msgid "Target file"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:688 lib/pp_admintools/app/dns_deploy_zones.py:705
+#: lib/pp_admintools/app/dns_deploy_zones.py:683 lib/pp_admintools/app/dns_deploy_zones.py:700
 msgid "Reading {!r} ..."
 msgstr "Reading {!r} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:698 lib/pp_admintools/app/dns_deploy_zones.py:715
+#: lib/pp_admintools/app/dns_deploy_zones.py:693 lib/pp_admintools/app/dns_deploy_zones.py:710
 msgid "Cleaned version of {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:720
+#: lib/pp_admintools/app/dns_deploy_zones.py:715
 msgid ""
 "Source file {sf!r} has different number essential lines ({sl}) than the target file {tf!r} ({tl}"
 " lines)."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:729
+#: lib/pp_admintools/app/dns_deploy_zones.py:724
 msgid "Source file {sf!r} has a different content than the target file {tf!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:741
+#: lib/pp_admintools/app/dns_deploy_zones.py:736
 msgid "No replacement of any config files necessary."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:744
+#: lib/pp_admintools/app/dns_deploy_zones.py:739
 msgid "Start replacing of config files ..."
 msgstr "Start replacing of config files …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:752 lib/pp_admintools/app/dns_deploy_zones.py:762
+#: lib/pp_admintools/app/dns_deploy_zones.py:747 lib/pp_admintools/app/dns_deploy_zones.py:757
 msgid "Copying {frm!r} => {to!r} ..."
 msgstr "Copying {frm!r} => {to!r} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:758
+#: lib/pp_admintools/app/dns_deploy_zones.py:753
 msgid "All backuped config files:"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:770
+#: lib/pp_admintools/app/dns_deploy_zones.py:765
 msgid "Restoring of original config files because of an exception."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:774
+#: lib/pp_admintools/app/dns_deploy_zones.py:769
 msgid "Moving {frm!r} => {to!r} ..."
 msgstr "Moving {frm!r} => {to!r} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:780
+#: lib/pp_admintools/app/dns_deploy_zones.py:775
 msgid "Could not find backup file {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:785
+#: lib/pp_admintools/app/dns_deploy_zones.py:780
 msgid "Checking syntax correctness of named.conf ..."
 msgstr "Checking syntax correctness of named.conf …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:806
+#: lib/pp_admintools/app/dns_deploy_zones.py:801
 msgid "Reload or restart of named is not necessary."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:811
+#: lib/pp_admintools/app/dns_deploy_zones.py:806
 msgid "Named is not running, please start it manually."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:822
+#: lib/pp_admintools/app/dns_deploy_zones.py:817
 msgid "Checking, whether named is running ..."
 msgstr "Checking, whether named is running …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:840 lib/pp_admintools/app/dns_deploy_zones.py:875
-#: lib/pp_admintools/app/dns_deploy_zones.py:910 lib/pp_admintools/app/dns_deploy_zones.py:945
+#: lib/pp_admintools/app/dns_deploy_zones.py:835 lib/pp_admintools/app/dns_deploy_zones.py:870
+#: lib/pp_admintools/app/dns_deploy_zones.py:905 lib/pp_admintools/app/dns_deploy_zones.py:940
 msgid "Return value: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:842 lib/pp_admintools/app/dns_deploy_zones.py:844
-#: lib/pp_admintools/app/dns_deploy_zones.py:877 lib/pp_admintools/app/dns_deploy_zones.py:879
-#: lib/pp_admintools/app/dns_deploy_zones.py:912 lib/pp_admintools/app/dns_deploy_zones.py:914
-#: lib/pp_admintools/app/dns_deploy_zones.py:947 lib/pp_admintools/app/dns_deploy_zones.py:949
+#: lib/pp_admintools/app/dns_deploy_zones.py:837 lib/pp_admintools/app/dns_deploy_zones.py:839
+#: lib/pp_admintools/app/dns_deploy_zones.py:872 lib/pp_admintools/app/dns_deploy_zones.py:874
+#: lib/pp_admintools/app/dns_deploy_zones.py:907 lib/pp_admintools/app/dns_deploy_zones.py:909
+#: lib/pp_admintools/app/dns_deploy_zones.py:942 lib/pp_admintools/app/dns_deploy_zones.py:944
 msgid "Output on {}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:854
+#: lib/pp_admintools/app/dns_deploy_zones.py:849
 msgid "Starting {} ..."
 msgstr "Starting {} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:889
+#: lib/pp_admintools/app/dns_deploy_zones.py:884
 msgid "Restarting {} ..."
 msgstr "Restarting {} …"
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:924
+#: lib/pp_admintools/app/dns_deploy_zones.py:919
 msgid "Reloading {} ..."
 msgstr "Reloading {} …"
 
@@ -867,7 +868,7 @@ msgstr "' …"
 msgid "Checking for dependend unique attribute '"
 msgstr ""
 
-#: lib/pp_admintools/app/duplicate_attribs.py:172 lib/pp_admintools/app/ldap.py:627
+#: lib/pp_admintools/app/duplicate_attribs.py:172 lib/pp_admintools/app/ldap.py:611
 msgid "Used filter:"
 msgstr ""
 
@@ -875,120 +876,101 @@ msgstr ""
 msgid "No duplicates for attribute {!r} found."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:126 lib/pp_admintools/app/ldap.py:299
-msgid "The path {!r} must be an absolute path."
-msgstr ""
-
-#: lib/pp_admintools/app/ldap.py:132 lib/pp_admintools/app/ldap.py:303
-#: lib/pp_admintools/app/ldap.py:1663
-msgid "The file {!r} does not exists."
-msgstr ""
-
-#: lib/pp_admintools/app/ldap.py:136 lib/pp_admintools/app/ldap.py:307
-#: lib/pp_admintools/app/ldap.py:1668
-msgid "The given path {!r} exists, but is not a regular file."
-msgstr ""
-
-#: lib/pp_admintools/app/ldap.py:140 lib/pp_admintools/app/ldap.py:311
-#: lib/pp_admintools/app/ldap.py:1673
-msgid "The given file {!r} is not readable."
+#: lib/pp_admintools/app/ldap.py:235
+msgid "The value {v} for {n} must be greater than zero."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:162
-msgid "a port number must be greater than zero and less or equal to {}."
+#: lib/pp_admintools/app/ldap.py:239 lib/pp_admintools/app/ldap.py:261
+msgid "The value {v} for {n} must not be greater than {m}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:167
-msgid "Wrong port number {!r}:"
+#: lib/pp_admintools/app/ldap.py:257
+msgid "The value {v} for {n} must be equal to or greater than zero."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:326
-msgid "The value {v} for {n} must be greater than zero."
-msgstr ""
-
-#: lib/pp_admintools/app/ldap.py:357
+#: lib/pp_admintools/app/ldap.py:314
 msgid "LDAP options"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:359
+#: lib/pp_admintools/app/ldap.py:316
 msgid "Options for the default LDAP connection"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:361
+#: lib/pp_admintools/app/ldap.py:318
 msgid "Options fo LDAP connections"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:370
+#: lib/pp_admintools/app/ldap.py:327
 msgid "Yes"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:376 lib/pp_admintools/app/ldap.py:472
+#: lib/pp_admintools/app/ldap.py:333 lib/pp_admintools/app/ldap.py:429
 msgid "HOST"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:377
+#: lib/pp_admintools/app/ldap.py:334
 msgid "Hostname or address of the LDAP server to use. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:384
+#: lib/pp_admintools/app/ldap.py:341
 msgid "Use ldaps to connect to the LDAP server. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:389 lib/pp_admintools/app/ldap.py:478
-#: lib/pp_admintools/app/mail.py:250 lib/pp_admintools/app/pdns.py:274
+#: lib/pp_admintools/app/ldap.py:346 lib/pp_admintools/app/ldap.py:435
+#: lib/pp_admintools/app/mail.py:243 lib/pp_admintools/app/pdns.py:264
 msgid "PORT"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:391
+#: lib/pp_admintools/app/ldap.py:348
 msgid "The port number to connect to the LDAP server. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:397
+#: lib/pp_admintools/app/ldap.py:354
 msgid "The base DN used as the root for the LDAP searches. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:404
+#: lib/pp_admintools/app/ldap.py:361
 msgid "The Bind DN to use to connect to the LDAP server. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:412 lib/pp_admintools/app/mk_ldap_passwd.py:131
-#: lib/pp_admintools/app/set_ldap_password.py:131 lib/pp_admintools/app/set_ldap_password.py:132
-#: lib/pp_admintools/app/set_ldap_password.py:149 lib/pp_admintools/app/set_ldap_password.py:152
+#: lib/pp_admintools/app/ldap.py:369 lib/pp_admintools/app/mk_ldap_passwd.py:123
+#: lib/pp_admintools/app/set_ldap_password.py:123 lib/pp_admintools/app/set_ldap_password.py:124
+#: lib/pp_admintools/app/set_ldap_password.py:141 lib/pp_admintools/app/set_ldap_password.py:144
 msgid "PASSWORD"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:413
+#: lib/pp_admintools/app/ldap.py:370
 msgid "Use PASSWORD as the password for simple LDAP authentication."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:418
+#: lib/pp_admintools/app/ldap.py:375
 msgid ""
 "Prompt for simple LDAP authentication. This is used instead of specifying the password on the "
 "command line."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:424 lib/pp_admintools/app/set_ldap_password.py:143
-#: lib/pp_admintools/app/set_ldap_password.py:145
+#: lib/pp_admintools/app/ldap.py:381 lib/pp_admintools/app/set_ldap_password.py:135
+#: lib/pp_admintools/app/set_ldap_password.py:137
 msgid "PASSWORD_FILE"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:426
+#: lib/pp_admintools/app/ldap.py:383
 msgid "Use contents of PASSWORD_FILE as the password for simple authentication."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:434 lib/pp_admintools/app/pdns.py:248
+#: lib/pp_admintools/app/ldap.py:391 lib/pp_admintools/app/pdns.py:238
 msgid "INSTANCE"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:437
+#: lib/pp_admintools/app/ldap.py:394
 msgid "If not given, then the instance {!r} will be used."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:441
+#: lib/pp_admintools/app/ldap.py:398
 msgid "The LDAP instance (LDAP cluster) from configuration, where to execute this script."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:445
+#: lib/pp_admintools/app/ldap.py:402
 msgid ""
 "The LDAP instance (LDAP cluster) from configuration, where to execute this script. It is "
 "possible to give here the value {val_all!r}, then all found LDAP instances except {default!r} "
@@ -996,442 +978,470 @@ msgid ""
 "are shown, and the application is exiting."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:473
+#: lib/pp_admintools/app/ldap.py:430
 msgid "Override configured hostname or address of the LDAP server."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:480
+#: lib/pp_admintools/app/ldap.py:437
 msgid "Override the configured port number to connect to the LDAP server."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:485
+#: lib/pp_admintools/app/ldap.py:442
 msgid "Override the configured base DN of the instance used as the root for the LDAP searches."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:494
+#: lib/pp_admintools/app/ldap.py:448
+msgid "COUNT"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:451
+msgid ""
+"The number of retries for executing a LDAP request, which was failing because of a connection "
+"problem. Default: {}"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:460
+msgid ""
+"The time in seconds after a failed LDAP request, which was failing because of a connection "
+"problem, for the next try. Default: {}"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:470
 msgid "Using the given timeout in seconds for all LDAP operations. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:521
+#: lib/pp_admintools/app/ldap.py:505
 msgid "Limiting console timeout to {} seconds due to LDAP timeout."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:532
+#: lib/pp_admintools/app/ldap.py:516
 msgid "Checking given instances."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:536
+#: lib/pp_admintools/app/ldap.py:520
 msgid "Given insts:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:593
+#: lib/pp_admintools/app/ldap.py:577
 msgid "Configured LDAP instances:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:614
+#: lib/pp_admintools/app/ldap.py:598
 msgid "Verifying given instances ..."
 msgstr "Verifying given instances …"
 
-#: lib/pp_admintools/app/ldap.py:652
+#: lib/pp_admintools/app/ldap.py:636
 msgid "Filtered instances:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:660
+#: lib/pp_admintools/app/ldap.py:644
 msgid "LDAP instances to use:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:676
+#: lib/pp_admintools/app/ldap.py:660
 msgid "LDAP instance {!r} not found in configuration or is not usable."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:756
+#: lib/pp_admintools/app/ldap.py:740
 msgid "Preparations ..."
 msgstr "Preparations …"
 
-#: lib/pp_admintools/app/ldap.py:759
+#: lib/pp_admintools/app/ldap.py:744
 msgid "Open all necessary LDAP connections ..."
 msgstr "Open all necessary LDAP connections …"
 
-#: lib/pp_admintools/app/ldap.py:773
+#: lib/pp_admintools/app/ldap.py:758
 msgid "Password of user {usr} on LDAP instance {inst}:"
 msgstr "Password of user {usr} on LDAP instance {inst}:"
 
-#: lib/pp_admintools/app/ldap.py:782
+#: lib/pp_admintools/app/ldap.py:770
 msgid "Info about LDAP server {}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:792
+#: lib/pp_admintools/app/ldap.py:783
 msgid "Trying to get LDAP server object for {} ..."
 msgstr "Trying to get LDAP server object for {} …"
 
-#: lib/pp_admintools/app/ldap.py:808
+#: lib/pp_admintools/app/ldap.py:799
 msgid "Connect options to server {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:815
+#: lib/pp_admintools/app/ldap.py:806
 msgid "LDAP server {s}: {re}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:829
+#: lib/pp_admintools/app/ldap.py:824
 msgid "Connecting to LDAP server {url} as {dn!r} ..."
 msgstr "Connecting to LDAP server {url} as {dn!r} …"
 
-#: lib/pp_admintools/app/ldap.py:837
+#: lib/pp_admintools/app/ldap.py:832
 msgid "Could not connect to LDAP server {url!r} as {user!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:842
+#: lib/pp_admintools/app/ldap.py:837
 msgid "{c} on connecting to LDAP server {url!r} as {user!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:852
+#: lib/pp_admintools/app/ldap.py:847
 msgid "Finishing ..."
 msgstr "Finishing …"
 
-#: lib/pp_admintools/app/ldap.py:863
+#: lib/pp_admintools/app/ldap.py:858
 msgid "Disconnecting from all remaining LDAP instances ..."
 msgstr "Disconnecting from all remaining LDAP instances …"
 
-#: lib/pp_admintools/app/ldap.py:876
+#: lib/pp_admintools/app/ldap.py:875
 msgid "Unbinding from LDAP server {!r} ..."
 msgstr "Unbinding from LDAP server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:883
-msgid "Disconnecting from LDAP server {!r} ..."
-msgstr "Disconnecting from LDAP server {!r} …"
+#: lib/pp_admintools/app/ldap.py:882
+msgid "Removing LDAP server connection data {!r} ..."
+msgstr "Removing LDAP server connection data {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:910
-msgid "Searching in {uri}/{bdn} for all entries with filter {fltr!r}, giving attributes:"
+#: lib/pp_admintools/app/ldap.py:905
+msgid "recursive"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:922
+#: lib/pp_admintools/app/ldap.py:921
+msgid "Searching in {uri}/{bdn} {rec}for all entries with filter {fltr!r}, giving attributes:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:951
 msgid "Result of searching:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:927
+#: lib/pp_admintools/app/ldap.py:953 lib/pp_admintools/app/ldap.py:1105
+#: lib/pp_admintools/app/ldap.py:1159 lib/pp_admintools/app/ldap.py:1264
+#: lib/pp_admintools/app/ldap.py:1324 lib/pp_admintools/app/ldap.py:1384
+#: lib/pp_admintools/app/ldap.py:1692 lib/pp_admintools/app/ldap.py:1733
+#: lib/pp_admintools/app/ldap.py:1774 lib/pp_admintools/app/ldap.py:1815
+msgid "Got a response entry:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:957
+msgid "Search was not successful."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:973
+msgid "Try number {} for searching ..."
+msgstr "Try number {} for searching …"
+
+#: lib/pp_admintools/app/ldap.py:989 lib/pp_admintools/app/ldap.py:1002
+msgid "Got a {cls} on searching in LDAP instance {i!r}:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:992
+msgid "Waiting because of a {}:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:997
+msgid "Session terminated by server on searching on instance {i!r}:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:1038
 msgid "Found entry {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:934 lib/pp_admintools/app/ldap.py:978
+#: lib/pp_admintools/app/ldap.py:1045 lib/pp_admintools/app/ldap.py:1097
 msgid "Found one entry with filter {fltr!r} in {uri}/{bdn}."
 msgid_plural "Found {nr} enries with filter {fltr!r} in {uri}/{bdn}."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/ldap.py:938
+#: lib/pp_admintools/app/ldap.py:1049
 msgid "Got response entries:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:942 lib/pp_admintools/app/ldap.py:990
+#: lib/pp_admintools/app/ldap.py:1053 lib/pp_admintools/app/ldap.py:1109
 msgid "No entry found with filter {fltr!r} in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:966 lib/pp_admintools/app/ldap.py:1020
+#: lib/pp_admintools/app/ldap.py:1077 lib/pp_admintools/app/ldap.py:1138
 msgid "Using LDAP filter: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:982 lib/pp_admintools/app/ldap.py:1029
+#: lib/pp_admintools/app/ldap.py:1101 lib/pp_admintools/app/ldap.py:1155
 msgid "Result of searching for DNs of all entries:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:986 lib/pp_admintools/app/ldap.py:1033
-#: lib/pp_admintools/app/ldap.py:1131 lib/pp_admintools/app/ldap.py:1184
-#: lib/pp_admintools/app/ldap.py:1237 lib/pp_admintools/app/ldap.py:1342
-#: lib/pp_admintools/app/ldap.py:1542 lib/pp_admintools/app/ldap.py:1576
-#: lib/pp_admintools/app/ldap.py:1610 lib/pp_admintools/app/ldap.py:1644
-msgid "Got a response entry:"
-msgstr ""
-
-#: lib/pp_admintools/app/ldap.py:1016
+#: lib/pp_admintools/app/ldap.py:1134
 msgid "Getting all Entry DNs of LDAP instance {i!r} below {b!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1055
+#: lib/pp_admintools/app/ldap.py:1181
 msgid "Trying to evaluate DN of user {user!r} in LDAP instance {inst} ..."
 msgstr "Trying to evaluate DN of user {user!r} in LDAP instance {inst} …"
 
-#: lib/pp_admintools/app/ldap.py:1060
+#: lib/pp_admintools/app/ldap.py:1186
 msgid "Trying to evaluate DN of user {u!r} as a mail address ..."
 msgstr "Trying to evaluate DN of user {u!r} as a mail address …"
 
-#: lib/pp_admintools/app/ldap.py:1067
+#: lib/pp_admintools/app/ldap.py:1193
 msgid "Trying to evaluate DN of user {u!r} as a LDAP DN ..."
 msgstr "Trying to evaluate DN of user {u!r} as a LDAP DN …"
 
-#: lib/pp_admintools/app/ldap.py:1074
+#: lib/pp_admintools/app/ldap.py:1200
 msgid "Trying to evaluate DN of user {u!r} as a UID (Posix user name) ..."
 msgstr "Trying to evaluate DN of user {u!r} as a UID (Posix user name) …"
 
-#: lib/pp_admintools/app/ldap.py:1083 lib/pp_admintools/app/remove_ldap_user.py:318
+#: lib/pp_admintools/app/ldap.py:1209 lib/pp_admintools/app/remove_ldap_user.py:311
 msgid "Empty user given."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1086
+#: lib/pp_admintools/app/ldap.py:1212
 msgid "Trying to evaluate DN of user {u!r} as a CN ({c}) ..."
 msgstr "Trying to evaluate DN of user {u!r} as a CN ({c}) …"
 
-#: lib/pp_admintools/app/ldap.py:1116 lib/pp_admintools/app/ldap.py:1169
-#: lib/pp_admintools/app/ldap.py:1222 lib/pp_admintools/app/ldap.py:1530
-#: lib/pp_admintools/app/ldap.py:1564 lib/pp_admintools/app/ldap.py:1598
-#: lib/pp_admintools/app/ldap.py:1632
+#: lib/pp_admintools/app/ldap.py:1241 lib/pp_admintools/app/ldap.py:1301
+#: lib/pp_admintools/app/ldap.py:1361 lib/pp_admintools/app/ldap.py:1672
+#: lib/pp_admintools/app/ldap.py:1713 lib/pp_admintools/app/ldap.py:1754
+#: lib/pp_admintools/app/ldap.py:1795
 msgid "Searching in {uri}/{bdn} with filter: {fltr}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1127
+#: lib/pp_admintools/app/ldap.py:1260
 msgid "Result of searching for mail address {m!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1138
+#: lib/pp_admintools/app/ldap.py:1271
 msgid "User with mail address {m!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1180
+#: lib/pp_admintools/app/ldap.py:1320
 msgid "Result of searching for uid {u!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1191
+#: lib/pp_admintools/app/ldap.py:1331
 msgid "User with uid {u!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1233
+#: lib/pp_admintools/app/ldap.py:1380
 msgid "Result of searching for CN {cn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1244
+#: lib/pp_admintools/app/ldap.py:1391
 msgid "User with cn {cn!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1261 lib/pp_admintools/app/set_ldap_password.py:409
+#: lib/pp_admintools/app/ldap.py:1408 lib/pp_admintools/app/set_ldap_password.py:401
 msgid "User with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1279
+#: lib/pp_admintools/app/ldap.py:1426
 msgid "ObjectClasses of {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1289
+#: lib/pp_admintools/app/ldap.py:1436
 msgid "Entry {dn!r} in {uri} seems not to be an account."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1311
+#: lib/pp_admintools/app/ldap.py:1449
 msgid "Searching DN {dn!r} in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1328
-msgid "Waiting because of a failing read operation."
+#: lib/pp_admintools/app/ldap.py:1462
+msgid "Entry with DN {dn!r} not found in {i!r} ({uri})."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1332
-msgid "Error on reading entry {dn!r} from instance {inst!r}:"
-msgstr ""
-
-#: lib/pp_admintools/app/ldap.py:1338
-msgid "Result of searching for DN {dn!r}:"
-msgstr ""
-
-#: lib/pp_admintools/app/ldap.py:1346
-msgid "Entry with DN {dn!r} not found in {uri}."
-msgstr ""
-
-#: lib/pp_admintools/app/ldap.py:1391
+#: lib/pp_admintools/app/ldap.py:1506
 msgid "Creating entry {dn!r} on {uri}:"
 msgstr "Creating entry {dn!r} on {uri}:"
 
-#: lib/pp_admintools/app/ldap.py:1397
+#: lib/pp_admintools/app/ldap.py:1512
 msgid "Simulation mode - entry will not be created."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1404
+#: lib/pp_admintools/app/ldap.py:1526
 msgid "Creation of entry {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1419
+#: lib/pp_admintools/app/ldap.py:1544
 msgid "Creation status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1421
+#: lib/pp_admintools/app/ldap.py:1546
 msgid "Result of creating:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1424
+#: lib/pp_admintools/app/ldap.py:1549
 msgid "Creation of entry {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1430
+#: lib/pp_admintools/app/ldap.py:1555
 msgid "Creation successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1441
+#: lib/pp_admintools/app/ldap.py:1565
 msgid "Applying changes on {uri} to DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1446
+#: lib/pp_admintools/app/ldap.py:1570
 msgid "Simulation mode - changes are not applied."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1452
+#: lib/pp_admintools/app/ldap.py:1583
 msgid "Modification of {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1454 lib/pp_admintools/app/ldap.py:1473
-#: lib/pp_admintools/app/remove_ldap_user.py:449 lib/pp_admintools/app/remove_ldap_user.py:476
-#: lib/pp_admintools/app/remove_ldap_user.py:503 lib/pp_admintools/app/remove_ldap_user.py:534
-#: lib/pp_admintools/app/remove_ldap_user.py:565 lib/pp_admintools/app/remove_ldap_user.py:681
-#: lib/pp_admintools/app/set_ldap_password.py:518
+#: lib/pp_admintools/app/ldap.py:1585 lib/pp_admintools/app/ldap.py:1607
+#: lib/pp_admintools/app/remove_ldap_user.py:442 lib/pp_admintools/app/remove_ldap_user.py:469
+#: lib/pp_admintools/app/remove_ldap_user.py:496 lib/pp_admintools/app/remove_ldap_user.py:527
+#: lib/pp_admintools/app/remove_ldap_user.py:558 lib/pp_admintools/app/remove_ldap_user.py:674
+#: lib/pp_admintools/app/set_ldap_password.py:510
 msgid "Changes:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1466
+#: lib/pp_admintools/app/ldap.py:1600
 msgid "Modification status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1468
+#: lib/pp_admintools/app/ldap.py:1602
 msgid "Result of modifying:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1471
+#: lib/pp_admintools/app/ldap.py:1605
 msgid "Modification of {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1476
+#: lib/pp_admintools/app/ldap.py:1610
 msgid "Modification successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1486
+#: lib/pp_admintools/app/ldap.py:1619
 msgid "Deleting LDAP entry {dn!r} on {uri} ..."
 msgstr "Deleting LDAP entry {dn!r} on {uri} …"
 
-#: lib/pp_admintools/app/ldap.py:1491
+#: lib/pp_admintools/app/ldap.py:1624
 msgid "Simulation mode - deletion will not be executed."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1497
+#: lib/pp_admintools/app/ldap.py:1637
 msgid "Deletion of {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1502
+#: lib/pp_admintools/app/ldap.py:1645
 msgid "Deletion status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1504
+#: lib/pp_admintools/app/ldap.py:1647
 msgid "Result of deletion:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1507
+#: lib/pp_admintools/app/ldap.py:1650
 msgid "Deletion of {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1511
+#: lib/pp_admintools/app/ldap.py:1654
 msgid "Deletion successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1660
+#: lib/pp_admintools/app/ldap.py:1831
 msgid "Reading password file {!r} ..."
 msgstr "Reading password file {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:1691
+#: lib/pp_admintools/app/ldap.py:1862
 msgid "Could not detect RDN from DN {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1695
+#: lib/pp_admintools/app/ldap.py:1866
 msgid "Found RDN attribute {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1701
+#: lib/pp_admintools/app/ldap.py:1872
 msgid "RDN attribute {!r} will not be touched."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1707 lib/pp_admintools/app/ldap.py:1726
-#: lib/pp_admintools/app/ldap.py:1804
+#: lib/pp_admintools/app/ldap.py:1878 lib/pp_admintools/app/ldap.py:1897
+#: lib/pp_admintools/app/ldap.py:1975
 msgid "Attribute {!r} will not be touched."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1764
+#: lib/pp_admintools/app/ldap.py:1935
 msgid "Values to removed from attribute {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:95
+#: lib/pp_admintools/app/mail.py:88
 msgid "Got invalid SMTP port number {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:113
+#: lib/pp_admintools/app/mail.py:106
 msgid "Got invalid mail from address {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:136
+#: lib/pp_admintools/app/mail.py:129
 msgid "Got invalid recipient mail addresses:"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:164
+#: lib/pp_admintools/app/mail.py:157
 msgid "Got invalid cc mail addresses:"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:179
+#: lib/pp_admintools/app/mail.py:172
 msgid "Got invalid reply mail address {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:190
+#: lib/pp_admintools/app/mail.py:183
 msgid "Mailing options"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:205 lib/pp_admintools/app/mail.py:213
-#: lib/pp_admintools/app/mail.py:219 lib/pp_admintools/app/mail.py:225
+#: lib/pp_admintools/app/mail.py:198 lib/pp_admintools/app/mail.py:206
+#: lib/pp_admintools/app/mail.py:212 lib/pp_admintools/app/mail.py:218
 msgid "ADDRESS"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:206
+#: lib/pp_admintools/app/mail.py:199
 msgid "Sender mail address for mails generated by this script. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:214
+#: lib/pp_admintools/app/mail.py:207
 msgid "Mail addresses of all recipients for mails generated by this script."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:220
+#: lib/pp_admintools/app/mail.py:213
 msgid "Mail addresses of all CC recipients for mails generated by this script."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:226
+#: lib/pp_admintools/app/mail.py:219
 msgid "Reply mail address for mails generated by this script."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:233
+#: lib/pp_admintools/app/mail.py:226
 msgid "METHOD"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:234
+#: lib/pp_admintools/app/mail.py:227
 msgid "Method for sending the mails generated by this script. Valid values: {v}, default: {d!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:242
+#: lib/pp_admintools/app/mail.py:235
 msgid "SERVER"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:243
+#: lib/pp_admintools/app/mail.py:236
 msgid ""
 "Mail server for submitting generated by this script if the mail method of this script is 'smtp'."
 " Default: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:252
+#: lib/pp_admintools/app/mail.py:245
 msgid ""
 "The port to use for submitting generated by this script if the mail method of this script is "
 "'smtp'. Default: {}."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:261
+#: lib/pp_admintools/app/mail.py:254
 msgid "Got command line arguments:"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:278
+#: lib/pp_admintools/app/mail.py:271
 msgid "Mail to send:"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:311
+#: lib/pp_admintools/app/mail.py:304
 msgid "Did not found sendmail executable."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:100
+#: lib/pp_admintools/app/mirror_ldap.py:92
 msgid ""
 "Mirror the content of a complete LDAP instance (server or cluster) to another instance. This "
 "will be done first by clearing the target instance, then copying structural entries from the "
@@ -1440,504 +1450,504 @@ msgid ""
 "values."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:108
+#: lib/pp_admintools/app/mirror_ldap.py:100
 msgid "Do not execute a countdown before starting the application."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:119
+#: lib/pp_admintools/app/mirror_ldap.py:111
 msgid "Miroring options"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:124
+#: lib/pp_admintools/app/mirror_ldap.py:116
 msgid ""
 "Number of seconds to wait after each write operation. Given as a float value, and if set to "
 "zero, there is no waiting after a write. (default: {:.1f})"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:131 lib/pp_admintools/app/mk_ldap_passwd.py:121
+#: lib/pp_admintools/app/mirror_ldap.py:123 lib/pp_admintools/app/mk_ldap_passwd.py:113
 msgid "NUMBER"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:133
+#: lib/pp_admintools/app/mirror_ldap.py:125
 msgid "Limiting the mirroring to the first NUMBER entries. This option is valid only in simulation mode."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:140
+#: lib/pp_admintools/app/mirror_ldap.py:132
 msgid "Mirror only structural entries (entries with childs)."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:161
+#: lib/pp_admintools/app/mirror_ldap.py:153
 msgid "Limiting the number of entries for mirroring to {} entries."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:165
+#: lib/pp_admintools/app/mirror_ldap.py:157
 msgid "Limition the number of entries for mirroring may only be done in simulation mode."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:180
+#: lib/pp_admintools/app/mirror_ldap.py:172
 msgid "Data to modify:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:182
+#: lib/pp_admintools/app/mirror_ldap.py:174
 msgid "No data to modify found."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:190
+#: lib/pp_admintools/app/mirror_ldap.py:182
 msgid "Did not found {tgt!r} in {e}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:202
+#: lib/pp_admintools/app/mirror_ldap.py:194
 msgid "Checking mirror source instance for target instance {!r} ..."
 msgstr "Checking mirror source instance for target instance {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:206
+#: lib/pp_admintools/app/mirror_ldap.py:198
 msgid "Got {!r} as the mirror source instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:209 lib/pp_admintools/app/mirror_ldap.py:218
-#: lib/pp_admintools/app/mirror_ldap.py:229
+#: lib/pp_admintools/app/mirror_ldap.py:201 lib/pp_admintools/app/mirror_ldap.py:210
+#: lib/pp_admintools/app/mirror_ldap.py:221
 msgid "Error in configuration:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:210
+#: lib/pp_admintools/app/mirror_ldap.py:202
 msgid "the source LDAP instance {src!r} for mirroring to {tgt!r} does not exists."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:219
+#: lib/pp_admintools/app/mirror_ldap.py:211
 msgid "the source LDAP instance {src!r} must not be the same like the target instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:230
+#: lib/pp_admintools/app/mirror_ldap.py:222
 msgid ""
 "the base DN {src_dn!r} of the source instance {src!r} does not match the base DN {tgt_dn!r} of "
 "the target instance {tgt!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:246
+#: lib/pp_admintools/app/mirror_ldap.py:238
 msgid "Start mirroring LDAP instance {src} ({src_url}) to instance {tgt} ({tgt_url}) [{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:259 lib/pp_admintools/app/mirror_ldap.py:347
+#: lib/pp_admintools/app/mirror_ldap.py:251 lib/pp_admintools/app/mirror_ldap.py:340
 msgid "Interrupted on demand."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:262 lib/pp_admintools/app/mirror_ldap.py:269
+#: lib/pp_admintools/app/mirror_ldap.py:254 lib/pp_admintools/app/mirror_ldap.py:261
 msgid "Start mirroring LDAP instance {src!r} ({src_url}) to instance {tgt!r} ({tgt_url}) ..."
 msgstr "Start mirroring LDAP instance {src!r} ({src_url}) to instance {tgt!r} ({tgt_url}) …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:282
+#: lib/pp_admintools/app/mirror_ldap.py:274
 msgid "Waiting one second after write actions."
 msgid_plural "Waiting {} seconds after write actions."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:287
+#: lib/pp_admintools/app/mirror_ldap.py:279
 msgid "Don't waiting after simulated write actions."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:289
+#: lib/pp_admintools/app/mirror_ldap.py:281
 msgid "Don't waiting after write actions, because {} was set to zero."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:292
+#: lib/pp_admintools/app/mirror_ldap.py:284
 msgid "The timeout on LDAP operations is {} seconds."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:306 lib/pp_admintools/app/mirror_ldap.py:324
+#: lib/pp_admintools/app/mirror_ldap.py:298 lib/pp_admintools/app/mirror_ldap.py:316
 msgid "{:>5} entry deleted."
 msgid_plural "{:>5} entries deleted."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:309 lib/pp_admintools/app/mirror_ldap.py:329
+#: lib/pp_admintools/app/mirror_ldap.py:301 lib/pp_admintools/app/mirror_ldap.py:321
 msgid "{:>5} entry updated."
 msgid_plural "{:>5} entries updated."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:312 lib/pp_admintools/app/mirror_ldap.py:334
+#: lib/pp_admintools/app/mirror_ldap.py:304 lib/pp_admintools/app/mirror_ldap.py:326
 msgid "{:>5} entry created."
 msgid_plural "{:>5} entries created."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:319
+#: lib/pp_admintools/app/mirror_ldap.py:311
 msgid "Changes total:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:342 lib/pp_admintools/app/mirror_ldap.py:347
+#: lib/pp_admintools/app/mirror_ldap.py:335 lib/pp_admintools/app/mirror_ldap.py:340
 msgid "Got a {}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:359
+#: lib/pp_admintools/app/mirror_ldap.py:352
 msgid "Trying to get DNs of all entries in the source LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:372 lib/pp_admintools/app/mirror_ldap.py:426
+#: lib/pp_admintools/app/mirror_ldap.py:365 lib/pp_admintools/app/mirror_ldap.py:419
 msgid "Found DNs in instance {!r}:"
 msgstr "Found DNs in instance {!r}:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:389
+#: lib/pp_admintools/app/mirror_ldap.py:382
 msgid "Found total one entry in source LDAP"
 msgid_plural "Found {no} entries in source LDAP"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:393
+#: lib/pp_admintools/app/mirror_ldap.py:386
 msgid "one structural entry in source LDAP"
 msgid_plural "{no} structural entries in source LDAP"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:397
+#: lib/pp_admintools/app/mirror_ldap.py:390
 msgid "one non-structural entry in source LDAP."
 msgid_plural "{no} non-structural entries in source LDAP."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:405 lib/pp_admintools/app/mirror_ldap.py:459
+#: lib/pp_admintools/app/mirror_ldap.py:398 lib/pp_admintools/app/mirror_ldap.py:452
 msgid "Found structural DNs in instance {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:413
+#: lib/pp_admintools/app/mirror_ldap.py:406
 msgid "Trying to get DNs of all entries in the target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:443
+#: lib/pp_admintools/app/mirror_ldap.py:436
 msgid "Found total one entry in target LDAP"
 msgid_plural "Found {no} entries in target LDAP"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:447
+#: lib/pp_admintools/app/mirror_ldap.py:440
 msgid "one structural entry in target LDAP"
 msgid_plural "{no} structural entries in target LDAP"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:451
+#: lib/pp_admintools/app/mirror_ldap.py:444
 msgid "one non-structural entry in target LDAP."
 msgid_plural "{no} non-structural entries in target LDAP."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:466
+#: lib/pp_admintools/app/mirror_ldap.py:459
 msgid ""
 "Evaluating DNs of all target entries, which have to be synchronized, instead of removing and "
 "recreating them."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:524
+#: lib/pp_admintools/app/mirror_ldap.py:517
 msgid "Removing non structural entries from target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:540 lib/pp_admintools/app/mirror_ldap.py:601
+#: lib/pp_admintools/app/mirror_ldap.py:533 lib/pp_admintools/app/mirror_ldap.py:594
 msgid "Entry {!r} exists on the source instance, will not be removed."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:546
+#: lib/pp_admintools/app/mirror_ldap.py:539
 msgid "Entry {!r} is a structural entry, will not be removed at this point."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:553 lib/pp_admintools/app/mirror_ldap.py:607
-#: lib/pp_admintools/app/mirror_ldap.py:672 lib/pp_admintools/app/mirror_ldap.py:973
+#: lib/pp_admintools/app/mirror_ldap.py:546 lib/pp_admintools/app/mirror_ldap.py:600
+#: lib/pp_admintools/app/mirror_ldap.py:665 lib/pp_admintools/app/mirror_ldap.py:966
 msgid "Entry {!r} is set to be kept."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:565
+#: lib/pp_admintools/app/mirror_ldap.py:558
 msgid "Removed one not structural entry in target LDAP instance."
 msgid_plural "Removed {no} not structural entries in target LDAP instance."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:570
+#: lib/pp_admintools/app/mirror_ldap.py:563
 msgid "None not structural entries in target LDAP instance removed."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:584
+#: lib/pp_admintools/app/mirror_ldap.py:577
 msgid "Removing structural entries from target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:612
+#: lib/pp_admintools/app/mirror_ldap.py:605
 msgid "Entry {!r} is set to be synchronized."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:624
+#: lib/pp_admintools/app/mirror_ldap.py:617
 msgid "Removed one structural entry in target LDAP instance."
 msgid_plural "Removed {no} structural entries in target LDAP instance."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:629
+#: lib/pp_admintools/app/mirror_ldap.py:622
 msgid "None structural entries in target LDAP instance removed."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:637
+#: lib/pp_admintools/app/mirror_ldap.py:630
 msgid "Mirroring structural entries from source to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:655
+#: lib/pp_admintools/app/mirror_ldap.py:648
 msgid "Mirrored one structural entry in target LDAP instance."
 msgid_plural "Mirrored {no} structural entries to target LDAP instance."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:660
+#: lib/pp_admintools/app/mirror_ldap.py:653
 msgid "Mirrored no structural entries to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:676 lib/pp_admintools/app/mirror_ldap.py:979
+#: lib/pp_admintools/app/mirror_ldap.py:669 lib/pp_admintools/app/mirror_ldap.py:972
 msgid "Mirroring entry {!r} ..."
 msgstr "Mirroring entry {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:682 lib/pp_admintools/app/mirror_ldap.py:984
+#: lib/pp_admintools/app/mirror_ldap.py:675 lib/pp_admintools/app/mirror_ldap.py:977
 msgid "Error on reading entry {!r} from source:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:686 lib/pp_admintools/app/mirror_ldap.py:987
+#: lib/pp_admintools/app/mirror_ldap.py:679 lib/pp_admintools/app/mirror_ldap.py:980
 msgid "Did not found {!r} in the source LDAP."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:708 lib/pp_admintools/app/mirror_ldap.py:998
+#: lib/pp_admintools/app/mirror_ldap.py:701 lib/pp_admintools/app/mirror_ldap.py:991
 msgid "Error on reading entry {!r} from target:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:723 lib/pp_admintools/app/mirror_ldap.py:1013
+#: lib/pp_admintools/app/mirror_ldap.py:716 lib/pp_admintools/app/mirror_ldap.py:1006
 msgid "Modifying entry {!r} ..."
 msgstr "Modifying entry {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:724 lib/pp_admintools/app/mirror_ldap.py:1014
+#: lib/pp_admintools/app/mirror_ldap.py:717 lib/pp_admintools/app/mirror_ldap.py:1007
 msgid "Got modify data for DN {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:734 lib/pp_admintools/app/mirror_ldap.py:1025
+#: lib/pp_admintools/app/mirror_ldap.py:727 lib/pp_admintools/app/mirror_ldap.py:1018
 msgid "No changes necessary on DN {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:738 lib/pp_admintools/app/mirror_ldap.py:1001
+#: lib/pp_admintools/app/mirror_ldap.py:731 lib/pp_admintools/app/mirror_ldap.py:994
 msgid "Target entry {!r} not found."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:741
+#: lib/pp_admintools/app/mirror_ldap.py:734
 msgid "Creating entry {!r} ..."
 msgstr "Creating entry {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:742
+#: lib/pp_admintools/app/mirror_ldap.py:735
 msgid "Got create data for DN {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:791
+#: lib/pp_admintools/app/mirror_ldap.py:784
 msgid "Modifying source data for {!r} ..."
 msgstr "Modifying source data for {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:802
+#: lib/pp_admintools/app/mirror_ldap.py:795
 msgid "Replacing attribute {a!r} in entry {dn!r} ..."
 msgstr "Replacing attribute {a!r} in entry {dn!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:848
+#: lib/pp_admintools/app/mirror_ldap.py:841
 msgid "Deleting attribute {a!r} from entry {dn!r} ..."
 msgstr "Deleting attribute {a!r} from entry {dn!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:885
+#: lib/pp_admintools/app/mirror_ldap.py:878
 msgid "Adding attribute {a!r} to entry {dn!r} ..."
 msgstr "Adding attribute {a!r} to entry {dn!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:924
+#: lib/pp_admintools/app/mirror_ldap.py:917
 msgid "Mirroring non-structural entries from source to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:945
+#: lib/pp_admintools/app/mirror_ldap.py:938
 msgid "Mirrored one non-structural entry in target LDAP instance."
 msgid_plural "Mirrored {no} non-structural entries to target LDAP instance."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:950
+#: lib/pp_admintools/app/mirror_ldap.py:943
 msgid "Mirrored none not-structural entries to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:959
+#: lib/pp_admintools/app/mirror_ldap.py:952
 msgid "Mirroring members in group entries from source to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:1030
+#: lib/pp_admintools/app/mirror_ldap.py:1023
 msgid "Mirrored one group entry in target LDAP instance."
 msgid_plural "Mirrored {no} group entries to target LDAP instance."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:1035
+#: lib/pp_admintools/app/mirror_ldap.py:1028
 msgid "Mirrored no group entries to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:55
+#: lib/pp_admintools/app/mk_ldap_passwd.py:47
 msgid "Encrypting the password with a defined password schema."
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:99
+#: lib/pp_admintools/app/mk_ldap_passwd.py:91
 msgid "The schema (hashing method) to use to hash the new password. Default: {default!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:104
+#: lib/pp_admintools/app/mk_ldap_passwd.py:96
 msgid "TYPE"
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:110
+#: lib/pp_admintools/app/mk_ldap_passwd.py:102
 msgid "Like {}"
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:115 lib/pp_admintools/app/set_ldap_password.py:208
+#: lib/pp_admintools/app/mk_ldap_passwd.py:107 lib/pp_admintools/app/set_ldap_password.py:200
 msgid ""
 "A possible salt to use on hashing the password. Caution: not all hashing schemes are supporting "
 "a salt."
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:122 lib/pp_admintools/app/set_ldap_password.py:215
+#: lib/pp_admintools/app/mk_ldap_passwd.py:114 lib/pp_admintools/app/set_ldap_password.py:207
 msgid ""
 "The number of calculation rounds to use on hashing the password. Caution: not all hashing "
 "schemes are supporting calculation rounds."
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:127
+#: lib/pp_admintools/app/mk_ldap_passwd.py:119
 msgid ""
 "The password to hash. If not given and no file desriptor was given, then the password will be "
 "requested on TTY."
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:175
+#: lib/pp_admintools/app/mk_ldap_passwd.py:167
 msgid "Got no password by {}."
 msgstr "Got no password by {}."
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:178
+#: lib/pp_admintools/app/mk_ldap_passwd.py:170
 msgid "Password:"
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:179 lib/pp_admintools/app/set_ldap_password.py:305
-#: lib/pp_admintools/app/set_ldap_password.py:325
+#: lib/pp_admintools/app/mk_ldap_passwd.py:171 lib/pp_admintools/app/set_ldap_password.py:297
+#: lib/pp_admintools/app/set_ldap_password.py:317
 msgid "Repeat password:"
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:193
+#: lib/pp_admintools/app/mk_ldap_passwd.py:185
 msgid "Encrypting password with hashing schema '{schema}' ..."
 msgstr "Encrypting password with hashing schema '{schema}' …"
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:200 lib/pp_admintools/app/set_ldap_password.py:478
+#: lib/pp_admintools/app/mk_ldap_passwd.py:192 lib/pp_admintools/app/set_ldap_password.py:470
 msgid "Used schema: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:103 lib/pp_admintools/app/pdns.py:187
+#: lib/pp_admintools/app/pdns.py:93 lib/pp_admintools/app/pdns.py:177
 msgid "Configuration not available."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:117
+#: lib/pp_admintools/app/pdns.py:107
 msgid "Invalid API key {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:129
+#: lib/pp_admintools/app/pdns.py:119
 msgid "Invalid API host {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:142
+#: lib/pp_admintools/app/pdns.py:132
 msgid "Invalid API port {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:154
+#: lib/pp_admintools/app/pdns.py:144
 msgid "Invalid API server name {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:172 lib/pp_admintools/app/pdns.py:175
+#: lib/pp_admintools/app/pdns.py:162 lib/pp_admintools/app/pdns.py:165
 msgid "Invalid instance {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:183
+#: lib/pp_admintools/app/pdns.py:173
 msgid "Evaluating instance {!r} ..."
 msgstr "Evaluating instance {!r} …"
 
-#: lib/pp_admintools/app/pdns.py:191
+#: lib/pp_admintools/app/pdns.py:181
 msgid "PDNS instance {!r} is not configured."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:240
+#: lib/pp_admintools/app/pdns.py:230
 msgid "PowerDNS API options"
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:249
+#: lib/pp_admintools/app/pdns.py:239
 msgid "Select, which PowerDNS instance to use. Valid values: {v}, default: {d!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:257 lib/pp_admintools/app/pdns.py:263
-#: lib/pp_admintools/app/pdns.py:269
+#: lib/pp_admintools/app/pdns.py:247 lib/pp_admintools/app/pdns.py:253
+#: lib/pp_admintools/app/pdns.py:259
 msgid "Using the {!r} PowerDNS instance."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:277
+#: lib/pp_admintools/app/pdns.py:267
 msgid "Which port to connect to PowerDNS API, default: {}."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:281
+#: lib/pp_admintools/app/pdns.py:271
 msgid "The timeout in seconds for the communication with the PowerDNS-API. Default: {} seconds."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:330
+#: lib/pp_admintools/app/pdns.py:320
 msgid "No path given for{d} [{s}]/{k} in configuration."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:337
+#: lib/pp_admintools/app/pdns.py:327
 msgid "Path {p!r} for{d} [{s}]/{k} in configuration must be an absolute path."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:359 lib/pp_admintools/app/pdns.py:397
-#: lib/pp_admintools/app/pdns.py:422
+#: lib/pp_admintools/app/pdns.py:349 lib/pp_admintools/app/pdns.py:387
+#: lib/pp_admintools/app/pdns.py:412
 msgid "Executing {} ..."
 msgstr "Executing {} …"
 
-#: lib/pp_admintools/app/pdns.py:377
+#: lib/pp_admintools/app/pdns.py:367
 msgid "Timeout of {t} seconds too big, at most {m} seconds are allowed."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:381
+#: lib/pp_admintools/app/pdns.py:371
 msgid "A timeout may not be negative."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:399
+#: lib/pp_admintools/app/pdns.py:389
 msgid "Setting Loglevel of the requests module to {}."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:412
+#: lib/pp_admintools/app/pdns.py:402
 msgid "Executing nothing ..."
 msgstr "Executing nothing …"
 
-#: lib/pp_admintools/app/pdns.py:432 lib/pp_admintools/app/pdns.py:461
-#: lib/pp_admintools/app/pdns.py:472 lib/pp_admintools/app/pdns.py:486
+#: lib/pp_admintools/app/pdns.py:422 lib/pp_admintools/app/pdns.py:451
+#: lib/pp_admintools/app/pdns.py:462 lib/pp_admintools/app/pdns.py:476
 msgid "The PDNS server object does not exists."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:434 lib/pp_admintools/app/pdns.py:463
-#: lib/pp_admintools/app/pdns.py:474 lib/pp_admintools/app/pdns.py:488
+#: lib/pp_admintools/app/pdns.py:424 lib/pp_admintools/app/pdns.py:453
+#: lib/pp_admintools/app/pdns.py:464 lib/pp_admintools/app/pdns.py:478
 msgid "The PDNS server object is not initialized."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:441
+#: lib/pp_admintools/app/pdns.py:431
 msgid "Got a {} during evaluating the PDNS server version from API:"
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:496
+#: lib/pp_admintools/app/pdns.py:486
 msgid "Trying to get complete information about zone {!r} ..."
 msgstr "Trying to get complete information about zone {!r} …"
 
-#: lib/pp_admintools/app/pdns.py:502
+#: lib/pp_admintools/app/pdns.py:492
 msgid "The given zone {} was not found."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:509
+#: lib/pp_admintools/app/pdns.py:499
 msgid "Got a response:"
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:514
+#: lib/pp_admintools/app/pdns.py:504
 msgid "Zone object:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:77
+#: lib/pp_admintools/app/remove_ldap_user.py:70
 msgid ""
 "Disables or removes the given users from LDAP. If disabling, then the user will not be really "
 "removed, but disabled by locking the password, setting all status flags to {inact!r}, assigning "
@@ -1945,374 +1955,413 @@ msgid ""
 "user will be really removed from LDAP."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:137
+#: lib/pp_admintools/app/remove_ldap_user.py:130
 msgid "This is the default."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:138
+#: lib/pp_admintools/app/remove_ldap_user.py:131
 msgid "This is mutually exclusive to {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:140
+#: lib/pp_admintools/app/remove_ldap_user.py:133
 msgid "Deactivating the user instead of removing it."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:147
+#: lib/pp_admintools/app/remove_ldap_user.py:140
 msgid "Removing the user from LDAP."
 msgstr "Removing the user from LDAP."
 
-#: lib/pp_admintools/app/remove_ldap_user.py:154
+#: lib/pp_admintools/app/remove_ldap_user.py:147
 msgid "Don't remove all mail addresses of the users to remove from all mailing lists."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:162 lib/pp_admintools/app/set_ldap_password.py:201
-#: lib/pp_admintools/app/set_ldap_password.py:204
+#: lib/pp_admintools/app/remove_ldap_user.py:155 lib/pp_admintools/app/set_ldap_password.py:193
+#: lib/pp_admintools/app/set_ldap_password.py:196
 msgid "USER"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:163
+#: lib/pp_admintools/app/remove_ldap_user.py:156
 msgid ""
 "The user, which should be deactivated or removed. They may be given by their Uid (the "
 "alphanumeric POSIX name), their mail address or their LDAP DN (be aware, that this may be "
 "different in the particular LDAP instances)."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:184
+#: lib/pp_admintools/app/remove_ldap_user.py:177
 msgid "No users to remove given."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:239
+#: lib/pp_admintools/app/remove_ldap_user.py:232
 msgid "All given users were not found in any LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:244
+#: lib/pp_admintools/app/remove_ldap_user.py:237
 msgid "Evaluated DNs to remove:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:253
+#: lib/pp_admintools/app/remove_ldap_user.py:246
 msgid "Start disabling user entries in:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:255
+#: lib/pp_admintools/app/remove_ldap_user.py:248
 msgid "Start removing user entries in:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:259
+#: lib/pp_admintools/app/remove_ldap_user.py:252
 msgid "Start disabling user entries ..."
 msgstr "Start disabling user entries …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:261
+#: lib/pp_admintools/app/remove_ldap_user.py:254
 msgid "Start removing user entries ..."
 msgstr "Start removing user entries …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:276
+#: lib/pp_admintools/app/remove_ldap_user.py:269
 msgid "Do you really want to deactivate the following users?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:278
+#: lib/pp_admintools/app/remove_ldap_user.py:271
 msgid "Do you really want to remove the following users?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:304
+#: lib/pp_admintools/app/remove_ldap_user.py:297
 msgid "Deactivate [{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:306
+#: lib/pp_admintools/app/remove_ldap_user.py:299
 msgid "Remove [{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:314
+#: lib/pp_admintools/app/remove_ldap_user.py:307
 msgid "Evaluating DNs of the user {!r} to remove ..."
 msgstr "Evaluating DNs of the user {!r} to remove …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:328 lib/pp_admintools/app/set_ldap_password.py:431
+#: lib/pp_admintools/app/remove_ldap_user.py:321 lib/pp_admintools/app/set_ldap_password.py:423
 msgid "Got DN {dn!r} for user {user!r} in LDAP instance {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:335 lib/pp_admintools/app/set_ldap_password.py:436
+#: lib/pp_admintools/app/remove_ldap_user.py:328 lib/pp_admintools/app/set_ldap_password.py:428
 msgid "Found {nr} entries for user {u!r} in LDAP instance {i}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:347 lib/pp_admintools/app/set_ldap_password.py:450
+#: lib/pp_admintools/app/remove_ldap_user.py:340 lib/pp_admintools/app/set_ldap_password.py:442
 msgid "Did not found user {user!r} in LDAP instance {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:356
+#: lib/pp_admintools/app/remove_ldap_user.py:349
 msgid "Deactivating all given users from {} ..."
 msgstr "Deactivating all given users from {} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:358
+#: lib/pp_admintools/app/remove_ldap_user.py:351
 msgid "Removing all given users from {} ..."
 msgstr "Removing all given users from {} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:373
+#: lib/pp_admintools/app/remove_ldap_user.py:366
 msgid "Deactivating user {dn!r} from {inst} ..."
 msgstr "Deactivating user {dn!r} from {inst} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:376
+#: lib/pp_admintools/app/remove_ldap_user.py:369
 msgid "Removing user {dn!r} from {inst} ..."
 msgstr "Removing user {dn!r} from {inst} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:382
+#: lib/pp_admintools/app/remove_ldap_user.py:375
 msgid "Attributes of {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:407
+#: lib/pp_admintools/app/remove_ldap_user.py:400
 msgid "{c} on removing user {dn!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:413
+#: lib/pp_admintools/app/remove_ldap_user.py:406
 msgid "User {dn!r} successful deactivated on {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:416
+#: lib/pp_admintools/app/remove_ldap_user.py:409
 msgid "User {dn!r} successful removed from {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:442
+#: lib/pp_admintools/app/remove_ldap_user.py:435
 msgid "Updating user info for {dn!r} on {inst} ..."
 msgstr "Updating user info for {dn!r} on {inst} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:447
+#: lib/pp_admintools/app/remove_ldap_user.py:440
 msgid "{c} on deactivating user {dn!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:463
+#: lib/pp_admintools/app/remove_ldap_user.py:456
 msgid "Did not found any group memberships of {dn!r} in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:469 lib/pp_admintools/app/remove_ldap_user.py:496
-#: lib/pp_admintools/app/remove_ldap_user.py:527 lib/pp_admintools/app/remove_ldap_user.py:558
+#: lib/pp_admintools/app/remove_ldap_user.py:462 lib/pp_admintools/app/remove_ldap_user.py:489
+#: lib/pp_admintools/app/remove_ldap_user.py:520 lib/pp_admintools/app/remove_ldap_user.py:551
 msgid "Removing user {u!r} from group {g!r} ..."
 msgstr "Removing user {u!r} from group {g!r} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:474 lib/pp_admintools/app/remove_ldap_user.py:501
-#: lib/pp_admintools/app/remove_ldap_user.py:532 lib/pp_admintools/app/remove_ldap_user.py:563
+#: lib/pp_admintools/app/remove_ldap_user.py:467 lib/pp_admintools/app/remove_ldap_user.py:494
+#: lib/pp_admintools/app/remove_ldap_user.py:525 lib/pp_admintools/app/remove_ldap_user.py:556
 msgid "{c} on removing user {dn!r} from group {g!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:490
+#: lib/pp_admintools/app/remove_ldap_user.py:483
 msgid "Did not found any unique group memberships of {dn!r} in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:514
+#: lib/pp_admintools/app/remove_ldap_user.py:507
 msgid "Deleting user {uid!r} from all POSIX groups in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:521
+#: lib/pp_admintools/app/remove_ldap_user.py:514
 msgid "Did not found any POSIX group memberships of {uid!r} in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:545
+#: lib/pp_admintools/app/remove_ldap_user.py:538
 msgid "Deleting user {uid!r} from all sudo groups in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:552
+#: lib/pp_admintools/app/remove_ldap_user.py:545
 msgid "Did not found any sudo group memberships of {uid!r} in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:585
+#: lib/pp_admintools/app/remove_ldap_user.py:578
 msgid "No mail addresses found to remove for user {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:589
+#: lib/pp_admintools/app/remove_ldap_user.py:582
 msgid "Trying to remove the following mail addresses from mailing lists:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:609
+#: lib/pp_admintools/app/remove_ldap_user.py:602
 msgid "Ignoring mailing list {!r} ..."
 msgstr "Ignoring mailing list {!r} …"
 
-#: lib/pp_admintools/app/remove_ldap_user.py:614
+#: lib/pp_admintools/app/remove_ldap_user.py:607
 msgid "Found DNs of mailing lists:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:619
+#: lib/pp_admintools/app/remove_ldap_user.py:612
 msgid "Did not found any mail groups including address {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:632
+#: lib/pp_admintools/app/remove_ldap_user.py:625
 msgid "Removing address {address!r} from mailing list {dn!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:671
+#: lib/pp_admintools/app/remove_ldap_user.py:664
 msgid "There are no changes for mail {mail!r} on {dn!r}?!?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:679
+#: lib/pp_admintools/app/remove_ldap_user.py:672
 msgid "{c} on removing mail {mail!r} from {dn!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:89
+#: lib/pp_admintools/app/set_ldap_password.py:81
 msgid ""
 "Changing the password of the given user. If no user was given, then {app} tries to use the name "
 "of the user logged in on the controlling terminal."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:132
+#: lib/pp_admintools/app/set_ldap_password.py:124
 msgid "Use {} as the current user password."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:137
+#: lib/pp_admintools/app/set_ldap_password.py:129
 msgid ""
 "Prompt for current user password. This is used instead of specifying the password on the command"
 " line."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:145
+#: lib/pp_admintools/app/set_ldap_password.py:137
 msgid "Use contents of {} as the current user password."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:150
+#: lib/pp_admintools/app/set_ldap_password.py:142
 msgid "Use {} as the new user password. If not given, it will be asked for it."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:158
+#: lib/pp_admintools/app/set_ldap_password.py:150
 msgid "Do not check the quality of the new password with the {} library."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:173
+#: lib/pp_admintools/app/set_ldap_password.py:165
 msgid ""
 "The schema (hashing method) to use to hash the new password. It is possible to give here the "
 "value {val_list!r}, then all possible schemes are shown and exit. Default: {default!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:178
+#: lib/pp_admintools/app/set_ldap_password.py:170
 msgid "If you are not using an admin account, then the password will hashed only by the default schema."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:187
+#: lib/pp_admintools/app/set_ldap_password.py:179
 msgid ""
 "The user, which password in the given LDAP instance should be changed. It may be given by its "
 "Uid (the alphanumeric POSIX name), its mail address or its LDAP DN."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:192
+#: lib/pp_admintools/app/set_ldap_password.py:184
 msgid "If not given, then your current user name {!r} will be used."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:195
+#: lib/pp_admintools/app/set_ldap_password.py:187
 msgid ""
 "If you are using a readonly LDAP instance or an instance w/o admin access, then you must provide"
 " somehow the current password of the user to change."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:261
+#: lib/pp_admintools/app/set_ldap_password.py:253
 msgid "Could not detect your current login name."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:266
+#: lib/pp_admintools/app/set_ldap_password.py:258
 msgid "The user {!r} will never be managed by LDAP."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:300
+#: lib/pp_admintools/app/set_ldap_password.py:292
 msgid "Using LDAP instance {inst!r} - {url}."
 msgstr "Using LDAP instance {inst!r} - {url}."
 
-#: lib/pp_admintools/app/set_ldap_password.py:304
+#: lib/pp_admintools/app/set_ldap_password.py:296
 msgid "Current password of user {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:318
+#: lib/pp_admintools/app/set_ldap_password.py:310
 msgid "Non admin users must use the default schema {!r} for hashing their password."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:324
+#: lib/pp_admintools/app/set_ldap_password.py:316
 msgid "New password of user {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:330
+#: lib/pp_admintools/app/set_ldap_password.py:322
 msgid "Checking the quality of the new password was disabled."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:360
+#: lib/pp_admintools/app/set_ldap_password.py:352
 msgid "Unbinding user connection from LDAP server {} ..."
 msgstr "Unbinding user connection from LDAP server {} …"
 
-#: lib/pp_admintools/app/set_ldap_password.py:371
+#: lib/pp_admintools/app/set_ldap_password.py:363
 msgid "Testing connect to LDAP-Server {url} with current user {dn!r} and password ..."
 msgstr "Testing connect to LDAP-Server {url} with current user {dn!r} and password …"
 
-#: lib/pp_admintools/app/set_ldap_password.py:383
+#: lib/pp_admintools/app/set_ldap_password.py:375
 msgid "Successful connected as {dn!r} to {url}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:389
+#: lib/pp_admintools/app/set_ldap_password.py:381
 msgid "Could not connect to {url} as {dn!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:400
+#: lib/pp_admintools/app/set_ldap_password.py:392
 msgid "Trying to get current password hash of user {!r} ..."
 msgstr "Trying to get current password hash of user {!r} …"
 
-#: lib/pp_admintools/app/set_ldap_password.py:438
+#: lib/pp_admintools/app/set_ldap_password.py:430
 msgid ""
 "Please use another username, or use the correct DN from the following list as a parameter for "
 "this script instead of the username:"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:455
+#: lib/pp_admintools/app/set_ldap_password.py:447
 msgid "Changing the password of user {dn!r} in LDAP instance {inst}."
 msgstr "Changing the password of user {dn!r} in LDAP instance {inst}."
 
-#: lib/pp_admintools/app/set_ldap_password.py:462
+#: lib/pp_admintools/app/set_ldap_password.py:454
 msgid "Setting password of '{dn}' with hashing schema '{schema}' ..."
 msgstr "Setting password of '{dn}' with hashing schema '{schema}' …"
 
-#: lib/pp_admintools/app/set_ldap_password.py:468
+#: lib/pp_admintools/app/set_ldap_password.py:460
 msgid "Current password hash: '{}'."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:471
+#: lib/pp_admintools/app/set_ldap_password.py:463
 msgid "The user '{}' has currently no password."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:484
+#: lib/pp_admintools/app/set_ldap_password.py:476
 msgid "New password hash: '{}'."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:488
+#: lib/pp_admintools/app/set_ldap_password.py:480
 msgid "Apply new password? [{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:494
+#: lib/pp_admintools/app/set_ldap_password.py:486
 msgid "Do not setting password for {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:510
+#: lib/pp_admintools/app/set_ldap_password.py:502
 msgid "Setting password ..."
 msgstr "Setting password …"
 
-#: lib/pp_admintools/app/set_ldap_password.py:516
+#: lib/pp_admintools/app/set_ldap_password.py:508
 msgid "{c} on setting password of user {dn!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/argparse_actions.py:51
+#: lib/pp_admintools/argparse_actions.py:56
 msgid "Value {v!r} for a {what} port is invalid:"
 msgstr ""
 
-#: lib/pp_admintools/argparse_actions.py:56
+#: lib/pp_admintools/argparse_actions.py:61
 msgid "Value {v!r} for a {what} port must be greater than 0 and less than {max}."
 msgstr ""
 
-#: lib/pp_admintools/argparse_actions.py:76 lib/pp_admintools/argparse_actions.py:107
+#: lib/pp_admintools/argparse_actions.py:89 lib/pp_admintools/argparse_actions.py:164
 msgid "Got a {c} for converting {v!r} into an integer value: {e}"
 msgstr ""
 
-#: lib/pp_admintools/argparse_actions.py:81
+#: lib/pp_admintools/argparse_actions.py:94 lib/pp_admintools/argparse_actions.py:131
 msgid "The option must not be negative (given: {})."
 msgstr ""
 
-#: lib/pp_admintools/argparse_actions.py:113 lib/pp_admintools/argparse_actions.py:151
+#: lib/pp_admintools/argparse_actions.py:98 lib/pp_admintools/argparse_actions.py:135
+msgid "The option must not be zero."
+msgstr ""
+
+#: lib/pp_admintools/argparse_actions.py:126 lib/pp_admintools/argparse_actions.py:218
+msgid "Got a {c} for converting {v!r} into a float value: {e}"
+msgstr ""
+
+#: lib/pp_admintools/argparse_actions.py:171 lib/pp_admintools/argparse_actions.py:225
 msgid "The option must be greater or equal to {m} (given: {v})."
 msgstr ""
 
-#: lib/pp_admintools/argparse_actions.py:119 lib/pp_admintools/argparse_actions.py:156
+#: lib/pp_admintools/argparse_actions.py:176 lib/pp_admintools/argparse_actions.py:230
+msgid "The option must be greater than {m} (given: {v})."
+msgstr ""
+
+#: lib/pp_admintools/argparse_actions.py:183 lib/pp_admintools/argparse_actions.py:237
 msgid "The option must be less or equal to {m} (given: {v})."
 msgstr ""
 
-#: lib/pp_admintools/argparse_actions.py:146
-msgid "Got a {c} for converting {v!r} into a float value: {e}"
+#: lib/pp_admintools/argparse_actions.py:188 lib/pp_admintools/argparse_actions.py:242
+msgid "The option must be less than {m} (given: {v})."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:208 lib/pp_admintools/argparse_actions.py:268
+msgid "The path {!r} must be an absolute path."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:212 lib/pp_admintools/app/ldap.py:1834
+#: lib/pp_admintools/argparse_actions.py:274
+msgid "The file {!r} does not exists."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:216 lib/pp_admintools/app/ldap.py:1839
+#: lib/pp_admintools/argparse_actions.py:278
+msgid "The given path {!r} exists, but is not a regular file."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:220 lib/pp_admintools/app/ldap.py:1844
+#: lib/pp_admintools/argparse_actions.py:282
+msgid "The given file {!r} is not readable."
+msgstr ""
+
+#: lib/pp_admintools/argparse_actions.py:304
+msgid "a port number must be greater than zero and less or equal to {}."
+msgstr ""
+
+#: lib/pp_admintools/argparse_actions.py:309
+msgid "Wrong port number {!r}:"
 msgstr ""
 
 #: lib/pp_admintools/config/dns_deploy_zones.py:202 lib/pp_admintools/config/dns_deploy_zones.py:515
index eee3c04f0ff83ac4d86b9b3f7f533607f67c3eeb..97073b9b8fabf36e5467b04136f855cd02d021ae 100644 (file)
@@ -8,20 +8,20 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pp_admintools 0.11.0\n"
 "Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2024-01-26 14:49+0100\n"
+"POT-Creation-Date: 2024-01-30 18:22+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <frank.brehm@pixelpark.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
+"Generated-By: Babel 2.12.1\n"
 
-#: lib/pp_admintools/app/__init__.py:143
+#: lib/pp_admintools/app/__init__.py:128
 msgid "Using logfile {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/__init__.py:145
+#: lib/pp_admintools/app/__init__.py:130
 msgid "Don't using a logfile."
 msgstr ""
 
@@ -39,8 +39,9 @@ msgid ""
 "Default: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/barracuda_sync.py:149 lib/pp_admintools/app/ldap.py:492
-#: lib/pp_admintools/app/mirror_ldap.py:122 lib/pp_admintools/app/pdns.py:285
+#: lib/pp_admintools/app/barracuda_sync.py:149 lib/pp_admintools/app/ldap.py:457
+#: lib/pp_admintools/app/ldap.py:468 lib/pp_admintools/app/mirror_ldap.py:114
+#: lib/pp_admintools/app/pdns.py:275
 msgid "SECONDS"
 msgstr ""
 
@@ -75,11 +76,11 @@ msgid "Error {} on evaluating lookup table types"
 msgstr ""
 
 #: lib/pp_admintools/app/barracuda_sync.py:231 lib/pp_admintools/app/barracuda_sync.py:427
-#: lib/pp_admintools/app/dns_deploy_zones.py:436 lib/pp_admintools/app/dns_deploy_zones.py:796
-#: lib/pp_admintools/app/ldap.py:1001 lib/pp_admintools/app/ldap.py:1134
-#: lib/pp_admintools/app/ldap.py:1187 lib/pp_admintools/app/ldap.py:1240
-#: lib/pp_admintools/app/ldap.py:1545 lib/pp_admintools/app/ldap.py:1579
-#: lib/pp_admintools/app/ldap.py:1613 lib/pp_admintools/app/ldap.py:1647
+#: lib/pp_admintools/app/dns_deploy_zones.py:431 lib/pp_admintools/app/dns_deploy_zones.py:791
+#: lib/pp_admintools/app/ldap.py:1120 lib/pp_admintools/app/ldap.py:1267
+#: lib/pp_admintools/app/ldap.py:1327 lib/pp_admintools/app/ldap.py:1387
+#: lib/pp_admintools/app/ldap.py:1695 lib/pp_admintools/app/ldap.py:1736
+#: lib/pp_admintools/app/ldap.py:1777 lib/pp_admintools/app/ldap.py:1818
 msgid "Result:"
 msgstr ""
 
@@ -283,7 +284,7 @@ msgstr ""
 msgid "LDAP Entries to modified:"
 msgstr ""
 
-#: lib/pp_admintools/app/barracuda_sync.py:756 lib/pp_admintools/app/ldap.py:1760
+#: lib/pp_admintools/app/barracuda_sync.py:756 lib/pp_admintools/app/ldap.py:1931
 msgid "Values to add to attribute {!r}:"
 msgstr ""
 
@@ -291,11 +292,11 @@ msgstr ""
 msgid "Values to be removed from attribute {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/barracuda_sync.py:777 lib/pp_admintools/app/ldap.py:1781
+#: lib/pp_admintools/app/barracuda_sync.py:777 lib/pp_admintools/app/ldap.py:1952
 msgid "Changes for attribute {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/barracuda_sync.py:780 lib/pp_admintools/app/ldap.py:1784
+#: lib/pp_admintools/app/barracuda_sync.py:780 lib/pp_admintools/app/ldap.py:1955
 msgid "No changes to attribute {!r}."
 msgstr ""
 
@@ -353,471 +354,471 @@ msgstr[1] ""
 msgid "Get all necessary data from LDAP and static virtual aliases table ..."
 msgstr ""
 
-#: lib/pp_admintools/app/barracuda_sync.py:972 lib/pp_admintools/app/mirror_ldap.py:352
+#: lib/pp_admintools/app/barracuda_sync.py:972 lib/pp_admintools/app/mirror_ldap.py:345
 msgid "Finished."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:78
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:69
 msgid ""
 "Checking all attributes with a DN syntax ({alist}) in the given instance. The check is for the "
 "DN-syntax of the attributes and whether they are referencing to existing entries in LDAP."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:97
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:105
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:88
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:96
 msgid "Script options"
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:100
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:91
 msgid "FILE"
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:101
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:92
 msgid "Exportig the faulty entries and attributes into a YAML file, if there were found some of them."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:129
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:120
 msgid "Created export file {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:131
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:122
 msgid "Start checking all DN-like attributes in in LDAP instance {inst!r} ({url}) ..."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:154
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:145
 msgid "Found one entry to check."
 msgid_plural "Found {} entries to check."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:158
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:149
 msgid "Found no to check."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:178
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:169
 msgid "Got an inconsistent entry."
 msgid_plural "Got {} inconsistent entries."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:181
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:172
 msgid "There is one inconsistent attribute."
 msgid_plural "There are {} inconsistent attributes."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:186
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:177
 msgid "Writing export file {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:193
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:184
 msgid "Did not found any inconsistent entries."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:214
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:205
 msgid "Checking DN-like attributes of entry {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_dn_attributes.py:219
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:189
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:233
+#: lib/pp_admintools/app/check_ldap_dn_attributes.py:210
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:180
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:224
 msgid "Got attributes:"
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:82
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:73
 msgid ""
 "Reports the password hashing schemes of {attr} attributes in LDAP. Without a filter or a more "
 "special Base-DN the hashing schemes of all {attr} attributes in the LDAP tree are shown. One can"
 " filter the output by a regular LDAP-filter rule of by one or more hashing schemes."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:108
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:99
 msgid "FILTER"
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:109
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:100
 msgid ""
 "An additional LDAP filter to limit the entries to print out their password hashing schema. "
 "Please note, that this filter will be wrapped by parantheses to combine it with the default "
 "filter {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:123
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:114
 msgid ""
 "One or more schemes (hashing methods) for filtering the {attr} attributes. It is possible to "
 "give here the value {val_list!r}, then all possible schemes are shown and exit."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:129 lib/pp_admintools/app/set_ldap_password.py:183
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:120 lib/pp_admintools/app/set_ldap_password.py:175
 msgid "SCHEMA"
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:135
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:126
 msgid "Show more details in output, e.g. the entry DN."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:167
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:158
 msgid ""
 "Start reporting password hashing schemes of {attr} attributes in in LDAP instance {inst!r} "
 "({url}) ..."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:180
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:171
 msgid "Used LDAP filter: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:222
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:213
 msgid "Found entry {!r} with data:"
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:226
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:217
 msgid "Did not found any entries with a {attr} attribute and the given filters."
 msgstr ""
 
-#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:233
+#: lib/pp_admintools/app/check_ldap_pwd_schemes.py:224
 msgid "Found entry DNs:"
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:75
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:66
 msgid ""
 "Removes all LDAP groups, which does not have any members, that means, they are one of the "
 "following objectClasses: {ocl}, and they have none of the following attributes: {atl}."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:124 lib/pp_admintools/app/remove_ldap_user.py:134
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:115 lib/pp_admintools/app/remove_ldap_user.py:127
 msgid "Removing options"
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:128
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:119
 msgid "The base DN used as the root for the LDAP search."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:154 lib/pp_admintools/app/remove_ldap_user.py:202
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:145 lib/pp_admintools/app/remove_ldap_user.py:195
 msgid "Checking given instances for admin and read/write access."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:161 lib/pp_admintools/app/remove_ldap_user.py:209
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:152 lib/pp_admintools/app/remove_ldap_user.py:202
 msgid "LDAP instance {!r} not found in configuration."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:169 lib/pp_admintools/app/remove_ldap_user.py:217
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:160 lib/pp_admintools/app/remove_ldap_user.py:210
 msgid "LDAP instance {!r} has only readonly access."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:174 lib/pp_admintools/app/remove_ldap_user.py:222
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:165 lib/pp_admintools/app/remove_ldap_user.py:215
 msgid "No admin access to LDAP instance {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:184
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:175
 msgid "Searching for empty groups ..."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:191
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:182
 msgid "No more empty groups left for removing."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:194
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:185
 msgid "Lap {} on searching for empty groups to remove."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:229
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:220
 msgid "Searching for member attributes of {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:239
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:230
 msgid "Found attribute {at!r} in group {g!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:242
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:233
 msgid "Group {!r} is not empty!"
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:247
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:238
 msgid "Removing group {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:251
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:242
 msgid "Dont't removing group {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:258
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:249
 msgid "Do you really want to remove the group '{}'"
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:260
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:251
 msgid "[{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:261 lib/pp_admintools/app/ldap.py:368
-#: lib/pp_admintools/app/mirror_ldap.py:253 lib/pp_admintools/app/remove_ldap_user.py:308
-#: lib/pp_admintools/app/set_ldap_password.py:489
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:252 lib/pp_admintools/app/ldap.py:325
+#: lib/pp_admintools/app/mirror_ldap.py:245 lib/pp_admintools/app/remove_ldap_user.py:301
+#: lib/pp_admintools/app/set_ldap_password.py:481
 msgid "No"
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:261 lib/pp_admintools/app/mirror_ldap.py:253
-#: lib/pp_admintools/app/remove_ldap_user.py:308 lib/pp_admintools/app/set_ldap_password.py:489
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:252 lib/pp_admintools/app/mirror_ldap.py:245
+#: lib/pp_admintools/app/remove_ldap_user.py:301 lib/pp_admintools/app/set_ldap_password.py:481
 msgid "yes"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:124
+#: lib/pp_admintools/app/dns_deploy_zones.py:119
 msgid "Generation of the BIND9 configuration file for slave zones."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:252 lib/pp_admintools/app/mk_ldap_passwd.py:86
-#: lib/pp_admintools/app/set_ldap_password.py:125
+#: lib/pp_admintools/app/dns_deploy_zones.py:247 lib/pp_admintools/app/mk_ldap_passwd.py:78
+#: lib/pp_admintools/app/set_ldap_password.py:117
 msgid "Options for {}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:257
+#: lib/pp_admintools/app/dns_deploy_zones.py:252
 msgid "Keep a backup file for each changed configuration file."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:262
+#: lib/pp_admintools/app/dns_deploy_zones.py:257
 msgid "Keeping the temporary directory instead of removing it at the end (e.g. for debugging purposes)"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:286
+#: lib/pp_admintools/app/dns_deploy_zones.py:281
 msgid "Post init phase."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:290
+#: lib/pp_admintools/app/dns_deploy_zones.py:285
 msgid "My own post init phase."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:306
+#: lib/pp_admintools/app/dns_deploy_zones.py:301
 msgid "Unknown time zone: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:321
+#: lib/pp_admintools/app/dns_deploy_zones.py:316
 msgid "You must be root to execute this script."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:323
+#: lib/pp_admintools/app/dns_deploy_zones.py:318
 msgid "But in simulation mode we are continuing nevertheless."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:330
+#: lib/pp_admintools/app/dns_deploy_zones.py:325
 msgid "Starting: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:338
+#: lib/pp_admintools/app/dns_deploy_zones.py:333
 msgid "Using the global DNS master is not supported, please use 'local' or 'public'"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:351
+#: lib/pp_admintools/app/dns_deploy_zones.py:346
 msgid "Could not occupy pidfile: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:376
+#: lib/pp_admintools/app/dns_deploy_zones.py:371
 msgid "Ending: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:381
+#: lib/pp_admintools/app/dns_deploy_zones.py:376
 msgid "Cleaning up ..."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:385
+#: lib/pp_admintools/app/dns_deploy_zones.py:380
 msgid "Searching for {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:388
+#: lib/pp_admintools/app/dns_deploy_zones.py:383
 msgid "Keep existing backup file {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:390
+#: lib/pp_admintools/app/dns_deploy_zones.py:385
 msgid "Removing {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:396
+#: lib/pp_admintools/app/dns_deploy_zones.py:391
 msgid "Error removing {p!r} - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:401
+#: lib/pp_admintools/app/dns_deploy_zones.py:396
 msgid "Temporary directory {!r} will not be removed. It's on yours to remove it manually."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:406
+#: lib/pp_admintools/app/dns_deploy_zones.py:401
 msgid "Destroying temporary directory {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:414
+#: lib/pp_admintools/app/dns_deploy_zones.py:409
 msgid "Temporary directory: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:419
+#: lib/pp_admintools/app/dns_deploy_zones.py:414
 msgid "Temporary zones conf: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:424
+#: lib/pp_admintools/app/dns_deploy_zones.py:419
 msgid "Trying to get all keys from named.conf ..."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:430 lib/pp_admintools/app/dns_deploy_zones.py:790
-#: lib/pp_admintools/app/dns_deploy_zones.py:826 lib/pp_admintools/app/dns_deploy_zones.py:858
-#: lib/pp_admintools/app/dns_deploy_zones.py:893 lib/pp_admintools/app/dns_deploy_zones.py:928
-#: lib/pp_admintools/app/mail.py:317
+#: lib/pp_admintools/app/dns_deploy_zones.py:425 lib/pp_admintools/app/dns_deploy_zones.py:785
+#: lib/pp_admintools/app/dns_deploy_zones.py:821 lib/pp_admintools/app/dns_deploy_zones.py:853
+#: lib/pp_admintools/app/dns_deploy_zones.py:888 lib/pp_admintools/app/dns_deploy_zones.py:923
+#: lib/pp_admintools/app/mail.py:310
 msgid "Executing: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:477 lib/pp_admintools/app/dns_deploy_zones.py:479
+#: lib/pp_admintools/app/dns_deploy_zones.py:472 lib/pp_admintools/app/dns_deploy_zones.py:474
 msgid "Found named keys:"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:479 lib/pp_admintools/app/dns_deploy_zones.py:510
+#: lib/pp_admintools/app/dns_deploy_zones.py:474 lib/pp_admintools/app/dns_deploy_zones.py:505
 msgid "None"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:484
+#: lib/pp_admintools/app/dns_deploy_zones.py:479
 msgid "Generating {} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:508 lib/pp_admintools/app/dns_deploy_zones.py:510
+#: lib/pp_admintools/app/dns_deploy_zones.py:503 lib/pp_admintools/app/dns_deploy_zones.py:505
 msgid "Collected server configuration:"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:531
+#: lib/pp_admintools/app/dns_deploy_zones.py:526
 msgid "Generated file {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:541
+#: lib/pp_admintools/app/dns_deploy_zones.py:536
 msgid "Could not get zone info for {z!r} - {cls}: {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:553
+#: lib/pp_admintools/app/dns_deploy_zones.py:548
 msgid "Pure local zone {!r} will not be considered."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:585
+#: lib/pp_admintools/app/dns_deploy_zones.py:580
 msgid "Key {k!r} for zone {z!r} not found in named configuration."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:615
+#: lib/pp_admintools/app/dns_deploy_zones.py:610
 msgid "Got IPv4 tuples: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:639
+#: lib/pp_admintools/app/dns_deploy_zones.py:634
 msgid "Got IPv6 tokens: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:646
+#: lib/pp_admintools/app/dns_deploy_zones.py:641
 msgid "Comparing generated files with existing ones."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:653
+#: lib/pp_admintools/app/dns_deploy_zones.py:648
 msgid "Files to replace:"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:659
+#: lib/pp_admintools/app/dns_deploy_zones.py:654
 msgid "Source file not defined."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:661
+#: lib/pp_admintools/app/dns_deploy_zones.py:656
 msgid "Target file not defined."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:663
+#: lib/pp_admintools/app/dns_deploy_zones.py:658
 msgid "Comparing {one!r} with {two!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:667 lib/pp_admintools/app/dns_deploy_zones.py:676
+#: lib/pp_admintools/app/dns_deploy_zones.py:662 lib/pp_admintools/app/dns_deploy_zones.py:671
 msgid "{what} {f!r} does not exists."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:668 lib/pp_admintools/app/dns_deploy_zones.py:672
+#: lib/pp_admintools/app/dns_deploy_zones.py:663 lib/pp_admintools/app/dns_deploy_zones.py:667
 msgid "Source file"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:671 lib/pp_admintools/app/dns_deploy_zones.py:681
+#: lib/pp_admintools/app/dns_deploy_zones.py:666 lib/pp_admintools/app/dns_deploy_zones.py:676
 msgid "{what} {f!r} is not a regular file."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:677 lib/pp_admintools/app/dns_deploy_zones.py:682
+#: lib/pp_admintools/app/dns_deploy_zones.py:672 lib/pp_admintools/app/dns_deploy_zones.py:677
 msgid "Target file"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:688 lib/pp_admintools/app/dns_deploy_zones.py:705
+#: lib/pp_admintools/app/dns_deploy_zones.py:683 lib/pp_admintools/app/dns_deploy_zones.py:700
 msgid "Reading {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:698 lib/pp_admintools/app/dns_deploy_zones.py:715
+#: lib/pp_admintools/app/dns_deploy_zones.py:693 lib/pp_admintools/app/dns_deploy_zones.py:710
 msgid "Cleaned version of {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:720
+#: lib/pp_admintools/app/dns_deploy_zones.py:715
 msgid ""
 "Source file {sf!r} has different number essential lines ({sl}) than the target file {tf!r} ({tl}"
 " lines)."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:729
+#: lib/pp_admintools/app/dns_deploy_zones.py:724
 msgid "Source file {sf!r} has a different content than the target file {tf!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:741
+#: lib/pp_admintools/app/dns_deploy_zones.py:736
 msgid "No replacement of any config files necessary."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:744
+#: lib/pp_admintools/app/dns_deploy_zones.py:739
 msgid "Start replacing of config files ..."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:752 lib/pp_admintools/app/dns_deploy_zones.py:762
+#: lib/pp_admintools/app/dns_deploy_zones.py:747 lib/pp_admintools/app/dns_deploy_zones.py:757
 msgid "Copying {frm!r} => {to!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:758
+#: lib/pp_admintools/app/dns_deploy_zones.py:753
 msgid "All backuped config files:"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:770
+#: lib/pp_admintools/app/dns_deploy_zones.py:765
 msgid "Restoring of original config files because of an exception."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:774
+#: lib/pp_admintools/app/dns_deploy_zones.py:769
 msgid "Moving {frm!r} => {to!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:780
+#: lib/pp_admintools/app/dns_deploy_zones.py:775
 msgid "Could not find backup file {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:785
+#: lib/pp_admintools/app/dns_deploy_zones.py:780
 msgid "Checking syntax correctness of named.conf ..."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:806
+#: lib/pp_admintools/app/dns_deploy_zones.py:801
 msgid "Reload or restart of named is not necessary."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:811
+#: lib/pp_admintools/app/dns_deploy_zones.py:806
 msgid "Named is not running, please start it manually."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:822
+#: lib/pp_admintools/app/dns_deploy_zones.py:817
 msgid "Checking, whether named is running ..."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:840 lib/pp_admintools/app/dns_deploy_zones.py:875
-#: lib/pp_admintools/app/dns_deploy_zones.py:910 lib/pp_admintools/app/dns_deploy_zones.py:945
+#: lib/pp_admintools/app/dns_deploy_zones.py:835 lib/pp_admintools/app/dns_deploy_zones.py:870
+#: lib/pp_admintools/app/dns_deploy_zones.py:905 lib/pp_admintools/app/dns_deploy_zones.py:940
 msgid "Return value: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:842 lib/pp_admintools/app/dns_deploy_zones.py:844
-#: lib/pp_admintools/app/dns_deploy_zones.py:877 lib/pp_admintools/app/dns_deploy_zones.py:879
-#: lib/pp_admintools/app/dns_deploy_zones.py:912 lib/pp_admintools/app/dns_deploy_zones.py:914
-#: lib/pp_admintools/app/dns_deploy_zones.py:947 lib/pp_admintools/app/dns_deploy_zones.py:949
+#: lib/pp_admintools/app/dns_deploy_zones.py:837 lib/pp_admintools/app/dns_deploy_zones.py:839
+#: lib/pp_admintools/app/dns_deploy_zones.py:872 lib/pp_admintools/app/dns_deploy_zones.py:874
+#: lib/pp_admintools/app/dns_deploy_zones.py:907 lib/pp_admintools/app/dns_deploy_zones.py:909
+#: lib/pp_admintools/app/dns_deploy_zones.py:942 lib/pp_admintools/app/dns_deploy_zones.py:944
 msgid "Output on {}"
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:854
+#: lib/pp_admintools/app/dns_deploy_zones.py:849
 msgid "Starting {} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:889
+#: lib/pp_admintools/app/dns_deploy_zones.py:884
 msgid "Restarting {} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/dns_deploy_zones.py:924
+#: lib/pp_admintools/app/dns_deploy_zones.py:919
 msgid "Reloading {} ..."
 msgstr ""
 
@@ -864,7 +865,7 @@ msgstr ""
 msgid "Checking for dependend unique attribute '"
 msgstr ""
 
-#: lib/pp_admintools/app/duplicate_attribs.py:172 lib/pp_admintools/app/ldap.py:627
+#: lib/pp_admintools/app/duplicate_attribs.py:172 lib/pp_admintools/app/ldap.py:611
 msgid "Used filter:"
 msgstr ""
 
@@ -872,120 +873,101 @@ msgstr ""
 msgid "No duplicates for attribute {!r} found."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:126 lib/pp_admintools/app/ldap.py:299
-msgid "The path {!r} must be an absolute path."
-msgstr ""
-
-#: lib/pp_admintools/app/ldap.py:132 lib/pp_admintools/app/ldap.py:303
-#: lib/pp_admintools/app/ldap.py:1663
-msgid "The file {!r} does not exists."
-msgstr ""
-
-#: lib/pp_admintools/app/ldap.py:136 lib/pp_admintools/app/ldap.py:307
-#: lib/pp_admintools/app/ldap.py:1668
-msgid "The given path {!r} exists, but is not a regular file."
-msgstr ""
-
-#: lib/pp_admintools/app/ldap.py:140 lib/pp_admintools/app/ldap.py:311
-#: lib/pp_admintools/app/ldap.py:1673
-msgid "The given file {!r} is not readable."
+#: lib/pp_admintools/app/ldap.py:235
+msgid "The value {v} for {n} must be greater than zero."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:162
-msgid "a port number must be greater than zero and less or equal to {}."
+#: lib/pp_admintools/app/ldap.py:239 lib/pp_admintools/app/ldap.py:261
+msgid "The value {v} for {n} must not be greater than {m}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:167
-msgid "Wrong port number {!r}:"
+#: lib/pp_admintools/app/ldap.py:257
+msgid "The value {v} for {n} must be equal to or greater than zero."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:326
-msgid "The value {v} for {n} must be greater than zero."
-msgstr ""
-
-#: lib/pp_admintools/app/ldap.py:357
+#: lib/pp_admintools/app/ldap.py:314
 msgid "LDAP options"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:359
+#: lib/pp_admintools/app/ldap.py:316
 msgid "Options for the default LDAP connection"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:361
+#: lib/pp_admintools/app/ldap.py:318
 msgid "Options fo LDAP connections"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:370
+#: lib/pp_admintools/app/ldap.py:327
 msgid "Yes"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:376 lib/pp_admintools/app/ldap.py:472
+#: lib/pp_admintools/app/ldap.py:333 lib/pp_admintools/app/ldap.py:429
 msgid "HOST"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:377
+#: lib/pp_admintools/app/ldap.py:334
 msgid "Hostname or address of the LDAP server to use. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:384
+#: lib/pp_admintools/app/ldap.py:341
 msgid "Use ldaps to connect to the LDAP server. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:389 lib/pp_admintools/app/ldap.py:478
-#: lib/pp_admintools/app/mail.py:250 lib/pp_admintools/app/pdns.py:274
+#: lib/pp_admintools/app/ldap.py:346 lib/pp_admintools/app/ldap.py:435
+#: lib/pp_admintools/app/mail.py:243 lib/pp_admintools/app/pdns.py:264
 msgid "PORT"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:391
+#: lib/pp_admintools/app/ldap.py:348
 msgid "The port number to connect to the LDAP server. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:397
+#: lib/pp_admintools/app/ldap.py:354
 msgid "The base DN used as the root for the LDAP searches. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:404
+#: lib/pp_admintools/app/ldap.py:361
 msgid "The Bind DN to use to connect to the LDAP server. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:412 lib/pp_admintools/app/mk_ldap_passwd.py:131
-#: lib/pp_admintools/app/set_ldap_password.py:131 lib/pp_admintools/app/set_ldap_password.py:132
-#: lib/pp_admintools/app/set_ldap_password.py:149 lib/pp_admintools/app/set_ldap_password.py:152
+#: lib/pp_admintools/app/ldap.py:369 lib/pp_admintools/app/mk_ldap_passwd.py:123
+#: lib/pp_admintools/app/set_ldap_password.py:123 lib/pp_admintools/app/set_ldap_password.py:124
+#: lib/pp_admintools/app/set_ldap_password.py:141 lib/pp_admintools/app/set_ldap_password.py:144
 msgid "PASSWORD"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:413
+#: lib/pp_admintools/app/ldap.py:370
 msgid "Use PASSWORD as the password for simple LDAP authentication."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:418
+#: lib/pp_admintools/app/ldap.py:375
 msgid ""
 "Prompt for simple LDAP authentication. This is used instead of specifying the password on the "
 "command line."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:424 lib/pp_admintools/app/set_ldap_password.py:143
-#: lib/pp_admintools/app/set_ldap_password.py:145
+#: lib/pp_admintools/app/ldap.py:381 lib/pp_admintools/app/set_ldap_password.py:135
+#: lib/pp_admintools/app/set_ldap_password.py:137
 msgid "PASSWORD_FILE"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:426
+#: lib/pp_admintools/app/ldap.py:383
 msgid "Use contents of PASSWORD_FILE as the password for simple authentication."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:434 lib/pp_admintools/app/pdns.py:248
+#: lib/pp_admintools/app/ldap.py:391 lib/pp_admintools/app/pdns.py:238
 msgid "INSTANCE"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:437
+#: lib/pp_admintools/app/ldap.py:394
 msgid "If not given, then the instance {!r} will be used."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:441
+#: lib/pp_admintools/app/ldap.py:398
 msgid "The LDAP instance (LDAP cluster) from configuration, where to execute this script."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:445
+#: lib/pp_admintools/app/ldap.py:402
 msgid ""
 "The LDAP instance (LDAP cluster) from configuration, where to execute this script. It is "
 "possible to give here the value {val_all!r}, then all found LDAP instances except {default!r} "
@@ -993,442 +975,470 @@ msgid ""
 "are shown, and the application is exiting."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:473
+#: lib/pp_admintools/app/ldap.py:430
 msgid "Override configured hostname or address of the LDAP server."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:480
+#: lib/pp_admintools/app/ldap.py:437
 msgid "Override the configured port number to connect to the LDAP server."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:485
+#: lib/pp_admintools/app/ldap.py:442
 msgid "Override the configured base DN of the instance used as the root for the LDAP searches."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:494
+#: lib/pp_admintools/app/ldap.py:448
+msgid "COUNT"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:451
+msgid ""
+"The number of retries for executing a LDAP request, which was failing because of a connection "
+"problem. Default: {}"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:460
+msgid ""
+"The time in seconds after a failed LDAP request, which was failing because of a connection "
+"problem, for the next try. Default: {}"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:470
 msgid "Using the given timeout in seconds for all LDAP operations. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:521
+#: lib/pp_admintools/app/ldap.py:505
 msgid "Limiting console timeout to {} seconds due to LDAP timeout."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:532
+#: lib/pp_admintools/app/ldap.py:516
 msgid "Checking given instances."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:536
+#: lib/pp_admintools/app/ldap.py:520
 msgid "Given insts:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:593
+#: lib/pp_admintools/app/ldap.py:577
 msgid "Configured LDAP instances:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:614
+#: lib/pp_admintools/app/ldap.py:598
 msgid "Verifying given instances ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:652
+#: lib/pp_admintools/app/ldap.py:636
 msgid "Filtered instances:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:660
+#: lib/pp_admintools/app/ldap.py:644
 msgid "LDAP instances to use:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:676
+#: lib/pp_admintools/app/ldap.py:660
 msgid "LDAP instance {!r} not found in configuration or is not usable."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:756
+#: lib/pp_admintools/app/ldap.py:740
 msgid "Preparations ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:759
+#: lib/pp_admintools/app/ldap.py:744
 msgid "Open all necessary LDAP connections ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:773
+#: lib/pp_admintools/app/ldap.py:758
 msgid "Password of user {usr} on LDAP instance {inst}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:782
+#: lib/pp_admintools/app/ldap.py:770
 msgid "Info about LDAP server {}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:792
+#: lib/pp_admintools/app/ldap.py:783
 msgid "Trying to get LDAP server object for {} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:808
+#: lib/pp_admintools/app/ldap.py:799
 msgid "Connect options to server {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:815
+#: lib/pp_admintools/app/ldap.py:806
 msgid "LDAP server {s}: {re}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:829
+#: lib/pp_admintools/app/ldap.py:824
 msgid "Connecting to LDAP server {url} as {dn!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:837
+#: lib/pp_admintools/app/ldap.py:832
 msgid "Could not connect to LDAP server {url!r} as {user!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:842
+#: lib/pp_admintools/app/ldap.py:837
 msgid "{c} on connecting to LDAP server {url!r} as {user!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:852
+#: lib/pp_admintools/app/ldap.py:847
 msgid "Finishing ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:863
+#: lib/pp_admintools/app/ldap.py:858
 msgid "Disconnecting from all remaining LDAP instances ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:876
+#: lib/pp_admintools/app/ldap.py:875
 msgid "Unbinding from LDAP server {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:883
-msgid "Disconnecting from LDAP server {!r} ..."
+#: lib/pp_admintools/app/ldap.py:882
+msgid "Removing LDAP server connection data {!r} ..."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:905
+msgid "recursive"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:910
-msgid "Searching in {uri}/{bdn} for all entries with filter {fltr!r}, giving attributes:"
+#: lib/pp_admintools/app/ldap.py:921
+msgid "Searching in {uri}/{bdn} {rec}for all entries with filter {fltr!r}, giving attributes:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:922
+#: lib/pp_admintools/app/ldap.py:951
 msgid "Result of searching:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:927
+#: lib/pp_admintools/app/ldap.py:953 lib/pp_admintools/app/ldap.py:1105
+#: lib/pp_admintools/app/ldap.py:1159 lib/pp_admintools/app/ldap.py:1264
+#: lib/pp_admintools/app/ldap.py:1324 lib/pp_admintools/app/ldap.py:1384
+#: lib/pp_admintools/app/ldap.py:1692 lib/pp_admintools/app/ldap.py:1733
+#: lib/pp_admintools/app/ldap.py:1774 lib/pp_admintools/app/ldap.py:1815
+msgid "Got a response entry:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:957
+msgid "Search was not successful."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:973
+msgid "Try number {} for searching ..."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:989 lib/pp_admintools/app/ldap.py:1002
+msgid "Got a {cls} on searching in LDAP instance {i!r}:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:992
+msgid "Waiting because of a {}:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:997
+msgid "Session terminated by server on searching on instance {i!r}:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:1038
 msgid "Found entry {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:934 lib/pp_admintools/app/ldap.py:978
+#: lib/pp_admintools/app/ldap.py:1045 lib/pp_admintools/app/ldap.py:1097
 msgid "Found one entry with filter {fltr!r} in {uri}/{bdn}."
 msgid_plural "Found {nr} enries with filter {fltr!r} in {uri}/{bdn}."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/ldap.py:938
+#: lib/pp_admintools/app/ldap.py:1049
 msgid "Got response entries:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:942 lib/pp_admintools/app/ldap.py:990
+#: lib/pp_admintools/app/ldap.py:1053 lib/pp_admintools/app/ldap.py:1109
 msgid "No entry found with filter {fltr!r} in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:966 lib/pp_admintools/app/ldap.py:1020
+#: lib/pp_admintools/app/ldap.py:1077 lib/pp_admintools/app/ldap.py:1138
 msgid "Using LDAP filter: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:982 lib/pp_admintools/app/ldap.py:1029
+#: lib/pp_admintools/app/ldap.py:1101 lib/pp_admintools/app/ldap.py:1155
 msgid "Result of searching for DNs of all entries:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:986 lib/pp_admintools/app/ldap.py:1033
-#: lib/pp_admintools/app/ldap.py:1131 lib/pp_admintools/app/ldap.py:1184
-#: lib/pp_admintools/app/ldap.py:1237 lib/pp_admintools/app/ldap.py:1342
-#: lib/pp_admintools/app/ldap.py:1542 lib/pp_admintools/app/ldap.py:1576
-#: lib/pp_admintools/app/ldap.py:1610 lib/pp_admintools/app/ldap.py:1644
-msgid "Got a response entry:"
-msgstr ""
-
-#: lib/pp_admintools/app/ldap.py:1016
+#: lib/pp_admintools/app/ldap.py:1134
 msgid "Getting all Entry DNs of LDAP instance {i!r} below {b!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1055
+#: lib/pp_admintools/app/ldap.py:1181
 msgid "Trying to evaluate DN of user {user!r} in LDAP instance {inst} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1060
+#: lib/pp_admintools/app/ldap.py:1186
 msgid "Trying to evaluate DN of user {u!r} as a mail address ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1067
+#: lib/pp_admintools/app/ldap.py:1193
 msgid "Trying to evaluate DN of user {u!r} as a LDAP DN ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1074
+#: lib/pp_admintools/app/ldap.py:1200
 msgid "Trying to evaluate DN of user {u!r} as a UID (Posix user name) ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1083 lib/pp_admintools/app/remove_ldap_user.py:318
+#: lib/pp_admintools/app/ldap.py:1209 lib/pp_admintools/app/remove_ldap_user.py:311
 msgid "Empty user given."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1086
+#: lib/pp_admintools/app/ldap.py:1212
 msgid "Trying to evaluate DN of user {u!r} as a CN ({c}) ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1116 lib/pp_admintools/app/ldap.py:1169
-#: lib/pp_admintools/app/ldap.py:1222 lib/pp_admintools/app/ldap.py:1530
-#: lib/pp_admintools/app/ldap.py:1564 lib/pp_admintools/app/ldap.py:1598
-#: lib/pp_admintools/app/ldap.py:1632
+#: lib/pp_admintools/app/ldap.py:1241 lib/pp_admintools/app/ldap.py:1301
+#: lib/pp_admintools/app/ldap.py:1361 lib/pp_admintools/app/ldap.py:1672
+#: lib/pp_admintools/app/ldap.py:1713 lib/pp_admintools/app/ldap.py:1754
+#: lib/pp_admintools/app/ldap.py:1795
 msgid "Searching in {uri}/{bdn} with filter: {fltr}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1127
+#: lib/pp_admintools/app/ldap.py:1260
 msgid "Result of searching for mail address {m!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1138
+#: lib/pp_admintools/app/ldap.py:1271
 msgid "User with mail address {m!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1180
+#: lib/pp_admintools/app/ldap.py:1320
 msgid "Result of searching for uid {u!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1191
+#: lib/pp_admintools/app/ldap.py:1331
 msgid "User with uid {u!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1233
+#: lib/pp_admintools/app/ldap.py:1380
 msgid "Result of searching for CN {cn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1244
+#: lib/pp_admintools/app/ldap.py:1391
 msgid "User with cn {cn!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1261 lib/pp_admintools/app/set_ldap_password.py:409
+#: lib/pp_admintools/app/ldap.py:1408 lib/pp_admintools/app/set_ldap_password.py:401
 msgid "User with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1279
+#: lib/pp_admintools/app/ldap.py:1426
 msgid "ObjectClasses of {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1289
+#: lib/pp_admintools/app/ldap.py:1436
 msgid "Entry {dn!r} in {uri} seems not to be an account."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1311
+#: lib/pp_admintools/app/ldap.py:1449
 msgid "Searching DN {dn!r} in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1328
-msgid "Waiting because of a failing read operation."
+#: lib/pp_admintools/app/ldap.py:1462
+msgid "Entry with DN {dn!r} not found in {i!r} ({uri})."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1332
-msgid "Error on reading entry {dn!r} from instance {inst!r}:"
-msgstr ""
-
-#: lib/pp_admintools/app/ldap.py:1338
-msgid "Result of searching for DN {dn!r}:"
-msgstr ""
-
-#: lib/pp_admintools/app/ldap.py:1346
-msgid "Entry with DN {dn!r} not found in {uri}."
-msgstr ""
-
-#: lib/pp_admintools/app/ldap.py:1391
+#: lib/pp_admintools/app/ldap.py:1506
 msgid "Creating entry {dn!r} on {uri}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1397
+#: lib/pp_admintools/app/ldap.py:1512
 msgid "Simulation mode - entry will not be created."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1404
+#: lib/pp_admintools/app/ldap.py:1526
 msgid "Creation of entry {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1419
+#: lib/pp_admintools/app/ldap.py:1544
 msgid "Creation status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1421
+#: lib/pp_admintools/app/ldap.py:1546
 msgid "Result of creating:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1424
+#: lib/pp_admintools/app/ldap.py:1549
 msgid "Creation of entry {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1430
+#: lib/pp_admintools/app/ldap.py:1555
 msgid "Creation successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1441
+#: lib/pp_admintools/app/ldap.py:1565
 msgid "Applying changes on {uri} to DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1446
+#: lib/pp_admintools/app/ldap.py:1570
 msgid "Simulation mode - changes are not applied."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1452
+#: lib/pp_admintools/app/ldap.py:1583
 msgid "Modification of {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1454 lib/pp_admintools/app/ldap.py:1473
-#: lib/pp_admintools/app/remove_ldap_user.py:449 lib/pp_admintools/app/remove_ldap_user.py:476
-#: lib/pp_admintools/app/remove_ldap_user.py:503 lib/pp_admintools/app/remove_ldap_user.py:534
-#: lib/pp_admintools/app/remove_ldap_user.py:565 lib/pp_admintools/app/remove_ldap_user.py:681
-#: lib/pp_admintools/app/set_ldap_password.py:518
+#: lib/pp_admintools/app/ldap.py:1585 lib/pp_admintools/app/ldap.py:1607
+#: lib/pp_admintools/app/remove_ldap_user.py:442 lib/pp_admintools/app/remove_ldap_user.py:469
+#: lib/pp_admintools/app/remove_ldap_user.py:496 lib/pp_admintools/app/remove_ldap_user.py:527
+#: lib/pp_admintools/app/remove_ldap_user.py:558 lib/pp_admintools/app/remove_ldap_user.py:674
+#: lib/pp_admintools/app/set_ldap_password.py:510
 msgid "Changes:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1466
+#: lib/pp_admintools/app/ldap.py:1600
 msgid "Modification status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1468
+#: lib/pp_admintools/app/ldap.py:1602
 msgid "Result of modifying:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1471
+#: lib/pp_admintools/app/ldap.py:1605
 msgid "Modification of {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1476
+#: lib/pp_admintools/app/ldap.py:1610
 msgid "Modification successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1486
+#: lib/pp_admintools/app/ldap.py:1619
 msgid "Deleting LDAP entry {dn!r} on {uri} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1491
+#: lib/pp_admintools/app/ldap.py:1624
 msgid "Simulation mode - deletion will not be executed."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1497
+#: lib/pp_admintools/app/ldap.py:1637
 msgid "Deletion of {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1502
+#: lib/pp_admintools/app/ldap.py:1645
 msgid "Deletion status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1504
+#: lib/pp_admintools/app/ldap.py:1647
 msgid "Result of deletion:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1507
+#: lib/pp_admintools/app/ldap.py:1650
 msgid "Deletion of {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1511
+#: lib/pp_admintools/app/ldap.py:1654
 msgid "Deletion successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1660
+#: lib/pp_admintools/app/ldap.py:1831
 msgid "Reading password file {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1691
+#: lib/pp_admintools/app/ldap.py:1862
 msgid "Could not detect RDN from DN {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1695
+#: lib/pp_admintools/app/ldap.py:1866
 msgid "Found RDN attribute {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1701
+#: lib/pp_admintools/app/ldap.py:1872
 msgid "RDN attribute {!r} will not be touched."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1707 lib/pp_admintools/app/ldap.py:1726
-#: lib/pp_admintools/app/ldap.py:1804
+#: lib/pp_admintools/app/ldap.py:1878 lib/pp_admintools/app/ldap.py:1897
+#: lib/pp_admintools/app/ldap.py:1975
 msgid "Attribute {!r} will not be touched."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1764
+#: lib/pp_admintools/app/ldap.py:1935
 msgid "Values to removed from attribute {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:95
+#: lib/pp_admintools/app/mail.py:88
 msgid "Got invalid SMTP port number {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:113
+#: lib/pp_admintools/app/mail.py:106
 msgid "Got invalid mail from address {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:136
+#: lib/pp_admintools/app/mail.py:129
 msgid "Got invalid recipient mail addresses:"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:164
+#: lib/pp_admintools/app/mail.py:157
 msgid "Got invalid cc mail addresses:"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:179
+#: lib/pp_admintools/app/mail.py:172
 msgid "Got invalid reply mail address {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:190
+#: lib/pp_admintools/app/mail.py:183
 msgid "Mailing options"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:205 lib/pp_admintools/app/mail.py:213
-#: lib/pp_admintools/app/mail.py:219 lib/pp_admintools/app/mail.py:225
+#: lib/pp_admintools/app/mail.py:198 lib/pp_admintools/app/mail.py:206
+#: lib/pp_admintools/app/mail.py:212 lib/pp_admintools/app/mail.py:218
 msgid "ADDRESS"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:206
+#: lib/pp_admintools/app/mail.py:199
 msgid "Sender mail address for mails generated by this script. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:214
+#: lib/pp_admintools/app/mail.py:207
 msgid "Mail addresses of all recipients for mails generated by this script."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:220
+#: lib/pp_admintools/app/mail.py:213
 msgid "Mail addresses of all CC recipients for mails generated by this script."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:226
+#: lib/pp_admintools/app/mail.py:219
 msgid "Reply mail address for mails generated by this script."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:233
+#: lib/pp_admintools/app/mail.py:226
 msgid "METHOD"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:234
+#: lib/pp_admintools/app/mail.py:227
 msgid "Method for sending the mails generated by this script. Valid values: {v}, default: {d!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:242
+#: lib/pp_admintools/app/mail.py:235
 msgid "SERVER"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:243
+#: lib/pp_admintools/app/mail.py:236
 msgid ""
 "Mail server for submitting generated by this script if the mail method of this script is 'smtp'."
 " Default: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:252
+#: lib/pp_admintools/app/mail.py:245
 msgid ""
 "The port to use for submitting generated by this script if the mail method of this script is "
 "'smtp'. Default: {}."
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:261
+#: lib/pp_admintools/app/mail.py:254
 msgid "Got command line arguments:"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:278
+#: lib/pp_admintools/app/mail.py:271
 msgid "Mail to send:"
 msgstr ""
 
-#: lib/pp_admintools/app/mail.py:311
+#: lib/pp_admintools/app/mail.py:304
 msgid "Did not found sendmail executable."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:100
+#: lib/pp_admintools/app/mirror_ldap.py:92
 msgid ""
 "Mirror the content of a complete LDAP instance (server or cluster) to another instance. This "
 "will be done first by clearing the target instance, then copying structural entries from the "
@@ -1437,504 +1447,504 @@ msgid ""
 "values."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:108
+#: lib/pp_admintools/app/mirror_ldap.py:100
 msgid "Do not execute a countdown before starting the application."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:119
+#: lib/pp_admintools/app/mirror_ldap.py:111
 msgid "Miroring options"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:124
+#: lib/pp_admintools/app/mirror_ldap.py:116
 msgid ""
 "Number of seconds to wait after each write operation. Given as a float value, and if set to "
 "zero, there is no waiting after a write. (default: {:.1f})"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:131 lib/pp_admintools/app/mk_ldap_passwd.py:121
+#: lib/pp_admintools/app/mirror_ldap.py:123 lib/pp_admintools/app/mk_ldap_passwd.py:113
 msgid "NUMBER"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:133
+#: lib/pp_admintools/app/mirror_ldap.py:125
 msgid "Limiting the mirroring to the first NUMBER entries. This option is valid only in simulation mode."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:140
+#: lib/pp_admintools/app/mirror_ldap.py:132
 msgid "Mirror only structural entries (entries with childs)."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:161
+#: lib/pp_admintools/app/mirror_ldap.py:153
 msgid "Limiting the number of entries for mirroring to {} entries."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:165
+#: lib/pp_admintools/app/mirror_ldap.py:157
 msgid "Limition the number of entries for mirroring may only be done in simulation mode."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:180
+#: lib/pp_admintools/app/mirror_ldap.py:172
 msgid "Data to modify:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:182
+#: lib/pp_admintools/app/mirror_ldap.py:174
 msgid "No data to modify found."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:190
+#: lib/pp_admintools/app/mirror_ldap.py:182
 msgid "Did not found {tgt!r} in {e}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:202
+#: lib/pp_admintools/app/mirror_ldap.py:194
 msgid "Checking mirror source instance for target instance {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:206
+#: lib/pp_admintools/app/mirror_ldap.py:198
 msgid "Got {!r} as the mirror source instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:209 lib/pp_admintools/app/mirror_ldap.py:218
-#: lib/pp_admintools/app/mirror_ldap.py:229
+#: lib/pp_admintools/app/mirror_ldap.py:201 lib/pp_admintools/app/mirror_ldap.py:210
+#: lib/pp_admintools/app/mirror_ldap.py:221
 msgid "Error in configuration:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:210
+#: lib/pp_admintools/app/mirror_ldap.py:202
 msgid "the source LDAP instance {src!r} for mirroring to {tgt!r} does not exists."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:219
+#: lib/pp_admintools/app/mirror_ldap.py:211
 msgid "the source LDAP instance {src!r} must not be the same like the target instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:230
+#: lib/pp_admintools/app/mirror_ldap.py:222
 msgid ""
 "the base DN {src_dn!r} of the source instance {src!r} does not match the base DN {tgt_dn!r} of "
 "the target instance {tgt!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:246
+#: lib/pp_admintools/app/mirror_ldap.py:238
 msgid "Start mirroring LDAP instance {src} ({src_url}) to instance {tgt} ({tgt_url}) [{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:259 lib/pp_admintools/app/mirror_ldap.py:347
+#: lib/pp_admintools/app/mirror_ldap.py:251 lib/pp_admintools/app/mirror_ldap.py:340
 msgid "Interrupted on demand."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:262 lib/pp_admintools/app/mirror_ldap.py:269
+#: lib/pp_admintools/app/mirror_ldap.py:254 lib/pp_admintools/app/mirror_ldap.py:261
 msgid "Start mirroring LDAP instance {src!r} ({src_url}) to instance {tgt!r} ({tgt_url}) ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:282
+#: lib/pp_admintools/app/mirror_ldap.py:274
 msgid "Waiting one second after write actions."
 msgid_plural "Waiting {} seconds after write actions."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:287
+#: lib/pp_admintools/app/mirror_ldap.py:279
 msgid "Don't waiting after simulated write actions."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:289
+#: lib/pp_admintools/app/mirror_ldap.py:281
 msgid "Don't waiting after write actions, because {} was set to zero."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:292
+#: lib/pp_admintools/app/mirror_ldap.py:284
 msgid "The timeout on LDAP operations is {} seconds."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:306 lib/pp_admintools/app/mirror_ldap.py:324
+#: lib/pp_admintools/app/mirror_ldap.py:298 lib/pp_admintools/app/mirror_ldap.py:316
 msgid "{:>5} entry deleted."
 msgid_plural "{:>5} entries deleted."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:309 lib/pp_admintools/app/mirror_ldap.py:329
+#: lib/pp_admintools/app/mirror_ldap.py:301 lib/pp_admintools/app/mirror_ldap.py:321
 msgid "{:>5} entry updated."
 msgid_plural "{:>5} entries updated."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:312 lib/pp_admintools/app/mirror_ldap.py:334
+#: lib/pp_admintools/app/mirror_ldap.py:304 lib/pp_admintools/app/mirror_ldap.py:326
 msgid "{:>5} entry created."
 msgid_plural "{:>5} entries created."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:319
+#: lib/pp_admintools/app/mirror_ldap.py:311
 msgid "Changes total:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:342 lib/pp_admintools/app/mirror_ldap.py:347
+#: lib/pp_admintools/app/mirror_ldap.py:335 lib/pp_admintools/app/mirror_ldap.py:340
 msgid "Got a {}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:359
+#: lib/pp_admintools/app/mirror_ldap.py:352
 msgid "Trying to get DNs of all entries in the source LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:372 lib/pp_admintools/app/mirror_ldap.py:426
+#: lib/pp_admintools/app/mirror_ldap.py:365 lib/pp_admintools/app/mirror_ldap.py:419
 msgid "Found DNs in instance {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:389
+#: lib/pp_admintools/app/mirror_ldap.py:382
 msgid "Found total one entry in source LDAP"
 msgid_plural "Found {no} entries in source LDAP"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:393
+#: lib/pp_admintools/app/mirror_ldap.py:386
 msgid "one structural entry in source LDAP"
 msgid_plural "{no} structural entries in source LDAP"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:397
+#: lib/pp_admintools/app/mirror_ldap.py:390
 msgid "one non-structural entry in source LDAP."
 msgid_plural "{no} non-structural entries in source LDAP."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:405 lib/pp_admintools/app/mirror_ldap.py:459
+#: lib/pp_admintools/app/mirror_ldap.py:398 lib/pp_admintools/app/mirror_ldap.py:452
 msgid "Found structural DNs in instance {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:413
+#: lib/pp_admintools/app/mirror_ldap.py:406
 msgid "Trying to get DNs of all entries in the target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:443
+#: lib/pp_admintools/app/mirror_ldap.py:436
 msgid "Found total one entry in target LDAP"
 msgid_plural "Found {no} entries in target LDAP"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:447
+#: lib/pp_admintools/app/mirror_ldap.py:440
 msgid "one structural entry in target LDAP"
 msgid_plural "{no} structural entries in target LDAP"
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:451
+#: lib/pp_admintools/app/mirror_ldap.py:444
 msgid "one non-structural entry in target LDAP."
 msgid_plural "{no} non-structural entries in target LDAP."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:466
+#: lib/pp_admintools/app/mirror_ldap.py:459
 msgid ""
 "Evaluating DNs of all target entries, which have to be synchronized, instead of removing and "
 "recreating them."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:524
+#: lib/pp_admintools/app/mirror_ldap.py:517
 msgid "Removing non structural entries from target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:540 lib/pp_admintools/app/mirror_ldap.py:601
+#: lib/pp_admintools/app/mirror_ldap.py:533 lib/pp_admintools/app/mirror_ldap.py:594
 msgid "Entry {!r} exists on the source instance, will not be removed."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:546
+#: lib/pp_admintools/app/mirror_ldap.py:539
 msgid "Entry {!r} is a structural entry, will not be removed at this point."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:553 lib/pp_admintools/app/mirror_ldap.py:607
-#: lib/pp_admintools/app/mirror_ldap.py:672 lib/pp_admintools/app/mirror_ldap.py:973
+#: lib/pp_admintools/app/mirror_ldap.py:546 lib/pp_admintools/app/mirror_ldap.py:600
+#: lib/pp_admintools/app/mirror_ldap.py:665 lib/pp_admintools/app/mirror_ldap.py:966
 msgid "Entry {!r} is set to be kept."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:565
+#: lib/pp_admintools/app/mirror_ldap.py:558
 msgid "Removed one not structural entry in target LDAP instance."
 msgid_plural "Removed {no} not structural entries in target LDAP instance."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:570
+#: lib/pp_admintools/app/mirror_ldap.py:563
 msgid "None not structural entries in target LDAP instance removed."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:584
+#: lib/pp_admintools/app/mirror_ldap.py:577
 msgid "Removing structural entries from target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:612
+#: lib/pp_admintools/app/mirror_ldap.py:605
 msgid "Entry {!r} is set to be synchronized."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:624
+#: lib/pp_admintools/app/mirror_ldap.py:617
 msgid "Removed one structural entry in target LDAP instance."
 msgid_plural "Removed {no} structural entries in target LDAP instance."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:629
+#: lib/pp_admintools/app/mirror_ldap.py:622
 msgid "None structural entries in target LDAP instance removed."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:637
+#: lib/pp_admintools/app/mirror_ldap.py:630
 msgid "Mirroring structural entries from source to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:655
+#: lib/pp_admintools/app/mirror_ldap.py:648
 msgid "Mirrored one structural entry in target LDAP instance."
 msgid_plural "Mirrored {no} structural entries to target LDAP instance."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:660
+#: lib/pp_admintools/app/mirror_ldap.py:653
 msgid "Mirrored no structural entries to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:676 lib/pp_admintools/app/mirror_ldap.py:979
+#: lib/pp_admintools/app/mirror_ldap.py:669 lib/pp_admintools/app/mirror_ldap.py:972
 msgid "Mirroring entry {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:682 lib/pp_admintools/app/mirror_ldap.py:984
+#: lib/pp_admintools/app/mirror_ldap.py:675 lib/pp_admintools/app/mirror_ldap.py:977
 msgid "Error on reading entry {!r} from source:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:686 lib/pp_admintools/app/mirror_ldap.py:987
+#: lib/pp_admintools/app/mirror_ldap.py:679 lib/pp_admintools/app/mirror_ldap.py:980
 msgid "Did not found {!r} in the source LDAP."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:708 lib/pp_admintools/app/mirror_ldap.py:998
+#: lib/pp_admintools/app/mirror_ldap.py:701 lib/pp_admintools/app/mirror_ldap.py:991
 msgid "Error on reading entry {!r} from target:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:723 lib/pp_admintools/app/mirror_ldap.py:1013
+#: lib/pp_admintools/app/mirror_ldap.py:716 lib/pp_admintools/app/mirror_ldap.py:1006
 msgid "Modifying entry {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:724 lib/pp_admintools/app/mirror_ldap.py:1014
+#: lib/pp_admintools/app/mirror_ldap.py:717 lib/pp_admintools/app/mirror_ldap.py:1007
 msgid "Got modify data for DN {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:734 lib/pp_admintools/app/mirror_ldap.py:1025
+#: lib/pp_admintools/app/mirror_ldap.py:727 lib/pp_admintools/app/mirror_ldap.py:1018
 msgid "No changes necessary on DN {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:738 lib/pp_admintools/app/mirror_ldap.py:1001
+#: lib/pp_admintools/app/mirror_ldap.py:731 lib/pp_admintools/app/mirror_ldap.py:994
 msgid "Target entry {!r} not found."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:741
+#: lib/pp_admintools/app/mirror_ldap.py:734
 msgid "Creating entry {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:742
+#: lib/pp_admintools/app/mirror_ldap.py:735
 msgid "Got create data for DN {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:791
+#: lib/pp_admintools/app/mirror_ldap.py:784
 msgid "Modifying source data for {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:802
+#: lib/pp_admintools/app/mirror_ldap.py:795
 msgid "Replacing attribute {a!r} in entry {dn!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:848
+#: lib/pp_admintools/app/mirror_ldap.py:841
 msgid "Deleting attribute {a!r} from entry {dn!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:885
+#: lib/pp_admintools/app/mirror_ldap.py:878
 msgid "Adding attribute {a!r} to entry {dn!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:924
+#: lib/pp_admintools/app/mirror_ldap.py:917
 msgid "Mirroring non-structural entries from source to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:945
+#: lib/pp_admintools/app/mirror_ldap.py:938
 msgid "Mirrored one non-structural entry in target LDAP instance."
 msgid_plural "Mirrored {no} non-structural entries to target LDAP instance."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:950
+#: lib/pp_admintools/app/mirror_ldap.py:943
 msgid "Mirrored none not-structural entries to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:959
+#: lib/pp_admintools/app/mirror_ldap.py:952
 msgid "Mirroring members in group entries from source to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:1030
+#: lib/pp_admintools/app/mirror_ldap.py:1023
 msgid "Mirrored one group entry in target LDAP instance."
 msgid_plural "Mirrored {no} group entries to target LDAP instance."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:1035
+#: lib/pp_admintools/app/mirror_ldap.py:1028
 msgid "Mirrored no group entries to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:55
+#: lib/pp_admintools/app/mk_ldap_passwd.py:47
 msgid "Encrypting the password with a defined password schema."
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:99
+#: lib/pp_admintools/app/mk_ldap_passwd.py:91
 msgid "The schema (hashing method) to use to hash the new password. Default: {default!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:104
+#: lib/pp_admintools/app/mk_ldap_passwd.py:96
 msgid "TYPE"
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:110
+#: lib/pp_admintools/app/mk_ldap_passwd.py:102
 msgid "Like {}"
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:115 lib/pp_admintools/app/set_ldap_password.py:208
+#: lib/pp_admintools/app/mk_ldap_passwd.py:107 lib/pp_admintools/app/set_ldap_password.py:200
 msgid ""
 "A possible salt to use on hashing the password. Caution: not all hashing schemes are supporting "
 "a salt."
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:122 lib/pp_admintools/app/set_ldap_password.py:215
+#: lib/pp_admintools/app/mk_ldap_passwd.py:114 lib/pp_admintools/app/set_ldap_password.py:207
 msgid ""
 "The number of calculation rounds to use on hashing the password. Caution: not all hashing "
 "schemes are supporting calculation rounds."
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:127
+#: lib/pp_admintools/app/mk_ldap_passwd.py:119
 msgid ""
 "The password to hash. If not given and no file desriptor was given, then the password will be "
 "requested on TTY."
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:175
+#: lib/pp_admintools/app/mk_ldap_passwd.py:167
 msgid "Got no password by {}."
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:178
+#: lib/pp_admintools/app/mk_ldap_passwd.py:170
 msgid "Password:"
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:179 lib/pp_admintools/app/set_ldap_password.py:305
-#: lib/pp_admintools/app/set_ldap_password.py:325
+#: lib/pp_admintools/app/mk_ldap_passwd.py:171 lib/pp_admintools/app/set_ldap_password.py:297
+#: lib/pp_admintools/app/set_ldap_password.py:317
 msgid "Repeat password:"
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:193
+#: lib/pp_admintools/app/mk_ldap_passwd.py:185
 msgid "Encrypting password with hashing schema '{schema}' ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mk_ldap_passwd.py:200 lib/pp_admintools/app/set_ldap_password.py:478
+#: lib/pp_admintools/app/mk_ldap_passwd.py:192 lib/pp_admintools/app/set_ldap_password.py:470
 msgid "Used schema: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:103 lib/pp_admintools/app/pdns.py:187
+#: lib/pp_admintools/app/pdns.py:93 lib/pp_admintools/app/pdns.py:177
 msgid "Configuration not available."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:117
+#: lib/pp_admintools/app/pdns.py:107
 msgid "Invalid API key {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:129
+#: lib/pp_admintools/app/pdns.py:119
 msgid "Invalid API host {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:142
+#: lib/pp_admintools/app/pdns.py:132
 msgid "Invalid API port {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:154
+#: lib/pp_admintools/app/pdns.py:144
 msgid "Invalid API server name {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:172 lib/pp_admintools/app/pdns.py:175
+#: lib/pp_admintools/app/pdns.py:162 lib/pp_admintools/app/pdns.py:165
 msgid "Invalid instance {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:183
+#: lib/pp_admintools/app/pdns.py:173
 msgid "Evaluating instance {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:191
+#: lib/pp_admintools/app/pdns.py:181
 msgid "PDNS instance {!r} is not configured."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:240
+#: lib/pp_admintools/app/pdns.py:230
 msgid "PowerDNS API options"
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:249
+#: lib/pp_admintools/app/pdns.py:239
 msgid "Select, which PowerDNS instance to use. Valid values: {v}, default: {d!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:257 lib/pp_admintools/app/pdns.py:263
-#: lib/pp_admintools/app/pdns.py:269
+#: lib/pp_admintools/app/pdns.py:247 lib/pp_admintools/app/pdns.py:253
+#: lib/pp_admintools/app/pdns.py:259
 msgid "Using the {!r} PowerDNS instance."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:277
+#: lib/pp_admintools/app/pdns.py:267
 msgid "Which port to connect to PowerDNS API, default: {}."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:281
+#: lib/pp_admintools/app/pdns.py:271
 msgid "The timeout in seconds for the communication with the PowerDNS-API. Default: {} seconds."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:330
+#: lib/pp_admintools/app/pdns.py:320
 msgid "No path given for{d} [{s}]/{k} in configuration."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:337
+#: lib/pp_admintools/app/pdns.py:327
 msgid "Path {p!r} for{d} [{s}]/{k} in configuration must be an absolute path."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:359 lib/pp_admintools/app/pdns.py:397
-#: lib/pp_admintools/app/pdns.py:422
+#: lib/pp_admintools/app/pdns.py:349 lib/pp_admintools/app/pdns.py:387
+#: lib/pp_admintools/app/pdns.py:412
 msgid "Executing {} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:377
+#: lib/pp_admintools/app/pdns.py:367
 msgid "Timeout of {t} seconds too big, at most {m} seconds are allowed."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:381
+#: lib/pp_admintools/app/pdns.py:371
 msgid "A timeout may not be negative."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:399
+#: lib/pp_admintools/app/pdns.py:389
 msgid "Setting Loglevel of the requests module to {}."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:412
+#: lib/pp_admintools/app/pdns.py:402
 msgid "Executing nothing ..."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:432 lib/pp_admintools/app/pdns.py:461
-#: lib/pp_admintools/app/pdns.py:472 lib/pp_admintools/app/pdns.py:486
+#: lib/pp_admintools/app/pdns.py:422 lib/pp_admintools/app/pdns.py:451
+#: lib/pp_admintools/app/pdns.py:462 lib/pp_admintools/app/pdns.py:476
 msgid "The PDNS server object does not exists."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:434 lib/pp_admintools/app/pdns.py:463
-#: lib/pp_admintools/app/pdns.py:474 lib/pp_admintools/app/pdns.py:488
+#: lib/pp_admintools/app/pdns.py:424 lib/pp_admintools/app/pdns.py:453
+#: lib/pp_admintools/app/pdns.py:464 lib/pp_admintools/app/pdns.py:478
 msgid "The PDNS server object is not initialized."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:441
+#: lib/pp_admintools/app/pdns.py:431
 msgid "Got a {} during evaluating the PDNS server version from API:"
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:496
+#: lib/pp_admintools/app/pdns.py:486
 msgid "Trying to get complete information about zone {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:502
+#: lib/pp_admintools/app/pdns.py:492
 msgid "The given zone {} was not found."
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:509
+#: lib/pp_admintools/app/pdns.py:499
 msgid "Got a response:"
 msgstr ""
 
-#: lib/pp_admintools/app/pdns.py:514
+#: lib/pp_admintools/app/pdns.py:504
 msgid "Zone object:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:77
+#: lib/pp_admintools/app/remove_ldap_user.py:70
 msgid ""
 "Disables or removes the given users from LDAP. If disabling, then the user will not be really "
 "removed, but disabled by locking the password, setting all status flags to {inact!r}, assigning "
@@ -1942,374 +1952,413 @@ msgid ""
 "user will be really removed from LDAP."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:137
+#: lib/pp_admintools/app/remove_ldap_user.py:130
 msgid "This is the default."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:138
+#: lib/pp_admintools/app/remove_ldap_user.py:131
 msgid "This is mutually exclusive to {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:140
+#: lib/pp_admintools/app/remove_ldap_user.py:133
 msgid "Deactivating the user instead of removing it."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:147
+#: lib/pp_admintools/app/remove_ldap_user.py:140
 msgid "Removing the user from LDAP."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:154
+#: lib/pp_admintools/app/remove_ldap_user.py:147
 msgid "Don't remove all mail addresses of the users to remove from all mailing lists."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:162 lib/pp_admintools/app/set_ldap_password.py:201
-#: lib/pp_admintools/app/set_ldap_password.py:204
+#: lib/pp_admintools/app/remove_ldap_user.py:155 lib/pp_admintools/app/set_ldap_password.py:193
+#: lib/pp_admintools/app/set_ldap_password.py:196
 msgid "USER"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:163
+#: lib/pp_admintools/app/remove_ldap_user.py:156
 msgid ""
 "The user, which should be deactivated or removed. They may be given by their Uid (the "
 "alphanumeric POSIX name), their mail address or their LDAP DN (be aware, that this may be "
 "different in the particular LDAP instances)."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:184
+#: lib/pp_admintools/app/remove_ldap_user.py:177
 msgid "No users to remove given."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:239
+#: lib/pp_admintools/app/remove_ldap_user.py:232
 msgid "All given users were not found in any LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:244
+#: lib/pp_admintools/app/remove_ldap_user.py:237
 msgid "Evaluated DNs to remove:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:253
+#: lib/pp_admintools/app/remove_ldap_user.py:246
 msgid "Start disabling user entries in:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:255
+#: lib/pp_admintools/app/remove_ldap_user.py:248
 msgid "Start removing user entries in:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:259
+#: lib/pp_admintools/app/remove_ldap_user.py:252
 msgid "Start disabling user entries ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:261
+#: lib/pp_admintools/app/remove_ldap_user.py:254
 msgid "Start removing user entries ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:276
+#: lib/pp_admintools/app/remove_ldap_user.py:269
 msgid "Do you really want to deactivate the following users?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:278
+#: lib/pp_admintools/app/remove_ldap_user.py:271
 msgid "Do you really want to remove the following users?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:304
+#: lib/pp_admintools/app/remove_ldap_user.py:297
 msgid "Deactivate [{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:306
+#: lib/pp_admintools/app/remove_ldap_user.py:299
 msgid "Remove [{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:314
+#: lib/pp_admintools/app/remove_ldap_user.py:307
 msgid "Evaluating DNs of the user {!r} to remove ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:328 lib/pp_admintools/app/set_ldap_password.py:431
+#: lib/pp_admintools/app/remove_ldap_user.py:321 lib/pp_admintools/app/set_ldap_password.py:423
 msgid "Got DN {dn!r} for user {user!r} in LDAP instance {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:335 lib/pp_admintools/app/set_ldap_password.py:436
+#: lib/pp_admintools/app/remove_ldap_user.py:328 lib/pp_admintools/app/set_ldap_password.py:428
 msgid "Found {nr} entries for user {u!r} in LDAP instance {i}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:347 lib/pp_admintools/app/set_ldap_password.py:450
+#: lib/pp_admintools/app/remove_ldap_user.py:340 lib/pp_admintools/app/set_ldap_password.py:442
 msgid "Did not found user {user!r} in LDAP instance {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:356
+#: lib/pp_admintools/app/remove_ldap_user.py:349
 msgid "Deactivating all given users from {} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:358
+#: lib/pp_admintools/app/remove_ldap_user.py:351
 msgid "Removing all given users from {} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:373
+#: lib/pp_admintools/app/remove_ldap_user.py:366
 msgid "Deactivating user {dn!r} from {inst} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:376
+#: lib/pp_admintools/app/remove_ldap_user.py:369
 msgid "Removing user {dn!r} from {inst} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:382
+#: lib/pp_admintools/app/remove_ldap_user.py:375
 msgid "Attributes of {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:407
+#: lib/pp_admintools/app/remove_ldap_user.py:400
 msgid "{c} on removing user {dn!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:413
+#: lib/pp_admintools/app/remove_ldap_user.py:406
 msgid "User {dn!r} successful deactivated on {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:416
+#: lib/pp_admintools/app/remove_ldap_user.py:409
 msgid "User {dn!r} successful removed from {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:442
+#: lib/pp_admintools/app/remove_ldap_user.py:435
 msgid "Updating user info for {dn!r} on {inst} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:447
+#: lib/pp_admintools/app/remove_ldap_user.py:440
 msgid "{c} on deactivating user {dn!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:463
+#: lib/pp_admintools/app/remove_ldap_user.py:456
 msgid "Did not found any group memberships of {dn!r} in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:469 lib/pp_admintools/app/remove_ldap_user.py:496
-#: lib/pp_admintools/app/remove_ldap_user.py:527 lib/pp_admintools/app/remove_ldap_user.py:558
+#: lib/pp_admintools/app/remove_ldap_user.py:462 lib/pp_admintools/app/remove_ldap_user.py:489
+#: lib/pp_admintools/app/remove_ldap_user.py:520 lib/pp_admintools/app/remove_ldap_user.py:551
 msgid "Removing user {u!r} from group {g!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:474 lib/pp_admintools/app/remove_ldap_user.py:501
-#: lib/pp_admintools/app/remove_ldap_user.py:532 lib/pp_admintools/app/remove_ldap_user.py:563
+#: lib/pp_admintools/app/remove_ldap_user.py:467 lib/pp_admintools/app/remove_ldap_user.py:494
+#: lib/pp_admintools/app/remove_ldap_user.py:525 lib/pp_admintools/app/remove_ldap_user.py:556
 msgid "{c} on removing user {dn!r} from group {g!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:490
+#: lib/pp_admintools/app/remove_ldap_user.py:483
 msgid "Did not found any unique group memberships of {dn!r} in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:514
+#: lib/pp_admintools/app/remove_ldap_user.py:507
 msgid "Deleting user {uid!r} from all POSIX groups in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:521
+#: lib/pp_admintools/app/remove_ldap_user.py:514
 msgid "Did not found any POSIX group memberships of {uid!r} in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:545
+#: lib/pp_admintools/app/remove_ldap_user.py:538
 msgid "Deleting user {uid!r} from all sudo groups in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:552
+#: lib/pp_admintools/app/remove_ldap_user.py:545
 msgid "Did not found any sudo group memberships of {uid!r} in {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:585
+#: lib/pp_admintools/app/remove_ldap_user.py:578
 msgid "No mail addresses found to remove for user {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:589
+#: lib/pp_admintools/app/remove_ldap_user.py:582
 msgid "Trying to remove the following mail addresses from mailing lists:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:609
+#: lib/pp_admintools/app/remove_ldap_user.py:602
 msgid "Ignoring mailing list {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:614
+#: lib/pp_admintools/app/remove_ldap_user.py:607
 msgid "Found DNs of mailing lists:"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:619
+#: lib/pp_admintools/app/remove_ldap_user.py:612
 msgid "Did not found any mail groups including address {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:632
+#: lib/pp_admintools/app/remove_ldap_user.py:625
 msgid "Removing address {address!r} from mailing list {dn!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:671
+#: lib/pp_admintools/app/remove_ldap_user.py:664
 msgid "There are no changes for mail {mail!r} on {dn!r}?!?"
 msgstr ""
 
-#: lib/pp_admintools/app/remove_ldap_user.py:679
+#: lib/pp_admintools/app/remove_ldap_user.py:672
 msgid "{c} on removing mail {mail!r} from {dn!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:89
+#: lib/pp_admintools/app/set_ldap_password.py:81
 msgid ""
 "Changing the password of the given user. If no user was given, then {app} tries to use the name "
 "of the user logged in on the controlling terminal."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:132
+#: lib/pp_admintools/app/set_ldap_password.py:124
 msgid "Use {} as the current user password."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:137
+#: lib/pp_admintools/app/set_ldap_password.py:129
 msgid ""
 "Prompt for current user password. This is used instead of specifying the password on the command"
 " line."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:145
+#: lib/pp_admintools/app/set_ldap_password.py:137
 msgid "Use contents of {} as the current user password."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:150
+#: lib/pp_admintools/app/set_ldap_password.py:142
 msgid "Use {} as the new user password. If not given, it will be asked for it."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:158
+#: lib/pp_admintools/app/set_ldap_password.py:150
 msgid "Do not check the quality of the new password with the {} library."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:173
+#: lib/pp_admintools/app/set_ldap_password.py:165
 msgid ""
 "The schema (hashing method) to use to hash the new password. It is possible to give here the "
 "value {val_list!r}, then all possible schemes are shown and exit. Default: {default!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:178
+#: lib/pp_admintools/app/set_ldap_password.py:170
 msgid "If you are not using an admin account, then the password will hashed only by the default schema."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:187
+#: lib/pp_admintools/app/set_ldap_password.py:179
 msgid ""
 "The user, which password in the given LDAP instance should be changed. It may be given by its "
 "Uid (the alphanumeric POSIX name), its mail address or its LDAP DN."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:192
+#: lib/pp_admintools/app/set_ldap_password.py:184
 msgid "If not given, then your current user name {!r} will be used."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:195
+#: lib/pp_admintools/app/set_ldap_password.py:187
 msgid ""
 "If you are using a readonly LDAP instance or an instance w/o admin access, then you must provide"
 " somehow the current password of the user to change."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:261
+#: lib/pp_admintools/app/set_ldap_password.py:253
 msgid "Could not detect your current login name."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:266
+#: lib/pp_admintools/app/set_ldap_password.py:258
 msgid "The user {!r} will never be managed by LDAP."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:300
+#: lib/pp_admintools/app/set_ldap_password.py:292
 msgid "Using LDAP instance {inst!r} - {url}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:304
+#: lib/pp_admintools/app/set_ldap_password.py:296
 msgid "Current password of user {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:318
+#: lib/pp_admintools/app/set_ldap_password.py:310
 msgid "Non admin users must use the default schema {!r} for hashing their password."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:324
+#: lib/pp_admintools/app/set_ldap_password.py:316
 msgid "New password of user {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:330
+#: lib/pp_admintools/app/set_ldap_password.py:322
 msgid "Checking the quality of the new password was disabled."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:360
+#: lib/pp_admintools/app/set_ldap_password.py:352
 msgid "Unbinding user connection from LDAP server {} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:371
+#: lib/pp_admintools/app/set_ldap_password.py:363
 msgid "Testing connect to LDAP-Server {url} with current user {dn!r} and password ..."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:383
+#: lib/pp_admintools/app/set_ldap_password.py:375
 msgid "Successful connected as {dn!r} to {url}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:389
+#: lib/pp_admintools/app/set_ldap_password.py:381
 msgid "Could not connect to {url} as {dn!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:400
+#: lib/pp_admintools/app/set_ldap_password.py:392
 msgid "Trying to get current password hash of user {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:438
+#: lib/pp_admintools/app/set_ldap_password.py:430
 msgid ""
 "Please use another username, or use the correct DN from the following list as a parameter for "
 "this script instead of the username:"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:455
+#: lib/pp_admintools/app/set_ldap_password.py:447
 msgid "Changing the password of user {dn!r} in LDAP instance {inst}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:462
+#: lib/pp_admintools/app/set_ldap_password.py:454
 msgid "Setting password of '{dn}' with hashing schema '{schema}' ..."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:468
+#: lib/pp_admintools/app/set_ldap_password.py:460
 msgid "Current password hash: '{}'."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:471
+#: lib/pp_admintools/app/set_ldap_password.py:463
 msgid "The user '{}' has currently no password."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:484
+#: lib/pp_admintools/app/set_ldap_password.py:476
 msgid "New password hash: '{}'."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:488
+#: lib/pp_admintools/app/set_ldap_password.py:480
 msgid "Apply new password? [{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:494
+#: lib/pp_admintools/app/set_ldap_password.py:486
 msgid "Do not setting password for {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:510
+#: lib/pp_admintools/app/set_ldap_password.py:502
 msgid "Setting password ..."
 msgstr ""
 
-#: lib/pp_admintools/app/set_ldap_password.py:516
+#: lib/pp_admintools/app/set_ldap_password.py:508
 msgid "{c} on setting password of user {dn!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/argparse_actions.py:51
+#: lib/pp_admintools/argparse_actions.py:56
 msgid "Value {v!r} for a {what} port is invalid:"
 msgstr ""
 
-#: lib/pp_admintools/argparse_actions.py:56
+#: lib/pp_admintools/argparse_actions.py:61
 msgid "Value {v!r} for a {what} port must be greater than 0 and less than {max}."
 msgstr ""
 
-#: lib/pp_admintools/argparse_actions.py:76 lib/pp_admintools/argparse_actions.py:107
+#: lib/pp_admintools/argparse_actions.py:89 lib/pp_admintools/argparse_actions.py:164
 msgid "Got a {c} for converting {v!r} into an integer value: {e}"
 msgstr ""
 
-#: lib/pp_admintools/argparse_actions.py:81
+#: lib/pp_admintools/argparse_actions.py:94 lib/pp_admintools/argparse_actions.py:131
 msgid "The option must not be negative (given: {})."
 msgstr ""
 
-#: lib/pp_admintools/argparse_actions.py:113 lib/pp_admintools/argparse_actions.py:151
+#: lib/pp_admintools/argparse_actions.py:98 lib/pp_admintools/argparse_actions.py:135
+msgid "The option must not be zero."
+msgstr ""
+
+#: lib/pp_admintools/argparse_actions.py:126 lib/pp_admintools/argparse_actions.py:218
+msgid "Got a {c} for converting {v!r} into a float value: {e}"
+msgstr ""
+
+#: lib/pp_admintools/argparse_actions.py:171 lib/pp_admintools/argparse_actions.py:225
 msgid "The option must be greater or equal to {m} (given: {v})."
 msgstr ""
 
-#: lib/pp_admintools/argparse_actions.py:119 lib/pp_admintools/argparse_actions.py:156
+#: lib/pp_admintools/argparse_actions.py:176 lib/pp_admintools/argparse_actions.py:230
+msgid "The option must be greater than {m} (given: {v})."
+msgstr ""
+
+#: lib/pp_admintools/argparse_actions.py:183 lib/pp_admintools/argparse_actions.py:237
 msgid "The option must be less or equal to {m} (given: {v})."
 msgstr ""
 
-#: lib/pp_admintools/argparse_actions.py:146
-msgid "Got a {c} for converting {v!r} into a float value: {e}"
+#: lib/pp_admintools/argparse_actions.py:188 lib/pp_admintools/argparse_actions.py:242
+msgid "The option must be less than {m} (given: {v})."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:208 lib/pp_admintools/argparse_actions.py:268
+msgid "The path {!r} must be an absolute path."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:212 lib/pp_admintools/app/ldap.py:1834
+#: lib/pp_admintools/argparse_actions.py:274
+msgid "The file {!r} does not exists."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:216 lib/pp_admintools/app/ldap.py:1839
+#: lib/pp_admintools/argparse_actions.py:278
+msgid "The given path {!r} exists, but is not a regular file."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:220 lib/pp_admintools/app/ldap.py:1844
+#: lib/pp_admintools/argparse_actions.py:282
+msgid "The given file {!r} is not readable."
+msgstr ""
+
+#: lib/pp_admintools/argparse_actions.py:304
+msgid "a port number must be greater than zero and less or equal to {}."
+msgstr ""
+
+#: lib/pp_admintools/argparse_actions.py:309
+msgid "Wrong port number {!r}:"
 msgstr ""
 
 #: lib/pp_admintools/config/dns_deploy_zones.py:202 lib/pp_admintools/config/dns_deploy_zones.py:515