]> Frank Brehm's Git Trees - pixelpark/pp-admin-tools.git/commitdiff
Translations
authorFrank Brehm <frank@brehm-online.com>
Thu, 31 Mar 2022 16:11:33 +0000 (18:11 +0200)
committerFrank Brehm <frank@brehm-online.com>
Thu, 31 Mar 2022 16:11:33 +0000 (18:11 +0200)
lib/pp_admintools/global_version.py
locale/de_DE/LC_MESSAGES/pp_admintools.po
locale/en_US/LC_MESSAGES/pp_admintools.po
locale/pp_admintools.pot

index 059ca9c069c76f159eba4e2c7f929d3662a8dc0a..9c28c1fbdf3146362d47d075bfdb999e7a9e4f5f 100644 (file)
@@ -9,7 +9,7 @@
 
 __author__ = 'Frank Brehm <frank.brehm@pixelpark.com>'
 __contact__ = 'frank.brehm@pixelpark.com'
-__version__ = '0.8.0'
+__version__ = '0.9.0'
 __license__ = 'LGPL3+'
 
 # vim: fileencoding=utf-8 filetype=python ts=4
index 514dd1d267e2b68c4c8e3f8b4316ff611d6cfb5f..b4dd342202e627085460f3ec9b9f9f572d76d4d1 100644 (file)
@@ -1,14 +1,14 @@
 # German (Germany) translations for pp_admintools.
-# Copyright (C) 2021 Frank Brehm, Digitas Pixelpark Berlin
+# Copyright (C) 2022 Frank Brehm, Digitas Pixelpark Berlin
 # This file is distributed under the same license as the pp_admintools project.
-# Frank Brehm <frank.brehm@pixelpark.com>, 2021.
+# Frank Brehm <frank.brehm@pixelpark.com>, 2022.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: pp_admintools 0.8.0\n"
+"Project-Id-Version: pp_admintools 0.9.0\n"
 "Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2021-12-07 17:50+0100\n"
-"PO-Revision-Date: 2021-12-07 18:00+0100\n"
+"POT-Creation-Date: 2022-03-31 17:40+0200\n"
+"PO-Revision-Date: 2022-03-31 18:00+0100\n"
 "Last-Translator: Frank Brehm <frank.brehm@pixelpark.com>\n"
 "Language: de_DE\n"
 "Language-Team: de_DE <solution@pixelpark.com>\n"
@@ -16,10 +16,25 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.1\n"
 
-#: lib/pp_admintools/cfg_app.py:143 lib/pp_admintools/cfg_app.py:149 lib/pp_admintools/pdns_app.py:101
-#: lib/pp_admintools/pdns_app.py:107
+#: lib/pp_admintools/argparse_actions.py:45
+msgid "Value {v!r} for a {what} port is invalid:"
+msgstr "Der Wert {v!r} für ein {what}-Port ist ungültig."
+
+#: lib/pp_admintools/argparse_actions.py:50
+msgid "Value {v!r} for a {what} port must be greater than 0 and less than {max}."
+msgstr "Der Wert {v!r} für ein {what}-Port muss größer als 0 und kleiner als {max} sein."
+
+#: lib/pp_admintools/argparse_actions.py:77
+msgid "Value {v!r} for a timeout of {what} is invalid:"
+msgstr "Der Wert {v!r} für einen Timeout von {what} ist ungültig."
+
+#: lib/pp_admintools/argparse_actions.py:83
+msgid "Value {v!r} for a timeout of {what} must be greater than 0 and less than {max}."
+msgstr "Der Wert {v!r} für einen Timeout von {what} muss größer als 0 und kleiner als {max} sein."
+
+#: lib/pp_admintools/cfg_app.py:143 lib/pp_admintools/cfg_app.py:149
 msgid "Invalid configuration stem {!r} given."
 msgstr "Ungültiger Konfigurations-Stammname {!r} angegeben."
 
@@ -27,41 +42,43 @@ msgstr "Ungültiger Konfigurations-Stammname {!r} angegeben."
 msgid "{c} on setting encoding {v!r}: {e}"
 msgstr "{c} beim Setzen der Kodierung {v!r}: {e}"
 
-#: lib/pp_admintools/cfg_app.py:244
+#: lib/pp_admintools/cfg_app.py:244 lib/pp_admintools/mail_app.py:204
 msgid "Mailing options"
 msgstr "E-Mail-Optionen"
 
 #: lib/pp_admintools/cfg_app.py:248 lib/pp_admintools/cfg_app.py:254 lib/pp_admintools/cfg_app.py:260
+#: lib/pp_admintools/mail_app.py:219 lib/pp_admintools/mail_app.py:227
+#: lib/pp_admintools/mail_app.py:233 lib/pp_admintools/mail_app.py:239
 msgid "ADDRESS"
 msgstr "ADRESSE"
 
-#: lib/pp_admintools/cfg_app.py:249
+#: lib/pp_admintools/cfg_app.py:249 lib/pp_admintools/mail_app.py:228
 msgid "Mail addresses of all recipients for mails generated by this script."
 msgstr "Mailadressen aller Empfänger von Mails, die von diesem Skript generiert werden."
 
-#: lib/pp_admintools/cfg_app.py:255
+#: lib/pp_admintools/cfg_app.py:255 lib/pp_admintools/mail_app.py:234
 msgid "Mail addresses of all CC recipients for mails generated by this script."
 msgstr "Mailadressen aller CC-Empfänger von Mails, die von diesem Skript generiert werden."
 
-#: lib/pp_admintools/cfg_app.py:261
+#: lib/pp_admintools/cfg_app.py:261 lib/pp_admintools/mail_app.py:240
 msgid "Reply mail address for mails generated by this script."
 msgstr "Antwort-Mailadresse von Mails, die von diesem Skript generiert werden."
 
-#: lib/pp_admintools/cfg_app.py:266
+#: lib/pp_admintools/cfg_app.py:266 lib/pp_admintools/mail_app.py:246
 msgid "METHOD"
 msgstr "METHODE"
 
-#: lib/pp_admintools/cfg_app.py:267
+#: lib/pp_admintools/cfg_app.py:267 lib/pp_admintools/mail_app.py:247
 msgid "Method for sending the mails generated by this script. Valid values: {v}, default: {d!r}."
 msgstr ""
 "Methode zum Senden von Mails, die von diesem Skript generiert werden. Gültige Werte: {v}, "
 "Vorgabe: {d!r}."
 
-#: lib/pp_admintools/cfg_app.py:276
+#: lib/pp_admintools/cfg_app.py:276 lib/pp_admintools/mail_app.py:255
 msgid "SERVER"
 msgstr "SERVER"
 
-#: lib/pp_admintools/cfg_app.py:277
+#: lib/pp_admintools/cfg_app.py:277 lib/pp_admintools/mail_app.py:256
 msgid ""
 "Mail server for submitting generated by this script if the mail method of this script is 'smtp'."
 " Default: {!r}."
@@ -69,11 +86,12 @@ msgstr ""
 "Der Mailserver zur Übermittlung der von diesem Skript generierten Mails, wenn die Mail-Methode "
 "'smtp' ist. Vorgabe: {!r}."
 
-#: lib/pp_admintools/cfg_app.py:285 lib/pp_admintools/pdns_app.py:306
+#: lib/pp_admintools/cfg_app.py:285 lib/pp_admintools/mail_app.py:263
+#: lib/pp_admintools/pdns_app.py:275
 msgid "PORT"
 msgstr "PORT"
 
-#: lib/pp_admintools/cfg_app.py:286
+#: lib/pp_admintools/cfg_app.py:286 lib/pp_admintools/mail_app.py:265
 msgid ""
 "The port to use for submitting generated by this script if the mail method of this script is "
 "'smtp'. Default: {}."
@@ -137,8 +155,8 @@ msgstr "Falsche Datei {!r} - "
 msgid "Config file {!r} not found."
 msgstr "Die Konfigurationsdatei {!r} wurde nicht gefunden."
 
-#: lib/pp_admintools/cfg_app.py:506 lib/pp_admintools/deploy_zones_from_pdns.py:727
-#: lib/pp_admintools/deploy_zones_from_pdns.py:743
+#: lib/pp_admintools/cfg_app.py:506 lib/pp_admintools/dns_deploy_zones_app.py:693
+#: lib/pp_admintools/dns_deploy_zones_app.py:710
 msgid "Reading {!r} ..."
 msgstr "Lese {!r} …"
 
@@ -167,7 +185,8 @@ msgid "There are no errors in configuration."
 msgstr "In der Konfiguration gibt es keine Fehler."
 
 #: lib/pp_admintools/cfg_app.py:568 lib/pp_admintools/cfg_app.py:591
-#: lib/pp_admintools/deploy_zones_from_pdns.py:238 lib/pp_admintools/pdns_app.py:362
+#: lib/pp_admintools/dns_deploy_zones_config.py:202 lib/pp_admintools/dns_deploy_zones_config.py:515
+#: lib/pp_admintools/mail_config.py:178 lib/pp_admintools/pdns_config.py:187
 msgid "Evaluating config section {!r}:"
 msgstr "Evaluiere Konfigurations-Abschnitt {!r}:"
 
@@ -187,7 +206,7 @@ msgstr "Ungültige CC-Mailadresse {!r} in der Konfiguration gefunden."
 msgid "Found invalid reply mail address {!r} in configuration."
 msgstr "Ungültige Antwort-Mailadresse {!r} in der Konfiguration gefunden."
 
-#: lib/pp_admintools/cfg_app.py:670
+#: lib/pp_admintools/cfg_app.py:670 lib/pp_admintools/mail_config.py:308
 msgid "Found invalid mail method {!r} in configuration."
 msgstr "Ungültige Mail-Methode {!r} in der Konfiguration gefunden."
 
@@ -195,7 +214,7 @@ msgstr "Ungültige Mail-Methode {!r} in der Konfiguration gefunden."
 msgid "Found invalid SMTP port number {!r} in configuration."
 msgstr "Ungültige SMTP-Port-Nummer {!r} in der Konfiguration gefunden."
 
-#: lib/pp_admintools/cfg_app.py:722
+#: lib/pp_admintools/cfg_app.py:722 lib/pp_admintools/mail_app.py:106
 msgid "Got invalid SMTP port number {!r}."
 msgstr "Ungültige SMTP-Port-Nummer {!r} erhalten."
 
@@ -207,22 +226,22 @@ msgstr "Ungültige Empfänger-Mailadresse {!r} erhalten."
 msgid "Got invalid CC mail address {!r}."
 msgstr "Ungültige CC-Mailadresse {!r} erhalten."
 
-#: lib/pp_admintools/cfg_app.py:776
+#: lib/pp_admintools/cfg_app.py:776 lib/pp_admintools/mail_app.py:190
 msgid "Got invalid reply mail address {!r}."
 msgstr "Ungültige CC-Mailadresse {!r} erhalten."
 
-#: lib/pp_admintools/cfg_app.py:807
+#: lib/pp_admintools/cfg_app.py:807 lib/pp_admintools/mail_app.py:289
 msgid "Mail to send:"
 msgstr "Die zu sendende Mail:"
 
-#: lib/pp_admintools/cfg_app.py:840
+#: lib/pp_admintools/cfg_app.py:840 lib/pp_admintools/mail_app.py:322
 msgid "Did not found sendmail executable."
 msgstr "Kein ausführbares Programm 'sendmail' gefunden."
 
-#: lib/pp_admintools/cfg_app.py:846 lib/pp_admintools/deploy_zones_from_pdns.py:474
-#: lib/pp_admintools/deploy_zones_from_pdns.py:824 lib/pp_admintools/deploy_zones_from_pdns.py:860
-#: lib/pp_admintools/deploy_zones_from_pdns.py:892 lib/pp_admintools/deploy_zones_from_pdns.py:927
-#: lib/pp_admintools/deploy_zones_from_pdns.py:962
+#: lib/pp_admintools/cfg_app.py:846 lib/pp_admintools/dns_deploy_zones_app.py:441
+#: lib/pp_admintools/dns_deploy_zones_app.py:795 lib/pp_admintools/dns_deploy_zones_app.py:831
+#: lib/pp_admintools/dns_deploy_zones_app.py:863 lib/pp_admintools/dns_deploy_zones_app.py:898
+#: lib/pp_admintools/dns_deploy_zones_app.py:933 lib/pp_admintools/mail_app.py:328
 msgid "Executing: {}"
 msgstr "Führe aus: {}"
 
@@ -266,221 +285,177 @@ msgstr "Die Netzwerkadresse {nw!r} von Zone {zone!r} ist für lokale Netze besti
 msgid "Zone {!r} seems to be a reverse zone for a public network."
 msgstr "Die Zone {!r} scheint eine Reverse-Zone eines öffentlichen Netzwerks zu sein."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:146
+#: lib/pp_admintools/dns_deploy_zones_app.py:121
 msgid "Generation of the BIND9 configuration file for slave zones."
 msgstr "Generierung der BIND9-Konfigurationsdatei für Slave-Zonen."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:180
+#: lib/pp_admintools/dns_deploy_zones_app.py:263
 msgid "Keep a backup file for each changed configuration file."
 msgstr "Eine Backup-Datei für jede geänderte Konfigurationsdatei aufbewahren."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:185
+#: lib/pp_admintools/dns_deploy_zones_app.py:268
 msgid "Keeping the temporary directory instead of removing it at the end (e.g. for debugging purposes)"
 msgstr "Aufbewahren des temporären Verzeichnisses, anstatt es am Ende zu löschen (z.Bsp. zum Debuggen)"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:213 lib/pp_admintools/pdns_app.py:348
