]> Frank Brehm's Git Trees - pixelpark/pp-admin-tools.git/commitdiff
Updating translations
authorFrank Brehm <frank.brehm@pixelpark.com>
Fri, 26 Jan 2024 13:24:35 +0000 (14:24 +0100)
committerFrank Brehm <frank.brehm@pixelpark.com>
Fri, 26 Jan 2024 13:24:35 +0000 (14:24 +0100)
locale/de_DE/LC_MESSAGES/pp_admintools.po
locale/en_US/LC_MESSAGES/pp_admintools.po
locale/pp_admintools.pot

index f88297b09b68927d7998225214258867c78f6afb..08e6657b05bc16722bc2da25109a99202a1bbd2a 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-24 14:23+0100\n"
-"PO-Revision-Date: 2024-01-24 14:35+0100\n"
+"POT-Creation-Date: 2024-01-26 14:10+0100\n"
+"PO-Revision-Date: 2024-01-26 14:35+0100\n"
 "Last-Translator: Frank Brehm <frank.brehm@pixelpark.com>\n"
 "Language: de_DE\n"
 "Language-Team: de_DE <solution@pixelpark.com>\n"
@@ -44,8 +44,8 @@ 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:490
-#: lib/pp_admintools/app/mirror_ldap.py:120 lib/pp_admintools/app/pdns.py:285
+#: lib/pp_admintools/app/barracuda_sync.py:149 lib/pp_admintools/app/ldap.py:491
+#: lib/pp_admintools/app/mirror_ldap.py:122 lib/pp_admintools/app/pdns.py:285
 msgid "SECONDS"
 msgstr "SEKUNDEN"
 
@@ -85,10 +85,10 @@ 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:987 lib/pp_admintools/app/ldap.py:1120
-#: lib/pp_admintools/app/ldap.py:1173 lib/pp_admintools/app/ldap.py:1226
-#: lib/pp_admintools/app/ldap.py:1531 lib/pp_admintools/app/ldap.py:1565
-#: lib/pp_admintools/app/ldap.py:1599 lib/pp_admintools/app/ldap.py:1633
+#: lib/pp_admintools/app/ldap.py:999 lib/pp_admintools/app/ldap.py:1132
+#: lib/pp_admintools/app/ldap.py:1185 lib/pp_admintools/app/ldap.py:1238
+#: lib/pp_admintools/app/ldap.py:1543 lib/pp_admintools/app/ldap.py:1577
+#: lib/pp_admintools/app/ldap.py:1611 lib/pp_admintools/app/ldap.py:1645
 msgid "Result:"
 msgstr "Ergebnis:"
 
@@ -294,7 +294,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:1746
+#: lib/pp_admintools/app/barracuda_sync.py:756 lib/pp_admintools/app/ldap.py:1758
 msgid "Values to add to attribute {!r}:"
 msgstr "Werte, die zu Attribut {!r} hinzugefügt werden:"
 
@@ -302,11 +302,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:1767
+#: lib/pp_admintools/app/barracuda_sync.py:777 lib/pp_admintools/app/ldap.py:1779
 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:1770
+#: lib/pp_admintools/app/barracuda_sync.py:780 lib/pp_admintools/app/ldap.py:1782
 msgid "No changes to attribute {!r}."
 msgstr "Keine Änderungen an Attribut {!r}."
 
@@ -364,7 +364,7 @@ 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:332
+#: lib/pp_admintools/app/barracuda_sync.py:972 lib/pp_admintools/app/mirror_ldap.py:352
 msgid "Finished."
 msgstr "Beendet."
 
@@ -577,13 +577,13 @@ msgstr "Möchten Sie die Gruppe '{}' wirklich löschen"
 msgid "[{yes}/{no}]?"
 msgstr "[{yes}/{no}]?"
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:261 lib/pp_admintools/app/ldap.py:366
-#: lib/pp_admintools/app/mirror_ldap.py:240 lib/pp_admintools/app/remove_ldap_user.py:308
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:261 lib/pp_admintools/app/ldap.py:367
+#: 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
 msgid "No"
 msgstr "Nein"
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:261 lib/pp_admintools/app/mirror_ldap.py:240
+#: 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
 msgid "yes"
 msgstr "ja"
@@ -905,7 +905,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:615
+#: lib/pp_admintools/app/duplicate_attribs.py:172 lib/pp_admintools/app/ldap.py:625
 msgid "Used filter:"
 msgstr "Verwendeter Filter:"
 
@@ -913,93 +913,93 @@ 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:124 lib/pp_admintools/app/ldap.py:297
+#: lib/pp_admintools/app/ldap.py:125 lib/pp_admintools/app/ldap.py:298
 msgid "The path {!r} must be an absolute path."
 msgstr "Der Pfad {!r} muss ein absoluter Pfad sein."
 
-#: lib/pp_admintools/app/ldap.py:130 lib/pp_admintools/app/ldap.py:301
-#: lib/pp_admintools/app/ldap.py:1649
+#: lib/pp_admintools/app/ldap.py:131 lib/pp_admintools/app/ldap.py:302
+#: lib/pp_admintools/app/ldap.py:1661
 msgid "The file {!r} does not exists."
 msgstr "Die Datei {!r} existiert nicht."
 
-#: lib/pp_admintools/app/ldap.py:134 lib/pp_admintools/app/ldap.py:305
-#: lib/pp_admintools/app/ldap.py:1654
+#: lib/pp_admintools/app/ldap.py:135 lib/pp_admintools/app/ldap.py:306
+#: lib/pp_admintools/app/ldap.py:1666
 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:138 lib/pp_admintools/app/ldap.py:309
-#: lib/pp_admintools/app/ldap.py:1659
+#: lib/pp_admintools/app/ldap.py:139 lib/pp_admintools/app/ldap.py:310
+#: lib/pp_admintools/app/ldap.py:1671
 msgid "The given file {!r} is not readable."
 msgstr "Die angegebene Datei {} ist nicht lesbar."
 
-#: lib/pp_admintools/app/ldap.py:160
+#: lib/pp_admintools/app/ldap.py:161
 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:165
+#: lib/pp_admintools/app/ldap.py:166
 msgid "Wrong port number {!r}:"
 msgstr "Ungültige Portnummer {!r}."
 
-#: lib/pp_admintools/app/ldap.py:324
+#: lib/pp_admintools/app/ldap.py:325
 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:355
+#: lib/pp_admintools/app/ldap.py:356
 msgid "LDAP options"
 msgstr "LDAP-Optionen"
 
-#: lib/pp_admintools/app/ldap.py:357
+#: lib/pp_admintools/app/ldap.py:358
 msgid "Options for the default LDAP connection"
 msgstr "Optionen für die Vorgabe-LDAP-Verbindung"
 
-#: lib/pp_admintools/app/ldap.py:359
+#: lib/pp_admintools/app/ldap.py:360
 msgid "Options fo LDAP connections"
 msgstr "Optionen für die LDAP-Verbindungen"
 
-#: lib/pp_admintools/app/ldap.py:368
+#: lib/pp_admintools/app/ldap.py:369
 msgid "Yes"
 msgstr "Ja"
 
-#: lib/pp_admintools/app/ldap.py:374 lib/pp_admintools/app/ldap.py:470
+#: lib/pp_admintools/app/ldap.py:375 lib/pp_admintools/app/ldap.py:471
 msgid "HOST"
 msgstr "HOST"
 
-#: lib/pp_admintools/app/ldap.py:375
+#: lib/pp_admintools/app/ldap.py:376
 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:382
+#: lib/pp_admintools/app/ldap.py:383
 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:387 lib/pp_admintools/app/ldap.py:476
+#: lib/pp_admintools/app/ldap.py:388 lib/pp_admintools/app/ldap.py:477
 #: lib/pp_admintools/app/mail.py:250 lib/pp_admintools/app/pdns.py:274
 msgid "PORT"
 msgstr "PORT"
 
-#: lib/pp_admintools/app/ldap.py:389
+#: lib/pp_admintools/app/ldap.py:390
 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:395
+#: lib/pp_admintools/app/ldap.py:396
 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:402
+#: lib/pp_admintools/app/ldap.py:403
 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:410 lib/pp_admintools/app/mk_ldap_passwd.py:131
+#: lib/pp_admintools/app/ldap.py:411 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
 msgid "PASSWORD"
 msgstr "PASSWORT"
 
-#: lib/pp_admintools/app/ldap.py:411
+#: lib/pp_admintools/app/ldap.py:412
 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:416
+#: lib/pp_admintools/app/ldap.py:417
 msgid ""
 "Prompt for simple LDAP authentication. This is used instead of specifying the password on the "
 "command line."
@@ -1007,30 +1007,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:422 lib/pp_admintools/app/set_ldap_password.py:143
+#: lib/pp_admintools/app/ldap.py:423 lib/pp_admintools/app/set_ldap_password.py:143
 #: lib/pp_admintools/app/set_ldap_password.py:145
 msgid "PASSWORD_FILE"
 msgstr "PASSWORT_DATEI"
 
-#: lib/pp_admintools/app/ldap.py:424
+#: lib/pp_admintools/app/ldap.py:425
 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:432 lib/pp_admintools/app/pdns.py:248
+#: lib/pp_admintools/app/ldap.py:433 lib/pp_admintools/app/pdns.py:248
 msgid "INSTANCE"
 msgstr "INSTANZ"
 
-#: lib/pp_admintools/app/ldap.py:435
+#: lib/pp_admintools/app/ldap.py:436
 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:439
+#: lib/pp_admintools/app/ldap.py:440
 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:443
+#: lib/pp_admintools/app/ldap.py:444
 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,288 +1042,288 @@ 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:471
+#: lib/pp_admintools/app/ldap.py:472
 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:478
+#: lib/pp_admintools/app/ldap.py:479
 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:483
+#: lib/pp_admintools/app/ldap.py:484
 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:492
+#: lib/pp_admintools/app/ldap.py:493
 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:519
+#: lib/pp_admintools/app/ldap.py:520
 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:530
+#: lib/pp_admintools/app/ldap.py:531
 msgid "Checking given instances."
 msgstr "Überprüfe die übergebenen Instanzen."
 
-#: lib/pp_admintools/app/ldap.py:534
+#: lib/pp_admintools/app/ldap.py:535
 msgid "Given insts:"
 msgstr "Übergebene Instanzen:"
 
-#: lib/pp_admintools/app/ldap.py:585
+#: lib/pp_admintools/app/ldap.py:592
 msgid "Configured LDAP instances:"
 msgstr "Konfigurierte LDAP-Instanzen:"
 
-#: lib/pp_admintools/app/ldap.py:602
+#: lib/pp_admintools/app/ldap.py:612
 msgid "Verifying given instances ..."
 msgstr "Überprüfe Instanzen …"
 
-#: lib/pp_admintools/app/ldap.py:638
+#: lib/pp_admintools/app/ldap.py:650
 msgid "Filtered instances:"
 msgstr "Gefilterte Instanzen:"
 
-#: lib/pp_admintools/app/ldap.py:646
+#: lib/pp_admintools/app/ldap.py:658
 msgid "LDAP instances to use:"
 msgstr "Verwendete LDAP-Instanzen:"
 
-#: lib/pp_admintools/app/ldap.py:662
+#: lib/pp_admintools/app/ldap.py:674
 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:742
+#: lib/pp_admintools/app/ldap.py:754
 msgid "Preparations ..."
 msgstr "Vorbereitungen …"
 
-#: lib/pp_admintools/app/ldap.py:745
+#: lib/pp_admintools/app/ldap.py:757
 msgid "Open all necessary LDAP connections ..."
 msgstr "Öffne alle notwendigen LDAP-Verbindungen …"
 
-#: lib/pp_admintools/app/ldap.py:759
+#: lib/pp_admintools/app/ldap.py:771
 msgid "Password of user {usr} on LDAP instance {inst}:"
 msgstr "Passwort des Nutzers {usr} der LDAP-Instanz {inst}:"
 
-#: lib/pp_admintools/app/ldap.py:768
+#: lib/pp_admintools/app/ldap.py:780
 msgid "Info about LDAP server {}:"
 msgstr "Informationen zu LDAP-Server {}:"
 
-#: lib/pp_admintools/app/ldap.py:778
+#: lib/pp_admintools/app/ldap.py:790
 msgid "Trying to get LDAP server object for {} ..."
 msgstr "Versuche ein LDAP-Server-Objekt für {} zu bekommen …"
 
-#: lib/pp_admintools/app/ldap.py:794
+#: lib/pp_admintools/app/ldap.py:806
 msgid "Connect options to server {!r}:"
 msgstr "Verbindungs-Optionen zu Server {!r}:"
 
-#: lib/pp_admintools/app/ldap.py:801
+#: lib/pp_admintools/app/ldap.py:813
 msgid "LDAP server {s}: {re}"
 msgstr "LDAP-Server {s}: {re}"
 
-#: lib/pp_admintools/app/ldap.py:815
+#: lib/pp_admintools/app/ldap.py:827
 msgid "Connecting to LDAP server {url} as {dn!r} ..."
 msgstr "Verbinde mit LDAP-Server {url} als {dn!r} …"
 
-#: lib/pp_admintools/app/ldap.py:823
+#: lib/pp_admintools/app/ldap.py:835
 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:828
+#: lib/pp_admintools/app/ldap.py:840
 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:838
+#: lib/pp_admintools/app/ldap.py:850
 msgid "Finishing ..."
 msgstr "Beende …"
 
-#: lib/pp_admintools/app/ldap.py:849
+#: lib/pp_admintools/app/ldap.py:861
 msgid "Disconnecting from all remaining LDAP instances ..."
 msgstr "Trenne Verbindung zu allen verbleibenden LDAP-Instanzen …"
 
-#: lib/pp_admintools/app/ldap.py:862
+#: lib/pp_admintools/app/ldap.py:874
 msgid "Unbinding from LDAP server {!r} ..."
 msgstr "Trenne Bindung zu LDAP-Server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:869
+#: lib/pp_admintools/app/ldap.py:881
 msgid "Disconnecting from LDAP server {!r} ..."
 msgstr "Trenne Verbindung zu LDAP-Server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:896
+#: lib/pp_admintools/app/ldap.py:908
 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:908
+#: lib/pp_admintools/app/ldap.py:920
 msgid "Result of searching:"
 msgstr "Ergebnis der Suche:"
 
-#: lib/pp_admintools/app/ldap.py:913
+#: lib/pp_admintools/app/ldap.py:925
 msgid "Found entry {!r}."
 msgstr "Gefundener Eintrag:"
 
