]> Frank Brehm's Git Trees - pixelpark/pp-admin-tools.git/commitdiff
Translations
authorFrank Brehm <frank@brehm-online.com>
Mon, 31 Oct 2022 17:05:29 +0000 (18:05 +0100)
committerFrank Brehm <frank@brehm-online.com>
Mon, 31 Oct 2022 17:05:29 +0000 (18:05 +0100)
locale/de_DE/LC_MESSAGES/pp_admintools.po
locale/en_US/LC_MESSAGES/pp_admintools.po
locale/pp_admintools.pot

index 77ea13388b9dcfd99cbf685cef9ee5f00c1fbc6d..afafff4c4c562daa8d59d5f5d10db6e6927e7f57 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pp_admintools 0.9.1\n"
 "Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2022-10-27 14:45+0200\n"
+"POT-Creation-Date: 2022-10-31 17:55+0100\n"
 "PO-Revision-Date: 2022-10-20 17:12+0200\n"
 "Last-Translator: Frank Brehm <frank.brehm@pixelpark.com>\n"
 "Language: de_DE\n"
@@ -120,10 +120,10 @@ msgid "Executing: {}"
 msgstr "Führe aus: {}"
 
 #: lib/pp_admintools/app/dns_deploy_zones.py:453 lib/pp_admintools/app/dns_deploy_zones.py:807
-#: lib/pp_admintools/app/ldap.py:797 lib/pp_admintools/app/ldap.py:927
-#: lib/pp_admintools/app/ldap.py:980 lib/pp_admintools/app/ldap.py:1033
-#: lib/pp_admintools/app/ldap.py:1264 lib/pp_admintools/app/ldap.py:1298
-#: lib/pp_admintools/app/ldap.py:1332 lib/pp_admintools/app/ldap.py:1366
+#: lib/pp_admintools/app/ldap.py:805 lib/pp_admintools/app/ldap.py:935
+#: lib/pp_admintools/app/ldap.py:988 lib/pp_admintools/app/ldap.py:1041
+#: lib/pp_admintools/app/ldap.py:1272 lib/pp_admintools/app/ldap.py:1306
+#: lib/pp_admintools/app/ldap.py:1340 lib/pp_admintools/app/ldap.py:1374
 msgid "Result:"
 msgstr "Ergebnis:"
 
@@ -287,94 +287,94 @@ msgstr "Neu starten {} …"
 msgid "Reloading {} ..."
 msgstr "Reload {} …"
 
-#: lib/pp_admintools/app/ldap.py:112 lib/pp_admintools/app/ldap.py:272
+#: lib/pp_admintools/app/ldap.py:117 lib/pp_admintools/app/ldap.py:280
 msgid "The path {!r} must be an absolute path."
 msgstr "Der Pfad {!r} muss ein absoluter Pfad sein."
 
-#: lib/pp_admintools/app/ldap.py:118 lib/pp_admintools/app/ldap.py:276
-#: lib/pp_admintools/app/ldap.py:1380
+#: lib/pp_admintools/app/ldap.py:123 lib/pp_admintools/app/ldap.py:284
+#: lib/pp_admintools/app/ldap.py:1388
 msgid "The file {!r} does not exists."
 msgstr "Die Datei {!r} existiert nicht."
 
-#: lib/pp_admintools/app/ldap.py:122 lib/pp_admintools/app/ldap.py:280
-#: lib/pp_admintools/app/ldap.py:1385
+#: lib/pp_admintools/app/ldap.py:127 lib/pp_admintools/app/ldap.py:288
+#: lib/pp_admintools/app/ldap.py:1393
 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:126 lib/pp_admintools/app/ldap.py:284
-#: lib/pp_admintools/app/ldap.py:1390
+#: lib/pp_admintools/app/ldap.py:131 lib/pp_admintools/app/ldap.py:292
+#: lib/pp_admintools/app/ldap.py:1398
 msgid "The given file {!r} is not readable."
 msgstr "Die angegebene Datei {} ist nicht lesbar."
 
-#: lib/pp_admintools/app/ldap.py:147
+#: lib/pp_admintools/app/ldap.py:152
 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:152
+#: lib/pp_admintools/app/ldap.py:157
 msgid "Wrong port number {!r}:"
 msgstr "Ungültige Portnummer {!r}."
 
-#: lib/pp_admintools/app/ldap.py:317
+#: lib/pp_admintools/app/ldap.py:325
 msgid "LDAP options"
 msgstr "LDAP-Optionen"
 
-#: lib/pp_admintools/app/ldap.py:319
+#: lib/pp_admintools/app/ldap.py:327
 msgid "Options for the default LDAP connection"
 msgstr "Optionen für die Vorgabe-LDAP-Verbindung"
 
-#: lib/pp_admintools/app/ldap.py:321
+#: lib/pp_admintools/app/ldap.py:329
 msgid "Options fo LDAP connections"
 msgstr "Optionen für die LDAP-Verbindungen"
 
-#: lib/pp_admintools/app/ldap.py:328 lib/pp_admintools/app/mirror_ldap.py:235
+#: lib/pp_admintools/app/ldap.py:336 lib/pp_admintools/app/mirror_ldap.py:238
 #: lib/pp_admintools/app/remove_ldap_user.py:280 lib/pp_admintools/app/set_ldap_password.py:585
 msgid "No"
 msgstr "Nein"
 
-#: lib/pp_admintools/app/ldap.py:330
+#: lib/pp_admintools/app/ldap.py:338
 msgid "Yes"
 msgstr "Ja"
 
-#: lib/pp_admintools/app/ldap.py:336
+#: lib/pp_admintools/app/ldap.py:344
 msgid "HOST"
 msgstr "HOST"
 
-#: lib/pp_admintools/app/ldap.py:337
+#: lib/pp_admintools/app/ldap.py:345
 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:344
+#: lib/pp_admintools/app/ldap.py:352
 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:349 lib/pp_admintools/app/mail.py:261
+#: lib/pp_admintools/app/ldap.py:357 lib/pp_admintools/app/mail.py:261
 #: lib/pp_admintools/app/pdns.py:272
 msgid "PORT"
 msgstr "PORT"
 
-#: lib/pp_admintools/app/ldap.py:351
+#: lib/pp_admintools/app/ldap.py:359
 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:357
+#: lib/pp_admintools/app/ldap.py:365
 msgid "The base DN used as the root for the LDAP searches. Default: {!r}"
 msgstr "Die Basis-DN, die als Ausgangspunt bei LDAP-Suchen verwendet werden soll. Vorgabe: {!r}"
 
-#: lib/pp_admintools/app/ldap.py:364
+#: lib/pp_admintools/app/ldap.py:372
 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:372 lib/pp_admintools/app/set_ldap_password.py:206
+#: lib/pp_admintools/app/ldap.py:380 lib/pp_admintools/app/set_ldap_password.py:206
 #: lib/pp_admintools/app/set_ldap_password.py:207 lib/pp_admintools/app/set_ldap_password.py:224
 #: lib/pp_admintools/app/set_ldap_password.py:227
 msgid "PASSWORD"
 msgstr "PASSWORT"
 
-#: lib/pp_admintools/app/ldap.py:373
+#: lib/pp_admintools/app/ldap.py:381
 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:378
+#: lib/pp_admintools/app/ldap.py:386
 msgid ""
 "Prompt for simple LDAP authentication. This is used instead of specifying the password on the "
 "command line."
@@ -382,30 +382,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:384 lib/pp_admintools/app/set_ldap_password.py:218
+#: lib/pp_admintools/app/ldap.py:392 lib/pp_admintools/app/set_ldap_password.py:218
 #: lib/pp_admintools/app/set_ldap_password.py:220
 msgid "PASSWORD_FILE"
 msgstr "PASSWORT_DATEI"
 
-#: lib/pp_admintools/app/ldap.py:386
+#: lib/pp_admintools/app/ldap.py:394
 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:394 lib/pp_admintools/app/pdns.py:246
+#: lib/pp_admintools/app/ldap.py:402 lib/pp_admintools/app/pdns.py:246
 msgid "INSTANCE"
 msgstr "INSTANZ"
 
-#: lib/pp_admintools/app/ldap.py:397
+#: lib/pp_admintools/app/ldap.py:405
 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:400
+#: lib/pp_admintools/app/ldap.py:408
 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:404
+#: lib/pp_admintools/app/ldap.py:412
 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} "
@@ -417,252 +417,277 @@ 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:430 lib/pp_admintools/app/mirror_ldap.py:114
+#: lib/pp_admintools/app/ldap.py:438 lib/pp_admintools/app/mirror_ldap.py:117
 msgid "SECONDS"
 msgstr "SEKUNDEN"
 
-#: lib/pp_admintools/app/ldap.py:432
+#: lib/pp_admintools/app/ldap.py:440
 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:466
+#: lib/pp_admintools/app/ldap.py:474
 msgid "Checking given instances."
 msgstr "Überprüfe die übergebenen Instanzen."
 
-#: lib/pp_admintools/app/ldap.py:470
+#: lib/pp_admintools/app/ldap.py:478
 msgid "Given insts:"
 msgstr "Übergebene Instanzen:"
 
-#: lib/pp_admintools/app/ldap.py:521
+#: lib/pp_admintools/app/ldap.py:529
 msgid "Configured LDAP instances:"
 msgstr "Konfigurierte LDAP-Instanzen:"
 
-#: lib/pp_admintools/app/ldap.py:538
+#: lib/pp_admintools/app/ldap.py:546
 msgid "Verifying given instances ..."
 msgstr "Überprüfene Instanzen …"
 
-#: lib/pp_admintools/app/ldap.py:551
+#: lib/pp_admintools/app/ldap.py:559
 msgid "Used filter:"
 msgstr "Verwendeter Filter:"
 