-msgid "Checking config section {!r} ..."
-msgstr "Überprüfe Konfigurationsabschnitt {!r} …"
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:265
-msgid "No masters given in [{}]/masters."
-msgstr "Keine Master in [{}]/masters angegeben."
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:275
-msgid "Checking given master address {!r} ..."
-msgstr "Überprüfe die übergebene Master-Adresse {!r} …"
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:282
-msgid "Not using {!r} as a master IP address, because we are not using IPv6."
-msgstr "Verwende {!r} nicht als Master-Adress-IP, da kein IPv6 verwendet wird."
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:288
-msgid "Address {!r} are already in masters yet."
-msgstr "Die Adresse {!r} ist bereits in den Mastern ennthalten."
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:290
-msgid "Address {!r} are not in masters yet."
-msgstr "Die Adresse {!r} ist nicht in den Mastern ennthalten."
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:294
-msgid "Invalid hostname or address {a!r} found in [{s}]/masters: {e}"
-msgstr "Ungültiger Hostname oder Adresse {a!r} in [{s}]/masters gefunden: {e}"
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:302
-msgid "Using configured masters: {}"
-msgstr "Verwende konfigurierte Master: {}"
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:306
-msgid "No valid masters found in configuration."
-msgstr "Keine gültigen Master in der Konfoguration gefunden."
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:317
+#: lib/pp_admintools/dns_deploy_zones_app.py:294
 msgid "Post init phase."
 msgstr "Nach-Init-Phase."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:319
-msgid "Checking for masters, which are local addresses ..."
-msgstr "Überprüfe nach Mastern, die eine lokale Adresse haben …"
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:324
-msgid "Address {!r} is in list of local addresses."
-msgstr "Die Adresse {!r} ist bereits in der Liste der lokalen Adressen."
+#: lib/pp_admintools/dns_deploy_zones_app.py:298
+msgid "My own post init phase."
+msgstr "Die eigene Nach-Init-Phase."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:327
-msgid "Address {!r} is not in list of local addresses."
-msgstr "Die Adresse {!r} ist nicht in der Liste der lokalen Adressen."
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:330
-msgid "Using masters for slave zones: {}"
-msgstr "Verwendete Master für Slave-Zonen: {}"
+#: lib/pp_admintools/dns_deploy_zones_app.py:314
+msgid "Unknown time zone: {!r}."
+msgstr "Unbekannte Zeitzone: {!r}."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:349
+#: lib/pp_admintools/dns_deploy_zones_app.py:334
 msgid "You must be root to execute this script."
 msgstr "Du musst root sein, um dieses Skript ausführen zu können."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:360
+#: lib/pp_admintools/dns_deploy_zones_app.py:336
+msgid "But in simulation mode we are continuing nevertheless."
+msgstr "Aber im Simulationsmodus machen wir trotzdem weiter."
+
+#: lib/pp_admintools/dns_deploy_zones_app.py:346
 msgid "Using the global DNS master is not supported, please use 'local' or 'public'"
 msgstr "Die Verwendung des glovalen Masters wird nicht unterstützt, bitte 'local' oder 'public' verwenden"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:379
-msgid "Unknown time zone: {!r}."
-msgstr "Unbekannte Zeitzone: {!r}."
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:382
+#: lib/pp_admintools/dns_deploy_zones_app.py:354
 msgid "Starting: {}"
 msgstr "Starte: {}"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:390
+#: lib/pp_admintools/dns_deploy_zones_app.py:361
 msgid "Could not occupy pidfile: {}"
 msgstr "Konnte PID-Datei nicht vereinnahmen."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:415
+#: lib/pp_admintools/dns_deploy_zones_app.py:386
 msgid "Ending: {}"
 msgstr "Beendet: {}"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:421
+#: lib/pp_admintools/dns_deploy_zones_app.py:391
 msgid "Cleaning up ..."
 msgstr "Aufräumen …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:425
+#: lib/pp_admintools/dns_deploy_zones_app.py:395
 msgid "Searching for {!r}."
 msgstr "Suche nach {!r}."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:428
+#: lib/pp_admintools/dns_deploy_zones_app.py:398
 msgid "Keep existing backup file {!r}."
 msgstr "Behalte existierende Backup-Datei {!r}."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:430
+#: lib/pp_admintools/dns_deploy_zones_app.py:400
 msgid "Removing {!r} ..."
 msgstr "Lösche {!r} …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:436
+#: lib/pp_admintools/dns_deploy_zones_app.py:406
 msgid "Error removing {p!r} - {c}: {e}"
 msgstr "Fehler beim Löschen {p!r} - {c}: {e}"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:441
+#: lib/pp_admintools/dns_deploy_zones_app.py:411
 msgid "Temporary directory {!r} will not be removed. It's on yours to remove it manually."
 msgstr ""
 "Das temporäre Verzeichnis {!r} wird nicht gelöscht. Du musst Dich selbst darum kümmern, es "
 "manuell zu löschen."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:446
+#: lib/pp_admintools/dns_deploy_zones_app.py:416
 msgid "Destroying temporary directory {!r} ..."
 msgstr "Zerstöre temporäres Verzeichnis {!r} …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:457
+#: lib/pp_admintools/dns_deploy_zones_app.py:425
 msgid "Temporary directory: {!r}."
 msgstr "Temporäres Verzeichnis: {!r}."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:463
+#: lib/pp_admintools/dns_deploy_zones_app.py:430
 msgid "Temporary zones conf: {!r}"
 msgstr "Temporäre Zonenkonfiguration: {!r}"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:468
+#: lib/pp_admintools/dns_deploy_zones_app.py:435
 msgid "Trying to get all keys from named.conf ..."
 msgstr "Versuche alle Schlüssel der named.conf zu ermitteln …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:480 lib/pp_admintools/deploy_zones_from_pdns.py:830
+#: lib/pp_admintools/dns_deploy_zones_app.py:447 lib/pp_admintools/dns_deploy_zones_app.py:801
 msgid "Result:"
 msgstr "Ergebnis:"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:521 lib/pp_admintools/deploy_zones_from_pdns.py:523
+#: lib/pp_admintools/dns_deploy_zones_app.py:488 lib/pp_admintools/dns_deploy_zones_app.py:490
 msgid "Found named keys:"
 msgstr "iGefundene Schlüssel von named:"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:523 lib/pp_admintools/deploy_zones_from_pdns.py:554
+#: lib/pp_admintools/dns_deploy_zones_app.py:490 lib/pp_admintools/dns_deploy_zones_app.py:521
 msgid "None"
 msgstr "Keine"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:528
+#: lib/pp_admintools/dns_deploy_zones_app.py:495
 msgid "Generating {} ..."
 msgstr "Generiere {} …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:552 lib/pp_admintools/deploy_zones_from_pdns.py:554
+#: lib/pp_admintools/dns_deploy_zones_app.py:519 lib/pp_admintools/dns_deploy_zones_app.py:521
 msgid "Collected server configuration:"
 msgstr "Ermittelte Servers-Konfiguration:"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:575
+#: lib/pp_admintools/dns_deploy_zones_app.py:542
 msgid "Generated file {!r}:"
 msgstr "Generierte Datei {!r}:"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:591
+#: lib/pp_admintools/dns_deploy_zones_app.py:558
 msgid "Pure local zone {!r} will not be considered."
 msgstr "Die rein lokale Zone {!r} wird nich mit beachtet."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:624
+#: lib/pp_admintools/dns_deploy_zones_app.py:590
 msgid "Key {k!r} for zone {z!r} not found in named configuration."
 msgstr "Der Schlüssel {k!r} für die Zone {z!r} wurde in der named-Konfiguration nicht gefunden."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:654
+#: lib/pp_admintools/dns_deploy_zones_app.py:620
 msgid "Got IPv4 tuples: {}"
 msgstr "Habe IPv4-Tupels erhalten: {}"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:678
+#: lib/pp_admintools/dns_deploy_zones_app.py:644
 msgid "Got IPv6 tokens: {}"
 msgstr "Habe IPv6-Tupels erhalten: {}"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:685
+#: lib/pp_admintools/dns_deploy_zones_app.py:651
 msgid "Comparing generated files with existing ones."
 msgstr "Vergleiche die generierten Dateien mit den existierenden."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:692
+#: lib/pp_admintools/dns_deploy_zones_app.py:658
 msgid "Files to replace:"
 msgstr "Dateien, die ersetzt werden:"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:698
+#: lib/pp_admintools/dns_deploy_zones_app.py:664
 msgid "Source file not defined."
 msgstr "Die Quell-Datei ist nicht definiert."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:700
+#: lib/pp_admintools/dns_deploy_zones_app.py:666
 msgid "Target file not defined."
 msgstr "Die Ziel-Datei ist nicht definiert."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:702
+#: lib/pp_admintools/dns_deploy_zones_app.py:668
 msgid "Comparing {one!r} with {two!r} ..."
 msgstr "Vergleiche {one!r} mit {two!r} …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:706 lib/pp_admintools/deploy_zones_from_pdns.py:715
+#: lib/pp_admintools/dns_deploy_zones_app.py:672 lib/pp_admintools/dns_deploy_zones_app.py:681
 msgid "{what} {f!r} does not exists."
 msgstr "Die {what} {f!r} existiert nicht."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:707 lib/pp_admintools/deploy_zones_from_pdns.py:711
+#: lib/pp_admintools/dns_deploy_zones_app.py:673 lib/pp_admintools/dns_deploy_zones_app.py:677
 msgid "Source file"
 msgstr "Quell-Datei"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:710 lib/pp_admintools/deploy_zones_from_pdns.py:720
+#: lib/pp_admintools/dns_deploy_zones_app.py:676 lib/pp_admintools/dns_deploy_zones_app.py:686
 msgid "{what} {f!r} is not a regular file."
 msgstr "Die {what} {f!r} ist keine reguläre Datei."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:716 lib/pp_admintools/deploy_zones_from_pdns.py:721
+#: lib/pp_admintools/dns_deploy_zones_app.py:682 lib/pp_admintools/dns_deploy_zones_app.py:687
 msgid "Target file"
 msgstr "Ziel-Datei"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:738 lib/pp_admintools/deploy_zones_from_pdns.py:754
+#: lib/pp_admintools/dns_deploy_zones_app.py:703 lib/pp_admintools/dns_deploy_zones_app.py:720
 msgid "Cleaned version of {!r}:"
 msgstr "Bereinigte Version von {!r}:"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:757
+#: lib/pp_admintools/dns_deploy_zones_app.py:725
 msgid ""
 "Source file {sf!r} has different number essential lines ({sl}) than the target file {tf!r} ({tl}"
 " lines)."
@@ -488,78 +463,192 @@ msgstr ""
 "Die Quelldatei {sf!r} besitzt eine andere Anzahl essentieller Zeilen ({sl}) als die Zieldatei "
 "{tf!r} ({tl} lines)."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:766
+#: lib/pp_admintools/dns_deploy_zones_app.py:734
 msgid "Source file {sf!r} has a different content than the target file {tf!r}."
 msgstr "Die Quelldate {sf!r} hat einen anderen Inhalt als die Zielfatei {tf!r}."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:778
+#: lib/pp_admintools/dns_deploy_zones_app.py:746
 msgid "No replacement of any config files necessary."
 msgstr "Es muss keine Datei ersetzt werden."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:781
+#: lib/pp_admintools/dns_deploy_zones_app.py:749
 msgid "Start replacing of config files ..."
 msgstr "Starting Ersatz von Konfigurations-Dateien …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:789 lib/pp_admintools/deploy_zones_from_pdns.py:798
+#: lib/pp_admintools/dns_deploy_zones_app.py:757 lib/pp_admintools/dns_deploy_zones_app.py:767
 msgid "Copying {frm!r} => {to!r} ..."
 msgstr "Kopieren {frm!r} => {to!r} …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:794
+#: lib/pp_admintools/dns_deploy_zones_app.py:763
 msgid "All backuped config files:"
 msgstr "Alle gesicherten Konfigurations-Dateien:"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:805
+#: lib/pp_admintools/dns_deploy_zones_app.py:775
 msgid "Restoring of original config files because of an exception."
 msgstr "Wiederherstellung der Original-Konfigurations-Dateien wegen eines Fehlers."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:809
+#: lib/pp_admintools/dns_deploy_zones_app.py:779
 msgid "Moving {frm!r} => {to!r} ..."
 msgstr "Verschieben {frm!r} => {to!r} …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:814
+#: lib/pp_admintools/dns_deploy_zones_app.py:785
 msgid "Could not find backup file {!r}."
 msgstr "Konnte Backup-Datei {!r} nicht finden."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:819
+#: lib/pp_admintools/dns_deploy_zones_app.py:790
 msgid "Checking syntax correctness of named.conf ..."
 msgstr "Überprüfe synaktische Richtigkeit der named.conf …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:840
+#: lib/pp_admintools/dns_deploy_zones_app.py:811
 msgid "Reload or restart of named is not necessary."
 msgstr "Ein Reload oder Neustart von named ist nicht notwendig."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:845
+#: lib/pp_admintools/dns_deploy_zones_app.py:816
 msgid "Named is not running, please start it manually."
 msgstr "Named läuft nicht, bitte manuell starten."
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:856
+#: lib/pp_admintools/dns_deploy_zones_app.py:827
 msgid "Checking, whether named is running ..."
 msgstr "Überprüfen, ob named läuft …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:874 lib/pp_admintools/deploy_zones_from_pdns.py:909