-#: lib/pp_admintools/app/ldap.py:920 lib/pp_admintools/app/ldap.py:964
+#: lib/pp_admintools/app/ldap.py:932 lib/pp_admintools/app/ldap.py:976
 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:924
+#: lib/pp_admintools/app/ldap.py:936
 msgid "Got response entries:"
 msgstr "Erhaltene Antworteinträge:"
 
-#: lib/pp_admintools/app/ldap.py:928 lib/pp_admintools/app/ldap.py:976
+#: lib/pp_admintools/app/ldap.py:940 lib/pp_admintools/app/ldap.py:988
 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:952 lib/pp_admintools/app/ldap.py:1006
+#: lib/pp_admintools/app/ldap.py:964 lib/pp_admintools/app/ldap.py:1018
 msgid "Using LDAP filter: {!r}"
 msgstr "Verwende LDAP-Filter: {!r}."
 
-#: lib/pp_admintools/app/ldap.py:968 lib/pp_admintools/app/ldap.py:1015
+#: lib/pp_admintools/app/ldap.py:980 lib/pp_admintools/app/ldap.py:1027
 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:972 lib/pp_admintools/app/ldap.py:1019
-#: lib/pp_admintools/app/ldap.py:1117 lib/pp_admintools/app/ldap.py:1170
-#: lib/pp_admintools/app/ldap.py:1223 lib/pp_admintools/app/ldap.py:1328
-#: lib/pp_admintools/app/ldap.py:1528 lib/pp_admintools/app/ldap.py:1562
-#: lib/pp_admintools/app/ldap.py:1596 lib/pp_admintools/app/ldap.py:1630
+#: lib/pp_admintools/app/ldap.py:984 lib/pp_admintools/app/ldap.py:1031
+#: lib/pp_admintools/app/ldap.py:1129 lib/pp_admintools/app/ldap.py:1182
+#: lib/pp_admintools/app/ldap.py:1235 lib/pp_admintools/app/ldap.py:1340
+#: lib/pp_admintools/app/ldap.py:1540 lib/pp_admintools/app/ldap.py:1574
+#: lib/pp_admintools/app/ldap.py:1608 lib/pp_admintools/app/ldap.py:1642
 msgid "Got a response entry:"
 msgstr "Erhaltener Antwort-Eintrag:"
 
-#: lib/pp_admintools/app/ldap.py:1002
+#: lib/pp_admintools/app/ldap.py:1014
 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:1041
+#: lib/pp_admintools/app/ldap.py:1053
 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:1046
+#: lib/pp_admintools/app/ldap.py:1058
 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:1053
+#: lib/pp_admintools/app/ldap.py:1065
 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:1060
+#: lib/pp_admintools/app/ldap.py:1072
 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:1069 lib/pp_admintools/app/remove_ldap_user.py:318
+#: lib/pp_admintools/app/ldap.py:1081 lib/pp_admintools/app/remove_ldap_user.py:318
 msgid "Empty user given."
 msgstr "Leere Nutzername übergeben."
 
-#: lib/pp_admintools/app/ldap.py:1072
+#: lib/pp_admintools/app/ldap.py:1084
 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:1102 lib/pp_admintools/app/ldap.py:1155
-#: lib/pp_admintools/app/ldap.py:1208 lib/pp_admintools/app/ldap.py:1516
-#: lib/pp_admintools/app/ldap.py:1550 lib/pp_admintools/app/ldap.py:1584
-#: lib/pp_admintools/app/ldap.py:1618
+#: lib/pp_admintools/app/ldap.py:1114 lib/pp_admintools/app/ldap.py:1167
+#: lib/pp_admintools/app/ldap.py:1220 lib/pp_admintools/app/ldap.py:1528
+#: lib/pp_admintools/app/ldap.py:1562 lib/pp_admintools/app/ldap.py:1596
+#: lib/pp_admintools/app/ldap.py:1630
 msgid "Searching in {uri}/{bdn} with filter: {fltr}"
 msgstr "Suche in {uri}/{bdn} mit dem Filter: {fltr}"
 
-#: lib/pp_admintools/app/ldap.py:1113
+#: lib/pp_admintools/app/ldap.py:1125
 msgid "Result of searching for mail address {m!r}:"
 msgstr "Ergebnis der Suche nach der Mailadresse {m!r}:"
 
-#: lib/pp_admintools/app/ldap.py:1124
+#: lib/pp_admintools/app/ldap.py:1136
 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:1166
+#: lib/pp_admintools/app/ldap.py:1178
 msgid "Result of searching for uid {u!r}:"
 msgstr "Ergebnis der Suche nach UID {u!r}:"
 
-#: lib/pp_admintools/app/ldap.py:1177
+#: lib/pp_admintools/app/ldap.py:1189
 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:1219
+#: lib/pp_admintools/app/ldap.py:1231
 msgid "Result of searching for CN {cn!r}:"
 msgstr "Ergebnis der Suche nach CN {cn!r}:"
 
-#: lib/pp_admintools/app/ldap.py:1230
+#: lib/pp_admintools/app/ldap.py:1242
 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:1247 lib/pp_admintools/app/set_ldap_password.py:409
+#: lib/pp_admintools/app/ldap.py:1259 lib/pp_admintools/app/set_ldap_password.py:409
 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:1265
+#: lib/pp_admintools/app/ldap.py:1277
 msgid "ObjectClasses of {dn!r}:"
 msgstr "ObjectClasses von {dn!r}:"
 
-#: lib/pp_admintools/app/ldap.py:1275
+#: lib/pp_admintools/app/ldap.py:1287
 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:1297
+#: lib/pp_admintools/app/ldap.py:1309
 msgid "Searching DN {dn!r} in {uri}."
 msgstr "Suche DN {dn!r} in {uri}."
 
-#: lib/pp_admintools/app/ldap.py:1314
+#: lib/pp_admintools/app/ldap.py:1326
 msgid "Waiting because of a failing read operation."
 msgstr "Warten wegen misslungener Leseoperation."
 
-#: lib/pp_admintools/app/ldap.py:1318
+#: lib/pp_admintools/app/ldap.py:1330
 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:1324
+#: lib/pp_admintools/app/ldap.py:1336
 msgid "Result of searching for DN {dn!r}:"
 msgstr "Ergebnis der Suche nach dem DN {dn!r}:"
 
-#: lib/pp_admintools/app/ldap.py:1332
+#: lib/pp_admintools/app/ldap.py:1344
 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:1377
+#: lib/pp_admintools/app/ldap.py:1389
 msgid "Creating entry {dn!r} on {uri}:"
 msgstr "Erstelle Eintrag {dn!r} in {uri} …"
 
-#: lib/pp_admintools/app/ldap.py:1383
+#: lib/pp_admintools/app/ldap.py:1395
 msgid "Simulation mode - entry will not be created."
 msgstr "Simulationsmodus - der Eintrag wird nicht erstellt."
 
-#: lib/pp_admintools/app/ldap.py:1390
+#: lib/pp_admintools/app/ldap.py:1402
 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:1405
+#: lib/pp_admintools/app/ldap.py:1417
 msgid "Creation status: {!r}."
 msgstr "Erstellungsstatus: {!r}"
 
-#: lib/pp_admintools/app/ldap.py:1407
+#: lib/pp_admintools/app/ldap.py:1419
 msgid "Result of creating:"
 msgstr "Ergebnis der Erstellung:"
 
-#: lib/pp_admintools/app/ldap.py:1410
+#: lib/pp_admintools/app/ldap.py:1422
 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:1416
+#: lib/pp_admintools/app/ldap.py:1428
 msgid "Creation successful."
 msgstr "Die Erstellung war erfolgreich."
 
-#: lib/pp_admintools/app/ldap.py:1427
+#: lib/pp_admintools/app/ldap.py:1439
 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:1432
+#: lib/pp_admintools/app/ldap.py:1444
 msgid "Simulation mode - changes are not applied."
 msgstr "Simulationsmodus - hier wird jetzt nichts geändert."
 
-#: lib/pp_admintools/app/ldap.py:1438
+#: lib/pp_admintools/app/ldap.py:1450
 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:1440 lib/pp_admintools/app/ldap.py:1459
+#: lib/pp_admintools/app/ldap.py:1452 lib/pp_admintools/app/ldap.py:1471
 #: 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
@@ -1331,72 +1331,72 @@ msgstr "Die Änderung von {dn!r} war NICHT erfolgreich - {c}: {e}"
 msgid "Changes:"
 msgstr "Änderungen:"
 
-#: lib/pp_admintools/app/ldap.py:1452
+#: lib/pp_admintools/app/ldap.py:1464
 msgid "Modification status: {!r}."
 msgstr "Änderungsstatus: {!r}."
 
-#: lib/pp_admintools/app/ldap.py:1454
+#: lib/pp_admintools/app/ldap.py:1466
 msgid "Result of modifying:"
 msgstr "Ergebnis der Änderung:"
 
-#: lib/pp_admintools/app/ldap.py:1457
+#: lib/pp_admintools/app/ldap.py:1469
 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:1462
+#: lib/pp_admintools/app/ldap.py:1474
 msgid "Modification successful."
 msgstr "Die Änderung war erfolgreich."
 
-#: lib/pp_admintools/app/ldap.py:1472
+#: lib/pp_admintools/app/ldap.py:1484
 msgid "Deleting LDAP entry {dn!r} on {uri} ..."
 msgstr "Lösche LDAP-Eintrag {dn!r} in {uri} …"
 
-#: lib/pp_admintools/app/ldap.py:1477
+#: lib/pp_admintools/app/ldap.py:1489
 msgid "Simulation mode - deletion will not be executed."
 msgstr "Simulationsmodus - hier wird jetzt nichts gelöscht."
 
-#: lib/pp_admintools/app/ldap.py:1483
+#: lib/pp_admintools/app/ldap.py:1495
 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:1488
+#: lib/pp_admintools/app/ldap.py:1500
 msgid "Deletion status: {!r}."
 msgstr "Löschstatus: {!r}"
 
-#: lib/pp_admintools/app/ldap.py:1490
+#: lib/pp_admintools/app/ldap.py:1502
 msgid "Result of deletion:"
 msgstr "Ergebnis der Löschung:"
 
-#: lib/pp_admintools/app/ldap.py:1493
+#: lib/pp_admintools/app/ldap.py:1505
 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:1497
+#: lib/pp_admintools/app/ldap.py:1509
 msgid "Deletion successful."
 msgstr "Die Löschung war erfolgreich."
 
-#: lib/pp_admintools/app/ldap.py:1646
+#: lib/pp_admintools/app/ldap.py:1658
 msgid "Reading password file {!r} ..."
 msgstr "Lese Passwortdatei {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:1677
+#: lib/pp_admintools/app/ldap.py:1689
 msgid "Could not detect RDN from DN {!r}."
 msgstr "Konnte RDN nich aus {!r} ermitteln."
 
-#: lib/pp_admintools/app/ldap.py:1681
+#: lib/pp_admintools/app/ldap.py:1693
 msgid "Found RDN attribute {!r}."
 msgstr "Fand RDN-Attribut {!r}."
 
-#: lib/pp_admintools/app/ldap.py:1687
+#: lib/pp_admintools/app/ldap.py:1699
 msgid "RDN attribute {!r} will not be touched."
 msgstr "Das RDN-Attribut {!r} wird nicht angefasst."
 
-#: lib/pp_admintools/app/ldap.py:1693 lib/pp_admintools/app/ldap.py:1712
-#: lib/pp_admintools/app/ldap.py:1790
+#: lib/pp_admintools/app/ldap.py:1705 lib/pp_admintools/app/ldap.py:1724
+#: lib/pp_admintools/app/ldap.py:1802
 msgid "Attribute {!r} will not be touched."
 msgstr "Das Attribut {!r} wird nicht angefasst."
 
-#: lib/pp_admintools/app/ldap.py:1750
+#: lib/pp_admintools/app/ldap.py:1762
 msgid "Values to removed from attribute {!r}:"
 msgstr "Werte, die von Attribut {!r} gelöscht werden."
 
@@ -1487,7 +1487,7 @@ msgstr "Die zu sendende Mail:"
 msgid "Did not found sendmail executable."
 msgstr "Kein ausführbares Programm 'sendmail' gefunden."
 
-#: lib/pp_admintools/app/mirror_ldap.py:98
+#: lib/pp_admintools/app/mirror_ldap.py:100
 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 +1501,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:106
+#: lib/pp_admintools/app/mirror_ldap.py:108
 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:117
+#: lib/pp_admintools/app/mirror_ldap.py:119
 msgid "Miroring options"
 msgstr "Spiegelungs--Optionen"
 
-#: lib/pp_admintools/app/mirror_ldap.py:122
+#: lib/pp_admintools/app/mirror_ldap.py:124
 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,54 +1518,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:129 lib/pp_admintools/app/mk_ldap_passwd.py:121
+#: lib/pp_admintools/app/mirror_ldap.py:131 lib/pp_admintools/app/mk_ldap_passwd.py:121
 msgid "NUMBER"
 msgstr "ANZAHL"
 
-#: lib/pp_admintools/app/mirror_ldap.py:131
+#: lib/pp_admintools/app/mirror_ldap.py:133
 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:138
+#: lib/pp_admintools/app/mirror_ldap.py:140
 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:159
+#: lib/pp_admintools/app/mirror_ldap.py:161
 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:163
+#: lib/pp_admintools/app/mirror_ldap.py:165
 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
+msgid "Data to modify:"
+msgstr "Zu ändernde Daten:"
+
+#: lib/pp_admintools/app/mirror_ldap.py:182
+msgid "No data to modify found."
+msgstr "Keine zu ändernde Daten gefunden."
+
+#: lib/pp_admintools/app/mirror_ldap.py:190
 msgid "Did not found {tgt!r} in {e}:"
 msgstr "Fand {tgt!r} nicht in {e}:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:192
+#: lib/pp_admintools/app/mirror_ldap.py:202
 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:196
+#: lib/pp_admintools/app/mirror_ldap.py:206
 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:199 lib/pp_admintools/app/mirror_ldap.py:208
-#: lib/pp_admintools/app/mirror_ldap.py:219
+#: lib/pp_admintools/app/mirror_ldap.py:209 lib/pp_admintools/app/mirror_ldap.py:218
+#: lib/pp_admintools/app/mirror_ldap.py:229
 msgid "Error in configuration:"
 msgstr "Fehler in der Konfiguration:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:200
+#: lib/pp_admintools/app/mirror_ldap.py:210
 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:209
+#: lib/pp_admintools/app/mirror_ldap.py:219
 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:220
+#: lib/pp_admintools/app/mirror_ldap.py:230
 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}."