-#: lib/pp_admintools/app/ldap.py:576
+#: lib/pp_admintools/app/ldap.py:584
 msgid "LDAP instances to use:"
 msgstr "Verwendete LDAP-Instanzen:"
 
-#: lib/pp_admintools/app/ldap.py:592
+#: lib/pp_admintools/app/ldap.py:600
 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:647
+#: lib/pp_admintools/app/ldap.py:655
 msgid "Preparations ..."
 msgstr "Vorbereitungen …"
 
-#: lib/pp_admintools/app/ldap.py:650
+#: lib/pp_admintools/app/ldap.py:658
 msgid "Open all necessary LDAP connections ..."
 msgstr "Öffne alle notwendigen LDAP-Verbindungen …"
 
-#: lib/pp_admintools/app/ldap.py:664
+#: lib/pp_admintools/app/ldap.py:672
 msgid "Password of user {usr} on LDAP instance {inst}:"
 msgstr "Passwort des Nutzers {usr} der LDAP-Instanz {inst}:"
 
-#: lib/pp_admintools/app/ldap.py:673
+#: lib/pp_admintools/app/ldap.py:681
 msgid "Info about LDAP server {}:"
 msgstr "Informationen zu LDAP-Server {}:"
 
-#: lib/pp_admintools/app/ldap.py:683
+#: lib/pp_admintools/app/ldap.py:691
 msgid "Trying to get LDAP server object for {} ..."
 msgstr "Versuche ein LDAP-Server-Objekt für {} zu bekommen …"
 
-#: lib/pp_admintools/app/ldap.py:699
+#: lib/pp_admintools/app/ldap.py:707
 msgid "Connect options to server {!r}:"
 msgstr "Verbindungs-Optionen zu Server {!r}:"
 
-#: lib/pp_admintools/app/ldap.py:706
+#: lib/pp_admintools/app/ldap.py:714
 msgid "LDAP server {s}: {re}"
 msgstr "LDAP-Server {s}: {re}"
 
-#: lib/pp_admintools/app/ldap.py:720
+#: lib/pp_admintools/app/ldap.py:728
 msgid "Connecting to LDAP server {url} as {dn!r} ..."
 msgstr "Verbinde mit LDAP-Server {url} als {dn!r} …"
 
-#: lib/pp_admintools/app/ldap.py:732
+#: lib/pp_admintools/app/ldap.py:740
 msgid "Finishing ..."
 msgstr "Beende …"
 
-#: lib/pp_admintools/app/ldap.py:741
+#: lib/pp_admintools/app/ldap.py:749
 msgid "Disconnecting from all remaining LDAP instances ..."
 msgstr "Trenne Verbindung zu allen verbleibenden LDAP-Instanzen …"
 
-#: lib/pp_admintools/app/ldap.py:754
+#: lib/pp_admintools/app/ldap.py:762
 msgid "Unbinding from LDAP server {!r} ..."
 msgstr "Trenne Bindung zu LDAP-Server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:761
+#: lib/pp_admintools/app/ldap.py:769
 msgid "Disconnecting from LDAP server {!r} ..."
 msgstr "Trenne Verbindung zu LDAP-Server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:783 lib/pp_admintools/app/ldap.py:822
+#: lib/pp_admintools/app/ldap.py:791 lib/pp_admintools/app/ldap.py:830
 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:787 lib/pp_admintools/app/ldap.py:826
-#: lib/pp_admintools/app/ldap.py:924 lib/pp_admintools/app/ldap.py:977
-#: lib/pp_admintools/app/ldap.py:1030 lib/pp_admintools/app/ldap.py:1118
-#: lib/pp_admintools/app/ldap.py:1261 lib/pp_admintools/app/ldap.py:1295
-#: lib/pp_admintools/app/ldap.py:1329 lib/pp_admintools/app/ldap.py:1363
+#: lib/pp_admintools/app/ldap.py:795 lib/pp_admintools/app/ldap.py:834
+#: lib/pp_admintools/app/ldap.py:932 lib/pp_admintools/app/ldap.py:985
+#: lib/pp_admintools/app/ldap.py:1038 lib/pp_admintools/app/ldap.py:1126
+#: lib/pp_admintools/app/ldap.py:1269 lib/pp_admintools/app/ldap.py:1303
+#: lib/pp_admintools/app/ldap.py:1337 lib/pp_admintools/app/ldap.py:1371
 msgid "Got a response entry:"
 msgstr "Erhaltener Antwort-Eintrag:"
 
-#: lib/pp_admintools/app/ldap.py:812
+#: lib/pp_admintools/app/ldap.py:820
 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:848
+#: lib/pp_admintools/app/ldap.py:856
 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:853
+#: lib/pp_admintools/app/ldap.py:861
 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:860
+#: lib/pp_admintools/app/ldap.py:868
 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:867
+#: lib/pp_admintools/app/ldap.py:875
 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:876 lib/pp_admintools/app/remove_ldap_user.py:290
+#: lib/pp_admintools/app/ldap.py:884 lib/pp_admintools/app/remove_ldap_user.py:290
 msgid "Empty user given."
 msgstr "Leere Nutzername übergeben."
 
-#: lib/pp_admintools/app/ldap.py:879
+#: lib/pp_admintools/app/ldap.py:887
 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:909 lib/pp_admintools/app/ldap.py:962
-#: lib/pp_admintools/app/ldap.py:1015 lib/pp_admintools/app/ldap.py:1249
-#: lib/pp_admintools/app/ldap.py:1283 lib/pp_admintools/app/ldap.py:1317
-#: lib/pp_admintools/app/ldap.py:1351
+#: lib/pp_admintools/app/ldap.py:917 lib/pp_admintools/app/ldap.py:970
+#: lib/pp_admintools/app/ldap.py:1023 lib/pp_admintools/app/ldap.py:1257
+#: lib/pp_admintools/app/ldap.py:1291 lib/pp_admintools/app/ldap.py:1325
+#: lib/pp_admintools/app/ldap.py:1359
 msgid "Searching in {uri}/{bdn} with filter: {fltr}"
 msgstr "Suche in {uri}/{bdn} mit dem Filter: {fltr}"
 
-#: lib/pp_admintools/app/ldap.py:920
+#: lib/pp_admintools/app/ldap.py:928
 msgid "Result of searching for mail address {m!r}:"
 msgstr "Ergebnis der Suche nach der Mailadresse {m!r}:"
 
-#: lib/pp_admintools/app/ldap.py:931
+#: lib/pp_admintools/app/ldap.py:939
 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:973
+#: lib/pp_admintools/app/ldap.py:981
 msgid "Result of searching for uid {u!r}:"
 msgstr "Ergebnis der Suche nach UID {u!r}:"
 
-#: lib/pp_admintools/app/ldap.py:984
+#: lib/pp_admintools/app/ldap.py:992
 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:1026
+#: lib/pp_admintools/app/ldap.py:1034
 msgid "Result of searching for CN {cn!r}:"
 msgstr "Ergebnis der Suche nach CN {cn!r}:"
 
-#: lib/pp_admintools/app/ldap.py:1037
+#: lib/pp_admintools/app/ldap.py:1045
 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:1054 lib/pp_admintools/app/set_ldap_password.py:510
+#: lib/pp_admintools/app/ldap.py:1062 lib/pp_admintools/app/set_ldap_password.py:510
 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:1072
+#: lib/pp_admintools/app/ldap.py:1080
 msgid "ObjectClasses of {dn!r}:"
 msgstr "ObjectClasses von {dn!r}:"
 
-#: lib/pp_admintools/app/ldap.py:1082
+#: lib/pp_admintools/app/ldap.py:1090
 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:1104
+#: lib/pp_admintools/app/ldap.py:1112
 msgid "Searching DN {dn!r} in {uri}."
 msgstr "Suche DN {dn!r} in {uri}."
 
-#: lib/pp_admintools/app/ldap.py:1114
+#: lib/pp_admintools/app/ldap.py:1122
 msgid "Result of searching for DN {dn!r}:"
 msgstr "Ergebnis der Suche nach dem DN {dn!r}:"
 
-#: lib/pp_admintools/app/ldap.py:1122
+#: lib/pp_admintools/app/ldap.py:1130
 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:1163
+#: lib/pp_admintools/app/ldap.py:1171
 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:1168
+#: lib/pp_admintools/app/ldap.py:1176
 msgid "Simulation mode - changes are not applied."
 msgstr "Simulationsmodus - hier wird jetzt nichts geändert."
 
-#: lib/pp_admintools/app/ldap.py:1174
+#: lib/pp_admintools/app/ldap.py:1182
 msgid "Modification NOT successfull - {c}: {e}"
 msgstr "Die Änderung war NICHT erfolgreich - {c}: {e}"
 
-#: lib/pp_admintools/app/ldap.py:1175 lib/pp_admintools/app/remove_ldap_user.py:417
+#: lib/pp_admintools/app/ldap.py:1183 lib/pp_admintools/app/remove_ldap_user.py:417
 #: lib/pp_admintools/app/remove_ldap_user.py:444 lib/pp_admintools/app/remove_ldap_user.py:471
 #: lib/pp_admintools/app/remove_ldap_user.py:502 lib/pp_admintools/app/remove_ldap_user.py:533
 #: lib/pp_admintools/app/set_ldap_password.py:614
 msgid "Changes:"
 msgstr "Änderungen:"
 
-#: lib/pp_admintools/app/ldap.py:1187
+#: lib/pp_admintools/app/ldap.py:1195
 msgid "Modification status: {!r}."
 msgstr "Änderungsstatus: {!r}."
 
-#: lib/pp_admintools/app/ldap.py:1189
+#: lib/pp_admintools/app/ldap.py:1197
 msgid "Result of modifying:"
 msgstr "Ergebnis der Änderung:"
 