-#: lib/pp_admintools/deploy_zones_from_pdns.py:944 lib/pp_admintools/deploy_zones_from_pdns.py:979
+#: lib/pp_admintools/dns_deploy_zones_app.py:845 lib/pp_admintools/dns_deploy_zones_app.py:880
+#: lib/pp_admintools/dns_deploy_zones_app.py:915 lib/pp_admintools/dns_deploy_zones_app.py:950
 msgid "Return value: {!r}"
 msgstr "Rückgabewert: {!r}"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:876 lib/pp_admintools/deploy_zones_from_pdns.py:878
-#: lib/pp_admintools/deploy_zones_from_pdns.py:911 lib/pp_admintools/deploy_zones_from_pdns.py:913
-#: lib/pp_admintools/deploy_zones_from_pdns.py:946 lib/pp_admintools/deploy_zones_from_pdns.py:948
-#: lib/pp_admintools/deploy_zones_from_pdns.py:981 lib/pp_admintools/deploy_zones_from_pdns.py:983
+#: lib/pp_admintools/dns_deploy_zones_app.py:847 lib/pp_admintools/dns_deploy_zones_app.py:849
+#: lib/pp_admintools/dns_deploy_zones_app.py:882 lib/pp_admintools/dns_deploy_zones_app.py:884
+#: lib/pp_admintools/dns_deploy_zones_app.py:917 lib/pp_admintools/dns_deploy_zones_app.py:919
+#: lib/pp_admintools/dns_deploy_zones_app.py:952 lib/pp_admintools/dns_deploy_zones_app.py:954
 msgid "Output on {}"
 msgstr "Ausgabe an {}"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:888
+#: lib/pp_admintools/dns_deploy_zones_app.py:859
 msgid "Starting {} ..."
 msgstr "Starten {} …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:923
+#: lib/pp_admintools/dns_deploy_zones_app.py:894
 msgid "Restarting {} ..."
 msgstr "Neu starten {} …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:958
+#: lib/pp_admintools/dns_deploy_zones_app.py:929
 msgid "Reloading {} ..."
 msgstr "Reload {} …"
 
+#: lib/pp_admintools/dns_deploy_zones_config.py:290
+msgid "Checking given master address {!r} ..."
+msgstr "Überprüfe die übergebene Master-Adresse {!r} …"
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:302
+msgid "Trying to evaluate address of host {!r} ..."
+msgstr "Versuche die Adresse von Host {!r} zu ermitteln …"
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:311
+msgid "Invalid hostname or address {a!r} found in masters: {e}"
+msgstr "Ungültiger Hostname oder Adresse {a!r} in masters gefunden: {e}"
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:319
+msgid "Got addresses {a!r} for host {h!r}."
+msgstr "Habe Adresse {a!r} für Host {h!r} gefunden."
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:333 lib/pp_admintools/dns_deploy_zones_config.py:356
+#: lib/pp_admintools/dns_deploy_zones_config.py:381 lib/pp_admintools/dns_deploy_zones_config.py:430
+#: lib/pp_admintools/dns_deploy_zones_config.py:479 lib/pp_admintools/dns_deploy_zones_config.py:541
+msgid "The path to {what} must be an absolute path, found {path!r}."
+msgstr "Der Pfad zu {what} muss absolut sein, fand aber {path!r}."
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:342 lib/pp_admintools/dns_deploy_zones_config.py:365
+#: lib/pp_admintools/dns_deploy_zones_config.py:390 lib/pp_admintools/dns_deploy_zones_config.py:415
+#: lib/pp_admintools/dns_deploy_zones_config.py:439 lib/pp_admintools/dns_deploy_zones_config.py:464
+#: lib/pp_admintools/dns_deploy_zones_config.py:488 lib/pp_admintools/dns_deploy_zones_config.py:550
+msgid "Found path to {what}: {path!r}."
+msgstr "Fand Pfad zu {what}: {path!r}."
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:377
+msgid "the named config directory"
+msgstr "das Konfigurationsverzeichnis vin named"
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:402
+msgid "the named config file for zones"
+msgstr "die named-Konfigurationsdatei für Zonen"
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:406 lib/pp_admintools/dns_deploy_zones_config.py:455
+msgid "The path to {what} must not be an absolute path, found {path!r}."
+msgstr "Der Pfad zu {what} farf nicht absolut sein, fand aber {path!r}."
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:427
+msgid "the named base directory"
+msgstr "das Basis-Verzeichnis von named"
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:451
+msgid "the directory for slave zones of named"
+msgstr "das Vezeichnis für Slave-Zonen für named"
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:538
+msgid "the PID file"
+msgstr "die PID-Datei"
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:590
+msgid "Using configured masters:"
+msgstr "Verwende konfigurierte Master:"
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:592
+msgid "No valid masters found in configuration."
+msgstr "Keine gültigen Master in der Konfiguration gefunden."
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:595
+msgid "Evaluated configuration:"
+msgstr "Evaluierte Konfiguration:"
+
+#: lib/pp_admintools/mail_app.py:124
+msgid "Got invalid mail from address {!r}."
+msgstr "Ungültige Absender-Mailadresse {!r} erhalten."
+
+#: lib/pp_admintools/mail_app.py:147
+msgid "Got invalid recipient mail addresses:"
+msgstr "Ungültige Empfänger-Mailadressen erhalten:"
+
+#: lib/pp_admintools/mail_app.py:175
+msgid "Got invalid cc mail addresses:"
+msgstr "Ungültige CC-Mailadressen erhalten:"
+
+#: lib/pp_admintools/mail_app.py:220
+msgid "Sender mail address for mails generated by this script. Default: {!r}"
+msgstr "Absender-Mailadresse von Mails, die von diesem Skript generiert werden. Vorgabe: {!r}"
+
+#: lib/pp_admintools/mail_app.py:274
+msgid "Got command line arguments:"
+msgstr "Kommandozeilen-Argumente erhalten:"
+
+#: lib/pp_admintools/mail_config.py:199 lib/pp_admintools/mail_config.py:223
+#: lib/pp_admintools/mail_config.py:291
+msgid "Found invalid {what} {addr!r} in configuration."
+msgstr "Ungültige {what} {addr!r} in der Konfiguration gefunden."
+
+#: lib/pp_admintools/mail_config.py:224
+msgid "from address"
+msgstr "Absender-Adresse"
+
+#: lib/pp_admintools/mail_config.py:240 lib/pp_admintools/mail_config.py:244
+msgid "recipient mail address"
+msgstr "Empfänger-Adresse"
+
+#: lib/pp_admintools/mail_config.py:264 lib/pp_admintools/mail_config.py:268
+msgid "cc mail address"
+msgstr "CC-Mail-Adresse."
+
+#: lib/pp_admintools/mail_config.py:292
+msgid "reply to address"
+msgstr "Reply-To-Adresse"
+
+#: lib/pp_admintools/mail_config.py:342
+msgid "Value {!r} for SMTP port is invalid:"
+msgstr "Der Wert {!r} für einen SMTP-Port ist ungültig:"
+
+#: lib/pp_admintools/mail_config.py:347
+msgid "Found invalid SMTP port number {} in configuration."
+msgstr "Ungültige SMTP-Port-Nummer {!r} in der Konfiguration gefunden."
+
 #: lib/pp_admintools/mailaddress.py:54
 msgid "Empty address."
 msgstr "Leere Adresse"
@@ -572,122 +661,194 @@ msgstr "Falscher Typ."
 msgid "Invalid address."
 msgstr "Ungültige Adresse."
 
-#: lib/pp_admintools/pdns_app.py:141
+#: lib/pp_admintools/pdns_app.py:99 lib/pp_admintools/pdns_app.py:183
+msgid "Configuration not available."
+msgstr "Die Konfiguration ist nicht verfügbar."
+
+#: lib/pp_admintools/pdns_app.py:113
 msgid "Invalid API key {!r} given."
 msgstr "Ungültiger API-Schlüssel {!r} angegeben."
 
-#: lib/pp_admintools/pdns_app.py:153
+#: lib/pp_admintools/pdns_app.py:125
 msgid "Invalid API host {!r} given."
 msgstr "Ungültiger API-Host {!r} angegeben."
 
-#: lib/pp_admintools/pdns_app.py:166
+#: lib/pp_admintools/pdns_app.py:138
 msgid "Invalid API port {!r} given."
 msgstr "Ungültiger API-Port {!r} angegeben."
 
-#: lib/pp_admintools/pdns_app.py:178
+#: lib/pp_admintools/pdns_app.py:150
 msgid "Invalid API server name {!r} given."
 msgstr "Ungültiger API-Servername {!r} angegeben."
 
-#: lib/pp_admintools/pdns_app.py:196
-msgid "Invalid user agent {!r} given."
-msgstr "Ungültiger User-Agent {!r} angegeben."
+#: lib/pp_admintools/pdns_app.py:168 lib/pp_admintools/pdns_app.py:171
+msgid "Invalid instance {!r} given."
+msgstr "Ungültige Instanz {!r} angegeben."
 
-#: lib/pp_admintools/pdns_app.py:209
-msgid "Invalid timeout {!r} given."
-msgstr "Ungültiger Timeout {!r} angegeben."
+#: lib/pp_admintools/pdns_app.py:179
+msgid "Evaluating instance {!r} ..."
+msgstr "Ermittle Instanz {!r} …"
 
-#: lib/pp_admintools/pdns_app.py:221 lib/pp_admintools/pdns_app.py:224
-msgid "Invalid environment {!r} given."
-msgstr "Ungültige Umgebung {!r} angegeben."
+#: lib/pp_admintools/pdns_app.py:187
+msgid "PDNS instance {!r} is not configured."
+msgstr "Die PDNS Instanz {!r} ist nicht konfiguriert."
 
-#: lib/pp_admintools/pdns_app.py:269
+#: lib/pp_admintools/pdns_app.py:240
 msgid "PowerDNS API options"
 msgstr "PowerDNS API-Optionen"
 
-#: lib/pp_admintools/pdns_app.py:279
-msgid "ENVIRONMENT"
-msgstr "UMGEBUNG"
+#: lib/pp_admintools/pdns_app.py:249
+msgid "INSTANCE"
+msgstr "INSTANZ"
 
-#: lib/pp_admintools/pdns_app.py:280
-msgid "Select, which PowerDNS environment to use. Valid values: {v}, default: {d!r}."
-msgstr "Auswahl der zu verwendenden PowerDNS-Umgebung. Gültige Werte: {v}, Vorgaben: {d!r}."
+#: lib/pp_admintools/pdns_app.py:250
+msgid "Select, which PowerDNS instance to use. Valid values: {v}, default: {d!r}."
+msgstr "Auswahl der zu verwendenden PowerDNS-Instanz. Gültige Werte: {v}, Vorgaben: {d!r}."
 
-#: lib/pp_admintools/pdns_app.py:289 lib/pp_admintools/pdns_app.py:295
-#: lib/pp_admintools/pdns_app.py:301
-msgid "Using the {!r} PowerDNS environment."
-msgstr "Verwenden der {!r}-PowerDNS-Umgebung."
+#: lib/pp_admintools/pdns_app.py:258 lib/pp_admintools/pdns_app.py:264
+#: lib/pp_admintools/pdns_app.py:270
+msgid "Using the {!r} PowerDNS instance."
+msgstr "Verwenden der {!r}-PowerDNS-Instanz."
 
-#: lib/pp_admintools/pdns_app.py:307
+#: lib/pp_admintools/pdns_app.py:278
 msgid "Which port to connect to PowerDNS API, default: {}."
 msgstr "Welcher Port soll verwendet werden, um sich mit der PowerDNS-API zu verbinden, Vorgabe: {}."
 
-#: lib/pp_admintools/pdns_app.py:313
+#: lib/pp_admintools/pdns_app.py:284
 msgid "SECS"
 msgstr "SEKUNDEN"
 
-#: lib/pp_admintools/pdns_app.py:314
+#: lib/pp_admintools/pdns_app.py:285
+msgid "PowerDNS API access"
+msgstr "PowerDNS API Zugang"
+
+#: lib/pp_admintools/pdns_app.py:286
 msgid "The timeout in seconds to request the PowerDNS API, default: {}."
 msgstr "Der Timeout in Sekunden um die PowerDNS-API abzufragen, Vorgabe: {}."
 
-#: lib/pp_admintools/pdns_app.py:367
-msgid "Wrong environment {!r} found in configuration."
-msgstr "Falsche Umgebung {!r} in der Konfoguration gefunden."
-
-#: lib/pp_admintools/pdns_app.py:384
-msgid "A port must be greater than 0 and less than {}."
-msgstr "Ein Port muss größer als 0 und kleiner als {} sein."
-
-#: lib/pp_admintools/pdns_app.py:386
-msgid "Wrong port number {p!r} in configuration section {s!r}: {e}"
-msgstr "Falsche Portnummer {p!r} im Konfigurationsabschnitt {s!r}: {e}"
-
-#: lib/pp_admintools/pdns_app.py:411
+#: lib/pp_admintools/pdns_app.py:309
 msgid "No path given for{d} [{s}]/{k} in configuration."
 msgstr "Kein Pfad für{d} [{s}]/{k} in der Konfiguration angegegben."
 
-#: lib/pp_admintools/pdns_app.py:418
+#: lib/pp_admintools/pdns_app.py:316
 msgid "Path {p!r} for{d} [{s}]/{k} in configuration must be an absolute path."
 msgstr "Der Pfad {p!r} für{d} [{s}]/{k} in der Konfiguration muss ein absoluter sein."
 