@@ -1573,117 +1581,117 @@ 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:236
-msgid "Start mirroring LDAP instance {src!r} ({src_url}) to instance {tgt!r} ({tgt_url}) [{yes}/{no}]?"
+#: lib/pp_admintools/app/mirror_ldap.py:246
+msgid "Start mirroring LDAP instance {src} ({src_url}) to instance {tgt} ({tgt_url}) [{yes}/{no}]?"
 msgstr ""
-"Starte Spiegelung der LDAP-Instanz {src!r} ({src_url}) zur Instanz {tgt!r} ({tgt_url}) "
+"Starte Spiegelung der LDAP-Instanz {src} ({src_url}) zur Instanz {tgt} ({tgt_url}) "
 "[{yes}/{no}]?"
 
-#: lib/pp_admintools/app/mirror_ldap.py:246 lib/pp_admintools/app/mirror_ldap.py:327
+#: lib/pp_admintools/app/mirror_ldap.py:259 lib/pp_admintools/app/mirror_ldap.py:347
 msgid "Interrupted on demand."
 msgstr "Abbruch auf Verlangen."
 
-#: lib/pp_admintools/app/mirror_ldap.py:251
+#: lib/pp_admintools/app/mirror_ldap.py:262 lib/pp_admintools/app/mirror_ldap.py:269
 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:262
+#: lib/pp_admintools/app/mirror_ldap.py:282
 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:267
+#: lib/pp_admintools/app/mirror_ldap.py:287
 msgid "Don't waiting after simulated write actions."
 msgstr "Kein Warten nach einer simulierten Schreibaktion."
 
-#: lib/pp_admintools/app/mirror_ldap.py:269
+#: lib/pp_admintools/app/mirror_ldap.py:289
 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:272
+#: lib/pp_admintools/app/mirror_ldap.py:292
 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:286 lib/pp_admintools/app/mirror_ldap.py:304
+#: lib/pp_admintools/app/mirror_ldap.py:306 lib/pp_admintools/app/mirror_ldap.py:324
 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:289 lib/pp_admintools/app/mirror_ldap.py:309
+#: lib/pp_admintools/app/mirror_ldap.py:309 lib/pp_admintools/app/mirror_ldap.py:329
 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:292 lib/pp_admintools/app/mirror_ldap.py:314
+#: lib/pp_admintools/app/mirror_ldap.py:312 lib/pp_admintools/app/mirror_ldap.py:334
 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:299
+#: lib/pp_admintools/app/mirror_ldap.py:319
 msgid "Changes total:"
 msgstr "Änderungen insgesamt:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:322 lib/pp_admintools/app/mirror_ldap.py:327
+#: lib/pp_admintools/app/mirror_ldap.py:342 lib/pp_admintools/app/mirror_ldap.py:347
 msgid "Got a {}:"
 msgstr "Habe ein {} erhalten:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:339
+#: lib/pp_admintools/app/mirror_ldap.py:359
 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:352 lib/pp_admintools/app/mirror_ldap.py:406
+#: lib/pp_admintools/app/mirror_ldap.py:372 lib/pp_admintools/app/mirror_ldap.py:426
 msgid "Found DNs in instance {!r}:"
 msgstr "Gefundene DNs in Instanz {!r}:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:369
+#: lib/pp_admintools/app/mirror_ldap.py:389
 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:373
+#: lib/pp_admintools/app/mirror_ldap.py:393
 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:377
+#: lib/pp_admintools/app/mirror_ldap.py:397
 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:385 lib/pp_admintools/app/mirror_ldap.py:439
+#: lib/pp_admintools/app/mirror_ldap.py:405 lib/pp_admintools/app/mirror_ldap.py:459
 msgid "Found structural DNs in instance {!r}:"
 msgstr "Gefundene strukturelle DNs in Instanz {!r}:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:393
+#: lib/pp_admintools/app/mirror_ldap.py:413
 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:423
+#: lib/pp_admintools/app/mirror_ldap.py:443
 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:427
+#: lib/pp_admintools/app/mirror_ldap.py:447
 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:431
+#: lib/pp_admintools/app/mirror_ldap.py:451
 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:446
+#: lib/pp_admintools/app/mirror_ldap.py:466
 msgid ""
 "Evaluating DNs of all target entries, which have to be synchronized, instead of removing and "
 "recreating them."
@@ -1691,139 +1699,146 @@ 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:504
+#: lib/pp_admintools/app/mirror_ldap.py:524
 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:520 lib/pp_admintools/app/mirror_ldap.py:581
+#: lib/pp_admintools/app/mirror_ldap.py:540 lib/pp_admintools/app/mirror_ldap.py:601
 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:526
+#: lib/pp_admintools/app/mirror_ldap.py:546
 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:533 lib/pp_admintools/app/mirror_ldap.py:587
-#: lib/pp_admintools/app/mirror_ldap.py:634 lib/pp_admintools/app/mirror_ldap.py:747
-#: lib/pp_admintools/app/mirror_ldap.py:854
+#: 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:974
 msgid "Entry {!r} is set to be kept."
 msgstr "Der Eintrag {!r} wurde auf Erhalten gesetzt."
 
-#: lib/pp_admintools/app/mirror_ldap.py:545
+#: lib/pp_admintools/app/mirror_ldap.py:565
 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:550
+#: lib/pp_admintools/app/mirror_ldap.py:570
 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:564
+#: lib/pp_admintools/app/mirror_ldap.py:584
 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:592
+#: lib/pp_admintools/app/mirror_ldap.py:612
 msgid "Entry {!r} is set to be synchronized."
 msgstr "Der Eintrag {!r} wurde auf Synchronisation gesetzt."
 
-#: lib/pp_admintools/app/mirror_ldap.py:604
+#: lib/pp_admintools/app/mirror_ldap.py:624
 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:609
+#: lib/pp_admintools/app/mirror_ldap.py:629
 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:617
+#: lib/pp_admintools/app/mirror_ldap.py:637
 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:638 lib/pp_admintools/app/mirror_ldap.py:751
-#: lib/pp_admintools/app/mirror_ldap.py:860
+#: lib/pp_admintools/app/mirror_ldap.py:655
+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
+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:980
 msgid "Mirroring entry {!r} ..."
 msgstr "Spiegele Eintrag {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:643 lib/pp_admintools/app/mirror_ldap.py:756
-#: lib/pp_admintools/app/mirror_ldap.py:865
+#: lib/pp_admintools/app/mirror_ldap.py:682 lib/pp_admintools/app/mirror_ldap.py:985
 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:647 lib/pp_admintools/app/mirror_ldap.py:759
-#: lib/pp_admintools/app/mirror_ldap.py:868
+#: lib/pp_admintools/app/mirror_ldap.py:686 lib/pp_admintools/app/mirror_ldap.py:988
 msgid "Did not found {!r} in the source LDAP."
 msgstr "Fand {!r} nicht in der Quell-Datenbank."
 
-#: lib/pp_admintools/app/mirror_ldap.py:662 lib/pp_admintools/app/mirror_ldap.py:774
-#: lib/pp_admintools/app/mirror_ldap.py:879
+#: lib/pp_admintools/app/mirror_ldap.py:708 lib/pp_admintools/app/mirror_ldap.py:999
 msgid "Error on reading entry {!r} from target:"
 msgstr "Fehler beim Lesen des Eintrags {!r} vom Ziel:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:677 lib/pp_admintools/app/mirror_ldap.py:789
-#: lib/pp_admintools/app/mirror_ldap.py:894
+#: lib/pp_admintools/app/mirror_ldap.py:723 lib/pp_admintools/app/mirror_ldap.py:1014
 msgid "Modifying entry {!r} ..."
 msgstr "Ändere Eintrag {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:678 lib/pp_admintools/app/mirror_ldap.py:790
-#: lib/pp_admintools/app/mirror_ldap.py:895
+#: lib/pp_admintools/app/mirror_ldap.py:724 lib/pp_admintools/app/mirror_ldap.py:1015
 msgid "Got modify data for DN {!r}:"
 msgstr "Bekam Änderungsdaten für DN {!r}:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:689 lib/pp_admintools/app/mirror_ldap.py:801
-#: lib/pp_admintools/app/mirror_ldap.py:906
+#: lib/pp_admintools/app/mirror_ldap.py:734 lib/pp_admintools/app/mirror_ldap.py:1026
 msgid "No changes necessary on DN {!r}."
 msgstr "Keine Änderungen bei DN {!r} notwendig."
 
-#: lib/pp_admintools/app/mirror_ldap.py:693 lib/pp_admintools/app/mirror_ldap.py:805
-#: lib/pp_admintools/app/mirror_ldap.py:882
+#: lib/pp_admintools/app/mirror_ldap.py:738 lib/pp_admintools/app/mirror_ldap.py:1002
 msgid "Target entry {!r} not found."
 msgstr "Der Ziel-Eintrag {!r} wurde nicht gefunden."
 
-#: lib/pp_admintools/app/mirror_ldap.py:696 lib/pp_admintools/app/mirror_ldap.py:808
+#: lib/pp_admintools/app/mirror_ldap.py:741
 msgid "Creating entry {!r} ..."
 msgstr "Erstelle Eintrag {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:697 lib/pp_admintools/app/mirror_ldap.py:809
+#: lib/pp_admintools/app/mirror_ldap.py:742
 msgid "Got create data for DN {!r}:"
 msgstr "Bekam Erstellungsdaten für DN {!r}:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:714
-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:791
+msgid "Modifying source data for {!r} ..."
+msgstr "Ändere Quelldaten für {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:719
-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:802
+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
+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:727
+#: lib/pp_admintools/app/mirror_ldap.py:885
+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:925
 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:826
+#: lib/pp_admintools/app/mirror_ldap.py:946
 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:831
+#: lib/pp_admintools/app/mirror_ldap.py:951
 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:840
+#: lib/pp_admintools/app/mirror_ldap.py:960
 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:911
+#: lib/pp_admintools/app/mirror_ldap.py:1031
 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:916
+#: lib/pp_admintools/app/mirror_ldap.py:1036
 msgid "Mirrored no group entries to target LDAP instance."
 msgstr "Es wurden keine Gruppeneinträge in die Ziel-LDAP-Instanz gespiegelt."
 
@@ -2474,39 +2489,39 @@ msgstr "Keine gültigen Master in der Konfiguration gefunden."
 msgid "Evaluated configuration:"
 msgstr "Evaluierte Konfiguration:"
 
-#: lib/pp_admintools/config/ldap.py:177
+#: lib/pp_admintools/config/ldap.py:178
 msgid "Invalid port {!r} for LDAP server given."
 msgstr "Ungültiger Port {!r} für den LDAP-Server angegeben."
 
-#: lib/pp_admintools/config/ldap.py:189
+#: lib/pp_admintools/config/ldap.py:190
 msgid "An empty Base DN for LDAP searches is not allowed."
 msgstr "Eine leere Basis-DN für LDAP-Suchen ist nicht erlaubt."
 
-#: lib/pp_admintools/config/ldap.py:282
+#: lib/pp_admintools/config/ldap.py:283
 msgid "Invalid production tier {!r} given."
 msgstr "Ungültige Produktionsstufe {!r} angegeben."
 
-#: lib/pp_admintools/config/ldap.py:349
+#: lib/pp_admintools/config/ldap.py:369
 msgid "Invalid value {val!r} in section {sec!r} for a LDAP {what}."
 msgstr "Ungültiger Wert {val!r} in Abschnitt {sec!r} für ein LDAP-{what}."
 
-#: lib/pp_admintools/config/ldap.py:422
+#: lib/pp_admintools/config/ldap.py:442
 msgid "Unknown LDAP configuration key {key} found in section {sec!r}."
 msgstr "Unbekannten Konfigurationsschlüssel {key} in Abschnitt {sec!r} gefunden."
 
-#: lib/pp_admintools/config/ldap.py:526
+#: lib/pp_admintools/config/ldap.py:546
 msgid "Evaluating LDAP config ..."
 msgstr "Ermittle LDAP-Konfiguration …"
 
-#: lib/pp_admintools/config/ldap.py:530
+#: lib/pp_admintools/config/ldap.py:550
 msgid "Evaluating LDAP section {!r} ..."
 msgstr "Evaluiere LDAP-Abschnitt {!r} …"
 
-#: lib/pp_admintools/config/ldap.py:547
+#: lib/pp_admintools/config/ldap.py:567
 msgid "Value {!r} for a timeout is invalid."
 msgstr "Der Wert {!r} für einen Timeout ist ungültig."
 
-#: lib/pp_admintools/config/ldap.py:567
+#: lib/pp_admintools/config/ldap.py:587
 msgid "Reading configuration of LDAP instance {!r} ..."
 msgstr "Lese Konfiguration der LDAP-Instanz {!r} …"
 
@@ -2543,14 +2558,30 @@ msgstr "Der Wert {!r} für einen SMTP-Port ist ungültig:"
 msgid "Found invalid SMTP port number {} in configuration."
 msgstr "Ungültige SMTP-Port-Nummer {!r} in der Konfiguration gefunden."
 
-#: lib/pp_admintools/config/mirror_ldap.py:88 lib/pp_admintools/config/mirror_ldap.py:124
+#: lib/pp_admintools/config/mirror_ldap.py:97 lib/pp_admintools/config/mirror_ldap.py:139
+#: lib/pp_admintools/config/mirror_ldap.py:170 lib/pp_admintools/config/mirror_ldap.py:190
+#: lib/pp_admintools/config/mirror_ldap.py:208 lib/pp_admintools/config/mirror_ldap.py:237
 msgid "Evaluating configuration section {sn!r} ..."
 msgstr "Evaluiere Konfigurations-Abschnitt {sn!r} …"
 
-#: lib/pp_admintools/config/mirror_ldap.py:104 lib/pp_admintools/config/mirror_ldap.py:130
+#: lib/pp_admintools/config/mirror_ldap.py:113 lib/pp_admintools/config/mirror_ldap.py:145
+#: lib/pp_admintools/config/mirror_ldap.py:176 lib/pp_admintools/config/mirror_ldap.py:193
+#: lib/pp_admintools/config/mirror_ldap.py:211 lib/pp_admintools/config/mirror_ldap.py:240
 msgid "Section {sn!r} is not a {what}."
 msgstr "Abschnitt {sn!r} ist kein {what}."
 