-#: lib/pp_admintools/app/ldap.py:1192
+#: lib/pp_admintools/app/ldap.py:1200
 msgid "Modification NOT successful: {desc} - {msg}"
 msgstr "Die Änderung war NICHT erfolgreich - {desc}: {msg}"
 
-#: lib/pp_admintools/app/ldap.py:1196
+#: lib/pp_admintools/app/ldap.py:1204
 msgid "Modification successful."
 msgstr "Die Änderung war erfolgreich."
 
-#: lib/pp_admintools/app/ldap.py:1206
+#: lib/pp_admintools/app/ldap.py:1214
 msgid "Deleting LDAP entry {dn!r} on {uri} ..."
 msgstr "Lösche LDAP-Eintrag {dn!r} in {uri} …"
 
-#: lib/pp_admintools/app/ldap.py:1211
+#: lib/pp_admintools/app/ldap.py:1219
 msgid "Simulation mode - deletion will not be executed."
 msgstr "Simulationsmodus - hier wird jetzt nichts gelöscht."
 
-#: lib/pp_admintools/app/ldap.py:1217
+#: lib/pp_admintools/app/ldap.py:1225
 msgid "Deletion NOT successfull - {c}: {e}"
 msgstr "Die Löschung war NICHT erfolgreich - {c}: {e}"
 
-#: lib/pp_admintools/app/ldap.py:1221
+#: lib/pp_admintools/app/ldap.py:1229
 msgid "Deletion status: {!r}."
 msgstr "Löschstatus: {!r}"
 
-#: lib/pp_admintools/app/ldap.py:1223
+#: lib/pp_admintools/app/ldap.py:1231
 msgid "Result of deletion:"
 msgstr "Ergebnis der Löschung:"
 
-#: lib/pp_admintools/app/ldap.py:1226
+#: lib/pp_admintools/app/ldap.py:1234
 msgid "Deletion NOT successful: {desc} - {msg}"
 msgstr "Die Löschung war NICHT erfolgreich - {desc}: {msg}"
 
-#: lib/pp_admintools/app/ldap.py:1230
+#: lib/pp_admintools/app/ldap.py:1238
 msgid "Deletion successful."
 msgstr "Die Löschung war erfolgreich."
 
-#: lib/pp_admintools/app/ldap.py:1377
+#: lib/pp_admintools/app/ldap.py:1385
 msgid "Reading password file {!r} ..."
 msgstr "Lese Passwortdatei {!r} …"
 
+#: lib/pp_admintools/app/ldap.py:1416
+msgid "Could not detect RDN from DN {!r}."
+msgstr "Konnte RDN nich aus {!r} ermitteln."
+
+#: lib/pp_admintools/app/ldap.py:1420
+msgid "Found RDN attribute {!r}."
+msgstr "Fand RDN-Attribut {!r}."
+
+#: lib/pp_admintools/app/ldap.py:1426
+msgid "RDN attribute {!r} will not be touched."
+msgstr "Das RDN-Attribut {!r} wird nicht angefasst."
+
+#: lib/pp_admintools/app/ldap.py:1432 lib/pp_admintools/app/ldap.py:1451
+#: lib/pp_admintools/app/ldap.py:1512
+msgid "Attribute {!r} will not be touched."
+msgstr "Das Attribut {!r} wird nicht angefasst."
+
+#: lib/pp_admintools/app/ldap.py:1481
+msgid "Values to add to attribute {!r}:"
+msgstr "Werte, die zu Attribut {!r} hinzugefügt werden:"
+
+#: lib/pp_admintools/app/ldap.py:1485
+msgid "Values to removed from attribute {!r}:"
+msgstr "Werte, die von Attribut {!r} gelöscht werden."
+
 #: lib/pp_admintools/app/mail.py:103
 msgid "Got invalid SMTP port number {!r}."
 msgstr "Ungültige SMTP-Port-Nummer {!r} erhalten."
@@ -750,7 +775,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:92
+#: lib/pp_admintools/app/mirror_ldap.py:95
 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 "
@@ -764,15 +789,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:100
+#: lib/pp_admintools/app/mirror_ldap.py:103
 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:111
+#: lib/pp_admintools/app/mirror_ldap.py:114
 msgid "Miroring options"
 msgstr "Spiegelungs--Optionen"
 
-#: lib/pp_admintools/app/mirror_ldap.py:116
+#: lib/pp_admintools/app/mirror_ldap.py:119
 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})"
@@ -781,54 +806,54 @@ msgstr ""
 "angegeben, und wenn sie auf Null gesetzt werden, erfolgt kein Warten nach dem Schreiben. "
 "(Vorgabe: {:.1f})"
 
-#: lib/pp_admintools/app/mirror_ldap.py:123
+#: lib/pp_admintools/app/mirror_ldap.py:126
 msgid "NUMBER"
 msgstr "ANZAHL"
 
-#: lib/pp_admintools/app/mirror_ldap.py:125
+#: lib/pp_admintools/app/mirror_ldap.py:128
 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:132
+#: lib/pp_admintools/app/mirror_ldap.py:135
 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:154
+#: lib/pp_admintools/app/mirror_ldap.py:157
 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:158
+#: lib/pp_admintools/app/mirror_ldap.py:161
 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:175
+#: lib/pp_admintools/app/mirror_ldap.py:178
 msgid "Did not found {tgt!r} in {e}:"
 msgstr "Fand {tgt!r} nicht in {e}:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:187
+#: lib/pp_admintools/app/mirror_ldap.py:190
 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:191
+#: lib/pp_admintools/app/mirror_ldap.py:194
 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:194 lib/pp_admintools/app/mirror_ldap.py:203
-#: lib/pp_admintools/app/mirror_ldap.py:214
+#: lib/pp_admintools/app/mirror_ldap.py:197 lib/pp_admintools/app/mirror_ldap.py:206
+#: lib/pp_admintools/app/mirror_ldap.py:217
 msgid "Error in configuration:"
 msgstr "Fehler in der Konfiguration:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:195
+#: lib/pp_admintools/app/mirror_ldap.py:198
 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:204
+#: lib/pp_admintools/app/mirror_ldap.py:207
 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:215
+#: lib/pp_admintools/app/mirror_ldap.py:218
 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}."
@@ -836,46 +861,85 @@ 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:231
+#: lib/pp_admintools/app/mirror_ldap.py:234
 msgid "Start mirroring LDAP instance {src!r} ({src_url}) to instance {tgt!r} ({tgt_url}) [{yes}/{no}]?"
 msgstr ""
 "Starte Spiegelung der LDAP-Instanz {src!r} ({src_url}) zur Instanz {tgt!r} ({tgt_url}) "
 "[{yes}/{no}]?"
 
-#: lib/pp_admintools/app/mirror_ldap.py:235 lib/pp_admintools/app/remove_ldap_user.py:280
+#: lib/pp_admintools/app/mirror_ldap.py:238 lib/pp_admintools/app/remove_ldap_user.py:280
 #: lib/pp_admintools/app/set_ldap_password.py:585
 msgid "yes"
 msgstr "ja"
 
-#: lib/pp_admintools/app/mirror_ldap.py:241 lib/pp_admintools/app/mirror_ldap.py:264
+#: lib/pp_admintools/app/mirror_ldap.py:244 lib/pp_admintools/app/mirror_ldap.py:268
 msgid "Interrupted on demand."
 msgstr "Abbruch auf Verlangen."
 
-#: lib/pp_admintools/app/mirror_ldap.py:246
+#: lib/pp_admintools/app/mirror_ldap.py:249
 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:264
+#: lib/pp_admintools/app/mirror_ldap.py:268
 msgid "Got a {}:"
 msgstr "Habe ein {} erhalten:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:274
+#: lib/pp_admintools/app/mirror_ldap.py:278
 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:287 lib/pp_admintools/app/mirror_ldap.py:321
+#: lib/pp_admintools/app/mirror_ldap.py:291 lib/pp_admintools/app/mirror_ldap.py:346
 msgid "Found DNs in instance {!r}:"
 msgstr "Gefundene DNs in Instanz {!r}:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:299 lib/pp_admintools/app/mirror_ldap.py:333
+#: lib/pp_admintools/app/mirror_ldap.py:308
+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:312
+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:316
+#, fuzzy
+msgid "one non-structural entry in source LDAP."
+msgid_plural "{no} non-structural entries in source LDAP."
+msgstr[0] "einen strukturellen Eintrag im Ziel-LDAP."
+msgstr[1] "{no} strukturelle Einträge im Ziel-LDAP."
+
+#: lib/pp_admintools/app/mirror_ldap.py:324 lib/pp_admintools/app/mirror_ldap.py:379
 msgid "Found structural DNs in instance {!r}:"
 msgstr "Gefundene strukturelle DNs in Instanz {!r}:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:308
+#: lib/pp_admintools/app/mirror_ldap.py:333
 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:341
+#: lib/pp_admintools/app/mirror_ldap.py:363
+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:367
+#, fuzzy
+msgid "one structural entry in target LDAP"
+msgid_plural "{no} structural entries in target LDAP"
+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:371
+#, fuzzy
+msgid "one non-structural entry in target LDAP."
+msgid_plural "{no} non-structural entries in target LDAP."
+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:387
 msgid ""
 "Evaluating DNs of all target entries, which have to be synchronized, instead of removing and "
 "recreating them."
@@ -883,50 +947,89 @@ 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:398
+#: lib/pp_admintools/app/mirror_ldap.py:444
 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:414 lib/pp_admintools/app/mirror_ldap.py:471
+#: lib/pp_admintools/app/mirror_ldap.py:460 lib/pp_admintools/app/mirror_ldap.py:517
 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:420