-#: lib/pp_admintools/pdns_app.py:441 lib/pp_admintools/pdns_app.py:462
-#: lib/pp_admintools/pdns_app.py:489
+#: lib/pp_admintools/pdns_app.py:339 lib/pp_admintools/pdns_app.py:375
+#: lib/pp_admintools/pdns_app.py:402
 msgid "Executing {} ..."
 msgstr "Ausführung von {} …"
 
-#: lib/pp_admintools/pdns_app.py:464
+#: lib/pp_admintools/pdns_app.py:377
 msgid "Setting Loglevel of the requests module to {}."
 msgstr "Setze das Loglevel des Requests-Moduls auf {}."
 
-#: lib/pp_admintools/pdns_app.py:478
+#: lib/pp_admintools/pdns_app.py:391
 msgid "Executing nothing ..."
 msgstr "Führe nicht aus …"
 
-#: lib/pp_admintools/pdns_app.py:495 lib/pp_admintools/pdns_app.py:517
-#: lib/pp_admintools/pdns_app.py:528 lib/pp_admintools/pdns_app.py:538
+#: lib/pp_admintools/pdns_app.py:411 lib/pp_admintools/pdns_app.py:433
+#: lib/pp_admintools/pdns_app.py:444 lib/pp_admintools/pdns_app.py:454
 msgid "The PDNS server object does not exists."
 msgstr "Das PDNS-Server-Objekt existiert nicht."
 
-#: lib/pp_admintools/pdns_app.py:497 lib/pp_admintools/pdns_app.py:519
-#: lib/pp_admintools/pdns_app.py:530 lib/pp_admintools/pdns_app.py:540
+#: lib/pp_admintools/pdns_app.py:413 lib/pp_admintools/pdns_app.py:435
+#: lib/pp_admintools/pdns_app.py:446 lib/pp_admintools/pdns_app.py:456
 msgid "The PDNS server object is not initialized."
 msgstr "Das PDNS-Server-Objekt ist nicht initialisiert."
 
-#: lib/pp_admintools/pdns_app.py:548
+#: lib/pp_admintools/pdns_app.py:464
 msgid "Trying to get complete information about zone {!r} ..."
 msgstr "Versuch die kompletten Informationen über die Zone {!r} zu bekommen …"
 
-#: lib/pp_admintools/pdns_app.py:554
+#: lib/pp_admintools/pdns_app.py:470
 msgid "The given zone {} was not found."
 msgstr "Die angegebene Zone {} wurde nicht gefunden."
 
-#: lib/pp_admintools/pdns_app.py:557
+#: lib/pp_admintools/pdns_app.py:473
 msgid "Got a response:"
 msgstr "Erhaltene Antwort:"
 
-#: lib/pp_admintools/pdns_app.py:562
+#: lib/pp_admintools/pdns_app.py:478
 msgid "Zone object:"
 msgstr "Zonen-Objekt:"
 
+#: lib/pp_admintools/pdns_config.py:247
+msgid "A timeout has to be between 1 and {} seconds."
+msgstr "Ein Timeout muss zwischen 1 und {} Sekunden betragen."
+
+#: lib/pp_admintools/pdns_config.py:251
+msgid "Value {!r} for PowerDNS API timeout is invalid:"
+msgstr "Der Wert für den PoerDNS-API-Timeout ist ungültig:"
+
+#: lib/pp_admintools/pdns_config.py:269
+msgid "Found invalid PDNS environment/instance {!r} in configuration."
+msgstr "Ungültige PowerDNS-Instanz {!r} in der Konfiguration gefunden."
+
+#: lib/pp_admintools/pdns_config.py:284
+msgid "Found PDNS host: {!r}."
+msgstr "Fand PowerDNS-Host: {!r}."
+
+#: lib/pp_admintools/pdns_config.py:300 lib/pp_admintools/pdns_config.py:392
+msgid "A port must be greater than 0 and less than {}."
+msgstr "Ein Port muss größer als 0 und kleiner als {} sein."
+
+#: lib/pp_admintools/pdns_config.py:303
+msgid "Wrong PDNS port number {p!r} found: {e}"
+msgstr "Falsche PowerDNS-Portnummer {p!r} gefunden: {e}"
+
+#: lib/pp_admintools/pdns_config.py:312
+msgid "Found port number for PDNS: {}."
+msgstr "Fand PowerDNS-Portnummer: {}."
+
+#: lib/pp_admintools/pdns_config.py:326
+msgid "Found API key for PDNS: {!r}."
+msgstr "Fand PowerDNS-API-Schlüssel: {!r}."
+
+#: lib/pp_admintools/pdns_config.py:337
+msgid "Found PDNS API servername: {!r}."
+msgstr "Fand PowerDNS-API-Servernamen: {!r}."
+
+#: lib/pp_admintools/pdns_config.py:354
+msgid "Evaluating PowerDNS instance {!r}:"
+msgstr "Werte PowerDNS-Instanz {!r} aus:"
+
+#: lib/pp_admintools/pdns_config.py:366
+msgid "Searching for host for PDNS instance {!r} .."
+msgstr "Suche nach Host für PowerDNS-Instanz {!r} …"
+
+#: lib/pp_admintools/pdns_config.py:374
+msgid "Found host for PDNS instance {inst!r}: {host!r}."
+msgstr "Fand Host für PowerDNS-Instanz {inst!r}: {host!r}."
+
+#: lib/pp_admintools/pdns_config.py:382
+msgid "Searching for post number for PDNS instance {!r} .."
+msgstr "Suche nach Portnummer für PowerDNS-Instanz {!r} …"
+
+#: lib/pp_admintools/pdns_config.py:395
+msgid "Wrong port number {p!r} for PDNS instance {inst!r} found: {e}"
+msgstr "Falsche Portnummer {p!r} für PowerDNS-Instanz {inst!r} gefunden: {e}"
+
+#: lib/pp_admintools/pdns_config.py:404
+msgid "Found port number for PDNS instance {inst!r}: {p}."
+msgstr "Fand Portnummer für PowerDNS-Instanz {inst!r}: {p}."
+
+#: lib/pp_admintools/pdns_config.py:412
+msgid "Searching for internal server name of PDNS instance {!r} .."
+msgstr "Suche nach internem Servernamen für PowerDNS-Instanz {!r} …"
+
+#: lib/pp_admintools/pdns_config.py:422
+msgid "Found internal server name PDNS instance {inst!r}: {sn!r}."
+msgstr "Fand internen Servernamen für PowerDNS-Instanz {inst!r}: {sn!r}."
+
+#: lib/pp_admintools/pdns_config.py:430
+msgid "Searching for API key of PDNS instance {!r} .."
+msgstr "Suche nach API-Schlüssel für PowerDNS-Instanz {!r} …"
+
+#: lib/pp_admintools/pdns_config.py:443
+msgid "Found API key of PDNS instance {inst!r}: {key!r}."
+msgstr "Fand API-Schlüssel für PowerDNS-Instanz {inst!r}: {key!r}."
+
 #: lib/pp_admintools/pidfile.py:72
 msgid "Invalid pidfile {f!r} given: {r}"
 msgstr "Ungültige PID-Datei {f!r} übergeben: {r}"
index 877c8d9d02d04cead298ba549ce0ba9e10404a60..9f854842fa8ed6f09b6c700a9440ea3f17524e8c 100644 (file)
@@ -1,14 +1,14 @@
 # English (United States) translations for pp_admintools.
-# Copyright (C) 2021 Frank Brehm, Digitas Pixelpark Berlin
+# Copyright (C) 2022 Frank Brehm, Digitas Pixelpark Berlin
 # This file is distributed under the same license as the pp_admintools project.
-# Frank Brehm <frank.brehm@pixelpark.com>, 2021.
+# Frank Brehm <frank.brehm@pixelpark.com>, 2022.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: pp_admintools 0.8.0\n"
+"Project-Id-Version: pp_admintools 0.9.0\n"
 "Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2021-12-07 17:50+0100\n"
-"PO-Revision-Date: 2021-11-29 15:35+0100\n"
+"POT-Creation-Date: 2022-03-31 17:40+0200\n"
+"PO-Revision-Date: 2022-03-31 17:45+0100\n"
 "Last-Translator: Frank Brehm <frank.brehm@pixelpark.com>\n"
 "Language: en_US\n"
 "Language-Team: en_US <LL@li.org>\n"
@@ -16,10 +16,25 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.1\n"
 
-#: lib/pp_admintools/cfg_app.py:143 lib/pp_admintools/cfg_app.py:149 lib/pp_admintools/pdns_app.py:101
-#: lib/pp_admintools/pdns_app.py:107
+#: lib/pp_admintools/argparse_actions.py:45
+msgid "Value {v!r} for a {what} port is invalid:"
+msgstr ""
+
+#: lib/pp_admintools/argparse_actions.py:50
+msgid "Value {v!r} for a {what} port must be greater than 0 and less than {max}."
+msgstr ""
+
+#: lib/pp_admintools/argparse_actions.py:77
+msgid "Value {v!r} for a timeout of {what} is invalid:"
+msgstr ""
+
+#: lib/pp_admintools/argparse_actions.py:83
+msgid "Value {v!r} for a timeout of {what} must be greater than 0 and less than {max}."
+msgstr ""
+
+#: lib/pp_admintools/cfg_app.py:143 lib/pp_admintools/cfg_app.py:149
 msgid "Invalid configuration stem {!r} given."
 msgstr ""
 
@@ -27,49 +42,52 @@ msgstr ""
 msgid "{c} on setting encoding {v!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:244
+#: lib/pp_admintools/cfg_app.py:244 lib/pp_admintools/mail_app.py:204
 msgid "Mailing options"
 msgstr ""
 
 #: lib/pp_admintools/cfg_app.py:248 lib/pp_admintools/cfg_app.py:254 lib/pp_admintools/cfg_app.py:260
+#: lib/pp_admintools/mail_app.py:219 lib/pp_admintools/mail_app.py:227
+#: lib/pp_admintools/mail_app.py:233 lib/pp_admintools/mail_app.py:239
 msgid "ADDRESS"
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:249
+#: lib/pp_admintools/cfg_app.py:249 lib/pp_admintools/mail_app.py:228
 msgid "Mail addresses of all recipients for mails generated by this script."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:255
+#: lib/pp_admintools/cfg_app.py:255 lib/pp_admintools/mail_app.py:234
 msgid "Mail addresses of all CC recipients for mails generated by this script."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:261
+#: lib/pp_admintools/cfg_app.py:261 lib/pp_admintools/mail_app.py:240
 msgid "Reply mail address for mails generated by this script."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:266
+#: lib/pp_admintools/cfg_app.py:266 lib/pp_admintools/mail_app.py:246
 msgid "METHOD"
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:267
+#: lib/pp_admintools/cfg_app.py:267 lib/pp_admintools/mail_app.py:247
 msgid "Method for sending the mails generated by this script. Valid values: {v}, default: {d!r}."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:276
+#: lib/pp_admintools/cfg_app.py:276 lib/pp_admintools/mail_app.py:255
 msgid "SERVER"
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:277
+#: lib/pp_admintools/cfg_app.py:277 lib/pp_admintools/mail_app.py:256
 msgid ""
 "Mail server for submitting generated by this script if the mail method of this script is 'smtp'."
 " Default: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:285 lib/pp_admintools/pdns_app.py:306
+#: lib/pp_admintools/cfg_app.py:285 lib/pp_admintools/mail_app.py:263
+#: lib/pp_admintools/pdns_app.py:275
 msgid "PORT"
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:286
+#: lib/pp_admintools/cfg_app.py:286 lib/pp_admintools/mail_app.py:265
 msgid ""
 "The port to use for submitting generated by this script if the mail method of this script is "
 "'smtp'. Default: {}."
@@ -129,8 +147,8 @@ msgstr ""
 msgid "Config file {!r} not found."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:506 lib/pp_admintools/deploy_zones_from_pdns.py:727
-#: lib/pp_admintools/deploy_zones_from_pdns.py:743
+#: lib/pp_admintools/cfg_app.py:506 lib/pp_admintools/dns_deploy_zones_app.py:693
+#: lib/pp_admintools/dns_deploy_zones_app.py:710
 msgid "Reading {!r} ..."
 msgstr "Reading {!r} …"
 
@@ -159,7 +177,8 @@ msgid "There are no errors in configuration."
 msgstr ""
 
 #: lib/pp_admintools/cfg_app.py:568 lib/pp_admintools/cfg_app.py:591
-#: lib/pp_admintools/deploy_zones_from_pdns.py:238 lib/pp_admintools/pdns_app.py:362
+#: lib/pp_admintools/dns_deploy_zones_config.py:202 lib/pp_admintools/dns_deploy_zones_config.py:515
+#: lib/pp_admintools/mail_config.py:178 lib/pp_admintools/pdns_config.py:187
 msgid "Evaluating config section {!r}:"
 msgstr ""
 
@@ -179,7 +198,7 @@ msgstr ""
 msgid "Found invalid reply mail address {!r} in configuration."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:670
+#: lib/pp_admintools/cfg_app.py:670 lib/pp_admintools/mail_config.py:308
 msgid "Found invalid mail method {!r} in configuration."
 msgstr ""
 
@@ -187,7 +206,7 @@ msgstr ""
 msgid "Found invalid SMTP port number {!r} in configuration."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:722
+#: lib/pp_admintools/cfg_app.py:722 lib/pp_admintools/mail_app.py:106
 msgid "Got invalid SMTP port number {!r}."
 msgstr ""
 
@@ -199,22 +218,22 @@ msgstr ""
 msgid "Got invalid CC mail address {!r}."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:776