+#: lib/pp_admintools/config/mirror_ldap.py:120
+msgid "Evaluating sub section {sn!r} ..."
+msgstr "Evaluiere Unterabschnitt {sn!r} …"
+
+#: lib/pp_admintools/config/mirror_ldap.py:219
+msgid "Invalid action {a!r} in section {sn!r} found. An action must be one of {lst}."
+msgstr "Ungültige Aktion {a!r} in Abschnitt {sec!r} gefunden. Eine Aktion muss eine aus {lst} sein."
+
+#: lib/pp_admintools/config/mirror_ldap.py:250
+msgid "Empty value for section {sn!r} found."
+msgstr "Leerer Wert für Abschnitt {sn!r} gefunden."
+
 #: lib/pp_admintools/config/pdns.py:242
 msgid "A timeout has to be between 1 and {} seconds."
 msgstr "Ein Timeout muss zwischen 1 und {} Sekunden betragen."
index 35aa43cd3b4c33b8ed1cce49c1cee4f453fd4e20..a7a4a1d2386026de18d662d9b3bcb9f2ddce6d1c 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-24 14:23+0100\n"
-"PO-Revision-Date: 2024-01-24 14:30+0100\n"
+"POT-Creation-Date: 2024-01-26 14:10+0100\n"
+"PO-Revision-Date: 2024-01-26 14:20+0100\n"
 "Last-Translator: Frank Brehm <frank.brehm@pixelpark.com>\n"
 "Language: en_US\n"
 "Language-Team: Frank Brehm <frank.brehm@pixelpark.com>\n"
@@ -40,8 +40,8 @@ msgid ""
 "Default: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/barracuda_sync.py:149 lib/pp_admintools/app/ldap.py:490
-#: lib/pp_admintools/app/mirror_ldap.py:120 lib/pp_admintools/app/pdns.py:285
+#: lib/pp_admintools/app/barracuda_sync.py:149 lib/pp_admintools/app/ldap.py:491
+#: lib/pp_admintools/app/mirror_ldap.py:122 lib/pp_admintools/app/pdns.py:285
 msgid "SECONDS"
 msgstr ""
 
@@ -77,10 +77,10 @@ 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:987 lib/pp_admintools/app/ldap.py:1120
-#: lib/pp_admintools/app/ldap.py:1173 lib/pp_admintools/app/ldap.py:1226
-#: lib/pp_admintools/app/ldap.py:1531 lib/pp_admintools/app/ldap.py:1565
-#: lib/pp_admintools/app/ldap.py:1599 lib/pp_admintools/app/ldap.py:1633
+#: lib/pp_admintools/app/ldap.py:999 lib/pp_admintools/app/ldap.py:1132
+#: lib/pp_admintools/app/ldap.py:1185 lib/pp_admintools/app/ldap.py:1238
+#: lib/pp_admintools/app/ldap.py:1543 lib/pp_admintools/app/ldap.py:1577
+#: lib/pp_admintools/app/ldap.py:1611 lib/pp_admintools/app/ldap.py:1645
 msgid "Result:"
 msgstr ""
 
@@ -284,7 +284,7 @@ msgstr ""
 msgid "LDAP Entries to modified:"
 msgstr ""
 
-#: lib/pp_admintools/app/barracuda_sync.py:756 lib/pp_admintools/app/ldap.py:1746
+#: lib/pp_admintools/app/barracuda_sync.py:756 lib/pp_admintools/app/ldap.py:1758
 msgid "Values to add to attribute {!r}:"
 msgstr ""
 
@@ -292,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:1767
+#: lib/pp_admintools/app/barracuda_sync.py:777 lib/pp_admintools/app/ldap.py:1779
 msgid "Changes for attribute {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/barracuda_sync.py:780 lib/pp_admintools/app/ldap.py:1770
+#: lib/pp_admintools/app/barracuda_sync.py:780 lib/pp_admintools/app/ldap.py:1782
 msgid "No changes to attribute {!r}."
 msgstr ""
 
@@ -354,7 +354,7 @@ 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:332
+#: lib/pp_admintools/app/barracuda_sync.py:972 lib/pp_admintools/app/mirror_ldap.py:352
 msgid "Finished."
 msgstr ""
 
@@ -551,13 +551,13 @@ msgstr ""
 msgid "[{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:261 lib/pp_admintools/app/ldap.py:366
-#: lib/pp_admintools/app/mirror_ldap.py:240 lib/pp_admintools/app/remove_ldap_user.py:308
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:261 lib/pp_admintools/app/ldap.py:367
+#: 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
 msgid "No"
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:261 lib/pp_admintools/app/mirror_ldap.py:240
+#: 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
 msgid "yes"
 msgstr ""
@@ -867,7 +867,7 @@ msgstr "' …"
 msgid "Checking for dependend unique attribute '"
 msgstr ""
 
-#: lib/pp_admintools/app/duplicate_attribs.py:172 lib/pp_admintools/app/ldap.py:615
+#: lib/pp_admintools/app/duplicate_attribs.py:172 lib/pp_admintools/app/ldap.py:625
 msgid "Used filter:"
 msgstr ""
 
@@ -875,120 +875,120 @@ msgstr ""
 msgid "No duplicates for attribute {!r} found."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:124 lib/pp_admintools/app/ldap.py:297
+#: lib/pp_admintools/app/ldap.py:125 lib/pp_admintools/app/ldap.py:298
 msgid "The path {!r} must be an absolute path."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:130 lib/pp_admintools/app/ldap.py:301
-#: lib/pp_admintools/app/ldap.py:1649
+#: lib/pp_admintools/app/ldap.py:131 lib/pp_admintools/app/ldap.py:302
+#: lib/pp_admintools/app/ldap.py:1661
 msgid "The file {!r} does not exists."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:134 lib/pp_admintools/app/ldap.py:305
-#: lib/pp_admintools/app/ldap.py:1654
+#: lib/pp_admintools/app/ldap.py:135 lib/pp_admintools/app/ldap.py:306
+#: lib/pp_admintools/app/ldap.py:1666
 msgid "The given path {!r} exists, but is not a regular file."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:138 lib/pp_admintools/app/ldap.py:309
-#: lib/pp_admintools/app/ldap.py:1659
+#: lib/pp_admintools/app/ldap.py:139 lib/pp_admintools/app/ldap.py:310
+#: lib/pp_admintools/app/ldap.py:1671
 msgid "The given file {!r} is not readable."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:160
+#: lib/pp_admintools/app/ldap.py:161
 msgid "a port number must be greater than zero and less or equal to {}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:165
+#: lib/pp_admintools/app/ldap.py:166
 msgid "Wrong port number {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:324
+#: lib/pp_admintools/app/ldap.py:325
 msgid "The value {v} for {n} must be greater than zero."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:355
+#: lib/pp_admintools/app/ldap.py:356
 msgid "LDAP options"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:357
+#: lib/pp_admintools/app/ldap.py:358
 msgid "Options for the default LDAP connection"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:359
+#: lib/pp_admintools/app/ldap.py:360
 msgid "Options fo LDAP connections"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:368
+#: lib/pp_admintools/app/ldap.py:369
 msgid "Yes"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:374 lib/pp_admintools/app/ldap.py:470
+#: lib/pp_admintools/app/ldap.py:375 lib/pp_admintools/app/ldap.py:471
 msgid "HOST"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:375
+#: lib/pp_admintools/app/ldap.py:376
 msgid "Hostname or address of the LDAP server to use. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:382
+#: lib/pp_admintools/app/ldap.py:383
 msgid "Use ldaps to connect to the LDAP server. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:387 lib/pp_admintools/app/ldap.py:476
+#: lib/pp_admintools/app/ldap.py:388 lib/pp_admintools/app/ldap.py:477
 #: lib/pp_admintools/app/mail.py:250 lib/pp_admintools/app/pdns.py:274
 msgid "PORT"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:389
+#: lib/pp_admintools/app/ldap.py:390
 msgid "The port number to connect to the LDAP server. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:395
+#: lib/pp_admintools/app/ldap.py:396
 msgid "The base DN used as the root for the LDAP searches. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:402
+#: lib/pp_admintools/app/ldap.py:403
 msgid "The Bind DN to use to connect to the LDAP server. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:410 lib/pp_admintools/app/mk_ldap_passwd.py:131
+#: lib/pp_admintools/app/ldap.py:411 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
 msgid "PASSWORD"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:411
+#: lib/pp_admintools/app/ldap.py:412
 msgid "Use PASSWORD as the password for simple LDAP authentication."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:416
+#: lib/pp_admintools/app/ldap.py:417
 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:422 lib/pp_admintools/app/set_ldap_password.py:143
+#: lib/pp_admintools/app/ldap.py:423 lib/pp_admintools/app/set_ldap_password.py:143
 #: lib/pp_admintools/app/set_ldap_password.py:145
 msgid "PASSWORD_FILE"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:424
+#: lib/pp_admintools/app/ldap.py:425
 msgid "Use contents of PASSWORD_FILE as the password for simple authentication."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:432 lib/pp_admintools/app/pdns.py:248
+#: lib/pp_admintools/app/ldap.py:433 lib/pp_admintools/app/pdns.py:248
 msgid "INSTANCE"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:435
+#: lib/pp_admintools/app/ldap.py:436
 msgid "If not given, then the instance {!r} will be used."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:439
+#: lib/pp_admintools/app/ldap.py:440
 msgid "The LDAP instance (LDAP cluster) from configuration, where to execute this script."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:443
+#: lib/pp_admintools/app/ldap.py:444
 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,284 +996,284 @@ msgid ""
 "are shown, and the application is exiting."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:471
+#: lib/pp_admintools/app/ldap.py:472
 msgid "Override configured hostname or address of the LDAP server."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:478
+#: lib/pp_admintools/app/ldap.py:479
 msgid "Override the configured port number to connect to the LDAP server."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:483
+#: lib/pp_admintools/app/ldap.py:484
 msgid "Override the configured base DN of the instance used as the root for the LDAP searches."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:492
+#: lib/pp_admintools/app/ldap.py:493
 msgid "Using the given timeout in seconds for all LDAP operations. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:519
+#: lib/pp_admintools/app/ldap.py:520
 msgid "Limiting console timeout to {} seconds due to LDAP timeout."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:530
+#: lib/pp_admintools/app/ldap.py:531
 msgid "Checking given instances."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:534
+#: lib/pp_admintools/app/ldap.py:535
 msgid "Given insts:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:585
+#: lib/pp_admintools/app/ldap.py:592
 msgid "Configured LDAP instances:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:602
+#: lib/pp_admintools/app/ldap.py:612
 msgid "Verifying given instances ..."
 msgstr "Verifying given instances …"
 
-#: lib/pp_admintools/app/ldap.py:638
+#: lib/pp_admintools/app/ldap.py:650
 msgid "Filtered instances:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:646
+#: lib/pp_admintools/app/ldap.py:658
 msgid "LDAP instances to use:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:662
+#: lib/pp_admintools/app/ldap.py:674
 msgid "LDAP instance {!r} not found in configuration or is not usable."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:742
+#: lib/pp_admintools/app/ldap.py:754
 msgid "Preparations ..."
 msgstr "Preparations …"
 
-#: lib/pp_admintools/app/ldap.py:745
+#: lib/pp_admintools/app/ldap.py:757
 msgid "Open all necessary LDAP connections ..."
 msgstr "Open all necessary LDAP connections …"
 
-#: lib/pp_admintools/app/ldap.py:759
+#: lib/pp_admintools/app/ldap.py:771
 msgid "Password of user {usr} on LDAP instance {inst}:"
 msgstr "Password of user {usr} on LDAP instance {inst}:"
 
-#: lib/pp_admintools/app/ldap.py:768
+#: lib/pp_admintools/app/ldap.py:780
 msgid "Info about LDAP server {}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:778
+#: lib/pp_admintools/app/ldap.py:790
 msgid "Trying to get LDAP server object for {} ..."
 msgstr "Trying to get LDAP server object for {} …"
 
-#: lib/pp_admintools/app/ldap.py:794
+#: lib/pp_admintools/app/ldap.py:806
 msgid "Connect options to server {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:801
+#: lib/pp_admintools/app/ldap.py:813
 msgid "LDAP server {s}: {re}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:815
+#: lib/pp_admintools/app/ldap.py:827
 msgid "Connecting to LDAP server {url} as {dn!r} ..."
 msgstr "Connecting to LDAP server {url} as {dn!r} …"
 
-#: lib/pp_admintools/app/ldap.py:823
+#: lib/pp_admintools/app/ldap.py:835
 msgid "Could not connect to LDAP server {url!r} as {user!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:828
+#: lib/pp_admintools/app/ldap.py:840
 msgid "{c} on connecting to LDAP server {url!r} as {user!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:838
+#: lib/pp_admintools/app/ldap.py:850
 msgid "Finishing ..."
 msgstr "Finishing …"
 
-#: lib/pp_admintools/app/ldap.py:849
+#: lib/pp_admintools/app/ldap.py:861
 msgid "Disconnecting from all remaining LDAP instances ..."
 msgstr "Disconnecting from all remaining LDAP instances …"
 
-#: lib/pp_admintools/app/ldap.py:862
+#: lib/pp_admintools/app/ldap.py:874
 msgid "Unbinding from LDAP server {!r} ..."
 msgstr "Unbinding from LDAP server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:869
+#: lib/pp_admintools/app/ldap.py:881
 msgid "Disconnecting from LDAP server {!r} ..."
 msgstr "Disconnecting from LDAP server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:896
+#: lib/pp_admintools/app/ldap.py:908
 msgid "Searching in {uri}/{bdn} for all entries with filter {fltr!r}, giving attributes:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:908
+#: lib/pp_admintools/app/ldap.py:920
 msgid "Result of searching:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:913
+#: lib/pp_admintools/app/ldap.py:925
 msgid "Found entry {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:920 lib/pp_admintools/app/ldap.py:964
+#: lib/pp_admintools/app/ldap.py:932 lib/pp_admintools/app/ldap.py:976
 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:924
+#: lib/pp_admintools/app/ldap.py:936
 msgid "Got response entries:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:928 lib/pp_admintools/app/ldap.py:976
+#: lib/pp_admintools/app/ldap.py:940 lib/pp_admintools/app/ldap.py:988
 msgid "No entry found with filter {fltr!r} in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:952 lib/pp_admintools/app/ldap.py:1006
+#: lib/pp_admintools/app/ldap.py:964 lib/pp_admintools/app/ldap.py:1018
 msgid "Using LDAP filter: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:968 lib/pp_admintools/app/ldap.py:1015
+#: lib/pp_admintools/app/ldap.py:980 lib/pp_admintools/app/ldap.py:1027
 msgid "Result of searching for DNs of all entries:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:972 lib/pp_admintools/app/ldap.py:1019