+#: lib/pp_admintools/app/mirror_ldap.py:466
 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:426 lib/pp_admintools/app/mirror_ldap.py:476
+#: lib/pp_admintools/app/mirror_ldap.py:472 lib/pp_admintools/app/mirror_ldap.py:522
 msgid "Entry {!r} is set to be kept."
 msgstr "Der Eintrag {!r} wurde auf Erhalten gesetzt."
 
-#: lib/pp_admintools/app/mirror_ldap.py:435
+#: lib/pp_admintools/app/mirror_ldap.py:481
 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:440
+#: lib/pp_admintools/app/mirror_ldap.py:486
 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:454
+#: lib/pp_admintools/app/mirror_ldap.py:500
 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:480
+#: lib/pp_admintools/app/mirror_ldap.py:526
 msgid "Entry {!r} is set to be synchronized."
 msgstr "Der Eintrag {!r} wurde auf Synchronisation gesetzt."
 
-#: lib/pp_admintools/app/mirror_ldap.py:489
+#: lib/pp_admintools/app/mirror_ldap.py:535
 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:494
+#: lib/pp_admintools/app/mirror_ldap.py:540
 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:548
+#, fuzzy
+msgid "Mirroring structural entries from source to target LDAP instance."
+msgstr "Löschen struktureller Einträge in der Ziel-LDAP-Instanz."
+
+#: lib/pp_admintools/app/mirror_ldap.py:561
+#, fuzzy
+msgid "Mirroring entry {!r} ..."
+msgstr "Lösche {!r} …"
+
+#: lib/pp_admintools/app/mirror_ldap.py:584
+msgid "Got modify data for DN {!r}:"
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:589
+msgid "No changes necessary on DN {!r}."
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:593
+#, fuzzy
+msgid "Target entry {!r} not found."
+msgstr "Die Ziel-Datei ist nicht definiert."
+
+#: lib/pp_admintools/app/mirror_ldap.py:595
+msgid "Got create data for DN {!r}:"
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:606
+#, fuzzy
+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 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:611
+#, fuzzy
+msgid "Mirrored no structural entries to target LDAP instance."
+msgstr "Löschen nicht-struktureller Einträge in der Ziel-LDAP-Instanz."
+
 #: lib/pp_admintools/app/pdns.py:99 lib/pp_admintools/app/pdns.py:183
 msgid "Configuration not available."
 msgstr "Die Konfiguration ist nicht verfügbar."
index dc79c231f7f2f7d3f73c263dfc5b305cd54c1695..c00e2f6cc8e48464f33fb32879bd9fd4f8afc3f6 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pp_admintools 0.9.1\n"
 "Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2022-10-27 14:45+0200\n"
+"POT-Creation-Date: 2022-10-31 17:55+0100\n"
 "PO-Revision-Date: 2022-10-20 12:00+0200\n"
 "Last-Translator: Frank Brehm <frank.brehm@pixelpark.com>\n"
 "Language: en_US\n"
@@ -118,10 +118,10 @@ msgid "Executing: {}"
 msgstr ""
 
 #: lib/pp_admintools/app/dns_deploy_zones.py:453 lib/pp_admintools/app/dns_deploy_zones.py:807
-#: lib/pp_admintools/app/ldap.py:797 lib/pp_admintools/app/ldap.py:927
-#: lib/pp_admintools/app/ldap.py:980 lib/pp_admintools/app/ldap.py:1033
-#: lib/pp_admintools/app/ldap.py:1264 lib/pp_admintools/app/ldap.py:1298
-#: lib/pp_admintools/app/ldap.py:1332 lib/pp_admintools/app/ldap.py:1366
+#: lib/pp_admintools/app/ldap.py:805 lib/pp_admintools/app/ldap.py:935
+#: lib/pp_admintools/app/ldap.py:988 lib/pp_admintools/app/ldap.py:1041
+#: lib/pp_admintools/app/ldap.py:1272 lib/pp_admintools/app/ldap.py:1306
+#: lib/pp_admintools/app/ldap.py:1340 lib/pp_admintools/app/ldap.py:1374
 msgid "Result:"
 msgstr ""
 
@@ -283,121 +283,121 @@ msgstr "Restarting {} …"
 msgid "Reloading {} ..."
 msgstr "Reloading {} …"
 
-#: lib/pp_admintools/app/ldap.py:112 lib/pp_admintools/app/ldap.py:272
+#: lib/pp_admintools/app/ldap.py:117 lib/pp_admintools/app/ldap.py:280
 msgid "The path {!r} must be an absolute path."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:118 lib/pp_admintools/app/ldap.py:276
-#: lib/pp_admintools/app/ldap.py:1380
+#: lib/pp_admintools/app/ldap.py:123 lib/pp_admintools/app/ldap.py:284
+#: lib/pp_admintools/app/ldap.py:1388
 msgid "The file {!r} does not exists."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:122 lib/pp_admintools/app/ldap.py:280
-#: lib/pp_admintools/app/ldap.py:1385
+#: lib/pp_admintools/app/ldap.py:127 lib/pp_admintools/app/ldap.py:288
+#: lib/pp_admintools/app/ldap.py:1393
 msgid "The given path {!r} exists, but is not a regular file."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:126 lib/pp_admintools/app/ldap.py:284
-#: lib/pp_admintools/app/ldap.py:1390
+#: lib/pp_admintools/app/ldap.py:131 lib/pp_admintools/app/ldap.py:292
+#: lib/pp_admintools/app/ldap.py:1398
 msgid "The given file {!r} is not readable."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:147
+#: lib/pp_admintools/app/ldap.py:152
 msgid "a port number must be greater than zero and less or equal to {}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:152
+#: lib/pp_admintools/app/ldap.py:157
 msgid "Wrong port number {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:317
+#: lib/pp_admintools/app/ldap.py:325
 msgid "LDAP options"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:319
+#: lib/pp_admintools/app/ldap.py:327
 msgid "Options for the default LDAP connection"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:321
+#: lib/pp_admintools/app/ldap.py:329
 msgid "Options fo LDAP connections"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:328 lib/pp_admintools/app/mirror_ldap.py:235
+#: lib/pp_admintools/app/ldap.py:336 lib/pp_admintools/app/mirror_ldap.py:238
 #: lib/pp_admintools/app/remove_ldap_user.py:280 lib/pp_admintools/app/set_ldap_password.py:585
 msgid "No"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:330
+#: lib/pp_admintools/app/ldap.py:338
 msgid "Yes"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:336
+#: lib/pp_admintools/app/ldap.py:344
 msgid "HOST"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:337
+#: lib/pp_admintools/app/ldap.py:345
 msgid "Hostname or address of the LDAP server to use. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:344
+#: lib/pp_admintools/app/ldap.py:352
 msgid "Use ldaps to connect to the LDAP server. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:349 lib/pp_admintools/app/mail.py:261
+#: lib/pp_admintools/app/ldap.py:357 lib/pp_admintools/app/mail.py:261
 #: lib/pp_admintools/app/pdns.py:272
 msgid "PORT"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:351
+#: lib/pp_admintools/app/ldap.py:359
 msgid "The port number to connect to the LDAP server. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:357
+#: lib/pp_admintools/app/ldap.py:365
 msgid "The base DN used as the root for the LDAP searches. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:364
+#: lib/pp_admintools/app/ldap.py:372
 msgid "The Bind DN to use to connect to the LDAP server. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:372 lib/pp_admintools/app/set_ldap_password.py:206
+#: lib/pp_admintools/app/ldap.py:380 lib/pp_admintools/app/set_ldap_password.py:206
 #: lib/pp_admintools/app/set_ldap_password.py:207 lib/pp_admintools/app/set_ldap_password.py:224
 #: lib/pp_admintools/app/set_ldap_password.py:227
 msgid "PASSWORD"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:373
+#: lib/pp_admintools/app/ldap.py:381
 msgid "Use PASSWORD as the password for simple LDAP authentication."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:378
+#: lib/pp_admintools/app/ldap.py:386
 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:384 lib/pp_admintools/app/set_ldap_password.py:218
+#: lib/pp_admintools/app/ldap.py:392 lib/pp_admintools/app/set_ldap_password.py:218
 #: lib/pp_admintools/app/set_ldap_password.py:220
 msgid "PASSWORD_FILE"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:386
+#: lib/pp_admintools/app/ldap.py:394
 msgid "Use contents of PASSWORD_FILE as the password for simple authentication."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:394 lib/pp_admintools/app/pdns.py:246
+#: lib/pp_admintools/app/ldap.py:402 lib/pp_admintools/app/pdns.py:246
 msgid "INSTANCE"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:397
+#: lib/pp_admintools/app/ldap.py:405
 msgid "If not given, then the instance {!r} will be used."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:400
+#: lib/pp_admintools/app/ldap.py:408
 msgid "The LDAP instance (LDAP cluster) from configuration, where to execute this script."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:404
+#: lib/pp_admintools/app/ldap.py:412
 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} "
@@ -405,252 +405,277 @@ msgid ""
 "are shown, and the application is exiting."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:430 lib/pp_admintools/app/mirror_ldap.py:114
+#: lib/pp_admintools/app/ldap.py:438 lib/pp_admintools/app/mirror_ldap.py:117
 msgid "SECONDS"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:432
+#: lib/pp_admintools/app/ldap.py:440
 msgid "Using the given timeout in seconds for all LDAP operations. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:466
+#: lib/pp_admintools/app/ldap.py:474
 msgid "Checking given instances."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:470
+#: lib/pp_admintools/app/ldap.py:478
 msgid "Given insts:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:521
+#: lib/pp_admintools/app/ldap.py:529
 msgid "Configured LDAP instances:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:538
+#: lib/pp_admintools/app/ldap.py:546
 msgid "Verifying given instances ..."
 msgstr "Verifying given instances …"
 