+#: lib/pp_admintools/cfg_app.py:776 lib/pp_admintools/mail_app.py:190
 msgid "Got invalid reply mail address {!r}."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:807
+#: lib/pp_admintools/cfg_app.py:807 lib/pp_admintools/mail_app.py:289
 msgid "Mail to send:"
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:840
+#: lib/pp_admintools/cfg_app.py:840 lib/pp_admintools/mail_app.py:322
 msgid "Did not found sendmail executable."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:846 lib/pp_admintools/deploy_zones_from_pdns.py:474
-#: lib/pp_admintools/deploy_zones_from_pdns.py:824 lib/pp_admintools/deploy_zones_from_pdns.py:860
-#: lib/pp_admintools/deploy_zones_from_pdns.py:892 lib/pp_admintools/deploy_zones_from_pdns.py:927
-#: lib/pp_admintools/deploy_zones_from_pdns.py:962
+#: lib/pp_admintools/cfg_app.py:846 lib/pp_admintools/dns_deploy_zones_app.py:441
+#: lib/pp_admintools/dns_deploy_zones_app.py:795 lib/pp_admintools/dns_deploy_zones_app.py:831
+#: lib/pp_admintools/dns_deploy_zones_app.py:863 lib/pp_admintools/dns_deploy_zones_app.py:898
+#: lib/pp_admintools/dns_deploy_zones_app.py:933 lib/pp_admintools/mail_app.py:328
 msgid "Executing: {}"
 msgstr ""
 
@@ -258,296 +277,367 @@ msgstr ""
 msgid "Zone {!r} seems to be a reverse zone for a public network."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:146
+#: lib/pp_admintools/dns_deploy_zones_app.py:121
 msgid "Generation of the BIND9 configuration file for slave zones."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:180
+#: lib/pp_admintools/dns_deploy_zones_app.py:263
 msgid "Keep a backup file for each changed configuration file."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:185
+#: lib/pp_admintools/dns_deploy_zones_app.py:268
 msgid "Keeping the temporary directory instead of removing it at the end (e.g. for debugging purposes)"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:213 lib/pp_admintools/pdns_app.py:348
-msgid "Checking config section {!r} ..."
-msgstr "Checking config section {!r} …"
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:265
-msgid "No masters given in [{}]/masters."
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:275
-msgid "Checking given master address {!r} ..."
-msgstr "Checking given master address {!r} …"
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:282
-msgid "Not using {!r} as a master IP address, because we are not using IPv6."
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:288
-msgid "Address {!r} are already in masters yet."
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:290
-msgid "Address {!r} are not in masters yet."
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:294
-msgid "Invalid hostname or address {a!r} found in [{s}]/masters: {e}"
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:302
-msgid "Using configured masters: {}"
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:306
-msgid "No valid masters found in configuration."
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:317
+#: lib/pp_admintools/dns_deploy_zones_app.py:294
 msgid "Post init phase."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:319
-msgid "Checking for masters, which are local addresses ..."
-msgstr "Checking for masters, which are local addresses …"
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:324
-msgid "Address {!r} is in list of local addresses."
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:327
-msgid "Address {!r} is not in list of local addresses."
+#: lib/pp_admintools/dns_deploy_zones_app.py:298
+msgid "My own post init phase."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:330
-msgid "Using masters for slave zones: {}"
+#: lib/pp_admintools/dns_deploy_zones_app.py:314
+msgid "Unknown time zone: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:349
+#: lib/pp_admintools/dns_deploy_zones_app.py:334
 msgid "You must be root to execute this script."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:360
-msgid "Using the global DNS master is not supported, please use 'local' or 'public'"
+#: lib/pp_admintools/dns_deploy_zones_app.py:336
+msgid "But in simulation mode we are continuing nevertheless."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:379
-msgid "Unknown time zone: {!r}."
+#: lib/pp_admintools/dns_deploy_zones_app.py:346
+msgid "Using the global DNS master is not supported, please use 'local' or 'public'"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:382
+#: lib/pp_admintools/dns_deploy_zones_app.py:354
 msgid "Starting: {}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:390
+#: lib/pp_admintools/dns_deploy_zones_app.py:361
 msgid "Could not occupy pidfile: {}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:415
+#: lib/pp_admintools/dns_deploy_zones_app.py:386
 msgid "Ending: {}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:421
+#: lib/pp_admintools/dns_deploy_zones_app.py:391
 msgid "Cleaning up ..."
 msgstr "Cleaning up …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:425
+#: lib/pp_admintools/dns_deploy_zones_app.py:395
 msgid "Searching for {!r}."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:428
+#: lib/pp_admintools/dns_deploy_zones_app.py:398
 msgid "Keep existing backup file {!r}."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:430
+#: lib/pp_admintools/dns_deploy_zones_app.py:400
 msgid "Removing {!r} ..."
 msgstr "Removing {!r} …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:436
+#: lib/pp_admintools/dns_deploy_zones_app.py:406
 msgid "Error removing {p!r} - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:441
+#: lib/pp_admintools/dns_deploy_zones_app.py:411
 msgid "Temporary directory {!r} will not be removed. It's on yours to remove it manually."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:446
+#: lib/pp_admintools/dns_deploy_zones_app.py:416
 msgid "Destroying temporary directory {!r} ..."
 msgstr "Destroying temporary directory {!r} …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:457
+#: lib/pp_admintools/dns_deploy_zones_app.py:425
 msgid "Temporary directory: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:463
+#: lib/pp_admintools/dns_deploy_zones_app.py:430
 msgid "Temporary zones conf: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:468
+#: lib/pp_admintools/dns_deploy_zones_app.py:435
 msgid "Trying to get all keys from named.conf ..."
 msgstr "Trying to get all keys from named.conf …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:480 lib/pp_admintools/deploy_zones_from_pdns.py:830
+#: lib/pp_admintools/dns_deploy_zones_app.py:447 lib/pp_admintools/dns_deploy_zones_app.py:801
 msgid "Result:"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:521 lib/pp_admintools/deploy_zones_from_pdns.py:523
+#: lib/pp_admintools/dns_deploy_zones_app.py:488 lib/pp_admintools/dns_deploy_zones_app.py:490
 msgid "Found named keys:"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:523 lib/pp_admintools/deploy_zones_from_pdns.py:554
+#: lib/pp_admintools/dns_deploy_zones_app.py:490 lib/pp_admintools/dns_deploy_zones_app.py:521
 msgid "None"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:528
+#: lib/pp_admintools/dns_deploy_zones_app.py:495
 msgid "Generating {} ..."
 msgstr "Generating {} …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:552 lib/pp_admintools/deploy_zones_from_pdns.py:554
+#: lib/pp_admintools/dns_deploy_zones_app.py:519 lib/pp_admintools/dns_deploy_zones_app.py:521
 msgid "Collected server configuration:"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:575
+#: lib/pp_admintools/dns_deploy_zones_app.py:542
 msgid "Generated file {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:591
+#: lib/pp_admintools/dns_deploy_zones_app.py:558
 msgid "Pure local zone {!r} will not be considered."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:624
+#: lib/pp_admintools/dns_deploy_zones_app.py:590
 msgid "Key {k!r} for zone {z!r} not found in named configuration."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:654
+#: lib/pp_admintools/dns_deploy_zones_app.py:620
 msgid "Got IPv4 tuples: {}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:678
+#: lib/pp_admintools/dns_deploy_zones_app.py:644
 msgid "Got IPv6 tokens: {}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:685
+#: lib/pp_admintools/dns_deploy_zones_app.py:651
 msgid "Comparing generated files with existing ones."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:692
+#: lib/pp_admintools/dns_deploy_zones_app.py:658
 msgid "Files to replace:"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:698
+#: lib/pp_admintools/dns_deploy_zones_app.py:664
 msgid "Source file not defined."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:700
+#: lib/pp_admintools/dns_deploy_zones_app.py:666
 msgid "Target file not defined."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:702
+#: lib/pp_admintools/dns_deploy_zones_app.py:668
 msgid "Comparing {one!r} with {two!r} ..."
 msgstr "Comparing {one!r} with {two!r} …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:706 lib/pp_admintools/deploy_zones_from_pdns.py:715
+#: lib/pp_admintools/dns_deploy_zones_app.py:672 lib/pp_admintools/dns_deploy_zones_app.py:681
 msgid "{what} {f!r} does not exists."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:707 lib/pp_admintools/deploy_zones_from_pdns.py:711
+#: lib/pp_admintools/dns_deploy_zones_app.py:673 lib/pp_admintools/dns_deploy_zones_app.py:677
 msgid "Source file"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:710 lib/pp_admintools/deploy_zones_from_pdns.py:720
+#: lib/pp_admintools/dns_deploy_zones_app.py:676 lib/pp_admintools/dns_deploy_zones_app.py:686
 msgid "{what} {f!r} is not a regular file."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:716 lib/pp_admintools/deploy_zones_from_pdns.py:721
+#: lib/pp_admintools/dns_deploy_zones_app.py:682 lib/pp_admintools/dns_deploy_zones_app.py:687
 msgid "Target file"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:738 lib/pp_admintools/deploy_zones_from_pdns.py:754
+#: lib/pp_admintools/dns_deploy_zones_app.py:703 lib/pp_admintools/dns_deploy_zones_app.py:720
 msgid "Cleaned version of {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:757
+#: lib/pp_admintools/dns_deploy_zones_app.py:725
 msgid ""
 "Source file {sf!r} has different number essential lines ({sl}) than the target file {tf!r} ({tl}"
 " lines)."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:766
+#: lib/pp_admintools/dns_deploy_zones_app.py:734
 msgid "Source file {sf!r} has a different content than the target file {tf!r}."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:778
+#: lib/pp_admintools/dns_deploy_zones_app.py:746
 msgid "No replacement of any config files necessary."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:781
+#: lib/pp_admintools/dns_deploy_zones_app.py:749
 msgid "Start replacing of config files ..."
 msgstr "Start replacing of config files …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:789 lib/pp_admintools/deploy_zones_from_pdns.py:798
+#: lib/pp_admintools/dns_deploy_zones_app.py:757 lib/pp_admintools/dns_deploy_zones_app.py:767
 msgid "Copying {frm!r} => {to!r} ..."
 msgstr "Copying {frm!r} => {to!r} …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:794
+#: lib/pp_admintools/dns_deploy_zones_app.py:763
 msgid "All backuped config files:"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:805
+#: lib/pp_admintools/dns_deploy_zones_app.py:775
 msgid "Restoring of original config files because of an exception."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:809
+#: lib/pp_admintools/dns_deploy_zones_app.py:779
 msgid "Moving {frm!r} => {to!r} ..."
 msgstr "Moving {frm!r} => {to!r} …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:814
+#: lib/pp_admintools/dns_deploy_zones_app.py:785
 msgid "Could not find backup file {!r}."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:819
+#: lib/pp_admintools/dns_deploy_zones_app.py:790
 msgid "Checking syntax correctness of named.conf ..."
 msgstr "Checking syntax correctness of named.conf …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:840
+#: lib/pp_admintools/dns_deploy_zones_app.py:811
 msgid "Reload or restart of named is not necessary."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:845
+#: lib/pp_admintools/dns_deploy_zones_app.py:816
 msgid "Named is not running, please start it manually."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:856
+#: lib/pp_admintools/dns_deploy_zones_app.py:827
 msgid "Checking, whether named is running ..."
 msgstr "Checking, whether named is running …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:874 lib/pp_admintools/deploy_zones_from_pdns.py:909
-#: lib/pp_admintools/deploy_zones_from_pdns.py:944 lib/pp_admintools/deploy_zones_from_pdns.py:979
+#: lib/pp_admintools/dns_deploy_zones_app.py:845 lib/pp_admintools/dns_deploy_zones_app.py:880
+#: lib/pp_admintools/dns_deploy_zones_app.py:915 lib/pp_admintools/dns_deploy_zones_app.py:950
 msgid "Return value: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:876 lib/pp_admintools/deploy_zones_from_pdns.py:878
-#: lib/pp_admintools/deploy_zones_from_pdns.py:911 lib/pp_admintools/deploy_zones_from_pdns.py:913
-#: lib/pp_admintools/deploy_zones_from_pdns.py:946 lib/pp_admintools/deploy_zones_from_pdns.py:948
-#: lib/pp_admintools/deploy_zones_from_pdns.py:981 lib/pp_admintools/deploy_zones_from_pdns.py:983
+#: lib/pp_admintools/dns_deploy_zones_app.py:847 lib/pp_admintools/dns_deploy_zones_app.py:849
+#: lib/pp_admintools/dns_deploy_zones_app.py:882 lib/pp_admintools/dns_deploy_zones_app.py:884
+#: lib/pp_admintools/dns_deploy_zones_app.py:917 lib/pp_admintools/dns_deploy_zones_app.py:919
+#: lib/pp_admintools/dns_deploy_zones_app.py:952 lib/pp_admintools/dns_deploy_zones_app.py:954
 msgid "Output on {}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:888
+#: lib/pp_admintools/dns_deploy_zones_app.py:859
 msgid "Starting {} ..."
 msgstr "Starting {} …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:923
+#: lib/pp_admintools/dns_deploy_zones_app.py:894
 msgid "Restarting {} ..."
 msgstr "Restarting {} …"
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:958
+#: lib/pp_admintools/dns_deploy_zones_app.py:929
 msgid "Reloading {} ..."
 msgstr "Reloading {} …"
 