-#: lib/pp_admintools/app/ldap.py:1117 lib/pp_admintools/app/ldap.py:1170
-#: lib/pp_admintools/app/ldap.py:1223 lib/pp_admintools/app/ldap.py:1328
-#: lib/pp_admintools/app/ldap.py:1528 lib/pp_admintools/app/ldap.py:1562
-#: lib/pp_admintools/app/ldap.py:1596 lib/pp_admintools/app/ldap.py:1630
+#: lib/pp_admintools/app/ldap.py:984 lib/pp_admintools/app/ldap.py:1031
+#: lib/pp_admintools/app/ldap.py:1129 lib/pp_admintools/app/ldap.py:1182
+#: lib/pp_admintools/app/ldap.py:1235 lib/pp_admintools/app/ldap.py:1340
+#: lib/pp_admintools/app/ldap.py:1540 lib/pp_admintools/app/ldap.py:1574
+#: lib/pp_admintools/app/ldap.py:1608 lib/pp_admintools/app/ldap.py:1642
 msgid "Got a response entry:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1002
+#: lib/pp_admintools/app/ldap.py:1014
 msgid "Getting all Entry DNs of LDAP instance {i!r} below {b!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1041
+#: lib/pp_admintools/app/ldap.py:1053
 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:1046
+#: lib/pp_admintools/app/ldap.py:1058
 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:1053
+#: lib/pp_admintools/app/ldap.py:1065
 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:1060
+#: lib/pp_admintools/app/ldap.py:1072
 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:1069 lib/pp_admintools/app/remove_ldap_user.py:318
+#: lib/pp_admintools/app/ldap.py:1081 lib/pp_admintools/app/remove_ldap_user.py:318
 msgid "Empty user given."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1072
+#: lib/pp_admintools/app/ldap.py:1084
 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:1102 lib/pp_admintools/app/ldap.py:1155
-#: lib/pp_admintools/app/ldap.py:1208 lib/pp_admintools/app/ldap.py:1516
-#: lib/pp_admintools/app/ldap.py:1550 lib/pp_admintools/app/ldap.py:1584
-#: lib/pp_admintools/app/ldap.py:1618
+#: lib/pp_admintools/app/ldap.py:1114 lib/pp_admintools/app/ldap.py:1167
+#: lib/pp_admintools/app/ldap.py:1220 lib/pp_admintools/app/ldap.py:1528
+#: lib/pp_admintools/app/ldap.py:1562 lib/pp_admintools/app/ldap.py:1596
+#: lib/pp_admintools/app/ldap.py:1630
 msgid "Searching in {uri}/{bdn} with filter: {fltr}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1113
+#: lib/pp_admintools/app/ldap.py:1125
 msgid "Result of searching for mail address {m!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1124
+#: lib/pp_admintools/app/ldap.py:1136
 msgid "User with mail address {m!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1166
+#: lib/pp_admintools/app/ldap.py:1178
 msgid "Result of searching for uid {u!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1177
+#: lib/pp_admintools/app/ldap.py:1189
 msgid "User with uid {u!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1219
+#: lib/pp_admintools/app/ldap.py:1231
 msgid "Result of searching for CN {cn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1230
+#: lib/pp_admintools/app/ldap.py:1242
 msgid "User with cn {cn!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1247 lib/pp_admintools/app/set_ldap_password.py:409
+#: lib/pp_admintools/app/ldap.py:1259 lib/pp_admintools/app/set_ldap_password.py:409
 msgid "User with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1265
+#: lib/pp_admintools/app/ldap.py:1277
 msgid "ObjectClasses of {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1275
+#: lib/pp_admintools/app/ldap.py:1287
 msgid "Entry {dn!r} in {uri} seems not to be an account."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1297
+#: lib/pp_admintools/app/ldap.py:1309
 msgid "Searching DN {dn!r} in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1314
+#: lib/pp_admintools/app/ldap.py:1326
 msgid "Waiting because of a failing read operation."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1318
+#: lib/pp_admintools/app/ldap.py:1330
 msgid "Error on reading entry {dn!r} from instance {inst!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1324
+#: lib/pp_admintools/app/ldap.py:1336
 msgid "Result of searching for DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1332
+#: lib/pp_admintools/app/ldap.py:1344
 msgid "Entry with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1377
+#: lib/pp_admintools/app/ldap.py:1389
 msgid "Creating entry {dn!r} on {uri}:"
 msgstr "Creating entry {dn!r} on {uri}:"
 
-#: lib/pp_admintools/app/ldap.py:1383
+#: lib/pp_admintools/app/ldap.py:1395
 msgid "Simulation mode - entry will not be created."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1390
+#: lib/pp_admintools/app/ldap.py:1402
 msgid "Creation of entry {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1405
+#: lib/pp_admintools/app/ldap.py:1417
 msgid "Creation status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1407
+#: lib/pp_admintools/app/ldap.py:1419
 msgid "Result of creating:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1410
+#: lib/pp_admintools/app/ldap.py:1422
 msgid "Creation of entry {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1416
+#: lib/pp_admintools/app/ldap.py:1428
 msgid "Creation successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1427
+#: lib/pp_admintools/app/ldap.py:1439
 msgid "Applying changes on {uri} to DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1432
+#: lib/pp_admintools/app/ldap.py:1444
 msgid "Simulation mode - changes are not applied."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1438
+#: lib/pp_admintools/app/ldap.py:1450
 msgid "Modification of {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1440 lib/pp_admintools/app/ldap.py:1459
+#: lib/pp_admintools/app/ldap.py:1452 lib/pp_admintools/app/ldap.py:1471
 #: 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
@@ -1281,72 +1281,72 @@ msgstr ""
 msgid "Changes:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1452
+#: lib/pp_admintools/app/ldap.py:1464
 msgid "Modification status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1454
+#: lib/pp_admintools/app/ldap.py:1466
 msgid "Result of modifying:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1457
+#: lib/pp_admintools/app/ldap.py:1469
 msgid "Modification of {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1462
+#: lib/pp_admintools/app/ldap.py:1474
 msgid "Modification successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1472
+#: lib/pp_admintools/app/ldap.py:1484
 msgid "Deleting LDAP entry {dn!r} on {uri} ..."
 msgstr "Deleting LDAP entry {dn!r} on {uri} …"
 
-#: lib/pp_admintools/app/ldap.py:1477
+#: lib/pp_admintools/app/ldap.py:1489
 msgid "Simulation mode - deletion will not be executed."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1483
+#: lib/pp_admintools/app/ldap.py:1495
 msgid "Deletion of {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1488
+#: lib/pp_admintools/app/ldap.py:1500
 msgid "Deletion status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1490
+#: lib/pp_admintools/app/ldap.py:1502
 msgid "Result of deletion:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1493
+#: lib/pp_admintools/app/ldap.py:1505
 msgid "Deletion of {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1497
+#: lib/pp_admintools/app/ldap.py:1509
 msgid "Deletion successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1646
+#: lib/pp_admintools/app/ldap.py:1658
 msgid "Reading password file {!r} ..."
 msgstr "Reading password file {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:1677
+#: lib/pp_admintools/app/ldap.py:1689
 msgid "Could not detect RDN from DN {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1681
+#: lib/pp_admintools/app/ldap.py:1693
 msgid "Found RDN attribute {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1687
+#: lib/pp_admintools/app/ldap.py:1699
 msgid "RDN attribute {!r} will not be touched."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1693 lib/pp_admintools/app/ldap.py:1712
-#: lib/pp_admintools/app/ldap.py:1790
+#: lib/pp_admintools/app/ldap.py:1705 lib/pp_admintools/app/ldap.py:1724
+#: lib/pp_admintools/app/ldap.py:1802
 msgid "Attribute {!r} will not be touched."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1750
+#: lib/pp_admintools/app/ldap.py:1762
 msgid "Values to removed from attribute {!r}:"
 msgstr ""
 
@@ -1431,7 +1431,7 @@ msgstr ""
 msgid "Did not found sendmail executable."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:98
+#: lib/pp_admintools/app/mirror_ldap.py:100
 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,318 +1440,333 @@ msgid ""
 "values."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:106
+#: lib/pp_admintools/app/mirror_ldap.py:108
 msgid "Do not execute a countdown before starting the application."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:117
+#: lib/pp_admintools/app/mirror_ldap.py:119
 msgid "Miroring options"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:122
+#: lib/pp_admintools/app/mirror_ldap.py:124
 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:129 lib/pp_admintools/app/mk_ldap_passwd.py:121
+#: lib/pp_admintools/app/mirror_ldap.py:131 lib/pp_admintools/app/mk_ldap_passwd.py:121
 msgid "NUMBER"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:131
+#: lib/pp_admintools/app/mirror_ldap.py:133
 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:138
+#: lib/pp_admintools/app/mirror_ldap.py:140
 msgid "Mirror only structural entries (entries with childs)."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:159
+#: lib/pp_admintools/app/mirror_ldap.py:161
 msgid "Limiting the number of entries for mirroring to {} entries."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:163
+#: lib/pp_admintools/app/mirror_ldap.py:165
 msgid "Limition the number of entries for mirroring may only be done in simulation mode."
 msgstr ""
 
 #: lib/pp_admintools/app/mirror_ldap.py:180
+msgid "Data to modify:"
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:182
+msgid "No data to modify found."
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:190
 msgid "Did not found {tgt!r} in {e}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:192
+#: lib/pp_admintools/app/mirror_ldap.py:202
 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:196
+#: lib/pp_admintools/app/mirror_ldap.py:206
 msgid "Got {!r} as the mirror source instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:199 lib/pp_admintools/app/mirror_ldap.py:208
-#: lib/pp_admintools/app/mirror_ldap.py:219
+#: lib/pp_admintools/app/mirror_ldap.py:209 lib/pp_admintools/app/mirror_ldap.py:218
+#: lib/pp_admintools/app/mirror_ldap.py:229
 msgid "Error in configuration:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:200
+#: lib/pp_admintools/app/mirror_ldap.py:210
 msgid "the source LDAP instance {src!r} for mirroring to {tgt!r} does not exists."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:209
+#: lib/pp_admintools/app/mirror_ldap.py:219
 msgid "the source LDAP instance {src!r} must not be the same like the target instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:220
+#: lib/pp_admintools/app/mirror_ldap.py:230
 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:236
-msgid "Start mirroring LDAP instance {src!r} ({src_url}) to instance {tgt!r} ({tgt_url}) [{yes}/{no}]?"
-msgstr "Start mirroring LDAP instance {src!r} ({src_url}) to instance {tgt!r} ({tgt_url}) [{yes}/{no}]?"
+#: lib/pp_admintools/app/mirror_ldap.py:246
+msgid "Start mirroring LDAP instance {src} ({src_url}) to instance {tgt} ({tgt_url}) [{yes}/{no}]?"
+msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:246 lib/pp_admintools/app/mirror_ldap.py:327
+#: lib/pp_admintools/app/mirror_ldap.py:259 lib/pp_admintools/app/mirror_ldap.py:347
 msgid "Interrupted on demand."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:251
+#: lib/pp_admintools/app/mirror_ldap.py:262 lib/pp_admintools/app/mirror_ldap.py:269
 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:262
+#: lib/pp_admintools/app/mirror_ldap.py:282
 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:267
+#: lib/pp_admintools/app/mirror_ldap.py:287
 msgid "Don't waiting after simulated write actions."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:269
+#: lib/pp_admintools/app/mirror_ldap.py:289
 msgid "Don't waiting after write actions, because {} was set to zero."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:272
+#: lib/pp_admintools/app/mirror_ldap.py:292
 msgid "The timeout on LDAP operations is {} seconds."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:286 lib/pp_admintools/app/mirror_ldap.py:304
+#: lib/pp_admintools/app/mirror_ldap.py:306 lib/pp_admintools/app/mirror_ldap.py:324
 msgid "{:>5} entry deleted."
 msgid_plural "{:>5} entries deleted."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:289 lib/pp_admintools/app/mirror_ldap.py:309
+#: lib/pp_admintools/app/mirror_ldap.py:309 lib/pp_admintools/app/mirror_ldap.py:329
 msgid "{:>5} entry updated."
 msgid_plural "{:>5} entries updated."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:292 lib/pp_admintools/app/mirror_ldap.py:314
+#: lib/pp_admintools/app/mirror_ldap.py:312 lib/pp_admintools/app/mirror_ldap.py:334
 msgid "{:>5} entry created."
 msgid_plural "{:>5} entries created."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:299
+#: lib/pp_admintools/app/mirror_ldap.py:319
 msgid "Changes total:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:322 lib/pp_admintools/app/mirror_ldap.py:327
+#: lib/pp_admintools/app/mirror_ldap.py:342 lib/pp_admintools/app/mirror_ldap.py:347
 msgid "Got a {}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:339
+#: lib/pp_admintools/app/mirror_ldap.py:359
 msgid "Trying to get DNs of all entries in the source LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:352 lib/pp_admintools/app/mirror_ldap.py:406
+#: lib/pp_admintools/app/mirror_ldap.py:372 lib/pp_admintools/app/mirror_ldap.py:426
 msgid "Found DNs in instance {!r}:"
 msgstr "Found DNs in instance {!r}:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:369
+#: lib/pp_admintools/app/mirror_ldap.py:389
 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:373
+#: lib/pp_admintools/app/mirror_ldap.py:393
 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:377
+#: lib/pp_admintools/app/mirror_ldap.py:397
 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:385 lib/pp_admintools/app/mirror_ldap.py:439
+#: lib/pp_admintools/app/mirror_ldap.py:405 lib/pp_admintools/app/mirror_ldap.py:459
 msgid "Found structural DNs in instance {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:393
+#: lib/pp_admintools/app/mirror_ldap.py:413
 msgid "Trying to get DNs of all entries in the target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:423
+#: lib/pp_admintools/app/mirror_ldap.py:443
 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:427
+#: lib/pp_admintools/app/mirror_ldap.py:447
 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:431
+#: lib/pp_admintools/app/mirror_ldap.py:451
 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:446
+#: lib/pp_admintools/app/mirror_ldap.py:466
 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:504
+#: lib/pp_admintools/app/mirror_ldap.py:524
 msgid "Removing non structural entries from target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:520 lib/pp_admintools/app/mirror_ldap.py:581
+#: lib/pp_admintools/app/mirror_ldap.py:540 lib/pp_admintools/app/mirror_ldap.py:601
 msgid "Entry {!r} exists on the source instance, will not be removed."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:526
+#: lib/pp_admintools/app/mirror_ldap.py:546
 msgid "Entry {!r} is a structural entry, will not be removed at this point."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:533 lib/pp_admintools/app/mirror_ldap.py:587