-#: lib/pp_admintools/app/ldap.py:551
+#: lib/pp_admintools/app/ldap.py:559
 msgid "Used filter:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:576
+#: lib/pp_admintools/app/ldap.py:584
 msgid "LDAP instances to use:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:592
+#: lib/pp_admintools/app/ldap.py:600
 msgid "LDAP instance {!r} not found in configuration or is not usable."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:647
+#: lib/pp_admintools/app/ldap.py:655
 msgid "Preparations ..."
 msgstr "Preparations …"
 
-#: lib/pp_admintools/app/ldap.py:650
+#: lib/pp_admintools/app/ldap.py:658
 msgid "Open all necessary LDAP connections ..."
 msgstr "Open all necessary LDAP connections …"
 
-#: lib/pp_admintools/app/ldap.py:664
+#: lib/pp_admintools/app/ldap.py:672
 msgid "Password of user {usr} on LDAP instance {inst}:"
 msgstr "Password of user {usr} on LDAP instance {inst}:"
 
-#: lib/pp_admintools/app/ldap.py:673
+#: lib/pp_admintools/app/ldap.py:681
 msgid "Info about LDAP server {}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:683
+#: lib/pp_admintools/app/ldap.py:691
 msgid "Trying to get LDAP server object for {} ..."
 msgstr "Trying to get LDAP server object for {} …"
 
-#: lib/pp_admintools/app/ldap.py:699
+#: lib/pp_admintools/app/ldap.py:707
 msgid "Connect options to server {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:706
+#: lib/pp_admintools/app/ldap.py:714
 msgid "LDAP server {s}: {re}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:720
+#: lib/pp_admintools/app/ldap.py:728
 msgid "Connecting to LDAP server {url} as {dn!r} ..."
 msgstr "Connecting to LDAP server {url} as {dn!r} …"
 
-#: lib/pp_admintools/app/ldap.py:732
+#: lib/pp_admintools/app/ldap.py:740
 msgid "Finishing ..."
 msgstr "Finishing …"
 
-#: lib/pp_admintools/app/ldap.py:741
+#: lib/pp_admintools/app/ldap.py:749
 msgid "Disconnecting from all remaining LDAP instances ..."
 msgstr "Disconnecting from all remaining LDAP instances …"
 
-#: lib/pp_admintools/app/ldap.py:754
+#: lib/pp_admintools/app/ldap.py:762
 msgid "Unbinding from LDAP server {!r} ..."
 msgstr "Unbinding from LDAP server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:761
+#: lib/pp_admintools/app/ldap.py:769
 msgid "Disconnecting from LDAP server {!r} ..."
 msgstr "Disconnecting from LDAP server {!r} …"
 
-#: lib/pp_admintools/app/ldap.py:783 lib/pp_admintools/app/ldap.py:822
+#: lib/pp_admintools/app/ldap.py:791 lib/pp_admintools/app/ldap.py:830
 msgid "Result of searching for DNs of all entries:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:787 lib/pp_admintools/app/ldap.py:826
-#: lib/pp_admintools/app/ldap.py:924 lib/pp_admintools/app/ldap.py:977
-#: lib/pp_admintools/app/ldap.py:1030 lib/pp_admintools/app/ldap.py:1118
-#: lib/pp_admintools/app/ldap.py:1261 lib/pp_admintools/app/ldap.py:1295
-#: lib/pp_admintools/app/ldap.py:1329 lib/pp_admintools/app/ldap.py:1363
+#: lib/pp_admintools/app/ldap.py:795 lib/pp_admintools/app/ldap.py:834
+#: lib/pp_admintools/app/ldap.py:932 lib/pp_admintools/app/ldap.py:985
+#: lib/pp_admintools/app/ldap.py:1038 lib/pp_admintools/app/ldap.py:1126
+#: lib/pp_admintools/app/ldap.py:1269 lib/pp_admintools/app/ldap.py:1303
+#: lib/pp_admintools/app/ldap.py:1337 lib/pp_admintools/app/ldap.py:1371
 msgid "Got a response entry:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:812
+#: lib/pp_admintools/app/ldap.py:820
 msgid "Getting all Entry DNs of LDAP instance {i!r} below {b!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:848
+#: lib/pp_admintools/app/ldap.py:856
 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:853
+#: lib/pp_admintools/app/ldap.py:861
 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:860
+#: lib/pp_admintools/app/ldap.py:868
 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:867
+#: lib/pp_admintools/app/ldap.py:875
 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:876 lib/pp_admintools/app/remove_ldap_user.py:290
+#: lib/pp_admintools/app/ldap.py:884 lib/pp_admintools/app/remove_ldap_user.py:290
 msgid "Empty user given."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:879
+#: lib/pp_admintools/app/ldap.py:887
 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:909 lib/pp_admintools/app/ldap.py:962
-#: lib/pp_admintools/app/ldap.py:1015 lib/pp_admintools/app/ldap.py:1249
-#: lib/pp_admintools/app/ldap.py:1283 lib/pp_admintools/app/ldap.py:1317
-#: lib/pp_admintools/app/ldap.py:1351
+#: lib/pp_admintools/app/ldap.py:917 lib/pp_admintools/app/ldap.py:970
+#: lib/pp_admintools/app/ldap.py:1023 lib/pp_admintools/app/ldap.py:1257
+#: lib/pp_admintools/app/ldap.py:1291 lib/pp_admintools/app/ldap.py:1325
+#: lib/pp_admintools/app/ldap.py:1359
 msgid "Searching in {uri}/{bdn} with filter: {fltr}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:920
+#: lib/pp_admintools/app/ldap.py:928
 msgid "Result of searching for mail address {m!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:931
+#: lib/pp_admintools/app/ldap.py:939
 msgid "User with mail address {m!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:973
+#: lib/pp_admintools/app/ldap.py:981
 msgid "Result of searching for uid {u!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:984
+#: lib/pp_admintools/app/ldap.py:992
 msgid "User with uid {u!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1026
+#: lib/pp_admintools/app/ldap.py:1034
 msgid "Result of searching for CN {cn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1037
+#: lib/pp_admintools/app/ldap.py:1045
 msgid "User with cn {cn!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1054 lib/pp_admintools/app/set_ldap_password.py:510
+#: lib/pp_admintools/app/ldap.py:1062 lib/pp_admintools/app/set_ldap_password.py:510
 msgid "User with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1072
+#: lib/pp_admintools/app/ldap.py:1080
 msgid "ObjectClasses of {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1082
+#: lib/pp_admintools/app/ldap.py:1090
 msgid "Entry {dn!r} in {uri} seems not to be an account."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1104
+#: lib/pp_admintools/app/ldap.py:1112
 msgid "Searching DN {dn!r} in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1114
+#: lib/pp_admintools/app/ldap.py:1122
 msgid "Result of searching for DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1122
+#: lib/pp_admintools/app/ldap.py:1130
 msgid "Entry with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1163
+#: lib/pp_admintools/app/ldap.py:1171
 msgid "Applying changes on {uri} to DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1168
+#: lib/pp_admintools/app/ldap.py:1176
 msgid "Simulation mode - changes are not applied."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1174
+#: lib/pp_admintools/app/ldap.py:1182
 msgid "Modification NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1175 lib/pp_admintools/app/remove_ldap_user.py:417
+#: lib/pp_admintools/app/ldap.py:1183 lib/pp_admintools/app/remove_ldap_user.py:417
 #: lib/pp_admintools/app/remove_ldap_user.py:444 lib/pp_admintools/app/remove_ldap_user.py:471
 #: lib/pp_admintools/app/remove_ldap_user.py:502 lib/pp_admintools/app/remove_ldap_user.py:533
 #: lib/pp_admintools/app/set_ldap_password.py:614
 msgid "Changes:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1187
+#: lib/pp_admintools/app/ldap.py:1195
 msgid "Modification status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1189
+#: lib/pp_admintools/app/ldap.py:1197
 msgid "Result of modifying:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1192
+#: lib/pp_admintools/app/ldap.py:1200
 msgid "Modification NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1196
+#: lib/pp_admintools/app/ldap.py:1204
 msgid "Modification successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1206
+#: lib/pp_admintools/app/ldap.py:1214
 msgid "Deleting LDAP entry {dn!r} on {uri} ..."
 msgstr "Deleting LDAP entry {dn!r} on {uri} …"
 
-#: lib/pp_admintools/app/ldap.py:1211
+#: lib/pp_admintools/app/ldap.py:1219
 msgid "Simulation mode - deletion will not be executed."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1217
+#: lib/pp_admintools/app/ldap.py:1225
 msgid "Deletion NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1221
+#: lib/pp_admintools/app/ldap.py:1229
 msgid "Deletion status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1223
+#: lib/pp_admintools/app/ldap.py:1231
 msgid "Result of deletion:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1226
+#: lib/pp_admintools/app/ldap.py:1234
 msgid "Deletion NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1230
+#: lib/pp_admintools/app/ldap.py:1238
 msgid "Deletion successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1377
+#: lib/pp_admintools/app/ldap.py:1385
 msgid "Reading password file {!r} ..."
 msgstr "Reading password file {!r} …"
 
+#: lib/pp_admintools/app/ldap.py:1416
+msgid "Could not detect RDN from DN {!r}."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:1420
+msgid "Found RDN attribute {!r}."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:1426
+msgid "RDN attribute {!r} will not be touched."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:1432 lib/pp_admintools/app/ldap.py:1451
+#: lib/pp_admintools/app/ldap.py:1512
+msgid "Attribute {!r} will not be touched."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:1481
+msgid "Values to add to attribute {!r}:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:1485
+msgid "Values to removed from attribute {!r}:"
+msgstr ""
+
 #: lib/pp_admintools/app/mail.py:103
 msgid "Got invalid SMTP port number {!r}."
 msgstr ""