+#: lib/pp_admintools/dns_deploy_zones_config.py:290
+msgid "Checking given master address {!r} ..."
+msgstr "Checking given master address {!r} …"
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:302
+#, fuzzy
+msgid "Trying to evaluate address of host {!r} ..."
+msgstr "Checking given master address {!r} …"
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:311
+msgid "Invalid hostname or address {a!r} found in masters: {e}"
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:319
+msgid "Got addresses {a!r} for host {h!r}."
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:333 lib/pp_admintools/dns_deploy_zones_config.py:356
+#: lib/pp_admintools/dns_deploy_zones_config.py:381 lib/pp_admintools/dns_deploy_zones_config.py:430
+#: lib/pp_admintools/dns_deploy_zones_config.py:479 lib/pp_admintools/dns_deploy_zones_config.py:541
+msgid "The path to {what} must be an absolute path, found {path!r}."
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:342 lib/pp_admintools/dns_deploy_zones_config.py:365
+#: lib/pp_admintools/dns_deploy_zones_config.py:390 lib/pp_admintools/dns_deploy_zones_config.py:415
+#: lib/pp_admintools/dns_deploy_zones_config.py:439 lib/pp_admintools/dns_deploy_zones_config.py:464
+#: lib/pp_admintools/dns_deploy_zones_config.py:488 lib/pp_admintools/dns_deploy_zones_config.py:550
+msgid "Found path to {what}: {path!r}."
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:377
+msgid "the named config directory"
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:402
+msgid "the named config file for zones"
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:406 lib/pp_admintools/dns_deploy_zones_config.py:455
+msgid "The path to {what} must not be an absolute path, found {path!r}."
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:427
+msgid "the named base directory"
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:451
+msgid "the directory for slave zones of named"
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:538
+msgid "the PID file"
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:590
+msgid "Using configured masters:"
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:592
+msgid "No valid masters found in configuration."
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:595
+msgid "Evaluated configuration:"
+msgstr ""
+
+#: lib/pp_admintools/mail_app.py:124
+msgid "Got invalid mail from address {!r}."
+msgstr ""
+
+#: lib/pp_admintools/mail_app.py:147
+msgid "Got invalid recipient mail addresses:"
+msgstr ""
+
+#: lib/pp_admintools/mail_app.py:175
+msgid "Got invalid cc mail addresses:"
+msgstr ""
+
+#: lib/pp_admintools/mail_app.py:220
+msgid "Sender mail address for mails generated by this script. Default: {!r}"
+msgstr ""
+
+#: lib/pp_admintools/mail_app.py:274
+msgid "Got command line arguments:"
+msgstr ""
+
+#: lib/pp_admintools/mail_config.py:199 lib/pp_admintools/mail_config.py:223
+#: lib/pp_admintools/mail_config.py:291
+msgid "Found invalid {what} {addr!r} in configuration."
+msgstr ""
+
+#: lib/pp_admintools/mail_config.py:224
+msgid "from address"
+msgstr ""
+
+#: lib/pp_admintools/mail_config.py:240 lib/pp_admintools/mail_config.py:244
+msgid "recipient mail address"
+msgstr ""
+
+#: lib/pp_admintools/mail_config.py:264 lib/pp_admintools/mail_config.py:268
+msgid "cc mail address"
+msgstr ""
+
+#: lib/pp_admintools/mail_config.py:292
+msgid "reply to address"
+msgstr ""
+
+#: lib/pp_admintools/mail_config.py:342
+msgid "Value {!r} for SMTP port is invalid:"
+msgstr ""
+
+#: lib/pp_admintools/mail_config.py:347
+msgid "Found invalid SMTP port number {} in configuration."
+msgstr ""
+
 #: lib/pp_admintools/mailaddress.py:54
 msgid "Empty address."
 msgstr ""
@@ -560,122 +650,196 @@ msgstr ""
 msgid "Invalid address."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:141
+#: lib/pp_admintools/pdns_app.py:99 lib/pp_admintools/pdns_app.py:183
+msgid "Configuration not available."
+msgstr ""
+
+#: lib/pp_admintools/pdns_app.py:113
 msgid "Invalid API key {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:153
+#: lib/pp_admintools/pdns_app.py:125
 msgid "Invalid API host {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:166
+#: lib/pp_admintools/pdns_app.py:138
 msgid "Invalid API port {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:178
+#: lib/pp_admintools/pdns_app.py:150
 msgid "Invalid API server name {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:196
-msgid "Invalid user agent {!r} given."
+#: lib/pp_admintools/pdns_app.py:168 lib/pp_admintools/pdns_app.py:171
+msgid "Invalid instance {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:209
-msgid "Invalid timeout {!r} given."
-msgstr ""
+#: lib/pp_admintools/pdns_app.py:179
+#, fuzzy
+msgid "Evaluating instance {!r} ..."
+msgstr "Deleting pidfile {!r} …"
 
-#: lib/pp_admintools/pdns_app.py:221 lib/pp_admintools/pdns_app.py:224
-msgid "Invalid environment {!r} given."
+#: lib/pp_admintools/pdns_app.py:187
+msgid "PDNS instance {!r} is not configured."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:269
+#: lib/pp_admintools/pdns_app.py:240
 msgid "PowerDNS API options"
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:279
-msgid "ENVIRONMENT"
+#: lib/pp_admintools/pdns_app.py:249
+msgid "INSTANCE"
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:280
-msgid "Select, which PowerDNS environment to use. Valid values: {v}, default: {d!r}."
+#: lib/pp_admintools/pdns_app.py:250
+msgid "Select, which PowerDNS instance to use. Valid values: {v}, default: {d!r}."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:289 lib/pp_admintools/pdns_app.py:295
-#: lib/pp_admintools/pdns_app.py:301
-msgid "Using the {!r} PowerDNS environment."
+#: lib/pp_admintools/pdns_app.py:258 lib/pp_admintools/pdns_app.py:264
+#: lib/pp_admintools/pdns_app.py:270
+msgid "Using the {!r} PowerDNS instance."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:307
+#: lib/pp_admintools/pdns_app.py:278
 msgid "Which port to connect to PowerDNS API, default: {}."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:313
+#: lib/pp_admintools/pdns_app.py:284
 msgid "SECS"
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:314
-msgid "The timeout in seconds to request the PowerDNS API, default: {}."
-msgstr ""
-
-#: lib/pp_admintools/pdns_app.py:367
-msgid "Wrong environment {!r} found in configuration."
+#: lib/pp_admintools/pdns_app.py:285
+msgid "PowerDNS API access"
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:384
-msgid "A port must be greater than 0 and less than {}."
-msgstr ""
-
-#: lib/pp_admintools/pdns_app.py:386
-msgid "Wrong port number {p!r} in configuration section {s!r}: {e}"
+#: lib/pp_admintools/pdns_app.py:286
+msgid "The timeout in seconds to request the PowerDNS API, default: {}."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:411
+#: lib/pp_admintools/pdns_app.py:309
 msgid "No path given for{d} [{s}]/{k} in configuration."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:418
+#: lib/pp_admintools/pdns_app.py:316
 msgid "Path {p!r} for{d} [{s}]/{k} in configuration must be an absolute path."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:441 lib/pp_admintools/pdns_app.py:462
-#: lib/pp_admintools/pdns_app.py:489
+#: lib/pp_admintools/pdns_app.py:339 lib/pp_admintools/pdns_app.py:375
+#: lib/pp_admintools/pdns_app.py:402
 msgid "Executing {} ..."
 msgstr "Executing {} …"
 
-#: lib/pp_admintools/pdns_app.py:464
+#: lib/pp_admintools/pdns_app.py:377
 msgid "Setting Loglevel of the requests module to {}."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:478
+#: lib/pp_admintools/pdns_app.py:391
 msgid "Executing nothing ..."
 msgstr "Executing nothing …"
 
-#: lib/pp_admintools/pdns_app.py:495 lib/pp_admintools/pdns_app.py:517
-#: lib/pp_admintools/pdns_app.py:528 lib/pp_admintools/pdns_app.py:538
+#: lib/pp_admintools/pdns_app.py:411 lib/pp_admintools/pdns_app.py:433
+#: lib/pp_admintools/pdns_app.py:444 lib/pp_admintools/pdns_app.py:454
 msgid "The PDNS server object does not exists."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:497 lib/pp_admintools/pdns_app.py:519
-#: lib/pp_admintools/pdns_app.py:530 lib/pp_admintools/pdns_app.py:540
+#: lib/pp_admintools/pdns_app.py:413 lib/pp_admintools/pdns_app.py:435
+#: lib/pp_admintools/pdns_app.py:446 lib/pp_admintools/pdns_app.py:456
 msgid "The PDNS server object is not initialized."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:548
+#: lib/pp_admintools/pdns_app.py:464
 msgid "Trying to get complete information about zone {!r} ..."
 msgstr "Trying to get complete information about zone {!r} …"
 
-#: lib/pp_admintools/pdns_app.py:554
+#: lib/pp_admintools/pdns_app.py:470
 msgid "The given zone {} was not found."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:557
+#: lib/pp_admintools/pdns_app.py:473
 msgid "Got a response:"
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:562
+#: lib/pp_admintools/pdns_app.py:478
 msgid "Zone object:"
 msgstr ""
 
+#: lib/pp_admintools/pdns_config.py:247
+msgid "A timeout has to be between 1 and {} seconds."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:251
+msgid "Value {!r} for PowerDNS API timeout is invalid:"
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:269
+msgid "Found invalid PDNS environment/instance {!r} in configuration."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:284
+msgid "Found PDNS host: {!r}."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:300 lib/pp_admintools/pdns_config.py:392
+msgid "A port must be greater than 0 and less than {}."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:303
+msgid "Wrong PDNS port number {p!r} found: {e}"
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:312
+msgid "Found port number for PDNS: {}."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:326
+msgid "Found API key for PDNS: {!r}."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:337
+msgid "Found PDNS API servername: {!r}."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:354
+msgid "Evaluating PowerDNS instance {!r}:"
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:366
+#, fuzzy
+msgid "Searching for host for PDNS instance {!r} .."
+msgstr "Searching for {!r} …"
+
+#: lib/pp_admintools/pdns_config.py:374
+msgid "Found host for PDNS instance {inst!r}: {host!r}."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:382
+msgid "Searching for post number for PDNS instance {!r} .."
+msgstr "Searching for post number for PDNS instance {!r} …"
+
+#: lib/pp_admintools/pdns_config.py:395
+msgid "Wrong port number {p!r} for PDNS instance {inst!r} found: {e}"
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:404
+msgid "Found port number for PDNS instance {inst!r}: {p}."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:412
+msgid "Searching for internal server name of PDNS instance {!r} .."
+msgstr "Searching for internal server name of PDNS instance {!r} …"
+
+#: lib/pp_admintools/pdns_config.py:422
+msgid "Found internal server name PDNS instance {inst!r}: {sn!r}."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:430
+msgid "Searching for API key of PDNS instance {!r} .."
+msgstr "Searching for API key of PDNS instance {!r} …"
+
+#: lib/pp_admintools/pdns_config.py:443
+msgid "Found API key of PDNS instance {inst!r}: {key!r}."
+msgstr ""
+
 #: lib/pp_admintools/pidfile.py:72
 msgid "Invalid pidfile {f!r} given: {r}"
 msgstr ""
index d54cb84ef00cd1bbcba50de08847f34eb1b5d6f0..39e16dc31aae8257e434884c0013a75ae3cef131 100644 (file)
@@ -1,24 +1,39 @@
 # Translations template for pp_admintools.
-# Copyright (C) 2021 Frank Brehm, Digitas Pixelpark Berlin
+# Copyright (C) 2022 Frank Brehm, Digitas Pixelpark Berlin
 # This file is distributed under the same license as the pp_admintools project.
-# Frank Brehm <frank.brehm@pixelpark.com>, 2021.
+# Frank Brehm <frank.brehm@pixelpark.com>, 2022.
 #
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: pp_admintools 0.8.0\n"
+"Project-Id-Version: pp_admintools 0.9.0\n"
 "Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2021-12-07 17:50+0100\n"
+"POT-Creation-Date: 2022-03-31 17:40+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <frank.brehm@pixelpark.com>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.8.0\n"
+"Generated-By: Babel 2.9.1\n"
 
-#: lib/pp_admintools/cfg_app.py:143 lib/pp_admintools/cfg_app.py:149 lib/pp_admintools/pdns_app.py:101
-#: lib/pp_admintools/pdns_app.py:107
+#: lib/pp_admintools/argparse_actions.py:45
+msgid "Value {v!r} for a {what} port is invalid:"
+msgstr ""
+
+#: lib/pp_admintools/argparse_actions.py:50
+msgid "Value {v!r} for a {what} port must be greater than 0 and less than {max}."
+msgstr ""
+
+#: lib/pp_admintools/argparse_actions.py:77
+msgid "Value {v!r} for a timeout of {what} is invalid:"
+msgstr ""
+
+#: lib/pp_admintools/argparse_actions.py:83
+msgid "Value {v!r} for a timeout of {what} must be greater than 0 and less than {max}."
+msgstr ""
+
+#: lib/pp_admintools/cfg_app.py:143 lib/pp_admintools/cfg_app.py:149
 msgid "Invalid configuration stem {!r} given."
 msgstr ""
 
@@ -26,49 +41,52 @@ msgstr ""
 msgid "{c} on setting encoding {v!r}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:244
+#: lib/pp_admintools/cfg_app.py:244 lib/pp_admintools/mail_app.py:204
 msgid "Mailing options"
 msgstr ""
 
 #: lib/pp_admintools/cfg_app.py:248 lib/pp_admintools/cfg_app.py:254 lib/pp_admintools/cfg_app.py:260