-#: lib/pp_admintools/app/mirror_ldap.py:634 lib/pp_admintools/app/mirror_ldap.py:747
-#: lib/pp_admintools/app/mirror_ldap.py:854
+#: 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:974
 msgid "Entry {!r} is set to be kept."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:545
+#: lib/pp_admintools/app/mirror_ldap.py:565
 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:550
+#: lib/pp_admintools/app/mirror_ldap.py:570
 msgid "None not structural entries in target LDAP instance removed."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:564
+#: lib/pp_admintools/app/mirror_ldap.py:584
 msgid "Removing structural entries from target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:592
+#: lib/pp_admintools/app/mirror_ldap.py:612
 msgid "Entry {!r} is set to be synchronized."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:604
+#: lib/pp_admintools/app/mirror_ldap.py:624
 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:609
+#: lib/pp_admintools/app/mirror_ldap.py:629
 msgid "None structural entries in target LDAP instance removed."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:617
+#: lib/pp_admintools/app/mirror_ldap.py:637
 msgid "Mirroring structural entries from source to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:638 lib/pp_admintools/app/mirror_ldap.py:751
-#: lib/pp_admintools/app/mirror_ldap.py:860
+#: lib/pp_admintools/app/mirror_ldap.py:655
+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
+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:980
 msgid "Mirroring entry {!r} ..."
 msgstr "Mirroring entry {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:643 lib/pp_admintools/app/mirror_ldap.py:756
-#: lib/pp_admintools/app/mirror_ldap.py:865
+#: lib/pp_admintools/app/mirror_ldap.py:682 lib/pp_admintools/app/mirror_ldap.py:985
 msgid "Error on reading entry {!r} from source:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:647 lib/pp_admintools/app/mirror_ldap.py:759
-#: lib/pp_admintools/app/mirror_ldap.py:868
+#: lib/pp_admintools/app/mirror_ldap.py:686 lib/pp_admintools/app/mirror_ldap.py:988
 msgid "Did not found {!r} in the source LDAP."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:662 lib/pp_admintools/app/mirror_ldap.py:774
-#: lib/pp_admintools/app/mirror_ldap.py:879
+#: lib/pp_admintools/app/mirror_ldap.py:708 lib/pp_admintools/app/mirror_ldap.py:999
 msgid "Error on reading entry {!r} from target:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:677 lib/pp_admintools/app/mirror_ldap.py:789
-#: lib/pp_admintools/app/mirror_ldap.py:894
+#: lib/pp_admintools/app/mirror_ldap.py:723 lib/pp_admintools/app/mirror_ldap.py:1014
 msgid "Modifying entry {!r} ..."
 msgstr "Modifying entry {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:678 lib/pp_admintools/app/mirror_ldap.py:790
-#: lib/pp_admintools/app/mirror_ldap.py:895
+#: lib/pp_admintools/app/mirror_ldap.py:724 lib/pp_admintools/app/mirror_ldap.py:1015
 msgid "Got modify data for DN {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:689 lib/pp_admintools/app/mirror_ldap.py:801
-#: lib/pp_admintools/app/mirror_ldap.py:906
+#: lib/pp_admintools/app/mirror_ldap.py:734 lib/pp_admintools/app/mirror_ldap.py:1026
 msgid "No changes necessary on DN {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:693 lib/pp_admintools/app/mirror_ldap.py:805
-#: lib/pp_admintools/app/mirror_ldap.py:882
+#: lib/pp_admintools/app/mirror_ldap.py:738 lib/pp_admintools/app/mirror_ldap.py:1002
 msgid "Target entry {!r} not found."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:696 lib/pp_admintools/app/mirror_ldap.py:808
+#: lib/pp_admintools/app/mirror_ldap.py:741
 msgid "Creating entry {!r} ..."
 msgstr "Creating entry {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:697 lib/pp_admintools/app/mirror_ldap.py:809
+#: lib/pp_admintools/app/mirror_ldap.py:742
 msgid "Got create data for DN {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:714
-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:791
+msgid "Modifying source data for {!r} ..."
+msgstr "Modifying source data for {!r} …"
 
-#: lib/pp_admintools/app/mirror_ldap.py:719
-msgid "Mirrored no structural entries to target LDAP instance."
-msgstr ""
+#: lib/pp_admintools/app/mirror_ldap.py:802
+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:727
+#: lib/pp_admintools/app/mirror_ldap.py:848
+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
+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:925
 msgid "Mirroring non-structural entries from source to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:826
+#: lib/pp_admintools/app/mirror_ldap.py:946
 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:831
+#: lib/pp_admintools/app/mirror_ldap.py:951
 msgid "Mirrored none not-structural entries to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:840
+#: lib/pp_admintools/app/mirror_ldap.py:960
 msgid "Mirroring members in group entries from source to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:911
+#: lib/pp_admintools/app/mirror_ldap.py:1031
 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:916
+#: lib/pp_admintools/app/mirror_ldap.py:1036
 msgid "Mirrored no group entries to target LDAP instance."
 msgstr ""
 
@@ -2370,39 +2385,39 @@ msgstr ""
 msgid "Evaluated configuration:"
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:177
+#: lib/pp_admintools/config/ldap.py:178
 msgid "Invalid port {!r} for LDAP server given."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:189
+#: lib/pp_admintools/config/ldap.py:190
 msgid "An empty Base DN for LDAP searches is not allowed."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:282
+#: lib/pp_admintools/config/ldap.py:283
 msgid "Invalid production tier {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:349
+#: lib/pp_admintools/config/ldap.py:369
 msgid "Invalid value {val!r} in section {sec!r} for a LDAP {what}."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:422
+#: lib/pp_admintools/config/ldap.py:442
 msgid "Unknown LDAP configuration key {key} found in section {sec!r}."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:526
+#: lib/pp_admintools/config/ldap.py:546
 msgid "Evaluating LDAP config ..."
 msgstr "Evaluating LDAP config …"
 
-#: lib/pp_admintools/config/ldap.py:530
+#: lib/pp_admintools/config/ldap.py:550
 msgid "Evaluating LDAP section {!r} ..."
 msgstr "Evaluating LDAP section {!r} …"
 
-#: lib/pp_admintools/config/ldap.py:547
+#: lib/pp_admintools/config/ldap.py:567
 msgid "Value {!r} for a timeout is invalid."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:567
+#: lib/pp_admintools/config/ldap.py:587
 msgid "Reading configuration of LDAP instance {!r} ..."
 msgstr "Reading configuration of LDAP instance {!r} …"
 
@@ -2439,14 +2454,30 @@ msgstr ""
 msgid "Found invalid SMTP port number {} in configuration."
 msgstr ""
 
-#: lib/pp_admintools/config/mirror_ldap.py:88 lib/pp_admintools/config/mirror_ldap.py:124
+#: lib/pp_admintools/config/mirror_ldap.py:97 lib/pp_admintools/config/mirror_ldap.py:139
+#: lib/pp_admintools/config/mirror_ldap.py:170 lib/pp_admintools/config/mirror_ldap.py:190
+#: lib/pp_admintools/config/mirror_ldap.py:208 lib/pp_admintools/config/mirror_ldap.py:237
 msgid "Evaluating configuration section {sn!r} ..."
 msgstr "Evaluating configuration section {sn!r} …"
 
-#: lib/pp_admintools/config/mirror_ldap.py:104 lib/pp_admintools/config/mirror_ldap.py:130
+#: lib/pp_admintools/config/mirror_ldap.py:113 lib/pp_admintools/config/mirror_ldap.py:145
+#: lib/pp_admintools/config/mirror_ldap.py:176 lib/pp_admintools/config/mirror_ldap.py:193
+#: lib/pp_admintools/config/mirror_ldap.py:211 lib/pp_admintools/config/mirror_ldap.py:240
 msgid "Section {sn!r} is not a {what}."
 msgstr ""
 
+#: lib/pp_admintools/config/mirror_ldap.py:120
+msgid "Evaluating sub section {sn!r} ..."
+msgstr "Evaluating sub section {sn!r} …"
+
+#: lib/pp_admintools/config/mirror_ldap.py:219
+msgid "Invalid action {a!r} in section {sn!r} found. An action must be one of {lst}."
+msgstr ""
+
+#: lib/pp_admintools/config/mirror_ldap.py:250
+msgid "Empty value for section {sn!r} found."
+msgstr ""
+
 #: lib/pp_admintools/config/pdns.py:242
 msgid "A timeout has to be between 1 and {} seconds."
 msgstr ""
index fc599f8da46460f45ec53b9575a3c63c09d0668a..9fa388f77fd7956eae8079cb53f842d1e7d2dcba 100644 (file)
@@ -8,7 +8,7 @@ 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-24 14:23+0100\n"
+"POT-Creation-Date: 2024-01-26 14:10+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"
@@ -39,8 +39,8 @@ msgid ""
 "Default: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/barracuda_sync.py:149 lib/pp_admintools/app/ldap.py:490
-#: lib/pp_admintools/app/mirror_ldap.py:120 lib/pp_admintools/app/pdns.py:285
+#: lib/pp_admintools/app/barracuda_sync.py:149 lib/pp_admintools/app/ldap.py:491
+#: lib/pp_admintools/app/mirror_ldap.py:122 lib/pp_admintools/app/pdns.py:285
 msgid "SECONDS"
 msgstr ""
 
@@ -76,10 +76,10 @@ 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:987 lib/pp_admintools/app/ldap.py:1120
-#: lib/pp_admintools/app/ldap.py:1173 lib/pp_admintools/app/ldap.py:1226
-#: lib/pp_admintools/app/ldap.py:1531 lib/pp_admintools/app/ldap.py:1565
-#: lib/pp_admintools/app/ldap.py:1599 lib/pp_admintools/app/ldap.py:1633
+#: lib/pp_admintools/app/ldap.py:999 lib/pp_admintools/app/ldap.py:1132
+#: lib/pp_admintools/app/ldap.py:1185 lib/pp_admintools/app/ldap.py:1238
+#: lib/pp_admintools/app/ldap.py:1543 lib/pp_admintools/app/ldap.py:1577
+#: lib/pp_admintools/app/ldap.py:1611 lib/pp_admintools/app/ldap.py:1645
 msgid "Result:"
 msgstr ""
 
@@ -283,7 +283,7 @@ msgstr ""
 msgid "LDAP Entries to modified:"
 msgstr ""
 
-#: lib/pp_admintools/app/barracuda_sync.py:756 lib/pp_admintools/app/ldap.py:1746
+#: lib/pp_admintools/app/barracuda_sync.py:756 lib/pp_admintools/app/ldap.py:1758
 msgid "Values to add to attribute {!r}:"
 msgstr ""
 
@@ -291,11 +291,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:1767
+#: lib/pp_admintools/app/barracuda_sync.py:777 lib/pp_admintools/app/ldap.py:1779
 msgid "Changes for attribute {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/barracuda_sync.py:780 lib/pp_admintools/app/ldap.py:1770
+#: lib/pp_admintools/app/barracuda_sync.py:780 lib/pp_admintools/app/ldap.py:1782
 msgid "No changes to attribute {!r}."
 msgstr ""
 
@@ -353,7 +353,7 @@ 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:332
+#: lib/pp_admintools/app/barracuda_sync.py:972 lib/pp_admintools/app/mirror_ldap.py:352
 msgid "Finished."
 msgstr ""
 
@@ -548,13 +548,13 @@ msgstr ""
 msgid "[{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:261 lib/pp_admintools/app/ldap.py:366
-#: lib/pp_admintools/app/mirror_ldap.py:240 lib/pp_admintools/app/remove_ldap_user.py:308
+#: lib/pp_admintools/app/clean_empty_ldap_groups.py:261 lib/pp_admintools/app/ldap.py:367
+#: 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
 msgid "No"
 msgstr ""
 
-#: lib/pp_admintools/app/clean_empty_ldap_groups.py:261 lib/pp_admintools/app/mirror_ldap.py:240
+#: 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
 msgid "yes"
 msgstr ""
@@ -864,7 +864,7 @@ msgstr ""
 msgid "Checking for dependend unique attribute '"
 msgstr ""
 
-#: lib/pp_admintools/app/duplicate_attribs.py:172 lib/pp_admintools/app/ldap.py:615
+#: lib/pp_admintools/app/duplicate_attribs.py:172 lib/pp_admintools/app/ldap.py:625
 msgid "Used filter:"
 msgstr ""
 
@@ -872,120 +872,120 @@ msgstr ""
 msgid "No duplicates for attribute {!r} found."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:124 lib/pp_admintools/app/ldap.py:297
+#: lib/pp_admintools/app/ldap.py:125 lib/pp_admintools/app/ldap.py:298
 msgid "The path {!r} must be an absolute path."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:130 lib/pp_admintools/app/ldap.py:301
-#: lib/pp_admintools/app/ldap.py:1649
+#: lib/pp_admintools/app/ldap.py:131 lib/pp_admintools/app/ldap.py:302
+#: lib/pp_admintools/app/ldap.py:1661
 msgid "The file {!r} does not exists."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:134 lib/pp_admintools/app/ldap.py:305
-#: lib/pp_admintools/app/ldap.py:1654
+#: lib/pp_admintools/app/ldap.py:135 lib/pp_admintools/app/ldap.py:306
+#: lib/pp_admintools/app/ldap.py:1666
 msgid "The given path {!r} exists, but is not a regular file."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:138 lib/pp_admintools/app/ldap.py:309
-#: lib/pp_admintools/app/ldap.py:1659
+#: lib/pp_admintools/app/ldap.py:139 lib/pp_admintools/app/ldap.py:310
+#: lib/pp_admintools/app/ldap.py:1671
 msgid "The given file {!r} is not readable."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:160
+#: lib/pp_admintools/app/ldap.py:161
 msgid "a port number must be greater than zero and less or equal to {}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:165
+#: lib/pp_admintools/app/ldap.py:166
 msgid "Wrong port number {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:324
+#: lib/pp_admintools/app/ldap.py:325
 msgid "The value {v} for {n} must be greater than zero."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:355
+#: lib/pp_admintools/app/ldap.py:356
 msgid "LDAP options"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:357
+#: lib/pp_admintools/app/ldap.py:358
 msgid "Options for the default LDAP connection"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:359
+#: lib/pp_admintools/app/ldap.py:360
 msgid "Options fo LDAP connections"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:368
+#: lib/pp_admintools/app/ldap.py:369
 msgid "Yes"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:374 lib/pp_admintools/app/ldap.py:470
+#: lib/pp_admintools/app/ldap.py:375 lib/pp_admintools/app/ldap.py:471
 msgid "HOST"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:375