@@ -732,7 +757,7 @@ msgstr ""
 msgid "Did not found sendmail executable."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:92
+#: lib/pp_admintools/app/mirror_ldap.py:95
 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 "
@@ -741,158 +766,228 @@ msgid ""
 "values."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:100
+#: lib/pp_admintools/app/mirror_ldap.py:103
 msgid "Do not execute a countdown before starting the application."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:111
+#: lib/pp_admintools/app/mirror_ldap.py:114
 msgid "Miroring options"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:116
+#: lib/pp_admintools/app/mirror_ldap.py:119
 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:123
+#: lib/pp_admintools/app/mirror_ldap.py:126
 msgid "NUMBER"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:125
+#: lib/pp_admintools/app/mirror_ldap.py:128
 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:132
+#: lib/pp_admintools/app/mirror_ldap.py:135
 msgid "Mirror only structural entries (entries with childs)."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:154
+#: lib/pp_admintools/app/mirror_ldap.py:157
 msgid "Limiting the number of entries for mirroring to {} entries."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:158
+#: lib/pp_admintools/app/mirror_ldap.py:161
 msgid "Limition the number of entries for mirroring may only be done in simulation mode."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:175
+#: lib/pp_admintools/app/mirror_ldap.py:178
 msgid "Did not found {tgt!r} in {e}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:187
+#: lib/pp_admintools/app/mirror_ldap.py:190
 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:191
+#: lib/pp_admintools/app/mirror_ldap.py:194
 msgid "Got {!r} as the mirror source instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:194 lib/pp_admintools/app/mirror_ldap.py:203
-#: lib/pp_admintools/app/mirror_ldap.py:214
+#: lib/pp_admintools/app/mirror_ldap.py:197 lib/pp_admintools/app/mirror_ldap.py:206
+#: lib/pp_admintools/app/mirror_ldap.py:217
 msgid "Error in configuration:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:195
+#: lib/pp_admintools/app/mirror_ldap.py:198
 msgid "the source LDAP instance {src!r} for mirroring to {tgt!r} does not exists."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:204
+#: lib/pp_admintools/app/mirror_ldap.py:207
 msgid "the source LDAP instance {src!r} must not be the same like the target instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:215
+#: lib/pp_admintools/app/mirror_ldap.py:218
 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:231
+#: lib/pp_admintools/app/mirror_ldap.py:234
 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:235 lib/pp_admintools/app/remove_ldap_user.py:280
+#: lib/pp_admintools/app/mirror_ldap.py:238 lib/pp_admintools/app/remove_ldap_user.py:280
 #: lib/pp_admintools/app/set_ldap_password.py:585
 msgid "yes"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:241 lib/pp_admintools/app/mirror_ldap.py:264
+#: lib/pp_admintools/app/mirror_ldap.py:244 lib/pp_admintools/app/mirror_ldap.py:268
 msgid "Interrupted on demand."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:246
+#: lib/pp_admintools/app/mirror_ldap.py:249
 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:264
+#: lib/pp_admintools/app/mirror_ldap.py:268
 msgid "Got a {}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:274
+#: lib/pp_admintools/app/mirror_ldap.py:278
 msgid "Trying to get DNs of all entries in the source LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:287 lib/pp_admintools/app/mirror_ldap.py:321
+#: lib/pp_admintools/app/mirror_ldap.py:291 lib/pp_admintools/app/mirror_ldap.py:346
 msgid "Found DNs in instance {!r}:"
 msgstr "Found DNs in instance {!r}:"
 
-#: lib/pp_admintools/app/mirror_ldap.py:299 lib/pp_admintools/app/mirror_ldap.py:333
+#: lib/pp_admintools/app/mirror_ldap.py:308
+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:312
+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:316
+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:324 lib/pp_admintools/app/mirror_ldap.py:379
 msgid "Found structural DNs in instance {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:308
+#: lib/pp_admintools/app/mirror_ldap.py:333
 msgid "Trying to get DNs of all entries in the target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:341
+#: lib/pp_admintools/app/mirror_ldap.py:363
+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:367
+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:371
+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:387
 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:398
+#: lib/pp_admintools/app/mirror_ldap.py:444
 msgid "Removing non structural entries from target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:414 lib/pp_admintools/app/mirror_ldap.py:471
+#: lib/pp_admintools/app/mirror_ldap.py:460 lib/pp_admintools/app/mirror_ldap.py:517
 msgid "Entry {!r} exists on the source instance, will not be removed."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:420
+#: lib/pp_admintools/app/mirror_ldap.py:466
 msgid "Entry {!r} is a structural entry, will not be removed at this point."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:426 lib/pp_admintools/app/mirror_ldap.py:476
+#: lib/pp_admintools/app/mirror_ldap.py:472 lib/pp_admintools/app/mirror_ldap.py:522
 msgid "Entry {!r} is set to be kept."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:435
+#: lib/pp_admintools/app/mirror_ldap.py:481
 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:440
+#: lib/pp_admintools/app/mirror_ldap.py:486
 msgid "None not structural entries in target LDAP instance removed."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:454
+#: lib/pp_admintools/app/mirror_ldap.py:500
 msgid "Removing structural entries from target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:480
+#: lib/pp_admintools/app/mirror_ldap.py:526
 msgid "Entry {!r} is set to be synchronized."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:489
+#: lib/pp_admintools/app/mirror_ldap.py:535
 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:494
+#: lib/pp_admintools/app/mirror_ldap.py:540
 msgid "None structural entries in target LDAP instance removed."
 msgstr ""
 
+#: lib/pp_admintools/app/mirror_ldap.py:548
+msgid "Mirroring structural entries from source to target LDAP instance."
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:561
+msgid "Mirroring entry {!r} ..."
+msgstr "Mirroring entry {!r} …"
+
+#: lib/pp_admintools/app/mirror_ldap.py:584
+msgid "Got modify data for DN {!r}:"
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:589
+msgid "No changes necessary on DN {!r}."
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:593
+msgid "Target entry {!r} not found."
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:595
+msgid "Got create data for DN {!r}:"
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:606
+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:611
+msgid "Mirrored no structural entries to target LDAP instance."
+msgstr ""
+
 #: lib/pp_admintools/app/pdns.py:99 lib/pp_admintools/app/pdns.py:183
 msgid "Configuration not available."
 msgstr ""
index a846bd25bd1ba012f7ec074d571ce2de3b3cfbff..5a37d18f7b88f6e4c5b3c783daaba0cfa3086cdd 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: pp_admintools 0.9.1\n"
 "Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2022-10-27 14:45+0200\n"
+"POT-Creation-Date: 2022-10-31 17:55+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"
@@ -117,10 +117,10 @@ msgid "Executing: {}"
 msgstr ""
 
 #: lib/pp_admintools/app/dns_deploy_zones.py:453 lib/pp_admintools/app/dns_deploy_zones.py:807
-#: lib/pp_admintools/app/ldap.py:797 lib/pp_admintools/app/ldap.py:927
-#: lib/pp_admintools/app/ldap.py:980 lib/pp_admintools/app/ldap.py:1033
-#: lib/pp_admintools/app/ldap.py:1264 lib/pp_admintools/app/ldap.py:1298
-#: lib/pp_admintools/app/ldap.py:1332 lib/pp_admintools/app/ldap.py:1366
+#: lib/pp_admintools/app/ldap.py:805 lib/pp_admintools/app/ldap.py:935
+#: lib/pp_admintools/app/ldap.py:988 lib/pp_admintools/app/ldap.py:1041
+#: lib/pp_admintools/app/ldap.py:1272 lib/pp_admintools/app/ldap.py:1306
+#: lib/pp_admintools/app/ldap.py:1340 lib/pp_admintools/app/ldap.py:1374
 msgid "Result:"
 msgstr ""
 
@@ -282,121 +282,121 @@ msgstr ""
 msgid "Reloading {} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:112 lib/pp_admintools/app/ldap.py:272
+#: lib/pp_admintools/app/ldap.py:117 lib/pp_admintools/app/ldap.py:280
 msgid "The path {!r} must be an absolute path."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:118 lib/pp_admintools/app/ldap.py:276
-#: lib/pp_admintools/app/ldap.py:1380
+#: lib/pp_admintools/app/ldap.py:123 lib/pp_admintools/app/ldap.py:284
+#: lib/pp_admintools/app/ldap.py:1388
 msgid "The file {!r} does not exists."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:122 lib/pp_admintools/app/ldap.py:280
-#: lib/pp_admintools/app/ldap.py:1385
+#: lib/pp_admintools/app/ldap.py:127 lib/pp_admintools/app/ldap.py:288
+#: lib/pp_admintools/app/ldap.py:1393
 msgid "The given path {!r} exists, but is not a regular file."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:126 lib/pp_admintools/app/ldap.py:284
-#: lib/pp_admintools/app/ldap.py:1390
+#: lib/pp_admintools/app/ldap.py:131 lib/pp_admintools/app/ldap.py:292
+#: lib/pp_admintools/app/ldap.py:1398
 msgid "The given file {!r} is not readable."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:147
+#: lib/pp_admintools/app/ldap.py:152
 msgid "a port number must be greater than zero and less or equal to {}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:152
+#: lib/pp_admintools/app/ldap.py:157
 msgid "Wrong port number {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:317
+#: lib/pp_admintools/app/ldap.py:325
 msgid "LDAP options"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:319
+#: lib/pp_admintools/app/ldap.py:327
 msgid "Options for the default LDAP connection"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:321
+#: lib/pp_admintools/app/ldap.py:329
 msgid "Options fo LDAP connections"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:328 lib/pp_admintools/app/mirror_ldap.py:235