+#: lib/pp_admintools/mail_app.py:219 lib/pp_admintools/mail_app.py:227
+#: lib/pp_admintools/mail_app.py:233 lib/pp_admintools/mail_app.py:239
 msgid "ADDRESS"
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:249
+#: lib/pp_admintools/cfg_app.py:249 lib/pp_admintools/mail_app.py:228
 msgid "Mail addresses of all recipients for mails generated by this script."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:255
+#: lib/pp_admintools/cfg_app.py:255 lib/pp_admintools/mail_app.py:234
 msgid "Mail addresses of all CC recipients for mails generated by this script."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:261
+#: lib/pp_admintools/cfg_app.py:261 lib/pp_admintools/mail_app.py:240
 msgid "Reply mail address for mails generated by this script."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:266
+#: lib/pp_admintools/cfg_app.py:266 lib/pp_admintools/mail_app.py:246
 msgid "METHOD"
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:267
+#: lib/pp_admintools/cfg_app.py:267 lib/pp_admintools/mail_app.py:247
 msgid "Method for sending the mails generated by this script. Valid values: {v}, default: {d!r}."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:276
+#: lib/pp_admintools/cfg_app.py:276 lib/pp_admintools/mail_app.py:255
 msgid "SERVER"
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:277
+#: lib/pp_admintools/cfg_app.py:277 lib/pp_admintools/mail_app.py:256
 msgid ""
 "Mail server for submitting generated by this script if the mail method of this script is 'smtp'."
 " Default: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:285 lib/pp_admintools/pdns_app.py:306
+#: lib/pp_admintools/cfg_app.py:285 lib/pp_admintools/mail_app.py:263
+#: lib/pp_admintools/pdns_app.py:275
 msgid "PORT"
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:286
+#: lib/pp_admintools/cfg_app.py:286 lib/pp_admintools/mail_app.py:265
 msgid ""
 "The port to use for submitting generated by this script if the mail method of this script is "
 "'smtp'. Default: {}."
@@ -128,8 +146,8 @@ msgstr ""
 msgid "Config file {!r} not found."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:506 lib/pp_admintools/deploy_zones_from_pdns.py:727
-#: lib/pp_admintools/deploy_zones_from_pdns.py:743
+#: lib/pp_admintools/cfg_app.py:506 lib/pp_admintools/dns_deploy_zones_app.py:693
+#: lib/pp_admintools/dns_deploy_zones_app.py:710
 msgid "Reading {!r} ..."
 msgstr ""
 
@@ -158,7 +176,8 @@ msgid "There are no errors in configuration."
 msgstr ""
 
 #: lib/pp_admintools/cfg_app.py:568 lib/pp_admintools/cfg_app.py:591
-#: lib/pp_admintools/deploy_zones_from_pdns.py:238 lib/pp_admintools/pdns_app.py:362
+#: lib/pp_admintools/dns_deploy_zones_config.py:202 lib/pp_admintools/dns_deploy_zones_config.py:515
+#: lib/pp_admintools/mail_config.py:178 lib/pp_admintools/pdns_config.py:187
 msgid "Evaluating config section {!r}:"
 msgstr ""
 
@@ -178,7 +197,7 @@ msgstr ""
 msgid "Found invalid reply mail address {!r} in configuration."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:670
+#: lib/pp_admintools/cfg_app.py:670 lib/pp_admintools/mail_config.py:308
 msgid "Found invalid mail method {!r} in configuration."
 msgstr ""
 
@@ -186,7 +205,7 @@ msgstr ""
 msgid "Found invalid SMTP port number {!r} in configuration."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:722
+#: lib/pp_admintools/cfg_app.py:722 lib/pp_admintools/mail_app.py:106
 msgid "Got invalid SMTP port number {!r}."
 msgstr ""
 
@@ -198,22 +217,22 @@ msgstr ""
 msgid "Got invalid CC mail address {!r}."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:776
+#: lib/pp_admintools/cfg_app.py:776 lib/pp_admintools/mail_app.py:190
 msgid "Got invalid reply mail address {!r}."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:807
+#: lib/pp_admintools/cfg_app.py:807 lib/pp_admintools/mail_app.py:289
 msgid "Mail to send:"
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:840
+#: lib/pp_admintools/cfg_app.py:840 lib/pp_admintools/mail_app.py:322
 msgid "Did not found sendmail executable."
 msgstr ""
 
-#: lib/pp_admintools/cfg_app.py:846 lib/pp_admintools/deploy_zones_from_pdns.py:474
-#: lib/pp_admintools/deploy_zones_from_pdns.py:824 lib/pp_admintools/deploy_zones_from_pdns.py:860
-#: lib/pp_admintools/deploy_zones_from_pdns.py:892 lib/pp_admintools/deploy_zones_from_pdns.py:927
-#: lib/pp_admintools/deploy_zones_from_pdns.py:962
+#: lib/pp_admintools/cfg_app.py:846 lib/pp_admintools/dns_deploy_zones_app.py:441
+#: lib/pp_admintools/dns_deploy_zones_app.py:795 lib/pp_admintools/dns_deploy_zones_app.py:831
+#: lib/pp_admintools/dns_deploy_zones_app.py:863 lib/pp_admintools/dns_deploy_zones_app.py:898
+#: lib/pp_admintools/dns_deploy_zones_app.py:933 lib/pp_admintools/mail_app.py:328
 msgid "Executing: {}"
 msgstr ""
 
@@ -257,296 +276,366 @@ msgstr ""
 msgid "Zone {!r} seems to be a reverse zone for a public network."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:146
+#: lib/pp_admintools/dns_deploy_zones_app.py:121
 msgid "Generation of the BIND9 configuration file for slave zones."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:180
+#: lib/pp_admintools/dns_deploy_zones_app.py:263
 msgid "Keep a backup file for each changed configuration file."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:185
+#: lib/pp_admintools/dns_deploy_zones_app.py:268
 msgid "Keeping the temporary directory instead of removing it at the end (e.g. for debugging purposes)"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:213 lib/pp_admintools/pdns_app.py:348
-msgid "Checking config section {!r} ..."
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:265
-msgid "No masters given in [{}]/masters."
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:275
-msgid "Checking given master address {!r} ..."
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:282
-msgid "Not using {!r} as a master IP address, because we are not using IPv6."
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:288
-msgid "Address {!r} are already in masters yet."
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:290
-msgid "Address {!r} are not in masters yet."
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:294
-msgid "Invalid hostname or address {a!r} found in [{s}]/masters: {e}"
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:302
-msgid "Using configured masters: {}"
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:306
-msgid "No valid masters found in configuration."
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:317
+#: lib/pp_admintools/dns_deploy_zones_app.py:294
 msgid "Post init phase."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:319
-msgid "Checking for masters, which are local addresses ..."
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:324
-msgid "Address {!r} is in list of local addresses."
-msgstr ""
-
-#: lib/pp_admintools/deploy_zones_from_pdns.py:327
-msgid "Address {!r} is not in list of local addresses."
+#: lib/pp_admintools/dns_deploy_zones_app.py:298
+msgid "My own post init phase."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:330
-msgid "Using masters for slave zones: {}"
+#: lib/pp_admintools/dns_deploy_zones_app.py:314
+msgid "Unknown time zone: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:349
+#: lib/pp_admintools/dns_deploy_zones_app.py:334
 msgid "You must be root to execute this script."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:360
-msgid "Using the global DNS master is not supported, please use 'local' or 'public'"
+#: lib/pp_admintools/dns_deploy_zones_app.py:336
+msgid "But in simulation mode we are continuing nevertheless."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:379
-msgid "Unknown time zone: {!r}."
+#: lib/pp_admintools/dns_deploy_zones_app.py:346
+msgid "Using the global DNS master is not supported, please use 'local' or 'public'"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:382
+#: lib/pp_admintools/dns_deploy_zones_app.py:354
 msgid "Starting: {}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:390
+#: lib/pp_admintools/dns_deploy_zones_app.py:361
 msgid "Could not occupy pidfile: {}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:415
+#: lib/pp_admintools/dns_deploy_zones_app.py:386
 msgid "Ending: {}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:421
+#: lib/pp_admintools/dns_deploy_zones_app.py:391
 msgid "Cleaning up ..."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:425
+#: lib/pp_admintools/dns_deploy_zones_app.py:395
 msgid "Searching for {!r}."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:428
+#: lib/pp_admintools/dns_deploy_zones_app.py:398
 msgid "Keep existing backup file {!r}."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:430
+#: lib/pp_admintools/dns_deploy_zones_app.py:400
 msgid "Removing {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:436
+#: lib/pp_admintools/dns_deploy_zones_app.py:406
 msgid "Error removing {p!r} - {c}: {e}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:441
+#: lib/pp_admintools/dns_deploy_zones_app.py:411
 msgid "Temporary directory {!r} will not be removed. It's on yours to remove it manually."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:446
+#: lib/pp_admintools/dns_deploy_zones_app.py:416
 msgid "Destroying temporary directory {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:457
+#: lib/pp_admintools/dns_deploy_zones_app.py:425
 msgid "Temporary directory: {!r}."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:463
+#: lib/pp_admintools/dns_deploy_zones_app.py:430
 msgid "Temporary zones conf: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:468
+#: lib/pp_admintools/dns_deploy_zones_app.py:435
 msgid "Trying to get all keys from named.conf ..."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:480 lib/pp_admintools/deploy_zones_from_pdns.py:830
+#: lib/pp_admintools/dns_deploy_zones_app.py:447 lib/pp_admintools/dns_deploy_zones_app.py:801
 msgid "Result:"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:521 lib/pp_admintools/deploy_zones_from_pdns.py:523
+#: lib/pp_admintools/dns_deploy_zones_app.py:488 lib/pp_admintools/dns_deploy_zones_app.py:490
 msgid "Found named keys:"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:523 lib/pp_admintools/deploy_zones_from_pdns.py:554
+#: lib/pp_admintools/dns_deploy_zones_app.py:490 lib/pp_admintools/dns_deploy_zones_app.py:521
 msgid "None"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:528
+#: lib/pp_admintools/dns_deploy_zones_app.py:495
 msgid "Generating {} ..."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:552 lib/pp_admintools/deploy_zones_from_pdns.py:554
+#: lib/pp_admintools/dns_deploy_zones_app.py:519 lib/pp_admintools/dns_deploy_zones_app.py:521
 msgid "Collected server configuration:"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:575
+#: lib/pp_admintools/dns_deploy_zones_app.py:542
 msgid "Generated file {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:591
+#: lib/pp_admintools/dns_deploy_zones_app.py:558
 msgid "Pure local zone {!r} will not be considered."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:624
+#: lib/pp_admintools/dns_deploy_zones_app.py:590
 msgid "Key {k!r} for zone {z!r} not found in named configuration."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:654
+#: lib/pp_admintools/dns_deploy_zones_app.py:620
 msgid "Got IPv4 tuples: {}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:678
+#: lib/pp_admintools/dns_deploy_zones_app.py:644
 msgid "Got IPv6 tokens: {}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:685
+#: lib/pp_admintools/dns_deploy_zones_app.py:651
 msgid "Comparing generated files with existing ones."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:692
+#: lib/pp_admintools/dns_deploy_zones_app.py:658
 msgid "Files to replace:"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:698
+#: lib/pp_admintools/dns_deploy_zones_app.py:664
 msgid "Source file not defined."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:700
+#: lib/pp_admintools/dns_deploy_zones_app.py:666
 msgid "Target file not defined."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:702
+#: lib/pp_admintools/dns_deploy_zones_app.py:668
 msgid "Comparing {one!r} with {two!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:706 lib/pp_admintools/deploy_zones_from_pdns.py:715
+#: lib/pp_admintools/dns_deploy_zones_app.py:672 lib/pp_admintools/dns_deploy_zones_app.py:681
 msgid "{what} {f!r} does not exists."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:707 lib/pp_admintools/deploy_zones_from_pdns.py:711
+#: lib/pp_admintools/dns_deploy_zones_app.py:673 lib/pp_admintools/dns_deploy_zones_app.py:677
 msgid "Source file"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:710 lib/pp_admintools/deploy_zones_from_pdns.py:720
+#: lib/pp_admintools/dns_deploy_zones_app.py:676 lib/pp_admintools/dns_deploy_zones_app.py:686
 msgid "{what} {f!r} is not a regular file."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:716 lib/pp_admintools/deploy_zones_from_pdns.py:721
+#: lib/pp_admintools/dns_deploy_zones_app.py:682 lib/pp_admintools/dns_deploy_zones_app.py:687
 msgid "Target file"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:738 lib/pp_admintools/deploy_zones_from_pdns.py:754
+#: lib/pp_admintools/dns_deploy_zones_app.py:703 lib/pp_admintools/dns_deploy_zones_app.py:720
 msgid "Cleaned version of {!r}:"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:757
+#: lib/pp_admintools/dns_deploy_zones_app.py:725
 msgid ""
 "Source file {sf!r} has different number essential lines ({sl}) than the target file {tf!r} ({tl}"
 " lines)."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:766
+#: lib/pp_admintools/dns_deploy_zones_app.py:734
 msgid "Source file {sf!r} has a different content than the target file {tf!r}."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:778
+#: lib/pp_admintools/dns_deploy_zones_app.py:746
 msgid "No replacement of any config files necessary."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:781
+#: lib/pp_admintools/dns_deploy_zones_app.py:749
 msgid "Start replacing of config files ..."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:789 lib/pp_admintools/deploy_zones_from_pdns.py:798
+#: lib/pp_admintools/dns_deploy_zones_app.py:757 lib/pp_admintools/dns_deploy_zones_app.py:767
 msgid "Copying {frm!r} => {to!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:794