+#: lib/pp_admintools/app/ldap.py:376
 msgid "Hostname or address of the LDAP server to use. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:382
+#: lib/pp_admintools/app/ldap.py:383
 msgid "Use ldaps to connect to the LDAP server. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:387 lib/pp_admintools/app/ldap.py:476
+#: lib/pp_admintools/app/ldap.py:388 lib/pp_admintools/app/ldap.py:477
 #: lib/pp_admintools/app/mail.py:250 lib/pp_admintools/app/pdns.py:274
 msgid "PORT"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:389
+#: lib/pp_admintools/app/ldap.py:390
 msgid "The port number to connect to the LDAP server. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:395
+#: lib/pp_admintools/app/ldap.py:396
 msgid "The base DN used as the root for the LDAP searches. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:402
+#: lib/pp_admintools/app/ldap.py:403
 msgid "The Bind DN to use to connect to the LDAP server. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:410 lib/pp_admintools/app/mk_ldap_passwd.py:131
+#: lib/pp_admintools/app/ldap.py:411 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
 msgid "PASSWORD"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:411
+#: lib/pp_admintools/app/ldap.py:412
 msgid "Use PASSWORD as the password for simple LDAP authentication."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:416
+#: lib/pp_admintools/app/ldap.py:417
 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:422 lib/pp_admintools/app/set_ldap_password.py:143
+#: lib/pp_admintools/app/ldap.py:423 lib/pp_admintools/app/set_ldap_password.py:143
 #: lib/pp_admintools/app/set_ldap_password.py:145
 msgid "PASSWORD_FILE"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:424
+#: lib/pp_admintools/app/ldap.py:425
 msgid "Use contents of PASSWORD_FILE as the password for simple authentication."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:432 lib/pp_admintools/app/pdns.py:248
+#: lib/pp_admintools/app/ldap.py:433 lib/pp_admintools/app/pdns.py:248
 msgid "INSTANCE"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:435
+#: lib/pp_admintools/app/ldap.py:436
 msgid "If not given, then the instance {!r} will be used."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:439
+#: lib/pp_admintools/app/ldap.py:440
 msgid "The LDAP instance (LDAP cluster) from configuration, where to execute this script."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:443
+#: lib/pp_admintools/app/ldap.py:444
 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,284 +993,284 @@ msgid ""
 "are shown, and the application is exiting."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:471
+#: lib/pp_admintools/app/ldap.py:472
 msgid "Override configured hostname or address of the LDAP server."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:478
+#: lib/pp_admintools/app/ldap.py:479
 msgid "Override the configured port number to connect to the LDAP server."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:483
+#: lib/pp_admintools/app/ldap.py:484
 msgid "Override the configured base DN of the instance used as the root for the LDAP searches."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:492
+#: lib/pp_admintools/app/ldap.py:493
 msgid "Using the given timeout in seconds for all LDAP operations. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:519
+#: lib/pp_admintools/app/ldap.py:520
 msgid "Limiting console timeout to {} seconds due to LDAP timeout."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:530
+#: lib/pp_admintools/app/ldap.py:531
 msgid "Checking given instances."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:534
+#: lib/pp_admintools/app/ldap.py:535
 msgid "Given insts:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:585
+#: lib/pp_admintools/app/ldap.py:592
 msgid "Configured LDAP instances:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:602
+#: lib/pp_admintools/app/ldap.py:612
 msgid "Verifying given instances ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:638
+#: lib/pp_admintools/app/ldap.py:650
 msgid "Filtered instances:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:646
+#: lib/pp_admintools/app/ldap.py:658
 msgid "LDAP instances to use:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:662
+#: lib/pp_admintools/app/ldap.py:674
 msgid "LDAP instance {!r} not found in configuration or is not usable."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:742
+#: lib/pp_admintools/app/ldap.py:754
 msgid "Preparations ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:745
+#: lib/pp_admintools/app/ldap.py:757
 msgid "Open all necessary LDAP connections ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:759
+#: lib/pp_admintools/app/ldap.py:771
 msgid "Password of user {usr} on LDAP instance {inst}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:768
+#: lib/pp_admintools/app/ldap.py:780
 msgid "Info about LDAP server {}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:778
+#: lib/pp_admintools/app/ldap.py:790
 msgid "Trying to get LDAP server object for {} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:794
+#: lib/pp_admintools/app/ldap.py:806
 msgid "Connect options to server {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:801
+#: lib/pp_admintools/app/ldap.py:813
 msgid "LDAP server {s}: {re}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:815
+#: lib/pp_admintools/app/ldap.py:827
 msgid "Connecting to LDAP server {url} as {dn!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:823
+#: lib/pp_admintools/app/ldap.py:835
 msgid "Could not connect to LDAP server {url!r} as {user!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:828
+#: lib/pp_admintools/app/ldap.py:840
 msgid "{c} on connecting to LDAP server {url!r} as {user!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:838
+#: lib/pp_admintools/app/ldap.py:850
 msgid "Finishing ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:849
+#: lib/pp_admintools/app/ldap.py:861
 msgid "Disconnecting from all remaining LDAP instances ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:862
+#: lib/pp_admintools/app/ldap.py:874
 msgid "Unbinding from LDAP server {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:869
+#: lib/pp_admintools/app/ldap.py:881
 msgid "Disconnecting from LDAP server {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:896
+#: lib/pp_admintools/app/ldap.py:908
 msgid "Searching in {uri}/{bdn} for all entries with filter {fltr!r}, giving attributes:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:908
+#: lib/pp_admintools/app/ldap.py:920
 msgid "Result of searching:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:913
+#: lib/pp_admintools/app/ldap.py:925
 msgid "Found entry {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:920 lib/pp_admintools/app/ldap.py:964
+#: lib/pp_admintools/app/ldap.py:932 lib/pp_admintools/app/ldap.py:976
 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:924
+#: lib/pp_admintools/app/ldap.py:936
 msgid "Got response entries:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:928 lib/pp_admintools/app/ldap.py:976
+#: lib/pp_admintools/app/ldap.py:940 lib/pp_admintools/app/ldap.py:988
 msgid "No entry found with filter {fltr!r} in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:952 lib/pp_admintools/app/ldap.py:1006
+#: lib/pp_admintools/app/ldap.py:964 lib/pp_admintools/app/ldap.py:1018
 msgid "Using LDAP filter: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:968 lib/pp_admintools/app/ldap.py:1015
+#: lib/pp_admintools/app/ldap.py:980 lib/pp_admintools/app/ldap.py:1027
 msgid "Result of searching for DNs of all entries:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:972 lib/pp_admintools/app/ldap.py:1019
-#: lib/pp_admintools/app/ldap.py:1117 lib/pp_admintools/app/ldap.py:1170
-#: lib/pp_admintools/app/ldap.py:1223 lib/pp_admintools/app/ldap.py:1328
-#: lib/pp_admintools/app/ldap.py:1528 lib/pp_admintools/app/ldap.py:1562
-#: lib/pp_admintools/app/ldap.py:1596 lib/pp_admintools/app/ldap.py:1630
+#: lib/pp_admintools/app/ldap.py:984 lib/pp_admintools/app/ldap.py:1031
+#: lib/pp_admintools/app/ldap.py:1129 lib/pp_admintools/app/ldap.py:1182
+#: lib/pp_admintools/app/ldap.py:1235 lib/pp_admintools/app/ldap.py:1340
+#: lib/pp_admintools/app/ldap.py:1540 lib/pp_admintools/app/ldap.py:1574
+#: lib/pp_admintools/app/ldap.py:1608 lib/pp_admintools/app/ldap.py:1642
 msgid "Got a response entry:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1002
+#: lib/pp_admintools/app/ldap.py:1014
 msgid "Getting all Entry DNs of LDAP instance {i!r} below {b!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1041
+#: lib/pp_admintools/app/ldap.py:1053
 msgid "Trying to evaluate DN of user {user!r} in LDAP instance {inst} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1046
+#: lib/pp_admintools/app/ldap.py:1058
 msgid "Trying to evaluate DN of user {u!r} as a mail address ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1053
+#: lib/pp_admintools/app/ldap.py:1065
 msgid "Trying to evaluate DN of user {u!r} as a LDAP DN ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1060
+#: lib/pp_admintools/app/ldap.py:1072
 msgid "Trying to evaluate DN of user {u!r} as a UID (Posix user name) ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1069 lib/pp_admintools/app/remove_ldap_user.py:318
+#: lib/pp_admintools/app/ldap.py:1081 lib/pp_admintools/app/remove_ldap_user.py:318
 msgid "Empty user given."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1072
+#: lib/pp_admintools/app/ldap.py:1084
 msgid "Trying to evaluate DN of user {u!r} as a CN ({c}) ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1102 lib/pp_admintools/app/ldap.py:1155
-#: lib/pp_admintools/app/ldap.py:1208 lib/pp_admintools/app/ldap.py:1516
-#: lib/pp_admintools/app/ldap.py:1550 lib/pp_admintools/app/ldap.py:1584
-#: lib/pp_admintools/app/ldap.py:1618
+#: lib/pp_admintools/app/ldap.py:1114 lib/pp_admintools/app/ldap.py:1167
+#: lib/pp_admintools/app/ldap.py:1220 lib/pp_admintools/app/ldap.py:1528
+#: lib/pp_admintools/app/ldap.py:1562 lib/pp_admintools/app/ldap.py:1596
+#: lib/pp_admintools/app/ldap.py:1630
 msgid "Searching in {uri}/{bdn} with filter: {fltr}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1113
+#: lib/pp_admintools/app/ldap.py:1125
 msgid "Result of searching for mail address {m!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1124
+#: lib/pp_admintools/app/ldap.py:1136
 msgid "User with mail address {m!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1166
+#: lib/pp_admintools/app/ldap.py:1178
 msgid "Result of searching for uid {u!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1177
+#: lib/pp_admintools/app/ldap.py:1189
 msgid "User with uid {u!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1219
+#: lib/pp_admintools/app/ldap.py:1231
 msgid "Result of searching for CN {cn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1230
+#: lib/pp_admintools/app/ldap.py:1242
 msgid "User with cn {cn!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1247 lib/pp_admintools/app/set_ldap_password.py:409
+#: lib/pp_admintools/app/ldap.py:1259 lib/pp_admintools/app/set_ldap_password.py:409
 msgid "User with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1265
+#: lib/pp_admintools/app/ldap.py:1277
 msgid "ObjectClasses of {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1275
+#: lib/pp_admintools/app/ldap.py:1287
 msgid "Entry {dn!r} in {uri} seems not to be an account."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1297
+#: lib/pp_admintools/app/ldap.py:1309
 msgid "Searching DN {dn!r} in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1314
+#: lib/pp_admintools/app/ldap.py:1326
 msgid "Waiting because of a failing read operation."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1318
+#: lib/pp_admintools/app/ldap.py:1330
 msgid "Error on reading entry {dn!r} from instance {inst!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1324
+#: lib/pp_admintools/app/ldap.py:1336
 msgid "Result of searching for DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1332
+#: lib/pp_admintools/app/ldap.py:1344
 msgid "Entry with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1377
+#: lib/pp_admintools/app/ldap.py:1389
 msgid "Creating entry {dn!r} on {uri}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1383
+#: lib/pp_admintools/app/ldap.py:1395
 msgid "Simulation mode - entry will not be created."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1390
+#: lib/pp_admintools/app/ldap.py:1402
 msgid "Creation of entry {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1405
+#: lib/pp_admintools/app/ldap.py:1417
 msgid "Creation status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1407
+#: lib/pp_admintools/app/ldap.py:1419
 msgid "Result of creating:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1410
+#: lib/pp_admintools/app/ldap.py:1422
 msgid "Creation of entry {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1416
+#: lib/pp_admintools/app/ldap.py:1428
 msgid "Creation successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1427
+#: lib/pp_admintools/app/ldap.py:1439
 msgid "Applying changes on {uri} to DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1432
+#: lib/pp_admintools/app/ldap.py:1444
 msgid "Simulation mode - changes are not applied."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1438
+#: lib/pp_admintools/app/ldap.py:1450
 msgid "Modification of {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1440 lib/pp_admintools/app/ldap.py:1459
+#: lib/pp_admintools/app/ldap.py:1452 lib/pp_admintools/app/ldap.py:1471
 #: 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
@@ -1278,72 +1278,72 @@ msgstr ""
 msgid "Changes:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1452
+#: lib/pp_admintools/app/ldap.py:1464
 msgid "Modification status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1454
+#: lib/pp_admintools/app/ldap.py:1466
 msgid "Result of modifying:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1457
+#: lib/pp_admintools/app/ldap.py:1469
 msgid "Modification of {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1462
+#: lib/pp_admintools/app/ldap.py:1474
 msgid "Modification successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1472
+#: lib/pp_admintools/app/ldap.py:1484
 msgid "Deleting LDAP entry {dn!r} on {uri} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1477
+#: lib/pp_admintools/app/ldap.py:1489
 msgid "Simulation mode - deletion will not be executed."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1483
+#: lib/pp_admintools/app/ldap.py:1495
 msgid "Deletion of {dn!r} was NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1488
+#: lib/pp_admintools/app/ldap.py:1500
 msgid "Deletion status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1490
+#: lib/pp_admintools/app/ldap.py:1502
 msgid "Result of deletion:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1493
+#: lib/pp_admintools/app/ldap.py:1505
 msgid "Deletion of {dn!r} was NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1497
+#: lib/pp_admintools/app/ldap.py:1509
 msgid "Deletion successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1646
+#: lib/pp_admintools/app/ldap.py:1658
 msgid "Reading password file {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1677
+#: lib/pp_admintools/app/ldap.py:1689
 msgid "Could not detect RDN from DN {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1681
+#: lib/pp_admintools/app/ldap.py:1693
 msgid "Found RDN attribute {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1687
+#: lib/pp_admintools/app/ldap.py:1699
 msgid "RDN attribute {!r} will not be touched."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1693 lib/pp_admintools/app/ldap.py:1712
-#: lib/pp_admintools/app/ldap.py:1790
+#: lib/pp_admintools/app/ldap.py:1705 lib/pp_admintools/app/ldap.py:1724
+#: lib/pp_admintools/app/ldap.py:1802
 msgid "Attribute {!r} will not be touched."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1750
+#: lib/pp_admintools/app/ldap.py:1762
 msgid "Values to removed from attribute {!r}:"
 msgstr ""
 
@@ -1428,7 +1428,7 @@ msgstr ""
 msgid "Did not found sendmail executable."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:98
+#: lib/pp_admintools/app/mirror_ldap.py:100
 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,318 +1437,333 @@ msgid ""
 "values."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:106