+#: lib/pp_admintools/app/ldap.py:336 lib/pp_admintools/app/mirror_ldap.py:238
 #: lib/pp_admintools/app/remove_ldap_user.py:280 lib/pp_admintools/app/set_ldap_password.py:585
 msgid "No"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:330
+#: lib/pp_admintools/app/ldap.py:338
 msgid "Yes"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:336
+#: lib/pp_admintools/app/ldap.py:344
 msgid "HOST"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:337
+#: lib/pp_admintools/app/ldap.py:345
 msgid "Hostname or address of the LDAP server to use. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:344
+#: lib/pp_admintools/app/ldap.py:352
 msgid "Use ldaps to connect to the LDAP server. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:349 lib/pp_admintools/app/mail.py:261
+#: lib/pp_admintools/app/ldap.py:357 lib/pp_admintools/app/mail.py:261
 #: lib/pp_admintools/app/pdns.py:272
 msgid "PORT"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:351
+#: lib/pp_admintools/app/ldap.py:359
 msgid "The port number to connect to the LDAP server. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:357
+#: lib/pp_admintools/app/ldap.py:365
 msgid "The base DN used as the root for the LDAP searches. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:364
+#: lib/pp_admintools/app/ldap.py:372
 msgid "The Bind DN to use to connect to the LDAP server. Default: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:372 lib/pp_admintools/app/set_ldap_password.py:206
+#: lib/pp_admintools/app/ldap.py:380 lib/pp_admintools/app/set_ldap_password.py:206
 #: lib/pp_admintools/app/set_ldap_password.py:207 lib/pp_admintools/app/set_ldap_password.py:224
 #: lib/pp_admintools/app/set_ldap_password.py:227
 msgid "PASSWORD"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:373
+#: lib/pp_admintools/app/ldap.py:381
 msgid "Use PASSWORD as the password for simple LDAP authentication."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:378
+#: lib/pp_admintools/app/ldap.py:386
 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:384 lib/pp_admintools/app/set_ldap_password.py:218
+#: lib/pp_admintools/app/ldap.py:392 lib/pp_admintools/app/set_ldap_password.py:218
 #: lib/pp_admintools/app/set_ldap_password.py:220
 msgid "PASSWORD_FILE"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:386
+#: lib/pp_admintools/app/ldap.py:394
 msgid "Use contents of PASSWORD_FILE as the password for simple authentication."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:394 lib/pp_admintools/app/pdns.py:246
+#: lib/pp_admintools/app/ldap.py:402 lib/pp_admintools/app/pdns.py:246
 msgid "INSTANCE"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:397
+#: lib/pp_admintools/app/ldap.py:405
 msgid "If not given, then the instance {!r} will be used."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:400
+#: lib/pp_admintools/app/ldap.py:408
 msgid "The LDAP instance (LDAP cluster) from configuration, where to execute this script."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:404
+#: lib/pp_admintools/app/ldap.py:412
 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} "
@@ -404,252 +404,277 @@ msgid ""
 "are shown, and the application is exiting."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:430 lib/pp_admintools/app/mirror_ldap.py:114
+#: lib/pp_admintools/app/ldap.py:438 lib/pp_admintools/app/mirror_ldap.py:117
 msgid "SECONDS"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:432
+#: lib/pp_admintools/app/ldap.py:440
 msgid "Using the given timeout in seconds for all LDAP operations. Default: {}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:466
+#: lib/pp_admintools/app/ldap.py:474
 msgid "Checking given instances."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:470
+#: lib/pp_admintools/app/ldap.py:478
 msgid "Given insts:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:521
+#: lib/pp_admintools/app/ldap.py:529
 msgid "Configured LDAP instances:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:538
+#: lib/pp_admintools/app/ldap.py:546
 msgid "Verifying given instances ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:551
+#: lib/pp_admintools/app/ldap.py:559
 msgid "Used filter:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:576
+#: lib/pp_admintools/app/ldap.py:584
 msgid "LDAP instances to use:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:592
+#: lib/pp_admintools/app/ldap.py:600
 msgid "LDAP instance {!r} not found in configuration or is not usable."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:647
+#: lib/pp_admintools/app/ldap.py:655
 msgid "Preparations ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:650
+#: lib/pp_admintools/app/ldap.py:658
 msgid "Open all necessary LDAP connections ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:664
+#: lib/pp_admintools/app/ldap.py:672
 msgid "Password of user {usr} on LDAP instance {inst}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:673
+#: lib/pp_admintools/app/ldap.py:681
 msgid "Info about LDAP server {}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:683
+#: lib/pp_admintools/app/ldap.py:691
 msgid "Trying to get LDAP server object for {} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:699
+#: lib/pp_admintools/app/ldap.py:707
 msgid "Connect options to server {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:706
+#: lib/pp_admintools/app/ldap.py:714
 msgid "LDAP server {s}: {re}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:720
+#: lib/pp_admintools/app/ldap.py:728
 msgid "Connecting to LDAP server {url} as {dn!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:732
+#: lib/pp_admintools/app/ldap.py:740
 msgid "Finishing ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:741
+#: lib/pp_admintools/app/ldap.py:749
 msgid "Disconnecting from all remaining LDAP instances ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:754
+#: lib/pp_admintools/app/ldap.py:762
 msgid "Unbinding from LDAP server {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:761
+#: lib/pp_admintools/app/ldap.py:769
 msgid "Disconnecting from LDAP server {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:783 lib/pp_admintools/app/ldap.py:822
+#: lib/pp_admintools/app/ldap.py:791 lib/pp_admintools/app/ldap.py:830
 msgid "Result of searching for DNs of all entries:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:787 lib/pp_admintools/app/ldap.py:826
-#: lib/pp_admintools/app/ldap.py:924 lib/pp_admintools/app/ldap.py:977
-#: lib/pp_admintools/app/ldap.py:1030 lib/pp_admintools/app/ldap.py:1118
-#: lib/pp_admintools/app/ldap.py:1261 lib/pp_admintools/app/ldap.py:1295
-#: lib/pp_admintools/app/ldap.py:1329 lib/pp_admintools/app/ldap.py:1363
+#: lib/pp_admintools/app/ldap.py:795 lib/pp_admintools/app/ldap.py:834
+#: lib/pp_admintools/app/ldap.py:932 lib/pp_admintools/app/ldap.py:985
+#: lib/pp_admintools/app/ldap.py:1038 lib/pp_admintools/app/ldap.py:1126
+#: lib/pp_admintools/app/ldap.py:1269 lib/pp_admintools/app/ldap.py:1303
+#: lib/pp_admintools/app/ldap.py:1337 lib/pp_admintools/app/ldap.py:1371
 msgid "Got a response entry:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:812
+#: lib/pp_admintools/app/ldap.py:820
 msgid "Getting all Entry DNs of LDAP instance {i!r} below {b!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:848
+#: lib/pp_admintools/app/ldap.py:856
 msgid "Trying to evaluate DN of user {user!r} in LDAP instance {inst} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:853
+#: lib/pp_admintools/app/ldap.py:861
 msgid "Trying to evaluate DN of user {u!r} as a mail address ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:860
+#: lib/pp_admintools/app/ldap.py:868
 msgid "Trying to evaluate DN of user {u!r} as a LDAP DN ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:867
+#: lib/pp_admintools/app/ldap.py:875
 msgid "Trying to evaluate DN of user {u!r} as a UID (Posix user name) ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:876 lib/pp_admintools/app/remove_ldap_user.py:290
+#: lib/pp_admintools/app/ldap.py:884 lib/pp_admintools/app/remove_ldap_user.py:290
 msgid "Empty user given."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:879
+#: lib/pp_admintools/app/ldap.py:887
 msgid "Trying to evaluate DN of user {u!r} as a CN ({c}) ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:909 lib/pp_admintools/app/ldap.py:962
-#: lib/pp_admintools/app/ldap.py:1015 lib/pp_admintools/app/ldap.py:1249
-#: lib/pp_admintools/app/ldap.py:1283 lib/pp_admintools/app/ldap.py:1317
-#: lib/pp_admintools/app/ldap.py:1351
+#: lib/pp_admintools/app/ldap.py:917 lib/pp_admintools/app/ldap.py:970
+#: lib/pp_admintools/app/ldap.py:1023 lib/pp_admintools/app/ldap.py:1257
+#: lib/pp_admintools/app/ldap.py:1291 lib/pp_admintools/app/ldap.py:1325
+#: lib/pp_admintools/app/ldap.py:1359
 msgid "Searching in {uri}/{bdn} with filter: {fltr}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:920
+#: lib/pp_admintools/app/ldap.py:928
 msgid "Result of searching for mail address {m!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:931
+#: lib/pp_admintools/app/ldap.py:939
 msgid "User with mail address {m!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:973
+#: lib/pp_admintools/app/ldap.py:981
 msgid "Result of searching for uid {u!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:984
+#: lib/pp_admintools/app/ldap.py:992
 msgid "User with uid {u!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1026
+#: lib/pp_admintools/app/ldap.py:1034
 msgid "Result of searching for CN {cn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1037
+#: lib/pp_admintools/app/ldap.py:1045
 msgid "User with cn {cn!r} not found in {uri}/{bdn}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1054 lib/pp_admintools/app/set_ldap_password.py:510
+#: lib/pp_admintools/app/ldap.py:1062 lib/pp_admintools/app/set_ldap_password.py:510
 msgid "User with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1072
+#: lib/pp_admintools/app/ldap.py:1080
 msgid "ObjectClasses of {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1082
+#: lib/pp_admintools/app/ldap.py:1090
 msgid "Entry {dn!r} in {uri} seems not to be an account."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1104
+#: lib/pp_admintools/app/ldap.py:1112
 msgid "Searching DN {dn!r} in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1114