+#: lib/pp_admintools/dns_deploy_zones_app.py:763
 msgid "All backuped config files:"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:805
+#: lib/pp_admintools/dns_deploy_zones_app.py:775
 msgid "Restoring of original config files because of an exception."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:809
+#: lib/pp_admintools/dns_deploy_zones_app.py:779
 msgid "Moving {frm!r} => {to!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:814
+#: lib/pp_admintools/dns_deploy_zones_app.py:785
 msgid "Could not find backup file {!r}."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:819
+#: lib/pp_admintools/dns_deploy_zones_app.py:790
 msgid "Checking syntax correctness of named.conf ..."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:840
+#: lib/pp_admintools/dns_deploy_zones_app.py:811
 msgid "Reload or restart of named is not necessary."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:845
+#: lib/pp_admintools/dns_deploy_zones_app.py:816
 msgid "Named is not running, please start it manually."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:856
+#: lib/pp_admintools/dns_deploy_zones_app.py:827
 msgid "Checking, whether named is running ..."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:874 lib/pp_admintools/deploy_zones_from_pdns.py:909
-#: lib/pp_admintools/deploy_zones_from_pdns.py:944 lib/pp_admintools/deploy_zones_from_pdns.py:979
+#: lib/pp_admintools/dns_deploy_zones_app.py:845 lib/pp_admintools/dns_deploy_zones_app.py:880
+#: lib/pp_admintools/dns_deploy_zones_app.py:915 lib/pp_admintools/dns_deploy_zones_app.py:950
 msgid "Return value: {!r}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:876 lib/pp_admintools/deploy_zones_from_pdns.py:878
-#: lib/pp_admintools/deploy_zones_from_pdns.py:911 lib/pp_admintools/deploy_zones_from_pdns.py:913
-#: lib/pp_admintools/deploy_zones_from_pdns.py:946 lib/pp_admintools/deploy_zones_from_pdns.py:948
-#: lib/pp_admintools/deploy_zones_from_pdns.py:981 lib/pp_admintools/deploy_zones_from_pdns.py:983
+#: lib/pp_admintools/dns_deploy_zones_app.py:847 lib/pp_admintools/dns_deploy_zones_app.py:849
+#: lib/pp_admintools/dns_deploy_zones_app.py:882 lib/pp_admintools/dns_deploy_zones_app.py:884
+#: lib/pp_admintools/dns_deploy_zones_app.py:917 lib/pp_admintools/dns_deploy_zones_app.py:919
+#: lib/pp_admintools/dns_deploy_zones_app.py:952 lib/pp_admintools/dns_deploy_zones_app.py:954
 msgid "Output on {}"
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:888
+#: lib/pp_admintools/dns_deploy_zones_app.py:859
 msgid "Starting {} ..."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:923
+#: lib/pp_admintools/dns_deploy_zones_app.py:894
 msgid "Restarting {} ..."
 msgstr ""
 
-#: lib/pp_admintools/deploy_zones_from_pdns.py:958
+#: lib/pp_admintools/dns_deploy_zones_app.py:929
 msgid "Reloading {} ..."
 msgstr ""
 
+#: lib/pp_admintools/dns_deploy_zones_config.py:290
+msgid "Checking given master address {!r} ..."
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:302
+msgid "Trying to evaluate address of host {!r} ..."
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:311
+msgid "Invalid hostname or address {a!r} found in masters: {e}"
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:319
+msgid "Got addresses {a!r} for host {h!r}."
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:333 lib/pp_admintools/dns_deploy_zones_config.py:356
+#: lib/pp_admintools/dns_deploy_zones_config.py:381 lib/pp_admintools/dns_deploy_zones_config.py:430
+#: lib/pp_admintools/dns_deploy_zones_config.py:479 lib/pp_admintools/dns_deploy_zones_config.py:541
+msgid "The path to {what} must be an absolute path, found {path!r}."
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:342 lib/pp_admintools/dns_deploy_zones_config.py:365
+#: lib/pp_admintools/dns_deploy_zones_config.py:390 lib/pp_admintools/dns_deploy_zones_config.py:415
+#: lib/pp_admintools/dns_deploy_zones_config.py:439 lib/pp_admintools/dns_deploy_zones_config.py:464
+#: lib/pp_admintools/dns_deploy_zones_config.py:488 lib/pp_admintools/dns_deploy_zones_config.py:550
+msgid "Found path to {what}: {path!r}."
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:377
+msgid "the named config directory"
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:402
+msgid "the named config file for zones"
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:406 lib/pp_admintools/dns_deploy_zones_config.py:455
+msgid "The path to {what} must not be an absolute path, found {path!r}."
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:427
+msgid "the named base directory"
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:451
+msgid "the directory for slave zones of named"
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:538
+msgid "the PID file"
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:590
+msgid "Using configured masters:"
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:592
+msgid "No valid masters found in configuration."
+msgstr ""
+
+#: lib/pp_admintools/dns_deploy_zones_config.py:595
+msgid "Evaluated configuration:"
+msgstr ""
+
+#: lib/pp_admintools/mail_app.py:124
+msgid "Got invalid mail from address {!r}."
+msgstr ""
+
+#: lib/pp_admintools/mail_app.py:147
+msgid "Got invalid recipient mail addresses:"
+msgstr ""
+
+#: lib/pp_admintools/mail_app.py:175
+msgid "Got invalid cc mail addresses:"
+msgstr ""
+
+#: lib/pp_admintools/mail_app.py:220
+msgid "Sender mail address for mails generated by this script. Default: {!r}"
+msgstr ""
+
+#: lib/pp_admintools/mail_app.py:274
+msgid "Got command line arguments:"
+msgstr ""
+
+#: lib/pp_admintools/mail_config.py:199 lib/pp_admintools/mail_config.py:223
+#: lib/pp_admintools/mail_config.py:291
+msgid "Found invalid {what} {addr!r} in configuration."
+msgstr ""
+
+#: lib/pp_admintools/mail_config.py:224
+msgid "from address"
+msgstr ""
+
+#: lib/pp_admintools/mail_config.py:240 lib/pp_admintools/mail_config.py:244
+msgid "recipient mail address"
+msgstr ""
+
+#: lib/pp_admintools/mail_config.py:264 lib/pp_admintools/mail_config.py:268
+msgid "cc mail address"
+msgstr ""
+
+#: lib/pp_admintools/mail_config.py:292
+msgid "reply to address"
+msgstr ""
+
+#: lib/pp_admintools/mail_config.py:342
+msgid "Value {!r} for SMTP port is invalid:"
+msgstr ""
+
+#: lib/pp_admintools/mail_config.py:347
+msgid "Found invalid SMTP port number {} in configuration."
+msgstr ""
+
 #: lib/pp_admintools/mailaddress.py:54
 msgid "Empty address."
 msgstr ""
@@ -559,122 +648,194 @@ msgstr ""
 msgid "Invalid address."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:141
+#: lib/pp_admintools/pdns_app.py:99 lib/pp_admintools/pdns_app.py:183
+msgid "Configuration not available."
+msgstr ""
+
+#: lib/pp_admintools/pdns_app.py:113
 msgid "Invalid API key {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:153
+#: lib/pp_admintools/pdns_app.py:125
 msgid "Invalid API host {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:166
+#: lib/pp_admintools/pdns_app.py:138
 msgid "Invalid API port {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:178
+#: lib/pp_admintools/pdns_app.py:150
 msgid "Invalid API server name {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:196
-msgid "Invalid user agent {!r} given."
+#: lib/pp_admintools/pdns_app.py:168 lib/pp_admintools/pdns_app.py:171
+msgid "Invalid instance {!r} given."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:209
-msgid "Invalid timeout {!r} given."
+#: lib/pp_admintools/pdns_app.py:179
+msgid "Evaluating instance {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:221 lib/pp_admintools/pdns_app.py:224
-msgid "Invalid environment {!r} given."
+#: lib/pp_admintools/pdns_app.py:187
+msgid "PDNS instance {!r} is not configured."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:269
+#: lib/pp_admintools/pdns_app.py:240
 msgid "PowerDNS API options"
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:279
-msgid "ENVIRONMENT"
+#: lib/pp_admintools/pdns_app.py:249
+msgid "INSTANCE"
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:280
-msgid "Select, which PowerDNS environment to use. Valid values: {v}, default: {d!r}."
+#: lib/pp_admintools/pdns_app.py:250
+msgid "Select, which PowerDNS instance to use. Valid values: {v}, default: {d!r}."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:289 lib/pp_admintools/pdns_app.py:295
-#: lib/pp_admintools/pdns_app.py:301
-msgid "Using the {!r} PowerDNS environment."
+#: lib/pp_admintools/pdns_app.py:258 lib/pp_admintools/pdns_app.py:264
+#: lib/pp_admintools/pdns_app.py:270
+msgid "Using the {!r} PowerDNS instance."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:307
+#: lib/pp_admintools/pdns_app.py:278
 msgid "Which port to connect to PowerDNS API, default: {}."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:313
+#: lib/pp_admintools/pdns_app.py:284
 msgid "SECS"
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:314
-msgid "The timeout in seconds to request the PowerDNS API, default: {}."
-msgstr ""
-
-#: lib/pp_admintools/pdns_app.py:367
-msgid "Wrong environment {!r} found in configuration."
-msgstr ""
-
-#: lib/pp_admintools/pdns_app.py:384
-msgid "A port must be greater than 0 and less than {}."
+#: lib/pp_admintools/pdns_app.py:285
+msgid "PowerDNS API access"
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:386
-msgid "Wrong port number {p!r} in configuration section {s!r}: {e}"
+#: lib/pp_admintools/pdns_app.py:286
+msgid "The timeout in seconds to request the PowerDNS API, default: {}."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:411
+#: lib/pp_admintools/pdns_app.py:309
 msgid "No path given for{d} [{s}]/{k} in configuration."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:418
+#: lib/pp_admintools/pdns_app.py:316
 msgid "Path {p!r} for{d} [{s}]/{k} in configuration must be an absolute path."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:441 lib/pp_admintools/pdns_app.py:462
-#: lib/pp_admintools/pdns_app.py:489
+#: lib/pp_admintools/pdns_app.py:339 lib/pp_admintools/pdns_app.py:375
+#: lib/pp_admintools/pdns_app.py:402
 msgid "Executing {} ..."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:464
+#: lib/pp_admintools/pdns_app.py:377
 msgid "Setting Loglevel of the requests module to {}."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:478
+#: lib/pp_admintools/pdns_app.py:391
 msgid "Executing nothing ..."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:495 lib/pp_admintools/pdns_app.py:517
-#: lib/pp_admintools/pdns_app.py:528 lib/pp_admintools/pdns_app.py:538
+#: lib/pp_admintools/pdns_app.py:411 lib/pp_admintools/pdns_app.py:433
+#: lib/pp_admintools/pdns_app.py:444 lib/pp_admintools/pdns_app.py:454
 msgid "The PDNS server object does not exists."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:497 lib/pp_admintools/pdns_app.py:519
-#: lib/pp_admintools/pdns_app.py:530 lib/pp_admintools/pdns_app.py:540
+#: lib/pp_admintools/pdns_app.py:413 lib/pp_admintools/pdns_app.py:435
+#: lib/pp_admintools/pdns_app.py:446 lib/pp_admintools/pdns_app.py:456
 msgid "The PDNS server object is not initialized."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:548
+#: lib/pp_admintools/pdns_app.py:464
 msgid "Trying to get complete information about zone {!r} ..."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:554
+#: lib/pp_admintools/pdns_app.py:470
 msgid "The given zone {} was not found."
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:557
+#: lib/pp_admintools/pdns_app.py:473
 msgid "Got a response:"
 msgstr ""
 
-#: lib/pp_admintools/pdns_app.py:562
+#: lib/pp_admintools/pdns_app.py:478
 msgid "Zone object:"
 msgstr ""
 
+#: lib/pp_admintools/pdns_config.py:247
+msgid "A timeout has to be between 1 and {} seconds."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:251
+msgid "Value {!r} for PowerDNS API timeout is invalid:"
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:269
+msgid "Found invalid PDNS environment/instance {!r} in configuration."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:284
+msgid "Found PDNS host: {!r}."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:300 lib/pp_admintools/pdns_config.py:392
+msgid "A port must be greater than 0 and less than {}."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:303
+msgid "Wrong PDNS port number {p!r} found: {e}"
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:312
+msgid "Found port number for PDNS: {}."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:326
+msgid "Found API key for PDNS: {!r}."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:337
+msgid "Found PDNS API servername: {!r}."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:354
+msgid "Evaluating PowerDNS instance {!r}:"
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:366
+msgid "Searching for host for PDNS instance {!r} .."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:374
+msgid "Found host for PDNS instance {inst!r}: {host!r}."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:382
+msgid "Searching for post number for PDNS instance {!r} .."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:395
+msgid "Wrong port number {p!r} for PDNS instance {inst!r} found: {e}"
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:404
+msgid "Found port number for PDNS instance {inst!r}: {p}."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:412
+msgid "Searching for internal server name of PDNS instance {!r} .."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:422
+msgid "Found internal server name PDNS instance {inst!r}: {sn!r}."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:430
+msgid "Searching for API key of PDNS instance {!r} .."
+msgstr ""
+
+#: lib/pp_admintools/pdns_config.py:443
+msgid "Found API key of PDNS instance {inst!r}: {key!r}."
+msgstr ""
+
 #: lib/pp_admintools/pidfile.py:72
 msgid "Invalid pidfile {f!r} given: {r}"
 msgstr ""