+#: lib/pp_admintools/app/mirror_ldap.py:108
 msgid "Do not execute a countdown before starting the application."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:117
+#: lib/pp_admintools/app/mirror_ldap.py:119
 msgid "Miroring options"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:122
+#: lib/pp_admintools/app/mirror_ldap.py:124
 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:129 lib/pp_admintools/app/mk_ldap_passwd.py:121
+#: lib/pp_admintools/app/mirror_ldap.py:131 lib/pp_admintools/app/mk_ldap_passwd.py:121
 msgid "NUMBER"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:131
+#: lib/pp_admintools/app/mirror_ldap.py:133
 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:138
+#: lib/pp_admintools/app/mirror_ldap.py:140
 msgid "Mirror only structural entries (entries with childs)."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:159
+#: lib/pp_admintools/app/mirror_ldap.py:161
 msgid "Limiting the number of entries for mirroring to {} entries."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:163
+#: lib/pp_admintools/app/mirror_ldap.py:165
 msgid "Limition the number of entries for mirroring may only be done in simulation mode."
 msgstr ""
 
 #: lib/pp_admintools/app/mirror_ldap.py:180
+msgid "Data to modify:"
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:182
+msgid "No data to modify found."
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:190
 msgid "Did not found {tgt!r} in {e}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:192
+#: lib/pp_admintools/app/mirror_ldap.py:202
 msgid "Checking mirror source instance for target instance {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:196
+#: lib/pp_admintools/app/mirror_ldap.py:206
 msgid "Got {!r} as the mirror source instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:199 lib/pp_admintools/app/mirror_ldap.py:208
-#: lib/pp_admintools/app/mirror_ldap.py:219
+#: lib/pp_admintools/app/mirror_ldap.py:209 lib/pp_admintools/app/mirror_ldap.py:218
+#: lib/pp_admintools/app/mirror_ldap.py:229
 msgid "Error in configuration:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:200
+#: lib/pp_admintools/app/mirror_ldap.py:210
 msgid "the source LDAP instance {src!r} for mirroring to {tgt!r} does not exists."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:209
+#: lib/pp_admintools/app/mirror_ldap.py:219
 msgid "the source LDAP instance {src!r} must not be the same like the target instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:220
+#: lib/pp_admintools/app/mirror_ldap.py:230
 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:236
-msgid "Start mirroring LDAP instance {src!r} ({src_url}) to instance {tgt!r} ({tgt_url}) [{yes}/{no}]?"
+#: lib/pp_admintools/app/mirror_ldap.py:246
+msgid "Start mirroring LDAP instance {src} ({src_url}) to instance {tgt} ({tgt_url}) [{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:246 lib/pp_admintools/app/mirror_ldap.py:327
+#: lib/pp_admintools/app/mirror_ldap.py:259 lib/pp_admintools/app/mirror_ldap.py:347
 msgid "Interrupted on demand."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:251
+#: lib/pp_admintools/app/mirror_ldap.py:262 lib/pp_admintools/app/mirror_ldap.py:269
 msgid "Start mirroring LDAP instance {src!r} ({src_url}) to instance {tgt!r} ({tgt_url}) ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:262
+#: lib/pp_admintools/app/mirror_ldap.py:282
 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:267
+#: lib/pp_admintools/app/mirror_ldap.py:287
 msgid "Don't waiting after simulated write actions."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:269
+#: lib/pp_admintools/app/mirror_ldap.py:289
 msgid "Don't waiting after write actions, because {} was set to zero."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:272
+#: lib/pp_admintools/app/mirror_ldap.py:292
 msgid "The timeout on LDAP operations is {} seconds."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:286 lib/pp_admintools/app/mirror_ldap.py:304
+#: lib/pp_admintools/app/mirror_ldap.py:306 lib/pp_admintools/app/mirror_ldap.py:324
 msgid "{:>5} entry deleted."
 msgid_plural "{:>5} entries deleted."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:289 lib/pp_admintools/app/mirror_ldap.py:309
+#: lib/pp_admintools/app/mirror_ldap.py:309 lib/pp_admintools/app/mirror_ldap.py:329
 msgid "{:>5} entry updated."
 msgid_plural "{:>5} entries updated."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:292 lib/pp_admintools/app/mirror_ldap.py:314
+#: lib/pp_admintools/app/mirror_ldap.py:312 lib/pp_admintools/app/mirror_ldap.py:334
 msgid "{:>5} entry created."
 msgid_plural "{:>5} entries created."
 msgstr[0] ""
 msgstr[1] ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:299
+#: lib/pp_admintools/app/mirror_ldap.py:319
 msgid "Changes total:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:322 lib/pp_admintools/app/mirror_ldap.py:327
+#: lib/pp_admintools/app/mirror_ldap.py:342 lib/pp_admintools/app/mirror_ldap.py:347
 msgid "Got a {}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:339
+#: lib/pp_admintools/app/mirror_ldap.py:359
 msgid "Trying to get DNs of all entries in the source LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:352 lib/pp_admintools/app/mirror_ldap.py:406
+#: lib/pp_admintools/app/mirror_ldap.py:372 lib/pp_admintools/app/mirror_ldap.py:426
 msgid "Found DNs in instance {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:369
+#: lib/pp_admintools/app/mirror_ldap.py:389
 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:373
+#: lib/pp_admintools/app/mirror_ldap.py:393
 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:377
+#: lib/pp_admintools/app/mirror_ldap.py:397
 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:385 lib/pp_admintools/app/mirror_ldap.py:439
+#: lib/pp_admintools/app/mirror_ldap.py:405 lib/pp_admintools/app/mirror_ldap.py:459
 msgid "Found structural DNs in instance {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:393
+#: lib/pp_admintools/app/mirror_ldap.py:413
 msgid "Trying to get DNs of all entries in the target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:423
+#: lib/pp_admintools/app/mirror_ldap.py:443
 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:427
+#: lib/pp_admintools/app/mirror_ldap.py:447
 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:431
+#: lib/pp_admintools/app/mirror_ldap.py:451
 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:446
+#: lib/pp_admintools/app/mirror_ldap.py:466
 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:504
+#: lib/pp_admintools/app/mirror_ldap.py:524
 msgid "Removing non structural entries from target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:520 lib/pp_admintools/app/mirror_ldap.py:581
+#: lib/pp_admintools/app/mirror_ldap.py:540 lib/pp_admintools/app/mirror_ldap.py:601
 msgid "Entry {!r} exists on the source instance, will not be removed."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:526
+#: lib/pp_admintools/app/mirror_ldap.py:546
 msgid "Entry {!r} is a structural entry, will not be removed at this point."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:533 lib/pp_admintools/app/mirror_ldap.py:587
-#: lib/pp_admintools/app/mirror_ldap.py:634 lib/pp_admintools/app/mirror_ldap.py:747
-#: lib/pp_admintools/app/mirror_ldap.py:854
+#: 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:974
 msgid "Entry {!r} is set to be kept."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:545
+#: lib/pp_admintools/app/mirror_ldap.py:565
 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:550
+#: lib/pp_admintools/app/mirror_ldap.py:570
 msgid "None not structural entries in target LDAP instance removed."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:564
+#: lib/pp_admintools/app/mirror_ldap.py:584
 msgid "Removing structural entries from target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:592
+#: lib/pp_admintools/app/mirror_ldap.py:612
 msgid "Entry {!r} is set to be synchronized."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:604
+#: lib/pp_admintools/app/mirror_ldap.py:624
 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:609
+#: lib/pp_admintools/app/mirror_ldap.py:629
 msgid "None structural entries in target LDAP instance removed."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:617
+#: lib/pp_admintools/app/mirror_ldap.py:637
 msgid "Mirroring structural entries from source to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:638 lib/pp_admintools/app/mirror_ldap.py:751
-#: lib/pp_admintools/app/mirror_ldap.py:860
+#: lib/pp_admintools/app/mirror_ldap.py:655
+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
+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:980
 msgid "Mirroring entry {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:643 lib/pp_admintools/app/mirror_ldap.py:756
-#: lib/pp_admintools/app/mirror_ldap.py:865
+#: lib/pp_admintools/app/mirror_ldap.py:682 lib/pp_admintools/app/mirror_ldap.py:985
 msgid "Error on reading entry {!r} from source:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:647 lib/pp_admintools/app/mirror_ldap.py:759
-#: lib/pp_admintools/app/mirror_ldap.py:868
+#: lib/pp_admintools/app/mirror_ldap.py:686 lib/pp_admintools/app/mirror_ldap.py:988
 msgid "Did not found {!r} in the source LDAP."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:662 lib/pp_admintools/app/mirror_ldap.py:774
-#: lib/pp_admintools/app/mirror_ldap.py:879
+#: lib/pp_admintools/app/mirror_ldap.py:708 lib/pp_admintools/app/mirror_ldap.py:999
 msgid "Error on reading entry {!r} from target:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:677 lib/pp_admintools/app/mirror_ldap.py:789
-#: lib/pp_admintools/app/mirror_ldap.py:894
+#: lib/pp_admintools/app/mirror_ldap.py:723 lib/pp_admintools/app/mirror_ldap.py:1014
 msgid "Modifying entry {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:678 lib/pp_admintools/app/mirror_ldap.py:790
-#: lib/pp_admintools/app/mirror_ldap.py:895
+#: lib/pp_admintools/app/mirror_ldap.py:724 lib/pp_admintools/app/mirror_ldap.py:1015
 msgid "Got modify data for DN {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:689 lib/pp_admintools/app/mirror_ldap.py:801
-#: lib/pp_admintools/app/mirror_ldap.py:906
+#: lib/pp_admintools/app/mirror_ldap.py:734 lib/pp_admintools/app/mirror_ldap.py:1026
 msgid "No changes necessary on DN {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:693 lib/pp_admintools/app/mirror_ldap.py:805
-#: lib/pp_admintools/app/mirror_ldap.py:882
+#: lib/pp_admintools/app/mirror_ldap.py:738 lib/pp_admintools/app/mirror_ldap.py:1002
 msgid "Target entry {!r} not found."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:696 lib/pp_admintools/app/mirror_ldap.py:808
+#: lib/pp_admintools/app/mirror_ldap.py:741
 msgid "Creating entry {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:697 lib/pp_admintools/app/mirror_ldap.py:809
+#: lib/pp_admintools/app/mirror_ldap.py:742
 msgid "Got create data for DN {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:714
-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:791
+msgid "Modifying source data for {!r} ..."
+msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:719
-msgid "Mirrored no structural entries to target LDAP instance."
+#: lib/pp_admintools/app/mirror_ldap.py:802
+msgid "Replacing attribute {a!r} in entry {dn!r} ..."
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:848
+msgid "Deleting attribute {a!r} from entry {dn!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:727
+#: lib/pp_admintools/app/mirror_ldap.py:885
+msgid "Adding attribute {a!r} to entry {dn!r} ..."
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:925
 msgid "Mirroring non-structural entries from source to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:826
+#: lib/pp_admintools/app/mirror_ldap.py:946
 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:831
+#: lib/pp_admintools/app/mirror_ldap.py:951
 msgid "Mirrored none not-structural entries to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:840
+#: lib/pp_admintools/app/mirror_ldap.py:960
 msgid "Mirroring members in group entries from source to target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:911
+#: lib/pp_admintools/app/mirror_ldap.py:1031
 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:916
+#: lib/pp_admintools/app/mirror_ldap.py:1036
 msgid "Mirrored no group entries to target LDAP instance."
 msgstr ""
 
@@ -2367,39 +2382,39 @@ msgstr ""
 msgid "Evaluated configuration:"
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:177
+#: lib/pp_admintools/config/ldap.py:178
 msgid "Invalid port {!r} for LDAP server given."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:189
+#: lib/pp_admintools/config/ldap.py:190
 msgid "An empty Base DN for LDAP searches is not allowed."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:282
+#: lib/pp_admintools/config/ldap.py:283
 msgid "Invalid production tier {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:349
+#: lib/pp_admintools/config/ldap.py:369
 msgid "Invalid value {val!r} in section {sec!r} for a LDAP {what}."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:422
+#: lib/pp_admintools/config/ldap.py:442
 msgid "Unknown LDAP configuration key {key} found in section {sec!r}."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:526
+#: lib/pp_admintools/config/ldap.py:546
 msgid "Evaluating LDAP config ..."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:530
+#: lib/pp_admintools/config/ldap.py:550
 msgid "Evaluating LDAP section {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:547
+#: lib/pp_admintools/config/ldap.py:567
 msgid "Value {!r} for a timeout is invalid."
 msgstr ""
 
-#: lib/pp_admintools/config/ldap.py:567
+#: lib/pp_admintools/config/ldap.py:587
 msgid "Reading configuration of LDAP instance {!r} ..."
 msgstr ""
 
@@ -2436,14 +2451,30 @@ msgstr ""
 msgid "Found invalid SMTP port number {} in configuration."
 msgstr ""
 
-#: lib/pp_admintools/config/mirror_ldap.py:88 lib/pp_admintools/config/mirror_ldap.py:124
+#: lib/pp_admintools/config/mirror_ldap.py:97 lib/pp_admintools/config/mirror_ldap.py:139
+#: lib/pp_admintools/config/mirror_ldap.py:170 lib/pp_admintools/config/mirror_ldap.py:190
+#: lib/pp_admintools/config/mirror_ldap.py:208 lib/pp_admintools/config/mirror_ldap.py:237
 msgid "Evaluating configuration section {sn!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/config/mirror_ldap.py:104 lib/pp_admintools/config/mirror_ldap.py:130
+#: lib/pp_admintools/config/mirror_ldap.py:113 lib/pp_admintools/config/mirror_ldap.py:145
+#: lib/pp_admintools/config/mirror_ldap.py:176 lib/pp_admintools/config/mirror_ldap.py:193
+#: lib/pp_admintools/config/mirror_ldap.py:211 lib/pp_admintools/config/mirror_ldap.py:240
 msgid "Section {sn!r} is not a {what}."
 msgstr ""
 
+#: lib/pp_admintools/config/mirror_ldap.py:120
+msgid "Evaluating sub section {sn!r} ..."
+msgstr ""
+
+#: lib/pp_admintools/config/mirror_ldap.py:219
+msgid "Invalid action {a!r} in section {sn!r} found. An action must be one of {lst}."
+msgstr ""
+
+#: lib/pp_admintools/config/mirror_ldap.py:250
+msgid "Empty value for section {sn!r} found."
+msgstr ""
+
 #: lib/pp_admintools/config/pdns.py:242
 msgid "A timeout has to be between 1 and {} seconds."
 msgstr ""