+#: lib/pp_admintools/app/ldap.py:1122
 msgid "Result of searching for DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1122
+#: lib/pp_admintools/app/ldap.py:1130
 msgid "Entry with DN {dn!r} not found in {uri}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1163
+#: lib/pp_admintools/app/ldap.py:1171
 msgid "Applying changes on {uri} to DN {dn!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1168
+#: lib/pp_admintools/app/ldap.py:1176
 msgid "Simulation mode - changes are not applied."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1174
+#: lib/pp_admintools/app/ldap.py:1182
 msgid "Modification NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1175 lib/pp_admintools/app/remove_ldap_user.py:417
+#: lib/pp_admintools/app/ldap.py:1183 lib/pp_admintools/app/remove_ldap_user.py:417
 #: lib/pp_admintools/app/remove_ldap_user.py:444 lib/pp_admintools/app/remove_ldap_user.py:471
 #: lib/pp_admintools/app/remove_ldap_user.py:502 lib/pp_admintools/app/remove_ldap_user.py:533
 #: lib/pp_admintools/app/set_ldap_password.py:614
 msgid "Changes:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1187
+#: lib/pp_admintools/app/ldap.py:1195
 msgid "Modification status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1189
+#: lib/pp_admintools/app/ldap.py:1197
 msgid "Result of modifying:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1192
+#: lib/pp_admintools/app/ldap.py:1200
 msgid "Modification NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1196
+#: lib/pp_admintools/app/ldap.py:1204
 msgid "Modification successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1206
+#: lib/pp_admintools/app/ldap.py:1214
 msgid "Deleting LDAP entry {dn!r} on {uri} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1211
+#: lib/pp_admintools/app/ldap.py:1219
 msgid "Simulation mode - deletion will not be executed."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1217
+#: lib/pp_admintools/app/ldap.py:1225
 msgid "Deletion NOT successfull - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1221
+#: lib/pp_admintools/app/ldap.py:1229
 msgid "Deletion status: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1223
+#: lib/pp_admintools/app/ldap.py:1231
 msgid "Result of deletion:"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1226
+#: lib/pp_admintools/app/ldap.py:1234
 msgid "Deletion NOT successful: {desc} - {msg}"
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1230
+#: lib/pp_admintools/app/ldap.py:1238
 msgid "Deletion successful."
 msgstr ""
 
-#: lib/pp_admintools/app/ldap.py:1377
+#: lib/pp_admintools/app/ldap.py:1385
 msgid "Reading password file {!r} ..."
 msgstr ""
 
+#: lib/pp_admintools/app/ldap.py:1416
+msgid "Could not detect RDN from DN {!r}."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:1420
+msgid "Found RDN attribute {!r}."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:1426
+msgid "RDN attribute {!r} will not be touched."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:1432 lib/pp_admintools/app/ldap.py:1451
+#: lib/pp_admintools/app/ldap.py:1512
+msgid "Attribute {!r} will not be touched."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:1481
+msgid "Values to add to attribute {!r}:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:1485
+msgid "Values to removed from attribute {!r}:"
+msgstr ""
+
 #: lib/pp_admintools/app/mail.py:103
 msgid "Got invalid SMTP port number {!r}."
 msgstr ""
@@ -731,7 +756,7 @@ msgstr ""
 msgid "Did not found sendmail executable."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:92
+#: lib/pp_admintools/app/mirror_ldap.py:95
 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 "
@@ -740,158 +765,228 @@ msgid ""
 "values."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:100
+#: lib/pp_admintools/app/mirror_ldap.py:103
 msgid "Do not execute a countdown before starting the application."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:111
+#: lib/pp_admintools/app/mirror_ldap.py:114
 msgid "Miroring options"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:116
+#: lib/pp_admintools/app/mirror_ldap.py:119
 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:123
+#: lib/pp_admintools/app/mirror_ldap.py:126
 msgid "NUMBER"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:125
+#: lib/pp_admintools/app/mirror_ldap.py:128
 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:132
+#: lib/pp_admintools/app/mirror_ldap.py:135
 msgid "Mirror only structural entries (entries with childs)."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:154
+#: lib/pp_admintools/app/mirror_ldap.py:157
 msgid "Limiting the number of entries for mirroring to {} entries."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:158
+#: lib/pp_admintools/app/mirror_ldap.py:161
 msgid "Limition the number of entries for mirroring may only be done in simulation mode."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:175
+#: lib/pp_admintools/app/mirror_ldap.py:178
 msgid "Did not found {tgt!r} in {e}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:187
+#: lib/pp_admintools/app/mirror_ldap.py:190
 msgid "Checking mirror source instance for target instance {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:191
+#: lib/pp_admintools/app/mirror_ldap.py:194
 msgid "Got {!r} as the mirror source instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:194 lib/pp_admintools/app/mirror_ldap.py:203
-#: lib/pp_admintools/app/mirror_ldap.py:214
+#: lib/pp_admintools/app/mirror_ldap.py:197 lib/pp_admintools/app/mirror_ldap.py:206
+#: lib/pp_admintools/app/mirror_ldap.py:217
 msgid "Error in configuration:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:195
+#: lib/pp_admintools/app/mirror_ldap.py:198
 msgid "the source LDAP instance {src!r} for mirroring to {tgt!r} does not exists."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:204
+#: lib/pp_admintools/app/mirror_ldap.py:207
 msgid "the source LDAP instance {src!r} must not be the same like the target instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:215
+#: lib/pp_admintools/app/mirror_ldap.py:218
 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:231
+#: lib/pp_admintools/app/mirror_ldap.py:234
 msgid "Start mirroring LDAP instance {src!r} ({src_url}) to instance {tgt!r} ({tgt_url}) [{yes}/{no}]?"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:235 lib/pp_admintools/app/remove_ldap_user.py:280
+#: lib/pp_admintools/app/mirror_ldap.py:238 lib/pp_admintools/app/remove_ldap_user.py:280
 #: lib/pp_admintools/app/set_ldap_password.py:585
 msgid "yes"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:241 lib/pp_admintools/app/mirror_ldap.py:264
+#: lib/pp_admintools/app/mirror_ldap.py:244 lib/pp_admintools/app/mirror_ldap.py:268
 msgid "Interrupted on demand."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:246
+#: lib/pp_admintools/app/mirror_ldap.py:249
 msgid "Start mirroring LDAP instance {src!r} ({src_url}) to instance {tgt!r} ({tgt_url}) ..."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:264
+#: lib/pp_admintools/app/mirror_ldap.py:268
 msgid "Got a {}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:274
+#: lib/pp_admintools/app/mirror_ldap.py:278
 msgid "Trying to get DNs of all entries in the source LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:287 lib/pp_admintools/app/mirror_ldap.py:321
+#: lib/pp_admintools/app/mirror_ldap.py:291 lib/pp_admintools/app/mirror_ldap.py:346
 msgid "Found DNs in instance {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:299 lib/pp_admintools/app/mirror_ldap.py:333
+#: lib/pp_admintools/app/mirror_ldap.py:308
+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:312
+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:316
+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:324 lib/pp_admintools/app/mirror_ldap.py:379
 msgid "Found structural DNs in instance {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:308
+#: lib/pp_admintools/app/mirror_ldap.py:333
 msgid "Trying to get DNs of all entries in the target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:341
+#: lib/pp_admintools/app/mirror_ldap.py:363
+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:367
+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:371
+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:387
 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:398
+#: lib/pp_admintools/app/mirror_ldap.py:444
 msgid "Removing non structural entries from target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:414 lib/pp_admintools/app/mirror_ldap.py:471
+#: lib/pp_admintools/app/mirror_ldap.py:460 lib/pp_admintools/app/mirror_ldap.py:517
 msgid "Entry {!r} exists on the source instance, will not be removed."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:420
+#: lib/pp_admintools/app/mirror_ldap.py:466
 msgid "Entry {!r} is a structural entry, will not be removed at this point."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:426 lib/pp_admintools/app/mirror_ldap.py:476
+#: lib/pp_admintools/app/mirror_ldap.py:472 lib/pp_admintools/app/mirror_ldap.py:522
 msgid "Entry {!r} is set to be kept."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:435
+#: lib/pp_admintools/app/mirror_ldap.py:481
 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:440
+#: lib/pp_admintools/app/mirror_ldap.py:486
 msgid "None not structural entries in target LDAP instance removed."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:454
+#: lib/pp_admintools/app/mirror_ldap.py:500
 msgid "Removing structural entries from target LDAP instance."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:480
+#: lib/pp_admintools/app/mirror_ldap.py:526
 msgid "Entry {!r} is set to be synchronized."
 msgstr ""
 
-#: lib/pp_admintools/app/mirror_ldap.py:489
+#: lib/pp_admintools/app/mirror_ldap.py:535
 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:494
+#: lib/pp_admintools/app/mirror_ldap.py:540
 msgid "None structural entries in target LDAP instance removed."
 msgstr ""
 
+#: lib/pp_admintools/app/mirror_ldap.py:548
+msgid "Mirroring structural entries from source to target LDAP instance."
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:561
+msgid "Mirroring entry {!r} ..."
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:584
+msgid "Got modify data for DN {!r}:"
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:589
+msgid "No changes necessary on DN {!r}."
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:593
+msgid "Target entry {!r} not found."
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:595
+msgid "Got create data for DN {!r}:"
+msgstr ""
+
+#: lib/pp_admintools/app/mirror_ldap.py:606
+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:611
+msgid "Mirrored no structural entries to target LDAP instance."
+msgstr ""
+
 #: lib/pp_admintools/app/pdns.py:99 lib/pp_admintools/app/pdns.py:183
 msgid "Configuration not available."
 msgstr ""