, 2019
# Patrick Koetter , 2010
+# Sascha Klauder , 2019
+# Tobias Strobel, 2016
+# Tristan , 2016
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
-"PO-Revision-Date: 2015-09-09 09:33+0000\n"
-"Last-Translator: controlc.de\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
+"PO-Revision-Date: 2020-05-10 15:27+0000\n"
+"Last-Translator: Michael Cramer \n"
"Language-Team: German (http://www.transifex.com/tonio/modoboa/language/de/)\n"
-"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/api.py:142
+msgid "Here is your new Modoboa password: {}"
+msgstr "Hier ist Ihr neues Modoboa Passwort: {}"
+
+#: admin/app_settings.py:20 admin/handlers.py:261
#: admin/templates/admin/_global_statistics_widget.html:11
#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domains"
-#: admin/app_settings.py:25
+#: admin/app_settings.py:23
msgid "Enable MX checks"
-msgstr ""
+msgstr "Aktiviere MX Prüfungen"
-#: admin/app_settings.py:28
+#: admin/app_settings.py:26
msgid "Check that every domain has a valid MX record"
-msgstr ""
+msgstr "Überprüfe jede Domain auf einen gültigen MX Eintrag"
-#: admin/app_settings.py:33
+#: admin/app_settings.py:31
msgid "Valid MXs"
-msgstr ""
+msgstr "Gültige MX-Einträge"
-#: admin/app_settings.py:36
+#: admin/app_settings.py:34
msgid ""
-"A list of IP or network address every MX record should match. A warning will "
-"be sent if a record does not respect it."
-msgstr ""
+"A list of IP or network address every MX record should match. A warning will"
+" be sent if a record does not respect it."
+msgstr "Liste gültiger MX-Records. Eine Warnmeldung wird versandt, falls versucht wird, andere Einträge zu verwenden."
-#: admin/app_settings.py:44
+#: admin/app_settings.py:42
msgid "New domains must use authorized MX(s)"
-msgstr ""
+msgstr "gültige MX-Einträge für neue Domains erforderlich"
-#: admin/app_settings.py:47
+#: admin/app_settings.py:45
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
-msgstr ""
+msgstr "Verwendung gültiger MX-Einträge wird für neue Domains erzwungen."
-#: admin/app_settings.py:53
+#: admin/app_settings.py:51
+msgid "Enable SPF checks"
+msgstr "Aktiviere SPF-Prüfungen"
+
+#: admin/app_settings.py:54
+msgid "Check if every domain has a valid SPF record"
+msgstr "Überprüfe jede Domain auf einen gültigen SPF Eintrag"
+
+#: admin/app_settings.py:59
+msgid "Enable DKIM checks"
+msgstr "Aktiviere DKIM-Prüfungen"
+
+#: admin/app_settings.py:62
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr "Überprüfe jede Domain mit aktivierter DKIM Signierung auf einen gültigen DNS Eintrag"
+
+#: admin/app_settings.py:68
+msgid "Enable DMARC checks"
+msgstr "Aktiviere DMARC-Prüfungen"
+
+#: admin/app_settings.py:71
+msgid "Check if every domain has a valid DMARC record"
+msgstr "Überprüfe jede Domain auf einen gültigen DMARC Eintrag"
+
+#: admin/app_settings.py:76
+msgid "Enable autoconfig checks"
+msgstr "Aktiviere autoconfig-Prüfungen"
+
+#: admin/app_settings.py:79
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr "Überprüfe jede Domain auf einen gültigen autoconfiguration Eintrag"
+
+#: admin/app_settings.py:84
msgid "Enable DNSBL checks"
-msgstr ""
+msgstr "Aktiviere DNSBL-Prüfungen"
-#: admin/app_settings.py:56
+#: admin/app_settings.py:87
msgid "Check every domain against major DNSBL providers"
-msgstr ""
+msgstr "Prüfe jede Domain gegen die wichtigsten DNSBL-Anbieter"
-#: admin/app_settings.py:61
+#: admin/app_settings.py:92
+msgid "Custom DNS server"
+msgstr "Benutzerdefinierter DNS Server"
+
+#: admin/app_settings.py:95
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr "eigener DNS-Server umgeht die lokale Namensauflösung"
+
+#: admin/app_settings.py:100
msgid "DKIM keys storage directory"
-msgstr ""
+msgstr "Verzeichnis für DKIM-Keys"
-#: admin/app_settings.py:64
+#: admin/app_settings.py:103
msgid ""
"Absolute path of the directory where DKIM private keys will be stored. Make "
"sure this directory belongs to root user and is not readable by the outside "
"world."
-msgstr ""
+msgstr "Absoluter Pfad des Verzeichnisses zur Aufbewahrung von DKIM-Keys. Das Verzeichnis sollte nur dem root-User zugänglich sein."
-#: admin/app_settings.py:72
+#: admin/app_settings.py:111
msgid "Default DKIM key length"
-msgstr ""
+msgstr "voreingestellte DKIM Schlüssellänge"
-#: admin/app_settings.py:76
+#: admin/app_settings.py:115
msgid "Default length in bits for newly generated DKIM keys."
-msgstr ""
+msgstr "Voreingestellte Länge in Bits neu zu generierender DKIM-Keys."
-#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
+#: admin/app_settings.py:119 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Postfächer"
-#: admin/app_settings.py:83
+#: admin/app_settings.py:122
msgid "Handle mailboxes on filesystem"
msgstr "Postfächer im Dateisystem verwalten"
-#: admin/app_settings.py:86
+#: admin/app_settings.py:125
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
-msgstr ""
-"Postfächer auch in Dateisystem umbenennen oder entfernen wenn sie in Modoboa "
-"umbenannt oder entfernt werden"
+msgstr "Postfächer auch im Dateisystem umbenennen oder entfernen wenn sie in Modoboa umbenannt oder entfernt werden"
-#: admin/app_settings.py:92
+#: admin/app_settings.py:131
msgid "Mailboxes owner"
msgstr "Postfach-Besitzer"
-#: admin/app_settings.py:95
+#: admin/app_settings.py:134
msgid "The UNIX account who owns mailboxes on the filesystem"
-msgstr ""
-"UID des virtuellen Benutzers, der Besitzer der Domains, Mailboxen und "
-"Nachrichten im Dateisystem ist."
+msgstr "UID des virtuellen Benutzers, der Besitzer der Domains, Mailboxen und Nachrichten im Dateisystem ist."
-#: admin/app_settings.py:100
+#: admin/app_settings.py:139
msgid "Default domain quota"
msgstr "Standard-Domainquota"
-#: admin/app_settings.py:103
+#: admin/app_settings.py:142
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
-msgstr ""
-"Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. "
-"Der Wert 0 bedeutet „Kein Quota“"
+msgstr "Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. Der Wert 0 bedeutet „Keine Quota“"
-#: admin/app_settings.py:109 admin/models/domain.py:40
-#: admin/templates/admin/domain_detail.html:64
-#, fuzzy
-#| msgid "Default domain quota"
+#: admin/app_settings.py:148 admin/forms/domain.py:49
+#: admin/models/domain.py:33 admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
-msgstr "Standard-Domainquota"
+msgstr "Standard Postfach Kontingent"
-#: admin/app_settings.py:112
-#, fuzzy
-#| msgid ""
-#| "Default quota (in MB) applied to freshly created domains with no value "
-#| "specified. A value of 0 means no quota."
+#: admin/app_settings.py:151
msgid ""
-"Default mailbox quota (in MB) applied to freshly created domains with no "
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
"value specified. A value of 0 means no quota."
-msgstr ""
-"Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. "
-"Der Wert 0 bedeutet „Kein Quota“"
+msgstr "Standardquota (in MB) für neu erstelle Postfächer ohne explizite Wertangabe. Der Wert 0 bedeutet „Keine Quota“"
-#: admin/app_settings.py:118
+#: admin/app_settings.py:157
msgid "Automatic account removal"
msgstr "Automatische Konto-Entfernung"
-#: admin/app_settings.py:121
+#: admin/app_settings.py:160
msgid "When a mailbox is removed, also remove the associated account"
msgstr "Beim Löschen des Postfachs auch das Konto entfernen."
-#: admin/app_settings.py:125
+#: admin/app_settings.py:164
msgid "Automatic domain/mailbox creation"
msgstr "Automatische Domain- /Postfach-Erstellung"
-#: admin/app_settings.py:128
-msgid "Create a domain and a mailbox when an account is automatically created."
-msgstr ""
-"Erstelle eine Domain und ein Postfach, wenn ein Konto automatisch erstellt "
-"wurde."
+#: admin/app_settings.py:167
+msgid ""
+"Create a domain and a mailbox when an account is automatically created."
+msgstr "Erstelle eine Domain und ein Postfach, wenn ein Konto automatisch erstellt wurde."
-#: admin/app_settings.py:134
+#: admin/app_settings.py:173
msgid "Create an alias when a mailbox is renamed"
-msgstr ""
+msgstr "Erzeuge Alias, wenn Mailbox umbenannt wird."
-#: admin/app_settings.py:137
+#: admin/app_settings.py:176
msgid "Create an alias using the old address when a mailbox is renamed."
-msgstr ""
+msgstr "Erzeuge Alias mit der bisherigen Adresse, wenn ein Postfach umbenannt wurde."
-#: admin/app_settings.py:186 admin/app_settings.py:194
-#: admin/forms/account.py:331
+#: admin/app_settings.py:225 admin/app_settings.py:233
+#: admin/forms/account.py:335
msgid "Must be a positive integer"
msgstr "Muss eine positive Ganzzahl sein"
-#: admin/app_settings.py:204
-#, fuzzy
-#| msgid "Domain modified"
+#: admin/app_settings.py:243
msgid "Directory not found."
-msgstr "Domain verändert"
+msgstr "Verzeichnis nicht gefunden."
-#: admin/app_settings.py:210
+#: admin/app_settings.py:249
msgid "openssl not found, please make sure it is installed."
-msgstr ""
+msgstr "openssl nicht gefunden, bitte sicherstellen, dass es installiert ist"
-#: admin/app_settings.py:224
+#: admin/app_settings.py:263
msgid "Define at least one authorized network / address"
-msgstr ""
+msgstr "Mindestens ein authorisiertes Netzwerk/IP-Adresse muss definiert sein"
-#: admin/app_settings.py:234
+#: admin/app_settings.py:273
msgid "Administration"
msgstr "Verwaltung"
-#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/constants.py:28 admin/forms/alias.py:43
#: admin/templates/admin/_per_domain_statistics_widget.html:7
#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Domain"
-#: admin/constants.py:100
-#, fuzzy
-#| msgid "New domain"
+#: admin/constants.py:29
msgid "Relay domain"
-msgstr "Neue Domain"
+msgstr "Relay-Domain"
-#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
+#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:125
msgid "Username"
msgstr "Benutzername"
-#: admin/forms/account.py:40
+#: admin/forms/account.py:34
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
-msgstr ""
-"Der Benutzername. Muss eine gültige E-Mail-Adresse für 'Normale Benutzer' "
-"oder Administratoren mit einer Mailbox sein."
+msgstr "Der Benutzername. Muss eine gültige E-Mail-Adresse für 'Normale Benutzer' oder Administratoren mit einer Mailbox sein."
-#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
+#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Rolle"
-#: admin/forms/account.py:46
+#: admin/forms/account.py:40
msgid "Choose"
msgstr "Auswählen"
-#: admin/forms/account.py:47
+#: admin/forms/account.py:41
msgid "What level of permission this user will have"
msgstr "Rechte, die der Benutzer haben wird"
-#: admin/forms/account.py:50 admin/forms/domain.py:227
-#, fuzzy
-#| msgid "Invalid address"
+#: admin/forms/account.py:44 admin/forms/domain.py:245
msgid "Random password"
-msgstr "Ungültige Adresse"
+msgstr "Zufälliges Passwort"
-#: admin/forms/account.py:52
+#: admin/forms/account.py:46
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
-msgstr ""
+msgstr "Generiere ein zufälliges Password. Wenn du dieses Konto aktualisierst und diese Checkbox aktivierst, wird ein neues Passwort generiert"
-#: admin/forms/account.py:58
+#: admin/forms/account.py:52
msgid "Password"
msgstr "Passwort"
-#: admin/forms/account.py:63
+#: admin/forms/account.py:57
msgid "Confirmation"
msgstr "Bestätigung"
-#: admin/forms/account.py:66
+#: admin/forms/account.py:60
msgid "Enter the same password as above, for verification."
msgstr "Passwort bestätigen"
-#: admin/forms/account.py:78
+#: admin/forms/account.py:72
msgid "Enabled"
msgstr "Aktiviert"
-#: admin/forms/account.py:172
+#: admin/forms/account.py:167
msgid "Only super administrators are allowed for this mode"
msgstr "Nur Super-Administratoren dürfen diesen Modus benutzen."
-#: admin/forms/account.py:183 admin/forms/account.py:185
-#: admin/forms/domain.py:144 admin/forms/domain.py:273
-#: admin/forms/domain.py:276 admin/serializers.py:241
-#, fuzzy
-#| msgid "A mailbox is required"
+#: admin/forms/account.py:178 admin/forms/account.py:180
+#: admin/forms/domain.py:162 admin/forms/domain.py:291
+#: admin/forms/domain.py:294 admin/serializers.py:287
msgid "This field is required."
-msgstr "Ein Postfach ist erforderlich"
+msgstr "Dieses Feld ist erforderlich"
-#: admin/forms/account.py:191
+#: admin/forms/account.py:186
msgid "The two password fields didn't match."
msgstr "Die angegebenen Passwörter stimmen nicht überein"
-#: admin/forms/account.py:204
+#: admin/forms/account.py:199
msgid "You can't disable your own account"
msgstr "Sie können Ihr eigenes Konto nicht deaktivieren"
-#: admin/forms/account.py:225
+#: admin/forms/account.py:222
msgid "E-mail"
msgstr "E-Mail"
-#: admin/forms/account.py:227
+#: admin/forms/account.py:224
msgid "Create an alias using the old address"
-msgstr ""
+msgstr "Erzeuge Alias mit der bisherigen Adresse"
-#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/forms/account.py:229 admin/forms/domain.py:41
+#: admin/templates/admin/account_detail.html:45
#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Quota"
-#: admin/forms/account.py:234
+#: admin/forms/account.py:232
msgid ""
-"Quota in MB for this mailbox. Define a custom value or use domain's default "
-"one. Leave empty to define an unlimited value (not allowed for domain "
-"administrators)."
-msgstr ""
-"Quota in MB für dieses Postfach. Geben Sie einen individuellen Wert an oder "
-"nutzen Sie den Standardwert der Domain. Lassen Sie das Feld leer für "
-"unbegrenztes Quota (Domain-Administratoren ist dies nicht gestattet)."
+"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a"
+" custom value or use domain's default one. Leave empty to define an "
+"unlimited value (not allowed for domain administrators)."
+msgstr "Quota dieses Postfachs. Kann in KB, MB (Voreinstellung) oder GB angegeben werden. Eigenen Wert eingeben oder Voreinstellung der Domain verwenden lassen. Frei lassen, um Quota auf unlimitiert zu setzen (nur Super-Administratoren)."
-#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/forms/account.py:242 admin/forms/domain.py:31
#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias(e)"
#: admin/forms/account.py:245
-#, fuzzy
-#| msgid ""
-#| "Alias(es) of this mailbox. Indicate only one address per input, press "
-#| "ENTER to add a new input. Use the '*' character to create a 'catchall' "
-#| "alias (ex: *@domain.tld)."
msgid ""
"Alias(es) of this mailbox. Indicate only one address per input, press ENTER "
"to add a new input. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
-msgstr ""
-"Alias(e) für dieses Postfach. Geben Sie jeweils nur eine Adresse pro Eingabe "
-"an. Bestätigen Sie die Eingabe mit ENTER. Geben Sie '*' an, um einen "
-"'catchall'-Alias (Bsp: *@example.com) zu erstellen."
+msgstr "Alias(e) dieses Postfachs. Jeweils eine Adresse eingeben, ENTER drücken für eine weitere. Den Domainnamen (@domain.tld) eingeben, um einen Catchall zu erstellen. "
#: admin/forms/account.py:251
-#, fuzzy
-#| msgid "Invalid address"
msgid "Sender addresses"
-msgstr "Ungültige Adresse"
+msgstr "Absenderadressen "
#: admin/forms/account.py:254
-#, fuzzy
-#| msgid ""
-#| "Addresses this alias will point to. Indicate only one address per input, "
-#| "press ENTER to add a new input."
msgid ""
"Additional sender address(es) for this account. The user will be allowed to "
"send emails using this address, even if it does not exist locally. Indicate "
"one address per input. Press ENTER to add a new input."
-msgstr ""
-"Adressen, auf die der Alias verweist. Geben Sie jeweils nur eine Adresse ein "
-"und bestätigen Sie mit ENTER."
+msgstr "Zusätzliche Absenderadresse(n) für dieses Postfach. Der Benutzer darf diese Adresse(n) verwenden, selbst wenn diese nicht lokal vorhanden sind. Jeweils eine Adresse eingeben, ENTER drücken für weitere."
-#: admin/forms/account.py:309 admin/forms/alias.py:94
-#: admin/models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:88
+#: admin/models/mailbox.py:310
msgid "Domain does not exist"
msgstr "Domain existiert nicht"
-#: admin/forms/account.py:341
-#, fuzzy
-#| msgid "Domain does not exist"
+#: admin/forms/account.py:345
msgid "Local domain does not exist"
-msgstr "Domain existiert nicht"
+msgstr "Lokale Domain existiert nicht"
-#: admin/forms/account.py:345 admin/forms/account.py:353
-#: admin/forms/alias.py:97
+#: admin/forms/account.py:349 admin/forms/account.py:357
+#: admin/forms/alias.py:91
msgid "You don't have access to this domain"
msgstr "Der Zugriff auf diese Domain ist Ihnen nicht gestattet"
-#: admin/forms/account.py:452
+#: admin/forms/account.py:456
msgid "Domain(s)"
msgstr "Domain(s)"
-#: admin/forms/account.py:454
+#: admin/forms/account.py:458
msgid "Domain(s) that user administrates"
msgstr "Domain(s), die dieser Benutzer administriert"
-#: admin/forms/account.py:500 admin/forms/account.py:590
-#: admin/forms/domain.py:344 admin/forms/domain.py:414
+#: admin/forms/account.py:505 admin/forms/account.py:595
+#: admin/forms/domain.py:362 admin/forms/domain.py:433
msgid "General"
msgstr "Allgemein"
-#: admin/forms/account.py:504
+#: admin/forms/account.py:509
msgid "Profile"
-msgstr ""
+msgstr "Profil"
-#: admin/forms/account.py:508 admin/forms/account.py:596
+#: admin/forms/account.py:513 admin/forms/account.py:601
msgid "Mail"
msgstr "E-Mail"
-#: admin/forms/account.py:511
+#: admin/forms/account.py:516
msgid "Permissions"
msgstr "Berechtigungen"
-#: admin/forms/account.py:579
+#: admin/forms/account.py:584
msgid "Account updated"
msgstr "Konto aktualisiert"
-#: admin/forms/account.py:604
+#: admin/forms/account.py:609
msgid "New account"
msgstr "Neues Konto"
-#: admin/forms/account.py:614
+#: admin/forms/account.py:619
msgid "Account created"
msgstr "Konto erstellt"
-#: admin/forms/alias.py:26
-#, fuzzy
-#| msgid "Invalid address"
+#: admin/forms/alias.py:20
msgid "Random address"
-msgstr "Ungültige Adresse"
+msgstr "Zufällige Adresse"
-#: admin/forms/alias.py:29
+#: admin/forms/alias.py:23
msgid "Email address"
msgstr "E-Mail Adresse"
-#: admin/forms/alias.py:31
+#: admin/forms/alias.py:25
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
-msgstr ""
-"Die Alias-Adresse. Geben Sie nur den Domainnamen (@domain.tld) für eine "
-"'catch-all' Alias an."
+msgstr "Die Alias-Adresse. Geben Sie nur den Domainnamen (@domain.tld) ein, um einen Catchall-Alias anzulegen."
-#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Empfänger"
-#: admin/forms/alias.py:39
+#: admin/forms/alias.py:33
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
-msgstr ""
-"Adressen, auf die der Alias verweist. Geben Sie jeweils nur eine Adresse ein "
-"und bestätigen Sie mit ENTER."
+msgstr "Adressen, auf die der Alias verweist. Geben Sie jeweils nur eine Adresse ein und bestätigen Sie mit ENTER."
-#: admin/forms/alias.py:114 admin/forms/alias.py:116
-#, fuzzy
-#| msgid "A mailbox is required"
+#: admin/forms/alias.py:108 admin/forms/alias.py:110
msgid "This field is required"
-msgstr "Ein Postfach ist erforderlich"
+msgstr "Dieses Feld ist erforderlich"
-#: admin/forms/alias.py:120
+#: admin/forms/alias.py:114
msgid "No recipient defined"
msgstr "Keine Empfänger angegeben"
-#: admin/forms/domain.py:36
+#: admin/forms/domain.py:28
#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Typ"
-#: admin/forms/domain.py:42
+#: admin/forms/domain.py:34
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
-msgstr ""
-"Alias(e) für diese Domain. Geben Sie jeweils nur eine Adresse pro "
-"Eingabefeld an. Bestätigen Sie mit ENTER, um ein neues Eingabefeld zu "
-"erhalten."
+msgstr "Alias(e) für diese Domain. Geben Sie jeweils nur eine Adresse pro Eingabefeld an. Bestätigen Sie mit ENTER, um ein neues Eingabefeld zu erhalten."
-#: admin/forms/domain.py:47
+#: admin/forms/domain.py:39
msgid "Key selector"
-msgstr ""
+msgstr "DKIM Selector"
-#: admin/forms/domain.py:85 admin/handlers.py:171
+#: admin/forms/domain.py:44 admin/serializers.py:30
+msgid ""
+"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
+"A value of 0 means no quota."
+msgstr "Von Postfächern gemeinsam genutzte Quota/Speicherplatz. Kann in KB, MB (Voreinstellung) oder GB angegeben werden. 0 eingeben, um keine Quota zu verwenden."
+
+#: admin/forms/domain.py:52
+msgid ""
+"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
+"GB. A value of 0 means no quota."
+msgstr "Auf Postfächer angewendete Quota. Kann in KB, MB (Voreinstellung) oder GB angegeben werden. 0 eingeben, um keine Quota zu verwenden."
+
+#: admin/forms/domain.py:94 admin/handlers.py:161
msgid "domain alias"
msgstr "Domain-Alias"
-#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
+#: admin/forms/domain.py:97 admin/forms/domain.py:173
+#: admin/forms/domain.py:181
#, python-format
msgid "A %s with this name already exists"
msgstr "Ein %s mit diesem Namen existiert bereits"
-#: admin/forms/domain.py:96 admin/serializers.py:45
+#: admin/forms/domain.py:105 admin/serializers.py:64
msgid "No authorized MX record found for this domain"
-msgstr ""
+msgstr "Kein autorisierter MX-Eintrag für diese Domain gefunden."
-#: admin/forms/domain.py:108
+#: admin/forms/domain.py:117
msgid "DKIM keys storage directory not configured"
-msgstr ""
+msgstr "Verzeichnis für DKIM-Keys nicht konfiguriert."
-#: admin/forms/domain.py:129 admin/serializers.py:55
+#: admin/forms/domain.py:147 admin/serializers.py:82
msgid "Cannot be greater than domain quota"
-msgstr ""
+msgstr "Kann nicht größer als Domain Kontingent sein"
-#: admin/forms/domain.py:134
+#: admin/forms/domain.py:152
msgid "You can't define an unlimited quota."
-msgstr ""
+msgstr "Ein unlimitiertes Kontingent ist nicht möglich."
-#: admin/forms/domain.py:155 admin/forms/domain.py:160
+#: admin/forms/domain.py:173 admin/forms/domain.py:178
msgid "domain"
msgstr "Domain"
-#: admin/forms/domain.py:209
+#: admin/forms/domain.py:227
msgid "Create a domain administrator"
msgstr "Domain-Administrator erstellen"
-#: admin/forms/domain.py:212
+#: admin/forms/domain.py:230
msgid "Automatically create an administrator for this domain"
msgstr "Automatisch Administrator für diese Domain anlegen"
-#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/forms/domain.py:235 admin/templates/admin/domain_detail.html:125
#: admin/templates/admin/domain_headers.html:3
#: admin/templates/admin/identity_headers.html:2
#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Name"
-#: admin/forms/domain.py:220
+#: admin/forms/domain.py:238
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
-msgstr ""
-"Name des Administrators. Geben Sie nicht den Domainnamen mit an. Er wird "
-"automatisch angehängt."
+msgstr "Name des Administrators. Geben Sie nicht den Domainnamen mit an. Er wird automatisch angehängt."
-#: admin/forms/domain.py:230
-#, fuzzy
-#| msgid "Create a domain administrator"
+#: admin/forms/domain.py:248
msgid "Generate a random password for the administrator."
-msgstr "Domain-Administrator erstellen"
+msgstr "Zufällig generiertes Passwort für den Administrator verwenden."
-#: admin/forms/domain.py:236
+#: admin/forms/domain.py:254
msgid "With a mailbox"
-msgstr ""
+msgstr "Mit einem Postfach"
-#: admin/forms/domain.py:239
-#, fuzzy
-#| msgid "Create a domain administrator"
+#: admin/forms/domain.py:257
msgid "Create a mailbox for the administrator."
-msgstr "Domain-Administrator erstellen"
+msgstr "Erzeuge Postfach für den Administrator."
-#: admin/forms/domain.py:245
+#: admin/forms/domain.py:263
msgid "Create aliases"
msgstr "Aliase erstellen"
-#: admin/forms/domain.py:248
+#: admin/forms/domain.py:266
msgid "Automatically create standard aliases for this domain"
msgstr "Automatisch Standard-Aliase für Domain anlegen"
-#: admin/forms/domain.py:264
+#: admin/forms/domain.py:282
msgid "Invalid format"
msgstr "Ungültiges Format"
-#: admin/forms/domain.py:293
+#: admin/forms/domain.py:311
#, python-format
msgid "User '%s' already exists"
msgstr "Benutzer %s existiert bereits"
-#: admin/forms/domain.py:404
+#: admin/forms/domain.py:423
msgid "Domain modified"
msgstr "Domain verändert"
-#: admin/forms/domain.py:425
+#: admin/forms/domain.py:444
msgid "Options"
msgstr "Optionen"
-#: admin/forms/domain.py:433
+#: admin/forms/domain.py:452
msgid "New domain"
msgstr "Neue Domain"
-#: admin/forms/domain.py:446
+#: admin/forms/domain.py:465
msgid "Domain created"
msgstr "Domain erstellt."
-#: admin/forms/export.py:9
-msgid "File name"
-msgstr "Dateiname"
-
-#: admin/forms/export.py:15 admin/forms/import_.py:15
+#: admin/forms/export.py:9 admin/forms/import_.py:13
msgid "Separator"
msgstr "Separator"
-#: admin/forms/forward.py:14
+#: admin/forms/forward.py:12
msgid "Recipient(s)"
msgstr "Empfänger"
-#: admin/forms/forward.py:18
+#: admin/forms/forward.py:16
msgid "Indicate one or more recipients separated by a ','"
msgstr "Geben sie einen oder mehrere, durch ',' separierte Empfänger an"
-#: admin/forms/forward.py:21
+#: admin/forms/forward.py:19
msgid "Keep local copies"
msgstr "Lokale Kopien behalten"
-#: admin/forms/forward.py:24
+#: admin/forms/forward.py:22
msgid "Forward messages and store copies into your local mailbox"
msgstr "Nachricht weiterleiten und Kopie in Mailbox ablegen"
-#: admin/forms/import_.py:13
+#: admin/forms/import_.py:11
msgid "Select a file"
msgstr "Wählen Sie eine Datei"
-#: admin/forms/import_.py:21
+#: admin/forms/import_.py:19
msgid "Continue on error"
msgstr "Bei Fehler fortfahren"
-#: admin/forms/import_.py:22
+#: admin/forms/import_.py:20
msgid "Don't treat duplicated objects as error"
msgstr "Doppelte Objekte nicht als Fehler behandeln"
-#: admin/forms/import_.py:40
+#: admin/forms/import_.py:38
msgid "Crypt passwords"
msgstr "Passwörter verschlüsseln"
-#: admin/forms/import_.py:42
+#: admin/forms/import_.py:40
msgid "Check this option if passwords contained in your file are not crypted"
msgstr "Auswählen, wenn Kennwörter in Datei nicht verschlüsselt sind"
-#: admin/handlers.py:218
+#: admin/handlers.py:210
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Kann Konto nicht importieren (%s): Die Domain existiert nicht"
-#: admin/handlers.py:231 admin/models/mailbox.py:342
-#, fuzzy
-#| msgid "Mailbox %s already exists"
+#: admin/handlers.py:223 admin/models/mailbox.py:338
msgid "Mailbox {} already exists"
-msgstr "Postfach %s existiert bereits"
+msgstr "Postfach {} existiert bereits"
-#: admin/handlers.py:239
+#: admin/handlers.py:231
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Konto Import fehlgeschlagen (%s): ungültiger Quota-Wert"
-#: admin/handlers.py:279
+#: admin/handlers.py:271
#: admin/templates/admin/_global_statistics_widget.html:17
#: admin/templates/admin/_per_domain_statistics_widget.html:8
#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Identitäten"
-#: admin/handlers.py:295 admin/templates/admin/forward.html:2
+#: admin/handlers.py:287 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Weiterleiten"
-#: admin/lib.py:44
+#: admin/lib.py:38
msgid "A mailbox is required"
msgstr "Ein Postfach ist erforderlich"
-#: admin/lib.py:134
+#: admin/lib.py:128
msgid "You are not allowed to import domains"
msgstr "Sie verfügen nicht über ausreichend Rechte, um Domains zu importieren."
-#: admin/lib.py:145
+#: admin/lib.py:139
msgid "You are not allowed to import domain aliases."
-msgstr ""
-"Sie verfügen nicht über ausreichend Rechte, um Domain Aliase zu importieren."
+msgstr "Sie verfügen nicht über ausreichend Rechte, um Domain Aliase zu importieren."
-#: admin/lib.py:183 admin/tests/test_mx.py:122
+#: admin/lib.py:189 admin/tests/test_mx.py:127 admin/tests/test_mx.py:136
+#: admin/tests/test_mx.py:139
#, python-format
-msgid "No DNS records found for %s"
-msgstr ""
+msgid "No DNS record found for %s"
+msgstr "Kein DNS Eintrag für %s gefunden"
-#: admin/lib.py:185 admin/tests/test_mx.py:125
+#: admin/lib.py:192
#, python-format
-msgid "No MX record for %s"
-msgstr ""
+msgid "No %(type)s record for %(name)s"
+msgstr "Kein %(type)s Eintrag für %(name)s"
-#: admin/lib.py:187 admin/tests/test_mx.py:126
+#: admin/lib.py:196 admin/tests/test_mx.py:131
msgid "No working name servers found"
-msgstr ""
+msgstr "Keine funktionierenden Namensserver gefunden"
-#: admin/lib.py:190 admin/tests/test_mx.py:128
+#: admin/lib.py:199 admin/tests/test_mx.py:133
#, python-format
msgid "DNS resolution timeout, unable to query %s at the moment"
-msgstr ""
+msgstr "DNS Error bei der Auflösung, konnte %s nicht auflösen"
-#: admin/lib.py:201 admin/tests/test_mx.py:131
+#: admin/lib.py:227
+#, python-brace-format
+msgid "Invalid IP address format for {domain}; {addr}"
+msgstr "Fehlerhaftes IP-Adressformat für {domain}; {addr}"
+
+#: admin/management/commands/subcommands/_import.py:93
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
+msgstr "CSV Datei nicht in UTF-8 enkodiert, versuche das Encoding zu erraten"
+
+#: admin/management/commands/subcommands/_import.py:105
#, python-format
-msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
-msgstr ""
+msgid "Reading CSV file using %(encoding)s encoding"
+msgstr "Lese CSV Datei mit %(encoding)s Enkodierung"
-#: admin/lib.py:212 admin/tests/test_mx.py:134
+#: admin/management/commands/subcommands/_import.py:116
#, python-format
-msgid "Invalid IP address format for %(domain)s; %(addr)s"
-msgstr ""
+msgid "Unable to decode CSV file using %(encoding)s encoding"
+msgstr "Konnte CSV Datei nicht mit %(encoding)s Enkodierung dekodieren"
-#: admin/management/commands/subcommands/_mx.py:136
+#: admin/management/commands/subcommands/_mx.py:132
msgid "[modoboa] DNSBL issue(s) for domain {}"
-msgstr ""
+msgstr "[modoboa] DNSBL Problem(e) für Domain {}"
-#: admin/management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:152
msgid "Domain {} has no MX record"
-msgstr ""
+msgstr "Domain {} hat keinen MX-Eintrag"
-#: admin/management/commands/subcommands/_mx.py:167
+#: admin/management/commands/subcommands/_mx.py:163
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
-msgstr ""
+msgstr "MX-Eingrag für Domain {0} ist ungültig: {1}"
-#: admin/management/commands/subcommands/_mx.py:184
+#: admin/management/commands/subcommands/_mx.py:180
msgid "[modoboa] MX issue(s) for domain {}"
-msgstr ""
+msgstr "[modoboa] MX Problem(e) für Domain {}"
-#: admin/models/alias.py:35 admin/models/mailbox.py:97
+#: admin/models/alias.py:32 admin/models/mailbox.py:95
msgid "address"
msgstr "Adresse"
-#: admin/models/alias.py:37
+#: admin/models/alias.py:34
msgid "The alias address."
msgstr "Die Alias-Adresse"
-#: admin/models/alias.py:42 admin/models/domain.py:48
-#: admin/models/domain_alias.py:47
+#: admin/models/alias.py:39 admin/models/domain.py:37
+#: admin/models/domain_alias.py:42
msgid "enabled"
msgstr "aktiviert"
-#: admin/models/alias.py:43 admin/models/domain_alias.py:48
+#: admin/models/alias.py:40 admin/models/domain_alias.py:43
msgid "Check to activate this alias"
msgstr "Auswählen, um den Alias zu aktivieren"
-#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
+#: admin/models/alias.py:45 admin/templates/admin/alias_detail.html:32
msgid "Description"
-msgstr ""
+msgstr "Beschreibung"
-#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
+#: admin/models/alias.py:47 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
-msgstr ""
+msgstr "Läuft ab am"
-#: admin/models/alias.py:93
+#: admin/models/alias.py:87
msgid "alias"
msgstr "Alias"
-#: admin/models/alias.py:125
+#: admin/models/alias.py:119
msgid "Invalid address"
msgstr "Ungültige Adresse"
-#: admin/models/alias.py:146
+#: admin/models/alias.py:140
msgid "Local recipient {}@{} not found"
msgstr "Lokaler Empfänger {}@{} nicht gefunden"
-#: admin/models/alias.py:176
+#: admin/models/alias.py:170
#, python-format
msgid "Invalid line: %s"
msgstr "Ungültige Zeile: %s"
-#: admin/models/alias.py:182
+#: admin/models/alias.py:176
#, python-format
msgid "Domain '%s' does not exist"
msgstr "Domain '%s' existiert nicht"
-#: admin/models/domain.py:30 admin/models/domain_alias.py:39
+#: admin/models/domain.py:27 admin/models/domain_alias.py:34
msgid "name"
msgstr "Name"
-#: admin/models/domain.py:31
+#: admin/models/domain.py:28
msgid "The domain name"
msgstr "Name der Domain"
-#: admin/models/domain.py:35
-#, fuzzy
-#| msgid ""
-#| "Default quota (in MB) applied to freshly created domains with no value "
-#| "specified. A value of 0 means no quota."
-msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
-msgstr ""
-"Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. "
-"Der Wert 0 bedeutet „Kein Quota“"
-
-#: admin/models/domain.py:43
-#, fuzzy
-#| msgid ""
-#| "Default quota (in MB) applied to freshly created domains with no value "
-#| "specified. A value of 0 means no quota."
-msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
-msgstr ""
-"Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. "
-"Der Wert 0 bedeutet „Kein Quota“"
-
-#: admin/models/domain.py:49
+#: admin/models/domain.py:38
msgid "Check to activate this domain"
msgstr "Auswählen, um diese Domain zu aktivieren"
-#: admin/models/domain.py:54
+#: admin/models/domain.py:43
msgid "Enable DNS checks"
-msgstr ""
+msgstr "Aktiviere DNS Prüfungen"
-#: admin/models/domain.py:55
-#, fuzzy
-#| msgid "Check to activate this domain"
+#: admin/models/domain.py:44
msgid "Check to enable DNS checks for this domain"
-msgstr "Auswählen, um diese Domain zu aktivieren"
+msgstr "Das Anhaken dieser Box aktiviert die DNS-Überprüfungen für diese Domain"
-#: admin/models/domain.py:62
+#: admin/models/domain.py:51
msgid "Enable DKIM signing"
-msgstr ""
+msgstr "Aktiviere DKIM Signierung"
-#: admin/models/domain.py:64
+#: admin/models/domain.py:53
msgid ""
"If you activate this feature, a DKIM key will be generated for this domain."
-msgstr ""
+msgstr "Wenn Sie dieses Feature aktivieren wird die DKIM Keygenerierung für diese Domain aktiviert."
-#: admin/models/domain.py:70
+#: admin/models/domain.py:59
msgid "Key length"
-msgstr ""
+msgstr "Schlüssel-Länge"
-#: admin/models/domain.py:285 admin/models/domain_alias.py:74
+#: admin/models/domain.py:312 admin/models/domain_alias.py:67
msgid "Invalid line"
msgstr "Ungültige Zeile"
-#: admin/models/domain.py:295
+#: admin/models/domain.py:322
msgid "No authorized MX record found for domain {}"
-msgstr ""
+msgstr "Kein autorisierter MX Eintrag für die Domain {} gefunden"
-#: admin/models/domain.py:302
-#, fuzzy
-#| msgid "Invalid quota value for domain '%s'"
+#: admin/models/domain.py:329
msgid "Invalid quota value for domain '{}'"
-msgstr "Ungültiger Quota-Wert für Domain '%s'"
+msgstr "Fehlerhafter Kontingentwert für die Domain '{}'"
-#: admin/models/domain.py:309
-#, fuzzy
-#| msgid "Invalid quota value for domain '%s'"
+#: admin/models/domain.py:336
msgid "Invalid default mailbox quota value for domain '{}'"
-msgstr "Ungültiger Quota-Wert für Domain '%s'"
+msgstr "Fehlerhafter Standardwert für das Mailboxkontingent der Domain '{}'"
-#: admin/models/domain.py:314
+#: admin/models/domain.py:341
msgid "Default mailbox quota cannot be greater than domain quota"
-msgstr ""
+msgstr "Der Standardkontingentwert einer Mailbox kann nicht größer als der Standardkontingentwert der domain sein"
-#: admin/models/domain_alias.py:40
+#: admin/models/domain_alias.py:35
msgid "The alias name"
msgstr "Der Alias-Name"
-#: admin/models/domain_alias.py:42
+#: admin/models/domain_alias.py:37
msgid "target"
msgstr "Ziel"
-#: admin/models/domain_alias.py:43
+#: admin/models/domain_alias.py:38
msgid "The domain this alias points to"
msgstr "Domain, auf die dieser Alias verweist"
-#: admin/models/domain_alias.py:83
+#: admin/models/domain_alias.py:76
#, python-format
msgid "Unknown domain %s"
msgstr "Unbekannte Domain %s"
-#: admin/models/mailbox.py:99
+#: admin/models/mailbox.py:97
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Postfach-Adresse (ohne den '@domain.tld' Teil)"
-#: admin/models/mailbox.py:165
+#: admin/models/mailbox.py:160
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Der Speicherort des Postfachs (%s) konnte nicht bestimmt werden"
-#: admin/models/mailbox.py:258
+#: admin/models/mailbox.py:253
msgid "A quota is required"
msgstr "Ein Quota ist erforderlich"
-#: admin/models/mailbox.py:264
-#, fuzzy
-#| msgid "Domain created"
+#: admin/models/mailbox.py:259
msgid "Domain quota exceeded"
-msgstr "Domain erstellt."
+msgstr "Domain Kontingent überschritten"
-#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
-#, fuzzy
-#| msgid "Permissions"
+#: admin/serializers.py:37
+msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgstr "Standardkontingent in MB welches die Mailboxen erhalten. Der Wert 0 bedeutet unlimitiertes Kontingent."
+
+#: admin/serializers.py:107 admin/serializers.py:312 admin/serializers.py:410
msgid "Permission denied."
-msgstr "Berechtigungen"
+msgstr "Zugriff verweigert."
-#: admin/serializers.py:118
+#: admin/serializers.py:158
msgid ""
"List of administered domains (resellers and domain administrators only)."
-msgstr ""
+msgstr "Liste der verwalteten Domains (nur für Reseller und Domain Administratoren)."
-#: admin/serializers.py:218
+#: admin/serializers.py:262
msgid "Not allowed for this role."
-msgstr ""
+msgstr "Nicht erlaubt für diese Rolle."
-#: admin/serializers.py:228
+#: admin/serializers.py:274
msgid "Must be equal to mailbox full_address"
-msgstr ""
+msgstr "Muss mit mailbox full_address übereinstimmen"
-#: admin/serializers.py:253
-#, fuzzy
-#| msgid "Domain does not exist"
+#: admin/serializers.py:299
msgid "Local domain {} does not exist"
-msgstr "Domain existiert nicht"
+msgstr "Lokale Domain {} existiert nicht."
-#: admin/serializers.py:347
+#: admin/serializers.py:397
msgid "A list of recipient"
-msgstr ""
+msgstr "Eine Liste der Empfänger"
-#: admin/serializers.py:358
-#, fuzzy
-#| msgid "Domain modified"
+#: admin/serializers.py:408
msgid "Domain not found."
-msgstr "Domain verändert"
+msgstr "Domain nicht gefunden."
-#: admin/serializers.py:407
-#, fuzzy
-#| msgid "You don't have access to this domain"
+#: admin/serializers.py:457
msgid "You don't have access to this domain."
-msgstr "Der Zugriff auf diese Domain ist Ihnen nicht gestattet"
+msgstr "Sie haben keinen Zugriff auf diese Domain."
-#: admin/serializers.py:415
-#, fuzzy
-#| msgid "You don't have access to this domain"
+#: admin/serializers.py:465
msgid "You don't have access to this mailbox."
-msgstr "Der Zugriff auf diese Domain ist Ihnen nicht gestattet"
+msgstr "Sie haben keinen Zugriff auf diese Mailbox."
#: admin/templates/admin/_domain_dkim_key.html:6
#: admin/templates/admin/_domain_dkim_key.html:20
msgid "Close"
-msgstr ""
+msgstr "Schließen"
#: admin/templates/admin/_domain_dkim_key.html:7
#, python-format
msgid "DKIM public key for %(domain)s"
-msgstr ""
+msgstr "Öffentlicher DKIM Schlüssel für %(domain)s"
#: admin/templates/admin/_domain_dkim_key.html:11
-#, fuzzy
-#| msgid "Invalid format"
msgid "Raw format"
-msgstr "Ungültiges Format"
+msgstr "Rohformat"
#: admin/templates/admin/_domain_dkim_key.html:15
-#, fuzzy
-#| msgid "Invalid format"
msgid "Bind/named format"
-msgstr "Ungültiges Format"
+msgstr "Gebundenes Format"
#: admin/templates/admin/_domain_dnschecks_status.html:4
-#, fuzzy
-#| msgid "disabled"
msgctxt "checks"
msgid "Disabled"
-msgstr "deaktiviert"
+msgstr "Deaktiviert"
#: admin/templates/admin/_domain_dnschecks_status.html:6
msgid "Awaiting checks"
-msgstr ""
+msgstr "Erwarte Prüfungen"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+msgid "No record found"
+msgstr "Kein Eintrag gefunden"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
+msgstr "Warten auf Schlüsselerzeugung"
#: admin/templates/admin/_global_statistics_widget.html:4
-#, fuzzy
-#| msgid "Statistics"
msgid "Global statistics"
-msgstr "Statistiken"
+msgstr "Globale Statistiken"
#: admin/templates/admin/_global_statistics_widget.html:8
msgid "Quantity"
@@ -934,89 +910,71 @@ msgid "Domain aliases"
msgstr "Domain-Aliase"
#: admin/templates/admin/_per_domain_statistics_widget.html:4
-#, fuzzy
-#| msgid "Per-domain counters"
msgid "Per-domain statistics"
-msgstr "pro Domain"
+msgstr "Pro-Domain Statistiken"
#: admin/templates/admin/account_detail.html:16
#: admin/templates/admin/alias_detail.html:16
#: admin/templates/admin/domain_detail.html:19
#: admin/templates/admin/identities_table.html:7
-#, fuzzy
-#| msgid "disabled"
msgid "(disabled)"
-msgstr "deaktiviert"
+msgstr "(deaktiviert)"
#: admin/templates/admin/account_detail.html:22
#: admin/templates/admin/alias_detail.html:22
#: admin/templates/admin/domain_detail.html:25
msgid "Summary"
-msgstr ""
+msgstr "Zusammenfassung"
#: admin/templates/admin/account_detail.html:26
-#, fuzzy
-#| msgid "File name"
msgid "Full name"
-msgstr "Dateiname"
+msgstr "Vollständiger Name"
#: admin/templates/admin/account_detail.html:32
#: admin/templates/admin/alias_detail.html:26
-#, fuzzy
-#| msgid "Create"
msgid "Created"
-msgstr "Erstellen"
+msgstr "Erstellt"
#: admin/templates/admin/account_detail.html:35
msgid "Last login"
-msgstr ""
+msgstr "Letzte Anmeldung"
#: admin/templates/admin/account_detail.html:38
msgid "Secondary email"
-msgstr ""
+msgstr "Zweite E-Mail Adresse"
#: admin/templates/admin/account_detail.html:38
#: admin/templates/admin/account_detail.html:41
-#, fuzzy
-#| msgid "No recipient defined"
msgid "Not defined"
-msgstr "Keine Empfänger angegeben"
+msgstr "Nicht definiert"
#: admin/templates/admin/account_detail.html:41
msgid "Phone number"
-msgstr ""
+msgstr "Telefonnummer"
#: admin/templates/admin/account_detail.html:55
-#, fuzzy
-#| msgid "Administration"
msgid "Administered domains"
-msgstr "Verwaltung"
+msgstr "Administrierte Domains"
#: admin/templates/admin/account_detail.html:61
-#, fuzzy
-#| msgid "No recipient defined"
msgid "No domain defined."
-msgstr "Keine Empfänger angegeben"
+msgstr "Keine Domain angegeben."
#: admin/templates/admin/account_detail.html:75
-#, fuzzy
-#| msgid "Alias(es)"
msgid "Aliases"
-msgstr "Alias(e)"
+msgstr "Aliase"
#: admin/templates/admin/account_detail.html:81
-#, fuzzy
-#| msgid "No recipient defined"
msgid "No alias defined"
-msgstr "Keine Empfänger angegeben"
+msgstr "Kein Alias definiert"
#: admin/templates/admin/account_detail.html:87
msgid "Additional sender addresses"
-msgstr ""
+msgstr "Zusätzliche Absenderadressen"
#: admin/templates/admin/account_detail.html:93
msgid "No sender address defined"
-msgstr ""
+msgstr "Keine Absenderadresse definiert"
#: admin/templates/admin/account_general_form.html:12
#: admin/templates/admin/aliasform.html:13
@@ -1025,20 +983,16 @@ msgstr "Domain ist deaktiviert"
#: admin/templates/admin/alias_detail.html:16
#: admin/templates/admin/identities.html:33
-#, fuzzy
-#| msgid "alias"
msgid "Alias"
msgstr "Alias"
#: admin/templates/admin/alias_detail.html:27
-#, fuzzy
-#| msgid "Alias modified"
msgid "Modified"
-msgstr "Alias verändert"
+msgstr "Verändert"
#: admin/templates/admin/dnsbl_domain_detail.html:10
msgid "Provider"
-msgstr ""
+msgstr "Anbieter"
#: admin/templates/admin/dnsbl_domain_detail.html:11
#: admin/templates/admin/identities_quota_headers.html:2
@@ -1047,23 +1001,22 @@ msgid "Address"
msgstr "Adresse"
#: admin/templates/admin/dnsbl_domain_detail.html:12
-#: admin/templates/admin/domain_detail.html:96
-#, fuzzy
-#| msgid "Statistics"
+#: admin/templates/admin/domain_detail.html:100
+#: admin/templates/admin/messages_log_headers.html:6
msgid "Status"
-msgstr "Statistiken"
+msgstr "Status"
#: admin/templates/admin/dnsbl_domain_detail.html:21
msgid "listed"
-msgstr ""
+msgstr "aufgelistet"
#: admin/templates/admin/dnsbl_domain_detail.html:29
msgid "Everything is fine, this domain is not listed."
-msgstr ""
+msgstr "Alles in Ordnung, diese Domain ist nicht gelistet."
#: admin/templates/admin/dnsbl_domain_detail.html:32
msgid "No information available for this domain."
-msgstr ""
+msgstr "Keine Informationen verfügbar für diese Domain."
#: admin/templates/admin/domain_detail.html:29
msgid "Creation date"
@@ -1081,64 +1034,59 @@ msgstr "Postfach-Aliase"
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domain_detail.html:65
-#: admin/templates/admin/domain_general_form.html:4
-#: admin/templates/admin/domain_general_form.html:5
#: admin/templates/admin/domains_quotas.html:11
#: admin/templates/admin/domains_quotas.html:12
-#: admin/templates/admin/mailform.html:7
#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
#: admin/templates/admin/domain_detail.html:54
-#, fuzzy
-#| msgid "Usage (%%)"
msgid "Usage"
-msgstr "Verwendung (%%)"
+msgstr "Verwendung"
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domains_quotas.html:11
msgctxt "quota"
msgid "used"
-msgstr ""
+msgstr "benutzt"
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domains_quotas.html:12
msgid "allocated"
-msgstr ""
+msgstr "allokiert"
-#: admin/templates/admin/domain_detail.html:91
+#: admin/templates/admin/domain_detail.html:92
msgid "DNS"
-msgstr ""
-
-#: admin/templates/admin/domain_detail.html:103
-msgid "DKIM key"
-msgstr ""
+msgstr "DNS"
#: admin/templates/admin/domain_detail.html:107
+msgid "DKIM key"
+msgstr "DKIM Schlüssel"
+
+#: admin/templates/admin/domain_detail.html:111
msgid "Show key"
-msgstr ""
+msgstr "Zeige Schlüssel"
-#: admin/templates/admin/domain_detail.html:110
-#, fuzzy
-#| msgid "No recipient defined"
+#: admin/templates/admin/domain_detail.html:113
+msgid "Generate new key"
+msgstr "Neuen Schlüssel generieren"
+
+#: admin/templates/admin/domain_detail.html:115
msgid "Not generated"
-msgstr "Keine Empfänger angegeben"
+msgstr "Nicht generiert"
-#: admin/templates/admin/domain_detail.html:117
+#: admin/templates/admin/domain_detail.html:122
msgid "Administrators"
msgstr "Administratoren"
-#: admin/templates/admin/domain_detail.html:129
-#: admin/templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:134
+#: admin/templatetags/admin_tags.py:265
msgid "Remove this permission"
msgstr "Diese Berechtigung entfernen"
-#: admin/templates/admin/domain_detail.html:134
-#, fuzzy
-#| msgid "No domain administrator defined"
+#: admin/templates/admin/domain_detail.html:139
msgid "No domain administrator defined yet."
-msgstr "Kein Domain-Administrator definiert"
+msgstr "Es wurde noch kein Domain Administrator definiert."
#: admin/templates/admin/domain_headers.html:5
#: admin/templates/admin/identity_headers.html:4
@@ -1146,10 +1094,8 @@ msgid "Tags"
msgstr "Tags"
#: admin/templates/admin/domain_headers.html:7
-#, fuzzy
-#| msgid "Statistics"
msgid "DNS status"
-msgstr "Statistiken"
+msgstr "DNS Status"
#: admin/templates/admin/domain_headers.html:9
#: admin/templates/admin/identity_headers.html:5
@@ -1162,10 +1108,8 @@ msgstr "Sie können keinen neuen Domain-Administrator erstellen"
#: admin/templates/admin/domains.html:28
#: admin/templates/admin/identities.html:29
-#, fuzzy
-#| msgid "Address"
msgid "Add"
-msgstr "Adresse"
+msgstr "Hinzufügen"
#: admin/templates/admin/domains_quota_headers.html:3
#: admin/templates/admin/identities_quota_headers.html:4
@@ -1174,13 +1118,11 @@ msgstr "Limit"
#: admin/templates/admin/domains_quota_headers.html:4
msgid "Used"
-msgstr ""
+msgstr "Benutzt"
#: admin/templates/admin/domains_quota_headers.html:5
-#, fuzzy
-#| msgid "Alias created"
msgid "Allocated"
-msgstr "Alias erstellt"
+msgstr "Allokiert"
#: admin/templates/admin/domains_quota_headers.html:6
#: admin/templates/admin/identities_quota_headers.html:5
@@ -1196,15 +1138,13 @@ msgstr "deaktiviert"
msgid "Automatically forward emails to another address"
msgstr "Nachrichten automatisch an andere Adresse weiterleiten"
-#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:87
msgid "Update"
msgstr "Aktualisieren"
#: admin/templates/admin/identities.html:32
-#, fuzzy
-#| msgid "Add account"
msgid "Account"
-msgstr "Konto hinzufügen"
+msgstr "Konto"
#: admin/templates/admin/identities_quota_headers.html:3
msgid "Value"
@@ -1215,17 +1155,6 @@ msgid "Fullname/Recipient"
msgstr "Name/Empfänger"
#: admin/templates/admin/import_domains_form.html:6
-#, fuzzy
-#| msgid ""
-#| "Provide a CSV file where lines respect one of the following formats:\n"
-#| "\n"
-#| " - domain; name; quota; enabled
\n"
-#| " - domainalias; name; targeted domain; enabled
\n"
-#| " %s\n"
-#| "
\n"
-#| "The first element of each line is mandatory and must be equal to one "
-#| "of the previous values.
\n"
-#| "You can use a different character as separator.
\n"
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
"- domain; name; quota; default mailbox quota; enabled
"
@@ -1235,51 +1164,16 @@ msgid ""
"mandatory and must be equal to one of the previous values. You can "
"use a different character as separator.
"
msgstr ""
-"Verwenden sie eine CSV-Datei mit einem der folgenden Formate:\n"
-"\n"
-" - domain; name; quota; enabled
\n"
-" - domainalias; name; targeted domain; enabled
\n"
-" %s\n"
-"
\n"
-"Das erste Element jeder Zeile ist zwingend und muss gleich zum "
-"vorhergehenden sein.
\n"
-"Ein anderes Zeichen als Trenner ist gestattet.
\n"
#: admin/templates/admin/import_identities_form.html:6
-#, fuzzy
-#| msgid ""
-#| "Provide a CSV file where lines respect one of the following formats:\n"
-#| "\n"
-#| "- account; loginname; password; first name; last name; enabled; "
-#| "group; address; quota; [, domain, ...]
\n"
-#| "- alias; address; enabled; internal recipient
\n"
-#| "- forward; address; enabled; external recipient
\n"
-#| "- dlist; address; enabled; recipient; recipient; ...
\n"
-#| "
\n"
-#| "The first element of each line is mandatory and must be equal to one "
-#| "of the previous values.
\n"
-#| "\n"
-#| "You can use a different character as separator.
\n"
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
-"- account; loginname; password; first name; last name; enabled; group; "
-"address; quota; [, domain, ...]
- alias; address; enabled; "
+"
- account; loginname; password; first name; last name; enabled; group;"
+" address; quota; [, domain, ...]
- alias; address; enabled; "
"recipient; recipient; ...
The first element of each line "
-"is mandatory and must be equal to one of the previous values.
You can "
-"use a different character as separator.
"
+"is mandatory and must be equal to one of the previous values. You can"
+" use a different character as separator.
"
msgstr ""
-"Verwenden sie eine CSV-Datei in einem der folgenden Formate:\n"
-"\n"
-"- account; loginname; password; first name; last name; enabled; group; "
-"address; quota; [, domain, ...]
\n"
-"- alias; address; enabled; internal recipient
\n"
-"- forward; address; enabled; external recipient
\n"
-"- dlist; address; enabled; recipient; recipient; ...
\n"
-"
\n"
-"Das erste Element einer Zeile ist zwingend und muss gleich mit einem der "
-"vorhergehenden sein.
\n"
-"\n"
-"Ein anderes Zeichen als Separator ist gestattet.
\n"
#: admin/templates/admin/importform.html:6
msgid "Help"
@@ -1291,7 +1185,7 @@ msgstr "Importiere…"
#: admin/templates/admin/index.html:6
msgid "Admin"
-msgstr ""
+msgstr "Admin"
#: admin/templates/admin/mailboxes_raw.html:3
msgid "Choose a value"
@@ -1301,241 +1195,193 @@ msgstr "Wert auswählen"
msgid "Use domain default value"
msgstr "Standardwert der Domain verwenden"
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr "ID"
+
+#: admin/templates/admin/messages_log_headers.html:3
+msgid "Date"
+msgstr "Datum"
+
+#: admin/templates/admin/messages_log_headers.html:4
+msgid "From"
+msgstr "Von"
+
+#: admin/templates/admin/messages_log_headers.html:5
+msgid "To"
+msgstr "Bis"
+
#: admin/templates/admin/mx_domain_detail.html:11
-#, fuzzy
-#| msgid "Update"
msgid "Updated"
msgstr "Aktualisieren"
#: admin/templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
-msgstr ""
+msgstr "Die IP-Adressen passen zu keinem der in den Parametern definierten MX-Einträge"
#: admin/templates/admin/mx_domain_detail.html:36
msgid "No MX record found for this domain."
-msgstr ""
+msgstr "Kein MX Eintrag für diese Domain gefunden."
#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
#, python-format
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
"providers:"
-msgstr ""
+msgstr "Modoboa hat festgestellt , dass die Domain %(domain)s bei den folgenden DNSBL-Anbieter aufgelistet ist:"
#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
"The domain's reputation will be affected and there is a chance that emails "
"coming from it are considered as spam. You should contact those providers "
"and ask them to unlist detected IP address(es)."
-msgstr ""
+msgstr "Die Reputation der Domain wird betroffen sein. Es kann sein, dass von ihr kommende E-Mails als Spam betrachtet werden. Sie sollten diese Anbieter kontaktieren und darum bitten, ihre erfasste(n) IP-Adresse(n) zu entfernen."
#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
-msgstr ""
+msgstr "Modoboa hat erkannt, dass für die Domain %(domain)s kein valider MX Eintrag vorliegt:"
#: admin/templates/admin/searchform.html:6
msgid "Search"
msgstr "Suchen"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_m"
msgstr "aktiviert_m"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_f"
msgstr "aktiviert_f"
-#: admin/templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:45
msgid "List domains"
msgstr "Domain-Liste"
-#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:50 admin/templatetags/admin_tags.py:105
msgid "List quotas"
msgstr "Quota-Liste"
-#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
-#: admin/views/import_.py:89 admin/views/import_.py:111
+#: admin/templatetags/admin_tags.py:62 admin/templatetags/admin_tags.py:110
+#: admin/views/import_.py:85 admin/views/import_.py:107
msgid "Import"
msgstr "Import"
-#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
-#: admin/views/export.py:43 admin/views/export.py:71
+#: admin/templatetags/admin_tags.py:68 admin/templatetags/admin_tags.py:116
+#: admin/views/export.py:39 admin/views/export.py:67
msgid "Export"
msgstr "Export"
-#: admin/templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:100
msgid "List identities"
msgstr "Identitäten-Liste"
-#: admin/templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:135
msgid "View the domain's identities"
msgstr "Domain-Identitäten anzeigen"
-#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
-#: admin/templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:141 admin/templatetags/admin_tags.py:184
+#: admin/templatetags/admin_tags.py:197
msgid "Edit {}"
-msgstr ""
+msgstr "{} bearbeiten"
-#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
-#: admin/templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:151 admin/templatetags/admin_tags.py:188
+#: admin/templatetags/admin_tags.py:202
#, python-format
msgid "Delete %s?"
msgstr "%s löschen?"
-#: admin/views/alias.py:35
+#: admin/tests/test_mx.py:130
+#, python-format
+msgid "No MX record for %s"
+msgstr "Kein MX Eintrag für %s"
+
+#: admin/tests/test_mx.py:142 admin/tests/test_mx.py:145
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr "Ferhlerhaftes IP-Adressformat für %(domain)s; %(addr)s"
+
+#: admin/views/alias.py:29
msgid "Alias with this name already exists"
msgstr "Ein Alias mit diesem Namen existiert bereits"
-#: admin/views/alias.py:60
+#: admin/views/alias.py:54
msgid "Create"
msgstr "Erstellen"
-#: admin/views/alias.py:72
+#: admin/views/alias.py:66
msgid "New alias"
msgstr "Neuer Alias"
-#: admin/views/alias.py:73
+#: admin/views/alias.py:67
msgid "Alias created"
msgstr "Alias erstellt"
-#: admin/views/alias.py:85
+#: admin/views/alias.py:79
msgid "Alias modified"
msgstr "Alias verändert"
-#: admin/views/alias.py:109
-#, fuzzy
-#| msgid "Alias created"
+#: admin/views/alias.py:103
msgid "Alias deleted"
msgid_plural "Aliases deleted"
-msgstr[0] "Alias erstellt"
-msgstr[1] "Alias erstellt"
+msgstr[0] "Alias gelöscht"
+msgstr[1] "Aliase gelöscht"
-#: admin/views/dns.py:32
+#: admin/views/dns.py:28
msgid "MX records of {}"
-msgstr ""
+msgstr "MX Einträge für {}"
-#: admin/views/dns.py:55
+#: admin/views/dns.py:51
msgid "DNSBL summary for {}"
-msgstr ""
+msgstr "DNSBL Zusammenfassung für {}"
-#: admin/views/domain.py:188
+#: admin/views/domain.py:202
msgid "You can't delete your own domain"
msgstr "Sie können Ihre eigene Domain nicht löschen"
-#: admin/views/domain.py:191
+#: admin/views/domain.py:205
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Domain gelöscht"
msgstr[1] "Domains gelöscht"
-#: admin/views/export.py:42
+#: admin/views/export.py:38
msgid "Export identities"
msgstr "Identitäten exportieren"
-#: admin/views/export.py:70
+#: admin/views/export.py:66
msgid "Export domains"
msgstr "Domains exportieren"
-#: admin/views/identity.py:113 admin/views/identity.py:206
-#: admin/views/identity.py:211
+#: admin/views/identity.py:107 admin/views/identity.py:201
+#: admin/views/identity.py:206
msgid "Invalid request"
msgstr "Ungültige Anfrage"
-#: admin/views/identity.py:196
+#: admin/views/identity.py:191
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Konto gelöscht"
msgstr[1] "Konten gelöscht"
-#: admin/views/import_.py:65
+#: admin/views/import_.py:61
#, python-format
msgid "Object already exists: %s"
msgstr "Objekt existiert bereits: %s"
-#: admin/views/import_.py:69
+#: admin/views/import_.py:65
#, python-format
msgid "%d objects imported successfully"
msgstr "%d Objekte erfolgreich importiert"
-#: admin/views/import_.py:88
+#: admin/views/import_.py:84
msgid "Import domains"
msgstr "Domains importieren"
-#: admin/views/import_.py:110
+#: admin/views/import_.py:106
msgid "Import identities"
msgstr "Identitäten importieren"
-#: admin/views/user.py:40
+#: admin/views/user.py:36
msgid "Forward updated"
msgstr "Weiterleitung aktualisiert"
-
-#~ msgid ""
-#~ "Default quota in MB applied to mailboxes. Leave empty to use the default "
-#~ "value."
-#~ msgstr ""
-#~ "Standardquota in MB für Mailboxen. Bei leerem Feld wird der Domain-"
-#~ "Standard genutzt."
-
-#~ msgid ""
-#~ "You can't define a forward to a local destination. Please ask your "
-#~ "administrator to create an alias instead."
-#~ msgstr ""
-#~ "Sie können keine Weiterleitung auf ein lokales Ziel anlegen. Bitten Sie "
-#~ "Ihren Administrator stattdessen einen Alias anzulegen."
-
-#~ msgid "Quota is greater than the allowed domain's limit (%dM)"
-#~ msgstr "Das Quota ist größer als das maximale Quota der Domain (%dM)"
-
-#~ msgid "Domains and identities"
-#~ msgstr "Domains und Identitäten"
-
-#~ msgid "Global counters"
-#~ msgstr "Zentrale Zähler"
-
-#~ msgid "distribution list"
-#~ msgstr "Verteilerliste"
-
-#~ msgid "forward"
-#~ msgstr "Weiterleitung"
-
-#, fuzzy
-#~| msgid "Confirmation"
-#~ msgid "Information"
-#~ msgstr "Bestätigung"
-
-#~ msgid "Add domain"
-#~ msgstr "Domain hinzufügen"
-
-#~ msgid "Add alias"
-#~ msgstr "Alias hinzufügen"
-
-#~ msgid "Add forward"
-#~ msgstr "Weiterleitung hinzufügen"
-
-#~ msgid "Add distribution list"
-#~ msgstr "Verteilerliste hinzufügen"
-
-#~ msgid "New distribution list"
-#~ msgstr "Neue Verteilerliste"
-
-#~ msgid "Distribution list created"
-#~ msgstr "Verteilerliste erstellt"
-
-#~ msgid "New forward"
-#~ msgstr "Neue Weiterleitung"
-
-#~ msgid "Forward created"
-#~ msgstr "Weiterleitung erstellt"
-
-#~ msgid "Distribution list modified"
-#~ msgstr "Verteilerliste verändert"
-
-#~ msgid "Forward modified"
-#~ msgstr "Weiterleitung verändert"
-
-#~ msgid "Miscellaneous"
-#~ msgstr "Verschiedenes"
-
-#~ msgid "Domain administrator"
-#~ msgstr "Domain Administrator"
diff --git a/modoboa/admin/locale/de/LC_MESSAGES/djangojs.po b/modoboa/admin/locale/de/LC_MESSAGES/djangojs.po
index 67ae21c31..6899a2c37 100644
--- a/modoboa/admin/locale/de/LC_MESSAGES/djangojs.po
+++ b/modoboa/admin/locale/de/LC_MESSAGES/djangojs.po
@@ -9,30 +9,29 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-04 22:08+0100\n"
-"PO-Revision-Date: 2014-12-01 12:12+0000\n"
-"Last-Translator: Arvedui \n"
-"Language-Team: German (http://www.transifex.com/projects/p/modoboa/language/"
-"de/)\n"
+"POT-Creation-Date: 2020-03-09 16:48+0100\n"
+"PO-Revision-Date: 2017-09-22 09:50+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: German (http://www.transifex.com/tonio/modoboa/language/de/)\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/static/admin/js/admin.js:131
+#: admin/static/admin/js/admin.js:129 admin/static/admin/js/admin.js:174
msgid "No more domain to show"
msgstr "Keine weiteren Domains"
-#: admin/static/admin/js/admin.js:150
+#: admin/static/admin/js/admin.js:149
msgid "Do not delete domain directory"
msgstr "Verzeichnis der Domain nicht löschen"
-#: admin/static/admin/js/admin.js:152
+#: admin/static/admin/js/admin.js:151
msgid "This operation will remove ALL data associated to this domain."
msgstr "Diese Aktion wird ALLE mit der Domain verbundenen Daten löschen."
-#: admin/static/admin/js/admin.js:153
+#: admin/static/admin/js/admin.js:152
msgid ""
"This operation will remove all data associated to this domain, excepting "
"accounts."
@@ -40,18 +39,18 @@ msgstr ""
"Diese Aktion wird ALLE mit der Domain verbundenen Daten, außer Mailkonten, "
"löschen."
-#: admin/static/admin/js/admin.js:236
+#: admin/static/admin/js/admin.js:177 admin/static/admin/js/admin.js:433
+msgid "No more quota to show"
+msgstr "Keine weiteren Quotas"
+
+#: admin/static/admin/js/admin.js:306
msgid "No domain administrator defined"
msgstr "Domain-Administrator fehlt"
-#: admin/static/admin/js/admin.js:291 admin/static/admin/js/admin.js:359
+#: admin/static/admin/js/admin.js:362 admin/static/admin/js/admin.js:430
msgid "No more identity to show"
msgstr "Keine weiteren Identitäten"
-#: admin/static/admin/js/admin.js:333
+#: admin/static/admin/js/admin.js:404
msgid "Do not delete mailbox directory"
msgstr "Verzeichnis der Mailbox nicht löschen"
-
-#: admin/static/admin/js/admin.js:362
-msgid "No more quota to show"
-msgstr "Keine weiteren Quotas"
diff --git a/modoboa/admin/locale/el_GR/LC_MESSAGES/django.po b/modoboa/admin/locale/el_GR/LC_MESSAGES/django.po
index 55d10dcad..f8c3d3489 100644
--- a/modoboa/admin/locale/el_GR/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/el_GR/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
"PO-Revision-Date: 2017-10-12 08:13+0000\n"
"Last-Translator: Kostas Moumouris \n"
"Language-Team: Greek (Greece) (http://www.transifex.com/tonio/modoboa/"
@@ -20,25 +20,29 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/api.py:142
+msgid "Here is your new Modoboa password: {}"
+msgstr ""
+
+#: admin/app_settings.py:20 admin/handlers.py:261
#: admin/templates/admin/_global_statistics_widget.html:11
#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domains"
-#: admin/app_settings.py:25
+#: admin/app_settings.py:23
msgid "Enable MX checks"
msgstr "Ενεργοποίηση ελέγχου MX"
-#: admin/app_settings.py:28
+#: admin/app_settings.py:26
msgid "Check that every domain has a valid MX record"
msgstr "Έλεγχος ότι κάθε domain έχει μια έγκυρη εγράφη MX"
-#: admin/app_settings.py:33
+#: admin/app_settings.py:31
msgid "Valid MXs"
msgstr "Έγκυρα MXς"
-#: admin/app_settings.py:36
+#: admin/app_settings.py:34
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
@@ -46,11 +50,11 @@ msgstr ""
"Μια λίστα από IP ή δικτυακές διευθύνσεις που κάθε εγράφη MX πρέπει να "
"ταιριάζει. "
-#: admin/app_settings.py:44
+#: admin/app_settings.py:42
msgid "New domains must use authorized MX(s)"
msgstr "Τα νέα domain πρέπει να χρησιμοποιούν εξουσιοδοτημένους MX(s)"
-#: admin/app_settings.py:47
+#: admin/app_settings.py:45
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
@@ -58,42 +62,98 @@ msgstr ""
"Αποτροπή δημιουργίας νέου domain, εάν η εγράφη MX χρησιμοποιεί μια από τις "
"είδη ορισμένες διευθύνσεις."
-#: admin/app_settings.py:53
+#: admin/app_settings.py:51
+#, fuzzy
+#| msgid "Enable DNS checks"
+msgid "Enable SPF checks"
+msgstr "Ενεργοποίση ελέγχου DNS"
+
+#: admin/app_settings.py:54
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid SPF record"
+msgstr "Έλεγχος ότι κάθε domain έχει μια έγκυρη εγράφη MX"
+
+#: admin/app_settings.py:59
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DKIM checks"
+msgstr "Ενεργοποίηση ελέγχου MX"
+
+#: admin/app_settings.py:62
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr "Έλεγχος ότι κάθε domain έχει μια έγκυρη εγράφη MX"
+
+#: admin/app_settings.py:68
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DMARC checks"
+msgstr "Ενεργοποίηση ελέγχου MX"
+
+#: admin/app_settings.py:71
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid DMARC record"
+msgstr "Έλεγχος ότι κάθε domain έχει μια έγκυρη εγράφη MX"
+
+#: admin/app_settings.py:76
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable autoconfig checks"
+msgstr "Ενεργοποίηση ελέγχου MX"
+
+#: admin/app_settings.py:79
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr "Έλεγχος ότι κάθε domain έχει μια έγκυρη εγράφη MX"
+
+#: admin/app_settings.py:84
msgid "Enable DNSBL checks"
msgstr "Ενεργοποίηση ελέγχου DNSBL"
-#: admin/app_settings.py:56
+#: admin/app_settings.py:87
msgid "Check every domain against major DNSBL providers"
msgstr "Έλεγχος κάθε domain κατά κύριους DNSBL πάροχους"
-#: admin/app_settings.py:61
+#: admin/app_settings.py:92
+msgid "Custom DNS server"
+msgstr ""
+
+#: admin/app_settings.py:95
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr ""
+
+#: admin/app_settings.py:100
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:64
+#: admin/app_settings.py:103
msgid ""
"Absolute path of the directory where DKIM private keys will be stored. Make "
"sure this directory belongs to root user and is not readable by the outside "
"world."
msgstr ""
-#: admin/app_settings.py:72
+#: admin/app_settings.py:111
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:76
+#: admin/app_settings.py:115
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
+#: admin/app_settings.py:119 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Γραμματοκιβώτια"
-#: admin/app_settings.py:83
+#: admin/app_settings.py:122
msgid "Handle mailboxes on filesystem"
msgstr "Χειριστείτε γραμματοκιβώτια στο σύστημα αρχείων"
-#: admin/app_settings.py:86
+#: admin/app_settings.py:125
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -101,21 +161,21 @@ msgstr ""
"Μετονομασία και διαγραφή γραμματοκιβωτίων στο σύστημα αρχείων, όταν "
"μετονομάζονται ή διαγράφονται από το Medaboa "
-#: admin/app_settings.py:92
+#: admin/app_settings.py:131
msgid "Mailboxes owner"
msgstr "Ο ιδιοκτήτης των γραμματοκιβωτίων"
-#: admin/app_settings.py:95
+#: admin/app_settings.py:134
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr ""
"Ο UNIX λογαριασμός που είναι ιδιοκτήτης των γραμματοκιβωτίων στο σύστημα "
"αρχείων"
-#: admin/app_settings.py:100
+#: admin/app_settings.py:139
msgid "Default domain quota"
msgstr "Προκαθορισμένο domain quota"
-#: admin/app_settings.py:103
+#: admin/app_settings.py:142
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -123,88 +183,92 @@ msgstr ""
"Προκαθορισμένο quota (σε MB) που εφαρμόζεται στα νέα domains χωρίς "
"προκαθορισμένες τιμές. Μια τιμή 0 σημαίνει ότι δεν έχει quota. "
-#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/app_settings.py:148 admin/forms/domain.py:49 admin/models/domain.py:33
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr "Προκαθορισμένο quota γραμματοκιβωτίου "
-#: admin/app_settings.py:112
+#: admin/app_settings.py:151
+#, fuzzy
+#| msgid ""
+#| "Default mailbox quota (in MB) applied to freshly created domains with no "
+#| "value specified. A value of 0 means no quota."
msgid ""
-"Default mailbox quota (in MB) applied to freshly created domains with no "
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
"value specified. A value of 0 means no quota."
msgstr ""
"Προκαθορισμένο quota γραμματοκιβωτίου (σε MB) που εφαρμόζεται στα νέα "
"domains χωρίς προκαθορισμένες τιμές. Μια τιμή 0 σημαίνει ότι δεν έχει quota. "
-#: admin/app_settings.py:118
+#: admin/app_settings.py:157
msgid "Automatic account removal"
msgstr "Αυτόματη αφαίρεση λογαριασμών"
-#: admin/app_settings.py:121
+#: admin/app_settings.py:160
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
"Όταν αφαιρείται ένα γραμματοκιβώτιο, να αφαιρείται και ο σχετικός λογαριασμός"
-#: admin/app_settings.py:125
+#: admin/app_settings.py:164
msgid "Automatic domain/mailbox creation"
msgstr "Αυτόματη δημιουργία domain/γραμματοκιβωτίων"
-#: admin/app_settings.py:128
+#: admin/app_settings.py:167
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
"Δημιουργία domain και γραμματοκιβωτίου κατά την αυτόματη δημιουργία "
"λογαριασμού"
-#: admin/app_settings.py:134
+#: admin/app_settings.py:173
msgid "Create an alias when a mailbox is renamed"
msgstr "Δημιουργία ενός ψευδώνυμου κατά τη μετονομασία ενός γραμματοκιβωτίου"
-#: admin/app_settings.py:137
+#: admin/app_settings.py:176
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
"Δημιουργήστε ένα ψευδώνυμο χρησιμοποιώντας την παλιά διεύθυνση όταν "
"μετονομάζεται ένα γραμματοκιβώτιο."
-#: admin/app_settings.py:186 admin/app_settings.py:194
-#: admin/forms/account.py:331
+#: admin/app_settings.py:225 admin/app_settings.py:233
+#: admin/forms/account.py:335
msgid "Must be a positive integer"
msgstr "Πρέπει να είναι θετικός ακέραιος"
-#: admin/app_settings.py:204
+#: admin/app_settings.py:243
#, fuzzy
#| msgid "Domain not found."
msgid "Directory not found."
msgstr "To domain δεν βρέθηκε."
-#: admin/app_settings.py:210
+#: admin/app_settings.py:249
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/app_settings.py:224
+#: admin/app_settings.py:263
msgid "Define at least one authorized network / address"
msgstr "Ορίστε τουλάχιστον μια εξουσιοδοτημένη διεύθυνση / δίκτυο"
-#: admin/app_settings.py:234
+#: admin/app_settings.py:273
msgid "Administration"
msgstr "Διαχείριση"
-#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/constants.py:28 admin/forms/alias.py:43
#: admin/templates/admin/_per_domain_statistics_widget.html:7
#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Domain"
-#: admin/constants.py:100
+#: admin/constants.py:29
#, fuzzy
#| msgid "New domain"
msgid "Relay domain"
msgstr "Νέο domain"
-#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
+#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:125
msgid "Username"
msgstr "Όνομα Χρήστη"
-#: admin/forms/account.py:40
+#: admin/forms/account.py:34
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
@@ -212,23 +276,23 @@ msgstr ""
"Το όνομα του χρήστη. Πρέπει να είναι μια έγκυρη e-mail διεύθυνση για απλούς "
"χρήστες ή διαχειριστές με γραμματοκιβώτιο."
-#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
+#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Ρόλος"
-#: admin/forms/account.py:46
+#: admin/forms/account.py:40
msgid "Choose"
msgstr "Επιλογή"
-#: admin/forms/account.py:47
+#: admin/forms/account.py:41
msgid "What level of permission this user will have"
msgstr "Το επίπεδο δικαιωμάτων αυτού του χρήστη"
-#: admin/forms/account.py:50 admin/forms/domain.py:227
+#: admin/forms/account.py:44 admin/forms/domain.py:245
msgid "Random password"
msgstr "Τυχαίως κωδικός"
-#: admin/forms/account.py:52
+#: admin/forms/account.py:46
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
@@ -236,64 +300,70 @@ msgstr ""
"Δημιουργία ενός τυχαίου κωδικού. Εάν ενημερώνεται αυτό το λογαριασμό και "
"επιλέξετε το box, ένας νέος τυχαίος κωδικός θα δημιουργηθεί. "
-#: admin/forms/account.py:58
+#: admin/forms/account.py:52
msgid "Password"
msgstr "Κωδικός"
-#: admin/forms/account.py:63
+#: admin/forms/account.py:57
msgid "Confirmation"
msgstr "Επιβεβαίωση"
-#: admin/forms/account.py:66
+#: admin/forms/account.py:60
msgid "Enter the same password as above, for verification."
msgstr "Εισάγετε τον ίδιο κωδικό για επιβεβαίωση. "
-#: admin/forms/account.py:78
+#: admin/forms/account.py:72
msgid "Enabled"
msgstr "Ενεργοποιημένο"
-#: admin/forms/account.py:172
+#: admin/forms/account.py:167
msgid "Only super administrators are allowed for this mode"
msgstr "Μόνο σε super διαχειριστές επιτρέπεται αυτή η λειτουργία. "
-#: admin/forms/account.py:183 admin/forms/account.py:185
-#: admin/forms/domain.py:144 admin/forms/domain.py:273
-#: admin/forms/domain.py:276 admin/serializers.py:241
+#: admin/forms/account.py:178 admin/forms/account.py:180
+#: admin/forms/domain.py:162 admin/forms/domain.py:291
+#: admin/forms/domain.py:294 admin/serializers.py:287
msgid "This field is required."
msgstr "Αυτό το πεδίο απαιτείτε."
-#: admin/forms/account.py:191
+#: admin/forms/account.py:186
msgid "The two password fields didn't match."
msgstr "Οι δύο κωδικοί δεν είναι ίδιοι"
-#: admin/forms/account.py:204
+#: admin/forms/account.py:199
msgid "You can't disable your own account"
msgstr "Δεν μπορείτε να απενεργοποιήσετε τον δικό σας λογαριασμό"
-#: admin/forms/account.py:225
+#: admin/forms/account.py:222
msgid "E-mail"
msgstr "E-mail"
-#: admin/forms/account.py:227
+#: admin/forms/account.py:224
msgid "Create an alias using the old address"
msgstr "Δημιουργήστε ένα ψευδώνυμο χρησιμοποιώντας την παλιά διεύθυνση"
-#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/forms/account.py:229 admin/forms/domain.py:41
+#: admin/templates/admin/account_detail.html:45
#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Quota"
-#: admin/forms/account.py:234
+#: admin/forms/account.py:232
+#, fuzzy
+#| msgid ""
+#| "Quota in MB for this mailbox. Define a custom value or use domain's "
+#| "default one. Leave empty to define an unlimited value (not allowed for "
+#| "domain administrators)."
msgid ""
-"Quota in MB for this mailbox. Define a custom value or use domain's default "
-"one. Leave empty to define an unlimited value (not allowed for domain "
-"administrators)."
+"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a "
+"custom value or use domain's default one. Leave empty to define an unlimited "
+"value (not allowed for domain administrators)."
msgstr ""
"Quota σε ΜΒ για γραμματοκιβώτια. Ορίστε μια προσαρμοσμένη τιμή ή "
"χρησιμοποιήστε την προεπιλεγμένη του τομέα. Αφήστε το κενό για να μη βάλετε "
"όριο (δεν επιτρέπεται για διαχειριστές domain)."
-#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/forms/account.py:242 admin/forms/domain.py:31
#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Ψευδώνυμο(μα) "
@@ -323,66 +393,66 @@ msgstr ""
"ακόμη και εάν αυτή δεν υπάρχει τοπικά στον server. Εισάγετε μόνο μια "
"διεύθυνση ανά γραμμή. Πιέστε ENTER για να εισάγεται επιπλέον διευθύνσεις. "
-#: admin/forms/account.py:309 admin/forms/alias.py:94
-#: admin/models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:88
+#: admin/models/mailbox.py:310
msgid "Domain does not exist"
msgstr "Το domain δεν υπάρχει"
-#: admin/forms/account.py:341
+#: admin/forms/account.py:345
msgid "Local domain does not exist"
msgstr "To τοπικό domain δεν υπάρχει"
-#: admin/forms/account.py:345 admin/forms/account.py:353
-#: admin/forms/alias.py:97
+#: admin/forms/account.py:349 admin/forms/account.py:357
+#: admin/forms/alias.py:91
msgid "You don't have access to this domain"
msgstr "Δεν έχετε πρόσβαση σε αυτό το domain"
-#: admin/forms/account.py:452
+#: admin/forms/account.py:456
msgid "Domain(s)"
msgstr "Domain(s)"
-#: admin/forms/account.py:454
+#: admin/forms/account.py:458
msgid "Domain(s) that user administrates"
msgstr "Τα domains που ο χρήστης διαχειρίζεται"
-#: admin/forms/account.py:500 admin/forms/account.py:590
-#: admin/forms/domain.py:344 admin/forms/domain.py:414
+#: admin/forms/account.py:505 admin/forms/account.py:595
+#: admin/forms/domain.py:362 admin/forms/domain.py:433
msgid "General"
msgstr "Γενικά"
-#: admin/forms/account.py:504
+#: admin/forms/account.py:509
msgid "Profile"
msgstr "Προφιλ"
-#: admin/forms/account.py:508 admin/forms/account.py:596
+#: admin/forms/account.py:513 admin/forms/account.py:601
msgid "Mail"
msgstr "Μήνυμα"
-#: admin/forms/account.py:511
+#: admin/forms/account.py:516
msgid "Permissions"
msgstr "Δικαιώματα"
-#: admin/forms/account.py:579
+#: admin/forms/account.py:584
msgid "Account updated"
msgstr "Ο λογαριασμός ενημερώθηκε"
-#: admin/forms/account.py:604
+#: admin/forms/account.py:609
msgid "New account"
msgstr "Νέος λογαριασμός"
-#: admin/forms/account.py:614
+#: admin/forms/account.py:619
msgid "Account created"
msgstr "Ο λογαριασμός δημιουργήθηκε"
-#: admin/forms/alias.py:26
+#: admin/forms/alias.py:20
msgid "Random address"
msgstr "Τυχαία διεύθυνση"
-#: admin/forms/alias.py:29
+#: admin/forms/alias.py:23
msgid "Email address"
msgstr "Διεύθυνση Email"
-#: admin/forms/alias.py:31
+#: admin/forms/alias.py:25
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
@@ -390,11 +460,11 @@ msgstr ""
"Διεύθυνση ψευδώνυμου. Για να δημιουργήσεις catchall ψευδώνυμα, απλός "
"εισάγεται το όνομα του domain (@domain.tld)."
-#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Παραλήπτες"
-#: admin/forms/alias.py:39
+#: admin/forms/alias.py:33
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
@@ -402,20 +472,20 @@ msgstr ""
"Οι διευθύνσεις στις οποίες το ψευδώνυμο θα δείχνει. Εισάγεται μόνο μία "
"διεύθυνση ανά εγράφη, πατήστε ENTER για να εισάγεται επιπλέον."
-#: admin/forms/alias.py:114 admin/forms/alias.py:116
+#: admin/forms/alias.py:108 admin/forms/alias.py:110
msgid "This field is required"
msgstr "Το πεδίο απαιτείται "
-#: admin/forms/alias.py:120
+#: admin/forms/alias.py:114
msgid "No recipient defined"
msgstr "Δεν έχει ορισθεί παραλήπτης"
-#: admin/forms/domain.py:36
+#: admin/forms/domain.py:28
#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Τύπος"
-#: admin/forms/domain.py:42
+#: admin/forms/domain.py:34
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
@@ -423,55 +493,77 @@ msgstr ""
"Ψευδώνυμο(μα) από το domain. Εισάγεται μόνο ένα όνομα ανά γραμμή, πατήστε "
"ENTER για να εισάγεται επιπλέον. "
-#: admin/forms/domain.py:47
+#: admin/forms/domain.py:39
msgid "Key selector"
msgstr ""
-#: admin/forms/domain.py:85 admin/handlers.py:171
+#: admin/forms/domain.py:44 admin/serializers.py:30
+#, fuzzy
+#| msgid ""
+#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgid ""
+"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
+"A value of 0 means no quota."
+msgstr ""
+"Προκαθορισμένο quota σε MB που εφαρμόζεται στα γραμματοκιβώτια. Μια τιμή 0 "
+"σημαίνει ότι δεν υπάρχει quota. "
+
+#: admin/forms/domain.py:52
+#, fuzzy
+#| msgid ""
+#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgid ""
+"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
+"GB. A value of 0 means no quota."
+msgstr ""
+"Προκαθορισμένο quota σε MB που εφαρμόζεται στα γραμματοκιβώτια. Μια τιμή 0 "
+"σημαίνει ότι δεν υπάρχει quota. "
+
+#: admin/forms/domain.py:94 admin/handlers.py:161
msgid "domain alias"
msgstr "Ψευδώνυμα (alias) domain "
-#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
+#: admin/forms/domain.py:97 admin/forms/domain.py:173 admin/forms/domain.py:181
#, python-format
msgid "A %s with this name already exists"
msgstr "Το '%s' με αυτό το όνομα υπάρχει ήδη"
-#: admin/forms/domain.py:96 admin/serializers.py:45
+#: admin/forms/domain.py:105 admin/serializers.py:64
msgid "No authorized MX record found for this domain"
msgstr "Δεν υπάρχουν ΜΧ έγραφες για αυτό το domain "
-#: admin/forms/domain.py:108
+#: admin/forms/domain.py:117
msgid "DKIM keys storage directory not configured"
msgstr ""
-#: admin/forms/domain.py:129 admin/serializers.py:55
+#: admin/forms/domain.py:147 admin/serializers.py:82
msgid "Cannot be greater than domain quota"
msgstr "Δεν μπορεί να είναι μεγαλύτερο από το domain quota."
-#: admin/forms/domain.py:134
+#: admin/forms/domain.py:152
msgid "You can't define an unlimited quota."
msgstr "Δεν μπορείτε να ορίσετε ένα απεριόριστο quota."
-#: admin/forms/domain.py:155 admin/forms/domain.py:160
+#: admin/forms/domain.py:173 admin/forms/domain.py:178
msgid "domain"
msgstr "domain"
-#: admin/forms/domain.py:209
+#: admin/forms/domain.py:227
msgid "Create a domain administrator"
msgstr "Δημιουργία διαχειριστή domain"
-#: admin/forms/domain.py:212
+#: admin/forms/domain.py:230
msgid "Automatically create an administrator for this domain"
msgstr "Αυτόματη δημιουργία διαχειριστή για αυτό το domain"
-#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/forms/domain.py:235 admin/templates/admin/domain_detail.html:125
#: admin/templates/admin/domain_headers.html:3
#: admin/templates/admin/identity_headers.html:2
#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Όνομα"
-#: admin/forms/domain.py:220
+#: admin/forms/domain.py:238
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
@@ -479,369 +571,370 @@ msgstr ""
"Το όνομα του διαχειριστή. Μην συμπεριλάβετε το όνομα του domain, γιατί θα "
"προσαρτηθεί αυτόματα στο τέλος."
-#: admin/forms/domain.py:230
+#: admin/forms/domain.py:248
msgid "Generate a random password for the administrator."
msgstr "Δημιουργήστε έναν τυχαίο κωδικό πρόσβασης για το διαχειριστή."
-#: admin/forms/domain.py:236
+#: admin/forms/domain.py:254
msgid "With a mailbox"
msgstr "Με ένα γραμματοκιβώτιο"
-#: admin/forms/domain.py:239
+#: admin/forms/domain.py:257
msgid "Create a mailbox for the administrator."
msgstr "Δημιουργήστε ένα γραμματοκιβώτιο για το διαχειριστή."
-#: admin/forms/domain.py:245
+#: admin/forms/domain.py:263
msgid "Create aliases"
msgstr "Δημιουργία Ψευδώνυμου"
-#: admin/forms/domain.py:248
+#: admin/forms/domain.py:266
msgid "Automatically create standard aliases for this domain"
msgstr "Δημιουργήστε αυτόματα standard ψευδώνυμα για αυτόν το domain"
-#: admin/forms/domain.py:264
+#: admin/forms/domain.py:282
msgid "Invalid format"
msgstr "Λάθος μορφοποίηση"
-#: admin/forms/domain.py:293
+#: admin/forms/domain.py:311
#, python-format
msgid "User '%s' already exists"
msgstr "Ο χρήστης '%s' υπάρχει ήδη"
-#: admin/forms/domain.py:404
+#: admin/forms/domain.py:423
msgid "Domain modified"
msgstr "Το domain άλλαξε"
-#: admin/forms/domain.py:425
+#: admin/forms/domain.py:444
msgid "Options"
msgstr "Επιλογές"
-#: admin/forms/domain.py:433
+#: admin/forms/domain.py:452
msgid "New domain"
msgstr "Νέο domain"
-#: admin/forms/domain.py:446
+#: admin/forms/domain.py:465
msgid "Domain created"
msgstr "Το domain δημιουργήθηκε"
-#: admin/forms/export.py:9
-msgid "File name"
-msgstr "Όνομα αρχείου"
-
-#: admin/forms/export.py:15 admin/forms/import_.py:15
+#: admin/forms/export.py:9 admin/forms/import_.py:13
msgid "Separator"
msgstr "Διαχωριστικό"
-#: admin/forms/forward.py:14
+#: admin/forms/forward.py:12
msgid "Recipient(s)"
msgstr "Παραλήπτες"
-#: admin/forms/forward.py:18
+#: admin/forms/forward.py:16
msgid "Indicate one or more recipients separated by a ','"
msgstr "Προσθέστε παραπάνω από έναν παραλήπτη μετά το διαχωριστικό ','"
-#: admin/forms/forward.py:21
+#: admin/forms/forward.py:19
msgid "Keep local copies"
msgstr "Αποθήκευση τοπικών αντιγράφων"
-#: admin/forms/forward.py:24
+#: admin/forms/forward.py:22
msgid "Forward messages and store copies into your local mailbox"
msgstr ""
"Προώθηση μηνυμάτων και αποθήκευση αντιγράφων στο τοπικό γραμματοκιβώτιο"
-#: admin/forms/import_.py:13
+#: admin/forms/import_.py:11
msgid "Select a file"
msgstr "Επιλέξτε αρχείο"
-#: admin/forms/import_.py:21
+#: admin/forms/import_.py:19
msgid "Continue on error"
msgstr "Συνέχεια σε περίπτωση σφάλματος"
-#: admin/forms/import_.py:22
+#: admin/forms/import_.py:20
msgid "Don't treat duplicated objects as error"
msgstr "Μην αντιμετωπίζετε τα διπλότυπα αντικείμενα ως σφάλματα"
-#: admin/forms/import_.py:40
+#: admin/forms/import_.py:38
msgid "Crypt passwords"
msgstr "Κρυπτογράφηση κωδικών"
-#: admin/forms/import_.py:42
+#: admin/forms/import_.py:40
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
"Επιλέξτε εάν οι κωδικοί που βρίσκονται στο αρχείο δεν είναι κρυπτογραφημένοι"
-#: admin/handlers.py:218
+#: admin/handlers.py:210
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Η εισαγωγή λογαριασμού απέτυχε (%s): το domain δεν υπάρχει"
-#: admin/handlers.py:231 admin/models/mailbox.py:342
+#: admin/handlers.py:223 admin/models/mailbox.py:338
msgid "Mailbox {} already exists"
msgstr "Το γραμματοκιβώτιο {} είδη υπάρχει "
-#: admin/handlers.py:239
+#: admin/handlers.py:231
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Η εισαγωγή του λογαριασμού (%s) απέτυχε: λάθος τιμή στο quota"
-#: admin/handlers.py:279
+#: admin/handlers.py:271
#: admin/templates/admin/_global_statistics_widget.html:17
#: admin/templates/admin/_per_domain_statistics_widget.html:8
#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Ταυτότητες"
-#: admin/handlers.py:295 admin/templates/admin/forward.html:2
+#: admin/handlers.py:287 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Προώθηση"
-#: admin/lib.py:44
+#: admin/lib.py:38
msgid "A mailbox is required"
msgstr "Απαιτείται γραμματοκιβώτιο"
-#: admin/lib.py:134
+#: admin/lib.py:128
msgid "You are not allowed to import domains"
msgstr "Δεν έχετε δικαίωμα εισαγωγής domain"
-#: admin/lib.py:145
+#: admin/lib.py:139
msgid "You are not allowed to import domain aliases."
msgstr "Δεν επιτρέπεται να εισαγάγετε ψευδώνυμα στο domain."
-#: admin/lib.py:183 admin/tests/test_mx.py:122
+#: admin/lib.py:189 admin/tests/test_mx.py:127 admin/tests/test_mx.py:136
+#: admin/tests/test_mx.py:139
#, fuzzy, python-format
#| msgid "No MX record found for this domain."
-msgid "No DNS records found for %s"
+msgid "No DNS record found for %s"
msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. "
-#: admin/lib.py:185 admin/tests/test_mx.py:125
+#: admin/lib.py:192
#, fuzzy, python-format
#| msgid "MX records of {}"
-msgid "No MX record for %s"
+msgid "No %(type)s record for %(name)s"
msgstr "Έγραφες MX από{}"
-#: admin/lib.py:187 admin/tests/test_mx.py:126
+#: admin/lib.py:196 admin/tests/test_mx.py:131
msgid "No working name servers found"
msgstr ""
-#: admin/lib.py:190 admin/tests/test_mx.py:128
+#: admin/lib.py:199 admin/tests/test_mx.py:133
#, python-format
msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
-#: admin/lib.py:201 admin/tests/test_mx.py:131
-#, python-format
-msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+#: admin/lib.py:227
+#, fuzzy, python-brace-format
+#| msgid "Invalid quota value for domain '{}'"
+msgid "Invalid IP address format for {domain}; {addr}"
+msgstr "Μη έγκυρη τιμή quota για το domain '{}'"
+
+#: admin/management/commands/subcommands/_import.py:93
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/lib.py:212 admin/tests/test_mx.py:134
+#: admin/management/commands/subcommands/_import.py:105
#, python-format
-msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:136
+#: admin/management/commands/subcommands/_import.py:116
+#, python-format
+msgid "Unable to decode CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:132
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr "[modoboa] DNSBL ζήτημα(τα) για το domain {}"
-#: admin/management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:152
msgid "Domain {} has no MX record"
msgstr "Το Domain {} δεν έχει εγγραφή MX "
-#: admin/management/commands/subcommands/_mx.py:167
+#: admin/management/commands/subcommands/_mx.py:163
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr "Η εγγραφή MX για το domain {0} δεν είναι έγκυρη: {1} "
-#: admin/management/commands/subcommands/_mx.py:184
+#: admin/management/commands/subcommands/_mx.py:180
msgid "[modoboa] MX issue(s) for domain {}"
msgstr "[modoboa] MX ζήτημα(τα) για το domain {}"
-#: admin/models/alias.py:35 admin/models/mailbox.py:97
+#: admin/models/alias.py:32 admin/models/mailbox.py:95
msgid "address"
msgstr "διεύθυνση"
-#: admin/models/alias.py:37
+#: admin/models/alias.py:34
msgid "The alias address."
msgstr "Η εναλλακτική διεύθυνση."
-#: admin/models/alias.py:42 admin/models/domain.py:48
-#: admin/models/domain_alias.py:47
+#: admin/models/alias.py:39 admin/models/domain.py:37
+#: admin/models/domain_alias.py:42
msgid "enabled"
msgstr "ενεργοποιημένο"
-#: admin/models/alias.py:43 admin/models/domain_alias.py:48
+#: admin/models/alias.py:40 admin/models/domain_alias.py:43
msgid "Check to activate this alias"
msgstr "Επιλέξτε για να ενεργοποιήσετε αυτό το ψευδώνυμο"
-#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
+#: admin/models/alias.py:45 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr "Περιγραφή"
-#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
+#: admin/models/alias.py:47 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr "Λήγει την "
-#: admin/models/alias.py:93
+#: admin/models/alias.py:87
msgid "alias"
msgstr "Ψευδώνυμο"
-#: admin/models/alias.py:125
+#: admin/models/alias.py:119
msgid "Invalid address"
msgstr "Λάθος διεύθυνση"
-#: admin/models/alias.py:146
+#: admin/models/alias.py:140
msgid "Local recipient {}@{} not found"
msgstr "Ο τοπικός παραλήπτης {}@{} δεν βρέθηκε"
-#: admin/models/alias.py:176
+#: admin/models/alias.py:170
#, python-format
msgid "Invalid line: %s"
msgstr "Λάθος γραμμή: %s"
-#: admin/models/alias.py:182
+#: admin/models/alias.py:176
#, python-format
msgid "Domain '%s' does not exist"
msgstr "Το domain '%s' δεν υπάρχει"
-#: admin/models/domain.py:30 admin/models/domain_alias.py:39
+#: admin/models/domain.py:27 admin/models/domain_alias.py:34
msgid "name"
msgstr "όνομα"
-#: admin/models/domain.py:31
+#: admin/models/domain.py:28
msgid "The domain name"
msgstr "Το όνομα του domain"
-#: admin/models/domain.py:35
-msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
-msgstr ""
-"Κοινόχρηστο quota σε MB μεταξύ γραμματοκιβωτίων. Μια τιμή 0 σημαίνει ότι δεν "
-"υπάρχει quota. "
-
-#: admin/models/domain.py:43
-msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
-msgstr ""
-"Προκαθορισμένο quota σε MB που εφαρμόζεται στα γραμματοκιβώτια. Μια τιμή 0 "
-"σημαίνει ότι δεν υπάρχει quota. "
-
-#: admin/models/domain.py:49
+#: admin/models/domain.py:38
msgid "Check to activate this domain"
msgstr "Επιλέξτε για να ενεργοποιηθεί αυτό το domain"
-#: admin/models/domain.py:54
+#: admin/models/domain.py:43
msgid "Enable DNS checks"
msgstr "Ενεργοποίση ελέγχου DNS"
-#: admin/models/domain.py:55
+#: admin/models/domain.py:44
msgid "Check to enable DNS checks for this domain"
msgstr "Επιλέξτε για να ενεργοποιήσετε τους ελέγχους DNS για αυτόν το domain"
-#: admin/models/domain.py:62
+#: admin/models/domain.py:51
msgid "Enable DKIM signing"
msgstr ""
-#: admin/models/domain.py:64
+#: admin/models/domain.py:53
msgid ""
"If you activate this feature, a DKIM key will be generated for this domain."
msgstr ""
-#: admin/models/domain.py:70
+#: admin/models/domain.py:59
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:285 admin/models/domain_alias.py:74
+#: admin/models/domain.py:312 admin/models/domain_alias.py:67
msgid "Invalid line"
msgstr "Λάθος γραμμή"
-#: admin/models/domain.py:295
+#: admin/models/domain.py:322
msgid "No authorized MX record found for domain {}"
msgstr "Δεν βρέθηκε εξουσιοδοτημένη εγγραφή MX για το domain {}"
-#: admin/models/domain.py:302
+#: admin/models/domain.py:329
msgid "Invalid quota value for domain '{}'"
msgstr "Μη έγκυρη τιμή quota για το domain '{}'"
-#: admin/models/domain.py:309
+#: admin/models/domain.py:336
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr ""
"Μη έγκυρη τιμή quota για το προεπιλεγμένο γραμματοκιβώτιο για το domain '{}'"
-#: admin/models/domain.py:314
+#: admin/models/domain.py:341
msgid "Default mailbox quota cannot be greater than domain quota"
msgstr ""
"Το προεπιλεγμένο quota για το γραμματοκιβώτιο δεν πρέπει να είναι μεγαλύτερο "
"από το domain quota. "
-#: admin/models/domain_alias.py:40
+#: admin/models/domain_alias.py:35
msgid "The alias name"
msgstr "Το όνομα του ψευδώνυμου"
-#: admin/models/domain_alias.py:42
+#: admin/models/domain_alias.py:37
msgid "target"
msgstr "στόχος"
-#: admin/models/domain_alias.py:43
+#: admin/models/domain_alias.py:38
msgid "The domain this alias points to"
msgstr "To domain στο οποίο αναφέρεται αυτό το ψευδώνυμο"
-#: admin/models/domain_alias.py:83
+#: admin/models/domain_alias.py:76
#, python-format
msgid "Unknown domain %s"
msgstr "Άγνωστο domain %s"
-#: admin/models/mailbox.py:99
+#: admin/models/mailbox.py:97
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Διεύθυνση γραμματοκιβωτίου (χωρίς το @domain.tld κομμάτι)"
-#: admin/models/mailbox.py:165
+#: admin/models/mailbox.py:160
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Σφάλμα κατά την ανάκτηση της τοποθεσίας του γραμματοκιβωτίου (%s)"
-#: admin/models/mailbox.py:258
+#: admin/models/mailbox.py:253
msgid "A quota is required"
msgstr "Ένα quota απαιτείται "
-#: admin/models/mailbox.py:264
+#: admin/models/mailbox.py:259
msgid "Domain quota exceeded"
msgstr "Υπέρβαση του domain quota"
-#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
+#: admin/serializers.py:37
+msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgstr ""
+"Προκαθορισμένο quota σε MB που εφαρμόζεται στα γραμματοκιβώτια. Μια τιμή 0 "
+"σημαίνει ότι δεν υπάρχει quota. "
+
+#: admin/serializers.py:107 admin/serializers.py:312 admin/serializers.py:410
msgid "Permission denied."
msgstr "Η άδεια απορρίφθηκε."
-#: admin/serializers.py:118
+#: admin/serializers.py:158
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
"Λίστα διαχειριζόμενων domains (αφορά μόνο μεταπωλητές και διαχειριστές "
"domain)"
-#: admin/serializers.py:218
+#: admin/serializers.py:262
msgid "Not allowed for this role."
msgstr "Δεν επιτρέπεται για αυτόν τον ρόλο."
-#: admin/serializers.py:228
+#: admin/serializers.py:274
msgid "Must be equal to mailbox full_address"
msgstr "Πρέπει να είναι ίσο με την full_address του γραμματοκιβωτίου"
-#: admin/serializers.py:253
+#: admin/serializers.py:299
msgid "Local domain {} does not exist"
msgstr "Το τοπικός domain {} δεν υπάρχει"
-#: admin/serializers.py:347
+#: admin/serializers.py:397
msgid "A list of recipient"
msgstr "Λίστα παραληπτών"
-#: admin/serializers.py:358
+#: admin/serializers.py:408
msgid "Domain not found."
msgstr "To domain δεν βρέθηκε."
-#: admin/serializers.py:407
+#: admin/serializers.py:457
#, fuzzy
#| msgid "You don't have access to this domain"
msgid "You don't have access to this domain."
msgstr "Δεν έχετε πρόσβαση σε αυτό το domain"
-#: admin/serializers.py:415
+#: admin/serializers.py:465
#, fuzzy
#| msgid "You don't have access to this domain"
msgid "You don't have access to this mailbox."
@@ -878,6 +971,19 @@ msgstr "Απενεργοποιήθηκε "
msgid "Awaiting checks"
msgstr "Αναμονή ελέγχων"
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+#, fuzzy
+#| msgid "No MX record found for this domain."
+msgid "No record found"
+msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. "
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
+msgstr ""
+
#: admin/templates/admin/_global_statistics_widget.html:4
msgid "Global statistics"
msgstr "Γενικά στατιστικά"
@@ -984,7 +1090,8 @@ msgid "Address"
msgstr "Διεύθυνση"
#: admin/templates/admin/dnsbl_domain_detail.html:12
-#: admin/templates/admin/domain_detail.html:96
+#: admin/templates/admin/domain_detail.html:100
+#: admin/templates/admin/messages_log_headers.html:6
msgid "Status"
msgstr "Κατάσταση"
@@ -1016,11 +1123,8 @@ msgstr "Ψευδώνυμο γραμματοκιβωτίου "
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domain_detail.html:65
-#: admin/templates/admin/domain_general_form.html:4
-#: admin/templates/admin/domain_general_form.html:5
#: admin/templates/admin/domains_quotas.html:11
#: admin/templates/admin/domains_quotas.html:12
-#: admin/templates/admin/mailform.html:7
#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
@@ -1040,34 +1144,38 @@ msgstr "χρησιμοποιείται "
msgid "allocated"
msgstr "Κατανεμημένο"
-#: admin/templates/admin/domain_detail.html:91
+#: admin/templates/admin/domain_detail.html:92
msgid "DNS"
msgstr ""
-#: admin/templates/admin/domain_detail.html:103
+#: admin/templates/admin/domain_detail.html:107
msgid "DKIM key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:107
+#: admin/templates/admin/domain_detail.html:111
msgid "Show key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:110
+#: admin/templates/admin/domain_detail.html:113
+msgid "Generate new key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:115
#, fuzzy
#| msgid "Not defined"
msgid "Not generated"
msgstr "Μη καθορισμένο"
-#: admin/templates/admin/domain_detail.html:117
+#: admin/templates/admin/domain_detail.html:122
msgid "Administrators"
msgstr "Διαχειριστές"
-#: admin/templates/admin/domain_detail.html:129
-#: admin/templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:134
+#: admin/templatetags/admin_tags.py:265
msgid "Remove this permission"
msgstr "Αφαίρεση αυτού του δικαιώματος"
-#: admin/templates/admin/domain_detail.html:134
+#: admin/templates/admin/domain_detail.html:139
msgid "No domain administrator defined yet."
msgstr "Δεν έχει καθοριστεί ακόμη διαχειριστής του domain."
@@ -1121,7 +1229,7 @@ msgstr "απενεργοποιημένο"
msgid "Automatically forward emails to another address"
msgstr "Αυτόματη προώθηση των email σε άλλη διεύθυνση"
-#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:87
msgid "Update"
msgstr "Ενημέρωση"
@@ -1194,6 +1302,22 @@ msgstr "Επιλέξτε μία τιμή"
msgid "Use domain default value"
msgstr "Χρήση της προεπιλεγμένης τιμής του domain"
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:3
+msgid "Date"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:4
+msgid "From"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:5
+msgid "To"
+msgstr ""
+
#: admin/templates/admin/mx_domain_detail.html:11
msgid "Updated"
msgstr "Ενημερώθηκε"
@@ -1238,132 +1362,176 @@ msgstr ""
msgid "Search"
msgstr "Αναζήτηση"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_m"
msgstr "enabled_m"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_f"
msgstr "enabled_f"
-#: admin/templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:45
msgid "List domains"
msgstr "Λίστα domains"
-#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:50 admin/templatetags/admin_tags.py:105
msgid "List quotas"
msgstr "List Quotas"
-#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
-#: admin/views/import_.py:89 admin/views/import_.py:111
+#: admin/templatetags/admin_tags.py:62 admin/templatetags/admin_tags.py:110
+#: admin/views/import_.py:85 admin/views/import_.py:107
msgid "Import"
msgstr "Εισαγωγή"
-#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
-#: admin/views/export.py:43 admin/views/export.py:71
+#: admin/templatetags/admin_tags.py:68 admin/templatetags/admin_tags.py:116
+#: admin/views/export.py:39 admin/views/export.py:67
msgid "Export"
msgstr "Εξαγωγή"
-#: admin/templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:100
msgid "List identities"
msgstr "Λίστα ταυτοτήτων"
-#: admin/templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:135
msgid "View the domain's identities"
msgstr "Εμφάνιση των ταυτοτήτων του domain"
-#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
-#: admin/templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:141 admin/templatetags/admin_tags.py:184
+#: admin/templatetags/admin_tags.py:197
msgid "Edit {}"
msgstr "Επεξεργασία{}"
-#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
-#: admin/templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:151 admin/templatetags/admin_tags.py:188
+#: admin/templatetags/admin_tags.py:202
#, python-format
msgid "Delete %s?"
msgstr "Διαγραφή %s;"
-#: admin/views/alias.py:35
+#: admin/tests/test_mx.py:130
+#, fuzzy, python-format
+#| msgid "MX records of {}"
+msgid "No MX record for %s"
+msgstr "Έγραφες MX από{}"
+
+#: admin/tests/test_mx.py:142 admin/tests/test_mx.py:145
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/views/alias.py:29
msgid "Alias with this name already exists"
msgstr "Υπάρχει είδη αυτό το ψευδώνυμο"
-#: admin/views/alias.py:60
+#: admin/views/alias.py:54
msgid "Create"
msgstr "Δημιουργία"
-#: admin/views/alias.py:72
+#: admin/views/alias.py:66
msgid "New alias"
msgstr "Νέο ψευδώνυμο"
-#: admin/views/alias.py:73
+#: admin/views/alias.py:67
msgid "Alias created"
msgstr "Το ψευδώνυμο δημιουργήθηκε"
-#: admin/views/alias.py:85
+#: admin/views/alias.py:79
msgid "Alias modified"
msgstr "Το ψευδώνυμο τροποποιήθηκε"
-#: admin/views/alias.py:109
+#: admin/views/alias.py:103
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] "Το ψευδώνυμο διαγράφηκε"
msgstr[1] "Ψευδώνυμο διαγράφηκε"
-#: admin/views/dns.py:32
+#: admin/views/dns.py:28
msgid "MX records of {}"
msgstr "Έγραφες MX από{}"
-#: admin/views/dns.py:55
+#: admin/views/dns.py:51
msgid "DNSBL summary for {}"
msgstr "Περίληψη DNSBL για{}"
-#: admin/views/domain.py:188
+#: admin/views/domain.py:202
msgid "You can't delete your own domain"
msgstr "Δεν μπορείτε να σβήσετε το δικό σας domain"
-#: admin/views/domain.py:191
+#: admin/views/domain.py:205
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Το domain διαφράφηκε"
msgstr[1] "Τα domains διαφράφηκαν"
-#: admin/views/export.py:42
+#: admin/views/export.py:38
msgid "Export identities"
msgstr "Εξαγωγή ταυτοτήτων"
-#: admin/views/export.py:70
+#: admin/views/export.py:66
msgid "Export domains"
msgstr "Εξαγωγή των domain"
-#: admin/views/identity.py:113 admin/views/identity.py:206
-#: admin/views/identity.py:211
+#: admin/views/identity.py:107 admin/views/identity.py:201
+#: admin/views/identity.py:206
msgid "Invalid request"
msgstr "Λάθος αίτημα"
-#: admin/views/identity.py:196
+#: admin/views/identity.py:191
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Ο λογαριασμός διαγράφηκε"
msgstr[1] "Οι λογαριασμοί διαγράφηκαν"
-#: admin/views/import_.py:65
+#: admin/views/import_.py:61
#, python-format
msgid "Object already exists: %s"
msgstr "Το αντικείμενο υπάρχει ήδη: %s'"
-#: admin/views/import_.py:69
+#: admin/views/import_.py:65
#, python-format
msgid "%d objects imported successfully"
msgstr "%d αντικείμενα εισήχθησαν με επιτυχία"
-#: admin/views/import_.py:88
+#: admin/views/import_.py:84
msgid "Import domains"
msgstr "Εισαγωγή των domain"
-#: admin/views/import_.py:110
+#: admin/views/import_.py:106
msgid "Import identities"
msgstr "Εισαγωγή ταυτοτήτων"
-#: admin/views/user.py:40
+#: admin/views/user.py:36
msgid "Forward updated"
msgstr "Η προώθηση ενημερώθηκε"
+
+#~ msgid "File name"
+#~ msgstr "Όνομα αρχείου"
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No {type} record found for MX {mx}"
+#~ msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. "
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No A record found for MX %(domain)s"
+#~ msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. "
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No AAAA record found for MX %(domain)s"
+#~ msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. "
+
+#~ msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
+#~ msgstr ""
+#~ "Κοινόχρηστο quota σε MB μεταξύ γραμματοκιβωτίων. Μια τιμή 0 σημαίνει ότι "
+#~ "δεν υπάρχει quota. "
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No DNS records found without MX for %s"
+#~ msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. "
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No DNS records found without MX for %(domain)s"
+#~ msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. "
diff --git a/modoboa/admin/locale/el_GR/LC_MESSAGES/djangojs.po b/modoboa/admin/locale/el_GR/LC_MESSAGES/djangojs.po
index 2150858fe..9679d1807 100644
--- a/modoboa/admin/locale/el_GR/LC_MESSAGES/djangojs.po
+++ b/modoboa/admin/locale/el_GR/LC_MESSAGES/djangojs.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Giannis Kapetanakis , 2016
# Kostas Moumouris , 2017
@@ -9,46 +9,51 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-04 22:08+0100\n"
+"POT-Creation-Date: 2020-03-09 16:48+0100\n"
"PO-Revision-Date: 2017-10-05 20:01+0000\n"
"Last-Translator: Kostas Moumouris \n"
-"Language-Team: Greek (Greece) (http://www.transifex.com/tonio/modoboa/language/el_GR/)\n"
+"Language-Team: Greek (Greece) (http://www.transifex.com/tonio/modoboa/"
+"language/el_GR/)\n"
+"Language: el_GR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: el_GR\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/static/admin/js/admin.js:131
+#: admin/static/admin/js/admin.js:129 admin/static/admin/js/admin.js:174
msgid "No more domain to show"
msgstr "Δεν υπάρχουν άλλα domains για εμφάνιση"
-#: admin/static/admin/js/admin.js:150
+#: admin/static/admin/js/admin.js:149
msgid "Do not delete domain directory"
msgstr "Να μην διαγραφεί ο κατάλογος αρχείων του domain "
-#: admin/static/admin/js/admin.js:152
+#: admin/static/admin/js/admin.js:151
msgid "This operation will remove ALL data associated to this domain."
-msgstr "Αυτή η λειτουργία θα καταργήσει ΟΛΑ τα δεδομένα που σχετίζονται με αυτό το domain."
+msgstr ""
+"Αυτή η λειτουργία θα καταργήσει ΟΛΑ τα δεδομένα που σχετίζονται με αυτό το "
+"domain."
-#: admin/static/admin/js/admin.js:153
+#: admin/static/admin/js/admin.js:152
msgid ""
"This operation will remove all data associated to this domain, excepting "
"accounts."
-msgstr "Αυτή η λειτουργία θα καταργήσει όλα τα δεδομένα που σχετίζονται με αυτό το domain, εκτός από τους λογαριασμούς χρηστών."
+msgstr ""
+"Αυτή η λειτουργία θα καταργήσει όλα τα δεδομένα που σχετίζονται με αυτό το "
+"domain, εκτός από τους λογαριασμούς χρηστών."
-#: admin/static/admin/js/admin.js:236
+#: admin/static/admin/js/admin.js:177 admin/static/admin/js/admin.js:433
+msgid "No more quota to show"
+msgstr "Δεν υπάρχει κανένα quota"
+
+#: admin/static/admin/js/admin.js:306
msgid "No domain administrator defined"
msgstr "Δεν έχει οριστεί διαχειριστής domain"
-#: admin/static/admin/js/admin.js:291 admin/static/admin/js/admin.js:359
+#: admin/static/admin/js/admin.js:362 admin/static/admin/js/admin.js:430
msgid "No more identity to show"
msgstr "Δεν υπάρχουν άλλες ταυτότητες για εμφάνιση"
-#: admin/static/admin/js/admin.js:333
+#: admin/static/admin/js/admin.js:404
msgid "Do not delete mailbox directory"
msgstr "Να μην διαγραφεί ο κατάλογος αρχείων του γραμματοκιβωτίου "
-
-#: admin/static/admin/js/admin.js:362
-msgid "No more quota to show"
-msgstr "Δεν υπάρχει κανένα quota"
diff --git a/modoboa/admin/locale/en/LC_MESSAGES/django.po b/modoboa/admin/locale/en/LC_MESSAGES/django.po
index 84cdd8d1d..d158a18be 100644
--- a/modoboa/admin/locale/en/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2020-10-02 15:31+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -17,770 +17,884 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/api.py:142
+msgid "Here is your new Modoboa password: {}"
+msgstr ""
+
+#: admin/app_settings.py:20 admin/handlers.py:261
#: admin/templates/admin/_global_statistics_widget.html:11
#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr ""
-#: admin/app_settings.py:25
+#: admin/app_settings.py:23
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28
+#: admin/app_settings.py:26
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:33
+#: admin/app_settings.py:31
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:36
+#: admin/app_settings.py:34
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
msgstr ""
-#: admin/app_settings.py:44
+#: admin/app_settings.py:42
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:47
+#: admin/app_settings.py:45
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
msgstr ""
-#: admin/app_settings.py:53
+#: admin/app_settings.py:51
+msgid "Enable SPF checks"
+msgstr ""
+
+#: admin/app_settings.py:54
+msgid "Check if every domain has a valid SPF record"
+msgstr ""
+
+#: admin/app_settings.py:59
+msgid "Enable DKIM checks"
+msgstr ""
+
+#: admin/app_settings.py:62
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr ""
+
+#: admin/app_settings.py:68
+msgid "Enable DMARC checks"
+msgstr ""
+
+#: admin/app_settings.py:71
+msgid "Check if every domain has a valid DMARC record"
+msgstr ""
+
+#: admin/app_settings.py:76
+msgid "Enable autoconfig checks"
+msgstr ""
+
+#: admin/app_settings.py:79
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr ""
+
+#: admin/app_settings.py:84
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:56
+#: admin/app_settings.py:87
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:61
+#: admin/app_settings.py:92
+msgid "Custom DNS server"
+msgstr ""
+
+#: admin/app_settings.py:95
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr ""
+
+#: admin/app_settings.py:100
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:64
+#: admin/app_settings.py:103
msgid ""
"Absolute path of the directory where DKIM private keys will be stored. Make "
"sure this directory belongs to root user and is not readable by the outside "
"world."
msgstr ""
-#: admin/app_settings.py:72
+#: admin/app_settings.py:111
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:76
+#: admin/app_settings.py:115
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
-msgid "Mailboxes"
-msgstr ""
-
-#: admin/app_settings.py:83
-msgid "Handle mailboxes on filesystem"
-msgstr ""
-
-#: admin/app_settings.py:86
-msgid ""
-"Rename or remove mailboxes on the filesystem when they get renamed or "
-"removed within Modoboa"
-msgstr ""
-
-#: admin/app_settings.py:92
-msgid "Mailboxes owner"
-msgstr ""
-
-#: admin/app_settings.py:95
-msgid "The UNIX account who owns mailboxes on the filesystem"
-msgstr ""
-
-#: admin/app_settings.py:100
+#: admin/app_settings.py:120
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:103
+#: admin/app_settings.py:123
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/app_settings.py:129
+msgid "Default domain sending limit"
+msgstr ""
+
+#: admin/app_settings.py:132
+msgid ""
+"Number of messages freshly created domains will be allowed to send per day. "
+"Leave empty for no limit."
+msgstr ""
+
+#: admin/app_settings.py:137 admin/templates/admin/domain_detail.html:41
+msgid "Mailboxes"
+msgstr ""
+
+#: admin/app_settings.py:140
+msgid "Handle mailboxes on filesystem"
+msgstr ""
+
+#: admin/app_settings.py:143
+msgid ""
+"Rename or remove mailboxes on the filesystem when they get renamed or "
+"removed within Modoboa"
+msgstr ""
+
+#: admin/app_settings.py:149
+msgid "Mailboxes owner"
+msgstr ""
+
+#: admin/app_settings.py:152
+msgid "The UNIX account who owns mailboxes on the filesystem"
+msgstr ""
+
+#: admin/app_settings.py:157 admin/forms/domain.py:49 admin/models/domain.py:32
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
-#: admin/app_settings.py:112
+#: admin/app_settings.py:160
msgid ""
-"Default mailbox quota (in MB) applied to freshly created domains with no "
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:118
+#: admin/app_settings.py:166
+msgid "Default mailbox sending limit"
+msgstr ""
+
+#: admin/app_settings.py:169
+msgid ""
+"Number of messages freshly created mailboxes will be allowed to send per "
+"day. Leave empty for no limit."
+msgstr ""
+
+#: admin/app_settings.py:175
msgid "Automatic account removal"
msgstr ""
-#: admin/app_settings.py:121
+#: admin/app_settings.py:178
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-#: admin/app_settings.py:125
+#: admin/app_settings.py:182
msgid "Automatic domain/mailbox creation"
msgstr ""
-#: admin/app_settings.py:128
+#: admin/app_settings.py:185
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:134
+#: admin/app_settings.py:191
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:137
+#: admin/app_settings.py:194
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
-#: admin/app_settings.py:186 admin/app_settings.py:194
-#: admin/forms/account.py:331
+#: admin/app_settings.py:243 admin/app_settings.py:251
+#: admin/forms/account.py:347
msgid "Must be a positive integer"
msgstr ""
-#: admin/app_settings.py:204
+#: admin/app_settings.py:261
msgid "Directory not found."
msgstr ""
-#: admin/app_settings.py:210
+#: admin/app_settings.py:267
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/app_settings.py:224
+#: admin/app_settings.py:281
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/app_settings.py:234
+#: admin/app_settings.py:291
msgid "Administration"
msgstr ""
-#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/constants.py:28 admin/forms/alias.py:43
#: admin/templates/admin/_per_domain_statistics_widget.html:7
#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr ""
-#: admin/constants.py:100
+#: admin/constants.py:29
msgid "Relay domain"
msgstr ""
-#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
+#: admin/constants.py:42
+msgid "Opened"
+msgstr ""
+
+#: admin/constants.py:43
+msgid "Closed"
+msgstr ""
+
+#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:139
msgid "Username"
msgstr ""
-#: admin/forms/account.py:40
+#: admin/forms/account.py:34
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
msgstr ""
-#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
+#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr ""
-#: admin/forms/account.py:46
+#: admin/forms/account.py:40
msgid "Choose"
msgstr ""
-#: admin/forms/account.py:47
+#: admin/forms/account.py:41
msgid "What level of permission this user will have"
msgstr ""
-#: admin/forms/account.py:50 admin/forms/domain.py:227
+#: admin/forms/account.py:44 admin/forms/domain.py:248
msgid "Random password"
msgstr ""
-#: admin/forms/account.py:52
+#: admin/forms/account.py:46
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
msgstr ""
-#: admin/forms/account.py:58
+#: admin/forms/account.py:52
msgid "Password"
msgstr ""
-#: admin/forms/account.py:63
+#: admin/forms/account.py:57
msgid "Confirmation"
msgstr ""
-#: admin/forms/account.py:66
+#: admin/forms/account.py:60
msgid "Enter the same password as above, for verification."
msgstr ""
-#: admin/forms/account.py:78
+#: admin/forms/account.py:72
msgid "Enabled"
msgstr ""
-#: admin/forms/account.py:172
+#: admin/forms/account.py:167
msgid "Only super administrators are allowed for this mode"
msgstr ""
-#: admin/forms/account.py:183 admin/forms/account.py:185
-#: admin/forms/domain.py:144 admin/forms/domain.py:273
-#: admin/forms/domain.py:276 admin/serializers.py:241
+#: admin/forms/account.py:178 admin/forms/account.py:180
+#: admin/forms/domain.py:165 admin/forms/domain.py:294
+#: admin/forms/domain.py:297 admin/serializers.py:297
msgid "This field is required."
msgstr ""
-#: admin/forms/account.py:191
+#: admin/forms/account.py:186
msgid "The two password fields didn't match."
msgstr ""
-#: admin/forms/account.py:204
+#: admin/forms/account.py:199
msgid "You can't disable your own account"
msgstr ""
-#: admin/forms/account.py:225
+#: admin/forms/account.py:222
msgid "E-mail"
msgstr ""
-#: admin/forms/account.py:227
+#: admin/forms/account.py:224
msgid "Create an alias using the old address"
msgstr ""
-#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/forms/account.py:229 admin/forms/domain.py:41
+#: admin/templates/admin/account_detail.html:45
#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr ""
-#: admin/forms/account.py:234
+#: admin/forms/account.py:232
msgid ""
-"Quota in MB for this mailbox. Define a custom value or use domain's default "
-"one. Leave empty to define an unlimited value (not allowed for domain "
-"administrators)."
+"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a "
+"custom value or use domain's default one. Leave empty to define an unlimited "
+"value (not allowed for domain administrators)."
msgstr ""
-#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/forms/account.py:242 admin/models/domain.py:36
+#: admin/models/mailbox.py:102 admin/templates/admin/account_detail.html:50
+#: admin/templates/admin/domain_detail.html:69
+msgid "Message sending limit"
+msgstr ""
+
+#: admin/forms/account.py:246 admin/models/mailbox.py:104
+msgid "Number of messages this mailbox can send per day"
+msgstr ""
+
+#: admin/forms/account.py:249 admin/forms/domain.py:31
#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr ""
-#: admin/forms/account.py:245
+#: admin/forms/account.py:252
msgid ""
"Alias(es) of this mailbox. Indicate only one address per input, press ENTER "
"to add a new input. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
msgstr ""
-#: admin/forms/account.py:251
+#: admin/forms/account.py:258
msgid "Sender addresses"
msgstr ""
-#: admin/forms/account.py:254
+#: admin/forms/account.py:261
msgid ""
"Additional sender address(es) for this account. The user will be allowed to "
"send emails using this address, even if it does not exist locally. Indicate "
"one address per input. Press ENTER to add a new input."
msgstr ""
-#: admin/forms/account.py:309 admin/forms/alias.py:94
-#: admin/models/mailbox.py:315
+#: admin/forms/account.py:321 admin/forms/alias.py:88
+#: admin/models/mailbox.py:321
msgid "Domain does not exist"
msgstr ""
-#: admin/forms/account.py:341
+#: admin/forms/account.py:357
msgid "Local domain does not exist"
msgstr ""
-#: admin/forms/account.py:345 admin/forms/account.py:353
-#: admin/forms/alias.py:97
+#: admin/forms/account.py:361 admin/forms/account.py:369
+#: admin/forms/alias.py:91
msgid "You don't have access to this domain"
msgstr ""
-#: admin/forms/account.py:452
+#: admin/forms/account.py:470
msgid "Domain(s)"
msgstr ""
-#: admin/forms/account.py:454
+#: admin/forms/account.py:472
msgid "Domain(s) that user administrates"
msgstr ""
-#: admin/forms/account.py:500 admin/forms/account.py:590
-#: admin/forms/domain.py:344 admin/forms/domain.py:414
+#: admin/forms/account.py:519 admin/forms/account.py:609
+#: admin/forms/domain.py:365 admin/forms/domain.py:436
msgid "General"
msgstr ""
-#: admin/forms/account.py:504
+#: admin/forms/account.py:523
msgid "Profile"
msgstr ""
-#: admin/forms/account.py:508 admin/forms/account.py:596
+#: admin/forms/account.py:527 admin/forms/account.py:615
msgid "Mail"
msgstr ""
-#: admin/forms/account.py:511
+#: admin/forms/account.py:530
msgid "Permissions"
msgstr ""
-#: admin/forms/account.py:579
+#: admin/forms/account.py:598
msgid "Account updated"
msgstr ""
-#: admin/forms/account.py:604
+#: admin/forms/account.py:623
msgid "New account"
msgstr ""
-#: admin/forms/account.py:614
+#: admin/forms/account.py:633
msgid "Account created"
msgstr ""
-#: admin/forms/alias.py:26
+#: admin/forms/alias.py:20
msgid "Random address"
msgstr ""
-#: admin/forms/alias.py:29
+#: admin/forms/alias.py:23
msgid "Email address"
msgstr ""
-#: admin/forms/alias.py:31
+#: admin/forms/alias.py:25
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
msgstr ""
-#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr ""
-#: admin/forms/alias.py:39
+#: admin/forms/alias.py:33
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
msgstr ""
-#: admin/forms/alias.py:114 admin/forms/alias.py:116
+#: admin/forms/alias.py:108 admin/forms/alias.py:110
msgid "This field is required"
msgstr ""
-#: admin/forms/alias.py:120
+#: admin/forms/alias.py:114
msgid "No recipient defined"
msgstr ""
-#: admin/forms/domain.py:36
+#: admin/forms/domain.py:28
#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr ""
-#: admin/forms/domain.py:42
+#: admin/forms/domain.py:34
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
msgstr ""
-#: admin/forms/domain.py:47
+#: admin/forms/domain.py:39
msgid "Key selector"
msgstr ""
-#: admin/forms/domain.py:85 admin/handlers.py:171
+#: admin/forms/domain.py:44 admin/serializers.py:30
+msgid ""
+"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
+"A value of 0 means no quota."
+msgstr ""
+
+#: admin/forms/domain.py:52
+msgid ""
+"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
+"GB. A value of 0 means no quota."
+msgstr ""
+
+#: admin/forms/domain.py:97 admin/handlers.py:161
msgid "domain alias"
msgstr ""
-#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
+#: admin/forms/domain.py:100 admin/forms/domain.py:176
+#: admin/forms/domain.py:184
#, python-format
msgid "A %s with this name already exists"
msgstr ""
-#: admin/forms/domain.py:96 admin/serializers.py:45
+#: admin/forms/domain.py:108 admin/serializers.py:65
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/forms/domain.py:108
+#: admin/forms/domain.py:120
msgid "DKIM keys storage directory not configured"
msgstr ""
-#: admin/forms/domain.py:129 admin/serializers.py:55
+#: admin/forms/domain.py:150 admin/serializers.py:83
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/forms/domain.py:134
+#: admin/forms/domain.py:155
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:155 admin/forms/domain.py:160
+#: admin/forms/domain.py:176 admin/forms/domain.py:181
msgid "domain"
msgstr ""
-#: admin/forms/domain.py:209
+#: admin/forms/domain.py:230
msgid "Create a domain administrator"
msgstr ""
-#: admin/forms/domain.py:212
+#: admin/forms/domain.py:233
msgid "Automatically create an administrator for this domain"
msgstr ""
-#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/forms/domain.py:238 admin/templates/admin/domain_detail.html:139
#: admin/templates/admin/domain_headers.html:3
#: admin/templates/admin/identity_headers.html:2
#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr ""
-#: admin/forms/domain.py:220
+#: admin/forms/domain.py:241
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
msgstr ""
-#: admin/forms/domain.py:230
+#: admin/forms/domain.py:251
msgid "Generate a random password for the administrator."
msgstr ""
-#: admin/forms/domain.py:236
+#: admin/forms/domain.py:257
msgid "With a mailbox"
msgstr ""
-#: admin/forms/domain.py:239
+#: admin/forms/domain.py:260
msgid "Create a mailbox for the administrator."
msgstr ""
-#: admin/forms/domain.py:245
+#: admin/forms/domain.py:266
msgid "Create aliases"
msgstr ""
-#: admin/forms/domain.py:248
+#: admin/forms/domain.py:269
msgid "Automatically create standard aliases for this domain"
msgstr ""
-#: admin/forms/domain.py:264
+#: admin/forms/domain.py:285
msgid "Invalid format"
msgstr ""
-#: admin/forms/domain.py:293
+#: admin/forms/domain.py:314
#, python-format
msgid "User '%s' already exists"
msgstr ""
-#: admin/forms/domain.py:404
+#: admin/forms/domain.py:426
msgid "Domain modified"
msgstr ""
-#: admin/forms/domain.py:425
+#: admin/forms/domain.py:447
msgid "Options"
msgstr ""
-#: admin/forms/domain.py:433
+#: admin/forms/domain.py:455
msgid "New domain"
msgstr ""
-#: admin/forms/domain.py:446
+#: admin/forms/domain.py:468
msgid "Domain created"
msgstr ""
-#: admin/forms/export.py:9
-msgid "File name"
-msgstr ""
-
-#: admin/forms/export.py:15 admin/forms/import_.py:15
+#: admin/forms/export.py:9 admin/forms/import_.py:13
msgid "Separator"
msgstr ""
-#: admin/forms/forward.py:14
+#: admin/forms/forward.py:12
msgid "Recipient(s)"
msgstr ""
-#: admin/forms/forward.py:18
+#: admin/forms/forward.py:16
msgid "Indicate one or more recipients separated by a ','"
msgstr ""
-#: admin/forms/forward.py:21
+#: admin/forms/forward.py:19
msgid "Keep local copies"
msgstr ""
-#: admin/forms/forward.py:24
+#: admin/forms/forward.py:22
msgid "Forward messages and store copies into your local mailbox"
msgstr ""
-#: admin/forms/import_.py:13
+#: admin/forms/import_.py:11
msgid "Select a file"
msgstr ""
-#: admin/forms/import_.py:21
+#: admin/forms/import_.py:19
msgid "Continue on error"
msgstr ""
-#: admin/forms/import_.py:22
+#: admin/forms/import_.py:20
msgid "Don't treat duplicated objects as error"
msgstr ""
-#: admin/forms/import_.py:40
+#: admin/forms/import_.py:38
msgid "Crypt passwords"
msgstr ""
-#: admin/forms/import_.py:42
+#: admin/forms/import_.py:40
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
-#: admin/handlers.py:218
+#: admin/handlers.py:210
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr ""
-#: admin/handlers.py:231 admin/models/mailbox.py:342
+#: admin/handlers.py:223 admin/models/mailbox.py:350
msgid "Mailbox {} already exists"
msgstr ""
-#: admin/handlers.py:239
+#: admin/handlers.py:231
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr ""
-#: admin/handlers.py:279
+#: admin/handlers.py:271
#: admin/templates/admin/_global_statistics_widget.html:17
#: admin/templates/admin/_per_domain_statistics_widget.html:8
#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr ""
-#: admin/handlers.py:295 admin/templates/admin/forward.html:2
+#: admin/handlers.py:287 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr ""
-#: admin/lib.py:44
+#: admin/lib.py:38
msgid "A mailbox is required"
msgstr ""
-#: admin/lib.py:134
+#: admin/lib.py:128
msgid "You are not allowed to import domains"
msgstr ""
-#: admin/lib.py:145
+#: admin/lib.py:139
msgid "You are not allowed to import domain aliases."
msgstr ""
-#: admin/lib.py:183 admin/tests/test_mx.py:122
+#: admin/lib.py:189 admin/tests/test_mx.py:152 admin/tests/test_mx.py:161
+#: admin/tests/test_mx.py:164
#, python-format
-msgid "No DNS records found for %s"
+msgid "No DNS record found for %s"
msgstr ""
-#: admin/lib.py:185 admin/tests/test_mx.py:125
+#: admin/lib.py:192
#, python-format
-msgid "No MX record for %s"
+msgid "No %(type)s record for %(name)s"
msgstr ""
-#: admin/lib.py:187 admin/tests/test_mx.py:126
+#: admin/lib.py:196 admin/tests/test_mx.py:156
msgid "No working name servers found"
msgstr ""
-#: admin/lib.py:190 admin/tests/test_mx.py:128
+#: admin/lib.py:199 admin/tests/test_mx.py:158
#, python-format
msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
-#: admin/lib.py:201 admin/tests/test_mx.py:131
+#: admin/lib.py:227
+#, python-brace-format
+msgid "Invalid IP address format for {domain}; {addr}"
+msgstr ""
+
+#: admin/management/commands/subcommands/_import.py:93
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_import.py:105
#, python-format
-msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/lib.py:212 admin/tests/test_mx.py:134
+#: admin/management/commands/subcommands/_import.py:116
#, python-format
-msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:136
-msgid "[modoboa] DNSBL issue(s) for domain {}"
+#: admin/management/commands/subcommands/_mx.py:116
+msgid "MX {} listed by DNSBL provider {}"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:164
+msgid "Domain has no MX record"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:168
msgid "Domain {} has no MX record"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:167
+#: admin/management/commands/subcommands/_mx.py:188
+msgid "Invalid MX record: {}"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:194
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:184
+#: admin/management/commands/subcommands/_mx.py:208
msgid "[modoboa] MX issue(s) for domain {}"
msgstr ""
-#: admin/models/alias.py:35 admin/models/mailbox.py:97
+#: admin/management/commands/subcommands/_mx.py:266
+msgid "[modoboa] DNSBL issue(s) for domain {}"
+msgstr ""
+
+#: admin/models/alias.py:32 admin/models/mailbox.py:95
msgid "address"
msgstr ""
-#: admin/models/alias.py:37
+#: admin/models/alias.py:34
msgid "The alias address."
msgstr ""
-#: admin/models/alias.py:42 admin/models/domain.py:48
-#: admin/models/domain_alias.py:47
+#: admin/models/alias.py:39 admin/models/domain.py:43
+#: admin/models/domain_alias.py:42
msgid "enabled"
msgstr ""
-#: admin/models/alias.py:43 admin/models/domain_alias.py:48
+#: admin/models/alias.py:40 admin/models/domain_alias.py:43
msgid "Check to activate this alias"
msgstr ""
-#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
+#: admin/models/alias.py:45 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr ""
-#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
+#: admin/models/alias.py:47 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr ""
-#: admin/models/alias.py:93
+#: admin/models/alias.py:87
msgid "alias"
msgstr ""
-#: admin/models/alias.py:125
+#: admin/models/alias.py:119
msgid "Invalid address"
msgstr ""
-#: admin/models/alias.py:146
+#: admin/models/alias.py:140
msgid "Local recipient {}@{} not found"
msgstr ""
-#: admin/models/alias.py:176
+#: admin/models/alias.py:170
#, python-format
msgid "Invalid line: %s"
msgstr ""
-#: admin/models/alias.py:182
+#: admin/models/alias.py:176
#, python-format
msgid "Domain '%s' does not exist"
msgstr ""
-#: admin/models/domain.py:30 admin/models/domain_alias.py:39
+#: admin/models/domain.py:26 admin/models/domain_alias.py:34
msgid "name"
msgstr ""
-#: admin/models/domain.py:31
+#: admin/models/domain.py:27
msgid "The domain name"
msgstr ""
-#: admin/models/domain.py:35
-msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
+#: admin/models/domain.py:39
+msgid "Number of messages this domain can send per day"
msgstr ""
-#: admin/models/domain.py:43
-msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
-msgstr ""
-
-#: admin/models/domain.py:49
+#: admin/models/domain.py:44
msgid "Check to activate this domain"
msgstr ""
-#: admin/models/domain.py:54
+#: admin/models/domain.py:49
msgid "Enable DNS checks"
msgstr ""
-#: admin/models/domain.py:55
+#: admin/models/domain.py:50
msgid "Check to enable DNS checks for this domain"
msgstr ""
-#: admin/models/domain.py:62
+#: admin/models/domain.py:57
msgid "Enable DKIM signing"
msgstr ""
-#: admin/models/domain.py:64
+#: admin/models/domain.py:59
msgid ""
"If you activate this feature, a DKIM key will be generated for this domain."
msgstr ""
-#: admin/models/domain.py:70
+#: admin/models/domain.py:65
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:285 admin/models/domain_alias.py:74
+#: admin/models/domain.py:323 admin/models/domain_alias.py:67
msgid "Invalid line"
msgstr ""
-#: admin/models/domain.py:295
+#: admin/models/domain.py:333
msgid "No authorized MX record found for domain {}"
msgstr ""
-#: admin/models/domain.py:302
+#: admin/models/domain.py:340
msgid "Invalid quota value for domain '{}'"
msgstr ""
-#: admin/models/domain.py:309
+#: admin/models/domain.py:347
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr ""
-#: admin/models/domain.py:314
+#: admin/models/domain.py:352
msgid "Default mailbox quota cannot be greater than domain quota"
msgstr ""
-#: admin/models/domain_alias.py:40
+#: admin/models/domain_alias.py:35
msgid "The alias name"
msgstr ""
-#: admin/models/domain_alias.py:42
+#: admin/models/domain_alias.py:37
msgid "target"
msgstr ""
-#: admin/models/domain_alias.py:43
+#: admin/models/domain_alias.py:38
msgid "The domain this alias points to"
msgstr ""
-#: admin/models/domain_alias.py:83
+#: admin/models/domain_alias.py:76
#, python-format
msgid "Unknown domain %s"
msgstr ""
-#: admin/models/mailbox.py:99
+#: admin/models/mailbox.py:97
msgid "Mailbox address (without the @domain.tld part)"
msgstr ""
-#: admin/models/mailbox.py:165
+#: admin/models/mailbox.py:166
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr ""
-#: admin/models/mailbox.py:258
+#: admin/models/mailbox.py:264
msgid "A quota is required"
msgstr ""
-#: admin/models/mailbox.py:264
+#: admin/models/mailbox.py:270
msgid "Domain quota exceeded"
msgstr ""
-#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
+#: admin/serializers.py:37
+msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgstr ""
+
+#: admin/serializers.py:115 admin/serializers.py:322 admin/serializers.py:424
msgid "Permission denied."
msgstr ""
-#: admin/serializers.py:118
+#: admin/serializers.py:168
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/serializers.py:218
+#: admin/serializers.py:272
msgid "Not allowed for this role."
msgstr ""
-#: admin/serializers.py:228
+#: admin/serializers.py:284
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/serializers.py:253
+#: admin/serializers.py:309
msgid "Local domain {} does not exist"
msgstr ""
-#: admin/serializers.py:347
+#: admin/serializers.py:411
msgid "A list of recipient"
msgstr ""
-#: admin/serializers.py:358
+#: admin/serializers.py:422
msgid "Domain not found."
msgstr ""
-#: admin/serializers.py:407
+#: admin/serializers.py:471
msgid "You don't have access to this domain."
msgstr ""
-#: admin/serializers.py:415
+#: admin/serializers.py:479
msgid "You don't have access to this mailbox."
msgstr ""
@@ -811,6 +925,17 @@ msgstr ""
msgid "Awaiting checks"
msgstr ""
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+msgid "No record found"
+msgstr ""
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
+msgstr ""
+
#: admin/templates/admin/_global_statistics_widget.html:4
msgid "Global statistics"
msgstr ""
@@ -821,7 +946,7 @@ msgstr ""
#: admin/templates/admin/_global_statistics_widget.html:14
#: admin/templates/admin/domain_detail.html:37
-#: admin/templates/admin/domain_detail.html:73
+#: admin/templates/admin/domain_detail.html:87
msgid "Domain aliases"
msgstr ""
@@ -868,27 +993,27 @@ msgstr ""
msgid "Phone number"
msgstr ""
-#: admin/templates/admin/account_detail.html:55
+#: admin/templates/admin/account_detail.html:61
msgid "Administered domains"
msgstr ""
-#: admin/templates/admin/account_detail.html:61
+#: admin/templates/admin/account_detail.html:67
msgid "No domain defined."
msgstr ""
-#: admin/templates/admin/account_detail.html:75
+#: admin/templates/admin/account_detail.html:81
msgid "Aliases"
msgstr ""
-#: admin/templates/admin/account_detail.html:81
+#: admin/templates/admin/account_detail.html:87
msgid "No alias defined"
msgstr ""
-#: admin/templates/admin/account_detail.html:87
+#: admin/templates/admin/account_detail.html:93
msgid "Additional sender addresses"
msgstr ""
-#: admin/templates/admin/account_detail.html:93
+#: admin/templates/admin/account_detail.html:99
msgid "No sender address defined"
msgstr ""
@@ -917,7 +1042,9 @@ msgid "Address"
msgstr ""
#: admin/templates/admin/dnsbl_domain_detail.html:12
-#: admin/templates/admin/domain_detail.html:96
+#: admin/templates/admin/domain_detail.html:114
+#: admin/templates/admin/domains_log_headers.html:6
+#: admin/templates/admin/messages_log_headers.html:6
msgid "Status"
msgstr ""
@@ -933,6 +1060,28 @@ msgstr ""
msgid "No information available for this domain."
msgstr ""
+#: admin/templates/admin/domain_alarms.html:19
+msgid "Opened alarms for"
+msgstr ""
+
+#: admin/templates/admin/domain_alarms.html:25
+#: admin/templates/admin/domains_log_headers.html:3
+#: admin/templates/admin/messages_log_headers.html:3
+msgid "Date"
+msgstr ""
+
+#: admin/templates/admin/domain_alarms.html:26
+msgid "Message"
+msgstr ""
+
+#: admin/templates/admin/domain_alarms.html:27
+msgid "Mailbox"
+msgstr ""
+
+#: admin/templates/admin/domain_alarms.html:40
+msgid "No opened alarm"
+msgstr ""
+
#: admin/templates/admin/domain_detail.html:29
msgid "Creation date"
msgstr ""
@@ -949,16 +1098,14 @@ msgstr ""
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domain_detail.html:65
-#: admin/templates/admin/domain_general_form.html:4
-#: admin/templates/admin/domain_general_form.html:5
#: admin/templates/admin/domains_quotas.html:11
#: admin/templates/admin/domains_quotas.html:12
-#: admin/templates/admin/mailform.html:7
#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr ""
#: admin/templates/admin/domain_detail.html:54
+#: admin/templates/admin/domain_detail.html:73
msgid "Usage"
msgstr ""
@@ -973,32 +1120,45 @@ msgstr ""
msgid "allocated"
msgstr ""
-#: admin/templates/admin/domain_detail.html:91
+#: admin/templates/admin/domain_detail.html:70
+msgid "per day"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:76
+msgctxt "message count"
+msgid "used"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:106
msgid "DNS"
msgstr ""
-#: admin/templates/admin/domain_detail.html:103
+#: admin/templates/admin/domain_detail.html:121
msgid "DKIM key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:107
+#: admin/templates/admin/domain_detail.html:125
msgid "Show key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:110
-msgid "Not generated"
-msgstr ""
-
-#: admin/templates/admin/domain_detail.html:117
-msgid "Administrators"
+#: admin/templates/admin/domain_detail.html:127
+msgid "Generate new key"
msgstr ""
#: admin/templates/admin/domain_detail.html:129
-#: admin/templatetags/admin_tags.py:268
+msgid "Not generated"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:136
+msgid "Administrators"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:148
+#: admin/templatetags/admin_tags.py:279
msgid "Remove this permission"
msgstr ""
-#: admin/templates/admin/domain_detail.html:134
+#: admin/templates/admin/domain_detail.html:153
msgid "No domain administrator defined yet."
msgstr ""
@@ -1025,6 +1185,20 @@ msgstr ""
msgid "Add"
msgstr ""
+#: admin/templates/admin/domains_log_headers.html:2
+msgid "Queue ID"
+msgstr ""
+
+#: admin/templates/admin/domains_log_headers.html:4
+#: admin/templates/admin/messages_log_headers.html:4
+msgid "From"
+msgstr ""
+
+#: admin/templates/admin/domains_log_headers.html:5
+#: admin/templates/admin/messages_log_headers.html:5
+msgid "To"
+msgstr ""
+
#: admin/templates/admin/domains_quota_headers.html:3
#: admin/templates/admin/identities_quota_headers.html:4
msgid "Limit"
@@ -1052,7 +1226,7 @@ msgstr ""
msgid "Automatically forward emails to another address"
msgstr ""
-#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:87
msgid "Update"
msgstr ""
@@ -1109,6 +1283,10 @@ msgstr ""
msgid "Use domain default value"
msgstr ""
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr ""
+
#: admin/templates/admin/mx_domain_detail.html:11
msgid "Updated"
msgstr ""
@@ -1144,132 +1322,150 @@ msgstr ""
msgid "Search"
msgstr ""
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_m"
msgstr ""
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_f"
msgstr ""
-#: admin/templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:47
msgid "List domains"
msgstr ""
-#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:52 admin/templatetags/admin_tags.py:112
msgid "List quotas"
msgstr ""
-#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
-#: admin/views/import_.py:89 admin/views/import_.py:111
+#: admin/templatetags/admin_tags.py:57
+msgid "Message logs"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:69 admin/templatetags/admin_tags.py:117
+#: admin/views/import_.py:85 admin/views/import_.py:107
msgid "Import"
msgstr ""
-#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
-#: admin/views/export.py:43 admin/views/export.py:71
+#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:123
+#: admin/views/export.py:39 admin/views/export.py:67
msgid "Export"
msgstr ""
-#: admin/templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:107
msgid "List identities"
msgstr ""
-#: admin/templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:142
msgid "View the domain's identities"
msgstr ""
-#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
-#: admin/templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:149
+msgid "View domain's alarms"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:198
+#: admin/templatetags/admin_tags.py:211
msgid "Edit {}"
msgstr ""
-#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
-#: admin/templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:165 admin/templatetags/admin_tags.py:202
+#: admin/templatetags/admin_tags.py:216
#, python-format
msgid "Delete %s?"
msgstr ""
-#: admin/views/alias.py:35
+#: admin/tests/test_mx.py:155
+#, python-format
+msgid "No MX record for %s"
+msgstr ""
+
+#: admin/tests/test_mx.py:167 admin/tests/test_mx.py:170
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/views/alias.py:29
msgid "Alias with this name already exists"
msgstr ""
-#: admin/views/alias.py:60
+#: admin/views/alias.py:54
msgid "Create"
msgstr ""
-#: admin/views/alias.py:72
+#: admin/views/alias.py:66
msgid "New alias"
msgstr ""
-#: admin/views/alias.py:73
+#: admin/views/alias.py:67
msgid "Alias created"
msgstr ""
-#: admin/views/alias.py:85
+#: admin/views/alias.py:79
msgid "Alias modified"
msgstr ""
-#: admin/views/alias.py:109
+#: admin/views/alias.py:103
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/dns.py:32
+#: admin/views/dns.py:28
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:55
+#: admin/views/dns.py:51
msgid "DNSBL summary for {}"
msgstr ""
-#: admin/views/domain.py:188
+#: admin/views/domain.py:244
msgid "You can't delete your own domain"
msgstr ""
-#: admin/views/domain.py:191
+#: admin/views/domain.py:247
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/export.py:42
+#: admin/views/export.py:38
msgid "Export identities"
msgstr ""
-#: admin/views/export.py:70
+#: admin/views/export.py:66
msgid "Export domains"
msgstr ""
-#: admin/views/identity.py:113 admin/views/identity.py:206
-#: admin/views/identity.py:211
+#: admin/views/identity.py:107 admin/views/identity.py:201
+#: admin/views/identity.py:206
msgid "Invalid request"
msgstr ""
-#: admin/views/identity.py:196
+#: admin/views/identity.py:191
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] ""
msgstr[1] ""
-#: admin/views/import_.py:65
+#: admin/views/import_.py:61
#, python-format
msgid "Object already exists: %s"
msgstr ""
-#: admin/views/import_.py:69
+#: admin/views/import_.py:65
#, python-format
msgid "%d objects imported successfully"
msgstr ""
-#: admin/views/import_.py:88
+#: admin/views/import_.py:84
msgid "Import domains"
msgstr ""
-#: admin/views/import_.py:110
+#: admin/views/import_.py:106
msgid "Import identities"
msgstr ""
-#: admin/views/user.py:40
+#: admin/views/user.py:36
msgid "Forward updated"
msgstr ""
diff --git a/modoboa/admin/locale/en/LC_MESSAGES/djangojs.po b/modoboa/admin/locale/en/LC_MESSAGES/djangojs.po
index 60b6d3764..9de0501d4 100644
--- a/modoboa/admin/locale/en/LC_MESSAGES/djangojs.po
+++ b/modoboa/admin/locale/en/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-04 22:08+0100\n"
+"POT-Creation-Date: 2020-03-09 16:48+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -17,36 +17,36 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: admin/static/admin/js/admin.js:131
+#: admin/static/admin/js/admin.js:129 admin/static/admin/js/admin.js:174
msgid "No more domain to show"
msgstr ""
-#: admin/static/admin/js/admin.js:150
+#: admin/static/admin/js/admin.js:149
msgid "Do not delete domain directory"
msgstr ""
-#: admin/static/admin/js/admin.js:152
+#: admin/static/admin/js/admin.js:151
msgid "This operation will remove ALL data associated to this domain."
msgstr ""
-#: admin/static/admin/js/admin.js:153
+#: admin/static/admin/js/admin.js:152
msgid ""
"This operation will remove all data associated to this domain, excepting "
"accounts."
msgstr ""
-#: admin/static/admin/js/admin.js:236
+#: admin/static/admin/js/admin.js:177 admin/static/admin/js/admin.js:433
+msgid "No more quota to show"
+msgstr ""
+
+#: admin/static/admin/js/admin.js:306
msgid "No domain administrator defined"
msgstr ""
-#: admin/static/admin/js/admin.js:291 admin/static/admin/js/admin.js:359
+#: admin/static/admin/js/admin.js:362 admin/static/admin/js/admin.js:430
msgid "No more identity to show"
msgstr ""
-#: admin/static/admin/js/admin.js:333
+#: admin/static/admin/js/admin.js:404
msgid "Do not delete mailbox directory"
msgstr ""
-
-#: admin/static/admin/js/admin.js:362
-msgid "No more quota to show"
-msgstr ""
diff --git a/modoboa/admin/locale/es/LC_MESSAGES/django.po b/modoboa/admin/locale/es/LC_MESSAGES/django.po
index 2451d6b11..deab27a3f 100644
--- a/modoboa/admin/locale/es/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/es/LC_MESSAGES/django.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
"PO-Revision-Date: 2017-06-28 00:48+0000\n"
"Last-Translator: Evilham \n"
"Language-Team: Spanish (http://www.transifex.com/tonio/modoboa/language/"
@@ -20,25 +20,29 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/api.py:142
+msgid "Here is your new Modoboa password: {}"
+msgstr ""
+
+#: admin/app_settings.py:20 admin/handlers.py:261
#: admin/templates/admin/_global_statistics_widget.html:11
#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Dominios"
-#: admin/app_settings.py:25
+#: admin/app_settings.py:23
msgid "Enable MX checks"
msgstr "Habilitar comprobación MX"
-#: admin/app_settings.py:28
+#: admin/app_settings.py:26
msgid "Check that every domain has a valid MX record"
msgstr "Compruebe que cada dominio tenga un registro MX válido"
-#: admin/app_settings.py:33
+#: admin/app_settings.py:31
msgid "Valid MXs"
msgstr "MX Validos"
-#: admin/app_settings.py:36
+#: admin/app_settings.py:34
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
@@ -46,52 +50,108 @@ msgstr ""
"Una lista de IP o dirección de red, cada registro MX debe coincidir. Se "
"enviará una advertencia si un registro no la respeta."
-#: admin/app_settings.py:44
+#: admin/app_settings.py:42
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:47
+#: admin/app_settings.py:45
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
msgstr ""
-#: admin/app_settings.py:53
+#: admin/app_settings.py:51
+#, fuzzy
+#| msgid "Enable DNS checks"
+msgid "Enable SPF checks"
+msgstr "Activar comprobación de DNS"
+
+#: admin/app_settings.py:54
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid SPF record"
+msgstr "Compruebe que cada dominio tenga un registro MX válido"
+
+#: admin/app_settings.py:59
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DKIM checks"
+msgstr "Habilitar comprobación MX"
+
+#: admin/app_settings.py:62
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr "Compruebe que cada dominio tenga un registro MX válido"
+
+#: admin/app_settings.py:68
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DMARC checks"
+msgstr "Habilitar comprobación MX"
+
+#: admin/app_settings.py:71
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid DMARC record"
+msgstr "Compruebe que cada dominio tenga un registro MX válido"
+
+#: admin/app_settings.py:76
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable autoconfig checks"
+msgstr "Habilitar comprobación MX"
+
+#: admin/app_settings.py:79
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr "Compruebe que cada dominio tenga un registro MX válido"
+
+#: admin/app_settings.py:84
msgid "Enable DNSBL checks"
msgstr "Habilitar comprobación DNSBL"
-#: admin/app_settings.py:56
+#: admin/app_settings.py:87
msgid "Check every domain against major DNSBL providers"
msgstr "Compruebe cada dominio con los principales proveedores de DNSBL"
-#: admin/app_settings.py:61
+#: admin/app_settings.py:92
+msgid "Custom DNS server"
+msgstr ""
+
+#: admin/app_settings.py:95
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr ""
+
+#: admin/app_settings.py:100
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:64
+#: admin/app_settings.py:103
msgid ""
"Absolute path of the directory where DKIM private keys will be stored. Make "
"sure this directory belongs to root user and is not readable by the outside "
"world."
msgstr ""
-#: admin/app_settings.py:72
+#: admin/app_settings.py:111
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:76
+#: admin/app_settings.py:115
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
+#: admin/app_settings.py:119 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Mailboxes"
-#: admin/app_settings.py:83
+#: admin/app_settings.py:122
msgid "Handle mailboxes on filesystem"
msgstr "Manejar mailboxes en el sistema de fichero"
-#: admin/app_settings.py:86
+#: admin/app_settings.py:125
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -99,19 +159,19 @@ msgstr ""
"Renombrar o eliminar mailboxes en el sistema de ficheros cuando sean "
"renombrados o eliminados dentro de Modoboa"
-#: admin/app_settings.py:92
+#: admin/app_settings.py:131
msgid "Mailboxes owner"
msgstr "Propietario de los mailboxes"
-#: admin/app_settings.py:95
+#: admin/app_settings.py:134
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "Cuenta de UNIX que posee los mailboxes en el sistema de ficheros"
-#: admin/app_settings.py:100
+#: admin/app_settings.py:139
msgid "Default domain quota"
msgstr "Cuota del dominio por defecto"
-#: admin/app_settings.py:103
+#: admin/app_settings.py:142
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -119,83 +179,87 @@ msgstr ""
"Cuota por defecto (en MB) que se aplica a la creación de nuevos dominios que "
"no tuvieran un valor especificado. Un valor de 0 significa que no hay cuota."
-#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/app_settings.py:148 admin/forms/domain.py:49 admin/models/domain.py:33
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr "Cuota de mailbox por defecto"
-#: admin/app_settings.py:112
+#: admin/app_settings.py:151
+#, fuzzy
+#| msgid ""
+#| "Default mailbox quota (in MB) applied to freshly created domains with no "
+#| "value specified. A value of 0 means no quota."
msgid ""
-"Default mailbox quota (in MB) applied to freshly created domains with no "
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
"value specified. A value of 0 means no quota."
msgstr ""
"La cuota de mailbox por defecto (en MB) se aplica a los dominios nuevos que "
"no especifican este valor. Un valor de 0 significa ningún limite."
-#: admin/app_settings.py:118
+#: admin/app_settings.py:157
msgid "Automatic account removal"
msgstr "Elminar cuentas automáticamente"
-#: admin/app_settings.py:121
+#: admin/app_settings.py:160
msgid "When a mailbox is removed, also remove the associated account"
msgstr "Cuando un mailbox es eliminado, también lo es su cuenta asociada."
-#: admin/app_settings.py:125
+#: admin/app_settings.py:164
msgid "Automatic domain/mailbox creation"
msgstr "Creación automática de dominio/buzón"
-#: admin/app_settings.py:128
+#: admin/app_settings.py:167
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr "Crear un dominio y un buzón cuando se cree automáticamente una cuenta."
-#: admin/app_settings.py:134
+#: admin/app_settings.py:173
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:137
+#: admin/app_settings.py:176
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
-#: admin/app_settings.py:186 admin/app_settings.py:194
-#: admin/forms/account.py:331
+#: admin/app_settings.py:225 admin/app_settings.py:233
+#: admin/forms/account.py:335
msgid "Must be a positive integer"
msgstr "Debe ser un entero positivo"
-#: admin/app_settings.py:204
+#: admin/app_settings.py:243
#, fuzzy
#| msgid "Domain not found."
msgid "Directory not found."
msgstr "Dominio no encontrado."
-#: admin/app_settings.py:210
+#: admin/app_settings.py:249
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/app_settings.py:224
+#: admin/app_settings.py:263
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/app_settings.py:234
+#: admin/app_settings.py:273
msgid "Administration"
msgstr "Administración"
-#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/constants.py:28 admin/forms/alias.py:43
#: admin/templates/admin/_per_domain_statistics_widget.html:7
#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Dominio"
-#: admin/constants.py:100
+#: admin/constants.py:29
#, fuzzy
#| msgid "New domain"
msgid "Relay domain"
msgstr "Nuevo dominio"
-#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
+#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:125
msgid "Username"
msgstr "Nombre de usuario"
-#: admin/forms/account.py:40
+#: admin/forms/account.py:34
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
@@ -203,88 +267,94 @@ msgstr ""
"El nombre del usuario. Debe ser una dirección de 'e-mail' válida para "
"usuarios simples o administradores con un buzón."
-#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
+#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Rol"
-#: admin/forms/account.py:46
+#: admin/forms/account.py:40
msgid "Choose"
msgstr "Elija"
-#: admin/forms/account.py:47
+#: admin/forms/account.py:41
msgid "What level of permission this user will have"
msgstr "Qué nivel de permiso tendrá este usuario"
-#: admin/forms/account.py:50 admin/forms/domain.py:227
+#: admin/forms/account.py:44 admin/forms/domain.py:245
#, fuzzy
#| msgid "Random address"
msgid "Random password"
msgstr "Dirección aleatoria"
-#: admin/forms/account.py:52
+#: admin/forms/account.py:46
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
msgstr ""
-#: admin/forms/account.py:58
+#: admin/forms/account.py:52
msgid "Password"
msgstr "Contraseña"
-#: admin/forms/account.py:63
+#: admin/forms/account.py:57
msgid "Confirmation"
msgstr "Confirmación"
-#: admin/forms/account.py:66
+#: admin/forms/account.py:60
msgid "Enter the same password as above, for verification."
msgstr "Introduzca la misma contraseña que arriba, para verificación."
-#: admin/forms/account.py:78
+#: admin/forms/account.py:72
msgid "Enabled"
msgstr "Activado"
-#: admin/forms/account.py:172
+#: admin/forms/account.py:167
msgid "Only super administrators are allowed for this mode"
msgstr "Sólo se permiten superadministradores para este modo"
-#: admin/forms/account.py:183 admin/forms/account.py:185
-#: admin/forms/domain.py:144 admin/forms/domain.py:273
-#: admin/forms/domain.py:276 admin/serializers.py:241
+#: admin/forms/account.py:178 admin/forms/account.py:180
+#: admin/forms/domain.py:162 admin/forms/domain.py:291
+#: admin/forms/domain.py:294 admin/serializers.py:287
msgid "This field is required."
msgstr "Este campo es obligatorio."
-#: admin/forms/account.py:191
+#: admin/forms/account.py:186
msgid "The two password fields didn't match."
msgstr "Las contraseñas no concuerdan"
-#: admin/forms/account.py:204
+#: admin/forms/account.py:199
msgid "You can't disable your own account"
msgstr "No puede deshabilitar su propia cuenta"
-#: admin/forms/account.py:225
+#: admin/forms/account.py:222
msgid "E-mail"
msgstr "Email"
-#: admin/forms/account.py:227
+#: admin/forms/account.py:224
msgid "Create an alias using the old address"
msgstr ""
-#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/forms/account.py:229 admin/forms/domain.py:41
+#: admin/templates/admin/account_detail.html:45
#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Cuota"
-#: admin/forms/account.py:234
+#: admin/forms/account.py:232
+#, fuzzy
+#| msgid ""
+#| "Quota in MB for this mailbox. Define a custom value or use domain's "
+#| "default one. Leave empty to define an unlimited value (not allowed for "
+#| "domain administrators)."
msgid ""
-"Quota in MB for this mailbox. Define a custom value or use domain's default "
-"one. Leave empty to define an unlimited value (not allowed for domain "
-"administrators)."
+"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a "
+"custom value or use domain's default one. Leave empty to define an unlimited "
+"value (not allowed for domain administrators)."
msgstr ""
"Cuota en MB para este mailbox. Defina un valor por defecto o use el del "
"dominio por defecto. Déjelo vacío para definir un valor ilimitado (no "
"permitido para los administradores del dominio)"
-#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/forms/account.py:242 admin/forms/domain.py:31
#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias"
@@ -314,66 +384,66 @@ msgstr ""
"exista localmente. Indique una dirección por entrada. Presione ENTER para "
"agregar una nueva entrada."
-#: admin/forms/account.py:309 admin/forms/alias.py:94
-#: admin/models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:88
+#: admin/models/mailbox.py:310
msgid "Domain does not exist"
msgstr "El dominio no existe"
-#: admin/forms/account.py:341
+#: admin/forms/account.py:345
msgid "Local domain does not exist"
msgstr "El dominio no existe"
-#: admin/forms/account.py:345 admin/forms/account.py:353
-#: admin/forms/alias.py:97
+#: admin/forms/account.py:349 admin/forms/account.py:357
+#: admin/forms/alias.py:91
msgid "You don't have access to this domain"
msgstr "No tienes acceso a este dominio"
-#: admin/forms/account.py:452
+#: admin/forms/account.py:456
msgid "Domain(s)"
msgstr "Dominio(s)"
-#: admin/forms/account.py:454
+#: admin/forms/account.py:458
msgid "Domain(s) that user administrates"
msgstr "Dominio(s) que el usuario administra"
-#: admin/forms/account.py:500 admin/forms/account.py:590
-#: admin/forms/domain.py:344 admin/forms/domain.py:414
+#: admin/forms/account.py:505 admin/forms/account.py:595
+#: admin/forms/domain.py:362 admin/forms/domain.py:433
msgid "General"
msgstr "General"
-#: admin/forms/account.py:504
+#: admin/forms/account.py:509
msgid "Profile"
msgstr ""
-#: admin/forms/account.py:508 admin/forms/account.py:596
+#: admin/forms/account.py:513 admin/forms/account.py:601
msgid "Mail"
msgstr "Correo"
-#: admin/forms/account.py:511
+#: admin/forms/account.py:516
msgid "Permissions"
msgstr "Permisos"
-#: admin/forms/account.py:579
+#: admin/forms/account.py:584
msgid "Account updated"
msgstr "Cuenta actualizada"
-#: admin/forms/account.py:604
+#: admin/forms/account.py:609
msgid "New account"
msgstr "Nueva cuenta"
-#: admin/forms/account.py:614
+#: admin/forms/account.py:619
msgid "Account created"
msgstr "Cuenta creada"
-#: admin/forms/alias.py:26
+#: admin/forms/alias.py:20
msgid "Random address"
msgstr "Dirección aleatoria"
-#: admin/forms/alias.py:29
+#: admin/forms/alias.py:23
msgid "Email address"
msgstr "Dirección de email"
-#: admin/forms/alias.py:31
+#: admin/forms/alias.py:25
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
@@ -381,11 +451,11 @@ msgstr ""
"La dirección del alias. Para crear un alias catchall, simplemente ingrese el "
"nombre de dominio (@ domain.tld)."
-#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Destinatarios"
-#: admin/forms/alias.py:39
+#: admin/forms/alias.py:33
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
@@ -393,20 +463,20 @@ msgstr ""
"Las direcciones a las que apunta este alias. Indique sólo una dirección por "
"entrada, presione ENTER para agregar una nueva entrada."
-#: admin/forms/alias.py:114 admin/forms/alias.py:116
+#: admin/forms/alias.py:108 admin/forms/alias.py:110
msgid "This field is required"
msgstr "Este campo es obligatorio"
-#: admin/forms/alias.py:120
+#: admin/forms/alias.py:114
msgid "No recipient defined"
msgstr "No ha puesto destinatario"
-#: admin/forms/domain.py:36
+#: admin/forms/domain.py:28
#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Tipo"
-#: admin/forms/domain.py:42
+#: admin/forms/domain.py:34
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
@@ -414,57 +484,77 @@ msgstr ""
"Alia(s) de este dominio. Indique únicamente un nombre por entrada, presione "
"ENTER para añadir una nueva entrada."
-#: admin/forms/domain.py:47
+#: admin/forms/domain.py:39
msgid "Key selector"
msgstr ""
-#: admin/forms/domain.py:85 admin/handlers.py:171
+#: admin/forms/domain.py:44 admin/serializers.py:30
+#, fuzzy
+#| msgid ""
+#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgid ""
+"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
+"A value of 0 means no quota."
+msgstr ""
+"Cuota de mailbox predeterminda en MB. Un valor de 0 significa ningún limite."
+
+#: admin/forms/domain.py:52
+#, fuzzy
+#| msgid ""
+#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgid ""
+"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
+"GB. A value of 0 means no quota."
+msgstr ""
+"Cuota de mailbox predeterminda en MB. Un valor de 0 significa ningún limite."
+
+#: admin/forms/domain.py:94 admin/handlers.py:161
msgid "domain alias"
msgstr "alias del dominio"
-#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
+#: admin/forms/domain.py:97 admin/forms/domain.py:173 admin/forms/domain.py:181
#, python-format
msgid "A %s with this name already exists"
msgstr "Ya existe un %s con ese nombre"
-#: admin/forms/domain.py:96 admin/serializers.py:45
+#: admin/forms/domain.py:105 admin/serializers.py:64
#, fuzzy
#| msgid "No MX record found for this domain."
msgid "No authorized MX record found for this domain"
msgstr "No se encontró ningún registro MX para este dominio."
-#: admin/forms/domain.py:108
+#: admin/forms/domain.py:117
msgid "DKIM keys storage directory not configured"
msgstr ""
-#: admin/forms/domain.py:129 admin/serializers.py:55
+#: admin/forms/domain.py:147 admin/serializers.py:82
msgid "Cannot be greater than domain quota"
msgstr "No puede superar la cuota de dominio"
-#: admin/forms/domain.py:134
+#: admin/forms/domain.py:152
msgid "You can't define an unlimited quota."
msgstr "No puede definir una cuota ilimitada."
-#: admin/forms/domain.py:155 admin/forms/domain.py:160
+#: admin/forms/domain.py:173 admin/forms/domain.py:178
msgid "domain"
msgstr "dominio"
-#: admin/forms/domain.py:209
+#: admin/forms/domain.py:227
msgid "Create a domain administrator"
msgstr "Crear un administrador del dominio"
-#: admin/forms/domain.py:212
+#: admin/forms/domain.py:230
msgid "Automatically create an administrator for this domain"
msgstr "Automáticamente crear una administrador para este dominio"
-#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/forms/domain.py:235 admin/templates/admin/domain_detail.html:125
#: admin/templates/admin/domain_headers.html:3
#: admin/templates/admin/identity_headers.html:2
#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Nombre"
-#: admin/forms/domain.py:220
+#: admin/forms/domain.py:238
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
@@ -472,369 +562,370 @@ msgstr ""
"El nombre del administrador. No incluya el nombre del dominio aquí, será "
"añadido automáticamente."
-#: admin/forms/domain.py:230
+#: admin/forms/domain.py:248
#, fuzzy
#| msgid "Create a mailbox for the administrator."
msgid "Generate a random password for the administrator."
msgstr "Crear mailbox para el administrador."
-#: admin/forms/domain.py:236
+#: admin/forms/domain.py:254
msgid "With a mailbox"
msgstr "Con una mailbox"
-#: admin/forms/domain.py:239
+#: admin/forms/domain.py:257
msgid "Create a mailbox for the administrator."
msgstr "Crear mailbox para el administrador."
-#: admin/forms/domain.py:245
+#: admin/forms/domain.py:263
msgid "Create aliases"
msgstr "Crear alias"
-#: admin/forms/domain.py:248
+#: admin/forms/domain.py:266
msgid "Automatically create standard aliases for this domain"
msgstr "Automáticamente crear alias estándar para este dominio"
-#: admin/forms/domain.py:264
+#: admin/forms/domain.py:282
msgid "Invalid format"
msgstr "Formato inválido"
-#: admin/forms/domain.py:293
+#: admin/forms/domain.py:311
#, python-format
msgid "User '%s' already exists"
msgstr "El usuario '%s' ya existe"
-#: admin/forms/domain.py:404
+#: admin/forms/domain.py:423
msgid "Domain modified"
msgstr "Dominio modificado"
-#: admin/forms/domain.py:425
+#: admin/forms/domain.py:444
msgid "Options"
msgstr "Opciones"
-#: admin/forms/domain.py:433
+#: admin/forms/domain.py:452
msgid "New domain"
msgstr "Nuevo dominio"
-#: admin/forms/domain.py:446
+#: admin/forms/domain.py:465
msgid "Domain created"
msgstr "Dominio creado"
-#: admin/forms/export.py:9
-msgid "File name"
-msgstr "Nombre del fichero"
-
-#: admin/forms/export.py:15 admin/forms/import_.py:15
+#: admin/forms/export.py:9 admin/forms/import_.py:13
msgid "Separator"
msgstr "Separador"
-#: admin/forms/forward.py:14
+#: admin/forms/forward.py:12
msgid "Recipient(s)"
msgstr "Destinatario(s)"
-#: admin/forms/forward.py:18
+#: admin/forms/forward.py:16
msgid "Indicate one or more recipients separated by a ','"
msgstr "Indique uno o más destinatarios separados por una ','"
-#: admin/forms/forward.py:21
+#: admin/forms/forward.py:19
msgid "Keep local copies"
msgstr "Mantener copias locales"
-#: admin/forms/forward.py:24
+#: admin/forms/forward.py:22
msgid "Forward messages and store copies into your local mailbox"
msgstr "Reenvía mensajes y guarda copias en su mailbox local"
-#: admin/forms/import_.py:13
+#: admin/forms/import_.py:11
msgid "Select a file"
msgstr "Seleccione un fichero"
-#: admin/forms/import_.py:21
+#: admin/forms/import_.py:19
msgid "Continue on error"
msgstr "Continúe en error."
-#: admin/forms/import_.py:22
+#: admin/forms/import_.py:20
msgid "Don't treat duplicated objects as error"
msgstr "No tratar objetos duplicados como error"
-#: admin/forms/import_.py:40
+#: admin/forms/import_.py:38
msgid "Crypt passwords"
msgstr "Contraseñas cifradas"
-#: admin/forms/import_.py:42
+#: admin/forms/import_.py:40
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
"Marque esta opción si las contraseñas que contiene su fichero no están "
"cifradas"
-#: admin/handlers.py:218
+#: admin/handlers.py:210
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Falló la importación de la cuenta (%s): el dominio no existe"
-#: admin/handlers.py:231 admin/models/mailbox.py:342
+#: admin/handlers.py:223 admin/models/mailbox.py:338
msgid "Mailbox {} already exists"
msgstr "El buzón {} ya existe"
-#: admin/handlers.py:239
+#: admin/handlers.py:231
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Error en la importación de la cuenta (%s): valor de cuota incorrecto"
-#: admin/handlers.py:279
+#: admin/handlers.py:271
#: admin/templates/admin/_global_statistics_widget.html:17
#: admin/templates/admin/_per_domain_statistics_widget.html:8
#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Identidades"
-#: admin/handlers.py:295 admin/templates/admin/forward.html:2
+#: admin/handlers.py:287 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Siguiente"
-#: admin/lib.py:44
+#: admin/lib.py:38
msgid "A mailbox is required"
msgstr "Es obligatorio un buzón"
-#: admin/lib.py:134
+#: admin/lib.py:128
msgid "You are not allowed to import domains"
msgstr "No está autorizado para importar dominios"
-#: admin/lib.py:145
+#: admin/lib.py:139
msgid "You are not allowed to import domain aliases."
msgstr "No está autorizado para importar alias de dominio."
-#: admin/lib.py:183 admin/tests/test_mx.py:122
+#: admin/lib.py:189 admin/tests/test_mx.py:127 admin/tests/test_mx.py:136
+#: admin/tests/test_mx.py:139
#, fuzzy, python-format
#| msgid "No MX record found for this domain."
-msgid "No DNS records found for %s"
+msgid "No DNS record found for %s"
msgstr "No se encontró ningún registro MX para este dominio."
-#: admin/lib.py:185 admin/tests/test_mx.py:125
+#: admin/lib.py:192
#, fuzzy, python-format
#| msgid "MX records of {}"
-msgid "No MX record for %s"
+msgid "No %(type)s record for %(name)s"
msgstr "Registros MX de {}"
-#: admin/lib.py:187 admin/tests/test_mx.py:126
+#: admin/lib.py:196 admin/tests/test_mx.py:131
msgid "No working name servers found"
msgstr ""
-#: admin/lib.py:190 admin/tests/test_mx.py:128
+#: admin/lib.py:199 admin/tests/test_mx.py:133
#, python-format
msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
-#: admin/lib.py:201 admin/tests/test_mx.py:131
-#, python-format
-msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+#: admin/lib.py:227
+#, fuzzy, python-brace-format
+#| msgid "Invalid quota value for domain '{}'"
+msgid "Invalid IP address format for {domain}; {addr}"
+msgstr "Cuota inválida para dominio '{}'"
+
+#: admin/management/commands/subcommands/_import.py:93
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/lib.py:212 admin/tests/test_mx.py:134
+#: admin/management/commands/subcommands/_import.py:105
#, python-format
-msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:136
+#: admin/management/commands/subcommands/_import.py:116
+#, python-format
+msgid "Unable to decode CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:132
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr "[modoboa] DNSBL problema(s) para el dominio {}"
-#: admin/management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:152
msgid "Domain {} has no MX record"
msgstr "El dominio {} no tiene registro MX"
-#: admin/management/commands/subcommands/_mx.py:167
+#: admin/management/commands/subcommands/_mx.py:163
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr "El registro MX para el dominio {0} no es válido: {1}"
-#: admin/management/commands/subcommands/_mx.py:184
+#: admin/management/commands/subcommands/_mx.py:180
msgid "[modoboa] MX issue(s) for domain {}"
msgstr "[modoboa] MX problema(s) para el dominio {}"
-#: admin/models/alias.py:35 admin/models/mailbox.py:97
+#: admin/models/alias.py:32 admin/models/mailbox.py:95
msgid "address"
msgstr "dirección"
-#: admin/models/alias.py:37
+#: admin/models/alias.py:34
msgid "The alias address."
msgstr "La dirección del alias."
-#: admin/models/alias.py:42 admin/models/domain.py:48
-#: admin/models/domain_alias.py:47
+#: admin/models/alias.py:39 admin/models/domain.py:37
+#: admin/models/domain_alias.py:42
msgid "enabled"
msgstr "activado"
-#: admin/models/alias.py:43 admin/models/domain_alias.py:48
+#: admin/models/alias.py:40 admin/models/domain_alias.py:43
msgid "Check to activate this alias"
msgstr "Marcar para activar este alias"
-#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
+#: admin/models/alias.py:45 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr "Descripción"
-#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
+#: admin/models/alias.py:47 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr "Caduca en"
-#: admin/models/alias.py:93
+#: admin/models/alias.py:87
msgid "alias"
msgstr "alias"
-#: admin/models/alias.py:125
+#: admin/models/alias.py:119
msgid "Invalid address"
msgstr "Dirección inválida"
-#: admin/models/alias.py:146
+#: admin/models/alias.py:140
msgid "Local recipient {}@{} not found"
msgstr "Receptor local {}@{} no encontrado"
-#: admin/models/alias.py:176
+#: admin/models/alias.py:170
#, python-format
msgid "Invalid line: %s"
msgstr "Línea inválida: %s"
-#: admin/models/alias.py:182
+#: admin/models/alias.py:176
#, python-format
msgid "Domain '%s' does not exist"
msgstr "El dominio '%s' no existe"
-#: admin/models/domain.py:30 admin/models/domain_alias.py:39
+#: admin/models/domain.py:27 admin/models/domain_alias.py:34
msgid "name"
msgstr "nombre"
-#: admin/models/domain.py:31
+#: admin/models/domain.py:28
msgid "The domain name"
msgstr "Nombre del dominio"
-#: admin/models/domain.py:35
-msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
-msgstr ""
-"La cuota compartida entre las mailboxes en MB. Un valor de 0 significa "
-"ningún limite."
-
-#: admin/models/domain.py:43
-msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
-msgstr ""
-"Cuota de mailbox predeterminda en MB. Un valor de 0 significa ningún limite."
-
-#: admin/models/domain.py:49
+#: admin/models/domain.py:38
msgid "Check to activate this domain"
msgstr "Marcar para activar este dominio"
-#: admin/models/domain.py:54
+#: admin/models/domain.py:43
msgid "Enable DNS checks"
msgstr "Activar comprobación de DNS"
-#: admin/models/domain.py:55
+#: admin/models/domain.py:44
msgid "Check to enable DNS checks for this domain"
msgstr "Seleccionar para activar la comprobación de DNS para este dominio"
-#: admin/models/domain.py:62
+#: admin/models/domain.py:51
msgid "Enable DKIM signing"
msgstr ""
-#: admin/models/domain.py:64
+#: admin/models/domain.py:53
msgid ""
"If you activate this feature, a DKIM key will be generated for this domain."
msgstr ""
-#: admin/models/domain.py:70
+#: admin/models/domain.py:59
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:285 admin/models/domain_alias.py:74
+#: admin/models/domain.py:312 admin/models/domain_alias.py:67
msgid "Invalid line"
msgstr "Línea inválida"
-#: admin/models/domain.py:295
+#: admin/models/domain.py:322
#, fuzzy
#| msgid "No MX record found for this domain."
msgid "No authorized MX record found for domain {}"
msgstr "No se encontró ningún registro MX para este dominio."
-#: admin/models/domain.py:302
+#: admin/models/domain.py:329
msgid "Invalid quota value for domain '{}'"
msgstr "Cuota inválida para dominio '{}'"
-#: admin/models/domain.py:309
+#: admin/models/domain.py:336
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr "Cuota de mailbox por defecto inválida para dominio '{}'"
-#: admin/models/domain.py:314
+#: admin/models/domain.py:341
msgid "Default mailbox quota cannot be greater than domain quota"
msgstr "La cuota de mailbox por defecto no puede superar la cuota de dominio"
-#: admin/models/domain_alias.py:40
+#: admin/models/domain_alias.py:35
msgid "The alias name"
msgstr "Nombre del alias"
-#: admin/models/domain_alias.py:42
+#: admin/models/domain_alias.py:37
msgid "target"
msgstr "objetivo"
-#: admin/models/domain_alias.py:43
+#: admin/models/domain_alias.py:38
msgid "The domain this alias points to"
msgstr "El dominio al que este alias apunta"
-#: admin/models/domain_alias.py:83
+#: admin/models/domain_alias.py:76
#, python-format
msgid "Unknown domain %s"
msgstr "Dominio desconocido %s"
-#: admin/models/mailbox.py:99
+#: admin/models/mailbox.py:97
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Dirección del mailbox (sin la parte @dominio.tld)"
-#: admin/models/mailbox.py:165
+#: admin/models/mailbox.py:160
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Fallo al recuperar la localización del mailbox (%s)"
-#: admin/models/mailbox.py:258
+#: admin/models/mailbox.py:253
msgid "A quota is required"
msgstr "Una cuota es obligatoria"
-#: admin/models/mailbox.py:264
+#: admin/models/mailbox.py:259
msgid "Domain quota exceeded"
msgstr "Cuota de dominio excedida"
-#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
+#: admin/serializers.py:37
+msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgstr ""
+"Cuota de mailbox predeterminda en MB. Un valor de 0 significa ningún limite."
+
+#: admin/serializers.py:107 admin/serializers.py:312 admin/serializers.py:410
msgid "Permission denied."
msgstr "Permiso denegado."
-#: admin/serializers.py:118
+#: admin/serializers.py:158
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
"Lista de dominios administrados (sólo distribuidores y administradores de "
"dominio)."
-#: admin/serializers.py:218
+#: admin/serializers.py:262
msgid "Not allowed for this role."
msgstr "No estás autorizado para esta función."
-#: admin/serializers.py:228
+#: admin/serializers.py:274
msgid "Must be equal to mailbox full_address"
msgstr "Debe ser igual a la dirección completa del buzón"
-#: admin/serializers.py:253
+#: admin/serializers.py:299
msgid "Local domain {} does not exist"
msgstr "El dominio local {} no existe"
-#: admin/serializers.py:347
+#: admin/serializers.py:397
msgid "A list of recipient"
msgstr "Lista de destinatarios"
-#: admin/serializers.py:358
+#: admin/serializers.py:408
msgid "Domain not found."
msgstr "Dominio no encontrado."
-#: admin/serializers.py:407
+#: admin/serializers.py:457
#, fuzzy
#| msgid "You don't have access to this domain"
msgid "You don't have access to this domain."
msgstr "No tienes acceso a este dominio"
-#: admin/serializers.py:415
+#: admin/serializers.py:465
#, fuzzy
#| msgid "You don't have access to this domain"
msgid "You don't have access to this mailbox."
@@ -871,6 +962,19 @@ msgstr "Deshabilitado"
msgid "Awaiting checks"
msgstr "Esperando verificación"
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+#, fuzzy
+#| msgid "No MX record found for this domain."
+msgid "No record found"
+msgstr "No se encontró ningún registro MX para este dominio."
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
+msgstr ""
+
#: admin/templates/admin/_global_statistics_widget.html:4
msgid "Global statistics"
msgstr "Estadísticas globales"
@@ -977,7 +1081,8 @@ msgid "Address"
msgstr "Dirección"
#: admin/templates/admin/dnsbl_domain_detail.html:12
-#: admin/templates/admin/domain_detail.html:96
+#: admin/templates/admin/domain_detail.html:100
+#: admin/templates/admin/messages_log_headers.html:6
msgid "Status"
msgstr "Estatus"
@@ -1009,11 +1114,8 @@ msgstr "Alias del mailbox"
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domain_detail.html:65
-#: admin/templates/admin/domain_general_form.html:4
-#: admin/templates/admin/domain_general_form.html:5
#: admin/templates/admin/domains_quotas.html:11
#: admin/templates/admin/domains_quotas.html:12
-#: admin/templates/admin/mailform.html:7
#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
@@ -1033,34 +1135,38 @@ msgstr "usado"
msgid "allocated"
msgstr "reservado"
-#: admin/templates/admin/domain_detail.html:91
+#: admin/templates/admin/domain_detail.html:92
msgid "DNS"
msgstr ""
-#: admin/templates/admin/domain_detail.html:103
+#: admin/templates/admin/domain_detail.html:107
msgid "DKIM key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:107
+#: admin/templates/admin/domain_detail.html:111
msgid "Show key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:110
+#: admin/templates/admin/domain_detail.html:113
+msgid "Generate new key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:115
#, fuzzy
#| msgid "Not defined"
msgid "Not generated"
msgstr "Sin definir"
-#: admin/templates/admin/domain_detail.html:117
+#: admin/templates/admin/domain_detail.html:122
msgid "Administrators"
msgstr "Administradores"
-#: admin/templates/admin/domain_detail.html:129
-#: admin/templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:134
+#: admin/templatetags/admin_tags.py:265
msgid "Remove this permission"
msgstr "Eliminar este permiso"
-#: admin/templates/admin/domain_detail.html:134
+#: admin/templates/admin/domain_detail.html:139
msgid "No domain administrator defined yet."
msgstr "Aún no se define un administrador de dominio."
@@ -1116,7 +1222,7 @@ msgstr "deshabilitado"
msgid "Automatically forward emails to another address"
msgstr "Reenvía automáticamente los correos a otra dirección"
-#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:87
msgid "Update"
msgstr "Actualizar"
@@ -1188,6 +1294,22 @@ msgstr "Elija un valor"
msgid "Use domain default value"
msgstr "Usar el valor por defecto del dominio"
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:3
+msgid "Date"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:4
+msgid "From"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:5
+msgid "To"
+msgstr ""
+
#: admin/templates/admin/mx_domain_detail.html:11
msgid "Updated"
msgstr "Actualizado"
@@ -1233,132 +1355,176 @@ msgstr ""
msgid "Search"
msgstr "Buscar"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_m"
msgstr "Activado"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_f"
msgstr "Activado"
-#: admin/templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:45
msgid "List domains"
msgstr "Listar dominios"
-#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:50 admin/templatetags/admin_tags.py:105
msgid "List quotas"
msgstr "Listar cuotas"
-#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
-#: admin/views/import_.py:89 admin/views/import_.py:111
+#: admin/templatetags/admin_tags.py:62 admin/templatetags/admin_tags.py:110
+#: admin/views/import_.py:85 admin/views/import_.py:107
msgid "Import"
msgstr "Importar"
-#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
-#: admin/views/export.py:43 admin/views/export.py:71
+#: admin/templatetags/admin_tags.py:68 admin/templatetags/admin_tags.py:116
+#: admin/views/export.py:39 admin/views/export.py:67
msgid "Export"
msgstr "Exportar"
-#: admin/templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:100
msgid "List identities"
msgstr "Listar identidades"
-#: admin/templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:135
msgid "View the domain's identities"
msgstr "Ver las identidades del dominio"
-#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
-#: admin/templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:141 admin/templatetags/admin_tags.py:184
+#: admin/templatetags/admin_tags.py:197
msgid "Edit {}"
msgstr "Editar {}"
-#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
-#: admin/templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:151 admin/templatetags/admin_tags.py:188
+#: admin/templatetags/admin_tags.py:202
#, python-format
msgid "Delete %s?"
msgstr "¿Eliminar %s?"
-#: admin/views/alias.py:35
+#: admin/tests/test_mx.py:130
+#, fuzzy, python-format
+#| msgid "MX records of {}"
+msgid "No MX record for %s"
+msgstr "Registros MX de {}"
+
+#: admin/tests/test_mx.py:142 admin/tests/test_mx.py:145
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/views/alias.py:29
msgid "Alias with this name already exists"
msgstr "Ya existe un alias con este nombre"
-#: admin/views/alias.py:60
+#: admin/views/alias.py:54
msgid "Create"
msgstr "Crear"
-#: admin/views/alias.py:72
+#: admin/views/alias.py:66
msgid "New alias"
msgstr "Nuevo alias"
-#: admin/views/alias.py:73
+#: admin/views/alias.py:67
msgid "Alias created"
msgstr "Alias creado"
-#: admin/views/alias.py:85
+#: admin/views/alias.py:79
msgid "Alias modified"
msgstr "Alias modificado"
-#: admin/views/alias.py:109
+#: admin/views/alias.py:103
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] "Alias eliminado"
msgstr[1] "Aliases eliminados"
-#: admin/views/dns.py:32
+#: admin/views/dns.py:28
msgid "MX records of {}"
msgstr "Registros MX de {}"
-#: admin/views/dns.py:55
+#: admin/views/dns.py:51
msgid "DNSBL summary for {}"
msgstr "Resumen de DNSBL para {}"
-#: admin/views/domain.py:188
+#: admin/views/domain.py:202
msgid "You can't delete your own domain"
msgstr "No puedo eliminar su propio dominio"
-#: admin/views/domain.py:191
+#: admin/views/domain.py:205
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Dominio eliminado"
msgstr[1] "Dominios eliminados"
-#: admin/views/export.py:42
+#: admin/views/export.py:38
msgid "Export identities"
msgstr "Exportar identidades"
-#: admin/views/export.py:70
+#: admin/views/export.py:66
msgid "Export domains"
msgstr "Exportar dominios"
-#: admin/views/identity.py:113 admin/views/identity.py:206
-#: admin/views/identity.py:211
+#: admin/views/identity.py:107 admin/views/identity.py:201
+#: admin/views/identity.py:206
msgid "Invalid request"
msgstr "Petición inválida"
-#: admin/views/identity.py:196
+#: admin/views/identity.py:191
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Cuenta eliminada"
msgstr[1] "Cuentas eliminadas"
-#: admin/views/import_.py:65
+#: admin/views/import_.py:61
#, python-format
msgid "Object already exists: %s"
msgstr "El objeto ya existe: %s"
-#: admin/views/import_.py:69
+#: admin/views/import_.py:65
#, python-format
msgid "%d objects imported successfully"
msgstr "%d objetos importados con éxito"
-#: admin/views/import_.py:88
+#: admin/views/import_.py:84
msgid "Import domains"
msgstr "Importar dominios"
-#: admin/views/import_.py:110
+#: admin/views/import_.py:106
msgid "Import identities"
msgstr "Importar identidades"
-#: admin/views/user.py:40
+#: admin/views/user.py:36
msgid "Forward updated"
msgstr "Reenvío actualizado"
+
+#~ msgid "File name"
+#~ msgstr "Nombre del fichero"
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No {type} record found for MX {mx}"
+#~ msgstr "No se encontró ningún registro MX para este dominio."
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No A record found for MX %(domain)s"
+#~ msgstr "No se encontró ningún registro MX para este dominio."
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No AAAA record found for MX %(domain)s"
+#~ msgstr "No se encontró ningún registro MX para este dominio."
+
+#~ msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
+#~ msgstr ""
+#~ "La cuota compartida entre las mailboxes en MB. Un valor de 0 significa "
+#~ "ningún limite."
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No DNS records found without MX for %s"
+#~ msgstr "No se encontró ningún registro MX para este dominio."
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No DNS records found without MX for %(domain)s"
+#~ msgstr "No se encontró ningún registro MX para este dominio."
diff --git a/modoboa/admin/locale/es/LC_MESSAGES/djangojs.po b/modoboa/admin/locale/es/LC_MESSAGES/djangojs.po
index 8a247e117..e17431d9b 100644
--- a/modoboa/admin/locale/es/LC_MESSAGES/djangojs.po
+++ b/modoboa/admin/locale/es/LC_MESSAGES/djangojs.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Pedro Gracia , 2011,2013
# Pedro Gracia , 2010-2011
@@ -10,46 +10,49 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-04 22:08+0100\n"
+"POT-Creation-Date: 2020-03-09 16:48+0100\n"
"PO-Revision-Date: 2017-02-21 00:55+0000\n"
"Last-Translator: samuel santos \n"
-"Language-Team: Spanish (http://www.transifex.com/tonio/modoboa/language/es/)\n"
+"Language-Team: Spanish (http://www.transifex.com/tonio/modoboa/language/"
+"es/)\n"
+"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/static/admin/js/admin.js:131
+#: admin/static/admin/js/admin.js:129 admin/static/admin/js/admin.js:174
msgid "No more domain to show"
msgstr "Sin dominios que mostrar"
-#: admin/static/admin/js/admin.js:150
+#: admin/static/admin/js/admin.js:149
msgid "Do not delete domain directory"
msgstr "No eleminar el directorio del dominio"
-#: admin/static/admin/js/admin.js:152
+#: admin/static/admin/js/admin.js:151
msgid "This operation will remove ALL data associated to this domain."
msgstr "Esta operación eliminará TODOS los datos asociados a este dominio."
-#: admin/static/admin/js/admin.js:153
+#: admin/static/admin/js/admin.js:152
msgid ""
"This operation will remove all data associated to this domain, excepting "
"accounts."
-msgstr "Esta operación eliminará todos los datos asociados a este dominio, excepto las cuentas."
+msgstr ""
+"Esta operación eliminará todos los datos asociados a este dominio, excepto "
+"las cuentas."
-#: admin/static/admin/js/admin.js:236
+#: admin/static/admin/js/admin.js:177 admin/static/admin/js/admin.js:433
+msgid "No more quota to show"
+msgstr "Sin cuota para mostrar"
+
+#: admin/static/admin/js/admin.js:306
msgid "No domain administrator defined"
msgstr "No hay un administrador de dominio definido"
-#: admin/static/admin/js/admin.js:291 admin/static/admin/js/admin.js:359
+#: admin/static/admin/js/admin.js:362 admin/static/admin/js/admin.js:430
msgid "No more identity to show"
msgstr "Sin identidades que mostrar"
-#: admin/static/admin/js/admin.js:333
+#: admin/static/admin/js/admin.js:404
msgid "Do not delete mailbox directory"
msgstr "No eliminar el directorio del mailbox"
-
-#: admin/static/admin/js/admin.js:362
-msgid "No more quota to show"
-msgstr "Sin cuota para mostrar"
diff --git a/modoboa/admin/locale/fr/LC_MESSAGES/django.po b/modoboa/admin/locale/fr/LC_MESSAGES/django.po
index 2c6e804ae..ef8bde6ff 100644
--- a/modoboa/admin/locale/fr/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/fr/LC_MESSAGES/django.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
-"PO-Revision-Date: 2018-01-25 09:18+0100\n"
+"POT-Creation-Date: 2020-10-02 15:31+0200\n"
+"PO-Revision-Date: 2020-10-02 15:30+0200\n"
"Last-Translator: Antoine Nguyen \n"
"Language-Team: French (http://www.transifex.com/tonio/modoboa/language/fr/)\n"
"Language: fr\n"
@@ -18,25 +18,29 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/api.py:142
+msgid "Here is your new Modoboa password: {}"
+msgstr "Voici votre nouveau mot de passe Modoboa :"
+
+#: admin/app_settings.py:20 admin/handlers.py:261
#: admin/templates/admin/_global_statistics_widget.html:11
#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domaines"
-#: admin/app_settings.py:25
+#: admin/app_settings.py:23
msgid "Enable MX checks"
msgstr "Activer la vérification des MX"
-#: admin/app_settings.py:28
+#: admin/app_settings.py:26
msgid "Check that every domain has a valid MX record"
msgstr "Vérifie que chaque domaine a un enregistrement MX valide"
-#: admin/app_settings.py:33
+#: admin/app_settings.py:31
msgid "Valid MXs"
msgstr "MX(s) valide(s)"
-#: admin/app_settings.py:36
+#: admin/app_settings.py:34
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
@@ -45,11 +49,11 @@ msgstr ""
"respecter. Un avertissement sera envoyé dès qu'un enregistrement ne la "
"respecte pas."
-#: admin/app_settings.py:44
+#: admin/app_settings.py:42
msgid "New domains must use authorized MX(s)"
msgstr "Les nouveaux domaines doivent utiliser un ou plusieurs MX autorisés"
-#: admin/app_settings.py:47
+#: admin/app_settings.py:45
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
@@ -57,62 +61,87 @@ msgstr ""
"Empêcher la création d'un domaine s'il n'a pas au moins un MX utilisant une "
"adresse autorisée."
-#: admin/app_settings.py:53
+#: admin/app_settings.py:51
+msgid "Enable SPF checks"
+msgstr "Activer les tests SPF"
+
+#: admin/app_settings.py:54
+msgid "Check if every domain has a valid SPF record"
+msgstr "Vérifie que chaque domaine a un enregistrement SPF valide"
+
+#: admin/app_settings.py:59
+msgid "Enable DKIM checks"
+msgstr "Activer les tests DKIM"
+
+#: admin/app_settings.py:62
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr ""
+"Vérifie que chaque domaine ayant la signature DKIM activée dispose d'un "
+"enregistrement DNS valide"
+
+#: admin/app_settings.py:68
+msgid "Enable DMARC checks"
+msgstr "Activer les tests DMARC"
+
+#: admin/app_settings.py:71
+msgid "Check if every domain has a valid DMARC record"
+msgstr "Vérifie que chaque domaine a un enregistrement DMARC valide"
+
+#: admin/app_settings.py:76
+msgid "Enable autoconfig checks"
+msgstr "Activer les tests d'autoconfiguration"
+
+#: admin/app_settings.py:79
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr ""
+"Vérifie que chaque domaine a les enregistrements nécessaires à "
+"l'autoconfiguration"
+
+#: admin/app_settings.py:84
msgid "Enable DNSBL checks"
msgstr "Activer les vérifications DNSBL"
-#: admin/app_settings.py:56
+#: admin/app_settings.py:87
msgid "Check every domain against major DNSBL providers"
msgstr "Vérifie chaque domaine auprès des fournisseurs de DNSBL"
-#: admin/app_settings.py:61
+#: admin/app_settings.py:92
+msgid "Custom DNS server"
+msgstr "Serveur DNS personnalisé"
+
+#: admin/app_settings.py:95
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr ""
+"Utiliser un serveur DNS personnalisé à la place de la configuration par "
+"défaut du serveur"
+
+#: admin/app_settings.py:100
msgid "DKIM keys storage directory"
msgstr "Répertoire de stockage des clés DKIM"
-#: admin/app_settings.py:64
+#: admin/app_settings.py:103
msgid ""
"Absolute path of the directory where DKIM private keys will be stored. Make "
"sure this directory belongs to root user and is not readable by the outside "
"world."
-msgstr "Chemin absolu du répertoire dans lequel seront stockées les clés DKIM. Assurez vous que ce répertoire appartient à l'utilisateur root et qu'il n'est pas lisible par le monde extérieur."
+msgstr ""
+"Chemin absolu du répertoire dans lequel seront stockées les clés DKIM. "
+"Assurez vous que ce répertoire appartient à l'utilisateur root et qu'il "
+"n'est pas lisible par le monde extérieur."
-#: admin/app_settings.py:72
+#: admin/app_settings.py:111
msgid "Default DKIM key length"
msgstr "Taille par défaut d'une clé DKIM"
-#: admin/app_settings.py:76
+#: admin/app_settings.py:115
msgid "Default length in bits for newly generated DKIM keys."
msgstr "Taille par défaut en octets des clés DKIM nouvellement générées."
-#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
-msgid "Mailboxes"
-msgstr "Boites"
-
-#: admin/app_settings.py:83
-msgid "Handle mailboxes on filesystem"
-msgstr "Gérer les boites sur le système de fichiers"
-
-#: admin/app_settings.py:86
-msgid ""
-"Rename or remove mailboxes on the filesystem when they get renamed or "
-"removed within Modoboa"
-msgstr ""
-"Renommer ou supprimer les boites sur le système de fichiers quand elles sont "
-"renommées ou supprimées dans Modoboa"
-
-#: admin/app_settings.py:92
-msgid "Mailboxes owner"
-msgstr "Propriétaire des boites"
-
-#: admin/app_settings.py:95
-msgid "The UNIX account who owns mailboxes on the filesystem"
-msgstr "Le compte UNIX qui possède les boites sur le système de fichiers"
-
-#: admin/app_settings.py:100
+#: admin/app_settings.py:120
msgid "Default domain quota"
msgstr "Quota de domaine par défaut"
-#: admin/app_settings.py:103
+#: admin/app_settings.py:123
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -120,85 +149,142 @@ msgstr ""
"Quota par défaut (en Mo) appliqué aux domaines fraichement créés et ne "
"spécifiant pas de valeur. 0 signifie qu'aucun quota ne sera appliqué."
-#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/app_settings.py:129
+msgid "Default domain sending limit"
+msgstr "Limite d'envoi par défaut du domaine"
+
+#: admin/app_settings.py:132
+msgid ""
+"Number of messages freshly created domains will be allowed to send per day. "
+"Leave empty for no limit."
+msgstr ""
+"Nombre maximal de messages que les nouveaux domaines seront autorisés à "
+"envoyer par jour. Laisser vide pour n'indiquer aucune limite."
+
+#: admin/app_settings.py:137 admin/templates/admin/domain_detail.html:41
+msgid "Mailboxes"
+msgstr "Boites"
+
+#: admin/app_settings.py:140
+msgid "Handle mailboxes on filesystem"
+msgstr "Gérer les boites sur le système de fichiers"
+
+#: admin/app_settings.py:143
+msgid ""
+"Rename or remove mailboxes on the filesystem when they get renamed or "
+"removed within Modoboa"
+msgstr ""
+"Renommer ou supprimer les boites sur le système de fichiers quand elles sont "
+"renommées ou supprimées dans Modoboa"
+
+#: admin/app_settings.py:149
+msgid "Mailboxes owner"
+msgstr "Propriétaire des boites"
+
+#: admin/app_settings.py:152
+msgid "The UNIX account who owns mailboxes on the filesystem"
+msgstr "Le compte UNIX qui possède les boites sur le système de fichiers"
+
+#: admin/app_settings.py:157 admin/forms/domain.py:49 admin/models/domain.py:32
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr "Quota par défaut pour une boîte aux lettres"
-#: admin/app_settings.py:112
+#: admin/app_settings.py:160
msgid ""
-"Default mailbox quota (in MB) applied to freshly created domains with no "
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
"value specified. A value of 0 means no quota."
msgstr ""
-"Quota par défaut pour une boîte aux lettres utilisé pour les domaines "
-"nouvellement créés. Une valeur à 0 signifie pas de quota."
+"Quota par défaut utilisé pour les boîtes aux lettres nouvellement créés. Une "
+"valeur à 0 signifie pas de quota."
-#: admin/app_settings.py:118
+#: admin/app_settings.py:166
+msgid "Default mailbox sending limit"
+msgstr "Limite d'envoi par défaut d'une boîte aux lettres"
+
+#: admin/app_settings.py:169
+msgid ""
+"Number of messages freshly created mailboxes will be allowed to send per "
+"day. Leave empty for no limit."
+msgstr ""
+"Nombre maximal de messages que les nouveaux comptes seront autorisés à "
+"envoyer par jour. Laisser vide pour n'indiquer aucune limite."
+
+#: admin/app_settings.py:175
msgid "Automatic account removal"
msgstr "Suppression automatique de compte"
-#: admin/app_settings.py:121
+#: admin/app_settings.py:178
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
"Lorsqu'une boite aux lettres est supprimée, supprimer le compte associé en "
"même temps"
-#: admin/app_settings.py:125
+#: admin/app_settings.py:182
msgid "Automatic domain/mailbox creation"
msgstr "Création automatique de domaine/boite aux lettres"
-#: admin/app_settings.py:128
+#: admin/app_settings.py:185
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
"Créer un domaine et une boite aux lettres quand un compte est créé "
"automatiquement."
-#: admin/app_settings.py:134
+#: admin/app_settings.py:191
msgid "Create an alias when a mailbox is renamed"
msgstr "Créer un alias quand une boite aux lettres est renommée"
-#: admin/app_settings.py:137
+#: admin/app_settings.py:194
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
"Créer un alias en utilisant l'ancienne adresse quand une boite aux lettres "
"est renommée."
-#: admin/app_settings.py:186 admin/app_settings.py:194
-#: admin/forms/account.py:331
+#: admin/app_settings.py:243 admin/app_settings.py:251
+#: admin/forms/account.py:347
msgid "Must be a positive integer"
msgstr "Doit être un entier positif"
-#: admin/app_settings.py:204
+#: admin/app_settings.py:261
msgid "Directory not found."
msgstr "Répertoire introuvable."
-#: admin/app_settings.py:210
+#: admin/app_settings.py:267
msgid "openssl not found, please make sure it is installed."
-msgstr "impossible de trouver openssl, veuillez vous assurer vous qu'il est installé."
+msgstr ""
+"impossible de trouver openssl, veuillez vous assurer vous qu'il est installé."
-#: admin/app_settings.py:224
+#: admin/app_settings.py:281
msgid "Define at least one authorized network / address"
msgstr "Définissez au moins un réseau / une adresse autorisé"
-#: admin/app_settings.py:234
+#: admin/app_settings.py:291
msgid "Administration"
msgstr "Administration"
-#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/constants.py:28 admin/forms/alias.py:43
#: admin/templates/admin/_per_domain_statistics_widget.html:7
#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Domaine"
-#: admin/constants.py:100
+#: admin/constants.py:29
msgid "Relay domain"
msgstr "Domaine relais"
-#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
+#: admin/constants.py:42
+msgid "Opened"
+msgstr "Ouverte"
+
+#: admin/constants.py:43
+msgid "Closed"
+msgstr "Fermée"
+
+#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:139
msgid "Username"
msgstr "Nom d'utilisateur"
-#: admin/forms/account.py:40
+#: admin/forms/account.py:34
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
@@ -206,23 +292,23 @@ msgstr ""
"Le nom de l'utilisateur. Doit être une adresse e-mail valide pour les "
"utilisateurs simples ou les administrateurs avec une boite aux lettres."
-#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
+#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Rôle"
-#: admin/forms/account.py:46
+#: admin/forms/account.py:40
msgid "Choose"
msgstr "Choisir"
-#: admin/forms/account.py:47
+#: admin/forms/account.py:41
msgid "What level of permission this user will have"
msgstr "Quel niveau de permission cet utilisateur aura"
-#: admin/forms/account.py:50 admin/forms/domain.py:227
+#: admin/forms/account.py:44 admin/forms/domain.py:248
msgid "Random password"
msgstr "Mot de passe aléatoire"
-#: admin/forms/account.py:52
+#: admin/forms/account.py:46
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
@@ -230,69 +316,81 @@ msgstr ""
"Générer un mot de passe aléatoire. Si vous modifiez ce compte et cochez "
"cette case, un nouveau mot de passe sera généré."
-#: admin/forms/account.py:58
+#: admin/forms/account.py:52
msgid "Password"
msgstr "Mot de passe"
-#: admin/forms/account.py:63
+#: admin/forms/account.py:57
msgid "Confirmation"
msgstr "Confirmation"
-#: admin/forms/account.py:66
+#: admin/forms/account.py:60
msgid "Enter the same password as above, for verification."
msgstr "Entrer le même mot de passe, pour vérification."
-#: admin/forms/account.py:78
+#: admin/forms/account.py:72
msgid "Enabled"
msgstr "Activé"
-#: admin/forms/account.py:172
+#: admin/forms/account.py:167
msgid "Only super administrators are allowed for this mode"
msgstr "Seuls les super administrateurs sont autorisés pour ce mode"
-#: admin/forms/account.py:183 admin/forms/account.py:185
-#: admin/forms/domain.py:144 admin/forms/domain.py:273
-#: admin/forms/domain.py:276 admin/serializers.py:241
+#: admin/forms/account.py:178 admin/forms/account.py:180
+#: admin/forms/domain.py:165 admin/forms/domain.py:294
+#: admin/forms/domain.py:297 admin/serializers.py:297
msgid "This field is required."
msgstr "Ce champ est requis."
-#: admin/forms/account.py:191
+#: admin/forms/account.py:186
msgid "The two password fields didn't match."
msgstr "Les deux mots de passe ne correspondent pas."
-#: admin/forms/account.py:204
+#: admin/forms/account.py:199
msgid "You can't disable your own account"
msgstr "Vous ne pouvez pas désactiver votre propre compte"
-#: admin/forms/account.py:225
+#: admin/forms/account.py:222
msgid "E-mail"
msgstr "E-mail"
-#: admin/forms/account.py:227
+#: admin/forms/account.py:224
msgid "Create an alias using the old address"
msgstr "Créer un alias en utilisant l'ancienne adresse"
-#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/forms/account.py:229 admin/forms/domain.py:41
+#: admin/templates/admin/account_detail.html:45
#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Quota"
-#: admin/forms/account.py:234
+#: admin/forms/account.py:232
msgid ""
-"Quota in MB for this mailbox. Define a custom value or use domain's default "
-"one. Leave empty to define an unlimited value (not allowed for domain "
-"administrators)."
+"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a "
+"custom value or use domain's default one. Leave empty to define an unlimited "
+"value (not allowed for domain administrators)."
msgstr ""
-"Quota en Mo pour cette boite. Définir une valeur spécifique ou utiliser la "
-"valeur par défaut du domaine. Laisser vide pour définir une valeur illimitée "
-"(interdit pour les admins. de domaine)."
+"Quota pour cette boite. Peut être exprimé en Ko, Mo (défaut) ou Go. Définir "
+"une valeur spécifique ou utiliser la valeur par défaut du domaine. Laisser "
+"vide pour définir une valeur illimitée (interdit pour les admins. de "
+"domaine)."
-#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/forms/account.py:242 admin/models/domain.py:36
+#: admin/models/mailbox.py:102 admin/templates/admin/account_detail.html:50
+#: admin/templates/admin/domain_detail.html:69
+msgid "Message sending limit"
+msgstr "Limite d'envoi des messages"
+
+#: admin/forms/account.py:246 admin/models/mailbox.py:104
+msgid "Number of messages this mailbox can send per day"
+msgstr "Nombre de messages que ce compte peut envoyer par jour"
+
+#: admin/forms/account.py:249 admin/forms/domain.py:31
#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias"
-#: admin/forms/account.py:245
+#: admin/forms/account.py:252
msgid ""
"Alias(es) of this mailbox. Indicate only one address per input, press ENTER "
"to add a new input. To create a catchall alias, just enter the domain name "
@@ -302,11 +400,11 @@ msgstr ""
"sur ENTREE pour ajouter un nouveau champ. Pour créer un alias 'fourre-tout', "
"entrer seulement le nom du domaine (@domain.tld)."
-#: admin/forms/account.py:251
+#: admin/forms/account.py:258
msgid "Sender addresses"
msgstr "Adresses d'envoi"
-#: admin/forms/account.py:254
+#: admin/forms/account.py:261
msgid ""
"Additional sender address(es) for this account. The user will be allowed to "
"send emails using this address, even if it does not exist locally. Indicate "
@@ -317,66 +415,66 @@ msgstr ""
"même si elle(s) n'existe(nt) pas localement. Indiquer une adresse par champ. "
"Appuyer sur ENTREE pour ajouter un nouveau champ."
-#: admin/forms/account.py:309 admin/forms/alias.py:94
-#: admin/models/mailbox.py:315
+#: admin/forms/account.py:321 admin/forms/alias.py:88
+#: admin/models/mailbox.py:321
msgid "Domain does not exist"
msgstr "Domaine inexistant"
-#: admin/forms/account.py:341
+#: admin/forms/account.py:357
msgid "Local domain does not exist"
msgstr "Le domaine local n'existe pas"
-#: admin/forms/account.py:345 admin/forms/account.py:353
-#: admin/forms/alias.py:97
+#: admin/forms/account.py:361 admin/forms/account.py:369
+#: admin/forms/alias.py:91
msgid "You don't have access to this domain"
msgstr "Vous n'avez pas accès à ce domaine"
-#: admin/forms/account.py:452
+#: admin/forms/account.py:470
msgid "Domain(s)"
msgstr "Domaine(s)"
-#: admin/forms/account.py:454
+#: admin/forms/account.py:472
msgid "Domain(s) that user administrates"
msgstr "Domaine(s) que cet utilisateur administre"
-#: admin/forms/account.py:500 admin/forms/account.py:590
-#: admin/forms/domain.py:344 admin/forms/domain.py:414
+#: admin/forms/account.py:519 admin/forms/account.py:609
+#: admin/forms/domain.py:365 admin/forms/domain.py:436
msgid "General"
msgstr "Général"
-#: admin/forms/account.py:504
+#: admin/forms/account.py:523
msgid "Profile"
msgstr "Profil"
-#: admin/forms/account.py:508 admin/forms/account.py:596
+#: admin/forms/account.py:527 admin/forms/account.py:615
msgid "Mail"
msgstr "Courrier"
-#: admin/forms/account.py:511
+#: admin/forms/account.py:530
msgid "Permissions"
msgstr "Permissions"
-#: admin/forms/account.py:579
+#: admin/forms/account.py:598
msgid "Account updated"
msgstr "Compte mis à jour"
-#: admin/forms/account.py:604
+#: admin/forms/account.py:623
msgid "New account"
msgstr "Nouveau compte"
-#: admin/forms/account.py:614
+#: admin/forms/account.py:633
msgid "Account created"
msgstr "Compte créé"
-#: admin/forms/alias.py:26
+#: admin/forms/alias.py:20
msgid "Random address"
msgstr "Adresse aléatoire"
-#: admin/forms/alias.py:29
+#: admin/forms/alias.py:23
msgid "Email address"
msgstr "Adresse email"
-#: admin/forms/alias.py:31
+#: admin/forms/alias.py:25
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
@@ -384,11 +482,11 @@ msgstr ""
"L'adresse de l'alias. Pour créer un alias \"fourre-tout\", saisissez "
"uniquement le nom du domaine (@domain.tld)."
-#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Destinataires"
-#: admin/forms/alias.py:39
+#: admin/forms/alias.py:33
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
@@ -396,20 +494,20 @@ msgstr ""
"Les adresses vers lesquelles cet alias pointera. Indiquer une adresse par "
"champ, appuyer sur ENTREE pour ajouter un nouveau champ."
-#: admin/forms/alias.py:114 admin/forms/alias.py:116
+#: admin/forms/alias.py:108 admin/forms/alias.py:110
msgid "This field is required"
msgstr "Ce champ est requis."
-#: admin/forms/alias.py:120
+#: admin/forms/alias.py:114
msgid "No recipient defined"
msgstr "Aucune destinataire défini"
-#: admin/forms/domain.py:36
+#: admin/forms/domain.py:28
#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Type"
-#: admin/forms/domain.py:42
+#: admin/forms/domain.py:34
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
@@ -417,55 +515,72 @@ msgstr ""
"Alias de ce domaine. Indiquer seulement un nom par champ, appuyer sur ENTREE "
"pour ajouter un nouveau champ."
-#: admin/forms/domain.py:47
+#: admin/forms/domain.py:39
msgid "Key selector"
msgstr "Sélecteur de clé"
-#: admin/forms/domain.py:85 admin/handlers.py:171
+#: admin/forms/domain.py:44 admin/serializers.py:30
+msgid ""
+"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
+"A value of 0 means no quota."
+msgstr ""
+"Quota partagé entre les boîtes aux lettres. Peut être exprimé en Ko, Mo "
+"(défaut) ou Go. Une valeur à 0 signifie pas de quota."
+
+#: admin/forms/domain.py:52
+msgid ""
+"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
+"GB. A value of 0 means no quota."
+msgstr ""
+"Quota par défaut appliqué aux boîtes aux lettres. Peut être exprimé en Ko, "
+"Mo (défaut) ou Go. Une valeur à 0 signifie pas de quota."
+
+#: admin/forms/domain.py:97 admin/handlers.py:161
msgid "domain alias"
msgstr "alias de domaine"
-#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
+#: admin/forms/domain.py:100 admin/forms/domain.py:176
+#: admin/forms/domain.py:184
#, python-format
msgid "A %s with this name already exists"
msgstr "Un %s de ce nom existe déjà"
-#: admin/forms/domain.py:96 admin/serializers.py:45
+#: admin/forms/domain.py:108 admin/serializers.py:65
msgid "No authorized MX record found for this domain"
msgstr "Aucun enregistrement MX autorisé trouvé pour ce domaine"
-#: admin/forms/domain.py:108
+#: admin/forms/domain.py:120
msgid "DKIM keys storage directory not configured"
msgstr "Répertoire de stockage des clés DKIM non configuré"
-#: admin/forms/domain.py:129 admin/serializers.py:55
+#: admin/forms/domain.py:150 admin/serializers.py:83
msgid "Cannot be greater than domain quota"
msgstr "Ne peut pas être supérieur au quota du domaine"
-#: admin/forms/domain.py:134
+#: admin/forms/domain.py:155
msgid "You can't define an unlimited quota."
msgstr "Vous ne pouvez pas définir de quota illimité"
-#: admin/forms/domain.py:155 admin/forms/domain.py:160
+#: admin/forms/domain.py:176 admin/forms/domain.py:181
msgid "domain"
msgstr "domaine"
-#: admin/forms/domain.py:209
+#: admin/forms/domain.py:230
msgid "Create a domain administrator"
msgstr "Créer un administrateur de domaine"
-#: admin/forms/domain.py:212
+#: admin/forms/domain.py:233
msgid "Automatically create an administrator for this domain"
msgstr "Créer automatiquement un administrateur pour ce domaine"
-#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/forms/domain.py:238 admin/templates/admin/domain_detail.html:139
#: admin/templates/admin/domain_headers.html:3
#: admin/templates/admin/identity_headers.html:2
#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Nom"
-#: admin/forms/domain.py:220
+#: admin/forms/domain.py:241
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
@@ -473,365 +588,383 @@ msgstr ""
"Le nom de l'administrateur. Ne pas include un nom de domaine ici, il sera "
"ajouté automatiquement."
-#: admin/forms/domain.py:230
+#: admin/forms/domain.py:251
msgid "Generate a random password for the administrator."
msgstr "Générer un mot de passe aléatoire pour cet administrateur."
-#: admin/forms/domain.py:236
+#: admin/forms/domain.py:257
msgid "With a mailbox"
msgstr "Avec une boite aux lettres"
-#: admin/forms/domain.py:239
+#: admin/forms/domain.py:260
msgid "Create a mailbox for the administrator."
msgstr "Créer une boite aux lettres pour l'administrateur"
-#: admin/forms/domain.py:245
+#: admin/forms/domain.py:266
msgid "Create aliases"
msgstr "Créer des alias"
-#: admin/forms/domain.py:248
+#: admin/forms/domain.py:269
msgid "Automatically create standard aliases for this domain"
msgstr "Créer automatiquement des alias standard pour ce domaine"
-#: admin/forms/domain.py:264
+#: admin/forms/domain.py:285
msgid "Invalid format"
msgstr "Format invalide"
-#: admin/forms/domain.py:293
+#: admin/forms/domain.py:314
#, python-format
msgid "User '%s' already exists"
msgstr "L'utilisateur '%s' existe déjà"
-#: admin/forms/domain.py:404
+#: admin/forms/domain.py:426
msgid "Domain modified"
msgstr "Domaine modifié"
-#: admin/forms/domain.py:425
+#: admin/forms/domain.py:447
msgid "Options"
msgstr "Options"
-#: admin/forms/domain.py:433
+#: admin/forms/domain.py:455
msgid "New domain"
msgstr "Nouveau domaine"
-#: admin/forms/domain.py:446
+#: admin/forms/domain.py:468
msgid "Domain created"
msgstr "Domaine créé"
-#: admin/forms/export.py:9
-msgid "File name"
-msgstr "Nom du fichier"
-
-#: admin/forms/export.py:15 admin/forms/import_.py:15
+#: admin/forms/export.py:9 admin/forms/import_.py:13
msgid "Separator"
msgstr "Séparateur"
-#: admin/forms/forward.py:14
+#: admin/forms/forward.py:12
msgid "Recipient(s)"
msgstr "Destinataire(s)"
-#: admin/forms/forward.py:18
+#: admin/forms/forward.py:16
msgid "Indicate one or more recipients separated by a ','"
msgstr "Indiquer un ou plusieurs destinataires séparés par une ','"
-#: admin/forms/forward.py:21
+#: admin/forms/forward.py:19
msgid "Keep local copies"
msgstr "Conserver des copies locales"
-#: admin/forms/forward.py:24
+#: admin/forms/forward.py:22
msgid "Forward messages and store copies into your local mailbox"
msgstr "Transférer les messages et conserver une copie dans votre boite locale"
-#: admin/forms/import_.py:13
+#: admin/forms/import_.py:11
msgid "Select a file"
msgstr "Sélectionner un fichier"
-#: admin/forms/import_.py:21
+#: admin/forms/import_.py:19
msgid "Continue on error"
msgstr "Continuer en cas d'erreur"
-#: admin/forms/import_.py:22
+#: admin/forms/import_.py:20
msgid "Don't treat duplicated objects as error"
msgstr "Ne pas traiter les objets dupliqués comme des erreurs"
-#: admin/forms/import_.py:40
+#: admin/forms/import_.py:38
msgid "Crypt passwords"
msgstr "Chiffrer les mots de passe"
-#: admin/forms/import_.py:42
+#: admin/forms/import_.py:40
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
"Cocher cette option si les mots de passe contenus dans votre fichier ne sont "
"pas chiffrés"
-#: admin/handlers.py:218
+#: admin/handlers.py:210
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "L'import du compte a échoué (%s): le domaine n'existe pas"
-#: admin/handlers.py:231 admin/models/mailbox.py:342
+#: admin/handlers.py:223 admin/models/mailbox.py:350
msgid "Mailbox {} already exists"
msgstr "La boite {} existe déjà"
-#: admin/handlers.py:239
+#: admin/handlers.py:231
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "L'import du compte a échoué (%s): mauvais quota"
-#: admin/handlers.py:279
+#: admin/handlers.py:271
#: admin/templates/admin/_global_statistics_widget.html:17
#: admin/templates/admin/_per_domain_statistics_widget.html:8
#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Identités"
-#: admin/handlers.py:295 admin/templates/admin/forward.html:2
+#: admin/handlers.py:287 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Transfert"
-#: admin/lib.py:44
+#: admin/lib.py:38
msgid "A mailbox is required"
msgstr "Une boite aux lettres est requise"
-#: admin/lib.py:134
+#: admin/lib.py:128
msgid "You are not allowed to import domains"
msgstr "Vous n'êtes pas autorisé à importer des domaines"
-#: admin/lib.py:145
+#: admin/lib.py:139
msgid "You are not allowed to import domain aliases."
msgstr "Vous n'êtes pas autorisé à importer des alias de domaine."
-#: admin/lib.py:183 admin/tests/test_mx.py:122
+#: admin/lib.py:189 admin/tests/test_mx.py:152 admin/tests/test_mx.py:161
+#: admin/tests/test_mx.py:164
#, python-format
-msgid "No DNS records found for %s"
+msgid "No DNS record found for %s"
msgstr "Aucun enregistrement DNS trouvé pour %s."
-#: admin/lib.py:185 admin/tests/test_mx.py:125
+#: admin/lib.py:192
#, python-format
-msgid "No MX record for %s"
-msgstr "Aucun enregistrement MX trouvé pour %s"
+msgid "No %(type)s record for %(name)s"
+msgstr "Aucun enregistrement %(type)s trouvé pour %(name)s"
-#: admin/lib.py:187 admin/tests/test_mx.py:126
+#: admin/lib.py:196 admin/tests/test_mx.py:156
msgid "No working name servers found"
msgstr "Aucun serveur de noms fonctionnel trouvé"
-#: admin/lib.py:190 admin/tests/test_mx.py:128
+#: admin/lib.py:199 admin/tests/test_mx.py:158
#, python-format
msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr "Timeout de résolution DNS, impossible de requêter %s pour l'instant"
-#: admin/lib.py:201 admin/tests/test_mx.py:131
+#: admin/lib.py:227
+#, python-brace-format
+msgid "Invalid IP address format for {domain}; {addr}"
+msgstr "Format d'adresse IP incorrect pour {domain}; {addr}"
+
+#: admin/management/commands/subcommands/_import.py:93
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_import.py:105
#, python-format
-msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
-msgstr "Impossible de chercher des adresses IP pour %(domain)s; %(error)s"
+msgid "Reading CSV file using %(encoding)s encoding"
+msgstr ""
-#: admin/lib.py:212 admin/tests/test_mx.py:134
+#: admin/management/commands/subcommands/_import.py:116
#, python-format
-msgid "Invalid IP address format for %(domain)s; %(addr)s"
-msgstr "Format d'adresse IP incorrect pour %(domain)s; %(addr)s"
+msgid "Unable to decode CSV file using %(encoding)s encoding"
+msgstr ""
-#: admin/management/commands/subcommands/_mx.py:136
-msgid "[modoboa] DNSBL issue(s) for domain {}"
-msgstr "[modoboa] Problème(s) DNSBL pour le domaine {}"
+#: admin/management/commands/subcommands/_mx.py:116
+msgid "MX {} listed by DNSBL provider {}"
+msgstr "Le MX {} est listé par le fournisseur de DNSBL {}"
-#: admin/management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:164
+msgid "Domain has no MX record"
+msgstr "Le domaine n'a pas d'enregistrement MX"
+
+#: admin/management/commands/subcommands/_mx.py:168
msgid "Domain {} has no MX record"
msgstr "Le domaine {} n'a pas d'enregistrement MX"
-#: admin/management/commands/subcommands/_mx.py:167
+#: admin/management/commands/subcommands/_mx.py:188
+msgid "Invalid MX record: {}"
+msgstr "Enregistrement MX incorrect : {}"
+
+#: admin/management/commands/subcommands/_mx.py:194
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr "Enregistrement MX invalide pour le domaine {0} : {1}"
-#: admin/management/commands/subcommands/_mx.py:184
+#: admin/management/commands/subcommands/_mx.py:208
msgid "[modoboa] MX issue(s) for domain {}"
msgstr "[modoboa] problème(s) de MX pour le domaine {}"
-#: admin/models/alias.py:35 admin/models/mailbox.py:97
+#: admin/management/commands/subcommands/_mx.py:266
+msgid "[modoboa] DNSBL issue(s) for domain {}"
+msgstr "[modoboa] Problème(s) DNSBL pour le domaine {}"
+
+#: admin/models/alias.py:32 admin/models/mailbox.py:95
msgid "address"
msgstr "Adresse"
-#: admin/models/alias.py:37
+#: admin/models/alias.py:34
msgid "The alias address."
msgstr "L'adresse de l'alias"
-#: admin/models/alias.py:42 admin/models/domain.py:48
-#: admin/models/domain_alias.py:47
+#: admin/models/alias.py:39 admin/models/domain.py:43
+#: admin/models/domain_alias.py:42
msgid "enabled"
msgstr "Activé"
-#: admin/models/alias.py:43 admin/models/domain_alias.py:48
+#: admin/models/alias.py:40 admin/models/domain_alias.py:43
msgid "Check to activate this alias"
msgstr "Cocher pour activer cet alias"
-#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
+#: admin/models/alias.py:45 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr "Description"
-#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
+#: admin/models/alias.py:47 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr "Expire le"
-#: admin/models/alias.py:93
+#: admin/models/alias.py:87
msgid "alias"
msgstr "alias"
-#: admin/models/alias.py:125
+#: admin/models/alias.py:119
msgid "Invalid address"
msgstr "Adresse invalide"
-#: admin/models/alias.py:146
+#: admin/models/alias.py:140
msgid "Local recipient {}@{} not found"
msgstr "Destinataire local {}@{} introuvable"
-#: admin/models/alias.py:176
+#: admin/models/alias.py:170
#, python-format
msgid "Invalid line: %s"
msgstr "Ligne invalide : %s"
-#: admin/models/alias.py:182
+#: admin/models/alias.py:176
#, python-format
msgid "Domain '%s' does not exist"
msgstr "Domaine '%s' inexistant"
-#: admin/models/domain.py:30 admin/models/domain_alias.py:39
+#: admin/models/domain.py:26 admin/models/domain_alias.py:34
msgid "name"
msgstr "Nom"
-#: admin/models/domain.py:31
+#: admin/models/domain.py:27
msgid "The domain name"
msgstr "Le nom du domaine"
-#: admin/models/domain.py:35
-msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
-msgstr ""
-"Quota en Mo partagé entre les boîtes aux lettres. Une valeur à 0 signifie "
-"pas de quota."
+#: admin/models/domain.py:39
+msgid "Number of messages this domain can send per day"
+msgstr "Nombre de messages que ce domaine peut envoyer par jour"
-#: admin/models/domain.py:43
-msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
-msgstr ""
-"Quota par défaut en Mo appliqué aux boîtes aux lettres. Une valeur à 0 "
-"signifie pas de quota."
-
-#: admin/models/domain.py:49
+#: admin/models/domain.py:44
msgid "Check to activate this domain"
msgstr "Cocher pour activer ce domaine"
-#: admin/models/domain.py:54
+#: admin/models/domain.py:49
msgid "Enable DNS checks"
msgstr "Activer les tests DNS"
-#: admin/models/domain.py:55
+#: admin/models/domain.py:50
msgid "Check to enable DNS checks for this domain"
msgstr "Cocher pour activer les tests DNS pour ce domaine"
-#: admin/models/domain.py:62
+#: admin/models/domain.py:57
msgid "Enable DKIM signing"
msgstr "Activer la signature DKIM"
-#: admin/models/domain.py:64
+#: admin/models/domain.py:59
msgid ""
"If you activate this feature, a DKIM key will be generated for this domain."
-msgstr "Si vous activez cette fonctionnalité, une clé DKIM sera générée pour ce domain."
+msgstr ""
+"Si vous activez cette fonctionnalité, une clé DKIM sera générée pour ce "
+"domain."
-#: admin/models/domain.py:70
+#: admin/models/domain.py:65
msgid "Key length"
msgstr "Taille de la clé"
-#: admin/models/domain.py:285 admin/models/domain_alias.py:74
+#: admin/models/domain.py:323 admin/models/domain_alias.py:67
msgid "Invalid line"
msgstr "Ligne invalide"
-#: admin/models/domain.py:295
+#: admin/models/domain.py:333
msgid "No authorized MX record found for domain {}"
msgstr "Aucun enregistrement MX autorisé trouvé pour le domaine {}"
-#: admin/models/domain.py:302
+#: admin/models/domain.py:340
msgid "Invalid quota value for domain '{}'"
msgstr "Quota invalide pour le domaine '{}'"
-#: admin/models/domain.py:309
+#: admin/models/domain.py:347
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr ""
"Quota par défaut pour une boîte aux lettres invalide pour le domaine '{}'"
-#: admin/models/domain.py:314
+#: admin/models/domain.py:352
msgid "Default mailbox quota cannot be greater than domain quota"
msgstr ""
"Le quota par défaut d'une boîte aux lettres ne peut pas être supérieur au "
"quota du domaine"
-#: admin/models/domain_alias.py:40
+#: admin/models/domain_alias.py:35
msgid "The alias name"
msgstr "Le nom de l'alias"
-#: admin/models/domain_alias.py:42
+#: admin/models/domain_alias.py:37
msgid "target"
msgstr "cible"
-#: admin/models/domain_alias.py:43
+#: admin/models/domain_alias.py:38
msgid "The domain this alias points to"
msgstr "Le domaine vers lequel cet alias pointe"
-#: admin/models/domain_alias.py:83
+#: admin/models/domain_alias.py:76
#, python-format
msgid "Unknown domain %s"
msgstr "Domaine %s inconnu"
-#: admin/models/mailbox.py:99
+#: admin/models/mailbox.py:97
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Adresse de la boite aux lettres (sans la partie @domain.tld)"
-#: admin/models/mailbox.py:165
+#: admin/models/mailbox.py:166
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Impossible de récuperer l'emplacement de la boite (%s)"
-#: admin/models/mailbox.py:258
+#: admin/models/mailbox.py:264
msgid "A quota is required"
msgstr "Un quota est requis"
-#: admin/models/mailbox.py:264
+#: admin/models/mailbox.py:270
msgid "Domain quota exceeded"
msgstr "Quota du domaine dépassé"
-#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
+#: admin/serializers.py:37
+msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgstr ""
+"Quota par défaut en Mo appliqué aux boîtes aux lettres. Une valeur à 0 "
+"signifie pas de quota."
+
+#: admin/serializers.py:115 admin/serializers.py:322 admin/serializers.py:424
msgid "Permission denied."
msgstr "Permission refusée."
-#: admin/serializers.py:118
+#: admin/serializers.py:168
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
"Liste des domaines administrés (revendeurs et administrateurs de domaine "
"seulement)."
-#: admin/serializers.py:218
+#: admin/serializers.py:272
msgid "Not allowed for this role."
msgstr "Non autorisé pour ce rôle."
-#: admin/serializers.py:228
+#: admin/serializers.py:284
msgid "Must be equal to mailbox full_address"
msgstr "Doit être égale au champ full_address dans mailbox"
-#: admin/serializers.py:253
+#: admin/serializers.py:309
msgid "Local domain {} does not exist"
msgstr "Le domaine local {} n'existe pas"
-#: admin/serializers.py:347
+#: admin/serializers.py:411
msgid "A list of recipient"
msgstr "Une liste de destinataire"
-#: admin/serializers.py:358
+#: admin/serializers.py:422
msgid "Domain not found."
msgstr "Domaine introuvable."
-#: admin/serializers.py:407
+#: admin/serializers.py:471
msgid "You don't have access to this domain."
msgstr "Vous n'avez pas accès à ce domaine."
-#: admin/serializers.py:415
+#: admin/serializers.py:479
msgid "You don't have access to this mailbox."
msgstr "Vous n'avez pas accès à cette boîtes aux lettres."
@@ -862,6 +995,17 @@ msgstr "Désactivés"
msgid "Awaiting checks"
msgstr "En attente de vérification"
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+msgid "No record found"
+msgstr "Aucun enregistrement trouvé"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
+msgstr "En attente de génération de la clé"
+
#: admin/templates/admin/_global_statistics_widget.html:4
msgid "Global statistics"
msgstr "Statistiques globales"
@@ -872,7 +1016,7 @@ msgstr "Quantité"
#: admin/templates/admin/_global_statistics_widget.html:14
#: admin/templates/admin/domain_detail.html:37
-#: admin/templates/admin/domain_detail.html:73
+#: admin/templates/admin/domain_detail.html:87
msgid "Domain aliases"
msgstr "Alias de domaine"
@@ -919,27 +1063,27 @@ msgstr "Non défini"
msgid "Phone number"
msgstr "Numéro de téléphone"
-#: admin/templates/admin/account_detail.html:55
+#: admin/templates/admin/account_detail.html:61
msgid "Administered domains"
msgstr "Domaines gérés"
-#: admin/templates/admin/account_detail.html:61
+#: admin/templates/admin/account_detail.html:67
msgid "No domain defined."
msgstr "Aucun domaine défini."
-#: admin/templates/admin/account_detail.html:75
+#: admin/templates/admin/account_detail.html:81
msgid "Aliases"
msgstr "Alias"
-#: admin/templates/admin/account_detail.html:81
+#: admin/templates/admin/account_detail.html:87
msgid "No alias defined"
msgstr "Aucun alias défini"
-#: admin/templates/admin/account_detail.html:87
+#: admin/templates/admin/account_detail.html:93
msgid "Additional sender addresses"
msgstr "Adresses d'envoi supplémentaires"
-#: admin/templates/admin/account_detail.html:93
+#: admin/templates/admin/account_detail.html:99
msgid "No sender address defined"
msgstr "Aucune adresse d'envoi déclarée"
@@ -968,7 +1112,9 @@ msgid "Address"
msgstr "Adresse"
#: admin/templates/admin/dnsbl_domain_detail.html:12
-#: admin/templates/admin/domain_detail.html:96
+#: admin/templates/admin/domain_detail.html:114
+#: admin/templates/admin/domains_log_headers.html:6
+#: admin/templates/admin/messages_log_headers.html:6
msgid "Status"
msgstr "Statut"
@@ -984,6 +1130,28 @@ msgstr "Tout va bien, ce domaine n'est pas listé."
msgid "No information available for this domain."
msgstr "Aucune information disponible pour ce domaine."
+#: admin/templates/admin/domain_alarms.html:19
+msgid "Opened alarms for"
+msgstr "Alarms ouvertes pour"
+
+#: admin/templates/admin/domain_alarms.html:25
+#: admin/templates/admin/domains_log_headers.html:3
+#: admin/templates/admin/messages_log_headers.html:3
+msgid "Date"
+msgstr "Date"
+
+#: admin/templates/admin/domain_alarms.html:26
+msgid "Message"
+msgstr "Message"
+
+#: admin/templates/admin/domain_alarms.html:27
+msgid "Mailbox"
+msgstr "Boîte aux lettres"
+
+#: admin/templates/admin/domain_alarms.html:40
+msgid "No opened alarm"
+msgstr "Aucune alarme ouverte"
+
#: admin/templates/admin/domain_detail.html:29
msgid "Creation date"
msgstr "Date de création"
@@ -1000,16 +1168,14 @@ msgstr "Alias de boite."
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domain_detail.html:65
-#: admin/templates/admin/domain_general_form.html:4
-#: admin/templates/admin/domain_general_form.html:5
#: admin/templates/admin/domains_quotas.html:11
#: admin/templates/admin/domains_quotas.html:12
-#: admin/templates/admin/mailform.html:7
#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "Mo"
#: admin/templates/admin/domain_detail.html:54
+#: admin/templates/admin/domain_detail.html:73
msgid "Usage"
msgstr "Utilisation"
@@ -1024,32 +1190,45 @@ msgstr "utilisé"
msgid "allocated"
msgstr "alloué"
-#: admin/templates/admin/domain_detail.html:91
+#: admin/templates/admin/domain_detail.html:70
+msgid "per day"
+msgstr "par jour"
+
+#: admin/templates/admin/domain_detail.html:76
+msgctxt "message count"
+msgid "used"
+msgstr "utilisé"
+
+#: admin/templates/admin/domain_detail.html:106
msgid "DNS"
msgstr "DNS"
-#: admin/templates/admin/domain_detail.html:103
+#: admin/templates/admin/domain_detail.html:121
msgid "DKIM key"
msgstr "Clé DKIM"
-#: admin/templates/admin/domain_detail.html:107
+#: admin/templates/admin/domain_detail.html:125
msgid "Show key"
msgstr "Afficher la clé"
-#: admin/templates/admin/domain_detail.html:110
+#: admin/templates/admin/domain_detail.html:127
+msgid "Generate new key"
+msgstr "Générer une nouvelle clé"
+
+#: admin/templates/admin/domain_detail.html:129
msgid "Not generated"
msgstr "Non générée"
-#: admin/templates/admin/domain_detail.html:117
+#: admin/templates/admin/domain_detail.html:136
msgid "Administrators"
msgstr "Administrateurs"
-#: admin/templates/admin/domain_detail.html:129
-#: admin/templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:148
+#: admin/templatetags/admin_tags.py:279
msgid "Remove this permission"
msgstr "Supprimer cette permission"
-#: admin/templates/admin/domain_detail.html:134
+#: admin/templates/admin/domain_detail.html:153
msgid "No domain administrator defined yet."
msgstr "Aucun administrateur de domaine défini."
@@ -1076,6 +1255,20 @@ msgstr "Vous ne pouvez pas créer de nouvel administrateur de domaine"
msgid "Add"
msgstr "Ajouter"
+#: admin/templates/admin/domains_log_headers.html:2
+msgid "Queue ID"
+msgstr "ID de file"
+
+#: admin/templates/admin/domains_log_headers.html:4
+#: admin/templates/admin/messages_log_headers.html:4
+msgid "From"
+msgstr "De"
+
+#: admin/templates/admin/domains_log_headers.html:5
+#: admin/templates/admin/messages_log_headers.html:5
+msgid "To"
+msgstr "A"
+
#: admin/templates/admin/domains_quota_headers.html:3
#: admin/templates/admin/identities_quota_headers.html:4
msgid "Limit"
@@ -1103,7 +1296,7 @@ msgstr "Desactivé"
msgid "Automatically forward emails to another address"
msgstr "Transférer automatiquement les messages vers une autre adresse"
-#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:87
msgid "Update"
msgstr "Mettre à jour"
@@ -1174,6 +1367,10 @@ msgstr "Choisir une valeur"
msgid "Use domain default value"
msgstr "Utiliser la valeur par défaut du domaine"
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr ""
+
#: admin/templates/admin/mx_domain_detail.html:11
msgid "Updated"
msgstr "Mis à jour"
@@ -1218,132 +1415,167 @@ msgstr ""
msgid "Search"
msgstr "Chercher"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_m"
msgstr "Activé"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_f"
msgstr "Activée"
-#: admin/templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:47
msgid "List domains"
msgstr "Lister les domaines"
-#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:52 admin/templatetags/admin_tags.py:112
msgid "List quotas"
msgstr "Lister les quotas"
-#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
-#: admin/views/import_.py:89 admin/views/import_.py:111
+#: admin/templatetags/admin_tags.py:57
+msgid "Message logs"
+msgstr "Historique des messages"
+
+#: admin/templatetags/admin_tags.py:69 admin/templatetags/admin_tags.py:117
+#: admin/views/import_.py:85 admin/views/import_.py:107
msgid "Import"
msgstr "Importer"
-#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
-#: admin/views/export.py:43 admin/views/export.py:71
+#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:123
+#: admin/views/export.py:39 admin/views/export.py:67
msgid "Export"
msgstr "Exporter"
-#: admin/templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:107
msgid "List identities"
msgstr "Lister les identités"
-#: admin/templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:142
msgid "View the domain's identities"
msgstr "Voir les identités du domaine"
-#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
-#: admin/templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:149
+msgid "View domain's alarms"
+msgstr "Voir les alarmes du domaine"
+
+#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:198
+#: admin/templatetags/admin_tags.py:211
msgid "Edit {}"
msgstr "Modifier {}"
-#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
-#: admin/templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:165 admin/templatetags/admin_tags.py:202
+#: admin/templatetags/admin_tags.py:216
#, python-format
msgid "Delete %s?"
msgstr "Supprimer %s ?"
-#: admin/views/alias.py:35
+#: admin/tests/test_mx.py:155
+#, python-format
+msgid "No MX record for %s"
+msgstr "Aucun enregistrement MX trouvé pour %s"
+
+#: admin/tests/test_mx.py:167 admin/tests/test_mx.py:170
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr "Format d'adresse IP incorrect pour %(domain)s; %(addr)s"
+
+#: admin/views/alias.py:29
msgid "Alias with this name already exists"
msgstr "Un alias de ce nom existe déjà"
-#: admin/views/alias.py:60
+#: admin/views/alias.py:54
msgid "Create"
msgstr "Créer"
-#: admin/views/alias.py:72
+#: admin/views/alias.py:66
msgid "New alias"
msgstr "Nouvel alias"
-#: admin/views/alias.py:73
+#: admin/views/alias.py:67
msgid "Alias created"
msgstr "Alias créé"
-#: admin/views/alias.py:85
+#: admin/views/alias.py:79
msgid "Alias modified"
msgstr "Alias modifié"
-#: admin/views/alias.py:109
+#: admin/views/alias.py:103
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] "Alias supprimé"
msgstr[1] "Alias supprimés"
-#: admin/views/dns.py:32
+#: admin/views/dns.py:28
msgid "MX records of {}"
msgstr "Enregistrements MX de {}"
-#: admin/views/dns.py:55
+#: admin/views/dns.py:51
msgid "DNSBL summary for {}"
msgstr "Résumé DNSBL pour {}"
-#: admin/views/domain.py:188
+#: admin/views/domain.py:244
msgid "You can't delete your own domain"
msgstr "Vous ne pouvez pas supprimer votre propre domaine"
-#: admin/views/domain.py:191
+#: admin/views/domain.py:247
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Domaine supprimé"
msgstr[1] "Domaines supprimés"
-#: admin/views/export.py:42
+#: admin/views/export.py:38
msgid "Export identities"
msgstr "Export d'identités"
-#: admin/views/export.py:70
+#: admin/views/export.py:66
msgid "Export domains"
msgstr "Export de domaines"
-#: admin/views/identity.py:113 admin/views/identity.py:206
-#: admin/views/identity.py:211
+#: admin/views/identity.py:107 admin/views/identity.py:201
+#: admin/views/identity.py:206
msgid "Invalid request"
msgstr "Requête invalide"
-#: admin/views/identity.py:196
+#: admin/views/identity.py:191
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Compte supprimé"
msgstr[1] "Comptes supprimés"
-#: admin/views/import_.py:65
+#: admin/views/import_.py:61
#, python-format
msgid "Object already exists: %s"
msgstr "L'objet existe déjà : %s"
-#: admin/views/import_.py:69
+#: admin/views/import_.py:65
#, python-format
msgid "%d objects imported successfully"
msgstr "%d objets importés avec succès"
-#: admin/views/import_.py:88
+#: admin/views/import_.py:84
msgid "Import domains"
msgstr "Importer des domaines"
-#: admin/views/import_.py:110
+#: admin/views/import_.py:106
msgid "Import identities"
msgstr "Importer des identités"
-#: admin/views/user.py:40
+#: admin/views/user.py:36
msgid "Forward updated"
msgstr "Transfert mis à jour"
+
+#~ msgid "File name"
+#~ msgstr "Nom du fichier"
+
+#~ msgid "No {type} record found for MX {mx}"
+#~ msgstr "Aucun enregistrement {type} trouvé pour le MX {mx}."
+
+#~ msgid "No A record found for MX %(domain)s"
+#~ msgstr "Aucun enregistrement A trouvé pour le MX %(domain)s."
+
+#~ msgid "No AAAA record found for MX %(domain)s"
+#~ msgstr "Aucun enregistrement AAAA trouvé pour le MX %(domain)s."
+
+#~ msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
+#~ msgstr ""
+#~ "Quota en Mo partagé entre les boîtes aux lettres. Une valeur à 0 signifie "
+#~ "pas de quota."
diff --git a/modoboa/admin/locale/fr/LC_MESSAGES/djangojs.po b/modoboa/admin/locale/fr/LC_MESSAGES/djangojs.po
index 919862caf..3cfb4313a 100644
--- a/modoboa/admin/locale/fr/LC_MESSAGES/djangojs.po
+++ b/modoboa/admin/locale/fr/LC_MESSAGES/djangojs.po
@@ -1,52 +1,54 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-04 22:08+0100\n"
+"POT-Creation-Date: 2020-03-09 16:48+0100\n"
"PO-Revision-Date: 2017-09-22 09:50+0000\n"
"Last-Translator: Antoine Nguyen \n"
"Language-Team: French (http://www.transifex.com/tonio/modoboa/language/fr/)\n"
+"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: admin/static/admin/js/admin.js:131
+#: admin/static/admin/js/admin.js:129 admin/static/admin/js/admin.js:174
msgid "No more domain to show"
msgstr "Plus de domaine à afficher"
-#: admin/static/admin/js/admin.js:150
+#: admin/static/admin/js/admin.js:149
msgid "Do not delete domain directory"
msgstr "Ne pas supprimer le répertoire du domaine"
-#: admin/static/admin/js/admin.js:152
+#: admin/static/admin/js/admin.js:151
msgid "This operation will remove ALL data associated to this domain."
msgstr "Cette opération supprimera TOUTES les données associées à ce domaine."
-#: admin/static/admin/js/admin.js:153
+#: admin/static/admin/js/admin.js:152
msgid ""
"This operation will remove all data associated to this domain, excepting "
"accounts."
-msgstr "Cette opération supprimera toutes les données associées à ce domaine à l'exception des comptes."
+msgstr ""
+"Cette opération supprimera toutes les données associées à ce domaine à "
+"l'exception des comptes."
-#: admin/static/admin/js/admin.js:236
+#: admin/static/admin/js/admin.js:177 admin/static/admin/js/admin.js:433
+msgid "No more quota to show"
+msgstr "Plus de quota à afficher"
+
+#: admin/static/admin/js/admin.js:306
msgid "No domain administrator defined"
msgstr "Aucun administrateur de domaine défini"
-#: admin/static/admin/js/admin.js:291 admin/static/admin/js/admin.js:359
+#: admin/static/admin/js/admin.js:362 admin/static/admin/js/admin.js:430
msgid "No more identity to show"
msgstr "Plus d'identité à afficher"
-#: admin/static/admin/js/admin.js:333
+#: admin/static/admin/js/admin.js:404
msgid "Do not delete mailbox directory"
msgstr "Ne pas supprimer le répertoire de la boite aux lettres"
-
-#: admin/static/admin/js/admin.js:362
-msgid "No more quota to show"
-msgstr "Plus de quota à afficher"
diff --git a/modoboa/admin/locale/it/LC_MESSAGES/django.po b/modoboa/admin/locale/it/LC_MESSAGES/django.po
index cc8a1bad8..56ebbcb83 100644
--- a/modoboa/admin/locale/it/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/it/LC_MESSAGES/django.po
@@ -4,14 +4,15 @@
#
# Translators:
# Giancarlo Gaifas , 2013
+# marcotrevisan , 2018
# Rocco , 2015
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
-"PO-Revision-Date: 2015-10-11 11:48+0000\n"
-"Last-Translator: Rocco \n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
+"PO-Revision-Date: 2018-11-02 14:26+0000\n"
+"Last-Translator: marcotrevisan \n"
"Language-Team: Italian (http://www.transifex.com/tonio/modoboa/language/"
"it/)\n"
"Language: it\n"
@@ -20,76 +21,143 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/api.py:142
+msgid "Here is your new Modoboa password: {}"
+msgstr ""
+
+#: admin/app_settings.py:20 admin/handlers.py:261
#: admin/templates/admin/_global_statistics_widget.html:11
#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domini"
-#: admin/app_settings.py:25
+#: admin/app_settings.py:23
msgid "Enable MX checks"
-msgstr ""
+msgstr "Abilita i controlli MX"
-#: admin/app_settings.py:28
+#: admin/app_settings.py:26
msgid "Check that every domain has a valid MX record"
-msgstr ""
+msgstr "Verifica che ogni dominio abbia un record MX valido"
-#: admin/app_settings.py:33
+#: admin/app_settings.py:31
msgid "Valid MXs"
-msgstr ""
+msgstr "MX validi"
-#: admin/app_settings.py:36
+#: admin/app_settings.py:34
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
msgstr ""
+"Una lista di indirizzi IP o host a cui ciascun record MX dovrebbe "
+"appartenere. Verrà inviato un avviso se un record non la rispetta. "
-#: admin/app_settings.py:44
+#: admin/app_settings.py:42
msgid "New domains must use authorized MX(s)"
-msgstr ""
+msgstr "Nuovi domini devono utilizzare MX autorizzati"
-#: admin/app_settings.py:47
+#: admin/app_settings.py:45
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
msgstr ""
+"Impedisci la creazione di un nuovo dominio se il suo record MX non utilizza "
+"uno degli indirizzi definiti."
-#: admin/app_settings.py:53
+#: admin/app_settings.py:51
+#, fuzzy
+#| msgid "Enable DNS checks"
+msgid "Enable SPF checks"
+msgstr "Abilita i controlli DNS"
+
+#: admin/app_settings.py:54
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid SPF record"
+msgstr "Verifica che ogni dominio abbia un record MX valido"
+
+#: admin/app_settings.py:59
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DKIM checks"
+msgstr "Abilita i controlli MX"
+
+#: admin/app_settings.py:62
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr "Verifica che ogni dominio abbia un record MX valido"
+
+#: admin/app_settings.py:68
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DMARC checks"
+msgstr "Abilita i controlli MX"
+
+#: admin/app_settings.py:71
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid DMARC record"
+msgstr "Verifica che ogni dominio abbia un record MX valido"
+
+#: admin/app_settings.py:76
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable autoconfig checks"
+msgstr "Abilita i controlli MX"
+
+#: admin/app_settings.py:79
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr "Verifica che ogni dominio abbia un record MX valido"
+
+#: admin/app_settings.py:84
msgid "Enable DNSBL checks"
-msgstr ""
+msgstr "Abilita i controlli DNSBL"
-#: admin/app_settings.py:56
+#: admin/app_settings.py:87
msgid "Check every domain against major DNSBL providers"
-msgstr ""
+msgstr "Verifica ciascun dominio sui principali provider DNSBL"
-#: admin/app_settings.py:61
+#: admin/app_settings.py:92
+msgid "Custom DNS server"
+msgstr "DNS server custom"
+
+#: admin/app_settings.py:95
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr "Usa un DNS server custom invece della configurazione a sever locale"
+
+#: admin/app_settings.py:100
msgid "DKIM keys storage directory"
-msgstr ""
+msgstr "Cartella di salvataggio delle chiavi DKIM"
-#: admin/app_settings.py:64
+#: admin/app_settings.py:103
msgid ""
"Absolute path of the directory where DKIM private keys will be stored. Make "
"sure this directory belongs to root user and is not readable by the outside "
"world."
msgstr ""
+"Percorso assoluto della cartella dove le chiavi private DKIM verranno "
+"salvate. Assicurarsi che questa cartella sia di proprietà dell'utente root e "
+"che non sia leggibile da altri."
-#: admin/app_settings.py:72
+#: admin/app_settings.py:111
msgid "Default DKIM key length"
-msgstr ""
+msgstr "Lunghezza predefinita delle chiavi DKIM"
-#: admin/app_settings.py:76
+#: admin/app_settings.py:115
msgid "Default length in bits for newly generated DKIM keys."
-msgstr ""
+msgstr "Lunghezza predefinita in numero di bit per nuove chiavi DKIM."
-#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
+#: admin/app_settings.py:119 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Caselle di posta"
-#: admin/app_settings.py:83
+#: admin/app_settings.py:122
msgid "Handle mailboxes on filesystem"
msgstr "Gestione delle caselle di posta nel filsystem"
-#: admin/app_settings.py:86
+#: admin/app_settings.py:125
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -97,19 +165,19 @@ msgstr ""
"Rinomina o rimuovi le caselle di posta nel filesystem quando vengono "
"rinominate o cancellate in Modoboa "
-#: admin/app_settings.py:92
+#: admin/app_settings.py:131
msgid "Mailboxes owner"
msgstr "Proprietario delle caselle postali"
-#: admin/app_settings.py:95
+#: admin/app_settings.py:134
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "L'account UNIX a cui appartengono le caselle postali nel filsystem"
-#: admin/app_settings.py:100
+#: admin/app_settings.py:139
msgid "Default domain quota"
msgstr "Quota predefinita per il domini"
-#: admin/app_settings.py:103
+#: admin/app_settings.py:142
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -117,92 +185,87 @@ msgstr ""
"Quota predefinita (in MB) applicata ai nuovi domini che non la specificano. "
"Un valore 0 implica nessuna quota."
-#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/app_settings.py:148 admin/forms/domain.py:49 admin/models/domain.py:33
#: admin/templates/admin/domain_detail.html:64
-#, fuzzy
-#| msgid "Default domain quota"
msgid "Default mailbox quota"
-msgstr "Quota predefinita per il domini"
+msgstr "Dimensione massima predefinita per le mailbox"
-#: admin/app_settings.py:112
+#: admin/app_settings.py:151
#, fuzzy
#| msgid ""
-#| "Default quota (in MB) applied to freshly created domains with no value "
-#| "specified. A value of 0 means no quota."
+#| "Default mailbox quota (in MB) applied to freshly created domains with no "
+#| "value specified. A value of 0 means no quota."
msgid ""
-"Default mailbox quota (in MB) applied to freshly created domains with no "
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
"value specified. A value of 0 means no quota."
msgstr ""
-"Quota predefinita (in MB) applicata ai nuovi domini che non la specificano. "
-"Un valore 0 implica nessuna quota."
+"Dimensione massima predefinita (in MB) applicata per nuovi domini creati "
+"senza alcun valore specificato. Un valore 0 indica nessun limite."
-#: admin/app_settings.py:118
+#: admin/app_settings.py:157
msgid "Automatic account removal"
msgstr "Rimozione automatica dell'account"
-#: admin/app_settings.py:121
+#: admin/app_settings.py:160
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
"Quando una casella postale viene rimossa rimuovi anche l'account associato"
-#: admin/app_settings.py:125
+#: admin/app_settings.py:164
msgid "Automatic domain/mailbox creation"
msgstr "Creazione automatica del domini/casella di posta elettronica"
-#: admin/app_settings.py:128
+#: admin/app_settings.py:167
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
"Crea un dominio ed una casella di posta elettronica quando si crea un "
"account utente"
-#: admin/app_settings.py:134
+#: admin/app_settings.py:173
msgid "Create an alias when a mailbox is renamed"
-msgstr ""
+msgstr "Crea un alias quando una mailbox viene rinominata"
-#: admin/app_settings.py:137
+#: admin/app_settings.py:176
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
+"Crea un alias con il vecchio indirizzo quando una mailbox viene rinominata."
-#: admin/app_settings.py:186 admin/app_settings.py:194
-#: admin/forms/account.py:331
+#: admin/app_settings.py:225 admin/app_settings.py:233
+#: admin/forms/account.py:335
msgid "Must be a positive integer"
msgstr "Dev'essere un intero positivo"
-#: admin/app_settings.py:204
-#, fuzzy
-#| msgid "Domain modified"
+#: admin/app_settings.py:243
msgid "Directory not found."
-msgstr "Dominio modificato"
+msgstr "Cartella non trovata."
-#: admin/app_settings.py:210
+#: admin/app_settings.py:249
msgid "openssl not found, please make sure it is installed."
-msgstr ""
+msgstr "openssl non trovato, assicurarsi che sia installato."
-#: admin/app_settings.py:224
+#: admin/app_settings.py:263
msgid "Define at least one authorized network / address"
-msgstr ""
+msgstr "Definire almeno una rete / indirizzo autorizzato"
-#: admin/app_settings.py:234
+#: admin/app_settings.py:273
msgid "Administration"
msgstr "Amministrazione"
-#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/constants.py:28 admin/forms/alias.py:43
#: admin/templates/admin/_per_domain_statistics_widget.html:7
#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Dominio"
-#: admin/constants.py:100
-#, fuzzy
-#| msgid "New domain"
+#: admin/constants.py:29
msgid "Relay domain"
-msgstr "Nuovo dominio"
+msgstr "Dominio di relay"
-#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
+#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:125
msgid "Username"
msgstr "Nome utente"
-#: admin/forms/account.py:40
+#: admin/forms/account.py:34
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
@@ -210,193 +273,179 @@ msgstr ""
"Il nome dell'utente. Dev'essere un indirizzo e-mail per gli utenti semplici "
"o gli amministratori che posseggono una casella"
-#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
+#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Ruolo"
-#: admin/forms/account.py:46
+#: admin/forms/account.py:40
msgid "Choose"
msgstr "Scegli"
-#: admin/forms/account.py:47
+#: admin/forms/account.py:41
msgid "What level of permission this user will have"
msgstr "Il livello di permessi che avrà questo utente"
-#: admin/forms/account.py:50 admin/forms/domain.py:227
-#, fuzzy
-#| msgid "Invalid address"
+#: admin/forms/account.py:44 admin/forms/domain.py:245
msgid "Random password"
-msgstr "Indirizzo non valido"
+msgstr "Password casuale"
-#: admin/forms/account.py:52
+#: admin/forms/account.py:46
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
msgstr ""
+"Genera una password casuale. Selezionando questa casella durante "
+"l'aggioenamento dell'account, verrà generata una nuova password."
-#: admin/forms/account.py:58
+#: admin/forms/account.py:52
msgid "Password"
msgstr "Password"
-#: admin/forms/account.py:63
+#: admin/forms/account.py:57
msgid "Confirmation"
msgstr "Conferma"
-#: admin/forms/account.py:66
+#: admin/forms/account.py:60
msgid "Enter the same password as above, for verification."
msgstr ""
"Inserisci la medesima password che hai inserito sopra, per la verifica."
-#: admin/forms/account.py:78
+#: admin/forms/account.py:72
msgid "Enabled"
msgstr "Abilitato"
-#: admin/forms/account.py:172
+#: admin/forms/account.py:167
msgid "Only super administrators are allowed for this mode"
msgstr "Solo i super amministratori possono operare in questa modalità"
-#: admin/forms/account.py:183 admin/forms/account.py:185
-#: admin/forms/domain.py:144 admin/forms/domain.py:273
-#: admin/forms/domain.py:276 admin/serializers.py:241
-#, fuzzy
-#| msgid "A mailbox is required"
+#: admin/forms/account.py:178 admin/forms/account.py:180
+#: admin/forms/domain.py:162 admin/forms/domain.py:291
+#: admin/forms/domain.py:294 admin/serializers.py:287
msgid "This field is required."
-msgstr "É necessaria una casella"
+msgstr "Questo campo è obbligatorio."
-#: admin/forms/account.py:191
+#: admin/forms/account.py:186
msgid "The two password fields didn't match."
msgstr "Le password nei due campi non corrispondono"
-#: admin/forms/account.py:204
+#: admin/forms/account.py:199
msgid "You can't disable your own account"
msgstr "Tu non puoi disabilitare il tuo account"
-#: admin/forms/account.py:225
+#: admin/forms/account.py:222
msgid "E-mail"
msgstr "E-mail"
-#: admin/forms/account.py:227
+#: admin/forms/account.py:224
msgid "Create an alias using the old address"
-msgstr ""
+msgstr "Crea un alias con il vecchio indirizzo."
-#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/forms/account.py:229 admin/forms/domain.py:41
+#: admin/templates/admin/account_detail.html:45
#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Quota"
-#: admin/forms/account.py:234
+#: admin/forms/account.py:232
msgid ""
-"Quota in MB for this mailbox. Define a custom value or use domain's default "
-"one. Leave empty to define an unlimited value (not allowed for domain "
-"administrators)."
+"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a "
+"custom value or use domain's default one. Leave empty to define an unlimited "
+"value (not allowed for domain administrators)."
msgstr ""
-"Quota in MB per questo account. Stabilire un valore personalizzato o usare "
-"quello predefinito. Lasciare vuoto per non impostare limiti (non consentito "
-"per gli amministratori di dominio)."
+"Dimensione massima per questa mailbox, può essere espressa in KB, MB "
+"(predefinito) o GB. Definire un valore personalizzato o utilizzare quello "
+"predefinito per il dominio. Lasciare vuoto per specificare un valore non "
+"limitato (non permesso per amministratori di dominio)."
-#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/forms/account.py:242 admin/forms/domain.py:31
#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias"
#: admin/forms/account.py:245
-#, fuzzy
-#| msgid ""
-#| "Alias(es) of this mailbox. Indicate only one address per input, press "
-#| "ENTER to add a new input. Use the '*' character to create a 'catchall' "
-#| "alias (ex: *@domain.tld)."
msgid ""
"Alias(es) of this mailbox. Indicate only one address per input, press ENTER "
"to add a new input. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
msgstr ""
-"Alias per questa casella di posta. Inserire un solo indirizzo alla volta, "
-"premere INVIO per aggiungere un nuovo elemento. Utilizzare il carattere '*' "
-"per creare un alias 'prenditutto' (p.es.: *@dominio.org)."
+"Alias di questa mailbox. Indicare un solo indirizzo per inserimento, premere "
+"ENTER per effettuare un nuovo inserimento. Per creare un alias \"intercetta-"
+"tutto\", inserire semplicemente il nome dominio (@domain.tld)."
#: admin/forms/account.py:251
-#, fuzzy
-#| msgid "Invalid address"
msgid "Sender addresses"
-msgstr "Indirizzo non valido"
+msgstr "Indirizzi mittenti"
#: admin/forms/account.py:254
-#, fuzzy
-#| msgid ""
-#| "Addresses this alias will point to. Indicate only one address per input, "
-#| "press ENTER to add a new input."
msgid ""
"Additional sender address(es) for this account. The user will be allowed to "
"send emails using this address, even if it does not exist locally. Indicate "
"one address per input. Press ENTER to add a new input."
msgstr ""
-"Indirizzi verso il quale questo alias punterà . Indicare un solo indirizzo "
-"per ogni ingresso , premere INVIO per aggiungere un nuovo input ."
+"Indirizzo(/i) mittente aggiuntivo per questo account. L'utente potrà inviare "
+"email usando questo indirizzo/i, anche se non esiste localmente. Indicare un "
+"indirizzo per inserimento. Premere ENTER per un nuovo inserimento."
-#: admin/forms/account.py:309 admin/forms/alias.py:94
-#: admin/models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:88
+#: admin/models/mailbox.py:310
msgid "Domain does not exist"
msgstr "Il dominio non esiste"
-#: admin/forms/account.py:341
-#, fuzzy
-#| msgid "Domain does not exist"
+#: admin/forms/account.py:345
msgid "Local domain does not exist"
-msgstr "Il dominio non esiste"
+msgstr "Il dominio locale non esiste"
-#: admin/forms/account.py:345 admin/forms/account.py:353
-#: admin/forms/alias.py:97
+#: admin/forms/account.py:349 admin/forms/account.py:357
+#: admin/forms/alias.py:91
msgid "You don't have access to this domain"
msgstr "Non hai accesso a questo dominio"
-#: admin/forms/account.py:452
+#: admin/forms/account.py:456
msgid "Domain(s)"
msgstr "Dominio(i)"
-#: admin/forms/account.py:454
+#: admin/forms/account.py:458
msgid "Domain(s) that user administrates"
msgstr "Dominio(i) amministrato(i) dall'utente"
-#: admin/forms/account.py:500 admin/forms/account.py:590
-#: admin/forms/domain.py:344 admin/forms/domain.py:414
+#: admin/forms/account.py:505 admin/forms/account.py:595
+#: admin/forms/domain.py:362 admin/forms/domain.py:433
msgid "General"
msgstr "Generale"
-#: admin/forms/account.py:504
+#: admin/forms/account.py:509
msgid "Profile"
-msgstr ""
+msgstr "Profilo"
-#: admin/forms/account.py:508 admin/forms/account.py:596
+#: admin/forms/account.py:513 admin/forms/account.py:601
msgid "Mail"
msgstr "Posta"
-#: admin/forms/account.py:511
+#: admin/forms/account.py:516
msgid "Permissions"
msgstr "Permessi"
-#: admin/forms/account.py:579
+#: admin/forms/account.py:584
msgid "Account updated"
msgstr "Account aggiornato"
-#: admin/forms/account.py:604
+#: admin/forms/account.py:609
msgid "New account"
msgstr "Nuovo account"
-#: admin/forms/account.py:614
+#: admin/forms/account.py:619
msgid "Account created"
msgstr "Account creato"
-#: admin/forms/alias.py:26
-#, fuzzy
-#| msgid "Invalid address"
+#: admin/forms/alias.py:20
msgid "Random address"
-msgstr "Indirizzo non valido"
+msgstr "Indirizzo casuale"
-#: admin/forms/alias.py:29
+#: admin/forms/alias.py:23
msgid "Email address"
msgstr "Indirizzo email"
-#: admin/forms/alias.py:31
+#: admin/forms/alias.py:25
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
@@ -404,11 +453,11 @@ msgstr ""
"Indirizzi email alias. Per creare un alias catchall specifica il nome del "
"dominio (@domain.tld)."
-#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Destinatari"
-#: admin/forms/alias.py:39
+#: admin/forms/alias.py:33
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
@@ -416,22 +465,20 @@ msgstr ""
"Indirizzi verso il quale questo alias punterà . Indicare un solo indirizzo "
"per ogni ingresso , premere INVIO per aggiungere un nuovo input ."
-#: admin/forms/alias.py:114 admin/forms/alias.py:116
-#, fuzzy
-#| msgid "A mailbox is required"
+#: admin/forms/alias.py:108 admin/forms/alias.py:110
msgid "This field is required"
-msgstr "É necessaria una casella"
+msgstr "Questo campo è obbligatorio"
-#: admin/forms/alias.py:120
+#: admin/forms/alias.py:114
msgid "No recipient defined"
msgstr "Non è stato definito un destinatario"
-#: admin/forms/domain.py:36
+#: admin/forms/domain.py:28
#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Tipo"
-#: admin/forms/domain.py:42
+#: admin/forms/domain.py:34
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
@@ -439,55 +486,73 @@ msgstr ""
"Alias per questo dominio. Inserire un solo nome alla volta, premere INVIO "
"per aggiungere un nuovo elemento"
-#: admin/forms/domain.py:47
+#: admin/forms/domain.py:39
msgid "Key selector"
-msgstr ""
+msgstr "Selettore di chiave"
-#: admin/forms/domain.py:85 admin/handlers.py:171
+#: admin/forms/domain.py:44 admin/serializers.py:30
+msgid ""
+"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
+"A value of 0 means no quota."
+msgstr ""
+"Spazio massimo confiviso tra le mailbox. Può essere espresso in KB, MB "
+"(predefinito) o GB. Il valore 0 indica nessun limite."
+
+#: admin/forms/domain.py:52
+msgid ""
+"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
+"GB. A value of 0 means no quota."
+msgstr ""
+"Valore predefinito per lo spazio massimo confiviso tra le mailbox. Può "
+"essere espresso in KB, MB (predefinito) o GB. Il valore 0 indica nessun "
+"limite."
+
+#: admin/forms/domain.py:94 admin/handlers.py:161
msgid "domain alias"
msgstr "alias del dominio"
-#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
+#: admin/forms/domain.py:97 admin/forms/domain.py:173 admin/forms/domain.py:181
#, python-format
msgid "A %s with this name already exists"
msgstr "Un %s con questo nome esiste già"
-#: admin/forms/domain.py:96 admin/serializers.py:45
+#: admin/forms/domain.py:105 admin/serializers.py:64
msgid "No authorized MX record found for this domain"
-msgstr ""
+msgstr "Non è stato trovato alcun record MX autorizzato per questo dominio"
-#: admin/forms/domain.py:108
+#: admin/forms/domain.py:117
msgid "DKIM keys storage directory not configured"
-msgstr ""
+msgstr "Cartella di salvataggio per le chiavi DKIM non configurata."
-#: admin/forms/domain.py:129 admin/serializers.py:55
+#: admin/forms/domain.py:147 admin/serializers.py:82
msgid "Cannot be greater than domain quota"
msgstr ""
+"Non può essere maggiore dello spazio massimo definito a livello di dominio"
-#: admin/forms/domain.py:134
+#: admin/forms/domain.py:152
msgid "You can't define an unlimited quota."
-msgstr ""
+msgstr "Non puoi definire uno spazio illimitato."
-#: admin/forms/domain.py:155 admin/forms/domain.py:160
+#: admin/forms/domain.py:173 admin/forms/domain.py:178
msgid "domain"
msgstr "dominio"
-#: admin/forms/domain.py:209
+#: admin/forms/domain.py:227
msgid "Create a domain administrator"
msgstr "Crea un amministratore di dominio"
-#: admin/forms/domain.py:212
+#: admin/forms/domain.py:230
msgid "Automatically create an administrator for this domain"
msgstr "Crea automaticamente un amministratore per questo dominio"
-#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/forms/domain.py:235 admin/templates/admin/domain_detail.html:125
#: admin/templates/admin/domain_headers.html:3
#: admin/templates/admin/identity_headers.html:2
#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Nome"
-#: admin/forms/domain.py:220
+#: admin/forms/domain.py:238
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
@@ -495,433 +560,416 @@ msgstr ""
"Il nome dell'amministratore. Non includere il nome del dominio, verrà "
"aggiunto automaticamente."
-#: admin/forms/domain.py:230
-#, fuzzy
-#| msgid "Create a domain administrator"
+#: admin/forms/domain.py:248
msgid "Generate a random password for the administrator."
-msgstr "Crea un amministratore di dominio"
+msgstr "Genera una password casuale per l'amministratore."
-#: admin/forms/domain.py:236
+#: admin/forms/domain.py:254
msgid "With a mailbox"
-msgstr ""
+msgstr "Con una casella di posta"
-#: admin/forms/domain.py:239
-#, fuzzy
-#| msgid "Create a domain administrator"
+#: admin/forms/domain.py:257
msgid "Create a mailbox for the administrator."
-msgstr "Crea un amministratore di dominio"
+msgstr "Crea una casella di posta per l'amministratore."
-#: admin/forms/domain.py:245
+#: admin/forms/domain.py:263
msgid "Create aliases"
msgstr "Crea alias"
-#: admin/forms/domain.py:248
+#: admin/forms/domain.py:266
msgid "Automatically create standard aliases for this domain"
msgstr "Crea automaticamente gli alias standard per questo dominio"
-#: admin/forms/domain.py:264
+#: admin/forms/domain.py:282
msgid "Invalid format"
msgstr "Formato non valido"
-#: admin/forms/domain.py:293
+#: admin/forms/domain.py:311
#, python-format
msgid "User '%s' already exists"
msgstr "L'utente '%s' esiste già"
-#: admin/forms/domain.py:404
+#: admin/forms/domain.py:423
msgid "Domain modified"
msgstr "Dominio modificato"
-#: admin/forms/domain.py:425
+#: admin/forms/domain.py:444
msgid "Options"
msgstr "Opzioni"
-#: admin/forms/domain.py:433
+#: admin/forms/domain.py:452
msgid "New domain"
msgstr "Nuovo dominio"
-#: admin/forms/domain.py:446
+#: admin/forms/domain.py:465
msgid "Domain created"
msgstr "Dominio creato"
-#: admin/forms/export.py:9
-msgid "File name"
-msgstr "Nome del file"
-
-#: admin/forms/export.py:15 admin/forms/import_.py:15
+#: admin/forms/export.py:9 admin/forms/import_.py:13
msgid "Separator"
msgstr "Separatore"
-#: admin/forms/forward.py:14
+#: admin/forms/forward.py:12
msgid "Recipient(s)"
msgstr "Destinatario(i)"
-#: admin/forms/forward.py:18
+#: admin/forms/forward.py:16
msgid "Indicate one or more recipients separated by a ','"
msgstr "Indicare uno o più destinatari separati da ','"
-#: admin/forms/forward.py:21
+#: admin/forms/forward.py:19
msgid "Keep local copies"
msgstr "Mantieni copie locali"
-#: admin/forms/forward.py:24
+#: admin/forms/forward.py:22
msgid "Forward messages and store copies into your local mailbox"
msgstr ""
"Inoltra i messaggi e memorizza le copie nella tua casella di posta locale"
-#: admin/forms/import_.py:13
+#: admin/forms/import_.py:11
msgid "Select a file"
msgstr "Seleziona un file"
-#: admin/forms/import_.py:21
+#: admin/forms/import_.py:19
msgid "Continue on error"
msgstr "Continuare in caso di errore"
-#: admin/forms/import_.py:22
+#: admin/forms/import_.py:20
msgid "Don't treat duplicated objects as error"
msgstr "Non considerare errore gli oggetti duplicati"
-#: admin/forms/import_.py:40
+#: admin/forms/import_.py:38
msgid "Crypt passwords"
msgstr "Cripta le password"
-#: admin/forms/import_.py:42
+#: admin/forms/import_.py:40
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
"Seleziona questa opzione se le password contenute nel file non sono criptate"
-#: admin/handlers.py:218
+#: admin/handlers.py:210
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Importazione dell'account fallito (%s): il dominio non esiste"
-#: admin/handlers.py:231 admin/models/mailbox.py:342
-#, fuzzy
-#| msgid "Mailbox %s already exists"
+#: admin/handlers.py:223 admin/models/mailbox.py:338
msgid "Mailbox {} already exists"
-msgstr "La casella di posta %s esiste già"
+msgstr "La La casella di posta {} esiste già"
-#: admin/handlers.py:239
+#: admin/handlers.py:231
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Importazione account fallito(%s): valore della quota errato"
-#: admin/handlers.py:279
+#: admin/handlers.py:271
#: admin/templates/admin/_global_statistics_widget.html:17
#: admin/templates/admin/_per_domain_statistics_widget.html:8
#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Identità"
-#: admin/handlers.py:295 admin/templates/admin/forward.html:2
+#: admin/handlers.py:287 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Inoltra"
-#: admin/lib.py:44
+#: admin/lib.py:38
msgid "A mailbox is required"
msgstr "É necessaria una casella"
-#: admin/lib.py:134
+#: admin/lib.py:128
msgid "You are not allowed to import domains"
msgstr "Non hai i permessi di importare domini"
-#: admin/lib.py:145
+#: admin/lib.py:139
msgid "You are not allowed to import domain aliases."
msgstr "Non hai i permessi di importare gli alias dominio"
-#: admin/lib.py:183 admin/tests/test_mx.py:122
-#, python-format
-msgid "No DNS records found for %s"
-msgstr ""
+#: admin/lib.py:189 admin/tests/test_mx.py:127 admin/tests/test_mx.py:136
+#: admin/tests/test_mx.py:139
+#, fuzzy, python-format
+#| msgid "No DNS records found for %s"
+msgid "No DNS record found for %s"
+msgstr "Nessun record DNS trovato per %s"
-#: admin/lib.py:185 admin/tests/test_mx.py:125
-#, python-format
-msgid "No MX record for %s"
-msgstr ""
+#: admin/lib.py:192
+#, fuzzy, python-format
+#| msgid "No MX record for %s"
+msgid "No %(type)s record for %(name)s"
+msgstr "Nessun record MX per %s"
-#: admin/lib.py:187 admin/tests/test_mx.py:126
+#: admin/lib.py:196 admin/tests/test_mx.py:131
msgid "No working name servers found"
-msgstr ""
+msgstr "Nessun DNS server funzionante trovato"
-#: admin/lib.py:190 admin/tests/test_mx.py:128
+#: admin/lib.py:199 admin/tests/test_mx.py:133
#, python-format
msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
+"Timeout nella risoluzione DNS del nome, problema momentaneo nell'interrogare "
+"%s "
-#: admin/lib.py:201 admin/tests/test_mx.py:131
+#: admin/lib.py:227
+#, python-brace-format
+msgid "Invalid IP address format for {domain}; {addr}"
+msgstr "Formato di indirizzo IP non valido per {domain}; {addr}"
+
+#: admin/management/commands/subcommands/_import.py:93
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
+msgstr "Il file CSV non è codificato UTF-8, cerco di determinare l'encoding"
+
+#: admin/management/commands/subcommands/_import.py:105
#, python-format
-msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
-msgstr ""
+msgid "Reading CSV file using %(encoding)s encoding"
+msgstr "Lettura del file CSV utilizzando la codifica %(encoding)s"
-#: admin/lib.py:212 admin/tests/test_mx.py:134
+#: admin/management/commands/subcommands/_import.py:116
#, python-format
-msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgid "Unable to decode CSV file using %(encoding)s encoding"
msgstr ""
+"Impossibile decodificare il file CSV utilizzando la codifica %(encoding)s"
-#: admin/management/commands/subcommands/_mx.py:136
+#: admin/management/commands/subcommands/_mx.py:132
msgid "[modoboa] DNSBL issue(s) for domain {}"
-msgstr ""
+msgstr "[modoboa] problema(/i) DNSBL per il dominio {}"
-#: admin/management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:152
msgid "Domain {} has no MX record"
-msgstr ""
+msgstr "Il dominio {} non ha record MX"
-#: admin/management/commands/subcommands/_mx.py:167
+#: admin/management/commands/subcommands/_mx.py:163
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
-msgstr ""
+msgstr "Il record MX per il dominio {0} non è valido: {1}"
-#: admin/management/commands/subcommands/_mx.py:184
+#: admin/management/commands/subcommands/_mx.py:180
msgid "[modoboa] MX issue(s) for domain {}"
-msgstr ""
+msgstr "[modoboa] problema(/i) MX per il dominio {}"
-#: admin/models/alias.py:35 admin/models/mailbox.py:97
+#: admin/models/alias.py:32 admin/models/mailbox.py:95
msgid "address"
msgstr "indirizzo"
-#: admin/models/alias.py:37
+#: admin/models/alias.py:34
msgid "The alias address."
msgstr "Indirizzi Alias."
-#: admin/models/alias.py:42 admin/models/domain.py:48
-#: admin/models/domain_alias.py:47
+#: admin/models/alias.py:39 admin/models/domain.py:37
+#: admin/models/domain_alias.py:42
msgid "enabled"
msgstr "Attivato"
-#: admin/models/alias.py:43 admin/models/domain_alias.py:48
+#: admin/models/alias.py:40 admin/models/domain_alias.py:43
msgid "Check to activate this alias"
msgstr "Seleziona per attivare questo alias"
-#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
+#: admin/models/alias.py:45 admin/templates/admin/alias_detail.html:32
msgid "Description"
-msgstr ""
+msgstr "Descrizione"
-#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
+#: admin/models/alias.py:47 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
-msgstr ""
+msgstr "Scade il"
-#: admin/models/alias.py:93
+#: admin/models/alias.py:87
msgid "alias"
msgstr "alias"
-#: admin/models/alias.py:125
+#: admin/models/alias.py:119
msgid "Invalid address"
msgstr "Indirizzo non valido"
-#: admin/models/alias.py:146
+#: admin/models/alias.py:140
msgid "Local recipient {}@{} not found"
msgstr "Destinatario locale {}@{} non trovato"
-#: admin/models/alias.py:176
+#: admin/models/alias.py:170
#, python-format
msgid "Invalid line: %s"
msgstr "Riga non valida: %s"
-#: admin/models/alias.py:182
+#: admin/models/alias.py:176
#, python-format
msgid "Domain '%s' does not exist"
msgstr "Il dominio '%s' non esiste"
-#: admin/models/domain.py:30 admin/models/domain_alias.py:39
+#: admin/models/domain.py:27 admin/models/domain_alias.py:34
msgid "name"
msgstr "nome"
-#: admin/models/domain.py:31
+#: admin/models/domain.py:28
msgid "The domain name"
msgstr "Il nome del dominio"
-#: admin/models/domain.py:35
-#, fuzzy
-#| msgid ""
-#| "Default quota (in MB) applied to freshly created domains with no value "
-#| "specified. A value of 0 means no quota."
-msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
-msgstr ""
-"Quota predefinita (in MB) applicata ai nuovi domini che non la specificano. "
-"Un valore 0 implica nessuna quota."
-
-#: admin/models/domain.py:43
-#, fuzzy
-#| msgid ""
-#| "Default quota (in MB) applied to freshly created domains with no value "
-#| "specified. A value of 0 means no quota."
-msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
-msgstr ""
-"Quota predefinita (in MB) applicata ai nuovi domini che non la specificano. "
-"Un valore 0 implica nessuna quota."
-
-#: admin/models/domain.py:49
+#: admin/models/domain.py:38
msgid "Check to activate this domain"
msgstr "Seleziona per attivare questo dominio"
-#: admin/models/domain.py:54
+#: admin/models/domain.py:43
msgid "Enable DNS checks"
-msgstr ""
+msgstr "Abilita i controlli DNS"
-#: admin/models/domain.py:55
-#, fuzzy
-#| msgid "Check to activate this domain"
+#: admin/models/domain.py:44
msgid "Check to enable DNS checks for this domain"
-msgstr "Seleziona per attivare questo dominio"
+msgstr "Seleziona per abilitare i controlli DNS per questo dominio"
-#: admin/models/domain.py:62
+#: admin/models/domain.py:51
msgid "Enable DKIM signing"
-msgstr ""
+msgstr "Abilita la firma DKIM"
-#: admin/models/domain.py:64
+#: admin/models/domain.py:53
msgid ""
"If you activate this feature, a DKIM key will be generated for this domain."
msgstr ""
+"Se attivi questa feature, verrà generata una chiave DKIM per questo dominio."
-#: admin/models/domain.py:70
+#: admin/models/domain.py:59
msgid "Key length"
-msgstr ""
+msgstr "Lunghezza della chiave"
-#: admin/models/domain.py:285 admin/models/domain_alias.py:74
+#: admin/models/domain.py:312 admin/models/domain_alias.py:67
msgid "Invalid line"
msgstr "Riga non valida"
-#: admin/models/domain.py:295
+#: admin/models/domain.py:322
msgid "No authorized MX record found for domain {}"
-msgstr ""
+msgstr "Non è stato trovato alcun record MX autorizzato per il dominio {}"
-#: admin/models/domain.py:302
-#, fuzzy
-#| msgid "Invalid quota value for domain '%s'"
+#: admin/models/domain.py:329
msgid "Invalid quota value for domain '{}'"
-msgstr "Valore della quota non valido per il dominio '%s'"
+msgstr "Valore di spazio massimo non valido per il dominio '{}'"
-#: admin/models/domain.py:309
-#, fuzzy
-#| msgid "Invalid quota value for domain '%s'"
+#: admin/models/domain.py:336
msgid "Invalid default mailbox quota value for domain '{}'"
-msgstr "Valore della quota non valido per il dominio '%s'"
+msgstr "Valore di spazio massimo predefinito non valido per il dominio '{}'"
-#: admin/models/domain.py:314
+#: admin/models/domain.py:341
msgid "Default mailbox quota cannot be greater than domain quota"
msgstr ""
+"Lo spazio massimo predefinito per una casella di posta non può superare "
+"quello definito a livello di dominio"
-#: admin/models/domain_alias.py:40
+#: admin/models/domain_alias.py:35
msgid "The alias name"
msgstr "Il nome dell'alias"
-#: admin/models/domain_alias.py:42
+#: admin/models/domain_alias.py:37
msgid "target"
msgstr "destinazione"
-#: admin/models/domain_alias.py:43
+#: admin/models/domain_alias.py:38
msgid "The domain this alias points to"
msgstr "Il dominio a cui punta questo alias"
-#: admin/models/domain_alias.py:83
+#: admin/models/domain_alias.py:76
#, python-format
msgid "Unknown domain %s"
msgstr "Dominio sconosciuto %s"
-#: admin/models/mailbox.py:99
+#: admin/models/mailbox.py:97
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Indirizzo della casella di posta (senza la parte @dominio.org)"
-#: admin/models/mailbox.py:165
+#: admin/models/mailbox.py:160
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Impossibile recuperare la posizione della casella di posta (%s)"
-#: admin/models/mailbox.py:258
+#: admin/models/mailbox.py:253
msgid "A quota is required"
msgstr "È richiesta una quota"
-#: admin/models/mailbox.py:264
-#, fuzzy
-#| msgid "Domain created"
+#: admin/models/mailbox.py:259
msgid "Domain quota exceeded"
-msgstr "Dominio creato"
+msgstr "Superato lo spazio massimo per il dominio"
-#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
-#, fuzzy
-#| msgid "Permissions"
+#: admin/serializers.py:37
+msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgstr ""
+"Spazio massimo predefinito in MB applicato alle caselle di posta. Un valore "
+"0 indica nessun limite."
+
+#: admin/serializers.py:107 admin/serializers.py:312 admin/serializers.py:410
msgid "Permission denied."
-msgstr "Permessi"
+msgstr "Permesso negato."
-#: admin/serializers.py:118
+#: admin/serializers.py:158
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
+"Lista dei domini amministrati (solo per rivenditori e amministratori di "
+"dominio)."
-#: admin/serializers.py:218
+#: admin/serializers.py:262
msgid "Not allowed for this role."
-msgstr ""
+msgstr "Non consentito per questo ruolo."
-#: admin/serializers.py:228
+#: admin/serializers.py:274
msgid "Must be equal to mailbox full_address"
-msgstr ""
+msgstr "Deve essere uguale a full_address della casella di posta"
-#: admin/serializers.py:253
-#, fuzzy
-#| msgid "Domain does not exist"
+#: admin/serializers.py:299
msgid "Local domain {} does not exist"
-msgstr "Il dominio non esiste"
+msgstr "Il dominio locale {} non esiste"
-#: admin/serializers.py:347
+#: admin/serializers.py:397
msgid "A list of recipient"
-msgstr ""
+msgstr "Una lista di destinatari"
-#: admin/serializers.py:358
-#, fuzzy
-#| msgid "Domain modified"
+#: admin/serializers.py:408
msgid "Domain not found."
-msgstr "Dominio modificato"
+msgstr "Dominio non trovato."
-#: admin/serializers.py:407
-#, fuzzy
-#| msgid "You don't have access to this domain"
+#: admin/serializers.py:457
msgid "You don't have access to this domain."
msgstr "Non hai accesso a questo dominio"
-#: admin/serializers.py:415
-#, fuzzy
-#| msgid "You don't have access to this domain"
+#: admin/serializers.py:465
msgid "You don't have access to this mailbox."
-msgstr "Non hai accesso a questo dominio"
+msgstr "Non hai accesso a questa casella di posta."
#: admin/templates/admin/_domain_dkim_key.html:6
#: admin/templates/admin/_domain_dkim_key.html:20
msgid "Close"
-msgstr ""
+msgstr "Chiudi"
#: admin/templates/admin/_domain_dkim_key.html:7
#, python-format
msgid "DKIM public key for %(domain)s"
-msgstr ""
+msgstr "Chiave pubblica DKIM per %(domain)s"
#: admin/templates/admin/_domain_dkim_key.html:11
-#, fuzzy
-#| msgid "Invalid format"
msgid "Raw format"
-msgstr "Formato non valido"
+msgstr "Formato raw"
#: admin/templates/admin/_domain_dkim_key.html:15
-#, fuzzy
-#| msgid "Invalid format"
msgid "Bind/named format"
-msgstr "Formato non valido"
+msgstr "Formato bind/named"
#: admin/templates/admin/_domain_dnschecks_status.html:4
-#, fuzzy
-#| msgid "disabled"
msgctxt "checks"
msgid "Disabled"
msgstr "Disabilitato"
#: admin/templates/admin/_domain_dnschecks_status.html:6
msgid "Awaiting checks"
+msgstr "In attesa dei controlli"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+#, fuzzy
+#| msgid "No DNS records found for %s"
+msgid "No record found"
+msgstr "Nessun record DNS trovato per %s"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
msgstr ""
#: admin/templates/admin/_global_statistics_widget.html:4
-#, fuzzy
-#| msgid "Statistics"
msgid "Global statistics"
-msgstr "Statistiche"
+msgstr "Statistiche globali"
#: admin/templates/admin/_global_statistics_widget.html:8
msgid "Quantity"
@@ -934,89 +982,71 @@ msgid "Domain aliases"
msgstr "Alias del dominio"
#: admin/templates/admin/_per_domain_statistics_widget.html:4
-#, fuzzy
-#| msgid "Per-domain counters"
msgid "Per-domain statistics"
-msgstr "Contatore per dominio"
+msgstr "Statistiche per dominio"
#: admin/templates/admin/account_detail.html:16
#: admin/templates/admin/alias_detail.html:16
#: admin/templates/admin/domain_detail.html:19
#: admin/templates/admin/identities_table.html:7
-#, fuzzy
-#| msgid "disabled"
msgid "(disabled)"
-msgstr "Disabilitato"
+msgstr "(disabilitato)"
#: admin/templates/admin/account_detail.html:22
#: admin/templates/admin/alias_detail.html:22
#: admin/templates/admin/domain_detail.html:25
msgid "Summary"
-msgstr ""
+msgstr "Sommario"
#: admin/templates/admin/account_detail.html:26
-#, fuzzy
-#| msgid "File name"
msgid "Full name"
-msgstr "Nome del file"
+msgstr "Nome completo"
#: admin/templates/admin/account_detail.html:32
#: admin/templates/admin/alias_detail.html:26
-#, fuzzy
-#| msgid "Create"
msgid "Created"
-msgstr "Crea"
+msgstr "Creato"
#: admin/templates/admin/account_detail.html:35
msgid "Last login"
-msgstr ""
+msgstr "Ultimo accesso"
#: admin/templates/admin/account_detail.html:38
msgid "Secondary email"
-msgstr ""
+msgstr "Email secondaria"
#: admin/templates/admin/account_detail.html:38
#: admin/templates/admin/account_detail.html:41
-#, fuzzy
-#| msgid "No recipient defined"
msgid "Not defined"
-msgstr "Non è stato definito un destinatario"
+msgstr "Non definito"
#: admin/templates/admin/account_detail.html:41
msgid "Phone number"
-msgstr ""
+msgstr "Numero di telefono"
#: admin/templates/admin/account_detail.html:55
-#, fuzzy
-#| msgid "Administration"
msgid "Administered domains"
-msgstr "Amministrazione"
+msgstr "Domini amministrati"
#: admin/templates/admin/account_detail.html:61
-#, fuzzy
-#| msgid "No recipient defined"
msgid "No domain defined."
-msgstr "Non è stato definito un destinatario"
+msgstr "Nessun dominio defnito."
#: admin/templates/admin/account_detail.html:75
-#, fuzzy
-#| msgid "Alias(es)"
msgid "Aliases"
msgstr "Alias"
#: admin/templates/admin/account_detail.html:81
-#, fuzzy
-#| msgid "No recipient defined"
msgid "No alias defined"
-msgstr "Non è stato definito un destinatario"
+msgstr "Nessun alias definito"
#: admin/templates/admin/account_detail.html:87
msgid "Additional sender addresses"
-msgstr ""
+msgstr "Indirizzi mittente aggiuntivi"
#: admin/templates/admin/account_detail.html:93
msgid "No sender address defined"
-msgstr ""
+msgstr "Nessun indirizzo mittente definito"
#: admin/templates/admin/account_general_form.html:12
#: admin/templates/admin/aliasform.html:13
@@ -1025,20 +1055,16 @@ msgstr "il Dominio è disabilitato"
#: admin/templates/admin/alias_detail.html:16
#: admin/templates/admin/identities.html:33
-#, fuzzy
-#| msgid "alias"
msgid "Alias"
-msgstr "alias"
+msgstr "Alias"
#: admin/templates/admin/alias_detail.html:27
-#, fuzzy
-#| msgid "Alias modified"
msgid "Modified"
-msgstr "Alias modificato"
+msgstr "Modificato"
#: admin/templates/admin/dnsbl_domain_detail.html:10
msgid "Provider"
-msgstr ""
+msgstr "Provider"
#: admin/templates/admin/dnsbl_domain_detail.html:11
#: admin/templates/admin/identities_quota_headers.html:2
@@ -1047,23 +1073,22 @@ msgid "Address"
msgstr "Indirizzo"
#: admin/templates/admin/dnsbl_domain_detail.html:12
-#: admin/templates/admin/domain_detail.html:96
-#, fuzzy
-#| msgid "Statistics"
+#: admin/templates/admin/domain_detail.html:100
+#: admin/templates/admin/messages_log_headers.html:6
msgid "Status"
-msgstr "Statistiche"
+msgstr "Stato"
#: admin/templates/admin/dnsbl_domain_detail.html:21
msgid "listed"
-msgstr ""
+msgstr "in lista"
#: admin/templates/admin/dnsbl_domain_detail.html:29
msgid "Everything is fine, this domain is not listed."
-msgstr ""
+msgstr "Tutto bene, il dominio non è nelle liste"
#: admin/templates/admin/dnsbl_domain_detail.html:32
msgid "No information available for this domain."
-msgstr ""
+msgstr "Nessuna informazione disponibile per questo dominio."
#: admin/templates/admin/domain_detail.html:29
msgid "Creation date"
@@ -1081,64 +1106,59 @@ msgstr "Alias delle caselle di posta"
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domain_detail.html:65
-#: admin/templates/admin/domain_general_form.html:4
-#: admin/templates/admin/domain_general_form.html:5
#: admin/templates/admin/domains_quotas.html:11
#: admin/templates/admin/domains_quotas.html:12
-#: admin/templates/admin/mailform.html:7
#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
#: admin/templates/admin/domain_detail.html:54
-#, fuzzy
-#| msgid "Usage (%%)"
msgid "Usage"
-msgstr "Utilizzo (%%)"
+msgstr "Utilizzo"
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domains_quotas.html:11
msgctxt "quota"
msgid "used"
-msgstr ""
+msgstr "utilizzato"
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domains_quotas.html:12
msgid "allocated"
-msgstr ""
+msgstr "allocato"
-#: admin/templates/admin/domain_detail.html:91
+#: admin/templates/admin/domain_detail.html:92
msgid "DNS"
-msgstr ""
-
-#: admin/templates/admin/domain_detail.html:103
-msgid "DKIM key"
-msgstr ""
+msgstr "DNS"
#: admin/templates/admin/domain_detail.html:107
+msgid "DKIM key"
+msgstr "Chiave DKIM"
+
+#: admin/templates/admin/domain_detail.html:111
msgid "Show key"
-msgstr ""
+msgstr "Visualizza chiave"
-#: admin/templates/admin/domain_detail.html:110
-#, fuzzy
-#| msgid "No recipient defined"
+#: admin/templates/admin/domain_detail.html:113
+msgid "Generate new key"
+msgstr "Genera una nuova chiave"
+
+#: admin/templates/admin/domain_detail.html:115
msgid "Not generated"
-msgstr "Non è stato definito un destinatario"
+msgstr "Non generata"
-#: admin/templates/admin/domain_detail.html:117
+#: admin/templates/admin/domain_detail.html:122
msgid "Administrators"
msgstr "Amministratori"
-#: admin/templates/admin/domain_detail.html:129
-#: admin/templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:134
+#: admin/templatetags/admin_tags.py:265
msgid "Remove this permission"
msgstr "Rimuovi questo permesso"
-#: admin/templates/admin/domain_detail.html:134
-#, fuzzy
-#| msgid "No domain administrator defined"
+#: admin/templates/admin/domain_detail.html:139
msgid "No domain administrator defined yet."
-msgstr "Non è stato definito alcun amministratore di dominio"
+msgstr "Non è stato ancora definito nessun amministratore di dominio."
#: admin/templates/admin/domain_headers.html:5
#: admin/templates/admin/identity_headers.html:4
@@ -1146,10 +1166,8 @@ msgid "Tags"
msgstr "Tag"
#: admin/templates/admin/domain_headers.html:7
-#, fuzzy
-#| msgid "Statistics"
msgid "DNS status"
-msgstr "Statistiche"
+msgstr "Stato del DNS"
#: admin/templates/admin/domain_headers.html:9
#: admin/templates/admin/identity_headers.html:5
@@ -1162,10 +1180,8 @@ msgstr "Non ti è possibile creare un amministratore di dominio"
#: admin/templates/admin/domains.html:28
#: admin/templates/admin/identities.html:29
-#, fuzzy
-#| msgid "Address"
msgid "Add"
-msgstr "Indirizzo"
+msgstr "Aggiungi"
#: admin/templates/admin/domains_quota_headers.html:3
#: admin/templates/admin/identities_quota_headers.html:4
@@ -1174,13 +1190,11 @@ msgstr "Limite"
#: admin/templates/admin/domains_quota_headers.html:4
msgid "Used"
-msgstr ""
+msgstr "Utilizzato"
#: admin/templates/admin/domains_quota_headers.html:5
-#, fuzzy
-#| msgid "Alias created"
msgid "Allocated"
-msgstr "Alias creato"
+msgstr "Allocato"
#: admin/templates/admin/domains_quota_headers.html:6
#: admin/templates/admin/identities_quota_headers.html:5
@@ -1196,15 +1210,13 @@ msgstr "Disabilitato"
msgid "Automatically forward emails to another address"
msgstr "Inoltra automaticamente le e-mail ad un altro indirizzo"
-#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:87
msgid "Update"
msgstr "Aggiorna"
#: admin/templates/admin/identities.html:32
-#, fuzzy
-#| msgid "Add account"
msgid "Account"
-msgstr "Aggiungi account"
+msgstr "Account"
#: admin/templates/admin/identities_quota_headers.html:3
msgid "Value"
@@ -1215,17 +1227,6 @@ msgid "Fullname/Recipient"
msgstr "Nome completo/Destinatario"
#: admin/templates/admin/import_domains_form.html:6
-#, fuzzy
-#| msgid ""
-#| "Provide a CSV file where lines respect one of the following formats:\n"
-#| "\n"
-#| " - domain; name; quota; enabled
\n"
-#| " - domainalias; name; targeted domain; enabled
\n"
-#| " %s\n"
-#| "
\n"
-#| "The first element of each line is mandatory and must be equal to one "
-#| "of the previous values.
\n"
-#| "You can use a different character as separator.
\n"
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
"- domain; name; quota; default mailbox quota; enabled
"
@@ -1235,32 +1236,16 @@ msgid ""
"mandatory and must be equal to one of the previous values. You can "
"use a different character as separator.
"
msgstr ""
-"Fornire un file CSV le cui righe rispettino uno dei seguenti formati:\n"
-"\n"
-" - dominio; nome; quota; abilitato
\n"
-" - aliasdominio; nome; dominio di destinazione; abilitato
\n"
-" %s\n"
-"
\n"
-"Il primo elemento di ogni riga è obbligatorio e deve essere uguale a "
-"quello dei valori precedenti.
\n"
-"\n"
-"Come separatore puoi utilizzare un carattere diverso.
\n"
+"Fornire un file CSV le cui linee rispettino uno dei seguenti formati: "
+"- dominio; nome; dimensioni massime; dimensioni massime di default "
+"per casella postale; abilitato
- alias di dominio; nome; "
+"dominio destinazione; abilitato
- dominio di relay; nome; "
+"host destinazione; porta destinazione; servizio; abilitato; verifica "
+"destinatari
Il primo elemento di ciascuna riga è "
+"obbligatorio e deve essere uguale ad uno dei precedenti valori.
Si uò "
+"utilizzare un diverso separatore.
"
#: admin/templates/admin/import_identities_form.html:6
-#, fuzzy
-#| msgid ""
-#| "Provide a CSV file where lines respect one of the following formats:\n"
-#| "\n"
-#| "- account; loginname; password; first name; last name; enabled; "
-#| "group; address; quota; [, domain, ...]
\n"
-#| "- alias; address; enabled; internal recipient
\n"
-#| "- forward; address; enabled; external recipient
\n"
-#| "- dlist; address; enabled; recipient; recipient; ...
\n"
-#| "
\n"
-#| "The first element of each line is mandatory and must be equal to one "
-#| "of the previous values.
\n"
-#| "\n"
-#| "You can use a different character as separator.
\n"
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
"- account; loginname; password; first name; last name; enabled; group; "
@@ -1269,19 +1254,12 @@ msgid ""
"is mandatory and must be equal to one of the previous values.
You can "
"use a different character as separator.
"
msgstr ""
-"Fornire un file CSV le cui righe rispettino uno dei seguenti formati:\n"
-"\n"
-"- account; id utente; password; nome; cognome; abilitato; gruppo; "
-"indirizzo; quota; [, dominio, ...]
\n"
-"- alias; indirizzo; abilitato; destinatario interno
\n"
-"- forward; indirizzo; abilitato; destinatario esterno
\n"
-"- dlist; indirizzo; abilitato; destinatario; destinatario; ..."
-"li>\n"
-"
\n"
-"Il primo elemento di ogni riga è obbligatorio e deve essere uguale a "
-"quello dei valori precedenti.
\n"
-"\n"
-"Come separatore puoi utilizzare un carattere diverso.
\n"
+"Fornire un file CSV le cui linee rispettino uno dei seguenti formati: "
+"- account; nomeutente; password; nome; cognome; abilitato; gruppo; "
+"indirizzo; dimensioni massime; [, dominio, ...]
- alias; "
+"indirizzo; abilitato; destinatario; destinatario; ...
Il "
+"primo elemento di ciascuna linea è obbligatorio e deve essere uguale ad uno "
+"dei precedenti valori.
Si può utilizzare un diverso separatore.
"
#: admin/templates/admin/importform.html:6
msgid "Help"
@@ -1293,7 +1271,7 @@ msgstr "Importazione..."
#: admin/templates/admin/index.html:6
msgid "Admin"
-msgstr ""
+msgstr "Amministratore"
#: admin/templates/admin/mailboxes_raw.html:3
msgid "Choose a value"
@@ -1303,19 +1281,35 @@ msgstr "Scegli un valore"
msgid "Use domain default value"
msgstr "Usa il valore predefinito"
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:3
+msgid "Date"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:4
+msgid "From"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:5
+msgid "To"
+msgstr ""
+
#: admin/templates/admin/mx_domain_detail.html:11
-#, fuzzy
-#| msgid "Update"
msgid "Updated"
-msgstr "Aggiorna"
+msgstr "Aggiornato"
#: admin/templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
msgstr ""
+"Questo indirizzo IP non coincide con nessuno degli MX validi definiti nei "
+"parametri."
#: admin/templates/admin/mx_domain_detail.html:36
msgid "No MX record found for this domain."
-msgstr ""
+msgstr "Non è stato trovato alcun record MX per questo dominio"
#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
#, python-format
@@ -1323,6 +1317,8 @@ msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
"providers:"
msgstr ""
+"Modoboa ha rilevato che il dominio %(domain)sè presente nelle liste dei "
+"seguenti provider DNSBL:"
#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
@@ -1330,214 +1326,169 @@ msgid ""
"coming from it are considered as spam. You should contact those providers "
"and ask them to unlist detected IP address(es)."
msgstr ""
+"La reputazione del dominio verrà influenzata negativamente ed è probabile "
+"che le email provenienti da esso vengano considerate spam. Dovresti "
+"contattare questi provider e chiedere loro di togliere dalla lista gli "
+"indirizzi IP identificati."
#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
msgstr ""
+"Modoboa ha rilevato che il dominio %(domain)snon ha un record MX valido:"
#: admin/templates/admin/searchform.html:6
msgid "Search"
msgstr "Ricerca"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_m"
msgstr "Abilitato"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_f"
msgstr "Abilitata"
-#: admin/templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:45
msgid "List domains"
msgstr "Lista domini"
-#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:50 admin/templatetags/admin_tags.py:105
msgid "List quotas"
msgstr "Elenco quote"
-#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
-#: admin/views/import_.py:89 admin/views/import_.py:111
+#: admin/templatetags/admin_tags.py:62 admin/templatetags/admin_tags.py:110
+#: admin/views/import_.py:85 admin/views/import_.py:107
msgid "Import"
msgstr "Importa"
-#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
-#: admin/views/export.py:43 admin/views/export.py:71
+#: admin/templatetags/admin_tags.py:68 admin/templatetags/admin_tags.py:116
+#: admin/views/export.py:39 admin/views/export.py:67
msgid "Export"
msgstr "Esporta"
-#: admin/templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:100
msgid "List identities"
msgstr "Elenco identità"
-#: admin/templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:135
msgid "View the domain's identities"
msgstr "Visualizza le identita del dominio"
-#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
-#: admin/templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:141 admin/templatetags/admin_tags.py:184
+#: admin/templatetags/admin_tags.py:197
msgid "Edit {}"
-msgstr ""
+msgstr "Modifica {}"
-#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
-#: admin/templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:151 admin/templatetags/admin_tags.py:188
+#: admin/templatetags/admin_tags.py:202
#, python-format
msgid "Delete %s?"
msgstr "Eliminare %s?"
-#: admin/views/alias.py:35
+#: admin/tests/test_mx.py:130
+#, python-format
+msgid "No MX record for %s"
+msgstr "Nessun record MX per %s"
+
+#: admin/tests/test_mx.py:142 admin/tests/test_mx.py:145
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr "Formato non valido per l'indirizzo IP %(domain)s;%(addr)s"
+
+#: admin/views/alias.py:29
msgid "Alias with this name already exists"
msgstr "Un alias con questo nome esiste già"
-#: admin/views/alias.py:60
+#: admin/views/alias.py:54
msgid "Create"
msgstr "Crea"
-#: admin/views/alias.py:72
+#: admin/views/alias.py:66
msgid "New alias"
msgstr "Nuovo alias"
-#: admin/views/alias.py:73
+#: admin/views/alias.py:67
msgid "Alias created"
msgstr "Alias creato"
-#: admin/views/alias.py:85
+#: admin/views/alias.py:79
msgid "Alias modified"
msgstr "Alias modificato"
-#: admin/views/alias.py:109
-#, fuzzy
-#| msgid "Alias created"
+#: admin/views/alias.py:103
msgid "Alias deleted"
msgid_plural "Aliases deleted"
-msgstr[0] "Alias creato"
-msgstr[1] "Alias creato"
+msgstr[0] "Alias eliminato"
+msgstr[1] "Alias eliminati"
-#: admin/views/dns.py:32
+#: admin/views/dns.py:28
msgid "MX records of {}"
-msgstr ""
+msgstr "Record MX di {}"
-#: admin/views/dns.py:55
+#: admin/views/dns.py:51
msgid "DNSBL summary for {}"
-msgstr ""
+msgstr "Sommario DNSBL per {}"
-#: admin/views/domain.py:188
+#: admin/views/domain.py:202
msgid "You can't delete your own domain"
msgstr "Non puoi cancellare il tuo dominio"
-#: admin/views/domain.py:191
+#: admin/views/domain.py:205
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Dominio cancellato"
msgstr[1] "Domini cancellati"
-#: admin/views/export.py:42
+#: admin/views/export.py:38
msgid "Export identities"
msgstr "Identità di esportazione"
-#: admin/views/export.py:70
+#: admin/views/export.py:66
msgid "Export domains"
msgstr "Esporta domini"
-#: admin/views/identity.py:113 admin/views/identity.py:206
-#: admin/views/identity.py:211
+#: admin/views/identity.py:107 admin/views/identity.py:201
+#: admin/views/identity.py:206
msgid "Invalid request"
msgstr "Richiesta non valida"
-#: admin/views/identity.py:196
+#: admin/views/identity.py:191
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Account cancellato"
msgstr[1] "Account cancellati"
-#: admin/views/import_.py:65
+#: admin/views/import_.py:61
#, python-format
msgid "Object already exists: %s"
msgstr "L'oggetto esiste già: %s"
-#: admin/views/import_.py:69
+#: admin/views/import_.py:65
#, python-format
msgid "%d objects imported successfully"
msgstr "%d oggetti importati correttamente"
-#: admin/views/import_.py:88
+#: admin/views/import_.py:84
msgid "Import domains"
msgstr "Importa domini"
-#: admin/views/import_.py:110
+#: admin/views/import_.py:106
msgid "Import identities"
msgstr "Identità di importazione"
-#: admin/views/user.py:40
+#: admin/views/user.py:36
msgid "Forward updated"
msgstr "Inoltro aggiornato"
-#~ msgid ""
-#~ "Default quota in MB applied to mailboxes. Leave empty to use the default "
-#~ "value."
-#~ msgstr ""
-#~ "Quota in MB predefinita applicata alle caselle di posta. Lascialo vuoto "
-#~ "se vuoi applicare il valore predefinito."
+#~ msgid "File name"
+#~ msgstr "Nome del file"
-#~ msgid ""
-#~ "You can't define a forward to a local destination. Please ask your "
-#~ "administrator to create an alias instead."
-#~ msgstr ""
-#~ "Non puoi definire l'inoltro con destinazione una cartella locale. Chiedi "
-#~ "piuttosto all'amministratore di creare un alias."
+#~ msgid "No {type} record found for MX {mx}"
+#~ msgstr "Nessun record {type} trovato per l'MX {mx}"
-#~ msgid "Quota is greater than the allowed domain's limit (%dM)"
-#~ msgstr "La quota è maggiore del limite stabilito per il dominio (%dM)"
+#~ msgid "No A record found for MX %(domain)s"
+#~ msgstr "Nessun record A trovato per il record MX%(domain)s"
-#~ msgid "Domains and identities"
-#~ msgstr "Domini e identità"
-
-#~ msgid "Global counters"
-#~ msgstr "Contatori globali"
-
-#~ msgid "distribution list"
-#~ msgstr "elenco di smistamento"
-
-#~ msgid "forward"
-#~ msgstr "inoltra"
-
-#, fuzzy
-#~| msgid "Confirmation"
-#~ msgid "Information"
-#~ msgstr "Conferma"
-
-#~ msgid "Add domain"
-#~ msgstr "Aggiungi dominio"
-
-#~ msgid "Add alias"
-#~ msgstr "Aggiungi alias"
-
-#~ msgid "Add forward"
-#~ msgstr "Aggiungi inoltro"
-
-#~ msgid "Add distribution list"
-#~ msgstr "Aggiungi elenco di smistamento"
-
-#~ msgid "New distribution list"
-#~ msgstr "Nuovo elenco di smistamento"
-
-#~ msgid "Distribution list created"
-#~ msgstr "Elenco di smistamento creato"
-
-#~ msgid "New forward"
-#~ msgstr "Nuovo inoltro"
-
-#~ msgid "Forward created"
-#~ msgstr "Inoltro creato"
-
-#~ msgid "Distribution list modified"
-#~ msgstr "Elenco di smistamento modificato"
-
-#~ msgid "Forward modified"
-#~ msgstr "Inoltro modificato"
-
-#~ msgid "Miscellaneous"
-#~ msgstr "Miscellanea"
-
-#~ msgid "Domain administrator"
-#~ msgstr "Amministratore Dominio"
+#~ msgid "No AAAA record found for MX %(domain)s"
+#~ msgstr "Nessun record AAAA trovato per il record MX %(domain)s"
diff --git a/modoboa/admin/locale/it/LC_MESSAGES/djangojs.po b/modoboa/admin/locale/it/LC_MESSAGES/djangojs.po
index a66687833..38b493a61 100644
--- a/modoboa/admin/locale/it/LC_MESSAGES/djangojs.po
+++ b/modoboa/admin/locale/it/LC_MESSAGES/djangojs.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-04 22:08+0100\n"
-"PO-Revision-Date: 2015-10-11 11:19+0000\n"
+"POT-Creation-Date: 2020-03-09 16:48+0100\n"
+"PO-Revision-Date: 2017-09-22 09:50+0000\n"
"Last-Translator: Rocco \n"
"Language-Team: Italian (http://www.transifex.com/tonio/modoboa/language/"
"it/)\n"
@@ -19,19 +19,19 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/static/admin/js/admin.js:131
+#: admin/static/admin/js/admin.js:129 admin/static/admin/js/admin.js:174
msgid "No more domain to show"
msgstr "Non ci sono altri domini da mostrare"
-#: admin/static/admin/js/admin.js:150
+#: admin/static/admin/js/admin.js:149
msgid "Do not delete domain directory"
msgstr "Non eliminare la cartella dei domini"
-#: admin/static/admin/js/admin.js:152
+#: admin/static/admin/js/admin.js:151
msgid "This operation will remove ALL data associated to this domain."
msgstr "Questa operazione eliminerà TUTTI i dati associati a questo dominio."
-#: admin/static/admin/js/admin.js:153
+#: admin/static/admin/js/admin.js:152
msgid ""
"This operation will remove all data associated to this domain, excepting "
"accounts."
@@ -39,18 +39,18 @@ msgstr ""
"Questa operazione eliminerà tutti i dati associati a questo dominio tranne "
"gli account"
-#: admin/static/admin/js/admin.js:236
+#: admin/static/admin/js/admin.js:177 admin/static/admin/js/admin.js:433
+msgid "No more quota to show"
+msgstr "Non ci sono altre quote da mostrare"
+
+#: admin/static/admin/js/admin.js:306
msgid "No domain administrator defined"
msgstr "Non è stato definito un amministratore di dominio"
-#: admin/static/admin/js/admin.js:291 admin/static/admin/js/admin.js:359
+#: admin/static/admin/js/admin.js:362 admin/static/admin/js/admin.js:430
msgid "No more identity to show"
msgstr "Non ci sono altre identità da mostrare"
-#: admin/static/admin/js/admin.js:333
+#: admin/static/admin/js/admin.js:404
msgid "Do not delete mailbox directory"
msgstr "Non eliminare la cartella della casella posta"
-
-#: admin/static/admin/js/admin.js:362
-msgid "No more quota to show"
-msgstr "Non ci sono altre quote da mostrare"
diff --git a/modoboa/admin/locale/ja_JP/LC_MESSAGES/django.po b/modoboa/admin/locale/ja_JP/LC_MESSAGES/django.po
index d311eba9a..e4fecebf2 100644
--- a/modoboa/admin/locale/ja_JP/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/ja_JP/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
"PO-Revision-Date: 2016-09-14 17:06+0000\n"
"Last-Translator: Antoine Nguyen \n"
"Language-Team: Japanese (Japan) (http://www.transifex.com/tonio/modoboa/"
@@ -19,76 +19,132 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/api.py:142
+msgid "Here is your new Modoboa password: {}"
+msgstr ""
+
+#: admin/app_settings.py:20 admin/handlers.py:261
#: admin/templates/admin/_global_statistics_widget.html:11
#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "ドメイン"
-#: admin/app_settings.py:25
+#: admin/app_settings.py:23
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28
+#: admin/app_settings.py:26
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:33
+#: admin/app_settings.py:31
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:36
+#: admin/app_settings.py:34
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
msgstr ""
-#: admin/app_settings.py:44
+#: admin/app_settings.py:42
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:47
+#: admin/app_settings.py:45
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
msgstr ""
-#: admin/app_settings.py:53
+#: admin/app_settings.py:51
+#, fuzzy
+#| msgid "Enable DNSBL checks"
+msgid "Enable SPF checks"
+msgstr "DNSBL チェックを有効にする"
+
+#: admin/app_settings.py:54
+#, fuzzy
+#| msgid "Check every domain against major DNSBL providers"
+msgid "Check if every domain has a valid SPF record"
+msgstr "すべてのドメインを 主な DNSBL プロバイダーでチェックする"
+
+#: admin/app_settings.py:59
+#, fuzzy
+#| msgid "Enable DNSBL checks"
+msgid "Enable DKIM checks"
+msgstr "DNSBL チェックを有効にする"
+
+#: admin/app_settings.py:62
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr ""
+
+#: admin/app_settings.py:68
+#, fuzzy
+#| msgid "Enable DNSBL checks"
+msgid "Enable DMARC checks"
+msgstr "DNSBL チェックを有効にする"
+
+#: admin/app_settings.py:71
+#, fuzzy
+#| msgid "Check every domain against major DNSBL providers"
+msgid "Check if every domain has a valid DMARC record"
+msgstr "すべてのドメインを 主な DNSBL プロバイダーでチェックする"
+
+#: admin/app_settings.py:76
+#, fuzzy
+#| msgid "Enable DNSBL checks"
+msgid "Enable autoconfig checks"
+msgstr "DNSBL チェックを有効にする"
+
+#: admin/app_settings.py:79
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr ""
+
+#: admin/app_settings.py:84
msgid "Enable DNSBL checks"
msgstr "DNSBL チェックを有効にする"
-#: admin/app_settings.py:56
+#: admin/app_settings.py:87
msgid "Check every domain against major DNSBL providers"
msgstr "すべてのドメインを 主な DNSBL プロバイダーでチェックする"
-#: admin/app_settings.py:61
+#: admin/app_settings.py:92
+msgid "Custom DNS server"
+msgstr ""
+
+#: admin/app_settings.py:95
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr ""
+
+#: admin/app_settings.py:100
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:64
+#: admin/app_settings.py:103
msgid ""
"Absolute path of the directory where DKIM private keys will be stored. Make "
"sure this directory belongs to root user and is not readable by the outside "
"world."
msgstr ""
-#: admin/app_settings.py:72
+#: admin/app_settings.py:111
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:76
+#: admin/app_settings.py:115
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
+#: admin/app_settings.py:119 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "メールボックス"
-#: admin/app_settings.py:83
+#: admin/app_settings.py:122
msgid "Handle mailboxes on filesystem"
msgstr "ファイルシステムのメールボックスを操作する"
-#: admin/app_settings.py:86
+#: admin/app_settings.py:125
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -96,19 +152,19 @@ msgstr ""
"Modoboa で、メールボックスの名前の変更もしくは、削除したとき、ファイルシステ"
"ム上のメールボックスも、名前の変更もしくは削除する。"
-#: admin/app_settings.py:92
+#: admin/app_settings.py:131
msgid "Mailboxes owner"
msgstr "メールボックス所有者"
-#: admin/app_settings.py:95
+#: admin/app_settings.py:134
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "ファイルシステム上のメールボックスを所有するUNIXアカウント"
-#: admin/app_settings.py:100
+#: admin/app_settings.py:139
msgid "Default domain quota"
msgstr "デフォルトドメインクォータ"
-#: admin/app_settings.py:103
+#: admin/app_settings.py:142
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -117,91 +173,91 @@ msgstr ""
"用されます。\n"
"値が0の場合は、クォータ制限はありません。"
-#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/app_settings.py:148 admin/forms/domain.py:49 admin/models/domain.py:33
#: admin/templates/admin/domain_detail.html:64
#, fuzzy
#| msgid "Default domain quota"
msgid "Default mailbox quota"
msgstr "デフォルトドメインクォータ"
-#: admin/app_settings.py:112
+#: admin/app_settings.py:151
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
#| "specified. A value of 0 means no quota."
msgid ""
-"Default mailbox quota (in MB) applied to freshly created domains with no "
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
"value specified. A value of 0 means no quota."
msgstr ""
"デフォルトのクォータ (MB) が、値を指定しないで、新しく作成されたドメインに適"
"用されます。\n"
"値が0の場合は、クォータ制限はありません。"
-#: admin/app_settings.py:118
+#: admin/app_settings.py:157
msgid "Automatic account removal"
msgstr "アカウントの自動削除"
-#: admin/app_settings.py:121
+#: admin/app_settings.py:160
msgid "When a mailbox is removed, also remove the associated account"
msgstr "メールボックスが削除されたとき、関連するアカウントも削除します"
-#: admin/app_settings.py:125
+#: admin/app_settings.py:164
msgid "Automatic domain/mailbox creation"
msgstr "ドメインとメールボックスを自動作成"
-#: admin/app_settings.py:128
+#: admin/app_settings.py:167
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
"アカウントが自動的に作成されたとき、ドメインとメールボックを作成します。"
-#: admin/app_settings.py:134
+#: admin/app_settings.py:173
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:137
+#: admin/app_settings.py:176
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
-#: admin/app_settings.py:186 admin/app_settings.py:194
-#: admin/forms/account.py:331
+#: admin/app_settings.py:225 admin/app_settings.py:233
+#: admin/forms/account.py:335
msgid "Must be a positive integer"
msgstr "正の整数でなければいけません"
-#: admin/app_settings.py:204
+#: admin/app_settings.py:243
#, fuzzy
#| msgid "Domain not found."
msgid "Directory not found."
msgstr "ドメインが見つかりません"
-#: admin/app_settings.py:210
+#: admin/app_settings.py:249
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/app_settings.py:224
+#: admin/app_settings.py:263
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/app_settings.py:234
+#: admin/app_settings.py:273
msgid "Administration"
msgstr "管理"
-#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/constants.py:28 admin/forms/alias.py:43
#: admin/templates/admin/_per_domain_statistics_widget.html:7
#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "ドメイン"
-#: admin/constants.py:100
+#: admin/constants.py:29
#, fuzzy
#| msgid "New domain"
msgid "Relay domain"
msgstr "新しいドメイン"
-#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
+#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:125
msgid "Username"
msgstr "ユーザー名"
-#: admin/forms/account.py:40
+#: admin/forms/account.py:34
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
@@ -210,91 +266,97 @@ msgstr ""
"メールボックスを持つユーザーもしくは管理者の有効な電子メールアドレスでなけれ"
"ばなりません。"
-#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
+#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "ロール"
-#: admin/forms/account.py:46
+#: admin/forms/account.py:40
msgid "Choose"
msgstr "選ぶ"
-#: admin/forms/account.py:47
+#: admin/forms/account.py:41
msgid "What level of permission this user will have"
msgstr "このユーザーは、アクセス許可のレベルを持つことになります"
-#: admin/forms/account.py:50 admin/forms/domain.py:227
+#: admin/forms/account.py:44 admin/forms/domain.py:245
#, fuzzy
#| msgid "Invalid address"
msgid "Random password"
msgstr "不正なアドレス"
-#: admin/forms/account.py:52
+#: admin/forms/account.py:46
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
msgstr ""
-#: admin/forms/account.py:58
+#: admin/forms/account.py:52
msgid "Password"
msgstr "パスワード"
-#: admin/forms/account.py:63
+#: admin/forms/account.py:57
msgid "Confirmation"
msgstr "確認"
-#: admin/forms/account.py:66
+#: admin/forms/account.py:60
msgid "Enter the same password as above, for verification."
msgstr "確認のため、上記と同じパスワードを入力します。"
-#: admin/forms/account.py:78
+#: admin/forms/account.py:72
msgid "Enabled"
msgstr "有効化"
-#: admin/forms/account.py:172
+#: admin/forms/account.py:167
msgid "Only super administrators are allowed for this mode"
msgstr "スーパー管理者だけが、このモードのために許可されています。"
-#: admin/forms/account.py:183 admin/forms/account.py:185
-#: admin/forms/domain.py:144 admin/forms/domain.py:273
-#: admin/forms/domain.py:276 admin/serializers.py:241
+#: admin/forms/account.py:178 admin/forms/account.py:180
+#: admin/forms/domain.py:162 admin/forms/domain.py:291
+#: admin/forms/domain.py:294 admin/serializers.py:287
#, fuzzy
#| msgid "A mailbox is required"
msgid "This field is required."
msgstr "メールボックスは必須です"
-#: admin/forms/account.py:191
+#: admin/forms/account.py:186
msgid "The two password fields didn't match."
msgstr "2つのパスワード項目が一致しません"
-#: admin/forms/account.py:204
+#: admin/forms/account.py:199
msgid "You can't disable your own account"
msgstr "あなた自身のアカウントは無効化できません"
-#: admin/forms/account.py:225
+#: admin/forms/account.py:222
msgid "E-mail"
msgstr "電子メール"
-#: admin/forms/account.py:227
+#: admin/forms/account.py:224
msgid "Create an alias using the old address"
msgstr ""
-#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/forms/account.py:229 admin/forms/domain.py:41
+#: admin/templates/admin/account_detail.html:45
#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "クォータ"
-#: admin/forms/account.py:234
+#: admin/forms/account.py:232
+#, fuzzy
+#| msgid ""
+#| "Quota in MB for this mailbox. Define a custom value or use domain's "
+#| "default one. Leave empty to define an unlimited value (not allowed for "
+#| "domain administrators)."
msgid ""
-"Quota in MB for this mailbox. Define a custom value or use domain's default "
-"one. Leave empty to define an unlimited value (not allowed for domain "
-"administrators)."
+"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a "
+"custom value or use domain's default one. Leave empty to define an unlimited "
+"value (not allowed for domain administrators)."
msgstr ""
"このメールボックスのクォータ (MB)\n"
"カスタム値またはドメインのデフォルト値を定義します\n"
"無制限の値を定義する場合は空白のままにします\n"
"(ドメイン管理者には許可されていません)"
-#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/forms/account.py:242 admin/forms/domain.py:31
#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "エイリアス"
@@ -327,68 +389,68 @@ msgid ""
"one address per input. Press ENTER to add a new input."
msgstr ""
-#: admin/forms/account.py:309 admin/forms/alias.py:94
-#: admin/models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:88
+#: admin/models/mailbox.py:310
msgid "Domain does not exist"
msgstr "ドメインは存在しません"
-#: admin/forms/account.py:341
+#: admin/forms/account.py:345
msgid "Local domain does not exist"
msgstr "ローカルドメインは存在しません"
-#: admin/forms/account.py:345 admin/forms/account.py:353
-#: admin/forms/alias.py:97
+#: admin/forms/account.py:349 admin/forms/account.py:357
+#: admin/forms/alias.py:91
msgid "You don't have access to this domain"
msgstr "このドメインにアクセスする権限がありません"
-#: admin/forms/account.py:452
+#: admin/forms/account.py:456
msgid "Domain(s)"
msgstr "ドメイン"
-#: admin/forms/account.py:454
+#: admin/forms/account.py:458
msgid "Domain(s) that user administrates"
msgstr "ユーザーに管理されたドメイン"
-#: admin/forms/account.py:500 admin/forms/account.py:590
-#: admin/forms/domain.py:344 admin/forms/domain.py:414
+#: admin/forms/account.py:505 admin/forms/account.py:595
+#: admin/forms/domain.py:362 admin/forms/domain.py:433
msgid "General"
msgstr "全般"
-#: admin/forms/account.py:504
+#: admin/forms/account.py:509
msgid "Profile"
msgstr ""
-#: admin/forms/account.py:508 admin/forms/account.py:596
+#: admin/forms/account.py:513 admin/forms/account.py:601
msgid "Mail"
msgstr "メール"
-#: admin/forms/account.py:511
+#: admin/forms/account.py:516
msgid "Permissions"
msgstr "アクセス許可"
-#: admin/forms/account.py:579
+#: admin/forms/account.py:584
msgid "Account updated"
msgstr "アカウントを更新しました"
-#: admin/forms/account.py:604
+#: admin/forms/account.py:609
msgid "New account"
msgstr "新しいアカウト"
-#: admin/forms/account.py:614
+#: admin/forms/account.py:619
msgid "Account created"
msgstr "アカウントを作成しました"
-#: admin/forms/alias.py:26
+#: admin/forms/alias.py:20
#, fuzzy
#| msgid "Invalid address"
msgid "Random address"
msgstr "不正なアドレス"
-#: admin/forms/alias.py:29
+#: admin/forms/alias.py:23
msgid "Email address"
msgstr "メールアドレス"
-#: admin/forms/alias.py:31
+#: admin/forms/alias.py:25
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
@@ -397,11 +459,11 @@ msgstr ""
"キャッチオールエイリアスを作成するためには、ドメイン名だけを入力します "
"(@domain.tld)"
-#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "受信者"
-#: admin/forms/alias.py:39
+#: admin/forms/alias.py:33
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
@@ -410,20 +472,20 @@ msgstr ""
"input ごとに1つだけのアドレスを記入し、 ENTER キーを押して、新しい input を追"
"加します"
-#: admin/forms/alias.py:114 admin/forms/alias.py:116
+#: admin/forms/alias.py:108 admin/forms/alias.py:110
msgid "This field is required"
msgstr ""
-#: admin/forms/alias.py:120
+#: admin/forms/alias.py:114
msgid "No recipient defined"
msgstr "受信者が定義されていません"
-#: admin/forms/domain.py:36
+#: admin/forms/domain.py:28
#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "タイプ"
-#: admin/forms/domain.py:42
+#: admin/forms/domain.py:34
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
@@ -432,57 +494,83 @@ msgstr ""
"input ごとに1つの名前を入力して、 ENTER キーを押して、新しい input を追加しま"
"す"
-#: admin/forms/domain.py:47
+#: admin/forms/domain.py:39
msgid "Key selector"
msgstr ""
-#: admin/forms/domain.py:85 admin/handlers.py:171
+#: admin/forms/domain.py:44 admin/serializers.py:30
+#, fuzzy
+#| msgid ""
+#| "Default quota (in MB) applied to freshly created domains with no value "
+#| "specified. A value of 0 means no quota."
+msgid ""
+"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
+"A value of 0 means no quota."
+msgstr ""
+"デフォルトのクォータ (MB) が、値を指定しないで、新しく作成されたドメインに適"
+"用されます。\n"
+"値が0の場合は、クォータ制限はありません。"
+
+#: admin/forms/domain.py:52
+#, fuzzy
+#| msgid ""
+#| "Default quota (in MB) applied to freshly created domains with no value "
+#| "specified. A value of 0 means no quota."
+msgid ""
+"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
+"GB. A value of 0 means no quota."
+msgstr ""
+"デフォルトのクォータ (MB) が、値を指定しないで、新しく作成されたドメインに適"
+"用されます。\n"
+"値が0の場合は、クォータ制限はありません。"
+
+#: admin/forms/domain.py:94 admin/handlers.py:161
msgid "domain alias"
msgstr "ドメインエイリアス"
-#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
+#: admin/forms/domain.py:97 admin/forms/domain.py:173 admin/forms/domain.py:181
#, python-format
msgid "A %s with this name already exists"
msgstr " %s という名前は、すでに存在しています"
-#: admin/forms/domain.py:96 admin/serializers.py:45
+#: admin/forms/domain.py:105 admin/serializers.py:64
#, fuzzy
#| msgid "No information available for this domain."
msgid "No authorized MX record found for this domain"
msgstr "このドメインに関する情報がありません。"
-#: admin/forms/domain.py:108
+#: admin/forms/domain.py:117
msgid "DKIM keys storage directory not configured"
msgstr ""
-#: admin/forms/domain.py:129 admin/serializers.py:55
+#: admin/forms/domain.py:147 admin/serializers.py:82
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/forms/domain.py:134
+#: admin/forms/domain.py:152
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:155 admin/forms/domain.py:160
+#: admin/forms/domain.py:173 admin/forms/domain.py:178
msgid "domain"
msgstr "ドメイン"
-#: admin/forms/domain.py:209
+#: admin/forms/domain.py:227
msgid "Create a domain administrator"
msgstr "ドメイン管理者を作成する"
-#: admin/forms/domain.py:212
+#: admin/forms/domain.py:230
msgid "Automatically create an administrator for this domain"
msgstr "自動的にドメインの管理者を作成する"
-#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/forms/domain.py:235 admin/templates/admin/domain_detail.html:125
#: admin/templates/admin/domain_headers.html:3
#: admin/templates/admin/identity_headers.html:2
#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "名前"
-#: admin/forms/domain.py:220
+#: admin/forms/domain.py:238
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
@@ -490,254 +578,341 @@ msgstr ""
"管理者の名前\n"
"ここでは、ドメイン名を含めないでください、それが自動的に付加されます。"
-#: admin/forms/domain.py:230
+#: admin/forms/domain.py:248
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Generate a random password for the administrator."
msgstr "ドメイン管理者を作成する"
-#: admin/forms/domain.py:236
+#: admin/forms/domain.py:254
msgid "With a mailbox"
msgstr ""
-#: admin/forms/domain.py:239
+#: admin/forms/domain.py:257
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Create a mailbox for the administrator."
msgstr "ドメイン管理者を作成する"
-#: admin/forms/domain.py:245
+#: admin/forms/domain.py:263
msgid "Create aliases"
msgstr "エイリアスを作成"
-#: admin/forms/domain.py:248
+#: admin/forms/domain.py:266
msgid "Automatically create standard aliases for this domain"
msgstr "自動的にドメインの標準的なエイリアスを作成する"
-#: admin/forms/domain.py:264
+#: admin/forms/domain.py:282
msgid "Invalid format"
msgstr "不正なフォーマット"
-#: admin/forms/domain.py:293
+#: admin/forms/domain.py:311
#, python-format
msgid "User '%s' already exists"
msgstr "ユーザー %s はすでに存在します"
-#: admin/forms/domain.py:404
+#: admin/forms/domain.py:423
msgid "Domain modified"
msgstr "ドメインが修正されました"
-#: admin/forms/domain.py:425
+#: admin/forms/domain.py:444
msgid "Options"
msgstr "オプション"
-#: admin/forms/domain.py:433
+#: admin/forms/domain.py:452
msgid "New domain"
msgstr "新しいドメイン"
-#: admin/forms/domain.py:446
+#: admin/forms/domain.py:465
msgid "Domain created"
msgstr "ドメインが作成されました"
-#: admin/forms/export.py:9
-msgid "File name"
-msgstr "ファイル名"
-
-#: admin/forms/export.py:15 admin/forms/import_.py:15
+#: admin/forms/export.py:9 admin/forms/import_.py:13
msgid "Separator"
msgstr "セパレーター"
-#: admin/forms/forward.py:14
+#: admin/forms/forward.py:12
msgid "Recipient(s)"
msgstr "受信者"
-#: admin/forms/forward.py:18
+#: admin/forms/forward.py:16
msgid "Indicate one or more recipients separated by a ','"
msgstr "\",\"で区切られた1つまたは複数の受信者を示します"
-#: admin/forms/forward.py:21
+#: admin/forms/forward.py:19
msgid "Keep local copies"
msgstr "ローカルコピーを保持する"
-#: admin/forms/forward.py:24
+#: admin/forms/forward.py:22
msgid "Forward messages and store copies into your local mailbox"
msgstr "メッセージを転送して、ローカルのメールボックスへコピーを格納します。"
-#: admin/forms/import_.py:13
+#: admin/forms/import_.py:11
msgid "Select a file"
msgstr "ファイルを選択"
-#: admin/forms/import_.py:21
+#: admin/forms/import_.py:19
msgid "Continue on error"
msgstr "エラーのときに続行する"
-#: admin/forms/import_.py:22
+#: admin/forms/import_.py:20
msgid "Don't treat duplicated objects as error"
msgstr "重複したオブジェクトをエラーとして処理しない"
-#: admin/forms/import_.py:40
+#: admin/forms/import_.py:38
msgid "Crypt passwords"
msgstr "パスワード暗号化"
-#: admin/forms/import_.py:42
+#: admin/forms/import_.py:40
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
"ファイルに含まれるパスワードが暗号化されていない場合は、このオプションを"
"チェックしてください"
-#: admin/handlers.py:218
+#: admin/handlers.py:210
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "アカウントのインポートに失敗しました (%s): ドメインが存在しません"
-#: admin/handlers.py:231 admin/models/mailbox.py:342
+#: admin/handlers.py:223 admin/models/mailbox.py:338
msgid "Mailbox {} already exists"
msgstr "メールボックス {} はすでに存在します"
-#: admin/handlers.py:239
+#: admin/handlers.py:231
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "アカウントのインポートに失敗しました (%s): 不正なクォータの値"
-#: admin/handlers.py:279
+#: admin/handlers.py:271
#: admin/templates/admin/_global_statistics_widget.html:17
#: admin/templates/admin/_per_domain_statistics_widget.html:8
#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "ID"
-#: admin/handlers.py:295 admin/templates/admin/forward.html:2
+#: admin/handlers.py:287 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "転送先"
-#: admin/lib.py:44
+#: admin/lib.py:38
msgid "A mailbox is required"
msgstr "メールボックスは必須です"
-#: admin/lib.py:134
+#: admin/lib.py:128
msgid "You are not allowed to import domains"
msgstr "ドメインのインポートは許可されていません"
-#: admin/lib.py:145
+#: admin/lib.py:139
msgid "You are not allowed to import domain aliases."
msgstr "ドメインエイリアスのインポートは許可されていません"
-#: admin/lib.py:183 admin/tests/test_mx.py:122
+#: admin/lib.py:189 admin/tests/test_mx.py:127 admin/tests/test_mx.py:136
+#: admin/tests/test_mx.py:139
#, fuzzy, python-format
#| msgid "No information available for this domain."
-msgid "No DNS records found for %s"
+msgid "No DNS record found for %s"
msgstr "このドメインに関する情報がありません。"
-#: admin/lib.py:185 admin/tests/test_mx.py:125
+#: admin/lib.py:192
#, fuzzy, python-format
#| msgid "No information available for this domain."
-msgid "No MX record for %s"
+msgid "No %(type)s record for %(name)s"
msgstr "このドメインに関する情報がありません。"
-#: admin/lib.py:187 admin/tests/test_mx.py:126
+#: admin/lib.py:196 admin/tests/test_mx.py:131
msgid "No working name servers found"
msgstr ""
-#: admin/lib.py:190 admin/tests/test_mx.py:128
+#: admin/lib.py:199 admin/tests/test_mx.py:133
#, python-format
msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
-#: admin/lib.py:201 admin/tests/test_mx.py:131
-#, python-format
-msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+#: admin/lib.py:227
+#, fuzzy, python-brace-format
+#| msgid "Invalid quota value for domain '%s'"
+msgid "Invalid IP address format for {domain}; {addr}"
+msgstr "不正なドメイン %s のクォータ値"
+
+#: admin/management/commands/subcommands/_import.py:93
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/lib.py:212 admin/tests/test_mx.py:134
+#: admin/management/commands/subcommands/_import.py:105
#, python-format
-msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:136
+#: admin/management/commands/subcommands/_import.py:116
+#, python-format
+msgid "Unable to decode CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:132
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr "[modoboa] ドメイン {} の DNSBL結果"
-#: admin/management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:152
msgid "Domain {} has no MX record"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:167
+#: admin/management/commands/subcommands/_mx.py:163
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:184
+#: admin/management/commands/subcommands/_mx.py:180
msgid "[modoboa] MX issue(s) for domain {}"
msgstr ""
-#: admin/models/alias.py:35 admin/models/mailbox.py:97
+#: admin/models/alias.py:32 admin/models/mailbox.py:95
msgid "address"
msgstr "アドレス"
-#: admin/models/alias.py:37
+#: admin/models/alias.py:34
msgid "The alias address."
msgstr "エイリアスアドレス"
-#: admin/models/alias.py:42 admin/models/domain.py:48
-#: admin/models/domain_alias.py:47
+#: admin/models/alias.py:39 admin/models/domain.py:37
+#: admin/models/domain_alias.py:42
msgid "enabled"
msgstr "有効"
-#: admin/models/alias.py:43 admin/models/domain_alias.py:48
+#: admin/models/alias.py:40 admin/models/domain_alias.py:43
msgid "Check to activate this alias"
msgstr "このエイリアスをアクティブにするために確認してください"
-#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
+#: admin/models/alias.py:45 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr ""
-#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
+#: admin/models/alias.py:47 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr ""
-#: admin/models/alias.py:93
+#: admin/models/alias.py:87
msgid "alias"
msgstr "エイリアス"
-#: admin/models/alias.py:125
+#: admin/models/alias.py:119
msgid "Invalid address"
msgstr "不正なアドレス"
-#: admin/models/alias.py:146
+#: admin/models/alias.py:140
msgid "Local recipient {}@{} not found"
msgstr "ローカル受信者 {}@{} は見つかりません"
-#: admin/models/alias.py:176
+#: admin/models/alias.py:170
#, python-format
msgid "Invalid line: %s"
msgstr "不正な行: %s"
-#: admin/models/alias.py:182
+#: admin/models/alias.py:176
#, python-format
msgid "Domain '%s' does not exist"
msgstr "ドメイン %s は、存在しません"
-#: admin/models/domain.py:30 admin/models/domain_alias.py:39
+#: admin/models/domain.py:27 admin/models/domain_alias.py:34
msgid "name"
msgstr "名前"
-#: admin/models/domain.py:31
+#: admin/models/domain.py:28
msgid "The domain name"
msgstr "ドメイン名"
-#: admin/models/domain.py:35
-#, fuzzy
-#| msgid ""
-#| "Default quota (in MB) applied to freshly created domains with no value "
-#| "specified. A value of 0 means no quota."
-msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
-msgstr ""
-"デフォルトのクォータ (MB) が、値を指定しないで、新しく作成されたドメインに適"
-"用されます。\n"
-"値が0の場合は、クォータ制限はありません。"
+#: admin/models/domain.py:38
+msgid "Check to activate this domain"
+msgstr "このドメインをアクティブするために確認してください"
#: admin/models/domain.py:43
#, fuzzy
+#| msgid "Enable DNSBL checks"
+msgid "Enable DNS checks"
+msgstr "DNSBL チェックを有効にする"
+
+#: admin/models/domain.py:44
+#, fuzzy
+#| msgid "Check to activate this domain"
+msgid "Check to enable DNS checks for this domain"
+msgstr "このドメインをアクティブするために確認してください"
+
+#: admin/models/domain.py:51
+msgid "Enable DKIM signing"
+msgstr ""
+
+#: admin/models/domain.py:53
+msgid ""
+"If you activate this feature, a DKIM key will be generated for this domain."
+msgstr ""
+
+#: admin/models/domain.py:59
+msgid "Key length"
+msgstr ""
+
+#: admin/models/domain.py:312 admin/models/domain_alias.py:67
+msgid "Invalid line"
+msgstr "不正な行"
+
+#: admin/models/domain.py:322
+#, fuzzy
+#| msgid "No information available for this domain."
+msgid "No authorized MX record found for domain {}"
+msgstr "このドメインに関する情報がありません。"
+
+#: admin/models/domain.py:329
+#, fuzzy
+#| msgid "Invalid quota value for domain '%s'"
+msgid "Invalid quota value for domain '{}'"
+msgstr "不正なドメイン %s のクォータ値"
+
+#: admin/models/domain.py:336
+#, fuzzy
+#| msgid "Invalid quota value for domain '%s'"
+msgid "Invalid default mailbox quota value for domain '{}'"
+msgstr "不正なドメイン %s のクォータ値"
+
+#: admin/models/domain.py:341
+msgid "Default mailbox quota cannot be greater than domain quota"
+msgstr ""
+
+#: admin/models/domain_alias.py:35
+msgid "The alias name"
+msgstr "エイリアス名"
+
+#: admin/models/domain_alias.py:37
+msgid "target"
+msgstr "ターゲット"
+
+#: admin/models/domain_alias.py:38
+msgid "The domain this alias points to"
+msgstr "ドメインこのエイリアスポイントへ"
+
+#: admin/models/domain_alias.py:76
+#, python-format
+msgid "Unknown domain %s"
+msgstr "不明なドメイン %s"
+
+#: admin/models/mailbox.py:97
+msgid "Mailbox address (without the @domain.tld part)"
+msgstr "メールボックスアドレス (@domain.tld 部分なし)"
+
+#: admin/models/mailbox.py:160
+#, python-format
+msgid "Failed to retrieve mailbox location (%s)"
+msgstr "メールボックスの場所の取得に失敗しました (%s)"
+
+#: admin/models/mailbox.py:253
+msgid "A quota is required"
+msgstr "クォータは必須です"
+
+#: admin/models/mailbox.py:259
+#, fuzzy
+#| msgid "Domain created"
+msgid "Domain quota exceeded"
+msgstr "ドメインが作成されました"
+
+#: admin/serializers.py:37
+#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
#| "specified. A value of 0 means no quota."
@@ -747,133 +922,42 @@ msgstr ""
"用されます。\n"
"値が0の場合は、クォータ制限はありません。"
-#: admin/models/domain.py:49
-msgid "Check to activate this domain"
-msgstr "このドメインをアクティブするために確認してください"
-
-#: admin/models/domain.py:54
-#, fuzzy
-#| msgid "Enable DNSBL checks"
-msgid "Enable DNS checks"
-msgstr "DNSBL チェックを有効にする"
-
-#: admin/models/domain.py:55
-#, fuzzy
-#| msgid "Check to activate this domain"
-msgid "Check to enable DNS checks for this domain"
-msgstr "このドメインをアクティブするために確認してください"
-
-#: admin/models/domain.py:62
-msgid "Enable DKIM signing"
-msgstr ""
-
-#: admin/models/domain.py:64
-msgid ""
-"If you activate this feature, a DKIM key will be generated for this domain."
-msgstr ""
-
-#: admin/models/domain.py:70
-msgid "Key length"
-msgstr ""
-
-#: admin/models/domain.py:285 admin/models/domain_alias.py:74
-msgid "Invalid line"
-msgstr "不正な行"
-
-#: admin/models/domain.py:295
-#, fuzzy
-#| msgid "No information available for this domain."
-msgid "No authorized MX record found for domain {}"
-msgstr "このドメインに関する情報がありません。"
-
-#: admin/models/domain.py:302
-#, fuzzy
-#| msgid "Invalid quota value for domain '%s'"
-msgid "Invalid quota value for domain '{}'"
-msgstr "不正なドメイン %s のクォータ値"
-
-#: admin/models/domain.py:309
-#, fuzzy
-#| msgid "Invalid quota value for domain '%s'"
-msgid "Invalid default mailbox quota value for domain '{}'"
-msgstr "不正なドメイン %s のクォータ値"
-
-#: admin/models/domain.py:314
-msgid "Default mailbox quota cannot be greater than domain quota"
-msgstr ""
-
-#: admin/models/domain_alias.py:40
-msgid "The alias name"
-msgstr "エイリアス名"
-
-#: admin/models/domain_alias.py:42
-msgid "target"
-msgstr "ターゲット"
-
-#: admin/models/domain_alias.py:43
-msgid "The domain this alias points to"
-msgstr "ドメインこのエイリアスポイントへ"
-
-#: admin/models/domain_alias.py:83
-#, python-format
-msgid "Unknown domain %s"
-msgstr "不明なドメイン %s"
-
-#: admin/models/mailbox.py:99
-msgid "Mailbox address (without the @domain.tld part)"
-msgstr "メールボックスアドレス (@domain.tld 部分なし)"
-
-#: admin/models/mailbox.py:165
-#, python-format
-msgid "Failed to retrieve mailbox location (%s)"
-msgstr "メールボックスの場所の取得に失敗しました (%s)"
-
-#: admin/models/mailbox.py:258
-msgid "A quota is required"
-msgstr "クォータは必須です"
-
-#: admin/models/mailbox.py:264
-#, fuzzy
-#| msgid "Domain created"
-msgid "Domain quota exceeded"
-msgstr "ドメインが作成されました"
-
-#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
+#: admin/serializers.py:107 admin/serializers.py:312 admin/serializers.py:410
msgid "Permission denied."
msgstr "アクセス拒否"
-#: admin/serializers.py:118
+#: admin/serializers.py:158
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr "管理しているドメインのリスト (リセーラーとドメイン管理者のみ)"
-#: admin/serializers.py:218
+#: admin/serializers.py:262
msgid "Not allowed for this role."
msgstr "このロールには許可されていません"
-#: admin/serializers.py:228
+#: admin/serializers.py:274
msgid "Must be equal to mailbox full_address"
msgstr "メールボックス full_address に等しくなければなりません"
-#: admin/serializers.py:253
+#: admin/serializers.py:299
msgid "Local domain {} does not exist"
msgstr "ローカルドメイン {} は、存在しません"
-#: admin/serializers.py:347
+#: admin/serializers.py:397
msgid "A list of recipient"
msgstr ""
-#: admin/serializers.py:358
+#: admin/serializers.py:408
msgid "Domain not found."
msgstr "ドメインが見つかりません"
-#: admin/serializers.py:407
+#: admin/serializers.py:457
#, fuzzy
#| msgid "You don't have access to this domain"
msgid "You don't have access to this domain."
msgstr "このドメインにアクセスする権限がありません"
-#: admin/serializers.py:415
+#: admin/serializers.py:465
#, fuzzy
#| msgid "You don't have access to this domain"
msgid "You don't have access to this mailbox."
@@ -912,6 +996,19 @@ msgstr "無効化"
msgid "Awaiting checks"
msgstr ""
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+#, fuzzy
+#| msgid "No information available for this domain."
+msgid "No record found"
+msgstr "このドメインに関する情報がありません。"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
+msgstr ""
+
#: admin/templates/admin/_global_statistics_widget.html:4
#, fuzzy
#| msgid "Statistics"
@@ -1022,7 +1119,8 @@ msgid "Address"
msgstr "アドレス"
#: admin/templates/admin/dnsbl_domain_detail.html:12
-#: admin/templates/admin/domain_detail.html:96
+#: admin/templates/admin/domain_detail.html:100
+#: admin/templates/admin/messages_log_headers.html:6
msgid "Status"
msgstr "ステータス"
@@ -1054,11 +1152,8 @@ msgstr "メールボックスエイリアス"
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domain_detail.html:65
-#: admin/templates/admin/domain_general_form.html:4
-#: admin/templates/admin/domain_general_form.html:5
#: admin/templates/admin/domains_quotas.html:11
#: admin/templates/admin/domains_quotas.html:12
-#: admin/templates/admin/mailform.html:7
#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
@@ -1080,32 +1175,36 @@ msgstr ""
msgid "allocated"
msgstr ""
-#: admin/templates/admin/domain_detail.html:91
+#: admin/templates/admin/domain_detail.html:92
msgid "DNS"
msgstr ""
-#: admin/templates/admin/domain_detail.html:103
+#: admin/templates/admin/domain_detail.html:107
msgid "DKIM key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:107
+#: admin/templates/admin/domain_detail.html:111
msgid "Show key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:110
+#: admin/templates/admin/domain_detail.html:113
+msgid "Generate new key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:115
msgid "Not generated"
msgstr ""
-#: admin/templates/admin/domain_detail.html:117
+#: admin/templates/admin/domain_detail.html:122
msgid "Administrators"
msgstr "管理者"
-#: admin/templates/admin/domain_detail.html:129
-#: admin/templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:134
+#: admin/templatetags/admin_tags.py:265
msgid "Remove this permission"
msgstr "このパーミッションを削除"
-#: admin/templates/admin/domain_detail.html:134
+#: admin/templates/admin/domain_detail.html:139
msgid "No domain administrator defined yet."
msgstr "ドメイン管理者が指定されていません"
@@ -1163,7 +1262,7 @@ msgstr "無効化"
msgid "Automatically forward emails to another address"
msgstr "電子メールをほかのアドレスへ自動的に転送します"
-#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:87
msgid "Update"
msgstr "更新"
@@ -1258,6 +1357,22 @@ msgstr "値を選択してください"
msgid "Use domain default value"
msgstr "ドメインのデフォルト値を使う"
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:3
+msgid "Date"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:4
+msgid "From"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:5
+msgid "To"
+msgstr ""
+
#: admin/templates/admin/mx_domain_detail.html:11
#, fuzzy
#| msgid "Update"
@@ -1302,133 +1417,182 @@ msgstr ""
msgid "Search"
msgstr "検索"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_m"
msgstr "enabled_m"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_f"
msgstr "enabled_f"
-#: admin/templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:45
msgid "List domains"
msgstr "ドメイン一覧を表示"
-#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:50 admin/templatetags/admin_tags.py:105
msgid "List quotas"
msgstr "クォータ一覧を表示"
-#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
-#: admin/views/import_.py:89 admin/views/import_.py:111
+#: admin/templatetags/admin_tags.py:62 admin/templatetags/admin_tags.py:110
+#: admin/views/import_.py:85 admin/views/import_.py:107
msgid "Import"
msgstr "インポート"
-#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
-#: admin/views/export.py:43 admin/views/export.py:71
+#: admin/templatetags/admin_tags.py:68 admin/templatetags/admin_tags.py:116
+#: admin/views/export.py:39 admin/views/export.py:67
msgid "Export"
msgstr "エクスポート"
-#: admin/templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:100
msgid "List identities"
msgstr "ID 一覧を表示"
-#: admin/templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:135
msgid "View the domain's identities"
msgstr "ドメインの ID を表示"
-#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
-#: admin/templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:141 admin/templatetags/admin_tags.py:184
+#: admin/templatetags/admin_tags.py:197
msgid "Edit {}"
msgstr "{} を編集"
-#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
-#: admin/templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:151 admin/templatetags/admin_tags.py:188
+#: admin/templatetags/admin_tags.py:202
#, python-format
msgid "Delete %s?"
msgstr "%s を削除しますか?"
-#: admin/views/alias.py:35
+#: admin/tests/test_mx.py:130
+#, fuzzy, python-format
+#| msgid "No information available for this domain."
+msgid "No MX record for %s"
+msgstr "このドメインに関する情報がありません。"
+
+#: admin/tests/test_mx.py:142 admin/tests/test_mx.py:145
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/views/alias.py:29
msgid "Alias with this name already exists"
msgstr "このエイリアス名がすでに存在しています"
-#: admin/views/alias.py:60
+#: admin/views/alias.py:54
msgid "Create"
msgstr "作成"
-#: admin/views/alias.py:72
+#: admin/views/alias.py:66
msgid "New alias"
msgstr "新しいエイリアス"
-#: admin/views/alias.py:73
+#: admin/views/alias.py:67
msgid "Alias created"
msgstr "エイリアスが作成されました"
-#: admin/views/alias.py:85
+#: admin/views/alias.py:79
msgid "Alias modified"
msgstr "エイリアスは修正されました"
-#: admin/views/alias.py:109
+#: admin/views/alias.py:103
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] ""
-#: admin/views/dns.py:32
+#: admin/views/dns.py:28
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:55
+#: admin/views/dns.py:51
msgid "DNSBL summary for {}"
msgstr "{} のDNSBL 要約"
-#: admin/views/domain.py:188
+#: admin/views/domain.py:202
msgid "You can't delete your own domain"
msgstr "あなた自身のドメインは削除できません"
-#: admin/views/domain.py:191
+#: admin/views/domain.py:205
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "ドメインを削除しました"
-#: admin/views/export.py:42
+#: admin/views/export.py:38
msgid "Export identities"
msgstr "ID をエクスポート"
-#: admin/views/export.py:70
+#: admin/views/export.py:66
msgid "Export domains"
msgstr "ドメインをエクスポート"
-#: admin/views/identity.py:113 admin/views/identity.py:206
-#: admin/views/identity.py:211
+#: admin/views/identity.py:107 admin/views/identity.py:201
+#: admin/views/identity.py:206
msgid "Invalid request"
msgstr "不正なリクエスト"
-#: admin/views/identity.py:196
+#: admin/views/identity.py:191
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "アカウントを削除しました"
-#: admin/views/import_.py:65
+#: admin/views/import_.py:61
#, python-format
msgid "Object already exists: %s"
msgstr "オブジェクトはすでに存在します: %s"
-#: admin/views/import_.py:69
+#: admin/views/import_.py:65
#, python-format
msgid "%d objects imported successfully"
msgstr "%d オブジェクトのインポートに成功しました"
-#: admin/views/import_.py:88
+#: admin/views/import_.py:84
msgid "Import domains"
msgstr "ドメインをインポート"
-#: admin/views/import_.py:110
+#: admin/views/import_.py:106
msgid "Import identities"
msgstr "ID をインポート"
-#: admin/views/user.py:40
+#: admin/views/user.py:36
msgid "Forward updated"
msgstr "転送先が更新されました"
+#~ msgid "File name"
+#~ msgstr "ファイル名"
+
+#, fuzzy
+#~| msgid "No information available for this domain."
+#~ msgid "No {type} record found for MX {mx}"
+#~ msgstr "このドメインに関する情報がありません。"
+
+#, fuzzy
+#~| msgid "No information available for this domain."
+#~ msgid "No A record found for MX %(domain)s"
+#~ msgstr "このドメインに関する情報がありません。"
+
+#, fuzzy
+#~| msgid "No information available for this domain."
+#~ msgid "No AAAA record found for MX %(domain)s"
+#~ msgstr "このドメインに関する情報がありません。"
+
+#, fuzzy
+#~| msgid ""
+#~| "Default quota (in MB) applied to freshly created domains with no value "
+#~| "specified. A value of 0 means no quota."
+#~ msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
+#~ msgstr ""
+#~ "デフォルトのクォータ (MB) が、値を指定しないで、新しく作成されたドメインに"
+#~ "適用されます。\n"
+#~ "値が0の場合は、クォータ制限はありません。"
+
+#, fuzzy
+#~| msgid "No information available for this domain."
+#~ msgid "No DNS records found without MX for %s"
+#~ msgstr "このドメインに関する情報がありません。"
+
+#, fuzzy
+#~| msgid "No information available for this domain."
+#~ msgid "No DNS records found without MX for %(domain)s"
+#~ msgstr "このドメインに関する情報がありません。"
+
#~ msgid ""
#~ "Default quota in MB applied to mailboxes. Leave empty to use the default "
#~ "value."
diff --git a/modoboa/admin/locale/ja_JP/LC_MESSAGES/djangojs.po b/modoboa/admin/locale/ja_JP/LC_MESSAGES/djangojs.po
index c17c9dabc..14aee69cf 100644
--- a/modoboa/admin/locale/ja_JP/LC_MESSAGES/djangojs.po
+++ b/modoboa/admin/locale/ja_JP/LC_MESSAGES/djangojs.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-04 22:08+0100\n"
+"POT-Creation-Date: 2020-03-09 16:48+0100\n"
"PO-Revision-Date: 2016-06-07 07:01+0000\n"
"Last-Translator: cwatanab \n"
"Language-Team: Japanese (Japan) (http://www.transifex.com/tonio/modoboa/"
@@ -19,19 +19,19 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: admin/static/admin/js/admin.js:131
+#: admin/static/admin/js/admin.js:129 admin/static/admin/js/admin.js:174
msgid "No more domain to show"
msgstr "表示するドメインはありません。"
-#: admin/static/admin/js/admin.js:150
+#: admin/static/admin/js/admin.js:149
msgid "Do not delete domain directory"
msgstr "ドメインディレクトリを削除しないでください"
-#: admin/static/admin/js/admin.js:152
+#: admin/static/admin/js/admin.js:151
msgid "This operation will remove ALL data associated to this domain."
msgstr "この操作は、このドメインに関連するすべてのデータを削除します。"
-#: admin/static/admin/js/admin.js:153
+#: admin/static/admin/js/admin.js:152
msgid ""
"This operation will remove all data associated to this domain, excepting "
"accounts."
@@ -39,18 +39,18 @@ msgstr ""
"この操作は、アカウントを除いたこのドメインに関連するすべてのデータを削除しま"
"す。"
-#: admin/static/admin/js/admin.js:236
+#: admin/static/admin/js/admin.js:177 admin/static/admin/js/admin.js:433
+msgid "No more quota to show"
+msgstr "表示するクォータはありません"
+
+#: admin/static/admin/js/admin.js:306
msgid "No domain administrator defined"
msgstr "ドメイン管理者が指定されていません"
-#: admin/static/admin/js/admin.js:291 admin/static/admin/js/admin.js:359
+#: admin/static/admin/js/admin.js:362 admin/static/admin/js/admin.js:430
msgid "No more identity to show"
msgstr "表示する ID はありません"
-#: admin/static/admin/js/admin.js:333
+#: admin/static/admin/js/admin.js:404
msgid "Do not delete mailbox directory"
msgstr "メールボックスディレクトリを削除しないでください"
-
-#: admin/static/admin/js/admin.js:362
-msgid "No more quota to show"
-msgstr "表示するクォータはありません"
diff --git a/modoboa/admin/locale/nl_NL/LC_MESSAGES/django.po b/modoboa/admin/locale/nl_NL/LC_MESSAGES/django.po
index 001c339d7..b573f4e19 100644
--- a/modoboa/admin/locale/nl_NL/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/nl_NL/LC_MESSAGES/django.po
@@ -4,92 +4,166 @@
#
# Translators:
# Andrew , 2014
+# Chris de Gelder , 2017
+# Harrie v.d. Vegt , 2016
+# MC Moerkerk , 2019
+# Peter van den Heuvel , 2017
+# Remco de Hiep , 2017
+# R Kloosterman , 2016
+# Ronald Otto , 2017
# TuxBrother , 2014
+# Tuxis Internet Engineering V.O.F. , 2016
+# Tuxis Internet Engineering V.O.F. , 2017-2018
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
-"PO-Revision-Date: 2014-12-31 11:37+0000\n"
-"Last-Translator: TuxBrother \n"
-"Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/"
-"modoboa/language/nl_NL/)\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
+"PO-Revision-Date: 2019-05-30 07:01+0000\n"
+"Last-Translator: MC Moerkerk \n"
+"Language-Team: Dutch (Netherlands) (http://www.transifex.com/tonio/modoboa/"
+"language/nl_NL/)\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/api.py:142
+msgid "Here is your new Modoboa password: {}"
+msgstr ""
+
+#: admin/app_settings.py:20 admin/handlers.py:261
#: admin/templates/admin/_global_statistics_widget.html:11
#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domeinen"
-#: admin/app_settings.py:25
+#: admin/app_settings.py:23
msgid "Enable MX checks"
-msgstr ""
+msgstr "MX Controles inschakelen"
-#: admin/app_settings.py:28
+#: admin/app_settings.py:26
msgid "Check that every domain has a valid MX record"
-msgstr "Controlleer of ieder domein een valide MX record heeft"
+msgstr "Controleer dat ieder domein een geldig MX-record heeft"
-#: admin/app_settings.py:33
+#: admin/app_settings.py:31
msgid "Valid MXs"
-msgstr "Correcte MX-records"
+msgstr "Geldige MX'en"
-#: admin/app_settings.py:36
+#: admin/app_settings.py:34
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
msgstr ""
+"Een lijst van IP-adressen waaraan alle MX-records moeten voldoen. Er zal een "
+"waarschuwing getoont worden voor records die niet overeenkomen."
-#: admin/app_settings.py:44
+#: admin/app_settings.py:42
msgid "New domains must use authorized MX(s)"
-msgstr ""
+msgstr "Nieuwe domeinen moeten geauthoriseerde MX-record(s) gebruiken."
-#: admin/app_settings.py:47
+#: admin/app_settings.py:45
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
-msgstr ""
+msgstr "Een domein niet aanmaken als het MX-record het adres niet gebruikt."
-#: admin/app_settings.py:53
+#: admin/app_settings.py:51
+#, fuzzy
+#| msgid "Enable DNS checks"
+msgid "Enable SPF checks"
+msgstr "Schakel DNS checks in."
+
+#: admin/app_settings.py:54
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid SPF record"
+msgstr "Controleer dat ieder domein een geldig MX-record heeft"
+
+#: admin/app_settings.py:59
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DKIM checks"
+msgstr "MX Controles inschakelen"
+
+#: admin/app_settings.py:62
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr "Controleer dat ieder domein een geldig MX-record heeft"
+
+#: admin/app_settings.py:68
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DMARC checks"
+msgstr "MX Controles inschakelen"
+
+#: admin/app_settings.py:71
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid DMARC record"
+msgstr "Controleer dat ieder domein een geldig MX-record heeft"
+
+#: admin/app_settings.py:76
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable autoconfig checks"
+msgstr "MX Controles inschakelen"
+
+#: admin/app_settings.py:79
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr "Controleer dat ieder domein een geldig MX-record heeft"
+
+#: admin/app_settings.py:84
msgid "Enable DNSBL checks"
-msgstr "Zet DNSBL controle aan"
+msgstr "DNSBL Controles inschakelen"
-#: admin/app_settings.py:56
+#: admin/app_settings.py:87
msgid "Check every domain against major DNSBL providers"
-msgstr "Controlleer ieder domein bij de grote DNSBL providers"
+msgstr "Controleer ieder domein tegen de bekende DNSBL providers"
-#: admin/app_settings.py:61
+#: admin/app_settings.py:92
+msgid "Custom DNS server"
+msgstr "Eigen DNS server"
+
+#: admin/app_settings.py:95
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr "Gebruik een eigen DNS server in plaats van lokale server configuratie"
+
+#: admin/app_settings.py:100
msgid "DKIM keys storage directory"
-msgstr ""
+msgstr "DKIM Key opslagdirectory"
-#: admin/app_settings.py:64
+#: admin/app_settings.py:103
msgid ""
"Absolute path of the directory where DKIM private keys will be stored. Make "
"sure this directory belongs to root user and is not readable by the outside "
"world."
msgstr ""
+"Absolute pad van de directory waar DKIM private keys worden opgeslagen. "
+"Verzeker u ervan dat deze directory van de user root is en niet leesbaar "
+"voor andere gebruikers."
-#: admin/app_settings.py:72
+#: admin/app_settings.py:111
msgid "Default DKIM key length"
-msgstr ""
+msgstr "Standaard DKIM key lengte"
-#: admin/app_settings.py:76
+#: admin/app_settings.py:115
msgid "Default length in bits for newly generated DKIM keys."
-msgstr ""
+msgstr "Standaard lengte in bits voor nieuw gegenereerde DKIM keys."
-#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
+#: admin/app_settings.py:119 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Mailboxen"
-#: admin/app_settings.py:83
+#: admin/app_settings.py:122
msgid "Handle mailboxes on filesystem"
msgstr "Pas mailboxen op het bestandssysteem aan"
-#: admin/app_settings.py:86
+#: admin/app_settings.py:125
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -97,113 +171,107 @@ msgstr ""
"Hernoem of verwijder mailboxen op het bestandssysteem wanner ze hernoemd of "
"verwijderd worden in Modoboa."
-#: admin/app_settings.py:92
+#: admin/app_settings.py:131
msgid "Mailboxes owner"
msgstr "Eigenaar van de mailboxen"
-#: admin/app_settings.py:95
+#: admin/app_settings.py:134
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr ""
"De UNIX account die de rechten heeft tot de mailboxen op het bestandssysteem"
-#: admin/app_settings.py:100
+#: admin/app_settings.py:139
msgid "Default domain quota"
msgstr "Standaard domein quota"
-#: admin/app_settings.py:103
+#: admin/app_settings.py:142
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
msgstr ""
"Standaard quota (in MB) om op nieuw aangemaakte domeinen zonder waarde toe "
-"te passen. Een waarde van 0 betekend geen quota."
+"te passen. Een waarde van 0 betekent geen quota."
-#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/app_settings.py:148 admin/forms/domain.py:49 admin/models/domain.py:33
#: admin/templates/admin/domain_detail.html:64
-#, fuzzy
-#| msgid "Default domain quota"
msgid "Default mailbox quota"
-msgstr "Standaard domein quota"
+msgstr "Standaard mailbox quota"
-#: admin/app_settings.py:112
+#: admin/app_settings.py:151
#, fuzzy
#| msgid ""
-#| "Default quota (in MB) applied to freshly created domains with no value "
-#| "specified. A value of 0 means no quota."
+#| "Default mailbox quota (in MB) applied to freshly created domains with no "
+#| "value specified. A value of 0 means no quota."
msgid ""
-"Default mailbox quota (in MB) applied to freshly created domains with no "
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
"value specified. A value of 0 means no quota."
msgstr ""
-"Standaard quota (in MB) om op nieuw aangemaakte domeinen zonder waarde toe "
-"te passen. Een waarde van 0 betekend geen quota."
+"Standaard mailbox-quota (in MB) toegepast op nieuw aangemaakte domeinen "
+"zonder waarde gespecificeerd. Een waarde van 0 betekent geen quota."
-#: admin/app_settings.py:118
+#: admin/app_settings.py:157
msgid "Automatic account removal"
msgstr "Automatish een account verwijderen"
-#: admin/app_settings.py:121
+#: admin/app_settings.py:160
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
-"Als een mailbox word verwijderd, verwijder dan ook de bijbehorende account"
+"Als een mailbox wordt verwijderd, verwijder dan ook het bijbehorende account"
-#: admin/app_settings.py:125
+#: admin/app_settings.py:164
msgid "Automatic domain/mailbox creation"
msgstr "Domein en mailbox automatisch aanmaken"
-#: admin/app_settings.py:128
+#: admin/app_settings.py:167
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
"Maak een domein en mailbox aan wanneer een account automatisch is aangemaakt."
-#: admin/app_settings.py:134
+#: admin/app_settings.py:173
msgid "Create an alias when a mailbox is renamed"
-msgstr "Maak een alias aan wanneer een mailbox word hernoemd"
+msgstr "Maak een alias aan als een mailbox hernoemd wordt."
-#: admin/app_settings.py:137
+#: admin/app_settings.py:176
msgid "Create an alias using the old address when a mailbox is renamed."
-msgstr ""
-"Maak een alias aan met het oude adres wanneer een mailbox word hernoemd"
+msgstr "Maak een alias aan voor het oude adres als een mailbox hernoemd wordt."
-#: admin/app_settings.py:186 admin/app_settings.py:194
-#: admin/forms/account.py:331
+#: admin/app_settings.py:225 admin/app_settings.py:233
+#: admin/forms/account.py:335
msgid "Must be a positive integer"
msgstr "Dit moet een positive integer zijn."
-#: admin/app_settings.py:204
-#, fuzzy
-#| msgid "Domain modified"
+#: admin/app_settings.py:243
msgid "Directory not found."
-msgstr "Domein gewijzigd"
+msgstr "Directory niet gevonden."
-#: admin/app_settings.py:210
+#: admin/app_settings.py:249
msgid "openssl not found, please make sure it is installed."
msgstr ""
+"Openssl kan niet gevonden worden. Verzeker u ervan dat dit geinstalleerd is."
-#: admin/app_settings.py:224
+#: admin/app_settings.py:263
msgid "Define at least one authorized network / address"
-msgstr ""
+msgstr "Definieer ten minste 1 geautoriseerd netwerk / adres"
-#: admin/app_settings.py:234
+#: admin/app_settings.py:273
msgid "Administration"
msgstr "Administratie"
-#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/constants.py:28 admin/forms/alias.py:43
#: admin/templates/admin/_per_domain_statistics_widget.html:7
#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Domein"
-#: admin/constants.py:100
-#, fuzzy
-#| msgid "New domain"
+#: admin/constants.py:29
msgid "Relay domain"
-msgstr "Nieuw domein"
+msgstr "Doorstuur domein"
-#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
+#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:125
msgid "Username"
msgstr "Gebruikersnaam"
-#: admin/forms/account.py:40
+#: admin/forms/account.py:34
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
@@ -211,235 +279,212 @@ msgstr ""
"De naam van de gebruiker. Moet een geldig e-mail adres zijn voor gebruikers "
"of administrators met een mailbox."
-#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
+#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29
msgid "Role"
-msgstr "Rol"
+msgstr "Regel"
-#: admin/forms/account.py:46
+#: admin/forms/account.py:40
msgid "Choose"
msgstr "Kiezen"
-#: admin/forms/account.py:47
+#: admin/forms/account.py:41
msgid "What level of permission this user will have"
msgstr "Welk niveau van rechten deze gebruiker zal hebben"
-#: admin/forms/account.py:50 admin/forms/domain.py:227
-#, fuzzy
-#| msgid "Invalid request"
+#: admin/forms/account.py:44 admin/forms/domain.py:245
msgid "Random password"
-msgstr "Willekeuring wachtwoord"
+msgstr "Willekeurig wachtwoord"
-#: admin/forms/account.py:52
+#: admin/forms/account.py:46
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
msgstr ""
+"Genereer een willekeurig wachtwoord. Als u dit account bijwerkt en deze "
+"optie aanvinkt wordt een nieuw wachtwoord gegenereerd."
-#: admin/forms/account.py:58
+#: admin/forms/account.py:52
msgid "Password"
msgstr "Wachtwoord"
-#: admin/forms/account.py:63
+#: admin/forms/account.py:57
msgid "Confirmation"
msgstr "Bevestiging"
-#: admin/forms/account.py:66
+#: admin/forms/account.py:60
msgid "Enter the same password as above, for verification."
-msgstr "Herhaal wachtwoord ter verificatie"
+msgstr "Herhaal wachtwoord (voor verificatie)"
-#: admin/forms/account.py:78
+#: admin/forms/account.py:72
msgid "Enabled"
msgstr "Actief"
-#: admin/forms/account.py:172
+#: admin/forms/account.py:167
msgid "Only super administrators are allowed for this mode"
-msgstr "Alleen super administrators mogen dit"
+msgstr "Alleen hoofdbeheerders hebben toegang tot deze modus"
-#: admin/forms/account.py:183 admin/forms/account.py:185
-#: admin/forms/domain.py:144 admin/forms/domain.py:273
-#: admin/forms/domain.py:276 admin/serializers.py:241
-#, fuzzy
-#| msgid "A mailbox is required"
+#: admin/forms/account.py:178 admin/forms/account.py:180
+#: admin/forms/domain.py:162 admin/forms/domain.py:291
+#: admin/forms/domain.py:294 admin/serializers.py:287
msgid "This field is required."
-msgstr "Een mailbox is benodigd"
+msgstr "Dit veld is benodigd."
-#: admin/forms/account.py:191
+#: admin/forms/account.py:186
msgid "The two password fields didn't match."
msgstr "De wachtwoorden komen niet overeen."
-#: admin/forms/account.py:204
+#: admin/forms/account.py:199
msgid "You can't disable your own account"
msgstr "U kunt uw eigen account niet uitschakelen"
-#: admin/forms/account.py:225
+#: admin/forms/account.py:222
msgid "E-mail"
msgstr "E-mail"
-#: admin/forms/account.py:227
+#: admin/forms/account.py:224
msgid "Create an alias using the old address"
-msgstr "Maak een alias aan met het oude adres"
+msgstr "Maak een alias aan voor het oude adres"
-#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/forms/account.py:229 admin/forms/domain.py:41
+#: admin/templates/admin/account_detail.html:45
#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Quota"
-#: admin/forms/account.py:234
+#: admin/forms/account.py:232
msgid ""
-"Quota in MB for this mailbox. Define a custom value or use domain's default "
-"one. Leave empty to define an unlimited value (not allowed for domain "
-"administrators)."
+"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a "
+"custom value or use domain's default one. Leave empty to define an unlimited "
+"value (not allowed for domain administrators)."
msgstr ""
-"Quota in MB voor deze mailbox. Geef een aangepaste waarde of gebruik de "
-"stanaard waarde van het domein. Laat leeg om een ongelimiteerde waarde te "
-"definieren (niet toegestaan voor domein administrators)."
+"Quota voor deze mailbox kan uitgedrukt worden ik KB, MB (standaard) of GB. "
+"Geef een aangepaste waarde of gebruik de standaard voor dit domein. Laat dit "
+"leeg voor een ongelimiteerde waarde (niet toegestaan voor domein "
+"administrators)."
-#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/forms/account.py:242 admin/forms/domain.py:31
#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias(sen)"
#: admin/forms/account.py:245
-#, fuzzy
-#| msgid ""
-#| "Alias(es) of this mailbox. Indicate only one address per input, press "
-#| "ENTER to add a new input. Use the '*' character to create a 'catchall' "
-#| "alias (ex: *@domain.tld)."
msgid ""
"Alias(es) of this mailbox. Indicate only one address per input, press ENTER "
"to add a new input. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
msgstr ""
"Alias(en) van deze mailbox. Geef slechts een adres per regel op, en toets "
-"ENTER om een nieuwe regel te krijgen. Gebruik een wildcard '*' om een 'catch-"
-"all' adres te maken (bijvoorbeeld: *@domein.tld)."
+"ENTER om een nieuwe regel te krijgen. Om een 'catch-all'-adres te maken "
+"voert u alleen het domein in (bijvoorbeeld: @domein.tld)."
#: admin/forms/account.py:251
-#, fuzzy
-#| msgid "Invalid request"
msgid "Sender addresses"
-msgstr "Ongeldig verzoek"
+msgstr "Afzenderadressen"
#: admin/forms/account.py:254
-#, fuzzy
-#| msgid ""
-#| "Mailbox(es) this alias will point to. Indicate only one address per "
-#| "input, press ENTER to add a new input."
msgid ""
"Additional sender address(es) for this account. The user will be allowed to "
"send emails using this address, even if it does not exist locally. Indicate "
"one address per input. Press ENTER to add a new input."
msgstr ""
-"Mailbox(en) waarnaar deze alias zal verwijzen. Geef slechts een adres per "
-"regel op, en toets ENTER om een nieuwe regel te krijgen."
+"Extra afzenderadres(sen) voor dit account. De gebruiker wordt toegestaan om "
+"dit adres als verzender te gebruiken voor uitgaande berichten, ook al "
+"bestaat dit adres niet lokaal. Geef slechts een adres per regel op, en toets "
+"ENTER om een nieuwe regel te krijgen."
-#: admin/forms/account.py:309 admin/forms/alias.py:94
-#: admin/models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:88
+#: admin/models/mailbox.py:310
msgid "Domain does not exist"
msgstr "Domein bestaat niet"
-#: admin/forms/account.py:341
-#, fuzzy
-#| msgid "Domain does not exist"
+#: admin/forms/account.py:345
msgid "Local domain does not exist"
-msgstr "Domein bestaat niet"
+msgstr "Domein bestaat niet lokaal"
-#: admin/forms/account.py:345 admin/forms/account.py:353
-#: admin/forms/alias.py:97
+#: admin/forms/account.py:349 admin/forms/account.py:357
+#: admin/forms/alias.py:91
msgid "You don't have access to this domain"
msgstr "U heeft geen toegang tot dit domein"
-#: admin/forms/account.py:452
+#: admin/forms/account.py:456
msgid "Domain(s)"
msgstr "Domein(en)"
-#: admin/forms/account.py:454
+#: admin/forms/account.py:458
msgid "Domain(s) that user administrates"
msgstr "Domein(en) die gebruiker mag beheren"
-#: admin/forms/account.py:500 admin/forms/account.py:590
-#: admin/forms/domain.py:344 admin/forms/domain.py:414
+#: admin/forms/account.py:505 admin/forms/account.py:595
+#: admin/forms/domain.py:362 admin/forms/domain.py:433
msgid "General"
msgstr "Algemeen"
-#: admin/forms/account.py:504
+#: admin/forms/account.py:509
msgid "Profile"
msgstr "Profiel"
-#: admin/forms/account.py:508 admin/forms/account.py:596
+#: admin/forms/account.py:513 admin/forms/account.py:601
msgid "Mail"
msgstr "Mail"
-#: admin/forms/account.py:511
+#: admin/forms/account.py:516
msgid "Permissions"
msgstr "Rechten"
-#: admin/forms/account.py:579
+#: admin/forms/account.py:584
msgid "Account updated"
msgstr "Account aangepast"
-#: admin/forms/account.py:604
+#: admin/forms/account.py:609
msgid "New account"
-msgstr "Nieuw account"
+msgstr "Nieuwe account"
-#: admin/forms/account.py:614
+#: admin/forms/account.py:619
msgid "Account created"
msgstr "Account aangemaakt"
-#: admin/forms/alias.py:26
-#, fuzzy
-#| msgid "Invalid request"
+#: admin/forms/alias.py:20
msgid "Random address"
-msgstr "Willekeuring adres"
+msgstr "Willekeurig adres"
-#: admin/forms/alias.py:29
+#: admin/forms/alias.py:23
msgid "Email address"
-msgstr "Email adres"
+msgstr "E-mail adres"
-#: admin/forms/alias.py:31
-#, fuzzy
-#| msgid ""
-#| "The alias address (without the domain part). For a 'catch-all' address, "
-#| "just enter an * character."
+#: admin/forms/alias.py:25
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
msgstr ""
-"Het alias adres (zonder het domein deel). Voor een 'catch-all' adres, vul "
-"een * in."
+"Het alias-adres. Om een 'catch-all'-adres te maken voert u alleen het domein "
+"in (bijvoorbeeld: @domein.tld)."
-#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Ontvangers"
-#: admin/forms/alias.py:39
-#, fuzzy
-#| msgid ""
-#| "Mailbox(es) this alias will point to. Indicate only one address per "
-#| "input, press ENTER to add a new input."
+#: admin/forms/alias.py:33
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
msgstr ""
-"Mailbox(en) waarnaar deze alias zal verwijzen. Geef slechts een adres per "
-"regel op, en toets ENTER om een nieuwe regel te krijgen."
+"Adressen waarnaar deze alias zal verwijzen. Geef slechts een adres per regel "
+"op, en toets ENTER om een nieuwe regel te krijgen."
-#: admin/forms/alias.py:114 admin/forms/alias.py:116
-#, fuzzy
-#| msgid "A mailbox is required"
+#: admin/forms/alias.py:108 admin/forms/alias.py:110
msgid "This field is required"
-msgstr "Een mailbox is benodigd"
+msgstr "Dit veld is benodigd"
-#: admin/forms/alias.py:120
+#: admin/forms/alias.py:114
msgid "No recipient defined"
msgstr "Geen ontvanger opgegeven"
-#: admin/forms/domain.py:36
+#: admin/forms/domain.py:28
#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Type"
-#: admin/forms/domain.py:42
+#: admin/forms/domain.py:34
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
@@ -447,497 +492,479 @@ msgstr ""
"Alias(sen) van dit domein. Geef slechts een adres per regel op, en toets "
"ENTER om een nieuwe regel te krijgen."
-#: admin/forms/domain.py:47
+#: admin/forms/domain.py:39
msgid "Key selector"
-msgstr ""
+msgstr "Key selector"
-#: admin/forms/domain.py:85 admin/handlers.py:171
+#: admin/forms/domain.py:44 admin/serializers.py:30
+msgid ""
+"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
+"A value of 0 means no quota."
+msgstr ""
+"Quota gedeeld tussen mailboxen. Kan uitgedrukt worden in KB, MB (standaard) "
+"of GB. Een waarde van 0 betekent geen quota."
+
+#: admin/forms/domain.py:52
+msgid ""
+"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
+"GB. A value of 0 means no quota."
+msgstr ""
+"Standaard quota toegepast op alle mailboxen. Kan uitgedrukt worden in KB, MB "
+"(standaard) of GB. Een waarde van 0 betekent geen quota."
+
+#: admin/forms/domain.py:94 admin/handlers.py:161
msgid "domain alias"
msgstr "domein alias"
-#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
+#: admin/forms/domain.py:97 admin/forms/domain.py:173 admin/forms/domain.py:181
#, python-format
msgid "A %s with this name already exists"
msgstr "Een %s met deze naam bestaat al"
-#: admin/forms/domain.py:96 admin/serializers.py:45
+#: admin/forms/domain.py:105 admin/serializers.py:64
msgid "No authorized MX record found for this domain"
-msgstr ""
+msgstr "Geen geauthoriseerd MX record gevonden voor dit domein"
-#: admin/forms/domain.py:108
+#: admin/forms/domain.py:117
msgid "DKIM keys storage directory not configured"
-msgstr ""
+msgstr "DKIM Key opslagdirectory niet geconfigureerd"
-#: admin/forms/domain.py:129 admin/serializers.py:55
+#: admin/forms/domain.py:147 admin/serializers.py:82
msgid "Cannot be greater than domain quota"
-msgstr ""
+msgstr "Kan niet groter zijn dan domein quota"
-#: admin/forms/domain.py:134
+#: admin/forms/domain.py:152
msgid "You can't define an unlimited quota."
-msgstr ""
+msgstr "U kunt geen onbeperkt quotum definiëren."
-#: admin/forms/domain.py:155 admin/forms/domain.py:160
+#: admin/forms/domain.py:173 admin/forms/domain.py:178
msgid "domain"
msgstr "domein"
-#: admin/forms/domain.py:209
+#: admin/forms/domain.py:227
msgid "Create a domain administrator"
-msgstr "Maak een domein administrator aan"
+msgstr "Maak een domeinbeheerder aan"
-#: admin/forms/domain.py:212
+#: admin/forms/domain.py:230
msgid "Automatically create an administrator for this domain"
-msgstr "Automatisch een administrator aanmaken voor dit domein"
+msgstr "Automatisch een beheerder aanmaken voor dit domein"
-#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/forms/domain.py:235 admin/templates/admin/domain_detail.html:125
#: admin/templates/admin/domain_headers.html:3
#: admin/templates/admin/identity_headers.html:2
#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Naam"
-#: admin/forms/domain.py:220
+#: admin/forms/domain.py:238
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
-msgstr ""
-"De naam van de administrator. De domeinnaam word automatisch toegevoegd."
+msgstr "De naam van de beheerder. De domeinnaam word automatisch toegevoegd."
-#: admin/forms/domain.py:230
-#, fuzzy
-#| msgid "Create a domain administrator"
+#: admin/forms/domain.py:248
msgid "Generate a random password for the administrator."
-msgstr "Maak een domein administrator aan"
+msgstr "Genereer een willekeurig wachtwoord voor de beheerder."
-#: admin/forms/domain.py:236
+#: admin/forms/domain.py:254
msgid "With a mailbox"
msgstr "Met een mailbox"
-#: admin/forms/domain.py:239
-#, fuzzy
-#| msgid "Create a domain administrator"
+#: admin/forms/domain.py:257
msgid "Create a mailbox for the administrator."
-msgstr "Maak een domein administrator aan"
+msgstr "Maak een postbus voor de beheerder."
-#: admin/forms/domain.py:245
+#: admin/forms/domain.py:263
msgid "Create aliases"
msgstr "Aliassen aanmaken"
-#: admin/forms/domain.py:248
+#: admin/forms/domain.py:266
msgid "Automatically create standard aliases for this domain"
msgstr "Automatisch een standaard alias voor dit domein aanmaken"
-#: admin/forms/domain.py:264
+#: admin/forms/domain.py:282
msgid "Invalid format"
msgstr "Verkeerd formaat"
-#: admin/forms/domain.py:293
+#: admin/forms/domain.py:311
#, python-format
msgid "User '%s' already exists"
msgstr "Gebruiker '%s' bestaat al"
-#: admin/forms/domain.py:404
+#: admin/forms/domain.py:423
msgid "Domain modified"
msgstr "Domein gewijzigd"
-#: admin/forms/domain.py:425
+#: admin/forms/domain.py:444
msgid "Options"
msgstr "Opties"
-#: admin/forms/domain.py:433
+#: admin/forms/domain.py:452
msgid "New domain"
msgstr "Nieuw domein"
-#: admin/forms/domain.py:446
+#: admin/forms/domain.py:465
msgid "Domain created"
msgstr "Domein aangemaakt"
-#: admin/forms/export.py:9
-msgid "File name"
-msgstr "Bestandsnaam"
-
-#: admin/forms/export.py:15 admin/forms/import_.py:15
+#: admin/forms/export.py:9 admin/forms/import_.py:13
msgid "Separator"
msgstr "Scheidingsteken"
-#: admin/forms/forward.py:14
+#: admin/forms/forward.py:12
msgid "Recipient(s)"
msgstr "Ontvanger(s)"
-#: admin/forms/forward.py:18
+#: admin/forms/forward.py:16
msgid "Indicate one or more recipients separated by a ','"
msgstr "Geef een of meer ontvangers op, gescheiden door een komma"
-#: admin/forms/forward.py:21
+#: admin/forms/forward.py:19
msgid "Keep local copies"
msgstr "Lokale kopie behouden"
-#: admin/forms/forward.py:24
+#: admin/forms/forward.py:22
msgid "Forward messages and store copies into your local mailbox"
msgstr "Stuur berichten door en sla een kopie op in uw mailbox"
-#: admin/forms/import_.py:13
+#: admin/forms/import_.py:11
msgid "Select a file"
msgstr "Bestand selecteren"
-#: admin/forms/import_.py:21
+#: admin/forms/import_.py:19
msgid "Continue on error"
msgstr "Doorgaan als er een fout optreed"
-#: admin/forms/import_.py:22
+#: admin/forms/import_.py:20
msgid "Don't treat duplicated objects as error"
msgstr "Zie duplicaten niet als fout"
-#: admin/forms/import_.py:40
+#: admin/forms/import_.py:38
msgid "Crypt passwords"
msgstr "Versleutel wachtwoorden"
-#: admin/forms/import_.py:42
+#: admin/forms/import_.py:40
msgid "Check this option if passwords contained in your file are not crypted"
msgstr ""
"Vink deze optie aan als wachtwoorden in uw bestand niet versleuteld zijn"
-#: admin/handlers.py:218
+#: admin/handlers.py:210
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Accounts importeren mislukt (%s): domein bestaat niet"
-#: admin/handlers.py:231 admin/models/mailbox.py:342
-#, fuzzy
-#| msgid "Mailbox %s already exists"
+#: admin/handlers.py:223 admin/models/mailbox.py:338
msgid "Mailbox {} already exists"
-msgstr "Mailbox %s bestaat al"
+msgstr "Mailbox {} bestaat al"
-#: admin/handlers.py:239
+#: admin/handlers.py:231
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Account import is mislukt (%s): verkeerd quotum waarde"
-#: admin/handlers.py:279
+#: admin/handlers.py:271
#: admin/templates/admin/_global_statistics_widget.html:17
#: admin/templates/admin/_per_domain_statistics_widget.html:8
#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Identiteiten"
-#: admin/handlers.py:295 admin/templates/admin/forward.html:2
+#: admin/handlers.py:287 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Doorsturen"
-#: admin/lib.py:44
+#: admin/lib.py:38
msgid "A mailbox is required"
msgstr "Een mailbox is benodigd"
-#: admin/lib.py:134
-#, fuzzy
-#| msgid "You can't delete your own domain"
+#: admin/lib.py:128
msgid "You are not allowed to import domains"
-msgstr "U kunt uw eigen domein niet verwijderen"
+msgstr "U mag geen domeinen importeren"
-#: admin/lib.py:145
+#: admin/lib.py:139
msgid "You are not allowed to import domain aliases."
-msgstr "U bent niet gemachtigd om domein aliassen te importeren."
+msgstr "U heeft geen rechten om domeinaliassen te importeren."
-#: admin/lib.py:183 admin/tests/test_mx.py:122
+#: admin/lib.py:189 admin/tests/test_mx.py:127 admin/tests/test_mx.py:136
+#: admin/tests/test_mx.py:139
#, fuzzy, python-format
-#| msgid "No MX record found for this domain."
-msgid "No DNS records found for %s"
-msgstr "Geen mx record gevonden voor dit domein"
+#| msgid "No DNS records found for %s"
+msgid "No DNS record found for %s"
+msgstr "Geen DNS records gevonden voor %s"
-#: admin/lib.py:185 admin/tests/test_mx.py:125
+#: admin/lib.py:192
#, fuzzy, python-format
-#| msgid "No MX record found for this domain."
-msgid "No MX record for %s"
-msgstr "Geen mx record gevonden voor dit domein"
+#| msgid "No MX record for %s"
+msgid "No %(type)s record for %(name)s"
+msgstr "Geen MX record voor %s"
-#: admin/lib.py:187 admin/tests/test_mx.py:126
+#: admin/lib.py:196 admin/tests/test_mx.py:131
msgid "No working name servers found"
-msgstr ""
+msgstr "Geen werkende nameservers gevonden"
-#: admin/lib.py:190 admin/tests/test_mx.py:128
+#: admin/lib.py:199 admin/tests/test_mx.py:133
#, python-format
msgid "DNS resolution timeout, unable to query %s at the moment"
-msgstr ""
+msgstr "DNS timeout, het was niet mogelijk om %s op te zoeken"
-#: admin/lib.py:201 admin/tests/test_mx.py:131
+#: admin/lib.py:227
+#, python-brace-format
+msgid "Invalid IP address format for {domain}; {addr}"
+msgstr "Ongeldig IP-adres formaat voor {domain}; {addr}"
+
+#: admin/management/commands/subcommands/_import.py:93
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
+msgstr ""
+"CSV bestand is niet gecodeerd in UTF-8, aan het proberen om de codering te "
+"raden"
+
+#: admin/management/commands/subcommands/_import.py:105
#, python-format
-msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
-msgstr ""
+msgid "Reading CSV file using %(encoding)s encoding"
+msgstr "CSV bestand aan het lezen met %(encoding)scodering"
-#: admin/lib.py:212 admin/tests/test_mx.py:134
+#: admin/management/commands/subcommands/_import.py:116
#, python-format
-msgid "Invalid IP address format for %(domain)s; %(addr)s"
-msgstr ""
+msgid "Unable to decode CSV file using %(encoding)s encoding"
+msgstr "Kan CSV bestand niet decoderen met %(encoding)scodering"
-#: admin/management/commands/subcommands/_mx.py:136
+#: admin/management/commands/subcommands/_mx.py:132
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr "[modoboa] DNSBL problemen voor domein {}"
-#: admin/management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:152
msgid "Domain {} has no MX record"
-msgstr "Domein {} heeft geen MX record(s)"
+msgstr "Domein {} heeft geen MX-record"
-#: admin/management/commands/subcommands/_mx.py:167
+#: admin/management/commands/subcommands/_mx.py:163
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
-msgstr "MX record voor domein {0} is ongeldig: {1}"
+msgstr "MX-record voor domein {0} is onjuist: {1}"
-#: admin/management/commands/subcommands/_mx.py:184
+#: admin/management/commands/subcommands/_mx.py:180
msgid "[modoboa] MX issue(s) for domain {}"
-msgstr "[modoboa] MX probleem met domein {}"
+msgstr "[modoboa] MX problemen voor domein {}"
-#: admin/models/alias.py:35 admin/models/mailbox.py:97
+#: admin/models/alias.py:32 admin/models/mailbox.py:95
msgid "address"
msgstr "adres"
-#: admin/models/alias.py:37
-#, fuzzy
-#| msgid "The alias name"
+#: admin/models/alias.py:34
msgid "The alias address."
-msgstr "De alias naam"
+msgstr "Het alias adres"
-#: admin/models/alias.py:42 admin/models/domain.py:48
-#: admin/models/domain_alias.py:47
+#: admin/models/alias.py:39 admin/models/domain.py:37
+#: admin/models/domain_alias.py:42
msgid "enabled"
msgstr "actief"
-#: admin/models/alias.py:43 admin/models/domain_alias.py:48
+#: admin/models/alias.py:40 admin/models/domain_alias.py:43
msgid "Check to activate this alias"
-msgstr "Aanvinken om deze alias te activeren"
+msgstr "Selecteer om deze alias te activeren"
-#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
+#: admin/models/alias.py:45 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr "Omschrijving"
-#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
+#: admin/models/alias.py:47 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
-msgstr "Verloopt op"
+msgstr "Verloop op"
-#: admin/models/alias.py:93
+#: admin/models/alias.py:87
msgid "alias"
msgstr "alias"
-#: admin/models/alias.py:125
-#, fuzzy
-#| msgid "Invalid request"
+#: admin/models/alias.py:119
msgid "Invalid address"
-msgstr "Ongeldig verzoek"
+msgstr "Ongeldig adres"
-#: admin/models/alias.py:146
-#, fuzzy
-#| msgid "Local recipient %s not found"
+#: admin/models/alias.py:140
msgid "Local recipient {}@{} not found"
-msgstr "Lokale ontvanger %s niet gevonden"
+msgstr "Lokale ontvanger {}@{} niet gevonden"
-#: admin/models/alias.py:176
+#: admin/models/alias.py:170
#, python-format
msgid "Invalid line: %s"
msgstr "Ongeldige regel: %s"
-#: admin/models/alias.py:182
+#: admin/models/alias.py:176
#, python-format
msgid "Domain '%s' does not exist"
msgstr "Domein '%s' bestaat niet"
-#: admin/models/domain.py:30 admin/models/domain_alias.py:39
+#: admin/models/domain.py:27 admin/models/domain_alias.py:34
msgid "name"
msgstr "naam"
-#: admin/models/domain.py:31
+#: admin/models/domain.py:28
msgid "The domain name"
msgstr "De domeinnaam"
-#: admin/models/domain.py:35
-#, fuzzy
-#| msgid ""
-#| "Default quota (in MB) applied to freshly created domains with no value "
-#| "specified. A value of 0 means no quota."
-msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
-msgstr ""
-"Standaard quota (in MB) om op nieuw aangemaakte domeinen zonder waarde toe "
-"te passen. Een waarde van 0 betekend geen quota."
+#: admin/models/domain.py:38
+msgid "Check to activate this domain"
+msgstr "Selecteer om dit domein te activeren"
#: admin/models/domain.py:43
-#, fuzzy
-#| msgid ""
-#| "Default quota (in MB) applied to freshly created domains with no value "
-#| "specified. A value of 0 means no quota."
-msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
-msgstr ""
-"Standaard quota (in MB) om op nieuw aangemaakte domeinen zonder waarde toe "
-"te passen. Een waarde van 0 betekend geen quota."
-
-#: admin/models/domain.py:49
-msgid "Check to activate this domain"
-msgstr "Aanvinken om dit domein te activeren"
-
-#: admin/models/domain.py:54
msgid "Enable DNS checks"
-msgstr "Activeer DNS checks"
+msgstr "Schakel DNS checks in."
-#: admin/models/domain.py:55
-#, fuzzy
-#| msgid "Check to activate this domain"
+#: admin/models/domain.py:44
msgid "Check to enable DNS checks for this domain"
-msgstr "Aanvinken om dit domein te activeren"
+msgstr "Schakel in om DNS controles voor dit domein uit te voeren. "
-#: admin/models/domain.py:62
+#: admin/models/domain.py:51
msgid "Enable DKIM signing"
-msgstr ""
+msgstr "Zet DKIM ondertekening aan"
-#: admin/models/domain.py:64
+#: admin/models/domain.py:53
msgid ""
"If you activate this feature, a DKIM key will be generated for this domain."
msgstr ""
+"Als u deze functie aanzet, zal er een DKIM key gegenereerd worden voor dit "
+"domein."
-#: admin/models/domain.py:70
+#: admin/models/domain.py:59
msgid "Key length"
-msgstr ""
+msgstr "Key lengte"
-#: admin/models/domain.py:285 admin/models/domain_alias.py:74
+#: admin/models/domain.py:312 admin/models/domain_alias.py:67
msgid "Invalid line"
msgstr "Verkeerde regel"
-#: admin/models/domain.py:295
+#: admin/models/domain.py:322
msgid "No authorized MX record found for domain {}"
-msgstr ""
+msgstr "Geen geauthoriseerd MX record gevonden voor domein {}"
-#: admin/models/domain.py:302
-#, fuzzy
-#| msgid "Invalid quota value for domain '%s'"
+#: admin/models/domain.py:329
msgid "Invalid quota value for domain '{}'"
-msgstr "Verkeerde quota waarde voor domein '%s'"
+msgstr "Ongeldige quota waarde voor domein '{}'"
-#: admin/models/domain.py:309
-#, fuzzy
-#| msgid "Invalid quota value for domain '%s'"
+#: admin/models/domain.py:336
msgid "Invalid default mailbox quota value for domain '{}'"
-msgstr "Verkeerde quota waarde voor domein '%s'"
+msgstr "Ongeldige standaard mailbox quota waarde voor domein '{}'"
-#: admin/models/domain.py:314
+#: admin/models/domain.py:341
msgid "Default mailbox quota cannot be greater than domain quota"
-msgstr ""
+msgstr "Standaard mailboxquotum kan niet groter zijn dan het domeinquotum"
-#: admin/models/domain_alias.py:40
+#: admin/models/domain_alias.py:35
msgid "The alias name"
-msgstr "De alias naam"
+msgstr "De aliasnaam"
-#: admin/models/domain_alias.py:42
+#: admin/models/domain_alias.py:37
msgid "target"
msgstr "doel"
-#: admin/models/domain_alias.py:43
+#: admin/models/domain_alias.py:38
msgid "The domain this alias points to"
-msgstr "De domein alias verwijst naar"
+msgstr "De domeinalias verwijst naar"
-#: admin/models/domain_alias.py:83
+#: admin/models/domain_alias.py:76
#, python-format
msgid "Unknown domain %s"
msgstr "Onbekend domein %s"
-#: admin/models/mailbox.py:99
+#: admin/models/mailbox.py:97
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Mailbox adres (zonder het @domein.naam deel)"
-#: admin/models/mailbox.py:165
+#: admin/models/mailbox.py:160
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Mislukt om de mailbox locatie te verkijgen (%s)"
-#: admin/models/mailbox.py:258
+#: admin/models/mailbox.py:253
msgid "A quota is required"
msgstr "Een quota is vereist"
-#: admin/models/mailbox.py:264
-#, fuzzy
-#| msgid "Domain created"
+#: admin/models/mailbox.py:259
msgid "Domain quota exceeded"
-msgstr "Domein aangemaakt"
+msgstr "Domein quota overschreden"
-#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
-#, fuzzy
-#| msgid "Permissions"
+#: admin/serializers.py:37
+msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgstr "Standaard quotum in MB per mailbox. 0 Betekent geen quotum."
+
+#: admin/serializers.py:107 admin/serializers.py:312 admin/serializers.py:410
msgid "Permission denied."
-msgstr "Toegang geweigerd"
+msgstr "Toegang geweigerd."
-#: admin/serializers.py:118
+#: admin/serializers.py:158
msgid ""
"List of administered domains (resellers and domain administrators only)."
-msgstr ""
+msgstr "Lijst van beheerde domeinen (alleen resellers en domeinbeheerders)."
-#: admin/serializers.py:218
+#: admin/serializers.py:262
msgid "Not allowed for this role."
-msgstr "Niet toegestaan met deze rol"
+msgstr "Niet toegestaan voor deze rol."
-#: admin/serializers.py:228
+#: admin/serializers.py:274
msgid "Must be equal to mailbox full_address"
-msgstr "Moet gelijk zijn aan het volledige e-mail adres"
+msgstr "Moet gelijk zijn aan de mailbox full_address"
-#: admin/serializers.py:253
-#, fuzzy
-#| msgid "Domain does not exist"
+#: admin/serializers.py:299
msgid "Local domain {} does not exist"
-msgstr "Domein bestaat niet"
+msgstr "Lokaal domein {} bestaat niet"
-#: admin/serializers.py:347
+#: admin/serializers.py:397
msgid "A list of recipient"
-msgstr "Een lijst van ontvangers"
+msgstr "Lijst ontvangers."
-#: admin/serializers.py:358
-#, fuzzy
-#| msgid "Domain modified"
+#: admin/serializers.py:408
msgid "Domain not found."
-msgstr "Domein gewijzigd"
+msgstr "Domein niet gevonden."
-#: admin/serializers.py:407
-#, fuzzy
-#| msgid "You don't have access to this domain"
+#: admin/serializers.py:457
msgid "You don't have access to this domain."
-msgstr "U heeft geen toegang tot dit domein"
+msgstr "U hebt geen toegang tot dit domein."
-#: admin/serializers.py:415
-#, fuzzy
-#| msgid "You don't have access to this domain"
+#: admin/serializers.py:465
msgid "You don't have access to this mailbox."
-msgstr "U heeft geen toegang tot dit domein"
+msgstr "U hebt geen toegang tot deze mailbox."
#: admin/templates/admin/_domain_dkim_key.html:6
#: admin/templates/admin/_domain_dkim_key.html:20
msgid "Close"
-msgstr ""
+msgstr "Sluiten"
#: admin/templates/admin/_domain_dkim_key.html:7
#, python-format
msgid "DKIM public key for %(domain)s"
-msgstr ""
+msgstr "DKIM publieke key voor %(domain)s"
#: admin/templates/admin/_domain_dkim_key.html:11
-#, fuzzy
-#| msgid "Invalid format"
msgid "Raw format"
-msgstr "Verkeerd formaat"
+msgstr "Ruwe formaat"
#: admin/templates/admin/_domain_dkim_key.html:15
-#, fuzzy
-#| msgid "Invalid format"
msgid "Bind/named format"
-msgstr "Verkeerd formaat"
+msgstr "Bind/named formaat"
#: admin/templates/admin/_domain_dnschecks_status.html:4
-#, fuzzy
-#| msgid "disabled"
msgctxt "checks"
msgid "Disabled"
-msgstr "uitgeschakeld"
+msgstr "Uitgeschakeld"
#: admin/templates/admin/_domain_dnschecks_status.html:6
msgid "Awaiting checks"
-msgstr "Controles afwachten"
+msgstr "In afwachting van controles"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+#, fuzzy
+#| msgid "No DNS records found for %s"
+msgid "No record found"
+msgstr "Geen DNS records gevonden voor %s"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
+msgstr ""
#: admin/templates/admin/_global_statistics_widget.html:4
-#, fuzzy
-#| msgid "Statistics"
msgid "Global statistics"
-msgstr "Statistieken"
+msgstr "Globale statistieken"
#: admin/templates/admin/_global_statistics_widget.html:8
msgid "Quantity"
@@ -947,11 +974,9 @@ msgstr "Hoeveelheid"
#: admin/templates/admin/domain_detail.html:37
#: admin/templates/admin/domain_detail.html:73
msgid "Domain aliases"
-msgstr "Domein aliassen"
+msgstr "Domeinaliassen"
#: admin/templates/admin/_per_domain_statistics_widget.html:4
-#, fuzzy
-#| msgid "Per-domain counters"
msgid "Per-domain statistics"
msgstr "Statistieken per domein"
@@ -959,29 +984,23 @@ msgstr "Statistieken per domein"
#: admin/templates/admin/alias_detail.html:16
#: admin/templates/admin/domain_detail.html:19
#: admin/templates/admin/identities_table.html:7
-#, fuzzy
-#| msgid "disabled"
msgid "(disabled)"
-msgstr "uitgeschakeld"
+msgstr "(uitgeschakeld)"
#: admin/templates/admin/account_detail.html:22
#: admin/templates/admin/alias_detail.html:22
#: admin/templates/admin/domain_detail.html:25
msgid "Summary"
-msgstr ""
+msgstr "Overzicht"
#: admin/templates/admin/account_detail.html:26
-#, fuzzy
-#| msgid "File name"
msgid "Full name"
-msgstr "Bestandsnaam"
+msgstr "Naam"
#: admin/templates/admin/account_detail.html:32
#: admin/templates/admin/alias_detail.html:26
-#, fuzzy
-#| msgid "Create"
msgid "Created"
-msgstr "Aanmaken"
+msgstr "Aangemaakt"
#: admin/templates/admin/account_detail.html:35
msgid "Last login"
@@ -989,50 +1008,40 @@ msgstr "Laatste login"
#: admin/templates/admin/account_detail.html:38
msgid "Secondary email"
-msgstr "Tweede email"
+msgstr "Tweede e-mailadres"
#: admin/templates/admin/account_detail.html:38
#: admin/templates/admin/account_detail.html:41
-#, fuzzy
-#| msgid "No recipient defined"
msgid "Not defined"
-msgstr "Geen ontvanger opgegeven"
+msgstr "Niet opgegeven"
#: admin/templates/admin/account_detail.html:41
msgid "Phone number"
msgstr "Telefoonnummer"
#: admin/templates/admin/account_detail.html:55
-#, fuzzy
-#| msgid "Administration"
msgid "Administered domains"
-msgstr "Administratie"
+msgstr "Beheerde domeinen"
#: admin/templates/admin/account_detail.html:61
-#, fuzzy
-#| msgid "No recipient defined"
msgid "No domain defined."
-msgstr "Geen ontvanger opgegeven"
+msgstr "Geen domein opgegeven."
#: admin/templates/admin/account_detail.html:75
-#, fuzzy
-#| msgid "Alias(es)"
msgid "Aliases"
-msgstr "Alias(sen)"
+msgstr "Aliassen"
#: admin/templates/admin/account_detail.html:81
-#, fuzzy
-#| msgid "No recipient defined"
msgid "No alias defined"
-msgstr "Geen ontvanger opgegeven"
+msgstr "Geen alias opgegeven"
#: admin/templates/admin/account_detail.html:87
msgid "Additional sender addresses"
-msgstr "Overige verstuur adressen"
+msgstr "Extra afzenderadressen"
#: admin/templates/admin/account_detail.html:93
msgid "No sender address defined"
-msgstr "Er is geen verzendadres gedefineerd"
+msgstr "Geen afzenderadres opgegeven"
#: admin/templates/admin/account_general_form.html:12
#: admin/templates/admin/aliasform.html:13
@@ -1041,20 +1050,16 @@ msgstr "Domein is gedeactiveerd"
#: admin/templates/admin/alias_detail.html:16
#: admin/templates/admin/identities.html:33
-#, fuzzy
-#| msgid "alias"
msgid "Alias"
-msgstr "alias"
+msgstr "Alias"
#: admin/templates/admin/alias_detail.html:27
-#, fuzzy
-#| msgid "Alias modified"
msgid "Modified"
-msgstr "Alias aangepast"
+msgstr "Aangepast"
#: admin/templates/admin/dnsbl_domain_detail.html:10
msgid "Provider"
-msgstr ""
+msgstr "Provider"
#: admin/templates/admin/dnsbl_domain_detail.html:11
#: admin/templates/admin/identities_quota_headers.html:2
@@ -1063,23 +1068,22 @@ msgid "Address"
msgstr "Adres"
#: admin/templates/admin/dnsbl_domain_detail.html:12
-#: admin/templates/admin/domain_detail.html:96
-#, fuzzy
-#| msgid "Statistics"
+#: admin/templates/admin/domain_detail.html:100
+#: admin/templates/admin/messages_log_headers.html:6
msgid "Status"
-msgstr "Statistieken"
+msgstr "Status"
#: admin/templates/admin/dnsbl_domain_detail.html:21
msgid "listed"
-msgstr ""
+msgstr "Staat op de lijst"
#: admin/templates/admin/dnsbl_domain_detail.html:29
msgid "Everything is fine, this domain is not listed."
-msgstr "Alles OK, dit domein komt niet voor in de lijst"
+msgstr "Alles is prima, dit domein staat niet op de lijst."
#: admin/templates/admin/dnsbl_domain_detail.html:32
msgid "No information available for this domain."
-msgstr "Geen informatie beschikbaar voor dit domein"
+msgstr "Geen informatie beschikbaar over dit domein."
#: admin/templates/admin/domain_detail.html:29
msgid "Creation date"
@@ -1097,64 +1101,59 @@ msgstr "Mailbox aliassen"
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domain_detail.html:65
-#: admin/templates/admin/domain_general_form.html:4
-#: admin/templates/admin/domain_general_form.html:5
#: admin/templates/admin/domains_quotas.html:11
#: admin/templates/admin/domains_quotas.html:12
-#: admin/templates/admin/mailform.html:7
#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
#: admin/templates/admin/domain_detail.html:54
-#, fuzzy
-#| msgid "Usage (%%)"
msgid "Usage"
-msgstr "Gebruik (%%)"
+msgstr "Gebruik"
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domains_quotas.html:11
msgctxt "quota"
msgid "used"
-msgstr ""
+msgstr "gebruikt"
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domains_quotas.html:12
msgid "allocated"
-msgstr ""
+msgstr "toegewezen"
-#: admin/templates/admin/domain_detail.html:91
+#: admin/templates/admin/domain_detail.html:92
msgid "DNS"
-msgstr ""
-
-#: admin/templates/admin/domain_detail.html:103
-msgid "DKIM key"
-msgstr ""
+msgstr "DNS"
#: admin/templates/admin/domain_detail.html:107
+msgid "DKIM key"
+msgstr "DKIM key"
+
+#: admin/templates/admin/domain_detail.html:111
msgid "Show key"
-msgstr ""
+msgstr "Toon key"
-#: admin/templates/admin/domain_detail.html:110
-#, fuzzy
-#| msgid "No recipient defined"
+#: admin/templates/admin/domain_detail.html:113
+msgid "Generate new key"
+msgstr "Nieuwe sleutel genereren"
+
+#: admin/templates/admin/domain_detail.html:115
msgid "Not generated"
-msgstr "Geen ontvanger opgegeven"
+msgstr "Niet gegenereerd"
-#: admin/templates/admin/domain_detail.html:117
+#: admin/templates/admin/domain_detail.html:122
msgid "Administrators"
-msgstr "Administrators"
+msgstr "Beheerders"
-#: admin/templates/admin/domain_detail.html:129
-#: admin/templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:134
+#: admin/templatetags/admin_tags.py:265
msgid "Remove this permission"
msgstr "Deze bevoegdheid verwijderen"
-#: admin/templates/admin/domain_detail.html:134
-#, fuzzy
-#| msgid "No domain administrator defined"
+#: admin/templates/admin/domain_detail.html:139
msgid "No domain administrator defined yet."
-msgstr "Geen domein administrator toegewezen"
+msgstr "Nog geen domeinbeheerder opgegeven"
#: admin/templates/admin/domain_headers.html:5
#: admin/templates/admin/identity_headers.html:4
@@ -1162,10 +1161,8 @@ msgid "Tags"
msgstr "Labels"
#: admin/templates/admin/domain_headers.html:7
-#, fuzzy
-#| msgid "Statistics"
msgid "DNS status"
-msgstr "Statistieken"
+msgstr "DNS status"
#: admin/templates/admin/domain_headers.html:9
#: admin/templates/admin/identity_headers.html:5
@@ -1174,14 +1171,12 @@ msgstr "Acties"
#: admin/templates/admin/domain_options_form.html:10
msgid "You can't create a new domain administrator"
-msgstr "U kunt geen nieuwe domein administrator aanmaken"
+msgstr "U kunt geen nieuwe domeinbeheerder aanmaken"
#: admin/templates/admin/domains.html:28
#: admin/templates/admin/identities.html:29
-#, fuzzy
-#| msgid "Address"
msgid "Add"
-msgstr "Adres"
+msgstr "Toevoegen"
#: admin/templates/admin/domains_quota_headers.html:3
#: admin/templates/admin/identities_quota_headers.html:4
@@ -1190,13 +1185,11 @@ msgstr "Limiet"
#: admin/templates/admin/domains_quota_headers.html:4
msgid "Used"
-msgstr ""
+msgstr "Gebruikt"
#: admin/templates/admin/domains_quota_headers.html:5
-#, fuzzy
-#| msgid "Alias created"
msgid "Allocated"
-msgstr "Alias aangemaakt"
+msgstr "Toegewezen"
#: admin/templates/admin/domains_quota_headers.html:6
#: admin/templates/admin/identities_quota_headers.html:5
@@ -1210,17 +1203,15 @@ msgstr "uitgeschakeld"
#: admin/templates/admin/forward.html:2
msgid "Automatically forward emails to another address"
-msgstr "Automatisch mails doorsturen naar een ander adres"
+msgstr "Mail automatisch doorsturen naar een ander adres"
-#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:87
msgid "Update"
msgstr "Toepassen"
#: admin/templates/admin/identities.html:32
-#, fuzzy
-#| msgid "Add account"
msgid "Account"
-msgstr "Account aanmaken"
+msgstr "Account"
#: admin/templates/admin/identities_quota_headers.html:3
msgid "Value"
@@ -1231,17 +1222,6 @@ msgid "Fullname/Recipient"
msgstr "Volledige naam/Ontvanger"
#: admin/templates/admin/import_domains_form.html:6
-#, fuzzy
-#| msgid ""
-#| "Provide a CSV file where lines respect one of the following formats:\n"
-#| "\n"
-#| " - domain; name; quota; enabled
\n"
-#| " - domainalias; name; targeted domain; enabled
\n"
-#| " %s\n"
-#| "
\n"
-#| "The first element of each line is mandatory and must be equal to one "
-#| "of the previous values.
\n"
-#| "You can use a different character as separator.
\n"
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
"- domain; name; quota; default mailbox quota; enabled
"
@@ -1252,34 +1232,14 @@ msgid ""
"use a different character as separator."
msgstr ""
"Lever een CSV bestand en zorg dat de regels voldoen aan een van de volgende "
-"formaten:\n"
-"\n"
-"- domain; name; quota; enabled
\n"
-"- domainalias; name; targeted domain; enabled
\n"
-"%s\n"
-"
\n"
-"Het eerste element van elke regel is verplicht en moet gelijk zijn aan "
-"een van de vorige waarden.
\n"
-"U kunt een eigen scheidingsteken gebruiken.
\n"
-"Let op! Zorg dat het 'line-encoding format' Unix is - anders gaat het "
-"importeren mis
\n"
-"\n"
+"formaten: - domain; name; quota; default mailbox quota; enabled"
+"em>
- domainalias; name; targeted domain; enabled
"
+"- relaydomain; name; target host; target port; service; enabled; "
+"verify recipients
Het eerste element van elke regel is "
+"verplicht en moet gelijk zijn aan een van de vorige waarden.
U kunt "
+"een eigen scheidingsteken gebruiken.
"
#: admin/templates/admin/import_identities_form.html:6
-#, fuzzy
-#| msgid ""
-#| "Provide a CSV file where lines respect one of the following formats:\n"
-#| "\n"
-#| "- account; loginname; password; first name; last name; enabled; "
-#| "group; address; quota; [, domain, ...]
\n"
-#| "- alias; address; enabled; internal recipient
\n"
-#| "- forward; address; enabled; external recipient
\n"
-#| "- dlist; address; enabled; recipient; recipient; ...
\n"
-#| "
\n"
-#| "The first element of each line is mandatory and must be equal to one "
-#| "of the previous values.
\n"
-#| "\n"
-#| "You can use a different character as separator.
\n"
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
"- account; loginname; password; first name; last name; enabled; group; "
@@ -1299,9 +1259,7 @@ msgstr ""
"
\n"
"Het eerste element van elke regel is verplicht en moet gelijk zijn aan "
"een van de vorige waarden.
\n"
-"U kunt een eigen scheidingsteken gebruiken.
\n"
-"Let op! Zorg dat het 'line-encoding format' Unix is - anders gaat het "
-"importeren mis
\n"
+"U kunt een eigen scheidingsteken gebruiken.
"
#: admin/templates/admin/importform.html:6
msgid "Help"
@@ -1313,7 +1271,7 @@ msgstr "Importeren..."
#: admin/templates/admin/index.html:6
msgid "Admin"
-msgstr ""
+msgstr "Admin"
#: admin/templates/admin/mailboxes_raw.html:3
msgid "Choose a value"
@@ -1323,19 +1281,35 @@ msgstr "Kies een waarde"
msgid "Use domain default value"
msgstr "Gebruik de standaard waarde van dit domein"
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:3
+msgid "Date"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:4
+msgid "From"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:5
+msgid "To"
+msgstr ""
+
#: admin/templates/admin/mx_domain_detail.html:11
-#, fuzzy
-#| msgid "Update"
msgid "Updated"
-msgstr "Toepassen"
+msgstr "Bijgewerkt"
#: admin/templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
msgstr ""
+"Dit IP-adres komt niet overeen met een van de valide MX'en zoals "
+"gedefinieerd in de instellingen"
#: admin/templates/admin/mx_domain_detail.html:36
msgid "No MX record found for this domain."
-msgstr "Geen mx record gevonden voor dit domein"
+msgstr "Geen geldig MX-record voor dit domein gevonden."
#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
#, python-format
@@ -1343,6 +1317,8 @@ msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
"providers:"
msgstr ""
+"Modoboa heeft vastgesteld dat het domein %(domain)s op de volgende DNSBL "
+"lijsten staat:"
#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
@@ -1350,216 +1326,169 @@ msgid ""
"coming from it are considered as spam. You should contact those providers "
"and ask them to unlist detected IP address(es)."
msgstr ""
+"De reputatie van dit domein wordt hierdoor aangetast er bestaat een kans dat "
+"e-mail van dit domein als spam wordt gezien. U zou contact moeten opnemen "
+"met deze providers en hen vragen om deze IP adressen van de lijst te halen."
#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
msgstr ""
+"Modoboa heeft vastgesteld dat het domein %(domain)s geen geldig MX-record "
+"heeft:"
#: admin/templates/admin/searchform.html:6
msgid "Search"
msgstr "Zoeken"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_m"
msgstr "geactiveerd_m"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_f"
msgstr "geactiveerd_f"
-#: admin/templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:45
msgid "List domains"
-msgstr "Weergeef domeinen"
+msgstr "Toon domeinen"
-#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:50 admin/templatetags/admin_tags.py:105
msgid "List quotas"
-msgstr "Weergeef quota's"
+msgstr "Toon quota's"
-#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
-#: admin/views/import_.py:89 admin/views/import_.py:111
+#: admin/templatetags/admin_tags.py:62 admin/templatetags/admin_tags.py:110
+#: admin/views/import_.py:85 admin/views/import_.py:107
msgid "Import"
msgstr "Importeren"
-#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
-#: admin/views/export.py:43 admin/views/export.py:71
+#: admin/templatetags/admin_tags.py:68 admin/templatetags/admin_tags.py:116
+#: admin/views/export.py:39 admin/views/export.py:67
msgid "Export"
msgstr "Exporteren"
-#: admin/templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:100
msgid "List identities"
-msgstr "Weergeef identiteiten"
+msgstr "Toon identiteiten"
-#: admin/templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:135
msgid "View the domain's identities"
-msgstr "Weergeef de identiteiten van dit domein"
+msgstr "Toon de identiteiten van dit domein"
-#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
-#: admin/templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:141 admin/templatetags/admin_tags.py:184
+#: admin/templatetags/admin_tags.py:197
msgid "Edit {}"
-msgstr ""
+msgstr "Bewerk {}"
-#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
-#: admin/templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:151 admin/templatetags/admin_tags.py:188
+#: admin/templatetags/admin_tags.py:202
#, python-format
msgid "Delete %s?"
msgstr "Verwijder %s?"
-#: admin/views/alias.py:35
+#: admin/tests/test_mx.py:130
+#, python-format
+msgid "No MX record for %s"
+msgstr "Geen MX record voor %s"
+
+#: admin/tests/test_mx.py:142 admin/tests/test_mx.py:145
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr "Onjuist IP adres voor %(domain)s: %(addr)s"
+
+#: admin/views/alias.py:29
msgid "Alias with this name already exists"
msgstr "Een alias met deze naam bestaat al"
-#: admin/views/alias.py:60
+#: admin/views/alias.py:54
msgid "Create"
msgstr "Aanmaken"
-#: admin/views/alias.py:72
+#: admin/views/alias.py:66
msgid "New alias"
msgstr "Nieuwe alias"
-#: admin/views/alias.py:73
+#: admin/views/alias.py:67
msgid "Alias created"
msgstr "Alias aangemaakt"
-#: admin/views/alias.py:85
+#: admin/views/alias.py:79
msgid "Alias modified"
msgstr "Alias aangepast"
-#: admin/views/alias.py:109
-#, fuzzy
-#| msgid "Alias created"
+#: admin/views/alias.py:103
msgid "Alias deleted"
msgid_plural "Aliases deleted"
-msgstr[0] "Alias aangemaakt"
-msgstr[1] "Alias aangemaakt"
+msgstr[0] "Alias verwijderd"
+msgstr[1] "Aliasen verwijderd"
-#: admin/views/dns.py:32
+#: admin/views/dns.py:28
msgid "MX records of {}"
-msgstr ""
+msgstr "MX-records van {}"
-#: admin/views/dns.py:55
+#: admin/views/dns.py:51
msgid "DNSBL summary for {}"
-msgstr "DNSBL samenvatting voor {}"
+msgstr "DNSBL overzicht voor {}"
-#: admin/views/domain.py:188
+#: admin/views/domain.py:202
msgid "You can't delete your own domain"
msgstr "U kunt uw eigen domein niet verwijderen"
-#: admin/views/domain.py:191
+#: admin/views/domain.py:205
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Domeinen verwijderd"
msgstr[1] "Domeinen verwijderd"
-#: admin/views/export.py:42
+#: admin/views/export.py:38
msgid "Export identities"
msgstr "Identiteiten exporteren"
-#: admin/views/export.py:70
+#: admin/views/export.py:66
msgid "Export domains"
msgstr "Exporteer domeinen"
-#: admin/views/identity.py:113 admin/views/identity.py:206
-#: admin/views/identity.py:211
+#: admin/views/identity.py:107 admin/views/identity.py:201
+#: admin/views/identity.py:206
msgid "Invalid request"
msgstr "Ongeldig verzoek"
-#: admin/views/identity.py:196
+#: admin/views/identity.py:191
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Account verwijderd"
msgstr[1] "Accounts verwijderd"
-#: admin/views/import_.py:65
+#: admin/views/import_.py:61
#, python-format
msgid "Object already exists: %s"
msgstr "Object bestaat al: %s"
-#: admin/views/import_.py:69
+#: admin/views/import_.py:65
#, python-format
msgid "%d objects imported successfully"
-msgstr "%d objecten successvol geimporteerd"
+msgstr "%d objecten succesvol geïmporteerd"
-#: admin/views/import_.py:88
+#: admin/views/import_.py:84
msgid "Import domains"
msgstr "Importeer domeinen"
-#: admin/views/import_.py:110
+#: admin/views/import_.py:106
msgid "Import identities"
-msgstr "Identiteiten importeren"
+msgstr "Importeer identiteiten"
-#: admin/views/user.py:40
+#: admin/views/user.py:36
msgid "Forward updated"
msgstr "Doorstuuradres aangepast"
-#~ msgid ""
-#~ "Default quota in MB applied to mailboxes. Leave empty to use the default "
-#~ "value."
-#~ msgstr ""
-#~ "Standaard quota in MB toegepast op mailboxen. Laat leeg om de standaard "
-#~ "waarde te gebruiken."
+#~ msgid "File name"
+#~ msgstr "Bestandsnaam"
-#~ msgid ""
-#~ "You can't define a forward to a local destination. Please ask your "
-#~ "administrator to create an alias instead."
-#~ msgstr ""
-#~ "U kunt mail niet doorsturen naar een lokaal adres. Vraag uw "
-#~ "systeembeheerder om een alias voor u aan te maken."
+#~ msgid "No {type} record found for MX {mx}"
+#~ msgstr "Geen {type} record gevonden voor MX {mx}"
-#~ msgid "Quota is greater than the allowed domain's limit (%dM)"
-#~ msgstr "Quota is groter dan de maximaal toegestane domein limiet (%dM)"
+#~ msgid "No A record found for MX %(domain)s"
+#~ msgstr "Geen A record gevonden voor MX %(domain)s"
-#~ msgid "Domains and identities"
-#~ msgstr "Domeinen en identiteiten"
-
-#~ msgid "Global counters"
-#~ msgstr "Globale statistieken"
-
-#~ msgid "distribution list"
-#~ msgstr "distributie lijst"
-
-#~ msgid "forward"
-#~ msgstr "doorsturen"
-
-#, fuzzy
-#~| msgid "Confirmation"
-#~ msgid "Information"
-#~ msgstr "Bevestiging"
-
-#~ msgid "Add domain"
-#~ msgstr "Domein toevoegen"
-
-#~ msgid "Add alias"
-#~ msgstr "Alias toevoegen"
-
-#~ msgid "Add forward"
-#~ msgstr "Doorsuurregel toevoegen"
-
-#~ msgid "Add distribution list"
-#~ msgstr "Distributielijst toevoegen"
-
-#~ msgid "New distribution list"
-#~ msgstr "Nieuwe distributie lijst"
-
-#~ msgid "Distribution list created"
-#~ msgstr "Distributielijst aangemaakt"
-
-#~ msgid "New forward"
-#~ msgstr "Nieuwe doorstuurregel"
-
-#~ msgid "Forward created"
-#~ msgstr "Doorstuurregel aangemaakt"
-
-#~ msgid "Distribution list modified"
-#~ msgstr "Distributielijst aangepast"
-
-#~ msgid "Forward modified"
-#~ msgstr "Doorstuurregel aangepast"
-
-#~ msgid "Miscellaneous"
-#~ msgstr "Diversen"
-
-#, fuzzy
-#~| msgid "Create a domain administrator"
-#~ msgid "Domain administrator"
-#~ msgstr "Maak een domein administrator aan"
+#~ msgid "No AAAA record found for MX %(domain)s"
+#~ msgstr "Geen AAAA record gevonden voor MX%(domain)s"
diff --git a/modoboa/admin/locale/nl_NL/LC_MESSAGES/djangojs.po b/modoboa/admin/locale/nl_NL/LC_MESSAGES/djangojs.po
index 1bde842be..1791a83ab 100644
--- a/modoboa/admin/locale/nl_NL/LC_MESSAGES/djangojs.po
+++ b/modoboa/admin/locale/nl_NL/LC_MESSAGES/djangojs.po
@@ -3,57 +3,56 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# Harrie v.d. Vegt , 2016
# TuxBrother , 2014
-# TuxBrother , 2014
+# Tuxis Internet Engineering V.O.F. , 2017
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-04 22:08+0100\n"
-"PO-Revision-Date: 2014-12-31 11:42+0000\n"
-"Last-Translator: TuxBrother \n"
-"Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/"
-"modoboa/language/nl_NL/)\n"
+"POT-Creation-Date: 2020-03-09 16:48+0100\n"
+"PO-Revision-Date: 2017-09-23 21:20+0000\n"
+"Last-Translator: Tuxis Internet Engineering V.O.F. \n"
+"Language-Team: Dutch (Netherlands) (http://www.transifex.com/tonio/modoboa/"
+"language/nl_NL/)\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/static/admin/js/admin.js:131
+#: admin/static/admin/js/admin.js:129 admin/static/admin/js/admin.js:174
msgid "No more domain to show"
-msgstr "Geen domein meer om te weergeven"
+msgstr "Geen domeinen meer om weer te geven"
-#: admin/static/admin/js/admin.js:150
+#: admin/static/admin/js/admin.js:149
msgid "Do not delete domain directory"
-msgstr "De map van dit domein niet verwijderen (Zal de data ervan behouden)"
+msgstr "De map van dit domein niet verwijderen"
+
+#: admin/static/admin/js/admin.js:151
+msgid "This operation will remove ALL data associated to this domain."
+msgstr "Deze actie zal ALLE data verwijderen die bij dit domein hoort."
#: admin/static/admin/js/admin.js:152
-msgid "This operation will remove ALL data associated to this domain."
-msgstr ""
-"Deze actie zal ALLE data verwijderen die bij dit domein hoort. Wilt u "
-"doorgaan?"
-
-#: admin/static/admin/js/admin.js:153
msgid ""
"This operation will remove all data associated to this domain, excepting "
"accounts."
msgstr ""
"Deze actie zal alle data die bij dit domein hoort verwijderen, behalve de "
-"gebruikers."
+"accounts."
-#: admin/static/admin/js/admin.js:236
-msgid "No domain administrator defined"
-msgstr "Geen administrator toegewezen"
-
-#: admin/static/admin/js/admin.js:291 admin/static/admin/js/admin.js:359
-msgid "No more identity to show"
-msgstr "Geen identiteiten meer om te weergeven"
-
-#: admin/static/admin/js/admin.js:333
-msgid "Do not delete mailbox directory"
-msgstr "Verwijder de map van deze mailbox niet (zal de data ervan behouden)"
-
-#: admin/static/admin/js/admin.js:362
+#: admin/static/admin/js/admin.js:177 admin/static/admin/js/admin.js:433
msgid "No more quota to show"
-msgstr "Geen quota meer om te weergeven"
+msgstr "Geen quotum meer om weer te geven"
+
+#: admin/static/admin/js/admin.js:306
+msgid "No domain administrator defined"
+msgstr "Geen domeinbeheerder toegewezen"
+
+#: admin/static/admin/js/admin.js:362 admin/static/admin/js/admin.js:430
+msgid "No more identity to show"
+msgstr "Geen identiteiten meer om weer te geven"
+
+#: admin/static/admin/js/admin.js:404
+msgid "Do not delete mailbox directory"
+msgstr "Verwijder de map van deze mailbox niet"
diff --git a/modoboa/admin/locale/pl_PL/LC_MESSAGES/django.po b/modoboa/admin/locale/pl_PL/LC_MESSAGES/django.po
index 74a67a6ee..d5ae7acaa 100644
--- a/modoboa/admin/locale/pl_PL/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/pl_PL/LC_MESSAGES/django.po
@@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
"PO-Revision-Date: 2017-12-07 08:37+0000\n"
"Last-Translator: Antoine Nguyen \n"
"Language-Team: Polish (Poland) (http://www.transifex.com/tonio/modoboa/"
@@ -24,25 +24,29 @@ msgstr ""
"%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n"
"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
-#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/api.py:142
+msgid "Here is your new Modoboa password: {}"
+msgstr ""
+
+#: admin/app_settings.py:20 admin/handlers.py:261
#: admin/templates/admin/_global_statistics_widget.html:11
#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domeny"
-#: admin/app_settings.py:25
+#: admin/app_settings.py:23
msgid "Enable MX checks"
msgstr "Włącz sprawdzanie rekordów MX"
-#: admin/app_settings.py:28
+#: admin/app_settings.py:26
msgid "Check that every domain has a valid MX record"
msgstr "Sprawdź czy dla domeny zdefiniowano poprawny rekord MX"
-#: admin/app_settings.py:33
+#: admin/app_settings.py:31
msgid "Valid MXs"
msgstr "Poprawne MXy"
-#: admin/app_settings.py:36
+#: admin/app_settings.py:34
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
@@ -50,11 +54,11 @@ msgstr ""
"Lista adresów IP lub sieci dla każdego pasującego rekordu MX. Monit zostanie "
"wysłany w przypadku błędu."
-#: admin/app_settings.py:44
+#: admin/app_settings.py:42
msgid "New domains must use authorized MX(s)"
msgstr "Nowe domeny muszą używać autoryzowanych MX'ów"
-#: admin/app_settings.py:47
+#: admin/app_settings.py:45
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
@@ -62,42 +66,98 @@ msgstr ""
"Zapobiegaj tworzeniu nowych domen jeśli ich MXy nie są jednym ze "
"zdefiniowanych adresów."
-#: admin/app_settings.py:53
+#: admin/app_settings.py:51
+#, fuzzy
+#| msgid "Enable DNS checks"
+msgid "Enable SPF checks"
+msgstr "Aktywuj sprawdzanie rekordów DNS"
+
+#: admin/app_settings.py:54
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid SPF record"
+msgstr "Sprawdź czy dla domeny zdefiniowano poprawny rekord MX"
+
+#: admin/app_settings.py:59
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DKIM checks"
+msgstr "Włącz sprawdzanie rekordów MX"
+
+#: admin/app_settings.py:62
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr "Sprawdź czy dla domeny zdefiniowano poprawny rekord MX"
+
+#: admin/app_settings.py:68
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DMARC checks"
+msgstr "Włącz sprawdzanie rekordów MX"
+
+#: admin/app_settings.py:71
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid DMARC record"
+msgstr "Sprawdź czy dla domeny zdefiniowano poprawny rekord MX"
+
+#: admin/app_settings.py:76
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable autoconfig checks"
+msgstr "Włącz sprawdzanie rekordów MX"
+
+#: admin/app_settings.py:79
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr "Sprawdź czy dla domeny zdefiniowano poprawny rekord MX"
+
+#: admin/app_settings.py:84
msgid "Enable DNSBL checks"
msgstr "Włącz sprawdzanie DNSBL"
-#: admin/app_settings.py:56
+#: admin/app_settings.py:87
msgid "Check every domain against major DNSBL providers"
msgstr "Sprawdź każdą domenę po kątem głównych providerów DNSBL"
-#: admin/app_settings.py:61
+#: admin/app_settings.py:92
+msgid "Custom DNS server"
+msgstr ""
+
+#: admin/app_settings.py:95
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr ""
+
+#: admin/app_settings.py:100
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:64
+#: admin/app_settings.py:103
msgid ""
"Absolute path of the directory where DKIM private keys will be stored. Make "
"sure this directory belongs to root user and is not readable by the outside "
"world."
msgstr ""
-#: admin/app_settings.py:72
+#: admin/app_settings.py:111
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:76
+#: admin/app_settings.py:115
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
+#: admin/app_settings.py:119 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Skrzynki pocztowe"
-#: admin/app_settings.py:83
+#: admin/app_settings.py:122
msgid "Handle mailboxes on filesystem"
msgstr "Przechowuj skrzynka na filesystemie"
-#: admin/app_settings.py:86
+#: admin/app_settings.py:125
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -105,19 +165,19 @@ msgstr ""
"Zmieniaj lub usuwaj skrzynki na filesystemie jeśli zostały zmodyfikowane lub "
"usuniętę przez Modoboa"
-#: admin/app_settings.py:92
+#: admin/app_settings.py:131
msgid "Mailboxes owner"
msgstr "Właściciel skrzynek"
-#: admin/app_settings.py:95
+#: admin/app_settings.py:134
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "Konto UNIX właściciela skrzynek na filesystemie"
-#: admin/app_settings.py:100
+#: admin/app_settings.py:139
msgid "Default domain quota"
msgstr "Domyślne ograniczenie dla domeny"
-#: admin/app_settings.py:103
+#: admin/app_settings.py:142
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -125,81 +185,85 @@ msgstr ""
"Domyślne ograniczenie (w MB) dla nowych domen, gdy nie zostało podane. (0 - "
"brak ograniczenia)"
-#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/app_settings.py:148 admin/forms/domain.py:49 admin/models/domain.py:33
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr "Domyślna przestrzeń dla konta pocztowego"
-#: admin/app_settings.py:112
+#: admin/app_settings.py:151
+#, fuzzy
+#| msgid ""
+#| "Default mailbox quota (in MB) applied to freshly created domains with no "
+#| "value specified. A value of 0 means no quota."
msgid ""
-"Default mailbox quota (in MB) applied to freshly created domains with no "
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
"value specified. A value of 0 means no quota."
msgstr ""
"Domyślna pojemność skrzynki (w MB) dla nowo tworzonych domen bez podanej "
"wartości. 0 oznacza brak limitu."
-#: admin/app_settings.py:118
+#: admin/app_settings.py:157
msgid "Automatic account removal"
msgstr "Automatyczne usuwanie konta"
-#: admin/app_settings.py:121
+#: admin/app_settings.py:160
msgid "When a mailbox is removed, also remove the associated account"
msgstr "Gdy usuwana jest skrzynka usuń powizane z nią konto"
-#: admin/app_settings.py:125
+#: admin/app_settings.py:164
msgid "Automatic domain/mailbox creation"
msgstr "Automatyczne tworzenie domeny/skrzynki"
-#: admin/app_settings.py:128
+#: admin/app_settings.py:167
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr "Utwórz domenę i skrzynkę gdy tworzone jest konto"
-#: admin/app_settings.py:134
+#: admin/app_settings.py:173
msgid "Create an alias when a mailbox is renamed"
msgstr "Utwórz alias podczas zmiany nazwy skrzynki"
-#: admin/app_settings.py:137
+#: admin/app_settings.py:176
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr "Utwórz alias używając starego adresu podczas zmiany nazwy skrzynki."
-#: admin/app_settings.py:186 admin/app_settings.py:194
-#: admin/forms/account.py:331
+#: admin/app_settings.py:225 admin/app_settings.py:233
+#: admin/forms/account.py:335
msgid "Must be a positive integer"
msgstr "Musi być liczbą całkowitą dodatnią"
-#: admin/app_settings.py:204
+#: admin/app_settings.py:243
#, fuzzy
#| msgid "Domain not found."
msgid "Directory not found."
msgstr "Domena nie znaleziona."
-#: admin/app_settings.py:210
+#: admin/app_settings.py:249
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/app_settings.py:224
+#: admin/app_settings.py:263
msgid "Define at least one authorized network / address"
msgstr "Zdefiniuj przynajmniej jedną autoryzowaną sieć / adres"
-#: admin/app_settings.py:234
+#: admin/app_settings.py:273
msgid "Administration"
msgstr "Administracja"
-#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/constants.py:28 admin/forms/alias.py:43
#: admin/templates/admin/_per_domain_statistics_widget.html:7
#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Domena"
-#: admin/constants.py:100
+#: admin/constants.py:29
msgid "Relay domain"
msgstr ""
-#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
+#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:125
msgid "Username"
msgstr "Username"
-#: admin/forms/account.py:40
+#: admin/forms/account.py:34
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
@@ -207,23 +271,23 @@ msgstr ""
"Username musi być poprawnym adresem e-mail dla zwykłych użytkowników i "
"administratorów posiadających skrzynkę."
-#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
+#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Rola"
-#: admin/forms/account.py:46
+#: admin/forms/account.py:40
msgid "Choose"
msgstr "Wybierz"
-#: admin/forms/account.py:47
+#: admin/forms/account.py:41
msgid "What level of permission this user will have"
msgstr "Jaki zakres uprawnień będzie miał użytkownik"
-#: admin/forms/account.py:50 admin/forms/domain.py:227
+#: admin/forms/account.py:44 admin/forms/domain.py:245
msgid "Random password"
msgstr "Losowe hasło"
-#: admin/forms/account.py:52
+#: admin/forms/account.py:46
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
@@ -231,64 +295,70 @@ msgstr ""
"Wygeneruj losowe hasło. Jeśli aktualizujesz to konto i zaznaczysz te pole, "
"to zostanie wygenerowane nowe hasło."
-#: admin/forms/account.py:58
+#: admin/forms/account.py:52
msgid "Password"
msgstr "Hasło"
-#: admin/forms/account.py:63
+#: admin/forms/account.py:57
msgid "Confirmation"
msgstr "Potwierdzenie"
-#: admin/forms/account.py:66
+#: admin/forms/account.py:60
msgid "Enter the same password as above, for verification."
msgstr "Wprowadź hasło ponownie"
-#: admin/forms/account.py:78
+#: admin/forms/account.py:72
msgid "Enabled"
msgstr "Włączone"
-#: admin/forms/account.py:172
+#: admin/forms/account.py:167
msgid "Only super administrators are allowed for this mode"
msgstr "Tylko super administratorzy mogą korzystać z tej opcji"
-#: admin/forms/account.py:183 admin/forms/account.py:185
-#: admin/forms/domain.py:144 admin/forms/domain.py:273
-#: admin/forms/domain.py:276 admin/serializers.py:241
+#: admin/forms/account.py:178 admin/forms/account.py:180
+#: admin/forms/domain.py:162 admin/forms/domain.py:291
+#: admin/forms/domain.py:294 admin/serializers.py:287
msgid "This field is required."
msgstr "To pole jest wymagane"
-#: admin/forms/account.py:191
+#: admin/forms/account.py:186
msgid "The two password fields didn't match."
msgstr "Hasła nie są zgodne"
-#: admin/forms/account.py:204
+#: admin/forms/account.py:199
msgid "You can't disable your own account"
msgstr "Nie możesz wyłączyć swojego konta"
-#: admin/forms/account.py:225
+#: admin/forms/account.py:222
msgid "E-mail"
msgstr "E-mail"
-#: admin/forms/account.py:227
+#: admin/forms/account.py:224
msgid "Create an alias using the old address"
msgstr "Utwórz alias używając starego adresu"
-#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/forms/account.py:229 admin/forms/domain.py:41
+#: admin/templates/admin/account_detail.html:45
#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Limit"
-#: admin/forms/account.py:234
+#: admin/forms/account.py:232
+#, fuzzy
+#| msgid ""
+#| "Quota in MB for this mailbox. Define a custom value or use domain's "
+#| "default one. Leave empty to define an unlimited value (not allowed for "
+#| "domain administrators)."
msgid ""
-"Quota in MB for this mailbox. Define a custom value or use domain's default "
-"one. Leave empty to define an unlimited value (not allowed for domain "
-"administrators)."
+"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a "
+"custom value or use domain's default one. Leave empty to define an unlimited "
+"value (not allowed for domain administrators)."
msgstr ""
"Limit w MB dla tej skrzynki. Podaj własną wartość lub skorzystaj z domyślne "
"wartości dla domeny. Brak limitu jeśli pozostawisz niewypełnione (opcja "
"niedozwolona dla administratorów domen)"
-#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/forms/account.py:242 admin/forms/domain.py:31
#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias(y)"
@@ -317,66 +387,66 @@ msgstr ""
"podczas wysyłania wiadomości, nawet jeśli taki nie istnieje lokalnie. Podaj "
"jeden adres w polu. Naciśnij ENTER aby dodać nowe pole."
-#: admin/forms/account.py:309 admin/forms/alias.py:94
-#: admin/models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:88
+#: admin/models/mailbox.py:310
msgid "Domain does not exist"
msgstr "Domena nie istnieje"
-#: admin/forms/account.py:341
+#: admin/forms/account.py:345
msgid "Local domain does not exist"
msgstr "Domena lokalna nie istnieje"
-#: admin/forms/account.py:345 admin/forms/account.py:353
-#: admin/forms/alias.py:97
+#: admin/forms/account.py:349 admin/forms/account.py:357
+#: admin/forms/alias.py:91
msgid "You don't have access to this domain"
msgstr "Nie masz uprawnień dla tej domeny"
-#: admin/forms/account.py:452
+#: admin/forms/account.py:456
msgid "Domain(s)"
msgstr "Domena(y)"
-#: admin/forms/account.py:454
+#: admin/forms/account.py:458
msgid "Domain(s) that user administrates"
msgstr "Domena(y), którmi zarządza użytkownik"
-#: admin/forms/account.py:500 admin/forms/account.py:590
-#: admin/forms/domain.py:344 admin/forms/domain.py:414
+#: admin/forms/account.py:505 admin/forms/account.py:595
+#: admin/forms/domain.py:362 admin/forms/domain.py:433
msgid "General"
msgstr "Ogólne"
-#: admin/forms/account.py:504
+#: admin/forms/account.py:509
msgid "Profile"
msgstr "Profil"
-#: admin/forms/account.py:508 admin/forms/account.py:596
+#: admin/forms/account.py:513 admin/forms/account.py:601
msgid "Mail"
msgstr "Mail"
-#: admin/forms/account.py:511
+#: admin/forms/account.py:516
msgid "Permissions"
msgstr "Uprawnienia"
-#: admin/forms/account.py:579
+#: admin/forms/account.py:584
msgid "Account updated"
msgstr "Konto zaktualizowane"
-#: admin/forms/account.py:604
+#: admin/forms/account.py:609
msgid "New account"
msgstr "Nowe konto"
-#: admin/forms/account.py:614
+#: admin/forms/account.py:619
msgid "Account created"
msgstr "Konto utworzone"
-#: admin/forms/alias.py:26
+#: admin/forms/alias.py:20
msgid "Random address"
msgstr "Adres losowy"
-#: admin/forms/alias.py:29
+#: admin/forms/alias.py:23
msgid "Email address"
msgstr "Adres e-mail"
-#: admin/forms/alias.py:31
+#: admin/forms/alias.py:25
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
@@ -384,11 +454,11 @@ msgstr ""
"Adres aliasu. W celu utworzenia aliasu typu catchall wprowadź jedynie nazwę "
"domeny (np. @domena.pl)"
-#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Odbiorcy"
-#: admin/forms/alias.py:39
+#: admin/forms/alias.py:33
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
@@ -396,75 +466,97 @@ msgstr ""
"Adres na który wskazuje alias. Wprowadź pojedynczo. Wciśnij ENTER aby dodać "
"kolejny."
-#: admin/forms/alias.py:114 admin/forms/alias.py:116
+#: admin/forms/alias.py:108 admin/forms/alias.py:110
msgid "This field is required"
msgstr "To pole jest wymagane"
-#: admin/forms/alias.py:120
+#: admin/forms/alias.py:114
msgid "No recipient defined"
msgstr "Nie zdefiniowano odbiorców"
-#: admin/forms/domain.py:36
+#: admin/forms/domain.py:28
#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Typ"
-#: admin/forms/domain.py:42
+#: admin/forms/domain.py:34
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
msgstr ""
"Alias(y) tej domeny. Wprowadź pojedynczo. Wciśnij ENTER aby dodać kolejny."
-#: admin/forms/domain.py:47
+#: admin/forms/domain.py:39
msgid "Key selector"
msgstr ""
-#: admin/forms/domain.py:85 admin/handlers.py:171
+#: admin/forms/domain.py:44 admin/serializers.py:30
+#, fuzzy
+#| msgid ""
+#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgid ""
+"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
+"A value of 0 means no quota."
+msgstr ""
+"Domyślne ograniczenie (w MB) dla nowych skrzynek. Wartość 0 oznacza brak "
+"ograniczenia."
+
+#: admin/forms/domain.py:52
+#, fuzzy
+#| msgid ""
+#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgid ""
+"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
+"GB. A value of 0 means no quota."
+msgstr ""
+"Domyślne ograniczenie (w MB) dla nowych skrzynek. Wartość 0 oznacza brak "
+"ograniczenia."
+
+#: admin/forms/domain.py:94 admin/handlers.py:161
msgid "domain alias"
msgstr "alias domeny"
-#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
+#: admin/forms/domain.py:97 admin/forms/domain.py:173 admin/forms/domain.py:181
#, python-format
msgid "A %s with this name already exists"
msgstr "Nazwa %s już istnieje"
-#: admin/forms/domain.py:96 admin/serializers.py:45
+#: admin/forms/domain.py:105 admin/serializers.py:64
msgid "No authorized MX record found for this domain"
msgstr "Nie znaleziono autoryzowanych dla tej domeny rekordów MX "
-#: admin/forms/domain.py:108
+#: admin/forms/domain.py:117
msgid "DKIM keys storage directory not configured"
msgstr ""
-#: admin/forms/domain.py:129 admin/serializers.py:55
+#: admin/forms/domain.py:147 admin/serializers.py:82
msgid "Cannot be greater than domain quota"
msgstr "Nie może być wyższa niż limit domeny"
-#: admin/forms/domain.py:134
+#: admin/forms/domain.py:152
msgid "You can't define an unlimited quota."
msgstr "Nie możesz przypisać nielimitowanej przestrzeni"
-#: admin/forms/domain.py:155 admin/forms/domain.py:160
+#: admin/forms/domain.py:173 admin/forms/domain.py:178
msgid "domain"
msgstr "domena"
-#: admin/forms/domain.py:209
+#: admin/forms/domain.py:227
msgid "Create a domain administrator"
msgstr "Utwórz administratora domeny"
-#: admin/forms/domain.py:212
+#: admin/forms/domain.py:230
msgid "Automatically create an administrator for this domain"
msgstr "Automatycznie utwórz administratora dla tej domeny"
-#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/forms/domain.py:235 admin/templates/admin/domain_detail.html:125
#: admin/templates/admin/domain_headers.html:3
#: admin/templates/admin/identity_headers.html:2
#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Nazwa"
-#: admin/forms/domain.py:220
+#: admin/forms/domain.py:238
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
@@ -472,363 +564,365 @@ msgstr ""
"Nazwa administratora. Nie dodawaj tutaj nazwy domeny, zostanie dodana "
"automatycznie"
-#: admin/forms/domain.py:230
+#: admin/forms/domain.py:248
msgid "Generate a random password for the administrator."
msgstr "Wygeneruj losowe hasło dla administratora."
-#: admin/forms/domain.py:236
+#: admin/forms/domain.py:254
msgid "With a mailbox"
msgstr "Ze skrzynką"
-#: admin/forms/domain.py:239
+#: admin/forms/domain.py:257
msgid "Create a mailbox for the administrator."
msgstr "Utwórz skrzynkę dla administratora."
-#: admin/forms/domain.py:245
+#: admin/forms/domain.py:263
msgid "Create aliases"
msgstr "Utwórz aliasy"
-#: admin/forms/domain.py:248
+#: admin/forms/domain.py:266
msgid "Automatically create standard aliases for this domain"
msgstr "Automatycznie utwórz standardowe aliasy dla tej domeny"
-#: admin/forms/domain.py:264
+#: admin/forms/domain.py:282
msgid "Invalid format"
msgstr "Niepoprawny format"
-#: admin/forms/domain.py:293
+#: admin/forms/domain.py:311
#, python-format
msgid "User '%s' already exists"
msgstr "Użytkownik '%s' już istnieje"
-#: admin/forms/domain.py:404
+#: admin/forms/domain.py:423
msgid "Domain modified"
msgstr "Domena zmodyfikowana"
-#: admin/forms/domain.py:425
+#: admin/forms/domain.py:444
msgid "Options"
msgstr "Opcje"
-#: admin/forms/domain.py:433
+#: admin/forms/domain.py:452
msgid "New domain"
msgstr "Nowa domena"
-#: admin/forms/domain.py:446
+#: admin/forms/domain.py:465
msgid "Domain created"
msgstr "Domena utworzona"
-#: admin/forms/export.py:9
-msgid "File name"
-msgstr "Nazwa pliku"
-
-#: admin/forms/export.py:15 admin/forms/import_.py:15
+#: admin/forms/export.py:9 admin/forms/import_.py:13
msgid "Separator"
msgstr "Separator"
-#: admin/forms/forward.py:14
+#: admin/forms/forward.py:12
msgid "Recipient(s)"
msgstr "Odbiorca(y)"
-#: admin/forms/forward.py:18
+#: admin/forms/forward.py:16
msgid "Indicate one or more recipients separated by a ','"
msgstr "Wprowadź jednego lub wielu odbiorców używając przecinka"
-#: admin/forms/forward.py:21
+#: admin/forms/forward.py:19
msgid "Keep local copies"
msgstr "Zachowuj lokalne kopie"
-#: admin/forms/forward.py:24
+#: admin/forms/forward.py:22
msgid "Forward messages and store copies into your local mailbox"
msgstr "Przekazuj wiadomości i przechowuj kopie w twojej skrzynce"
-#: admin/forms/import_.py:13
+#: admin/forms/import_.py:11
msgid "Select a file"
msgstr "Wybierz plik"
-#: admin/forms/import_.py:21
+#: admin/forms/import_.py:19
msgid "Continue on error"
msgstr "Kontynuuj przy błędzie"
-#: admin/forms/import_.py:22
+#: admin/forms/import_.py:20
msgid "Don't treat duplicated objects as error"
msgstr "Nie traktuj zdublowanych obiektów jako błąd"
-#: admin/forms/import_.py:40
+#: admin/forms/import_.py:38
msgid "Crypt passwords"
msgstr "Szyfruj hasła"
-#: admin/forms/import_.py:42
+#: admin/forms/import_.py:40
msgid "Check this option if passwords contained in your file are not crypted"
msgstr "Zaznacz opcję jeśli hasła w twoim pliku nie są zaszyfrowane"
-#: admin/handlers.py:218
+#: admin/handlers.py:210
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Błąd importu (%s): domena nie istnieje"
-#: admin/handlers.py:231 admin/models/mailbox.py:342
+#: admin/handlers.py:223 admin/models/mailbox.py:338
msgid "Mailbox {} already exists"
msgstr "Skrzynka {} już istnieje"
-#: admin/handlers.py:239
+#: admin/handlers.py:231
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Błąd importu (%s): błędna wartość limitu"
-#: admin/handlers.py:279
+#: admin/handlers.py:271
#: admin/templates/admin/_global_statistics_widget.html:17
#: admin/templates/admin/_per_domain_statistics_widget.html:8
#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Tożsamości"
-#: admin/handlers.py:295 admin/templates/admin/forward.html:2
+#: admin/handlers.py:287 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Przekaż"
-#: admin/lib.py:44
+#: admin/lib.py:38
msgid "A mailbox is required"
msgstr "Skrzynka jest obowiązkowa"
-#: admin/lib.py:134
+#: admin/lib.py:128
msgid "You are not allowed to import domains"
msgstr "Nie masz uprawnień do importowania domen"
-#: admin/lib.py:145
+#: admin/lib.py:139
msgid "You are not allowed to import domain aliases."
msgstr "Nie masz uprawnień do importowania aliasów."
-#: admin/lib.py:183 admin/tests/test_mx.py:122
+#: admin/lib.py:189 admin/tests/test_mx.py:127 admin/tests/test_mx.py:136
+#: admin/tests/test_mx.py:139
#, fuzzy, python-format
#| msgid "No MX record found for this domain."
-msgid "No DNS records found for %s"
+msgid "No DNS record found for %s"
msgstr "Nie znaleziono rekordu MX dla tej domeny"
-#: admin/lib.py:185 admin/tests/test_mx.py:125
+#: admin/lib.py:192
#, fuzzy, python-format
#| msgid "MX records of {}"
-msgid "No MX record for %s"
+msgid "No %(type)s record for %(name)s"
msgstr "Rekordy MX dla {}"
-#: admin/lib.py:187 admin/tests/test_mx.py:126
+#: admin/lib.py:196 admin/tests/test_mx.py:131
msgid "No working name servers found"
msgstr ""
-#: admin/lib.py:190 admin/tests/test_mx.py:128
+#: admin/lib.py:199 admin/tests/test_mx.py:133
#, python-format
msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
-#: admin/lib.py:201 admin/tests/test_mx.py:131
-#, python-format
-msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+#: admin/lib.py:227
+#, fuzzy, python-brace-format
+#| msgid "Invalid quota value for domain '{}'"
+msgid "Invalid IP address format for {domain}; {addr}"
+msgstr "Niepoprawna wartość przydziału (quoty) dla domeny {}"
+
+#: admin/management/commands/subcommands/_import.py:93
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/lib.py:212 admin/tests/test_mx.py:134
+#: admin/management/commands/subcommands/_import.py:105
#, python-format
-msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:136
+#: admin/management/commands/subcommands/_import.py:116
+#, python-format
+msgid "Unable to decode CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:132
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr "[modoboa] DNSBL problem(y) dla domeny {}"
-#: admin/management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:152
msgid "Domain {} has no MX record"
msgstr "Domena {} nie ma zdefiniowanego rekordu MX"
-#: admin/management/commands/subcommands/_mx.py:167
+#: admin/management/commands/subcommands/_mx.py:163
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr "Rekord MX dla domeny {0} jest niepoprawny: {1}"
-#: admin/management/commands/subcommands/_mx.py:184
+#: admin/management/commands/subcommands/_mx.py:180
msgid "[modoboa] MX issue(s) for domain {}"
msgstr "[modoboa] Wykryto problem(y) z MX dla domeny {}"
-#: admin/models/alias.py:35 admin/models/mailbox.py:97
+#: admin/models/alias.py:32 admin/models/mailbox.py:95
msgid "address"
msgstr "adres"
-#: admin/models/alias.py:37
+#: admin/models/alias.py:34
msgid "The alias address."
msgstr "Adres aliasu."
-#: admin/models/alias.py:42 admin/models/domain.py:48
-#: admin/models/domain_alias.py:47
+#: admin/models/alias.py:39 admin/models/domain.py:37
+#: admin/models/domain_alias.py:42
msgid "enabled"
msgstr "włączone"
-#: admin/models/alias.py:43 admin/models/domain_alias.py:48
+#: admin/models/alias.py:40 admin/models/domain_alias.py:43
msgid "Check to activate this alias"
msgstr "Zaznacz aby włączyć alias."
-#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
+#: admin/models/alias.py:45 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr "Opis"
-#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
+#: admin/models/alias.py:47 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr "Wygasa"
-#: admin/models/alias.py:93
+#: admin/models/alias.py:87
msgid "alias"
msgstr "alias"
-#: admin/models/alias.py:125
+#: admin/models/alias.py:119
msgid "Invalid address"
msgstr "Niepoprawny adres"
-#: admin/models/alias.py:146
+#: admin/models/alias.py:140
msgid "Local recipient {}@{} not found"
msgstr "Lokalny odbiorca {}@{} nie został odnaleziony"
-#: admin/models/alias.py:176
+#: admin/models/alias.py:170
#, python-format
msgid "Invalid line: %s"
msgstr "Niepoprawna linia: %s"
-#: admin/models/alias.py:182
+#: admin/models/alias.py:176
#, python-format
msgid "Domain '%s' does not exist"
msgstr "Domena '%s' nie istnieje"
-#: admin/models/domain.py:30 admin/models/domain_alias.py:39
+#: admin/models/domain.py:27 admin/models/domain_alias.py:34
msgid "name"
msgstr "nazwa"
-#: admin/models/domain.py:31
+#: admin/models/domain.py:28
msgid "The domain name"
msgstr "Nazwa domeny"
-#: admin/models/domain.py:35
-msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
-msgstr ""
-"Przydział w MB dzielony między skrzynki. Wartość 0 oznacza brak limitu."
+#: admin/models/domain.py:38
+msgid "Check to activate this domain"
+msgstr "Zaznacz, aby aktywować domenę"
#: admin/models/domain.py:43
+msgid "Enable DNS checks"
+msgstr "Aktywuj sprawdzanie rekordów DNS"
+
+#: admin/models/domain.py:44
+msgid "Check to enable DNS checks for this domain"
+msgstr "Zaznacz aby aktywować sprawdzanie DNS dla tej domeny"
+
+#: admin/models/domain.py:51
+msgid "Enable DKIM signing"
+msgstr ""
+
+#: admin/models/domain.py:53
+msgid ""
+"If you activate this feature, a DKIM key will be generated for this domain."
+msgstr ""
+
+#: admin/models/domain.py:59
+msgid "Key length"
+msgstr ""
+
+#: admin/models/domain.py:312 admin/models/domain_alias.py:67
+msgid "Invalid line"
+msgstr "Niepoprawna linia"
+
+#: admin/models/domain.py:322
+msgid "No authorized MX record found for domain {}"
+msgstr "Nie znaleziono autoryzowanego rekordu MX dla domeny {}"
+
+#: admin/models/domain.py:329
+msgid "Invalid quota value for domain '{}'"
+msgstr "Niepoprawna wartość przydziału (quoty) dla domeny {}"
+
+#: admin/models/domain.py:336
+msgid "Invalid default mailbox quota value for domain '{}'"
+msgstr "Niepoprawna wartość domyślna przydziału (quoty) dla domeny '{}'"
+
+#: admin/models/domain.py:341
+msgid "Default mailbox quota cannot be greater than domain quota"
+msgstr ""
+"Domyślna wartość przydziału (quota) nie może być wyższa niż przydział domeny"
+
+#: admin/models/domain_alias.py:35
+msgid "The alias name"
+msgstr "Nazwa aliasu"
+
+#: admin/models/domain_alias.py:37
+msgid "target"
+msgstr "cel"
+
+#: admin/models/domain_alias.py:38
+msgid "The domain this alias points to"
+msgstr "Alias wskazuje na"
+
+#: admin/models/domain_alias.py:76
+#, python-format
+msgid "Unknown domain %s"
+msgstr "Nieznana domena %s"
+
+#: admin/models/mailbox.py:97
+msgid "Mailbox address (without the @domain.tld part)"
+msgstr "Adres skrzynki (bez części @domena.pl)"
+
+#: admin/models/mailbox.py:160
+#, python-format
+msgid "Failed to retrieve mailbox location (%s)"
+msgstr "Błąd - nie udało się odczytać lokalizacji skrzynki (%s)"
+
+#: admin/models/mailbox.py:253
+msgid "A quota is required"
+msgstr "Limit jest wymagany"
+
+#: admin/models/mailbox.py:259
+msgid "Domain quota exceeded"
+msgstr "Przekroczono limit przydziału"
+
+#: admin/serializers.py:37
msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
msgstr ""
"Domyślne ograniczenie (w MB) dla nowych skrzynek. Wartość 0 oznacza brak "
"ograniczenia."
-#: admin/models/domain.py:49
-msgid "Check to activate this domain"
-msgstr "Zaznacz, aby aktywować domenę"
-
-#: admin/models/domain.py:54
-msgid "Enable DNS checks"
-msgstr "Aktywuj sprawdzanie rekordów DNS"
-
-#: admin/models/domain.py:55
-msgid "Check to enable DNS checks for this domain"
-msgstr "Zaznacz aby aktywować sprawdzanie DNS dla tej domeny"
-
-#: admin/models/domain.py:62
-msgid "Enable DKIM signing"
-msgstr ""
-
-#: admin/models/domain.py:64
-msgid ""
-"If you activate this feature, a DKIM key will be generated for this domain."
-msgstr ""
-
-#: admin/models/domain.py:70
-msgid "Key length"
-msgstr ""
-
-#: admin/models/domain.py:285 admin/models/domain_alias.py:74
-msgid "Invalid line"
-msgstr "Niepoprawna linia"
-
-#: admin/models/domain.py:295
-msgid "No authorized MX record found for domain {}"
-msgstr "Nie znaleziono autoryzowanego rekordu MX dla domeny {}"
-
-#: admin/models/domain.py:302
-msgid "Invalid quota value for domain '{}'"
-msgstr "Niepoprawna wartość przydziału (quoty) dla domeny {}"
-
-#: admin/models/domain.py:309
-msgid "Invalid default mailbox quota value for domain '{}'"
-msgstr "Niepoprawna wartość domyślna przydziału (quoty) dla domeny '{}'"
-
-#: admin/models/domain.py:314
-msgid "Default mailbox quota cannot be greater than domain quota"
-msgstr ""
-"Domyślna wartość przydziału (quota) nie może być wyższa niż przydział domeny"
-
-#: admin/models/domain_alias.py:40
-msgid "The alias name"
-msgstr "Nazwa aliasu"
-
-#: admin/models/domain_alias.py:42
-msgid "target"
-msgstr "cel"
-
-#: admin/models/domain_alias.py:43
-msgid "The domain this alias points to"
-msgstr "Alias wskazuje na"
-
-#: admin/models/domain_alias.py:83
-#, python-format
-msgid "Unknown domain %s"
-msgstr "Nieznana domena %s"
-
-#: admin/models/mailbox.py:99
-msgid "Mailbox address (without the @domain.tld part)"
-msgstr "Adres skrzynki (bez części @domena.pl)"
-
-#: admin/models/mailbox.py:165
-#, python-format
-msgid "Failed to retrieve mailbox location (%s)"
-msgstr "Błąd - nie udało się odczytać lokalizacji skrzynki (%s)"
-
-#: admin/models/mailbox.py:258
-msgid "A quota is required"
-msgstr "Limit jest wymagany"
-
-#: admin/models/mailbox.py:264
-msgid "Domain quota exceeded"
-msgstr "Przekroczono limit przydziału"
-
-#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
+#: admin/serializers.py:107 admin/serializers.py:312 admin/serializers.py:410
msgid "Permission denied."
msgstr "Odmowa dostępu"
-#: admin/serializers.py:118
+#: admin/serializers.py:158
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
"Lista administratorów domen (tylko resellerów i administratorów domen)."
-#: admin/serializers.py:218
+#: admin/serializers.py:262
msgid "Not allowed for this role."
msgstr "Niedozwolone dla tej roli."
-#: admin/serializers.py:228
+#: admin/serializers.py:274
msgid "Must be equal to mailbox full_address"
msgstr "Musi być równe z full_address skrzynki."
-#: admin/serializers.py:253
+#: admin/serializers.py:299
msgid "Local domain {} does not exist"
msgstr "Lokalna domena {} nie istnieje"
-#: admin/serializers.py:347
+#: admin/serializers.py:397
msgid "A list of recipient"
msgstr "Lista odbiorców"
-#: admin/serializers.py:358
+#: admin/serializers.py:408
msgid "Domain not found."
msgstr "Domena nie znaleziona."
-#: admin/serializers.py:407
+#: admin/serializers.py:457
#, fuzzy
#| msgid "You don't have access to this domain"
msgid "You don't have access to this domain."
msgstr "Nie masz uprawnień dla tej domeny"
-#: admin/serializers.py:415
+#: admin/serializers.py:465
#, fuzzy
#| msgid "You don't have access to this domain"
msgid "You don't have access to this mailbox."
@@ -865,6 +959,19 @@ msgstr "Wyłączony"
msgid "Awaiting checks"
msgstr "Czeka na sprawdzenie"
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+#, fuzzy
+#| msgid "No MX record found for this domain."
+msgid "No record found"
+msgstr "Nie znaleziono rekordu MX dla tej domeny"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
+msgstr ""
+
#: admin/templates/admin/_global_statistics_widget.html:4
msgid "Global statistics"
msgstr "Statystyki globalne"
@@ -971,7 +1078,8 @@ msgid "Address"
msgstr "Adres"
#: admin/templates/admin/dnsbl_domain_detail.html:12
-#: admin/templates/admin/domain_detail.html:96
+#: admin/templates/admin/domain_detail.html:100
+#: admin/templates/admin/messages_log_headers.html:6
msgid "Status"
msgstr "Status"
@@ -1003,11 +1111,8 @@ msgstr "Aliasy skrzynki"
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domain_detail.html:65
-#: admin/templates/admin/domain_general_form.html:4
-#: admin/templates/admin/domain_general_form.html:5
#: admin/templates/admin/domains_quotas.html:11
#: admin/templates/admin/domains_quotas.html:12
-#: admin/templates/admin/mailform.html:7
#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
@@ -1027,34 +1132,38 @@ msgstr "użyto"
msgid "allocated"
msgstr "przydzielono"
-#: admin/templates/admin/domain_detail.html:91
+#: admin/templates/admin/domain_detail.html:92
msgid "DNS"
msgstr ""
-#: admin/templates/admin/domain_detail.html:103
+#: admin/templates/admin/domain_detail.html:107
msgid "DKIM key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:107
+#: admin/templates/admin/domain_detail.html:111
msgid "Show key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:110
+#: admin/templates/admin/domain_detail.html:113
+msgid "Generate new key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:115
#, fuzzy
#| msgid "Not defined"
msgid "Not generated"
msgstr "Nie zdefiniowano"
-#: admin/templates/admin/domain_detail.html:117
+#: admin/templates/admin/domain_detail.html:122
msgid "Administrators"
msgstr "Administratorzy"
-#: admin/templates/admin/domain_detail.html:129
-#: admin/templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:134
+#: admin/templatetags/admin_tags.py:265
msgid "Remove this permission"
msgstr "Usuń to uprawnienie"
-#: admin/templates/admin/domain_detail.html:134
+#: admin/templates/admin/domain_detail.html:139
msgid "No domain administrator defined yet."
msgstr "Nie zdefiniowano jeszcze administratorów domeny."
@@ -1108,7 +1217,7 @@ msgstr "wyłączone"
msgid "Automatically forward emails to another address"
msgstr "Automatycznie przekazuj wiadomości do do innych odbiorców"
-#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:87
msgid "Update"
msgstr "Zaktualizuj"
@@ -1184,6 +1293,22 @@ msgstr "Wybierz wartość"
msgid "Use domain default value"
msgstr "Użyj domyślnej wartości dla domeny"
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:3
+msgid "Date"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:4
+msgid "From"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:5
+msgid "To"
+msgstr ""
+
#: admin/templates/admin/mx_domain_detail.html:11
msgid "Updated"
msgstr "Zaktualizowane"
@@ -1225,72 +1350,83 @@ msgstr ""
msgid "Search"
msgstr "Szukaj"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_m"
msgstr "enabled_m"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_f"
msgstr "enabled_f"
-#: admin/templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:45
msgid "List domains"
msgstr "Lista domen"
-#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:50 admin/templatetags/admin_tags.py:105
msgid "List quotas"
msgstr "Lista limitów"
-#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
-#: admin/views/import_.py:89 admin/views/import_.py:111
+#: admin/templatetags/admin_tags.py:62 admin/templatetags/admin_tags.py:110
+#: admin/views/import_.py:85 admin/views/import_.py:107
msgid "Import"
msgstr "Importuj"
-#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
-#: admin/views/export.py:43 admin/views/export.py:71
+#: admin/templatetags/admin_tags.py:68 admin/templatetags/admin_tags.py:116
+#: admin/views/export.py:39 admin/views/export.py:67
msgid "Export"
msgstr "Exportuj"
-#: admin/templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:100
msgid "List identities"
msgstr "Lista tożsamości"
-#: admin/templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:135
msgid "View the domain's identities"
msgstr "Pokaż tożsamości domeny"
-#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
-#: admin/templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:141 admin/templatetags/admin_tags.py:184
+#: admin/templatetags/admin_tags.py:197
msgid "Edit {}"
msgstr "Edytuj {}"
-#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
-#: admin/templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:151 admin/templatetags/admin_tags.py:188
+#: admin/templatetags/admin_tags.py:202
#, python-format
msgid "Delete %s?"
msgstr "Usunąć %s?"
-#: admin/views/alias.py:35
+#: admin/tests/test_mx.py:130
+#, fuzzy, python-format
+#| msgid "MX records of {}"
+msgid "No MX record for %s"
+msgstr "Rekordy MX dla {}"
+
+#: admin/tests/test_mx.py:142 admin/tests/test_mx.py:145
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/views/alias.py:29
msgid "Alias with this name already exists"
msgstr "Alias z taką nazwą już istnieje"
-#: admin/views/alias.py:60
+#: admin/views/alias.py:54
msgid "Create"
msgstr "Utwórz"
-#: admin/views/alias.py:72
+#: admin/views/alias.py:66
msgid "New alias"
msgstr "Nowy alias"
-#: admin/views/alias.py:73
+#: admin/views/alias.py:67
msgid "Alias created"
msgstr "Alias utworzony"
-#: admin/views/alias.py:85
+#: admin/views/alias.py:79
msgid "Alias modified"
msgstr "Alias zmodyfikowany"
-#: admin/views/alias.py:109
+#: admin/views/alias.py:103
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] "Alias skasowano"
@@ -1298,19 +1434,19 @@ msgstr[1] "Alias skasowano"
msgstr[2] "Alias skasowano"
msgstr[3] "Aliasy skasowano"
-#: admin/views/dns.py:32
+#: admin/views/dns.py:28
msgid "MX records of {}"
msgstr "Rekordy MX dla {}"
-#: admin/views/dns.py:55
+#: admin/views/dns.py:51
msgid "DNSBL summary for {}"
msgstr "DNSBL podsumowanie dla {}"
-#: admin/views/domain.py:188
+#: admin/views/domain.py:202
msgid "You can't delete your own domain"
msgstr "Nie możesz usunąć swoje własnej domeny"
-#: admin/views/domain.py:191
+#: admin/views/domain.py:205
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Domena usunięta"
@@ -1318,20 +1454,20 @@ msgstr[1] "Domeny usunięte"
msgstr[2] "Domeny usunięte"
msgstr[3] "Domeny usunięte"
-#: admin/views/export.py:42
+#: admin/views/export.py:38
msgid "Export identities"
msgstr "Eksportuj tożsamości"
-#: admin/views/export.py:70
+#: admin/views/export.py:66
msgid "Export domains"
msgstr "Eksportuj domeny"
-#: admin/views/identity.py:113 admin/views/identity.py:206
-#: admin/views/identity.py:211
+#: admin/views/identity.py:107 admin/views/identity.py:201
+#: admin/views/identity.py:206
msgid "Invalid request"
msgstr "Nieprawidłowe żądanie"
-#: admin/views/identity.py:196
+#: admin/views/identity.py:191
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Konto usunięte"
@@ -1339,24 +1475,56 @@ msgstr[1] "Konta usunięte"
msgstr[2] "Konta usunięte"
msgstr[3] "Konta usunięte"
-#: admin/views/import_.py:65
+#: admin/views/import_.py:61
#, python-format
msgid "Object already exists: %s"
msgstr "Obiekt %s już istnieje"
-#: admin/views/import_.py:69
+#: admin/views/import_.py:65
#, python-format
msgid "%d objects imported successfully"
msgstr "Zaimportowano %d obiektów z sukcesem"
-#: admin/views/import_.py:88
+#: admin/views/import_.py:84
msgid "Import domains"
msgstr "Importuj domeny"
-#: admin/views/import_.py:110
+#: admin/views/import_.py:106
msgid "Import identities"
msgstr "Importuj tożsamości"
-#: admin/views/user.py:40
+#: admin/views/user.py:36
msgid "Forward updated"
msgstr "Reguła przekazywania zmodyfikowana"
+
+#~ msgid "File name"
+#~ msgstr "Nazwa pliku"
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No {type} record found for MX {mx}"
+#~ msgstr "Nie znaleziono rekordu MX dla tej domeny"
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No A record found for MX %(domain)s"
+#~ msgstr "Nie znaleziono rekordu MX dla tej domeny"
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No AAAA record found for MX %(domain)s"
+#~ msgstr "Nie znaleziono rekordu MX dla tej domeny"
+
+#~ msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
+#~ msgstr ""
+#~ "Przydział w MB dzielony między skrzynki. Wartość 0 oznacza brak limitu."
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No DNS records found without MX for %s"
+#~ msgstr "Nie znaleziono rekordu MX dla tej domeny"
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No DNS records found without MX for %(domain)s"
+#~ msgstr "Nie znaleziono rekordu MX dla tej domeny"
diff --git a/modoboa/admin/locale/pl_PL/LC_MESSAGES/djangojs.po b/modoboa/admin/locale/pl_PL/LC_MESSAGES/djangojs.po
index 1145e2a5f..13b772b87 100644
--- a/modoboa/admin/locale/pl_PL/LC_MESSAGES/djangojs.po
+++ b/modoboa/admin/locale/pl_PL/LC_MESSAGES/djangojs.po
@@ -1,53 +1,57 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# sin88 , 2016
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-04 22:08+0100\n"
+"POT-Creation-Date: 2020-03-09 16:48+0100\n"
"PO-Revision-Date: 2017-09-22 09:50+0000\n"
"Last-Translator: sin88 \n"
-"Language-Team: Polish (Poland) (http://www.transifex.com/tonio/modoboa/language/pl_PL/)\n"
+"Language-Team: Polish (Poland) (http://www.transifex.com/tonio/modoboa/"
+"language/pl_PL/)\n"
+"Language: pl_PL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: pl_PL\n"
-"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n"
+"%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n"
+"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
-#: admin/static/admin/js/admin.js:131
+#: admin/static/admin/js/admin.js:129 admin/static/admin/js/admin.js:174
msgid "No more domain to show"
msgstr "Brak domen do pokazania"
-#: admin/static/admin/js/admin.js:150
+#: admin/static/admin/js/admin.js:149
msgid "Do not delete domain directory"
msgstr "Nie usuwaj katalogu domeny"
-#: admin/static/admin/js/admin.js:152
+#: admin/static/admin/js/admin.js:151
msgid "This operation will remove ALL data associated to this domain."
msgstr "Ta operacja usunie WSZYSTKIE dane powiązane z tą domeną."
-#: admin/static/admin/js/admin.js:153
+#: admin/static/admin/js/admin.js:152
msgid ""
"This operation will remove all data associated to this domain, excepting "
"accounts."
-msgstr "Ta operacja usunie wszystkie dane powiązana z tą domeną za wyjątkiem kont."
+msgstr ""
+"Ta operacja usunie wszystkie dane powiązana z tą domeną za wyjątkiem kont."
-#: admin/static/admin/js/admin.js:236
+#: admin/static/admin/js/admin.js:177 admin/static/admin/js/admin.js:433
+msgid "No more quota to show"
+msgstr "Brak limitów do wyświetlenia"
+
+#: admin/static/admin/js/admin.js:306
msgid "No domain administrator defined"
msgstr "Nie zdefiniowano administratora domeny"
-#: admin/static/admin/js/admin.js:291 admin/static/admin/js/admin.js:359
+#: admin/static/admin/js/admin.js:362 admin/static/admin/js/admin.js:430
msgid "No more identity to show"
msgstr "Brak tożsamości do wyświetlenia"
-#: admin/static/admin/js/admin.js:333
+#: admin/static/admin/js/admin.js:404
msgid "Do not delete mailbox directory"
msgstr "Nie usuwaj katalogu skrzynki pocztowej"
-
-#: admin/static/admin/js/admin.js:362
-msgid "No more quota to show"
-msgstr "Brak limitów do wyświetlenia"
diff --git a/modoboa/admin/locale/pt_BR/LC_MESSAGES/django.po b/modoboa/admin/locale/pt_BR/LC_MESSAGES/django.po
index ad76ffea5..32a0dd8de 100644
--- a/modoboa/admin/locale/pt_BR/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/pt_BR/LC_MESSAGES/django.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# csmk, 2014
# Ian Moone, 2016
@@ -15,263 +15,358 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
"PO-Revision-Date: 2018-09-25 03:25+0000\n"
"Last-Translator: Rafael Barretto \n"
-"Language-Team: Portuguese (Brazil) (http://www.transifex.com/tonio/modoboa/language/pt_BR/)\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/tonio/modoboa/"
+"language/pt_BR/)\n"
+"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/api.py:142
+msgid "Here is your new Modoboa password: {}"
+msgstr ""
+
+#: admin/app_settings.py:20 admin/handlers.py:261
#: admin/templates/admin/_global_statistics_widget.html:11
#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domínios"
-#: admin/app_settings.py:25
+#: admin/app_settings.py:23
msgid "Enable MX checks"
msgstr "Habilitar checagens MX"
-#: admin/app_settings.py:28
+#: admin/app_settings.py:26
msgid "Check that every domain has a valid MX record"
msgstr "Checar se todo domínio tem um registro MX válido"
-#: admin/app_settings.py:33
+#: admin/app_settings.py:31
msgid "Valid MXs"
msgstr "MXs válidos"
-#: admin/app_settings.py:36
+#: admin/app_settings.py:34
msgid ""
-"A list of IP or network address every MX record should match. A warning will"
-" be sent if a record does not respect it."
-msgstr "Uma lista de IP ou endereços de rede devem ser compatíveis com todas as entradas MX. Um a será enviado caso alguma entrada não respeitar isso."
+"A list of IP or network address every MX record should match. A warning will "
+"be sent if a record does not respect it."
+msgstr ""
+"Uma lista de IP ou endereços de rede devem ser compatíveis com todas as "
+"entradas MX. Um a será enviado caso alguma entrada não respeitar isso."
-#: admin/app_settings.py:44
+#: admin/app_settings.py:42
msgid "New domains must use authorized MX(s)"
msgstr "Novos domínios devem usar MX (s) autorizados"
-#: admin/app_settings.py:47
+#: admin/app_settings.py:45
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
-msgstr "Impedir a criação de um novo domínio se o registro MX não usar um dos endereços definidos."
+msgstr ""
+"Impedir a criação de um novo domínio se o registro MX não usar um dos "
+"endereços definidos."
-#: admin/app_settings.py:53
+#: admin/app_settings.py:51
+#, fuzzy
+#| msgid "Enable DNS checks"
+msgid "Enable SPF checks"
+msgstr "Habilitar verificação DNS"
+
+#: admin/app_settings.py:54
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid SPF record"
+msgstr "Checar se todo domínio tem um registro MX válido"
+
+#: admin/app_settings.py:59
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DKIM checks"
+msgstr "Habilitar checagens MX"
+
+#: admin/app_settings.py:62
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr "Checar se todo domínio tem um registro MX válido"
+
+#: admin/app_settings.py:68
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DMARC checks"
+msgstr "Habilitar checagens MX"
+
+#: admin/app_settings.py:71
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid DMARC record"
+msgstr "Checar se todo domínio tem um registro MX válido"
+
+#: admin/app_settings.py:76
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable autoconfig checks"
+msgstr "Habilitar checagens MX"
+
+#: admin/app_settings.py:79
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr "Checar se todo domínio tem um registro MX válido"
+
+#: admin/app_settings.py:84
msgid "Enable DNSBL checks"
msgstr "Habilitar checagens DNSBL"
-#: admin/app_settings.py:56
+#: admin/app_settings.py:87
msgid "Check every domain against major DNSBL providers"
msgstr "Checar cada domínio em relação aos principais provedores DNSBL."
-#: admin/app_settings.py:61
+#: admin/app_settings.py:92
+msgid "Custom DNS server"
+msgstr ""
+
+#: admin/app_settings.py:95
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr ""
+
+#: admin/app_settings.py:100
msgid "DKIM keys storage directory"
msgstr "Diretório de armazenamento de chaves DKIM"
-#: admin/app_settings.py:64
+#: admin/app_settings.py:103
msgid ""
"Absolute path of the directory where DKIM private keys will be stored. Make "
"sure this directory belongs to root user and is not readable by the outside "
"world."
-msgstr "Caminho absoluto do diretório onde as chaves privadas DKIM serão armazenadas. Certifique-se de que este diretório pertença ao usuário root e não seja legível pelo mundo externo."
+msgstr ""
+"Caminho absoluto do diretório onde as chaves privadas DKIM serão "
+"armazenadas. Certifique-se de que este diretório pertença ao usuário root e "
+"não seja legível pelo mundo externo."
-#: admin/app_settings.py:72
+#: admin/app_settings.py:111
msgid "Default DKIM key length"
msgstr "Comprimento padrão da chave DKIM"
-#: admin/app_settings.py:76
+#: admin/app_settings.py:115
msgid "Default length in bits for newly generated DKIM keys."
msgstr "Comprimento padrão em bits para chaves DKIM recém-geradas."
-#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
+#: admin/app_settings.py:119 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Caixas de correios"
-#: admin/app_settings.py:83
+#: admin/app_settings.py:122
msgid "Handle mailboxes on filesystem"
msgstr "Tratar caixas de mensagens no sistema de arquivos."
-#: admin/app_settings.py:86
+#: admin/app_settings.py:125
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
-msgstr "Renomeia ou remove caixas de mensagens do sistema de arquivos quando elas são renomeadas ou removidas dentro do Modoboa"
+msgstr ""
+"Renomeia ou remove caixas de mensagens do sistema de arquivos quando elas "
+"são renomeadas ou removidas dentro do Modoboa"
-#: admin/app_settings.py:92
+#: admin/app_settings.py:131
msgid "Mailboxes owner"
msgstr "Proprietário de caixas de mensagens"
-#: admin/app_settings.py:95
+#: admin/app_settings.py:134
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "A conta UNIX que possui caixas de mensagens no sistema de arquivos"
-#: admin/app_settings.py:100
+#: admin/app_settings.py:139
msgid "Default domain quota"
msgstr "Cota padrão do domínio"
-#: admin/app_settings.py:103
+#: admin/app_settings.py:142
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
-msgstr "Cota padrão (em MB) aplicada para novos domínios sem nenhum valor especificado. Um valor de 0 indica que não existe cota."
+msgstr ""
+"Cota padrão (em MB) aplicada para novos domínios sem nenhum valor "
+"especificado. Um valor de 0 indica que não existe cota."
-#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/app_settings.py:148 admin/forms/domain.py:49 admin/models/domain.py:33
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr "Cota padrão da caixa de correio"
-#: admin/app_settings.py:112
+#: admin/app_settings.py:151
+#, fuzzy
+#| msgid ""
+#| "Default mailbox quota (in MB) applied to freshly created domains with no "
+#| "value specified. A value of 0 means no quota."
msgid ""
-"Default mailbox quota (in MB) applied to freshly created domains with no "
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
"value specified. A value of 0 means no quota."
-msgstr "Cota padrão para caixas de correio (em MB) aplicadas a domínios recém criados sem nenhum valor especificado. Um valor de 0 significa sem cota."
+msgstr ""
+"Cota padrão para caixas de correio (em MB) aplicadas a domínios recém "
+"criados sem nenhum valor especificado. Um valor de 0 significa sem cota."
-#: admin/app_settings.py:118
+#: admin/app_settings.py:157
msgid "Automatic account removal"
msgstr "Remoção automática da conta"
-#: admin/app_settings.py:121
+#: admin/app_settings.py:160
msgid "When a mailbox is removed, also remove the associated account"
-msgstr "Quando uma caixa de correio é removida, também remove a conta associada"
+msgstr ""
+"Quando uma caixa de correio é removida, também remove a conta associada"
-#: admin/app_settings.py:125
+#: admin/app_settings.py:164
msgid "Automatic domain/mailbox creation"
msgstr "Criação automática de domínio/caixa de correio"
-#: admin/app_settings.py:128
-msgid ""
-"Create a domain and a mailbox when an account is automatically created."
-msgstr "Criar um domínio e uma caixa de correio quando uma conta é automaticamente criada."
+#: admin/app_settings.py:167
+msgid "Create a domain and a mailbox when an account is automatically created."
+msgstr ""
+"Criar um domínio e uma caixa de correio quando uma conta é automaticamente "
+"criada."
-#: admin/app_settings.py:134
+#: admin/app_settings.py:173
msgid "Create an alias when a mailbox is renamed"
msgstr "Criar um alias quando uma caixa de correio é renomeada"
-#: admin/app_settings.py:137
+#: admin/app_settings.py:176
msgid "Create an alias using the old address when a mailbox is renamed."
-msgstr "Crie um alias usando o endereço antigo quando uma caixa de correio for renomeada."
+msgstr ""
+"Crie um alias usando o endereço antigo quando uma caixa de correio for "
+"renomeada."
-#: admin/app_settings.py:186 admin/app_settings.py:194
-#: admin/forms/account.py:331
+#: admin/app_settings.py:225 admin/app_settings.py:233
+#: admin/forms/account.py:335
msgid "Must be a positive integer"
msgstr "Deve ser um inteiro positivo"
-#: admin/app_settings.py:204
+#: admin/app_settings.py:243
msgid "Directory not found."
msgstr "Diretório não encontrado."
-#: admin/app_settings.py:210
+#: admin/app_settings.py:249
msgid "openssl not found, please make sure it is installed."
msgstr "openssl não encontrado, por favor, verifique se ele está instalado."
-#: admin/app_settings.py:224
+#: admin/app_settings.py:263
msgid "Define at least one authorized network / address"
msgstr "Defina pelo menos uma rede ou endereço autorizado"
-#: admin/app_settings.py:234
+#: admin/app_settings.py:273
msgid "Administration"
msgstr "Administração"
-#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/constants.py:28 admin/forms/alias.py:43
#: admin/templates/admin/_per_domain_statistics_widget.html:7
#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Domínio"
-#: admin/constants.py:100
+#: admin/constants.py:29
msgid "Relay domain"
msgstr "Domínio de relay"
-#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
+#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:125
msgid "Username"
msgstr "Nome de usuário"
-#: admin/forms/account.py:40
+#: admin/forms/account.py:34
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
-msgstr "O nome de usuário. Deve ser um endereço de e-mail válido para usuários simples ou administradores com uma caixa de mensagens."
+msgstr ""
+"O nome de usuário. Deve ser um endereço de e-mail válido para usuários "
+"simples ou administradores com uma caixa de mensagens."
-#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
+#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Papel"
-#: admin/forms/account.py:46
+#: admin/forms/account.py:40
msgid "Choose"
msgstr "Escolher"
-#: admin/forms/account.py:47
+#: admin/forms/account.py:41
msgid "What level of permission this user will have"
msgstr "Qual nível de permissão terá esse usuário"
-#: admin/forms/account.py:50 admin/forms/domain.py:227
+#: admin/forms/account.py:44 admin/forms/domain.py:245
msgid "Random password"
msgstr "Senha aleatória"
-#: admin/forms/account.py:52
+#: admin/forms/account.py:46
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
-msgstr "Gerar uma senha aleatória. Se você estiver atualizando esta conta e marcar essa opção, uma nova senha será gerada."
+msgstr ""
+"Gerar uma senha aleatória. Se você estiver atualizando esta conta e marcar "
+"essa opção, uma nova senha será gerada."
-#: admin/forms/account.py:58
+#: admin/forms/account.py:52
msgid "Password"
msgstr "Senha"
-#: admin/forms/account.py:63
+#: admin/forms/account.py:57
msgid "Confirmation"
msgstr "Confirmação"
-#: admin/forms/account.py:66
+#: admin/forms/account.py:60
msgid "Enter the same password as above, for verification."
msgstr "Para verificação, digite a mesma senha que a anterior."
-#: admin/forms/account.py:78
+#: admin/forms/account.py:72
msgid "Enabled"
msgstr "Ativado"
-#: admin/forms/account.py:172
+#: admin/forms/account.py:167
msgid "Only super administrators are allowed for this mode"
msgstr "Apenas super administradores estão liberados para este modo"
-#: admin/forms/account.py:183 admin/forms/account.py:185
-#: admin/forms/domain.py:144 admin/forms/domain.py:273
-#: admin/forms/domain.py:276 admin/serializers.py:241
+#: admin/forms/account.py:178 admin/forms/account.py:180
+#: admin/forms/domain.py:162 admin/forms/domain.py:291
+#: admin/forms/domain.py:294 admin/serializers.py:287
msgid "This field is required."
msgstr "Este campo é obrigatório."
-#: admin/forms/account.py:191
+#: admin/forms/account.py:186
msgid "The two password fields didn't match."
msgstr "Os dois campos de senha não coincidiram."
-#: admin/forms/account.py:204
+#: admin/forms/account.py:199
msgid "You can't disable your own account"
msgstr "Você não pode desabilitar seu própria conta"
-#: admin/forms/account.py:225
+#: admin/forms/account.py:222
msgid "E-mail"
msgstr "E-mail"
-#: admin/forms/account.py:227
+#: admin/forms/account.py:224
msgid "Create an alias using the old address"
msgstr "Criar um alias usando o endereço antigo"
-#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/forms/account.py:229 admin/forms/domain.py:41
+#: admin/templates/admin/account_detail.html:45
#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Cota"
-#: admin/forms/account.py:234
+#: admin/forms/account.py:232
+#, fuzzy
+#| msgid ""
+#| "Quota in MB for this mailbox. Define a custom value or use domain's "
+#| "default one. Leave empty to define an unlimited value (not allowed for "
+#| "domain administrators)."
msgid ""
-"Quota in MB for this mailbox. Define a custom value or use domain's default "
-"one. Leave empty to define an unlimited value (not allowed for domain "
-"administrators)."
-msgstr "Cota em MB para esta caixa de mensagens. Defina um valor customizado ou use o padrão do domínio. Deixe em branco para definir um valor ilimitado (não permitido para administradores de domínios)."
+"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a "
+"custom value or use domain's default one. Leave empty to define an unlimited "
+"value (not allowed for domain administrators)."
+msgstr ""
+"Cota em MB para esta caixa de mensagens. Defina um valor customizado ou use "
+"o padrão do domínio. Deixe em branco para definir um valor ilimitado (não "
+"permitido para administradores de domínios)."
-#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/forms/account.py:242 admin/forms/domain.py:31
#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias(es)"
@@ -281,7 +376,10 @@ msgid ""
"Alias(es) of this mailbox. Indicate only one address per input, press ENTER "
"to add a new input. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
-msgstr "Alias(es) desta caixa de e-mail. Indique apenas um endereço por entrada, pressione ENTER para adicionar uma nova entrada. Para criar um catchall alias, apenas insira o nome do domínio (@domain.tld)."
+msgstr ""
+"Alias(es) desta caixa de e-mail. Indique apenas um endereço por entrada, "
+"pressione ENTER para adicionar uma nova entrada. Para criar um catchall "
+"alias, apenas insira o nome do domínio (@domain.tld)."
#: admin/forms/account.py:251
msgid "Sender addresses"
@@ -292,505 +390,550 @@ msgid ""
"Additional sender address(es) for this account. The user will be allowed to "
"send emails using this address, even if it does not exist locally. Indicate "
"one address per input. Press ENTER to add a new input."
-msgstr "Endereço(s) do remetente adicional(is) para esta conta. O usuário poderá enviar e-mails usando este(s) endereço(s), mesmo que ele(s) não exista(m) localmente. Indique um endereço por entrada. Pressione ENTER para adicionar uma nova entrada."
+msgstr ""
+"Endereço(s) do remetente adicional(is) para esta conta. O usuário poderá "
+"enviar e-mails usando este(s) endereço(s), mesmo que ele(s) não exista(m) "
+"localmente. Indique um endereço por entrada. Pressione ENTER para adicionar "
+"uma nova entrada."
-#: admin/forms/account.py:309 admin/forms/alias.py:94
-#: admin/models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:88
+#: admin/models/mailbox.py:310
msgid "Domain does not exist"
msgstr "Domínio não existe"
-#: admin/forms/account.py:341
+#: admin/forms/account.py:345
msgid "Local domain does not exist"
msgstr "Domínio local não existe"
-#: admin/forms/account.py:345 admin/forms/account.py:353
-#: admin/forms/alias.py:97
+#: admin/forms/account.py:349 admin/forms/account.py:357
+#: admin/forms/alias.py:91
msgid "You don't have access to this domain"
msgstr "Você não tem acesso a esse domínio"
-#: admin/forms/account.py:452
+#: admin/forms/account.py:456
msgid "Domain(s)"
msgstr "Domínio(s)"
-#: admin/forms/account.py:454
+#: admin/forms/account.py:458
msgid "Domain(s) that user administrates"
msgstr "Domínio(s) que o usuário administra"
-#: admin/forms/account.py:500 admin/forms/account.py:590
-#: admin/forms/domain.py:344 admin/forms/domain.py:414
+#: admin/forms/account.py:505 admin/forms/account.py:595
+#: admin/forms/domain.py:362 admin/forms/domain.py:433
msgid "General"
msgstr "Geral"
-#: admin/forms/account.py:504
+#: admin/forms/account.py:509
msgid "Profile"
msgstr "Perfil"
-#: admin/forms/account.py:508 admin/forms/account.py:596
+#: admin/forms/account.py:513 admin/forms/account.py:601
msgid "Mail"
msgstr "Correio"
-#: admin/forms/account.py:511
+#: admin/forms/account.py:516
msgid "Permissions"
msgstr "Permissões"
-#: admin/forms/account.py:579
+#: admin/forms/account.py:584
msgid "Account updated"
msgstr "Conta atualizada"
-#: admin/forms/account.py:604
+#: admin/forms/account.py:609
msgid "New account"
msgstr "Nova conta"
-#: admin/forms/account.py:614
+#: admin/forms/account.py:619
msgid "Account created"
msgstr "Conta criada"
-#: admin/forms/alias.py:26
+#: admin/forms/alias.py:20
msgid "Random address"
msgstr "Endereços aleatórios"
-#: admin/forms/alias.py:29
+#: admin/forms/alias.py:23
msgid "Email address"
msgstr "Endereço de e-mail"
-#: admin/forms/alias.py:31
+#: admin/forms/alias.py:25
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
-msgstr "O endereço alias. Para criar um alias de captura, basta digitar o nome de domínio (@domain.tld)."
+msgstr ""
+"O endereço alias. Para criar um alias de captura, basta digitar o nome de "
+"domínio (@domain.tld)."
-#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Destinatários"
-#: admin/forms/alias.py:39
+#: admin/forms/alias.py:33
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
-msgstr "Endereços que este alias vai apontar. Indique apenas um endereço por entrada, pressione ENTER para adicionar uma nova entrada."
+msgstr ""
+"Endereços que este alias vai apontar. Indique apenas um endereço por "
+"entrada, pressione ENTER para adicionar uma nova entrada."
-#: admin/forms/alias.py:114 admin/forms/alias.py:116
+#: admin/forms/alias.py:108 admin/forms/alias.py:110
msgid "This field is required"
msgstr "Este campo é obrigatório"
-#: admin/forms/alias.py:120
+#: admin/forms/alias.py:114
msgid "No recipient defined"
msgstr "Nenhum destinatário definido"
-#: admin/forms/domain.py:36
+#: admin/forms/domain.py:28
#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Tipo"
-#: admin/forms/domain.py:42
+#: admin/forms/domain.py:34
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
-msgstr "Alias(es) para esse domínio. Indique apenas um nome por entrada, pressione ENTER para adicionar uma nova entrada."
+msgstr ""
+"Alias(es) para esse domínio. Indique apenas um nome por entrada, pressione "
+"ENTER para adicionar uma nova entrada."
-#: admin/forms/domain.py:47
+#: admin/forms/domain.py:39
msgid "Key selector"
msgstr ""
-#: admin/forms/domain.py:85 admin/handlers.py:171
+#: admin/forms/domain.py:44 admin/serializers.py:30
+#, fuzzy
+#| msgid ""
+#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgid ""
+"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
+"A value of 0 means no quota."
+msgstr ""
+"Cota padrão em MB aplicada a caixas de correio. Um valor de 0 significa sem "
+"cota."
+
+#: admin/forms/domain.py:52
+#, fuzzy
+#| msgid ""
+#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgid ""
+"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
+"GB. A value of 0 means no quota."
+msgstr ""
+"Cota padrão em MB aplicada a caixas de correio. Um valor de 0 significa sem "
+"cota."
+
+#: admin/forms/domain.py:94 admin/handlers.py:161
msgid "domain alias"
msgstr "alias de domínio"
-#: admin/forms/domain.py:88 admin/forms/domain.py:155
-#: admin/forms/domain.py:163
+#: admin/forms/domain.py:97 admin/forms/domain.py:173 admin/forms/domain.py:181
#, python-format
msgid "A %s with this name already exists"
msgstr "Já existe um %s com este nome"
-#: admin/forms/domain.py:96 admin/serializers.py:45
+#: admin/forms/domain.py:105 admin/serializers.py:64
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/forms/domain.py:108
+#: admin/forms/domain.py:117
msgid "DKIM keys storage directory not configured"
msgstr ""
-#: admin/forms/domain.py:129 admin/serializers.py:55
+#: admin/forms/domain.py:147 admin/serializers.py:82
msgid "Cannot be greater than domain quota"
msgstr "Não pode ser maior do que a cota de domínio"
-#: admin/forms/domain.py:134
+#: admin/forms/domain.py:152
msgid "You can't define an unlimited quota."
msgstr "Você não pode definir cota ilimitada."
-#: admin/forms/domain.py:155 admin/forms/domain.py:160
+#: admin/forms/domain.py:173 admin/forms/domain.py:178
msgid "domain"
msgstr "domínio"
-#: admin/forms/domain.py:209
+#: admin/forms/domain.py:227
msgid "Create a domain administrator"
msgstr "Criar um administrador de domínio"
-#: admin/forms/domain.py:212
+#: admin/forms/domain.py:230
msgid "Automatically create an administrator for this domain"
msgstr "Criar automaticamente um administrador para este domínio"
-#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/forms/domain.py:235 admin/templates/admin/domain_detail.html:125
#: admin/templates/admin/domain_headers.html:3
#: admin/templates/admin/identity_headers.html:2
#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Nome"
-#: admin/forms/domain.py:220
+#: admin/forms/domain.py:238
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
-msgstr "O nome de administrador. Não inclua aqui o nome de domínio. Ele será automaticamente adicionado."
+msgstr ""
+"O nome de administrador. Não inclua aqui o nome de domínio. Ele será "
+"automaticamente adicionado."
-#: admin/forms/domain.py:230
+#: admin/forms/domain.py:248
msgid "Generate a random password for the administrator."
msgstr ""
-#: admin/forms/domain.py:236
+#: admin/forms/domain.py:254
msgid "With a mailbox"
msgstr ""
-#: admin/forms/domain.py:239
+#: admin/forms/domain.py:257
msgid "Create a mailbox for the administrator."
msgstr ""
-#: admin/forms/domain.py:245
+#: admin/forms/domain.py:263
msgid "Create aliases"
msgstr "Criar alias"
-#: admin/forms/domain.py:248
+#: admin/forms/domain.py:266
msgid "Automatically create standard aliases for this domain"
msgstr "Criar automaticamente aliases padrão para este domínio"
-#: admin/forms/domain.py:264
+#: admin/forms/domain.py:282
msgid "Invalid format"
msgstr "Formato inválido"
-#: admin/forms/domain.py:293
+#: admin/forms/domain.py:311
#, python-format
msgid "User '%s' already exists"
msgstr "O usuário '%s' já existe"
-#: admin/forms/domain.py:404
+#: admin/forms/domain.py:423
msgid "Domain modified"
msgstr "Domínio alterado"
-#: admin/forms/domain.py:425
+#: admin/forms/domain.py:444
msgid "Options"
msgstr "Opções"
-#: admin/forms/domain.py:433
+#: admin/forms/domain.py:452
msgid "New domain"
msgstr "Novo domínio"
-#: admin/forms/domain.py:446
+#: admin/forms/domain.py:465
msgid "Domain created"
msgstr "Domínio criado"
-#: admin/forms/export.py:9
-msgid "File name"
-msgstr "Nome do arquivo"
-
-#: admin/forms/export.py:15 admin/forms/import_.py:15
+#: admin/forms/export.py:9 admin/forms/import_.py:13
msgid "Separator"
msgstr "Separador"
-#: admin/forms/forward.py:14
+#: admin/forms/forward.py:12
msgid "Recipient(s)"
msgstr "Destinatário(s)"
-#: admin/forms/forward.py:18
+#: admin/forms/forward.py:16
msgid "Indicate one or more recipients separated by a ','"
msgstr "Indique um ou mais destinatários separados por uma ','"
-#: admin/forms/forward.py:21
+#: admin/forms/forward.py:19
msgid "Keep local copies"
msgstr "Manter cópias locais"
-#: admin/forms/forward.py:24
+#: admin/forms/forward.py:22
msgid "Forward messages and store copies into your local mailbox"
msgstr "Encaminhar mensagens e armazenar cópias em sua caixa de correio local"
-#: admin/forms/import_.py:13
+#: admin/forms/import_.py:11
msgid "Select a file"
msgstr "Selecione um arquivo"
-#: admin/forms/import_.py:21
+#: admin/forms/import_.py:19
msgid "Continue on error"
msgstr "Continuar em caso de erro"
-#: admin/forms/import_.py:22
+#: admin/forms/import_.py:20
msgid "Don't treat duplicated objects as error"
msgstr "Não tratar como erro objetos duplicados"
-#: admin/forms/import_.py:40
+#: admin/forms/import_.py:38
msgid "Crypt passwords"
msgstr "Criptografar senhas"
-#: admin/forms/import_.py:42
+#: admin/forms/import_.py:40
msgid "Check this option if passwords contained in your file are not crypted"
-msgstr "Marcar essa opção se as senhas contidas no seu arquivo estão criptografadas"
+msgstr ""
+"Marcar essa opção se as senhas contidas no seu arquivo estão criptografadas"
-#: admin/handlers.py:218
+#: admin/handlers.py:210
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Falha ao importar a conta (%s): domínio não existe"
-#: admin/handlers.py:231 admin/models/mailbox.py:342
+#: admin/handlers.py:223 admin/models/mailbox.py:338
msgid "Mailbox {} already exists"
msgstr "Caixa de e-mail {} já existente"
-#: admin/handlers.py:239
+#: admin/handlers.py:231
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Falha na importação de conta (%s): valor de cota errado"
-#: admin/handlers.py:279
+#: admin/handlers.py:271
#: admin/templates/admin/_global_statistics_widget.html:17
#: admin/templates/admin/_per_domain_statistics_widget.html:8
#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Identidades"
-#: admin/handlers.py:295 admin/templates/admin/forward.html:2
+#: admin/handlers.py:287 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Encaminhar"
-#: admin/lib.py:44
+#: admin/lib.py:38
msgid "A mailbox is required"
msgstr "Um caixa de mensagens é obrigatória"
-#: admin/lib.py:134
+#: admin/lib.py:128
msgid "You are not allowed to import domains"
msgstr "Você não tem permissão para importar domínios"
-#: admin/lib.py:145
+#: admin/lib.py:139
msgid "You are not allowed to import domain aliases."
msgstr "Você não tem permissão para importar aliases de domínio."
-#: admin/lib.py:183 admin/tests/test_mx.py:122
-#, python-format
-msgid "No DNS records found for %s"
-msgstr ""
+#: admin/lib.py:189 admin/tests/test_mx.py:127 admin/tests/test_mx.py:136
+#: admin/tests/test_mx.py:139
+#, fuzzy, python-format
+#| msgid "No MX record found for this domain."
+msgid "No DNS record found for %s"
+msgstr "Nenhum registro MX foi encontrado para este domínio."
-#: admin/lib.py:185 admin/tests/test_mx.py:125
-#, python-format
-msgid "No MX record for %s"
-msgstr ""
+#: admin/lib.py:192
+#, fuzzy, python-format
+#| msgid "No MX record found for this domain."
+msgid "No %(type)s record for %(name)s"
+msgstr "Nenhum registro MX foi encontrado para este domínio."
-#: admin/lib.py:187 admin/tests/test_mx.py:126
+#: admin/lib.py:196 admin/tests/test_mx.py:131
msgid "No working name servers found"
msgstr ""
-#: admin/lib.py:190 admin/tests/test_mx.py:128
+#: admin/lib.py:199 admin/tests/test_mx.py:133
#, python-format
msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
-#: admin/lib.py:201 admin/tests/test_mx.py:131
-#, python-format
-msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+#: admin/lib.py:227
+#, fuzzy, python-brace-format
+#| msgid "Invalid quota value for domain '{}'"
+msgid "Invalid IP address format for {domain}; {addr}"
+msgstr "Valor de cota inválida para o domínio '{}'"
+
+#: admin/management/commands/subcommands/_import.py:93
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/lib.py:212 admin/tests/test_mx.py:134
+#: admin/management/commands/subcommands/_import.py:105
#, python-format
-msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:136
+#: admin/management/commands/subcommands/_import.py:116
+#, python-format
+msgid "Unable to decode CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:132
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr "[modoboa] Problema(s) de DNSBL para o domínio {}"
-#: admin/management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:152
msgid "Domain {} has no MX record"
msgstr "O domínio {} não possui registro MX"
-#: admin/management/commands/subcommands/_mx.py:167
+#: admin/management/commands/subcommands/_mx.py:163
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr "O registro MX para o domínio {0} é inválido: {1}"
-#: admin/management/commands/subcommands/_mx.py:184
+#: admin/management/commands/subcommands/_mx.py:180
msgid "[modoboa] MX issue(s) for domain {}"
msgstr "[modoboa] Problema(s) de MX para o domínio {}"
-#: admin/models/alias.py:35 admin/models/mailbox.py:97
+#: admin/models/alias.py:32 admin/models/mailbox.py:95
msgid "address"
msgstr "endereço"
-#: admin/models/alias.py:37
+#: admin/models/alias.py:34
msgid "The alias address."
msgstr "O endereço alias."
-#: admin/models/alias.py:42 admin/models/domain.py:48
-#: admin/models/domain_alias.py:47
+#: admin/models/alias.py:39 admin/models/domain.py:37
+#: admin/models/domain_alias.py:42
msgid "enabled"
msgstr "ativado"
-#: admin/models/alias.py:43 admin/models/domain_alias.py:48
+#: admin/models/alias.py:40 admin/models/domain_alias.py:43
msgid "Check to activate this alias"
msgstr "Verificar para ativar o alias"
-#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
+#: admin/models/alias.py:45 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr "Descrição"
-#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
+#: admin/models/alias.py:47 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr "Expira em"
-#: admin/models/alias.py:93
+#: admin/models/alias.py:87
msgid "alias"
msgstr "alias"
-#: admin/models/alias.py:125
+#: admin/models/alias.py:119
msgid "Invalid address"
msgstr "Endereço inválido"
-#: admin/models/alias.py:146
+#: admin/models/alias.py:140
msgid "Local recipient {}@{} not found"
msgstr "Destinatário local {}@{} não encontrado"
-#: admin/models/alias.py:176
+#: admin/models/alias.py:170
#, python-format
msgid "Invalid line: %s"
msgstr "Linha inválida: %s"
-#: admin/models/alias.py:182
+#: admin/models/alias.py:176
#, python-format
msgid "Domain '%s' does not exist"
msgstr "O domínio '%s' não existe"
-#: admin/models/domain.py:30 admin/models/domain_alias.py:39
+#: admin/models/domain.py:27 admin/models/domain_alias.py:34
msgid "name"
msgstr "nome"
-#: admin/models/domain.py:31
+#: admin/models/domain.py:28
msgid "The domain name"
msgstr "Nome do domínio"
-#: admin/models/domain.py:35
-msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
-msgstr "Cota em MB compartilhada entre caixas de correio. Um valor de 0 significa sem cota."
-
-#: admin/models/domain.py:43
-msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
-msgstr "Cota padrão em MB aplicada a caixas de correio. Um valor de 0 significa sem cota."
-
-#: admin/models/domain.py:49
+#: admin/models/domain.py:38
msgid "Check to activate this domain"
msgstr "Marque para ativar esse domínio"
-#: admin/models/domain.py:54
+#: admin/models/domain.py:43
msgid "Enable DNS checks"
msgstr "Habilitar verificação DNS"
-#: admin/models/domain.py:55
+#: admin/models/domain.py:44
msgid "Check to enable DNS checks for this domain"
msgstr "Marque para habilitar verificações DNS para este domínio"
-#: admin/models/domain.py:62
+#: admin/models/domain.py:51
msgid "Enable DKIM signing"
msgstr ""
-#: admin/models/domain.py:64
+#: admin/models/domain.py:53
msgid ""
"If you activate this feature, a DKIM key will be generated for this domain."
msgstr ""
-#: admin/models/domain.py:70
+#: admin/models/domain.py:59
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:285 admin/models/domain_alias.py:74
+#: admin/models/domain.py:312 admin/models/domain_alias.py:67
msgid "Invalid line"
msgstr "Linha inválida"
-#: admin/models/domain.py:295
+#: admin/models/domain.py:322
msgid "No authorized MX record found for domain {}"
msgstr ""
-#: admin/models/domain.py:302
+#: admin/models/domain.py:329
msgid "Invalid quota value for domain '{}'"
msgstr "Valor de cota inválida para o domínio '{}'"
-#: admin/models/domain.py:309
+#: admin/models/domain.py:336
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr "Valor padrão de cota inválido para caixas de correio do domínio '{}'"
-#: admin/models/domain.py:314
+#: admin/models/domain.py:341
msgid "Default mailbox quota cannot be greater than domain quota"
-msgstr "Valor padrão de cota para caixas de correio não pode ser maior que a cota do domínio"
+msgstr ""
+"Valor padrão de cota para caixas de correio não pode ser maior que a cota do "
+"domínio"
-#: admin/models/domain_alias.py:40
+#: admin/models/domain_alias.py:35
msgid "The alias name"
msgstr "Nome de alias"
-#: admin/models/domain_alias.py:42
+#: admin/models/domain_alias.py:37
msgid "target"
msgstr "alvo"
-#: admin/models/domain_alias.py:43
+#: admin/models/domain_alias.py:38
msgid "The domain this alias points to"
msgstr "Esse alias aponta para o domínio"
-#: admin/models/domain_alias.py:83
+#: admin/models/domain_alias.py:76
#, python-format
msgid "Unknown domain %s"
msgstr "Domínio desconhecido %s"
-#: admin/models/mailbox.py:99
+#: admin/models/mailbox.py:97
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Endereço da caixa de correio (sem a parte @meu.dominio)"
-#: admin/models/mailbox.py:165
+#: admin/models/mailbox.py:160
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Falha ao recuperar a localização da caixa de mensagens (%s)"
-#: admin/models/mailbox.py:258
+#: admin/models/mailbox.py:253
msgid "A quota is required"
msgstr "Uma cota é requerida"
-#: admin/models/mailbox.py:264
+#: admin/models/mailbox.py:259
msgid "Domain quota exceeded"
msgstr "Cota do domínio excedida"
-#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
+#: admin/serializers.py:37
+msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgstr ""
+"Cota padrão em MB aplicada a caixas de correio. Um valor de 0 significa sem "
+"cota."
+
+#: admin/serializers.py:107 admin/serializers.py:312 admin/serializers.py:410
msgid "Permission denied."
msgstr "Permissão negada."
-#: admin/serializers.py:118
+#: admin/serializers.py:158
msgid ""
"List of administered domains (resellers and domain administrators only)."
-msgstr "Lista dos domínios administrados (somente revendedores e administradores de domínio)."
+msgstr ""
+"Lista dos domínios administrados (somente revendedores e administradores de "
+"domínio)."
-#: admin/serializers.py:218
+#: admin/serializers.py:262
msgid "Not allowed for this role."
msgstr "Não permitido para este perfil."
-#: admin/serializers.py:228
+#: admin/serializers.py:274
msgid "Must be equal to mailbox full_address"
msgstr "Deve ser igual ao endereço completo da conta"
-#: admin/serializers.py:253
+#: admin/serializers.py:299
msgid "Local domain {} does not exist"
msgstr "Domínio local {} não existe"
-#: admin/serializers.py:347
+#: admin/serializers.py:397
msgid "A list of recipient"
msgstr ""
-#: admin/serializers.py:358
+#: admin/serializers.py:408
msgid "Domain not found."
msgstr "Domínio não encontrado."
-#: admin/serializers.py:407
+#: admin/serializers.py:457
msgid "You don't have access to this domain."
msgstr ""
-#: admin/serializers.py:415
+#: admin/serializers.py:465
msgid "You don't have access to this mailbox."
msgstr ""
@@ -821,6 +964,19 @@ msgstr "Desabilitado"
msgid "Awaiting checks"
msgstr "Aguardando checagens"
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+#, fuzzy
+#| msgid "Directory not found."
+msgid "No record found"
+msgstr "Diretório não encontrado."
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
+msgstr ""
+
#: admin/templates/admin/_global_statistics_widget.html:4
msgid "Global statistics"
msgstr "Estatísticas globais"
@@ -927,7 +1083,8 @@ msgid "Address"
msgstr "Endereço"
#: admin/templates/admin/dnsbl_domain_detail.html:12
-#: admin/templates/admin/domain_detail.html:96
+#: admin/templates/admin/domain_detail.html:100
+#: admin/templates/admin/messages_log_headers.html:6
msgid "Status"
msgstr "Status"
@@ -959,11 +1116,8 @@ msgstr "Alias de caixas de correio"
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domain_detail.html:65
-#: admin/templates/admin/domain_general_form.html:4
-#: admin/templates/admin/domain_general_form.html:5
#: admin/templates/admin/domains_quotas.html:11
#: admin/templates/admin/domains_quotas.html:12
-#: admin/templates/admin/mailform.html:7
#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
@@ -983,32 +1137,36 @@ msgstr "usado"
msgid "allocated"
msgstr "alocado"
-#: admin/templates/admin/domain_detail.html:91
+#: admin/templates/admin/domain_detail.html:92
msgid "DNS"
msgstr "DNS"
-#: admin/templates/admin/domain_detail.html:103
+#: admin/templates/admin/domain_detail.html:107
msgid "DKIM key"
msgstr "Chave DKIM"
-#: admin/templates/admin/domain_detail.html:107
+#: admin/templates/admin/domain_detail.html:111
msgid "Show key"
msgstr "Mostrar chave"
-#: admin/templates/admin/domain_detail.html:110
+#: admin/templates/admin/domain_detail.html:113
+msgid "Generate new key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:115
msgid "Not generated"
msgstr "Não gerado"
-#: admin/templates/admin/domain_detail.html:117
+#: admin/templates/admin/domain_detail.html:122
msgid "Administrators"
msgstr "Administradores"
-#: admin/templates/admin/domain_detail.html:129
-#: admin/templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:134
+#: admin/templatetags/admin_tags.py:265
msgid "Remove this permission"
msgstr "Remover essa persmissão"
-#: admin/templates/admin/domain_detail.html:134
+#: admin/templates/admin/domain_detail.html:139
msgid "No domain administrator defined yet."
msgstr "Nenhum domínio de administrador definido ainda."
@@ -1062,7 +1220,7 @@ msgstr "desabilitado"
msgid "Automatically forward emails to another address"
msgstr "Encaminhar e-mails automaticamente para outro endereço"
-#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:87
msgid "Update"
msgstr "Atualizar"
@@ -1087,17 +1245,30 @@ msgid ""
"verify recipients
The first element of each line is "
"mandatory and must be equal to one of the previous values.
You can "
"use a different character as separator.
"
-msgstr "Forneça um arquivo CSV onde as linhas respeitem um dos seguintes formatos: - domain; name; quota; default mailbox quota; enabled
- domainalias; name; targeted domain; enabled
- relaydomain; name; target host; target port; service; enabled; verify recipients
O primeiro elemento de cada linha é obrigatório e deve ser igual a um dos valores anteriores.
Você pode usar um carácter diferente como separador.
"
+msgstr ""
+"Forneça um arquivo CSV onde as linhas respeitem um dos seguintes formatos: "
+" - domain; name; quota; default mailbox quota; enabled
"
+"- domainalias; name; targeted domain; enabled
"
+"- relaydomain; name; target host; target port; service; enabled; "
+"verify recipients
O primeiro elemento de cada linha é "
+"obrigatório e deve ser igual a um dos valores anteriores.
Você pode "
+"usar um carácter diferente como separador.
"
#: admin/templates/admin/import_identities_form.html:6
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
-"- account; loginname; password; first name; last name; enabled; group;"
-" address; quota; [, domain, ...]
- alias; address; enabled; "
+"
- account; loginname; password; first name; last name; enabled; group; "
+"address; quota; [, domain, ...]
- alias; address; enabled; "
"recipient; recipient; ...
The first element of each line "
-"is mandatory and must be equal to one of the previous values.
You can"
-" use a different character as separator.
"
-msgstr "Proveja um arquivo CSV onde as linhas respeitem um dos seguintes formatos: - account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
- alias; address; enabled; recipient; recipient; ...
O primeiro elemento de cada linha é obrigatório e deve ser igual a um dos valores anteriores.
Você pode usar um carácter diferente como separador.
"
+"is mandatory and must be equal to one of the previous values. You can "
+"use a different character as separator.
"
+msgstr ""
+"Proveja um arquivo CSV onde as linhas respeitem um dos seguintes formatos: "
+" - account; loginname; password; first name; last name; enabled; "
+"group; address; quota; [, domain, ...]
- alias; address; "
+"enabled; recipient; recipient; ...
O primeiro elemento de "
+"cada linha é obrigatório e deve ser igual a um dos valores anteriores.
"
+"Você pode usar um carácter diferente como separador.
"
#: admin/templates/admin/importform.html:6
msgid "Help"
@@ -1119,13 +1290,30 @@ msgstr "Escolher um valor"
msgid "Use domain default value"
msgstr "Usar valor padrão do domínio"
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:3
+msgid "Date"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:4
+msgid "From"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:5
+msgid "To"
+msgstr ""
+
#: admin/templates/admin/mx_domain_detail.html:11
msgid "Updated"
msgstr "Atualizado"
#: admin/templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
-msgstr "Este IP não corresponde a nenhum dos MXs válidos definidos nos parâmetros"
+msgstr ""
+"Este IP não corresponde a nenhum dos MXs válidos definidos nos parâmetros"
#: admin/templates/admin/mx_domain_detail.html:36
msgid "No MX record found for this domain."
@@ -1136,150 +1324,189 @@ msgstr "Nenhum registro MX foi encontrado para este domínio."
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
"providers:"
-msgstr "O Modoboa detectou que o domínio %(domain)s está listado pelos seguintes provedores DNSBL:"
+msgstr ""
+"O Modoboa detectou que o domínio %(domain)s está listado pelos seguintes "
+"provedores DNSBL:"
#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
"The domain's reputation will be affected and there is a chance that emails "
"coming from it are considered as spam. You should contact those providers "
"and ask them to unlist detected IP address(es)."
-msgstr "A reputação do domínio será afetada e há uma chance que os e-mails vindos dele sejam considerados spam. Você deve contatar aqueles provedores e pedir a eles a retirada do(s) endereço(s) IP(s) detectado(s) da lista."
+msgstr ""
+"A reputação do domínio será afetada e há uma chance que os e-mails vindos "
+"dele sejam considerados spam. Você deve contatar aqueles provedores e pedir "
+"a eles a retirada do(s) endereço(s) IP(s) detectado(s) da lista."
#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
-msgstr "O Modoboa detectou que o domínio %(domain)s não possui registro MX válido."
+msgstr ""
+"O Modoboa detectou que o domínio %(domain)s não possui registro MX válido."
#: admin/templates/admin/searchform.html:6
msgid "Search"
msgstr "Busca"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_m"
msgstr "Ativado"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_f"
msgstr "Ativada"
-#: admin/templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:45
msgid "List domains"
msgstr "Listardomínios"
-#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:50 admin/templatetags/admin_tags.py:105
msgid "List quotas"
msgstr "Listar quotas"
-#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
-#: admin/views/import_.py:89 admin/views/import_.py:111
+#: admin/templatetags/admin_tags.py:62 admin/templatetags/admin_tags.py:110
+#: admin/views/import_.py:85 admin/views/import_.py:107
msgid "Import"
msgstr "Importar"
-#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
-#: admin/views/export.py:43 admin/views/export.py:71
+#: admin/templatetags/admin_tags.py:68 admin/templatetags/admin_tags.py:116
+#: admin/views/export.py:39 admin/views/export.py:67
msgid "Export"
msgstr "Exportar"
-#: admin/templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:100
msgid "List identities"
msgstr "Listar identidades"
-#: admin/templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:135
msgid "View the domain's identities"
msgstr "Ver as identidades de domínios"
-#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
-#: admin/templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:141 admin/templatetags/admin_tags.py:184
+#: admin/templatetags/admin_tags.py:197
msgid "Edit {}"
msgstr "Editar {}"
-#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
-#: admin/templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:151 admin/templatetags/admin_tags.py:188
+#: admin/templatetags/admin_tags.py:202
#, python-format
msgid "Delete %s?"
msgstr "Remover %s?"
-#: admin/views/alias.py:35
+#: admin/tests/test_mx.py:130
+#, python-format
+msgid "No MX record for %s"
+msgstr ""
+
+#: admin/tests/test_mx.py:142 admin/tests/test_mx.py:145
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/views/alias.py:29
msgid "Alias with this name already exists"
msgstr "Um alias para esse nome já existe"
-#: admin/views/alias.py:60
+#: admin/views/alias.py:54
msgid "Create"
msgstr "Criar"
-#: admin/views/alias.py:72
+#: admin/views/alias.py:66
msgid "New alias"
msgstr "Novo alias"
-#: admin/views/alias.py:73
+#: admin/views/alias.py:67
msgid "Alias created"
msgstr "Alias criado"
-#: admin/views/alias.py:85
+#: admin/views/alias.py:79
msgid "Alias modified"
msgstr "Alias modificado"
-#: admin/views/alias.py:109
+#: admin/views/alias.py:103
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] "Aliases apagados"
msgstr[1] "Aliases apagados"
-#: admin/views/dns.py:32
+#: admin/views/dns.py:28
msgid "MX records of {}"
msgstr "Registro MX para {}"
-#: admin/views/dns.py:55
+#: admin/views/dns.py:51
msgid "DNSBL summary for {}"
msgstr "Sumário DNSBL para {}"
-#: admin/views/domain.py:188
+#: admin/views/domain.py:202
msgid "You can't delete your own domain"
msgstr "Você não pode deletar seu próprio domínio"
-#: admin/views/domain.py:191
+#: admin/views/domain.py:205
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Domínio deletado"
msgstr[1] "Domínios deletados"
-#: admin/views/export.py:42
+#: admin/views/export.py:38
msgid "Export identities"
msgstr "Exportar identidades"
-#: admin/views/export.py:70
+#: admin/views/export.py:66
msgid "Export domains"
msgstr "Exportar domínios"
-#: admin/views/identity.py:113 admin/views/identity.py:206
-#: admin/views/identity.py:211
+#: admin/views/identity.py:107 admin/views/identity.py:201
+#: admin/views/identity.py:206
msgid "Invalid request"
msgstr "Solicitação inválida"
-#: admin/views/identity.py:196
+#: admin/views/identity.py:191
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Conta deletada"
msgstr[1] "Contas deletadas"
-#: admin/views/import_.py:65
+#: admin/views/import_.py:61
#, python-format
msgid "Object already exists: %s"
msgstr "O objeto já existe: %s"
-#: admin/views/import_.py:69
+#: admin/views/import_.py:65
#, python-format
msgid "%d objects imported successfully"
msgstr "%d objetos importados com sucesso"
-#: admin/views/import_.py:88
+#: admin/views/import_.py:84
msgid "Import domains"
msgstr "Importar domínios"
-#: admin/views/import_.py:110
+#: admin/views/import_.py:106
msgid "Import identities"
msgstr "Importar identidades"
-#: admin/views/user.py:40
+#: admin/views/user.py:36
msgid "Forward updated"
msgstr "Encaminhamento atualizado"
+
+#~ msgid "File name"
+#~ msgstr "Nome do arquivo"
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No {type} record found for MX {mx}"
+#~ msgstr "Nenhum registro MX foi encontrado para este domínio."
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No AAAA record found for MX %(domain)s"
+#~ msgstr "Nenhum registro MX foi encontrado para este domínio."
+
+#~ msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
+#~ msgstr ""
+#~ "Cota em MB compartilhada entre caixas de correio. Um valor de 0 significa "
+#~ "sem cota."
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No DNS records found without MX for %(domain)s"
+#~ msgstr "Nenhum registro MX foi encontrado para este domínio."
diff --git a/modoboa/admin/locale/pt_BR/LC_MESSAGES/djangojs.po b/modoboa/admin/locale/pt_BR/LC_MESSAGES/djangojs.po
index 9b2000c33..f6b183da3 100644
--- a/modoboa/admin/locale/pt_BR/LC_MESSAGES/djangojs.po
+++ b/modoboa/admin/locale/pt_BR/LC_MESSAGES/djangojs.po
@@ -1,53 +1,56 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Paulino Michelazzo , 2014
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-04 22:08+0100\n"
+"POT-Creation-Date: 2020-03-09 16:48+0100\n"
"PO-Revision-Date: 2017-09-23 21:20+0000\n"
"Last-Translator: Rafael Barretto \n"
-"Language-Team: Portuguese (Brazil) (http://www.transifex.com/tonio/modoboa/language/pt_BR/)\n"
+"Language-Team: Portuguese (Brazil) (http://www.transifex.com/tonio/modoboa/"
+"language/pt_BR/)\n"
+"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: admin/static/admin/js/admin.js:131
+#: admin/static/admin/js/admin.js:129 admin/static/admin/js/admin.js:174
msgid "No more domain to show"
msgstr "Nenhum domínio a mais para mostrar"
-#: admin/static/admin/js/admin.js:150
+#: admin/static/admin/js/admin.js:149
msgid "Do not delete domain directory"
msgstr "Não remova o diretório de domínio"
-#: admin/static/admin/js/admin.js:152
+#: admin/static/admin/js/admin.js:151
msgid "This operation will remove ALL data associated to this domain."
msgstr "Esta operação removerá TODOS os dados associados com este domínio."
-#: admin/static/admin/js/admin.js:153
+#: admin/static/admin/js/admin.js:152
msgid ""
"This operation will remove all data associated to this domain, excepting "
"accounts."
-msgstr "Esta operação removerá todos os dados associados com este domínio, exceto contas."
+msgstr ""
+"Esta operação removerá todos os dados associados com este domínio, exceto "
+"contas."
-#: admin/static/admin/js/admin.js:236
+#: admin/static/admin/js/admin.js:177 admin/static/admin/js/admin.js:433
+msgid "No more quota to show"
+msgstr "Nenhuma quota a mais para mostrar"
+
+#: admin/static/admin/js/admin.js:306
msgid "No domain administrator defined"
msgstr "Nenhum administrador de domínio definido"
-#: admin/static/admin/js/admin.js:291 admin/static/admin/js/admin.js:359
+#: admin/static/admin/js/admin.js:362 admin/static/admin/js/admin.js:430
msgid "No more identity to show"
msgstr "Nenhuma identidade a mais para mostrar"
-#: admin/static/admin/js/admin.js:333
+#: admin/static/admin/js/admin.js:404
msgid "Do not delete mailbox directory"
msgstr "Não remova o diretório de caixas de mensagens"
-
-#: admin/static/admin/js/admin.js:362
-msgid "No more quota to show"
-msgstr "Nenhuma quota a mais para mostrar"
diff --git a/modoboa/admin/locale/pt_PT/LC_MESSAGES/django.po b/modoboa/admin/locale/pt_PT/LC_MESSAGES/django.po
index c1ffe3223..4a22831e8 100644
--- a/modoboa/admin/locale/pt_PT/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/pt_PT/LC_MESSAGES/django.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
"PO-Revision-Date: 2014-12-29 12:51+0000\n"
"Last-Translator: Mike C. \n"
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/"
@@ -24,76 +24,120 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/api.py:142
+msgid "Here is your new Modoboa password: {}"
+msgstr ""
+
+#: admin/app_settings.py:20 admin/handlers.py:261
#: admin/templates/admin/_global_statistics_widget.html:11
#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domínios"
-#: admin/app_settings.py:25
+#: admin/app_settings.py:23
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28
+#: admin/app_settings.py:26
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:33
+#: admin/app_settings.py:31
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:36
+#: admin/app_settings.py:34
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
msgstr ""
-#: admin/app_settings.py:44
+#: admin/app_settings.py:42
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:47
+#: admin/app_settings.py:45
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
msgstr ""
-#: admin/app_settings.py:53
+#: admin/app_settings.py:51
+msgid "Enable SPF checks"
+msgstr ""
+
+#: admin/app_settings.py:54
+msgid "Check if every domain has a valid SPF record"
+msgstr ""
+
+#: admin/app_settings.py:59
+msgid "Enable DKIM checks"
+msgstr ""
+
+#: admin/app_settings.py:62
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr ""
+
+#: admin/app_settings.py:68
+msgid "Enable DMARC checks"
+msgstr ""
+
+#: admin/app_settings.py:71
+msgid "Check if every domain has a valid DMARC record"
+msgstr ""
+
+#: admin/app_settings.py:76
+msgid "Enable autoconfig checks"
+msgstr ""
+
+#: admin/app_settings.py:79
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr ""
+
+#: admin/app_settings.py:84
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:56
+#: admin/app_settings.py:87
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:61
+#: admin/app_settings.py:92
+msgid "Custom DNS server"
+msgstr ""
+
+#: admin/app_settings.py:95
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr ""
+
+#: admin/app_settings.py:100
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:64
+#: admin/app_settings.py:103
msgid ""
"Absolute path of the directory where DKIM private keys will be stored. Make "
"sure this directory belongs to root user and is not readable by the outside "
"world."
msgstr ""
-#: admin/app_settings.py:72
+#: admin/app_settings.py:111
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:76
+#: admin/app_settings.py:115
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
+#: admin/app_settings.py:119 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Caixas de Correio"
-#: admin/app_settings.py:83
+#: admin/app_settings.py:122
msgid "Handle mailboxes on filesystem"
msgstr "Lidar com caixas de correio no sistema de ficheiros"
-#: admin/app_settings.py:86
+#: admin/app_settings.py:125
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
@@ -101,19 +145,19 @@ msgstr ""
"Renomear ou remover as caixas de correio no sistema de ficheiros quando "
"estas são renomeadas no Modoboa"
-#: admin/app_settings.py:92
+#: admin/app_settings.py:131
msgid "Mailboxes owner"
msgstr "Dono das caixas de correio"
-#: admin/app_settings.py:95
+#: admin/app_settings.py:134
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "A conta UNIX que detém as caixas de correio no sistema de ficheiros"
-#: admin/app_settings.py:100
+#: admin/app_settings.py:139
msgid "Default domain quota"
msgstr "Quota pré-definida para o domínio"
-#: admin/app_settings.py:103
+#: admin/app_settings.py:142
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
@@ -121,181 +165,187 @@ msgstr ""
"Quota (em MB) a aplicar a domínios recentemente criados sem valor "
"especificado. Um valor de 0 implica sem quota."
-#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/app_settings.py:148 admin/forms/domain.py:49 admin/models/domain.py:33
#: admin/templates/admin/domain_detail.html:64
#, fuzzy
#| msgid "Default domain quota"
msgid "Default mailbox quota"
msgstr "Quota pré-definida para o domínio"
-#: admin/app_settings.py:112
+#: admin/app_settings.py:151
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
#| "specified. A value of 0 means no quota."
msgid ""
-"Default mailbox quota (in MB) applied to freshly created domains with no "
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
"value specified. A value of 0 means no quota."
msgstr ""
"Quota (em MB) a aplicar a domínios recentemente criados sem valor "
"especificado. Um valor de 0 implica sem quota."
-#: admin/app_settings.py:118
+#: admin/app_settings.py:157
msgid "Automatic account removal"
msgstr "Remoção automática de conta"
-#: admin/app_settings.py:121
+#: admin/app_settings.py:160
msgid "When a mailbox is removed, also remove the associated account"
msgstr ""
"Ao remover uma caixa de correio estará também a remover a conta associada"
-#: admin/app_settings.py:125
+#: admin/app_settings.py:164
msgid "Automatic domain/mailbox creation"
msgstr "Criação automatica de domino/caixa de correio"
-#: admin/app_settings.py:128
+#: admin/app_settings.py:167
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
"Criar um dominio e uma caixa de correio quando uma conta é criada "
"automátiamente."
-#: admin/app_settings.py:134
+#: admin/app_settings.py:173
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:137
+#: admin/app_settings.py:176
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
-#: admin/app_settings.py:186 admin/app_settings.py:194
-#: admin/forms/account.py:331
+#: admin/app_settings.py:225 admin/app_settings.py:233
+#: admin/forms/account.py:335
msgid "Must be a positive integer"
msgstr "Tem de ser um inteiro, positivo"
-#: admin/app_settings.py:204
+#: admin/app_settings.py:243
#, fuzzy
#| msgid "Domain modified"
msgid "Directory not found."
msgstr "Domínio alterado"
-#: admin/app_settings.py:210
+#: admin/app_settings.py:249
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/app_settings.py:224
+#: admin/app_settings.py:263
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/app_settings.py:234
+#: admin/app_settings.py:273
msgid "Administration"
msgstr "Administração"
-#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/constants.py:28 admin/forms/alias.py:43
#: admin/templates/admin/_per_domain_statistics_widget.html:7
#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Domínio"
-#: admin/constants.py:100
+#: admin/constants.py:29
#, fuzzy
#| msgid "New domain"
msgid "Relay domain"
msgstr "Novo domínio"
-#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
+#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:125
msgid "Username"
msgstr "Nome de Utilizador"
-#: admin/forms/account.py:40
+#: admin/forms/account.py:34
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
msgstr ""
-#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
+#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Papel"
-#: admin/forms/account.py:46
+#: admin/forms/account.py:40
msgid "Choose"
msgstr "Escolher"
-#: admin/forms/account.py:47
+#: admin/forms/account.py:41
msgid "What level of permission this user will have"
msgstr "Que nível de permissões terá o utilizador"
-#: admin/forms/account.py:50 admin/forms/domain.py:227
+#: admin/forms/account.py:44 admin/forms/domain.py:245
#, fuzzy
#| msgid "Invalid request"
msgid "Random password"
msgstr "Pedido inválido"
-#: admin/forms/account.py:52
+#: admin/forms/account.py:46
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
msgstr ""
-#: admin/forms/account.py:58
+#: admin/forms/account.py:52
msgid "Password"
msgstr "Password"
-#: admin/forms/account.py:63
+#: admin/forms/account.py:57
msgid "Confirmation"
msgstr "Confirmação"
-#: admin/forms/account.py:66
+#: admin/forms/account.py:60
msgid "Enter the same password as above, for verification."
msgstr "Repita a password acima, para verificação."
-#: admin/forms/account.py:78
+#: admin/forms/account.py:72
msgid "Enabled"
msgstr "Ativo"
-#: admin/forms/account.py:172
+#: admin/forms/account.py:167
msgid "Only super administrators are allowed for this mode"
msgstr ""
-#: admin/forms/account.py:183 admin/forms/account.py:185
-#: admin/forms/domain.py:144 admin/forms/domain.py:273
-#: admin/forms/domain.py:276 admin/serializers.py:241
+#: admin/forms/account.py:178 admin/forms/account.py:180
+#: admin/forms/domain.py:162 admin/forms/domain.py:291
+#: admin/forms/domain.py:294 admin/serializers.py:287
#, fuzzy
#| msgid "A mailbox is required"
msgid "This field is required."
msgstr "É necessária uma caixa de correio"
-#: admin/forms/account.py:191
+#: admin/forms/account.py:186
msgid "The two password fields didn't match."
msgstr "Os dois campos de password não são idênticos."
-#: admin/forms/account.py:204
+#: admin/forms/account.py:199
msgid "You can't disable your own account"
msgstr "Não pode desativar a sua própria conta"
-#: admin/forms/account.py:225
+#: admin/forms/account.py:222
msgid "E-mail"
msgstr "E-mail"
-#: admin/forms/account.py:227
+#: admin/forms/account.py:224
msgid "Create an alias using the old address"
msgstr ""
-#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/forms/account.py:229 admin/forms/domain.py:41
+#: admin/templates/admin/account_detail.html:45
#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Quota"
-#: admin/forms/account.py:234
+#: admin/forms/account.py:232
+#, fuzzy
+#| msgid ""
+#| "Quota in MB for this mailbox. Define a custom value or use domain's "
+#| "default one. Leave empty to define an unlimited value (not allowed for "
+#| "domain administrators)."
msgid ""
-"Quota in MB for this mailbox. Define a custom value or use domain's default "
-"one. Leave empty to define an unlimited value (not allowed for domain "
-"administrators)."
+"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a "
+"custom value or use domain's default one. Leave empty to define an unlimited "
+"value (not allowed for domain administrators)."
msgstr ""
"Quota em MB para esta caixa de correio. Definir uma valor personalizado ou "
"usar o valor predefinido pelo domínio. Deixar em branco para definir uma "
"valor ilimitado (não permitido para administradores do domínio)."
-#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/forms/account.py:242 admin/forms/domain.py:31
#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias(es)"
@@ -334,70 +384,70 @@ msgstr ""
"Caixa(s) de correio para o qual este 'alias' aponta. Indicar apenas um "
"endereço por entrada, pressionar ENTER para acrescentar uma nova entrada."
-#: admin/forms/account.py:309 admin/forms/alias.py:94
-#: admin/models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:88
+#: admin/models/mailbox.py:310
msgid "Domain does not exist"
msgstr "O domínio não existe"
-#: admin/forms/account.py:341
+#: admin/forms/account.py:345
#, fuzzy
#| msgid "Domain does not exist"
msgid "Local domain does not exist"
msgstr "O domínio não existe"
-#: admin/forms/account.py:345 admin/forms/account.py:353
-#: admin/forms/alias.py:97
+#: admin/forms/account.py:349 admin/forms/account.py:357
+#: admin/forms/alias.py:91
msgid "You don't have access to this domain"
msgstr "Não tem acesso a este domínio"
-#: admin/forms/account.py:452
+#: admin/forms/account.py:456
msgid "Domain(s)"
msgstr "Domínio(s)"
-#: admin/forms/account.py:454
+#: admin/forms/account.py:458
msgid "Domain(s) that user administrates"
msgstr "Domínio(s) administrado pelo utilizador"
-#: admin/forms/account.py:500 admin/forms/account.py:590
-#: admin/forms/domain.py:344 admin/forms/domain.py:414
+#: admin/forms/account.py:505 admin/forms/account.py:595
+#: admin/forms/domain.py:362 admin/forms/domain.py:433
msgid "General"
msgstr "Geral"
-#: admin/forms/account.py:504
+#: admin/forms/account.py:509
msgid "Profile"
msgstr ""
-#: admin/forms/account.py:508 admin/forms/account.py:596
+#: admin/forms/account.py:513 admin/forms/account.py:601
msgid "Mail"
msgstr "Correio"
-#: admin/forms/account.py:511
+#: admin/forms/account.py:516
msgid "Permissions"
msgstr "Permissões"
-#: admin/forms/account.py:579
+#: admin/forms/account.py:584
msgid "Account updated"
msgstr "Conta actualizada"
-#: admin/forms/account.py:604
+#: admin/forms/account.py:609
msgid "New account"
msgstr "Nova conta"
-#: admin/forms/account.py:614
+#: admin/forms/account.py:619
msgid "Account created"
msgstr "Conta criada"
-#: admin/forms/alias.py:26
+#: admin/forms/alias.py:20
#, fuzzy
#| msgid "Invalid request"
msgid "Random address"
msgstr "Pedido inválido"
-#: admin/forms/alias.py:29
+#: admin/forms/alias.py:23
msgid "Email address"
msgstr "Endereço de e-mail"
-#: admin/forms/alias.py:31
+#: admin/forms/alias.py:25
#, fuzzy
#| msgid ""
#| "The alias address (without the domain part). For a 'catch-all' address, "
@@ -409,11 +459,11 @@ msgstr ""
"O endereço do alias (sem a parte do domínio). Para um endereço 'cath-all', "
"digite apenas o caractere *"
-#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Destinatários"
-#: admin/forms/alias.py:39
+#: admin/forms/alias.py:33
#, fuzzy
#| msgid ""
#| "Mailbox(es) this alias will point to. Indicate only one address per "
@@ -425,22 +475,22 @@ msgstr ""
"Caixa(s) de correio para o qual este 'alias' aponta. Indicar apenas um "
"endereço por entrada, pressionar ENTER para acrescentar uma nova entrada."
-#: admin/forms/alias.py:114 admin/forms/alias.py:116
+#: admin/forms/alias.py:108 admin/forms/alias.py:110
#, fuzzy
#| msgid "A mailbox is required"
msgid "This field is required"
msgstr "É necessária uma caixa de correio"
-#: admin/forms/alias.py:120
+#: admin/forms/alias.py:114
msgid "No recipient defined"
msgstr "Sem destinatário definido"
-#: admin/forms/domain.py:36
+#: admin/forms/domain.py:28
#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Tipo"
-#: admin/forms/domain.py:42
+#: admin/forms/domain.py:34
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
@@ -448,55 +498,79 @@ msgstr ""
"Alias(es) deste domínio. Indicar apenas um nome por entrada, pressionar "
"ENTER para acrescentar uma nova entrada."
-#: admin/forms/domain.py:47
+#: admin/forms/domain.py:39
msgid "Key selector"
msgstr ""
-#: admin/forms/domain.py:85 admin/handlers.py:171
+#: admin/forms/domain.py:44 admin/serializers.py:30
+#, fuzzy
+#| msgid ""
+#| "Default quota (in MB) applied to freshly created domains with no value "
+#| "specified. A value of 0 means no quota."
+msgid ""
+"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
+"A value of 0 means no quota."
+msgstr ""
+"Quota (em MB) a aplicar a domínios recentemente criados sem valor "
+"especificado. Um valor de 0 implica sem quota."
+
+#: admin/forms/domain.py:52
+#, fuzzy
+#| msgid ""
+#| "Default quota (in MB) applied to freshly created domains with no value "
+#| "specified. A value of 0 means no quota."
+msgid ""
+"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
+"GB. A value of 0 means no quota."
+msgstr ""
+"Quota (em MB) a aplicar a domínios recentemente criados sem valor "
+"especificado. Um valor de 0 implica sem quota."
+
+#: admin/forms/domain.py:94 admin/handlers.py:161
msgid "domain alias"
msgstr "'Alias' de domínio"
-#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
+#: admin/forms/domain.py:97 admin/forms/domain.py:173 admin/forms/domain.py:181
#, python-format
msgid "A %s with this name already exists"
msgstr "Já existe um(a) %s com este nome. "
-#: admin/forms/domain.py:96 admin/serializers.py:45
+#: admin/forms/domain.py:105 admin/serializers.py:64
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/forms/domain.py:108
+#: admin/forms/domain.py:117
msgid "DKIM keys storage directory not configured"
msgstr ""
-#: admin/forms/domain.py:129 admin/serializers.py:55
+#: admin/forms/domain.py:147 admin/serializers.py:82
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/forms/domain.py:134
+#: admin/forms/domain.py:152
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:155 admin/forms/domain.py:160
+#: admin/forms/domain.py:173 admin/forms/domain.py:178
msgid "domain"
msgstr "domínio"
-#: admin/forms/domain.py:209
+#: admin/forms/domain.py:227
msgid "Create a domain administrator"
msgstr "Criar um administrador de domínio"
-#: admin/forms/domain.py:212
+#: admin/forms/domain.py:230
msgid "Automatically create an administrator for this domain"
msgstr "Criar automaticamente um administrador para este domínio"
-#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/forms/domain.py:235 admin/templates/admin/domain_detail.html:125
#: admin/templates/admin/domain_headers.html:3
#: admin/templates/admin/identity_headers.html:2
#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Nome"
-#: admin/forms/domain.py:220
+#: admin/forms/domain.py:238
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
@@ -504,259 +578,343 @@ msgstr ""
"O nome do administrador. Não inclua o nome do domínio já que este será "
"automaticamente anexado."
-#: admin/forms/domain.py:230
+#: admin/forms/domain.py:248
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Generate a random password for the administrator."
msgstr "Criar um administrador de domínio"
-#: admin/forms/domain.py:236
+#: admin/forms/domain.py:254
msgid "With a mailbox"
msgstr ""
-#: admin/forms/domain.py:239
+#: admin/forms/domain.py:257
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Create a mailbox for the administrator."
msgstr "Criar um administrador de domínio"
-#: admin/forms/domain.py:245
+#: admin/forms/domain.py:263
msgid "Create aliases"
msgstr " Criar aliases"
-#: admin/forms/domain.py:248
+#: admin/forms/domain.py:266
msgid "Automatically create standard aliases for this domain"
msgstr "Criar automaticamente aliases para este domínio"
-#: admin/forms/domain.py:264
+#: admin/forms/domain.py:282
msgid "Invalid format"
msgstr "Formato inválido"
-#: admin/forms/domain.py:293
+#: admin/forms/domain.py:311
#, python-format
msgid "User '%s' already exists"
msgstr "O utilizador '%s' já existe"
-#: admin/forms/domain.py:404
+#: admin/forms/domain.py:423
msgid "Domain modified"
msgstr "Domínio alterado"
-#: admin/forms/domain.py:425
+#: admin/forms/domain.py:444
msgid "Options"
msgstr "Opções"
-#: admin/forms/domain.py:433
+#: admin/forms/domain.py:452
msgid "New domain"
msgstr "Novo domínio"
-#: admin/forms/domain.py:446
+#: admin/forms/domain.py:465
msgid "Domain created"
msgstr "Domínio criado"
-#: admin/forms/export.py:9
-msgid "File name"
-msgstr "Nome do ficheiro"
-
-#: admin/forms/export.py:15 admin/forms/import_.py:15
+#: admin/forms/export.py:9 admin/forms/import_.py:13
msgid "Separator"
msgstr "Separador"
-#: admin/forms/forward.py:14
+#: admin/forms/forward.py:12
msgid "Recipient(s)"
msgstr "Destinatário(s)"
-#: admin/forms/forward.py:18
+#: admin/forms/forward.py:16
msgid "Indicate one or more recipients separated by a ','"
msgstr "Indicar um ou mais destinatários separados por ','"
-#: admin/forms/forward.py:21
+#: admin/forms/forward.py:19
msgid "Keep local copies"
msgstr "Conservar cópias locais"
-#: admin/forms/forward.py:24
+#: admin/forms/forward.py:22
msgid "Forward messages and store copies into your local mailbox"
msgstr ""
"Reencaminhar mensagens e armazenar cópias na sua caixa de correio local"
-#: admin/forms/import_.py:13
+#: admin/forms/import_.py:11
msgid "Select a file"
msgstr "Escolha um ficheiro"
-#: admin/forms/import_.py:21
+#: admin/forms/import_.py:19
msgid "Continue on error"
msgstr "Continua com erro"
-#: admin/forms/import_.py:22
+#: admin/forms/import_.py:20
msgid "Don't treat duplicated objects as error"
msgstr "Não tratar objetos duplicados como erro"
-#: admin/forms/import_.py:40
+#: admin/forms/import_.py:38
msgid "Crypt passwords"
msgstr "Passwords encriptadas"
-#: admin/forms/import_.py:42
+#: admin/forms/import_.py:40
msgid "Check this option if passwords contained in your file are not crypted"
msgstr "Marque esta opção se as senhas contidas no arquivo não são encriptadas"
-#: admin/handlers.py:218
+#: admin/handlers.py:210
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Importação da conta falhou (%s): domínio não existe"
-#: admin/handlers.py:231 admin/models/mailbox.py:342
+#: admin/handlers.py:223 admin/models/mailbox.py:338
#, fuzzy
#| msgid "Mailbox %s already exists"
msgid "Mailbox {} already exists"
msgstr "Caixa de correio %s já existe"
-#: admin/handlers.py:239
+#: admin/handlers.py:231
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Importação da conta falhou (%s): valor para quota inválido"
-#: admin/handlers.py:279
+#: admin/handlers.py:271
#: admin/templates/admin/_global_statistics_widget.html:17
#: admin/templates/admin/_per_domain_statistics_widget.html:8
#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Identidades"
-#: admin/handlers.py:295 admin/templates/admin/forward.html:2
+#: admin/handlers.py:287 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Reencaminhar"
-#: admin/lib.py:44
+#: admin/lib.py:38
msgid "A mailbox is required"
msgstr "É necessária uma caixa de correio"
-#: admin/lib.py:134
+#: admin/lib.py:128
#, fuzzy
#| msgid "You can't delete your own domain"
msgid "You are not allowed to import domains"
msgstr "Não é possível eliminar o seu próprio domínio"
-#: admin/lib.py:145
+#: admin/lib.py:139
msgid "You are not allowed to import domain aliases."
msgstr ""
-#: admin/lib.py:183 admin/tests/test_mx.py:122
+#: admin/lib.py:189 admin/tests/test_mx.py:127 admin/tests/test_mx.py:136
+#: admin/tests/test_mx.py:139
#, python-format
-msgid "No DNS records found for %s"
+msgid "No DNS record found for %s"
msgstr ""
-#: admin/lib.py:185 admin/tests/test_mx.py:125
+#: admin/lib.py:192
#, python-format
-msgid "No MX record for %s"
+msgid "No %(type)s record for %(name)s"
msgstr ""
-#: admin/lib.py:187 admin/tests/test_mx.py:126
+#: admin/lib.py:196 admin/tests/test_mx.py:131
msgid "No working name servers found"
msgstr ""
-#: admin/lib.py:190 admin/tests/test_mx.py:128
+#: admin/lib.py:199 admin/tests/test_mx.py:133
#, python-format
msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
-#: admin/lib.py:201 admin/tests/test_mx.py:131
-#, python-format
-msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+#: admin/lib.py:227
+#, fuzzy, python-brace-format
+#| msgid "Invalid quota value for domain '%s'"
+msgid "Invalid IP address format for {domain}; {addr}"
+msgstr "Valor de quota inválido para o dominio '%s'"
+
+#: admin/management/commands/subcommands/_import.py:93
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/lib.py:212 admin/tests/test_mx.py:134
+#: admin/management/commands/subcommands/_import.py:105
#, python-format
-msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgid "Reading CSV file using %(encoding)s encoding"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:136
+#: admin/management/commands/subcommands/_import.py:116
+#, python-format
+msgid "Unable to decode CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:132
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:152
msgid "Domain {} has no MX record"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:167
+#: admin/management/commands/subcommands/_mx.py:163
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:184
+#: admin/management/commands/subcommands/_mx.py:180
msgid "[modoboa] MX issue(s) for domain {}"
msgstr ""
-#: admin/models/alias.py:35 admin/models/mailbox.py:97
+#: admin/models/alias.py:32 admin/models/mailbox.py:95
msgid "address"
msgstr "endereços"
-#: admin/models/alias.py:37
+#: admin/models/alias.py:34
#, fuzzy
#| msgid "The alias name"
msgid "The alias address."
msgstr "O nome do 'alias'"
-#: admin/models/alias.py:42 admin/models/domain.py:48
-#: admin/models/domain_alias.py:47
+#: admin/models/alias.py:39 admin/models/domain.py:37
+#: admin/models/domain_alias.py:42
msgid "enabled"
msgstr "ativo"
-#: admin/models/alias.py:43 admin/models/domain_alias.py:48
+#: admin/models/alias.py:40 admin/models/domain_alias.py:43
msgid "Check to activate this alias"
msgstr "Marcar para ativar este alias"
-#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
+#: admin/models/alias.py:45 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr ""
-#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
+#: admin/models/alias.py:47 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr ""
-#: admin/models/alias.py:93
+#: admin/models/alias.py:87
msgid "alias"
msgstr "alias"
-#: admin/models/alias.py:125
+#: admin/models/alias.py:119
#, fuzzy
#| msgid "Invalid request"
msgid "Invalid address"
msgstr "Pedido inválido"
-#: admin/models/alias.py:146
+#: admin/models/alias.py:140
#, fuzzy
#| msgid "Local recipient %s not found"
msgid "Local recipient {}@{} not found"
msgstr "O destinatário local %s não foi encontrado"
-#: admin/models/alias.py:176
+#: admin/models/alias.py:170
#, python-format
msgid "Invalid line: %s"
msgstr "Linha inválida: %s"
-#: admin/models/alias.py:182
+#: admin/models/alias.py:176
#, python-format
msgid "Domain '%s' does not exist"
msgstr "O domínio '%s' não existe"
-#: admin/models/domain.py:30 admin/models/domain_alias.py:39
+#: admin/models/domain.py:27 admin/models/domain_alias.py:34
msgid "name"
msgstr "nome"
-#: admin/models/domain.py:31
+#: admin/models/domain.py:28
msgid "The domain name"
msgstr "O nome do domínio"
-#: admin/models/domain.py:35
-#, fuzzy
-#| msgid ""
-#| "Default quota (in MB) applied to freshly created domains with no value "
-#| "specified. A value of 0 means no quota."
-msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
-msgstr ""
-"Quota (em MB) a aplicar a domínios recentemente criados sem valor "
-"especificado. Um valor de 0 implica sem quota."
+#: admin/models/domain.py:38
+msgid "Check to activate this domain"
+msgstr "Marcar para ativar este domínio"
#: admin/models/domain.py:43
+msgid "Enable DNS checks"
+msgstr ""
+
+#: admin/models/domain.py:44
+#, fuzzy
+#| msgid "Check to activate this domain"
+msgid "Check to enable DNS checks for this domain"
+msgstr "Marcar para ativar este domínio"
+
+#: admin/models/domain.py:51
+msgid "Enable DKIM signing"
+msgstr ""
+
+#: admin/models/domain.py:53
+msgid ""
+"If you activate this feature, a DKIM key will be generated for this domain."
+msgstr ""
+
+#: admin/models/domain.py:59
+msgid "Key length"
+msgstr ""
+
+#: admin/models/domain.py:312 admin/models/domain_alias.py:67
+msgid "Invalid line"
+msgstr "Linha inválida"
+
+#: admin/models/domain.py:322
+msgid "No authorized MX record found for domain {}"
+msgstr ""
+
+#: admin/models/domain.py:329
+#, fuzzy
+#| msgid "Invalid quota value for domain '%s'"
+msgid "Invalid quota value for domain '{}'"
+msgstr "Valor de quota inválido para o dominio '%s'"
+
+#: admin/models/domain.py:336
+#, fuzzy
+#| msgid "Invalid quota value for domain '%s'"
+msgid "Invalid default mailbox quota value for domain '{}'"
+msgstr "Valor de quota inválido para o dominio '%s'"
+
+#: admin/models/domain.py:341
+msgid "Default mailbox quota cannot be greater than domain quota"
+msgstr ""
+
+#: admin/models/domain_alias.py:35
+msgid "The alias name"
+msgstr "O nome do 'alias'"
+
+#: admin/models/domain_alias.py:37
+msgid "target"
+msgstr "alvo"
+
+#: admin/models/domain_alias.py:38
+msgid "The domain this alias points to"
+msgstr "O domínio para o qual este alias irá apontar"
+
+#: admin/models/domain_alias.py:76
+#, python-format
+msgid "Unknown domain %s"
+msgstr "Domínio desconhecido: %s"
+
+#: admin/models/mailbox.py:97
+msgid "Mailbox address (without the @domain.tld part)"
+msgstr "Endereços das caixas de correio (sem a parte @domain.tld)"
+
+#: admin/models/mailbox.py:160
+#, python-format
+msgid "Failed to retrieve mailbox location (%s)"
+msgstr "Falha ao recuperar a localização da caixa de correio (%s)"
+
+#: admin/models/mailbox.py:253
+msgid "A quota is required"
+msgstr "É necessário uma quota"
+
+#: admin/models/mailbox.py:259
+#, fuzzy
+#| msgid "Domain created"
+msgid "Domain quota exceeded"
+msgstr "Domínio criado"
+
+#: admin/serializers.py:37
#, fuzzy
#| msgid ""
#| "Default quota (in MB) applied to freshly created domains with no value "
@@ -766,135 +924,48 @@ msgstr ""
"Quota (em MB) a aplicar a domínios recentemente criados sem valor "
"especificado. Um valor de 0 implica sem quota."
-#: admin/models/domain.py:49
-msgid "Check to activate this domain"
-msgstr "Marcar para ativar este domínio"
-
-#: admin/models/domain.py:54
-msgid "Enable DNS checks"
-msgstr ""
-
-#: admin/models/domain.py:55
-#, fuzzy
-#| msgid "Check to activate this domain"
-msgid "Check to enable DNS checks for this domain"
-msgstr "Marcar para ativar este domínio"
-
-#: admin/models/domain.py:62
-msgid "Enable DKIM signing"
-msgstr ""
-
-#: admin/models/domain.py:64
-msgid ""
-"If you activate this feature, a DKIM key will be generated for this domain."
-msgstr ""
-
-#: admin/models/domain.py:70
-msgid "Key length"
-msgstr ""
-
-#: admin/models/domain.py:285 admin/models/domain_alias.py:74
-msgid "Invalid line"
-msgstr "Linha inválida"
-
-#: admin/models/domain.py:295
-msgid "No authorized MX record found for domain {}"
-msgstr ""
-
-#: admin/models/domain.py:302
-#, fuzzy
-#| msgid "Invalid quota value for domain '%s'"
-msgid "Invalid quota value for domain '{}'"
-msgstr "Valor de quota inválido para o dominio '%s'"
-
-#: admin/models/domain.py:309
-#, fuzzy
-#| msgid "Invalid quota value for domain '%s'"
-msgid "Invalid default mailbox quota value for domain '{}'"
-msgstr "Valor de quota inválido para o dominio '%s'"
-
-#: admin/models/domain.py:314
-msgid "Default mailbox quota cannot be greater than domain quota"
-msgstr ""
-
-#: admin/models/domain_alias.py:40
-msgid "The alias name"
-msgstr "O nome do 'alias'"
-
-#: admin/models/domain_alias.py:42
-msgid "target"
-msgstr "alvo"
-
-#: admin/models/domain_alias.py:43
-msgid "The domain this alias points to"
-msgstr "O domínio para o qual este alias irá apontar"
-
-#: admin/models/domain_alias.py:83
-#, python-format
-msgid "Unknown domain %s"
-msgstr "Domínio desconhecido: %s"
-
-#: admin/models/mailbox.py:99
-msgid "Mailbox address (without the @domain.tld part)"
-msgstr "Endereços das caixas de correio (sem a parte @domain.tld)"
-
-#: admin/models/mailbox.py:165
-#, python-format
-msgid "Failed to retrieve mailbox location (%s)"
-msgstr "Falha ao recuperar a localização da caixa de correio (%s)"
-
-#: admin/models/mailbox.py:258
-msgid "A quota is required"
-msgstr "É necessário uma quota"
-
-#: admin/models/mailbox.py:264
-#, fuzzy
-#| msgid "Domain created"
-msgid "Domain quota exceeded"
-msgstr "Domínio criado"
-
-#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
+#: admin/serializers.py:107 admin/serializers.py:312 admin/serializers.py:410
#, fuzzy
#| msgid "Permissions"
msgid "Permission denied."
msgstr "Permissões"
-#: admin/serializers.py:118
+#: admin/serializers.py:158
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/serializers.py:218
+#: admin/serializers.py:262
msgid "Not allowed for this role."
msgstr ""
-#: admin/serializers.py:228
+#: admin/serializers.py:274
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/serializers.py:253
+#: admin/serializers.py:299
#, fuzzy
#| msgid "Domain does not exist"
msgid "Local domain {} does not exist"
msgstr "O domínio não existe"
-#: admin/serializers.py:347
+#: admin/serializers.py:397
msgid "A list of recipient"
msgstr ""
-#: admin/serializers.py:358
+#: admin/serializers.py:408
#, fuzzy
#| msgid "Domain modified"
msgid "Domain not found."
msgstr "Domínio alterado"
-#: admin/serializers.py:407
+#: admin/serializers.py:457
#, fuzzy
#| msgid "You don't have access to this domain"
msgid "You don't have access to this domain."
msgstr "Não tem acesso a este domínio"
-#: admin/serializers.py:415
+#: admin/serializers.py:465
#, fuzzy
#| msgid "You don't have access to this domain"
msgid "You don't have access to this mailbox."
@@ -933,6 +1004,19 @@ msgstr "inativo"
msgid "Awaiting checks"
msgstr ""
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+#, fuzzy
+#| msgid "Domain modified"
+msgid "No record found"
+msgstr "Domínio alterado"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
+msgstr ""
+
#: admin/templates/admin/_global_statistics_widget.html:4
#, fuzzy
#| msgid "Statistics"
@@ -1063,7 +1147,8 @@ msgid "Address"
msgstr "Endereço"
#: admin/templates/admin/dnsbl_domain_detail.html:12
-#: admin/templates/admin/domain_detail.html:96
+#: admin/templates/admin/domain_detail.html:100
+#: admin/templates/admin/messages_log_headers.html:6
#, fuzzy
#| msgid "Statistics"
msgid "Status"
@@ -1097,11 +1182,8 @@ msgstr "Aliases para caixas de correio"
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domain_detail.html:65
-#: admin/templates/admin/domain_general_form.html:4
-#: admin/templates/admin/domain_general_form.html:5
#: admin/templates/admin/domains_quotas.html:11
#: admin/templates/admin/domains_quotas.html:12
-#: admin/templates/admin/mailform.html:7
#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
@@ -1123,34 +1205,38 @@ msgstr ""
msgid "allocated"
msgstr ""
-#: admin/templates/admin/domain_detail.html:91
+#: admin/templates/admin/domain_detail.html:92
msgid "DNS"
msgstr ""
-#: admin/templates/admin/domain_detail.html:103
+#: admin/templates/admin/domain_detail.html:107
msgid "DKIM key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:107
+#: admin/templates/admin/domain_detail.html:111
msgid "Show key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:110
+#: admin/templates/admin/domain_detail.html:113
+msgid "Generate new key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:115
#, fuzzy
#| msgid "No recipient defined"
msgid "Not generated"
msgstr "Sem destinatário definido"
-#: admin/templates/admin/domain_detail.html:117
+#: admin/templates/admin/domain_detail.html:122
msgid "Administrators"
msgstr "Administradores"
-#: admin/templates/admin/domain_detail.html:129
-#: admin/templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:134
+#: admin/templatetags/admin_tags.py:265
msgid "Remove this permission"
msgstr "Remover esta permissão"
-#: admin/templates/admin/domain_detail.html:134
+#: admin/templates/admin/domain_detail.html:139
#, fuzzy
#| msgid "No domain administrator defined"
msgid "No domain administrator defined yet."
@@ -1212,7 +1298,7 @@ msgstr "inativo"
msgid "Automatically forward emails to another address"
msgstr "Reenviar automaticamente e-mails para outro endereço"
-#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:87
msgid "Update"
msgstr "Actualizar"
@@ -1271,6 +1357,22 @@ msgstr "Escolha um valor"
msgid "Use domain default value"
msgstr "Usar um valor padrão de domínio"
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:3
+msgid "Date"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:4
+msgid "From"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:5
+msgid "To"
+msgstr ""
+
#: admin/templates/admin/mx_domain_detail.html:11
#, fuzzy
#| msgid "Update"
@@ -1308,72 +1410,82 @@ msgstr ""
msgid "Search"
msgstr "Procurar"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_m"
msgstr "enabled_m"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_f"
msgstr "enabled_f"
-#: admin/templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:45
msgid "List domains"
msgstr "Listar domínios"
-#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:50 admin/templatetags/admin_tags.py:105
msgid "List quotas"
msgstr "Listar as quotas"
-#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
-#: admin/views/import_.py:89 admin/views/import_.py:111
+#: admin/templatetags/admin_tags.py:62 admin/templatetags/admin_tags.py:110
+#: admin/views/import_.py:85 admin/views/import_.py:107
msgid "Import"
msgstr "Importar"
-#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
-#: admin/views/export.py:43 admin/views/export.py:71
+#: admin/templatetags/admin_tags.py:68 admin/templatetags/admin_tags.py:116
+#: admin/views/export.py:39 admin/views/export.py:67
msgid "Export"
msgstr "Exportar"
-#: admin/templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:100
msgid "List identities"
msgstr "Listar identidades"
-#: admin/templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:135
msgid "View the domain's identities"
msgstr "Visualizar as identidades do domínio"
-#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
-#: admin/templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:141 admin/templatetags/admin_tags.py:184
+#: admin/templatetags/admin_tags.py:197
msgid "Edit {}"
msgstr ""
-#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
-#: admin/templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:151 admin/templatetags/admin_tags.py:188
+#: admin/templatetags/admin_tags.py:202
#, python-format
msgid "Delete %s?"
msgstr "Eliminar %s?"
-#: admin/views/alias.py:35
+#: admin/tests/test_mx.py:130
+#, python-format
+msgid "No MX record for %s"
+msgstr ""
+
+#: admin/tests/test_mx.py:142 admin/tests/test_mx.py:145
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/views/alias.py:29
msgid "Alias with this name already exists"
msgstr "Já existe um 'alias' com este nome"
-#: admin/views/alias.py:60
+#: admin/views/alias.py:54
msgid "Create"
msgstr "Criar"
-#: admin/views/alias.py:72
+#: admin/views/alias.py:66
msgid "New alias"
msgstr "Novo 'alias'"
-#: admin/views/alias.py:73
+#: admin/views/alias.py:67
msgid "Alias created"
msgstr "Alias criado"
-#: admin/views/alias.py:85
+#: admin/views/alias.py:79
msgid "Alias modified"
msgstr "'Alias' modificado"
-#: admin/views/alias.py:109
+#: admin/views/alias.py:103
#, fuzzy
#| msgid "Alias created"
msgid "Alias deleted"
@@ -1381,65 +1493,77 @@ msgid_plural "Aliases deleted"
msgstr[0] "Alias criado"
msgstr[1] "Alias criado"
-#: admin/views/dns.py:32
+#: admin/views/dns.py:28
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:55
+#: admin/views/dns.py:51
msgid "DNSBL summary for {}"
msgstr ""
-#: admin/views/domain.py:188
+#: admin/views/domain.py:202
msgid "You can't delete your own domain"
msgstr "Não é possível eliminar o seu próprio domínio"
-#: admin/views/domain.py:191
+#: admin/views/domain.py:205
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Domínio criado"
msgstr[1] "Domínios eliminados"
-#: admin/views/export.py:42
+#: admin/views/export.py:38
msgid "Export identities"
msgstr "Exportar identidades"
-#: admin/views/export.py:70
+#: admin/views/export.py:66
msgid "Export domains"
msgstr "Exportar domínios"
-#: admin/views/identity.py:113 admin/views/identity.py:206
-#: admin/views/identity.py:211
+#: admin/views/identity.py:107 admin/views/identity.py:201
+#: admin/views/identity.py:206
msgid "Invalid request"
msgstr "Pedido inválido"
-#: admin/views/identity.py:196
+#: admin/views/identity.py:191
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Conta eliminada"
msgstr[1] "Contas eliminadas"
-#: admin/views/import_.py:65
+#: admin/views/import_.py:61
#, python-format
msgid "Object already exists: %s"
msgstr "Este objeto já existe: %s"
-#: admin/views/import_.py:69
+#: admin/views/import_.py:65
#, python-format
msgid "%d objects imported successfully"
msgstr "%d objetos importados com sucesso"
-#: admin/views/import_.py:88
+#: admin/views/import_.py:84
msgid "Import domains"
msgstr "Importar domínios"
-#: admin/views/import_.py:110
+#: admin/views/import_.py:106
msgid "Import identities"
msgstr "Importar identidades"
-#: admin/views/user.py:40
+#: admin/views/user.py:36
msgid "Forward updated"
msgstr "Reencaminhamento atualizado"
+#~ msgid "File name"
+#~ msgstr "Nome do ficheiro"
+
+#, fuzzy
+#~| msgid ""
+#~| "Default quota (in MB) applied to freshly created domains with no value "
+#~| "specified. A value of 0 means no quota."
+#~ msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
+#~ msgstr ""
+#~ "Quota (em MB) a aplicar a domínios recentemente criados sem valor "
+#~ "especificado. Um valor de 0 implica sem quota."
+
#~ msgid ""
#~ "Default quota in MB applied to mailboxes. Leave empty to use the default "
#~ "value."
diff --git a/modoboa/admin/locale/pt_PT/LC_MESSAGES/djangojs.po b/modoboa/admin/locale/pt_PT/LC_MESSAGES/djangojs.po
index 1cb4ecfbc..94d1357b4 100644
--- a/modoboa/admin/locale/pt_PT/LC_MESSAGES/djangojs.po
+++ b/modoboa/admin/locale/pt_PT/LC_MESSAGES/djangojs.po
@@ -13,7 +13,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-04 22:08+0100\n"
+"POT-Creation-Date: 2020-03-09 16:48+0100\n"
"PO-Revision-Date: 2014-12-29 12:08+0000\n"
"Last-Translator: Mike C. \n"
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/"
@@ -24,19 +24,19 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/static/admin/js/admin.js:131
+#: admin/static/admin/js/admin.js:129 admin/static/admin/js/admin.js:174
msgid "No more domain to show"
msgstr "Não existem mais dominios para mostrar"
-#: admin/static/admin/js/admin.js:150
+#: admin/static/admin/js/admin.js:149
msgid "Do not delete domain directory"
msgstr "Não excluir o diretório do domínio"
-#: admin/static/admin/js/admin.js:152
+#: admin/static/admin/js/admin.js:151
msgid "This operation will remove ALL data associated to this domain."
msgstr "Esta operação irá remover TODOS os dados associados a este domínio."
-#: admin/static/admin/js/admin.js:153
+#: admin/static/admin/js/admin.js:152
msgid ""
"This operation will remove all data associated to this domain, excepting "
"accounts."
@@ -44,18 +44,18 @@ msgstr ""
"Esta operação irá remover TODOS os dados associados a este domínio, excepto "
"as contas."
-#: admin/static/admin/js/admin.js:236
+#: admin/static/admin/js/admin.js:177 admin/static/admin/js/admin.js:433
+msgid "No more quota to show"
+msgstr "Não existem mais quotas para mostrar"
+
+#: admin/static/admin/js/admin.js:306
msgid "No domain administrator defined"
msgstr "Não está definido nenhum administrador para o domínio"
-#: admin/static/admin/js/admin.js:291 admin/static/admin/js/admin.js:359
+#: admin/static/admin/js/admin.js:362 admin/static/admin/js/admin.js:430
msgid "No more identity to show"
msgstr "Não existem mais identidades para mostrar"
-#: admin/static/admin/js/admin.js:333
+#: admin/static/admin/js/admin.js:404
msgid "Do not delete mailbox directory"
msgstr "Não excluir o diretório da caixa de correio"
-
-#: admin/static/admin/js/admin.js:362
-msgid "No more quota to show"
-msgstr "Não existem mais quotas para mostrar"
diff --git a/modoboa/admin/locale/ro_RO/LC_MESSAGES/django.po b/modoboa/admin/locale/ro_RO/LC_MESSAGES/django.po
index ea16b863e..f20af9f55 100644
--- a/modoboa/admin/locale/ro_RO/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/ro_RO/LC_MESSAGES/django.po
@@ -1,270 +1,367 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Andrei-Ilie Olteanu , 2018
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
"PO-Revision-Date: 2018-07-03 13:17+0000\n"
"Last-Translator: Andrei-Ilie Olteanu \n"
-"Language-Team: Romanian (Romania) (http://www.transifex.com/tonio/modoboa/language/ro_RO/)\n"
+"Language-Team: Romanian (Romania) (http://www.transifex.com/tonio/modoboa/"
+"language/ro_RO/)\n"
+"Language: ro_RO\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ro_RO\n"
-"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
+"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
+"2:1));\n"
-#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/api.py:142
+msgid "Here is your new Modoboa password: {}"
+msgstr ""
+
+#: admin/app_settings.py:20 admin/handlers.py:261
#: admin/templates/admin/_global_statistics_widget.html:11
#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domenii"
-#: admin/app_settings.py:25
+#: admin/app_settings.py:23
msgid "Enable MX checks"
msgstr "Activează verificările MX"
-#: admin/app_settings.py:28
+#: admin/app_settings.py:26
msgid "Check that every domain has a valid MX record"
msgstr "Verifică ca fiecare domeniu are asociat un MX valid"
-#: admin/app_settings.py:33
+#: admin/app_settings.py:31
msgid "Valid MXs"
msgstr "MX-uri valide"
-#: admin/app_settings.py:36
+#: admin/app_settings.py:34
msgid ""
-"A list of IP or network address every MX record should match. A warning will"
-" be sent if a record does not respect it."
-msgstr "O listă de IP-uri sau de adrese de rețea care pentru fiecare înregistrare MX ar trebui să se potrivească. O avertizare va fi trimisă dacă o înregistrare nu respectă această conformitate."
+"A list of IP or network address every MX record should match. A warning will "
+"be sent if a record does not respect it."
+msgstr ""
+"O listă de IP-uri sau de adrese de rețea care pentru fiecare înregistrare MX "
+"ar trebui să se potrivească. O avertizare va fi trimisă dacă o înregistrare "
+"nu respectă această conformitate."
-#: admin/app_settings.py:44
+#: admin/app_settings.py:42
msgid "New domains must use authorized MX(s)"
msgstr "Domeniile noi trebuie să utilizeze MX(-uri) autorizate"
-#: admin/app_settings.py:47
+#: admin/app_settings.py:45
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
-msgstr "Împiedică crearea unui nou domeniu dacă înregistrarea MX nu utilizează una dintre adresele definite."
+msgstr ""
+"Împiedică crearea unui nou domeniu dacă înregistrarea MX nu utilizează una "
+"dintre adresele definite."
-#: admin/app_settings.py:53
+#: admin/app_settings.py:51
+#, fuzzy
+#| msgid "Enable DNS checks"
+msgid "Enable SPF checks"
+msgstr "Activează verificările DNS"
+
+#: admin/app_settings.py:54
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid SPF record"
+msgstr "Verifică ca fiecare domeniu are asociat un MX valid"
+
+#: admin/app_settings.py:59
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DKIM checks"
+msgstr "Activează verificările MX"
+
+#: admin/app_settings.py:62
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr "Verifică ca fiecare domeniu are asociat un MX valid"
+
+#: admin/app_settings.py:68
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DMARC checks"
+msgstr "Activează verificările MX"
+
+#: admin/app_settings.py:71
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid DMARC record"
+msgstr "Verifică ca fiecare domeniu are asociat un MX valid"
+
+#: admin/app_settings.py:76
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable autoconfig checks"
+msgstr "Activează verificările MX"
+
+#: admin/app_settings.py:79
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr "Verifică ca fiecare domeniu are asociat un MX valid"
+
+#: admin/app_settings.py:84
msgid "Enable DNSBL checks"
msgstr "Activează verificările DNSBL"
-#: admin/app_settings.py:56
+#: admin/app_settings.py:87
msgid "Check every domain against major DNSBL providers"
msgstr "Verificați fiecare domeniu folosind furnizorii DNSBL majori"
-#: admin/app_settings.py:61
+#: admin/app_settings.py:92
+msgid "Custom DNS server"
+msgstr ""
+
+#: admin/app_settings.py:95
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr ""
+
+#: admin/app_settings.py:100
msgid "DKIM keys storage directory"
msgstr "Folderul de stocare pentru cheile DKIM"
-#: admin/app_settings.py:64
+#: admin/app_settings.py:103
msgid ""
"Absolute path of the directory where DKIM private keys will be stored. Make "
"sure this directory belongs to root user and is not readable by the outside "
"world."
-msgstr "Calea absolută a directorului în care vor fi stocate cheile private DKIM. Asigurați-vă că acest director aparține utilizatorului root și nu poate fi citit de orice user."
+msgstr ""
+"Calea absolută a directorului în care vor fi stocate cheile private DKIM. "
+"Asigurați-vă că acest director aparține utilizatorului root și nu poate fi "
+"citit de orice user."
-#: admin/app_settings.py:72
+#: admin/app_settings.py:111
msgid "Default DKIM key length"
msgstr "Mărimea implicită în caractere a chei DKIM"
-#: admin/app_settings.py:76
+#: admin/app_settings.py:115
msgid "Default length in bits for newly generated DKIM keys."
msgstr "Mărimea implicită în biți pentru o cheie DKIM nou generată"
-#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
+#: admin/app_settings.py:119 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Cutii poștale"
-#: admin/app_settings.py:83
+#: admin/app_settings.py:122
msgid "Handle mailboxes on filesystem"
msgstr "Gestionați cutiile poștale în sistemul de fișiere"
-#: admin/app_settings.py:86
+#: admin/app_settings.py:125
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
-msgstr "Redenumește sau eliminează căsuțele poștale din sistemul de fișiere atunci când se redenumesc sau se elimină în Modoboa"
+msgstr ""
+"Redenumește sau eliminează căsuțele poștale din sistemul de fișiere atunci "
+"când se redenumesc sau se elimină în Modoboa"
-#: admin/app_settings.py:92
+#: admin/app_settings.py:131
msgid "Mailboxes owner"
msgstr "Propietarul cutiilor postale"
-#: admin/app_settings.py:95
+#: admin/app_settings.py:134
msgid "The UNIX account who owns mailboxes on the filesystem"
-msgstr "Contul UNIX care are in propietate casuțele poștale în sistemul de fișiere"
+msgstr ""
+"Contul UNIX care are in propietate casuțele poștale în sistemul de fișiere"
-#: admin/app_settings.py:100
+#: admin/app_settings.py:139
msgid "Default domain quota"
msgstr "Cota-parte implicită a domeniului"
-#: admin/app_settings.py:103
+#: admin/app_settings.py:142
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
-msgstr "Cota implicită (în MB) aplicată domeniilor nou create, care nu au nicio valoare specificată. O valoare de 0 înseamnă că nu există o cotă."
+msgstr ""
+"Cota implicită (în MB) aplicată domeniilor nou create, care nu au nicio "
+"valoare specificată. O valoare de 0 înseamnă că nu există o cotă."
-#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/app_settings.py:148 admin/forms/domain.py:49 admin/models/domain.py:33
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr "Cota implicită pentru cutia poștală"
-#: admin/app_settings.py:112
+#: admin/app_settings.py:151
+#, fuzzy
+#| msgid ""
+#| "Default mailbox quota (in MB) applied to freshly created domains with no "
+#| "value specified. A value of 0 means no quota."
msgid ""
-"Default mailbox quota (in MB) applied to freshly created domains with no "
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
"value specified. A value of 0 means no quota."
-msgstr "Cota implicită pentru cutia poștală (în MB) aplicată domeniilor nou create, care nu au nicio valoare specificată. O valoare de 0 înseamnă că nu există o cotă."
+msgstr ""
+"Cota implicită pentru cutia poștală (în MB) aplicată domeniilor nou create, "
+"care nu au nicio valoare specificată. O valoare de 0 înseamnă că nu există o "
+"cotă."
-#: admin/app_settings.py:118
+#: admin/app_settings.py:157
msgid "Automatic account removal"
msgstr "Ștergere automată a contului"
-#: admin/app_settings.py:121
+#: admin/app_settings.py:160
msgid "When a mailbox is removed, also remove the associated account"
msgstr "Când se șterge o cutie poștală, șterge, de asemenea și contul asociat"
-#: admin/app_settings.py:125
+#: admin/app_settings.py:164
msgid "Automatic domain/mailbox creation"
msgstr "Crearea automată a domeniului / cutiei poștale"
-#: admin/app_settings.py:128
-msgid ""
-"Create a domain and a mailbox when an account is automatically created."
-msgstr "Creați un domeniu și o căsuță poștală atunci când un cont este creat automat."
+#: admin/app_settings.py:167
+msgid "Create a domain and a mailbox when an account is automatically created."
+msgstr ""
+"Creați un domeniu și o căsuță poștală atunci când un cont este creat automat."
-#: admin/app_settings.py:134
+#: admin/app_settings.py:173
msgid "Create an alias when a mailbox is renamed"
msgstr "Creați un alias când o cutie poștală este redenumită"
-#: admin/app_settings.py:137
+#: admin/app_settings.py:176
msgid "Create an alias using the old address when a mailbox is renamed."
-msgstr "Creați un alias utilizând vechea adresă atunci când o cutie poștală este redenumită."
+msgstr ""
+"Creați un alias utilizând vechea adresă atunci când o cutie poștală este "
+"redenumită."
-#: admin/app_settings.py:186 admin/app_settings.py:194
-#: admin/forms/account.py:331
+#: admin/app_settings.py:225 admin/app_settings.py:233
+#: admin/forms/account.py:335
msgid "Must be a positive integer"
msgstr "Trebuie să fie un număr întreg pozitiv"
-#: admin/app_settings.py:204
+#: admin/app_settings.py:243
msgid "Directory not found."
msgstr "Directorul nu a fost găsit."
-#: admin/app_settings.py:210
+#: admin/app_settings.py:249
msgid "openssl not found, please make sure it is installed."
msgstr "openssl nu a fost găsit, asigurați-vă că este instalat."
-#: admin/app_settings.py:224
+#: admin/app_settings.py:263
msgid "Define at least one authorized network / address"
msgstr "Definiți cel puțin o adresă de rețea autorizată"
-#: admin/app_settings.py:234
+#: admin/app_settings.py:273
msgid "Administration"
msgstr "Administrare"
-#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/constants.py:28 admin/forms/alias.py:43
#: admin/templates/admin/_per_domain_statistics_widget.html:7
#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Domeniu"
-#: admin/constants.py:100
+#: admin/constants.py:29
msgid "Relay domain"
msgstr "Domeniu de relay"
-#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
+#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:125
msgid "Username"
msgstr "Username"
-#: admin/forms/account.py:40
+#: admin/forms/account.py:34
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
-msgstr "Numele de utilizator. Trebuie sa fie o adresa de e-mail valida pentru tilizatori simpli sau pentru administratori care au casuță poștală."
+msgstr ""
+"Numele de utilizator. Trebuie sa fie o adresa de e-mail valida pentru "
+"tilizatori simpli sau pentru administratori care au casuță poștală."
-#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
+#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Rol"
-#: admin/forms/account.py:46
+#: admin/forms/account.py:40
msgid "Choose"
msgstr "Alege"
-#: admin/forms/account.py:47
+#: admin/forms/account.py:41
msgid "What level of permission this user will have"
msgstr "Ce nivel de permisiune va avea acest utilizator"
-#: admin/forms/account.py:50 admin/forms/domain.py:227
+#: admin/forms/account.py:44 admin/forms/domain.py:245
msgid "Random password"
msgstr "Parolă aleatorie"
-#: admin/forms/account.py:52
+#: admin/forms/account.py:46
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
-msgstr "Generați o parolă aleatorie. Dacă actualizați acest cont și bifați această casetă, va fi generată o nouă parolă."
+msgstr ""
+"Generați o parolă aleatorie. Dacă actualizați acest cont și bifați această "
+"casetă, va fi generată o nouă parolă."
-#: admin/forms/account.py:58
+#: admin/forms/account.py:52
msgid "Password"
msgstr "Parolă"
-#: admin/forms/account.py:63
+#: admin/forms/account.py:57
msgid "Confirmation"
msgstr "Confirmare"
-#: admin/forms/account.py:66
+#: admin/forms/account.py:60
msgid "Enter the same password as above, for verification."
msgstr "Introduce aceiași parolă ca deasupra, pentru verificare."
-#: admin/forms/account.py:78
+#: admin/forms/account.py:72
msgid "Enabled"
msgstr "Activat"
-#: admin/forms/account.py:172
+#: admin/forms/account.py:167
msgid "Only super administrators are allowed for this mode"
msgstr "Numai superadministratorii sunt permiși la acest mod"
-#: admin/forms/account.py:183 admin/forms/account.py:185
-#: admin/forms/domain.py:144 admin/forms/domain.py:273
-#: admin/forms/domain.py:276 admin/serializers.py:241
+#: admin/forms/account.py:178 admin/forms/account.py:180
+#: admin/forms/domain.py:162 admin/forms/domain.py:291
+#: admin/forms/domain.py:294 admin/serializers.py:287
msgid "This field is required."
msgstr "Acest câmp este necesar."
-#: admin/forms/account.py:191
+#: admin/forms/account.py:186
msgid "The two password fields didn't match."
msgstr "Cele două câmpuri de parolă nu s-au potrivit."
-#: admin/forms/account.py:204
+#: admin/forms/account.py:199
msgid "You can't disable your own account"
msgstr "Nu poți să îți ștergi propriul cont"
-#: admin/forms/account.py:225
+#: admin/forms/account.py:222
msgid "E-mail"
msgstr "E-mail"
-#: admin/forms/account.py:227
+#: admin/forms/account.py:224
msgid "Create an alias using the old address"
msgstr "Crează un alias folosind vechea adresă"
-#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/forms/account.py:229 admin/forms/domain.py:41
+#: admin/templates/admin/account_detail.html:45
#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Cotă-parte"
-#: admin/forms/account.py:234
+#: admin/forms/account.py:232
+#, fuzzy
+#| msgid ""
+#| "Quota in MB for this mailbox. Define a custom value or use domain's "
+#| "default one. Leave empty to define an unlimited value (not allowed for "
+#| "domain administrators)."
msgid ""
-"Quota in MB for this mailbox. Define a custom value or use domain's default "
-"one. Leave empty to define an unlimited value (not allowed for domain "
-"administrators)."
-msgstr "Cota în MB pentru această căsuță poștală. Definiți o valoare particularizată sau utilizați valurea prestabilită a domeniului. Lăsați gol pentru a defini o valoare nelimitată (nu este permisă pentru administratorii de domeniu)."
+"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a "
+"custom value or use domain's default one. Leave empty to define an unlimited "
+"value (not allowed for domain administrators)."
+msgstr ""
+"Cota în MB pentru această căsuță poștală. Definiți o valoare particularizată "
+"sau utilizați valurea prestabilită a domeniului. Lăsați gol pentru a defini "
+"o valoare nelimitată (nu este permisă pentru administratorii de domeniu)."
-#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/forms/account.py:242 admin/forms/domain.py:31
#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias(uri)"
@@ -274,7 +371,11 @@ msgid ""
"Alias(es) of this mailbox. Indicate only one address per input, press ENTER "
"to add a new input. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
-msgstr "Alias(uri) la această căsuță poștală. Indicați numai o singură adresă pentru fiecare intrare, apăsați ENTER pentru a adăuga o intrare nouă. Pentru a crea un alias de captură care sa prindă toate emailurile, trebuie doar să introduceți numele domeniului (@ domain.tld)."
+msgstr ""
+"Alias(uri) la această căsuță poștală. Indicați numai o singură adresă pentru "
+"fiecare intrare, apăsați ENTER pentru a adăuga o intrare nouă. Pentru a crea "
+"un alias de captură care sa prindă toate emailurile, trebuie doar să "
+"introduceți numele domeniului (@ domain.tld)."
#: admin/forms/account.py:251
msgid "Sender addresses"
@@ -285,505 +386,555 @@ msgid ""
"Additional sender address(es) for this account. The user will be allowed to "
"send emails using this address, even if it does not exist locally. Indicate "
"one address per input. Press ENTER to add a new input."
-msgstr "Adresa(e) suplimentare a expeditorului pentru acest cont. Utilizatorului i se va permite să trimită e-mailuri utilizând această adresă, chiar dacă nu există pe plan local. Indicați o adresă pentru fiecare intrare. Apăsați ENTER pentru a adăuga o intrare nouă."
+msgstr ""
+"Adresa(e) suplimentare a expeditorului pentru acest cont. Utilizatorului i "
+"se va permite să trimită e-mailuri utilizând această adresă, chiar dacă nu "
+"există pe plan local. Indicați o adresă pentru fiecare intrare. Apăsați "
+"ENTER pentru a adăuga o intrare nouă."
-#: admin/forms/account.py:309 admin/forms/alias.py:94
-#: admin/models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:88
+#: admin/models/mailbox.py:310
msgid "Domain does not exist"
msgstr "Domeniul nu există"
-#: admin/forms/account.py:341
+#: admin/forms/account.py:345
msgid "Local domain does not exist"
msgstr "Domeniul local nu există"
-#: admin/forms/account.py:345 admin/forms/account.py:353
-#: admin/forms/alias.py:97
+#: admin/forms/account.py:349 admin/forms/account.py:357
+#: admin/forms/alias.py:91
msgid "You don't have access to this domain"
msgstr "Nu aveți acces la acest domeniu"
-#: admin/forms/account.py:452
+#: admin/forms/account.py:456
msgid "Domain(s)"
msgstr "Domeniu(ii)"
-#: admin/forms/account.py:454
+#: admin/forms/account.py:458
msgid "Domain(s) that user administrates"
msgstr "Domeniu(ii) pe care utilizatorul le administrează"
-#: admin/forms/account.py:500 admin/forms/account.py:590
-#: admin/forms/domain.py:344 admin/forms/domain.py:414
+#: admin/forms/account.py:505 admin/forms/account.py:595
+#: admin/forms/domain.py:362 admin/forms/domain.py:433
msgid "General"
msgstr "General"
-#: admin/forms/account.py:504
+#: admin/forms/account.py:509
msgid "Profile"
msgstr "Profil"
-#: admin/forms/account.py:508 admin/forms/account.py:596
+#: admin/forms/account.py:513 admin/forms/account.py:601
msgid "Mail"
msgstr "Mail"
-#: admin/forms/account.py:511
+#: admin/forms/account.py:516
msgid "Permissions"
msgstr "Permisiuni"
-#: admin/forms/account.py:579
+#: admin/forms/account.py:584
msgid "Account updated"
msgstr "Cont actualizat"
-#: admin/forms/account.py:604
+#: admin/forms/account.py:609
msgid "New account"
msgstr "Cont nou"
-#: admin/forms/account.py:614
+#: admin/forms/account.py:619
msgid "Account created"
msgstr "Cont creat"
-#: admin/forms/alias.py:26
+#: admin/forms/alias.py:20
msgid "Random address"
msgstr "Adresă aleatorie"
-#: admin/forms/alias.py:29
+#: admin/forms/alias.py:23
msgid "Email address"
msgstr "Adresă email"
-#: admin/forms/alias.py:31
+#: admin/forms/alias.py:25
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
-msgstr "Adresa aliasului. Pentru a crea un alias care caputrează tot, trebuie doar să introduceți numele domeniului (@ domain.tld)."
+msgstr ""
+"Adresa aliasului. Pentru a crea un alias care caputrează tot, trebuie doar "
+"să introduceți numele domeniului (@ domain.tld)."
-#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Destinatarii"
-#: admin/forms/alias.py:39
+#: admin/forms/alias.py:33
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
-msgstr "Adresele pe care sunt asociate cu acest alias. Indicați numai o singură adresă pentru fiecare intrare, apăsați ENTER pentru a adăuga o intrare nouă."
+msgstr ""
+"Adresele pe care sunt asociate cu acest alias. Indicați numai o singură "
+"adresă pentru fiecare intrare, apăsați ENTER pentru a adăuga o intrare nouă."
-#: admin/forms/alias.py:114 admin/forms/alias.py:116
+#: admin/forms/alias.py:108 admin/forms/alias.py:110
msgid "This field is required"
msgstr "Acest câmp este necesar"
-#: admin/forms/alias.py:120
+#: admin/forms/alias.py:114
msgid "No recipient defined"
msgstr "Nu fost definit niciun destinatar"
-#: admin/forms/domain.py:36
+#: admin/forms/domain.py:28
#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Tip"
-#: admin/forms/domain.py:42
+#: admin/forms/domain.py:34
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
-msgstr "Alias (uri) la acest domeniu. Indicați un singur nume pe fiecare intrare, apăsați ENTER pentru a adăuga o intrare nouă."
+msgstr ""
+"Alias (uri) la acest domeniu. Indicați un singur nume pe fiecare intrare, "
+"apăsați ENTER pentru a adăuga o intrare nouă."
-#: admin/forms/domain.py:47
+#: admin/forms/domain.py:39
msgid "Key selector"
msgstr "Selector cheie"
-#: admin/forms/domain.py:85 admin/handlers.py:171
+#: admin/forms/domain.py:44 admin/serializers.py:30
+#, fuzzy
+#| msgid ""
+#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgid ""
+"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
+"A value of 0 means no quota."
+msgstr ""
+"Cota implicită exprimată în MB aplivată la cutiile poștale. O valuare 0 "
+"înseamnă fără cotă."
+
+#: admin/forms/domain.py:52
+#, fuzzy
+#| msgid ""
+#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgid ""
+"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
+"GB. A value of 0 means no quota."
+msgstr ""
+"Cota implicită exprimată în MB aplivată la cutiile poștale. O valuare 0 "
+"înseamnă fără cotă."
+
+#: admin/forms/domain.py:94 admin/handlers.py:161
msgid "domain alias"
msgstr "alias domeniu"
-#: admin/forms/domain.py:88 admin/forms/domain.py:155
-#: admin/forms/domain.py:163
+#: admin/forms/domain.py:97 admin/forms/domain.py:173 admin/forms/domain.py:181
#, python-format
msgid "A %s with this name already exists"
msgstr "Itemul%s cu acest nume există"
-#: admin/forms/domain.py:96 admin/serializers.py:45
+#: admin/forms/domain.py:105 admin/serializers.py:64
msgid "No authorized MX record found for this domain"
msgstr "Nu s-au gasit înregistrări MX autorizate pentru acest domeniu"
-#: admin/forms/domain.py:108
+#: admin/forms/domain.py:117
msgid "DKIM keys storage directory not configured"
msgstr "Folderul de stocare a cheilor DKIM nu este configurat"
-#: admin/forms/domain.py:129 admin/serializers.py:55
+#: admin/forms/domain.py:147 admin/serializers.py:82
msgid "Cannot be greater than domain quota"
msgstr "Nu poate fi mai mare decat cota domeniului"
-#: admin/forms/domain.py:134
+#: admin/forms/domain.py:152
msgid "You can't define an unlimited quota."
msgstr "Nu poți sa definești o cotă nelimitată"
-#: admin/forms/domain.py:155 admin/forms/domain.py:160
+#: admin/forms/domain.py:173 admin/forms/domain.py:178
msgid "domain"
msgstr "domeniu"
-#: admin/forms/domain.py:209
+#: admin/forms/domain.py:227
msgid "Create a domain administrator"
msgstr "Creați un administrator de domeniu"
-#: admin/forms/domain.py:212
+#: admin/forms/domain.py:230
msgid "Automatically create an administrator for this domain"
msgstr "Creează automat un administrator pentru acest domeniu"
-#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/forms/domain.py:235 admin/templates/admin/domain_detail.html:125
#: admin/templates/admin/domain_headers.html:3
#: admin/templates/admin/identity_headers.html:2
#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Nume"
-#: admin/forms/domain.py:220
+#: admin/forms/domain.py:238
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
-msgstr "Numele administratorului. Nu include aici si numele domeniului, el va fi automat alipit. "
+msgstr ""
+"Numele administratorului. Nu include aici si numele domeniului, el va fi "
+"automat alipit. "
-#: admin/forms/domain.py:230
+#: admin/forms/domain.py:248
msgid "Generate a random password for the administrator."
msgstr "Generează o parolă aleatorie pentru administrator."
-#: admin/forms/domain.py:236
+#: admin/forms/domain.py:254
msgid "With a mailbox"
msgstr "Cu casuță postală"
-#: admin/forms/domain.py:239
+#: admin/forms/domain.py:257
msgid "Create a mailbox for the administrator."
msgstr "Creează o căsuță postală pentru administrator. "
-#: admin/forms/domain.py:245
+#: admin/forms/domain.py:263
msgid "Create aliases"
msgstr "Crează aliasuri "
-#: admin/forms/domain.py:248
+#: admin/forms/domain.py:266
msgid "Automatically create standard aliases for this domain"
msgstr "Creează automat aliasuri standard pentru acest domeniu"
-#: admin/forms/domain.py:264
+#: admin/forms/domain.py:282
msgid "Invalid format"
msgstr "Format invalid"
-#: admin/forms/domain.py:293
+#: admin/forms/domain.py:311
#, python-format
msgid "User '%s' already exists"
msgstr "Utilizatorul '%s' exista deja"
-#: admin/forms/domain.py:404
+#: admin/forms/domain.py:423
msgid "Domain modified"
msgstr "Domeniu modficat"
-#: admin/forms/domain.py:425
+#: admin/forms/domain.py:444
msgid "Options"
msgstr "Opțiuni"
-#: admin/forms/domain.py:433
+#: admin/forms/domain.py:452
msgid "New domain"
msgstr "Domeniu nou"
-#: admin/forms/domain.py:446
+#: admin/forms/domain.py:465
msgid "Domain created"
msgstr "Domeniu creat"
-#: admin/forms/export.py:9
-msgid "File name"
-msgstr "Nume fișier"
-
-#: admin/forms/export.py:15 admin/forms/import_.py:15
+#: admin/forms/export.py:9 admin/forms/import_.py:13
msgid "Separator"
msgstr "Sepatator"
-#: admin/forms/forward.py:14
+#: admin/forms/forward.py:12
msgid "Recipient(s)"
msgstr "Destinatar(i)"
-#: admin/forms/forward.py:18
+#: admin/forms/forward.py:16
msgid "Indicate one or more recipients separated by a ','"
msgstr "Indica unul sau mai mulți destinatari separați prin ','"
-#: admin/forms/forward.py:21
+#: admin/forms/forward.py:19
msgid "Keep local copies"
msgstr "Ține o copii locale"
-#: admin/forms/forward.py:24
+#: admin/forms/forward.py:22
msgid "Forward messages and store copies into your local mailbox"
-msgstr "Redirecționează mesajele și stochează copiile în căsuța postală locală "
+msgstr ""
+"Redirecționează mesajele și stochează copiile în căsuța postală locală "
-#: admin/forms/import_.py:13
+#: admin/forms/import_.py:11
msgid "Select a file"
msgstr "Selectează un fișier"
-#: admin/forms/import_.py:21
+#: admin/forms/import_.py:19
msgid "Continue on error"
msgstr "Continuă și dacă apar erori"
-#: admin/forms/import_.py:22
+#: admin/forms/import_.py:20
msgid "Don't treat duplicated objects as error"
msgstr "Nu trata obiecte dublicat ca eroare"
-#: admin/forms/import_.py:40
+#: admin/forms/import_.py:38
msgid "Crypt passwords"
msgstr "Encriptează parola"
-#: admin/forms/import_.py:42
+#: admin/forms/import_.py:40
msgid "Check this option if passwords contained in your file are not crypted"
-msgstr "Bifeaza această opțune dacă parolele conținute în fșierul tău nu sunt encriptate"
+msgstr ""
+"Bifeaza această opțune dacă parolele conținute în fșierul tău nu sunt "
+"encriptate"
-#: admin/handlers.py:218
+#: admin/handlers.py:210
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Importul de cont a esuat (%s): domeniul nu există"
-#: admin/handlers.py:231 admin/models/mailbox.py:342
+#: admin/handlers.py:223 admin/models/mailbox.py:338
msgid "Mailbox {} already exists"
msgstr "Căsuța poștală {} deja există"
-#: admin/handlers.py:239
+#: admin/handlers.py:231
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Importul de cont a esuat (%s): valuare de cotă incorectă"
-#: admin/handlers.py:279
+#: admin/handlers.py:271
#: admin/templates/admin/_global_statistics_widget.html:17
#: admin/templates/admin/_per_domain_statistics_widget.html:8
#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Identități"
-#: admin/handlers.py:295 admin/templates/admin/forward.html:2
+#: admin/handlers.py:287 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Redirecționează"
-#: admin/lib.py:44
+#: admin/lib.py:38
msgid "A mailbox is required"
msgstr "O căsuță poștală este necesară"
-#: admin/lib.py:134
+#: admin/lib.py:128
msgid "You are not allowed to import domains"
msgstr "Nu ești autorizat să imporți domenii"
-#: admin/lib.py:145
+#: admin/lib.py:139
msgid "You are not allowed to import domain aliases."
msgstr "Nu ești autorizat să imporți aliasuri de domenii"
-#: admin/lib.py:183 admin/tests/test_mx.py:122
-#, python-format
-msgid "No DNS records found for %s"
+#: admin/lib.py:189 admin/tests/test_mx.py:127 admin/tests/test_mx.py:136
+#: admin/tests/test_mx.py:139
+#, fuzzy, python-format
+#| msgid "No DNS records found for %s"
+msgid "No DNS record found for %s"
msgstr "Nu s-au găsit înregistrări DNS pentru %s"
-#: admin/lib.py:185 admin/tests/test_mx.py:125
-#, python-format
-msgid "No MX record for %s"
+#: admin/lib.py:192
+#, fuzzy, python-format
+#| msgid "No MX record for %s"
+msgid "No %(type)s record for %(name)s"
msgstr "Nu există înregidtrări MX pentru %s"
-#: admin/lib.py:187 admin/tests/test_mx.py:126
+#: admin/lib.py:196 admin/tests/test_mx.py:131
msgid "No working name servers found"
msgstr "Nu s-au găsit NS-uri funcționale"
-#: admin/lib.py:190 admin/tests/test_mx.py:128
+#: admin/lib.py:199 admin/tests/test_mx.py:133
#, python-format
msgid "DNS resolution timeout, unable to query %s at the moment"
-msgstr "Timeout întâmpinat la rezolvarea cererii DNS, imposibilă de interogat %s în acest moment"
+msgstr ""
+"Timeout întâmpinat la rezolvarea cererii DNS, imposibilă de interogat %s în "
+"acest moment"
-#: admin/lib.py:201 admin/tests/test_mx.py:131
-#, python-format
-msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
-msgstr "Nu s-a reușit căutarea adreselor IP pentru %(domain)s;%(error)s"
-
-#: admin/lib.py:212 admin/tests/test_mx.py:134
-#, python-format
-msgid "Invalid IP address format for %(domain)s; %(addr)s"
+#: admin/lib.py:227
+#, fuzzy, python-brace-format
+#| msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgid "Invalid IP address format for {domain}; {addr}"
msgstr "Format invalid de IP pentru %(domain)s; %(addr)s "
-#: admin/management/commands/subcommands/_mx.py:136
+#: admin/management/commands/subcommands/_import.py:93
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_import.py:105
+#, python-format
+msgid "Reading CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_import.py:116
+#, python-format
+msgid "Unable to decode CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:132
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr "[modoboa] Problemă(e) DNSBL pentru domeniul {} "
-#: admin/management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:152
msgid "Domain {} has no MX record"
msgstr "Domeniul {} nu are înregistrări MX"
-#: admin/management/commands/subcommands/_mx.py:167
+#: admin/management/commands/subcommands/_mx.py:163
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr "Înregistrarea MX pentru domeniul {0} este invalidă: {1}"
-#: admin/management/commands/subcommands/_mx.py:184
+#: admin/management/commands/subcommands/_mx.py:180
msgid "[modoboa] MX issue(s) for domain {}"
msgstr "[modoboa] Problemă(e) MX pentru domeniul {}"
-#: admin/models/alias.py:35 admin/models/mailbox.py:97
+#: admin/models/alias.py:32 admin/models/mailbox.py:95
msgid "address"
msgstr "adresă"
-#: admin/models/alias.py:37
+#: admin/models/alias.py:34
msgid "The alias address."
msgstr "Adresă alias."
-#: admin/models/alias.py:42 admin/models/domain.py:48
-#: admin/models/domain_alias.py:47
+#: admin/models/alias.py:39 admin/models/domain.py:37
+#: admin/models/domain_alias.py:42
msgid "enabled"
msgstr "activat"
-#: admin/models/alias.py:43 admin/models/domain_alias.py:48
+#: admin/models/alias.py:40 admin/models/domain_alias.py:43
msgid "Check to activate this alias"
msgstr "Bifează pentru a activa acest alias"
-#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
+#: admin/models/alias.py:45 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr "Descriere"
-#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
+#: admin/models/alias.py:47 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr "Expiră la"
-#: admin/models/alias.py:93
+#: admin/models/alias.py:87
msgid "alias"
msgstr "alias"
-#: admin/models/alias.py:125
+#: admin/models/alias.py:119
msgid "Invalid address"
msgstr "Adresă invalidă"
-#: admin/models/alias.py:146
+#: admin/models/alias.py:140
msgid "Local recipient {}@{} not found"
msgstr "Destinatar local {}@{} nu poate fi găsit"
-#: admin/models/alias.py:176
+#: admin/models/alias.py:170
#, python-format
msgid "Invalid line: %s"
msgstr "Linie invalidă: %s"
-#: admin/models/alias.py:182
+#: admin/models/alias.py:176
#, python-format
msgid "Domain '%s' does not exist"
msgstr "Domeniul '%s' nu există"
-#: admin/models/domain.py:30 admin/models/domain_alias.py:39
+#: admin/models/domain.py:27 admin/models/domain_alias.py:34
msgid "name"
msgstr "nume"
-#: admin/models/domain.py:31
+#: admin/models/domain.py:28
msgid "The domain name"
msgstr "Numele domeniului"
-#: admin/models/domain.py:35
-msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
-msgstr "Cota în MB impărțită între cutiile poștale. O valuare 0 înseamnă fără cotă."
-
-#: admin/models/domain.py:43
-msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
-msgstr "Cota implicită exprimată în MB aplivată la cutiile poștale. O valuare 0 înseamnă fără cotă."
-
-#: admin/models/domain.py:49
+#: admin/models/domain.py:38
msgid "Check to activate this domain"
msgstr "Bifează pentru a activa domeniul"
-#: admin/models/domain.py:54
+#: admin/models/domain.py:43
msgid "Enable DNS checks"
msgstr "Activează verificările DNS"
-#: admin/models/domain.py:55
+#: admin/models/domain.py:44
msgid "Check to enable DNS checks for this domain"
msgstr "Bifează pentru a activa verificările DNS pentru acest domeniu"
-#: admin/models/domain.py:62
+#: admin/models/domain.py:51
msgid "Enable DKIM signing"
msgstr "Activează semnarea DKIM"
-#: admin/models/domain.py:64
+#: admin/models/domain.py:53
msgid ""
"If you activate this feature, a DKIM key will be generated for this domain."
-msgstr "Dacă activezi această facilitate, o chieie DKIM se va genera pt acest domeniu."
+msgstr ""
+"Dacă activezi această facilitate, o chieie DKIM se va genera pt acest "
+"domeniu."
-#: admin/models/domain.py:70
+#: admin/models/domain.py:59
msgid "Key length"
msgstr "Mărime cheie"
-#: admin/models/domain.py:285 admin/models/domain_alias.py:74
+#: admin/models/domain.py:312 admin/models/domain_alias.py:67
msgid "Invalid line"
msgstr "Linie invalidă"
-#: admin/models/domain.py:295
+#: admin/models/domain.py:322
msgid "No authorized MX record found for domain {}"
msgstr "Nu s-au gasit înregistrări MX autorizate pentru acest domeniu {}"
-#: admin/models/domain.py:302
+#: admin/models/domain.py:329
msgid "Invalid quota value for domain '{}'"
msgstr "Valuare de cotă invalidă pentru domeniul '{}'"
-#: admin/models/domain.py:309
+#: admin/models/domain.py:336
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr "Valuare implicită de cotă invalidă pentru domeniul '{}'"
-#: admin/models/domain.py:314
+#: admin/models/domain.py:341
msgid "Default mailbox quota cannot be greater than domain quota"
-msgstr "Valuarea de cotă implicită a unei cutii poștale nu poate fi mai mare decât cota de domeniu"
+msgstr ""
+"Valuarea de cotă implicită a unei cutii poștale nu poate fi mai mare decât "
+"cota de domeniu"
-#: admin/models/domain_alias.py:40
+#: admin/models/domain_alias.py:35
msgid "The alias name"
msgstr "Numele aliasului"
-#: admin/models/domain_alias.py:42
+#: admin/models/domain_alias.py:37
msgid "target"
msgstr "Țintă"
-#: admin/models/domain_alias.py:43
+#: admin/models/domain_alias.py:38
msgid "The domain this alias points to"
msgstr "Domeniul către care indică acest alias"
-#: admin/models/domain_alias.py:83
+#: admin/models/domain_alias.py:76
#, python-format
msgid "Unknown domain %s"
msgstr "Domeniu necunoscut %s"
-#: admin/models/mailbox.py:99
+#: admin/models/mailbox.py:97
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Adresa de email (fără partea @domeniu)"
-#: admin/models/mailbox.py:165
+#: admin/models/mailbox.py:160
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Nu s-a reușit preluarea locației pentru cutia poștală (%s)"
-#: admin/models/mailbox.py:258
+#: admin/models/mailbox.py:253
msgid "A quota is required"
msgstr "O cotă este necesară"
-#: admin/models/mailbox.py:264
+#: admin/models/mailbox.py:259
msgid "Domain quota exceeded"
msgstr "Cota pentru domeniu a fost depașită"
-#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
+#: admin/serializers.py:37
+msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgstr ""
+"Cota implicită exprimată în MB aplivată la cutiile poștale. O valuare 0 "
+"înseamnă fără cotă."
+
+#: admin/serializers.py:107 admin/serializers.py:312 admin/serializers.py:410
msgid "Permission denied."
msgstr "Permisiune refuzată."
-#: admin/serializers.py:118
+#: admin/serializers.py:158
msgid ""
"List of administered domains (resellers and domain administrators only)."
-msgstr "Lista domenilor administrate (doar reselleri și administratori de domeniu)"
+msgstr ""
+"Lista domenilor administrate (doar reselleri și administratori de domeniu)"
-#: admin/serializers.py:218
+#: admin/serializers.py:262
msgid "Not allowed for this role."
msgstr "Ne permis pentru acest rol."
-#: admin/serializers.py:228
+#: admin/serializers.py:274
msgid "Must be equal to mailbox full_address"
msgstr "Trebuie să fie egal cu mailbox full_address"
-#: admin/serializers.py:253
+#: admin/serializers.py:299
msgid "Local domain {} does not exist"
msgstr "Domeniu local {} nu există"
-#: admin/serializers.py:347
+#: admin/serializers.py:397
msgid "A list of recipient"
msgstr "O listă de destinatari"
-#: admin/serializers.py:358
+#: admin/serializers.py:408
msgid "Domain not found."
msgstr "Domeniu negăsit"
-#: admin/serializers.py:407
+#: admin/serializers.py:457
msgid "You don't have access to this domain."
msgstr "Nu ai acces la acest domeniu."
-#: admin/serializers.py:415
+#: admin/serializers.py:465
msgid "You don't have access to this mailbox."
msgstr "Nu ai acces la această cutie postală"
@@ -814,6 +965,19 @@ msgstr "Dezactivat"
msgid "Awaiting checks"
msgstr "Se așteaptă verificările"
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+#, fuzzy
+#| msgid "No DNS records found for %s"
+msgid "No record found"
+msgstr "Nu s-au găsit înregistrări DNS pentru %s"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
+msgstr ""
+
#: admin/templates/admin/_global_statistics_widget.html:4
msgid "Global statistics"
msgstr "Statistici globale"
@@ -920,7 +1084,8 @@ msgid "Address"
msgstr "Adresă"
#: admin/templates/admin/dnsbl_domain_detail.html:12
-#: admin/templates/admin/domain_detail.html:96
+#: admin/templates/admin/domain_detail.html:100
+#: admin/templates/admin/messages_log_headers.html:6
msgid "Status"
msgstr "Statut"
@@ -952,11 +1117,8 @@ msgstr "Alias-uri cutii poștale"
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domain_detail.html:65
-#: admin/templates/admin/domain_general_form.html:4
-#: admin/templates/admin/domain_general_form.html:5
#: admin/templates/admin/domains_quotas.html:11
#: admin/templates/admin/domains_quotas.html:12
-#: admin/templates/admin/mailform.html:7
#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
@@ -976,32 +1138,36 @@ msgstr "utilizat"
msgid "allocated"
msgstr "alocat"
-#: admin/templates/admin/domain_detail.html:91
+#: admin/templates/admin/domain_detail.html:92
msgid "DNS"
msgstr "DNS"
-#: admin/templates/admin/domain_detail.html:103
+#: admin/templates/admin/domain_detail.html:107
msgid "DKIM key"
msgstr "Cheie DKIM"
-#: admin/templates/admin/domain_detail.html:107
+#: admin/templates/admin/domain_detail.html:111
msgid "Show key"
msgstr "Arată cheia"
-#: admin/templates/admin/domain_detail.html:110
+#: admin/templates/admin/domain_detail.html:113
+msgid "Generate new key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:115
msgid "Not generated"
msgstr "Negenerat"
-#: admin/templates/admin/domain_detail.html:117
+#: admin/templates/admin/domain_detail.html:122
msgid "Administrators"
msgstr "Administratori"
-#: admin/templates/admin/domain_detail.html:129
-#: admin/templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:134
+#: admin/templatetags/admin_tags.py:265
msgid "Remove this permission"
msgstr "Elimină această permisie"
-#: admin/templates/admin/domain_detail.html:134
+#: admin/templates/admin/domain_detail.html:139
msgid "No domain administrator defined yet."
msgstr "Nu există un domeniu de administrator definit incă"
@@ -1055,7 +1221,7 @@ msgstr "dezactivat"
msgid "Automatically forward emails to another address"
msgstr "Redirecționează automat emailuri la altă adresă"
-#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:87
msgid "Update"
msgstr "Actualizează"
@@ -1080,17 +1246,31 @@ msgid ""
"verify recipients
The first element of each line is "
"mandatory and must be equal to one of the previous values.
You can "
"use a different character as separator.
"
-msgstr "Furnizați un fișier CSV unde liniile respectă unul dintre următoarele formate: - domain; name; quota; default mailbox quota; enabled
- domainalias; name; targeted domain; enabled
- relaydomain; name; target host; target port; service; enabled; verify recipients
Primul element al fiecărei linii este obligatoriu și trebuie să fie egal cu una dintre valorile anterioare. Puteți utiliza un caracter diferit ca separator."
+msgstr ""
+"Furnizați un fișier CSV unde liniile respectă unul dintre următoarele "
+"formate: - domain; name; quota; default mailbox quota; enabled "
+"em>
- domainalias; name; targeted domain; enabled"
+"li>
- relaydomain; name; target host; target port; service; enabled; "
+"verify recipients
Primul element al fiecărei linii este "
+"obligatoriu și trebuie să fie egal cu una dintre valorile anterioare. Puteți "
+"utiliza un caracter diferit ca separator."
#: admin/templates/admin/import_identities_form.html:6
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
-"- account; loginname; password; first name; last name; enabled; group;"
-" address; quota; [, domain, ...]
- alias; address; enabled; "
+"
- account; loginname; password; first name; last name; enabled; group; "
+"address; quota; [, domain, ...]
- alias; address; enabled; "
"recipient; recipient; ...
The first element of each line "
-"is mandatory and must be equal to one of the previous values.
You can"
-" use a different character as separator.
"
-msgstr "Furnizați un fișier CSV unde liniile respectă unul dintre următoarele formate:- account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
- alias; address; enabled; recipient; recipient; ...
Primul element al fiecărei linii este obligatoriu și trebuie să fie egal cu una dintre valorile anterioare.
Puteți utiliza un caracter diferit ca separator.
"
+"is mandatory and must be equal to one of the previous values. You can "
+"use a different character as separator.
"
+msgstr ""
+"Furnizați un fișier CSV unde liniile respectă unul dintre următoarele "
+"formate:- account; loginname; password; first name; last name; "
+"enabled; group; address; quota; [, domain, ...]
- alias; "
+"address; enabled; recipient; recipient; ...
Primul element "
+"al fiecărei linii este obligatoriu și trebuie să fie egal cu una dintre "
+"valorile anterioare.
Puteți utiliza un caracter diferit ca separator."
+"
"
#: admin/templates/admin/importform.html:6
msgid "Help"
@@ -1112,13 +1292,30 @@ msgstr "Alege o valuare"
msgid "Use domain default value"
msgstr "Folosește valuarea implicită a domeniului"
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:3
+msgid "Date"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:4
+msgid "From"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:5
+msgid "To"
+msgstr ""
+
#: admin/templates/admin/mx_domain_detail.html:11
msgid "Updated"
msgstr "Actualizat"
#: admin/templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
-msgstr "Acest IP nu se potrivește cu nicio înregistrare MX definită în parametrii"
+msgstr ""
+"Acest IP nu se potrivește cu nicio înregistrare MX definită în parametrii"
#: admin/templates/admin/mx_domain_detail.html:36
msgid "No MX record found for this domain."
@@ -1129,153 +1326,205 @@ msgstr "Nu există înregistrări MX pentru acest domeniu."
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
"providers:"
-msgstr "Modoboa a detectat ca domeniul %(domain)s este listat sub DNSBL la urmatorii furnizori DNSBL:"
+msgstr ""
+"Modoboa a detectat ca domeniul %(domain)s este listat sub DNSBL la urmatorii "
+"furnizori DNSBL:"
#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
"The domain's reputation will be affected and there is a chance that emails "
"coming from it are considered as spam. You should contact those providers "
"and ask them to unlist detected IP address(es)."
-msgstr "Reputația domeniului va fi afectată și există șansa ca e-mailurile provenite de la acestă adresă să fie considerate spam. Ar trebui să contactați acești furnizori și să îi solicitați să elimine adresele(sau adresa) IP detectate."
+msgstr ""
+"Reputația domeniului va fi afectată și există șansa ca e-mailurile provenite "
+"de la acestă adresă să fie considerate spam. Ar trebui să contactați acești "
+"furnizori și să îi solicitați să elimine adresele(sau adresa) IP detectate."
#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
-msgstr "Modoboa a detectat ca domeniul %(domain)s nu are înregistrări MX valide: "
+msgstr ""
+"Modoboa a detectat ca domeniul %(domain)s nu are înregistrări MX valide: "
#: admin/templates/admin/searchform.html:6
msgid "Search"
msgstr "Caută"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_m"
msgstr "activat_m"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_f"
msgstr "activat_f"
-#: admin/templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:45
msgid "List domains"
msgstr "Listă domenii"
-#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:50 admin/templatetags/admin_tags.py:105
msgid "List quotas"
msgstr "Listă cote"
-#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
-#: admin/views/import_.py:89 admin/views/import_.py:111
+#: admin/templatetags/admin_tags.py:62 admin/templatetags/admin_tags.py:110
+#: admin/views/import_.py:85 admin/views/import_.py:107
msgid "Import"
msgstr "Import"
-#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
-#: admin/views/export.py:43 admin/views/export.py:71
+#: admin/templatetags/admin_tags.py:68 admin/templatetags/admin_tags.py:116
+#: admin/views/export.py:39 admin/views/export.py:67
msgid "Export"
msgstr "Export"
-#: admin/templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:100
msgid "List identities"
msgstr "Listare identități"
-#: admin/templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:135
msgid "View the domain's identities"
msgstr "Afișare identități domeniului"
-#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
-#: admin/templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:141 admin/templatetags/admin_tags.py:184
+#: admin/templatetags/admin_tags.py:197
msgid "Edit {}"
msgstr "Editează {}"
-#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
-#: admin/templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:151 admin/templatetags/admin_tags.py:188
+#: admin/templatetags/admin_tags.py:202
#, python-format
msgid "Delete %s?"
msgstr "Șterge %s?"
-#: admin/views/alias.py:35
+#: admin/tests/test_mx.py:130
+#, python-format
+msgid "No MX record for %s"
+msgstr "Nu există înregidtrări MX pentru %s"
+
+#: admin/tests/test_mx.py:142 admin/tests/test_mx.py:145
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr "Format invalid de IP pentru %(domain)s; %(addr)s "
+
+#: admin/views/alias.py:29
msgid "Alias with this name already exists"
msgstr "Un alias cu acelasi nume deja există"
-#: admin/views/alias.py:60
+#: admin/views/alias.py:54
msgid "Create"
msgstr "Creează"
-#: admin/views/alias.py:72
+#: admin/views/alias.py:66
msgid "New alias"
msgstr "Alias nou"
-#: admin/views/alias.py:73
+#: admin/views/alias.py:67
msgid "Alias created"
msgstr "Alias creat"
-#: admin/views/alias.py:85
+#: admin/views/alias.py:79
msgid "Alias modified"
msgstr "Alias modificat"
-#: admin/views/alias.py:109
+#: admin/views/alias.py:103
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] "Alias șters"
msgstr[1] "Aliasuri șterse"
msgstr[2] "Aliasuri șterse"
-#: admin/views/dns.py:32
+#: admin/views/dns.py:28
msgid "MX records of {}"
msgstr "Înregistrări MX ale {}"
-#: admin/views/dns.py:55
+#: admin/views/dns.py:51
msgid "DNSBL summary for {}"
msgstr "Sumar DNSBL pentru {}"
-#: admin/views/domain.py:188
+#: admin/views/domain.py:202
msgid "You can't delete your own domain"
msgstr "Nu poți să îți ștergi propriul domeniu"
-#: admin/views/domain.py:191
+#: admin/views/domain.py:205
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Domeniu șters"
msgstr[1] "Domenii șterse"
msgstr[2] "Domenii șterse"
-#: admin/views/export.py:42
+#: admin/views/export.py:38
msgid "Export identities"
msgstr "Exportă identități"
-#: admin/views/export.py:70
+#: admin/views/export.py:66
msgid "Export domains"
msgstr "Exportă domenii"
-#: admin/views/identity.py:113 admin/views/identity.py:206
-#: admin/views/identity.py:211
+#: admin/views/identity.py:107 admin/views/identity.py:201
+#: admin/views/identity.py:206
msgid "Invalid request"
msgstr "Cerere invalidă"
-#: admin/views/identity.py:196
+#: admin/views/identity.py:191
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Cont șters"
msgstr[1] "Conturi șterse"
msgstr[2] "Conturi șterse"
-#: admin/views/import_.py:65
+#: admin/views/import_.py:61
#, python-format
msgid "Object already exists: %s"
msgstr "Obiectul deja există: %s"
-#: admin/views/import_.py:69
+#: admin/views/import_.py:65
#, python-format
msgid "%d objects imported successfully"
msgstr "%d obiecte importate cu succes"
-#: admin/views/import_.py:88
+#: admin/views/import_.py:84
msgid "Import domains"
msgstr "Importă domenii"
-#: admin/views/import_.py:110
+#: admin/views/import_.py:106
msgid "Import identities"
msgstr "Importă identități"
-#: admin/views/user.py:40
+#: admin/views/user.py:36
msgid "Forward updated"
msgstr "Redirecționare actualizată"
+
+#~ msgid "File name"
+#~ msgstr "Nume fișier"
+
+#, fuzzy
+#~| msgid "No DNS records found for %s"
+#~ msgid "No {type} record found for MX {mx}"
+#~ msgstr "Nu s-au găsit înregistrări DNS pentru %s"
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No A record found for MX %(domain)s"
+#~ msgstr "Nu există înregistrări MX pentru acest domeniu."
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No AAAA record found for MX %(domain)s"
+#~ msgstr "Nu există înregistrări MX pentru acest domeniu."
+
+#~ msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
+#~ msgstr ""
+#~ "Cota în MB impărțită între cutiile poștale. O valuare 0 înseamnă fără "
+#~ "cotă."
+
+#, fuzzy
+#~| msgid "No DNS records found for %s"
+#~ msgid "No DNS records found without MX for %s"
+#~ msgstr "Nu s-au găsit înregistrări DNS pentru %s"
+
+#, fuzzy
+#~| msgid "No DNS records found for %s"
+#~ msgid "No DNS records found without MX for %(domain)s"
+#~ msgstr "Nu s-au găsit înregistrări DNS pentru %s"
+
+#~ msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+#~ msgstr "Nu s-a reușit căutarea adreselor IP pentru %(domain)s;%(error)s"
diff --git a/modoboa/admin/locale/ro_RO/LC_MESSAGES/djangojs.po b/modoboa/admin/locale/ro_RO/LC_MESSAGES/djangojs.po
index 9abc7c5a5..e99908f06 100644
--- a/modoboa/admin/locale/ro_RO/LC_MESSAGES/djangojs.po
+++ b/modoboa/admin/locale/ro_RO/LC_MESSAGES/djangojs.po
@@ -1,53 +1,58 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Andrei-Ilie Olteanu , 2018
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-04 22:08+0100\n"
+"POT-Creation-Date: 2020-03-09 16:48+0100\n"
"PO-Revision-Date: 2018-06-12 11:38+0000\n"
"Last-Translator: Andrei-Ilie Olteanu \n"
-"Language-Team: Romanian (Romania) (http://www.transifex.com/tonio/modoboa/language/ro_RO/)\n"
+"Language-Team: Romanian (Romania) (http://www.transifex.com/tonio/modoboa/"
+"language/ro_RO/)\n"
+"Language: ro_RO\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: ro_RO\n"
-"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
+"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
+"2:1));\n"
-#: admin/static/admin/js/admin.js:131
+#: admin/static/admin/js/admin.js:129 admin/static/admin/js/admin.js:174
msgid "No more domain to show"
msgstr "Nu mai sunt domenii de afișat"
-#: admin/static/admin/js/admin.js:150
+#: admin/static/admin/js/admin.js:149
msgid "Do not delete domain directory"
msgstr "Nu sterge directorul pentru domeniu"
-#: admin/static/admin/js/admin.js:152
+#: admin/static/admin/js/admin.js:151
msgid "This operation will remove ALL data associated to this domain."
-msgstr "Această operațiune va șterge toată informația asociată cu acest domeniu."
+msgstr ""
+"Această operațiune va șterge toată informația asociată cu acest domeniu."
-#: admin/static/admin/js/admin.js:153
+#: admin/static/admin/js/admin.js:152
msgid ""
"This operation will remove all data associated to this domain, excepting "
"accounts."
-msgstr "Această operațiune va șterge toată informația asociată cu acest domeniu, cu excepția conturilor."
+msgstr ""
+"Această operațiune va șterge toată informația asociată cu acest domeniu, cu "
+"excepția conturilor."
-#: admin/static/admin/js/admin.js:236
+#: admin/static/admin/js/admin.js:177 admin/static/admin/js/admin.js:433
+msgid "No more quota to show"
+msgstr "Nu mai există cote de afișat"
+
+#: admin/static/admin/js/admin.js:306
msgid "No domain administrator defined"
msgstr "Nu există configurat un administartor de domeniu"
-#: admin/static/admin/js/admin.js:291 admin/static/admin/js/admin.js:359
+#: admin/static/admin/js/admin.js:362 admin/static/admin/js/admin.js:430
msgid "No more identity to show"
msgstr "Nu mai sunt identități de afișat"
-#: admin/static/admin/js/admin.js:333
+#: admin/static/admin/js/admin.js:404
msgid "Do not delete mailbox directory"
msgstr "Nu sterge directorul mailbox"
-
-#: admin/static/admin/js/admin.js:362
-msgid "No more quota to show"
-msgstr "Nu mai există cote de afișat"
diff --git a/modoboa/admin/locale/ru/LC_MESSAGES/django.po b/modoboa/admin/locale/ru/LC_MESSAGES/django.po
index 37751dc67..1fc028018 100644
--- a/modoboa/admin/locale/ru/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/ru/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
"PO-Revision-Date: 2013-12-03 09:35+0000\n"
"Last-Translator: Antoine Nguyen \n"
"Language-Team: Russian (http://www.transifex.com/projects/p/modoboa/language/"
@@ -19,76 +19,120 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/api.py:142
+msgid "Here is your new Modoboa password: {}"
+msgstr ""
+
+#: admin/app_settings.py:20 admin/handlers.py:261
#: admin/templates/admin/_global_statistics_widget.html:11
#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Домены"
-#: admin/app_settings.py:25
+#: admin/app_settings.py:23
msgid "Enable MX checks"
msgstr ""
-#: admin/app_settings.py:28
+#: admin/app_settings.py:26
msgid "Check that every domain has a valid MX record"
msgstr ""
-#: admin/app_settings.py:33
+#: admin/app_settings.py:31
msgid "Valid MXs"
msgstr ""
-#: admin/app_settings.py:36
+#: admin/app_settings.py:34
msgid ""
"A list of IP or network address every MX record should match. A warning will "
"be sent if a record does not respect it."
msgstr ""
-#: admin/app_settings.py:44
+#: admin/app_settings.py:42
msgid "New domains must use authorized MX(s)"
msgstr ""
-#: admin/app_settings.py:47
+#: admin/app_settings.py:45
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
msgstr ""
-#: admin/app_settings.py:53
+#: admin/app_settings.py:51
+msgid "Enable SPF checks"
+msgstr ""
+
+#: admin/app_settings.py:54
+msgid "Check if every domain has a valid SPF record"
+msgstr ""
+
+#: admin/app_settings.py:59
+msgid "Enable DKIM checks"
+msgstr ""
+
+#: admin/app_settings.py:62
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr ""
+
+#: admin/app_settings.py:68
+msgid "Enable DMARC checks"
+msgstr ""
+
+#: admin/app_settings.py:71
+msgid "Check if every domain has a valid DMARC record"
+msgstr ""
+
+#: admin/app_settings.py:76
+msgid "Enable autoconfig checks"
+msgstr ""
+
+#: admin/app_settings.py:79
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr ""
+
+#: admin/app_settings.py:84
msgid "Enable DNSBL checks"
msgstr ""
-#: admin/app_settings.py:56
+#: admin/app_settings.py:87
msgid "Check every domain against major DNSBL providers"
msgstr ""
-#: admin/app_settings.py:61
+#: admin/app_settings.py:92
+msgid "Custom DNS server"
+msgstr ""
+
+#: admin/app_settings.py:95
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr ""
+
+#: admin/app_settings.py:100
msgid "DKIM keys storage directory"
msgstr ""
-#: admin/app_settings.py:64
+#: admin/app_settings.py:103
msgid ""
"Absolute path of the directory where DKIM private keys will be stored. Make "
"sure this directory belongs to root user and is not readable by the outside "
"world."
msgstr ""
-#: admin/app_settings.py:72
+#: admin/app_settings.py:111
msgid "Default DKIM key length"
msgstr ""
-#: admin/app_settings.py:76
+#: admin/app_settings.py:115
msgid "Default length in bits for newly generated DKIM keys."
msgstr ""
-#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
+#: admin/app_settings.py:119 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Почтовые ящики"
-#: admin/app_settings.py:83
+#: admin/app_settings.py:122
msgid "Handle mailboxes on filesystem"
msgstr "Обрабатывать почтовые ящики на диске"
-#: admin/app_settings.py:86
+#: admin/app_settings.py:125
#, fuzzy
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
@@ -97,190 +141,196 @@ msgstr ""
"Удалять или переименовывать почтовые ящики на диске, если они удалены или "
"переименованы в Modoboa"
-#: admin/app_settings.py:92
+#: admin/app_settings.py:131
msgid "Mailboxes owner"
msgstr "Почтовые ящики закончились"
-#: admin/app_settings.py:95
+#: admin/app_settings.py:134
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "UNIX аккаунт владельца почтового ящика на диске"
-#: admin/app_settings.py:100
+#: admin/app_settings.py:139
msgid "Default domain quota"
msgstr ""
-#: admin/app_settings.py:103
+#: admin/app_settings.py:142
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/app_settings.py:148 admin/forms/domain.py:49 admin/models/domain.py:33
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr ""
-#: admin/app_settings.py:112
+#: admin/app_settings.py:151
msgid ""
-"Default mailbox quota (in MB) applied to freshly created domains with no "
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
"value specified. A value of 0 means no quota."
msgstr ""
-#: admin/app_settings.py:118
+#: admin/app_settings.py:157
msgid "Automatic account removal"
msgstr "Автоматическое удаление аккаунта"
-#: admin/app_settings.py:121
+#: admin/app_settings.py:160
msgid "When a mailbox is removed, also remove the associated account"
msgstr "При удалении почтового ящика, так же удалять и аккаунт владельца"
-#: admin/app_settings.py:125
+#: admin/app_settings.py:164
#, fuzzy
msgid "Automatic domain/mailbox creation"
msgstr "Домен создан"
-#: admin/app_settings.py:128
+#: admin/app_settings.py:167
msgid "Create a domain and a mailbox when an account is automatically created."
msgstr ""
-#: admin/app_settings.py:134
+#: admin/app_settings.py:173
msgid "Create an alias when a mailbox is renamed"
msgstr ""
-#: admin/app_settings.py:137
+#: admin/app_settings.py:176
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr ""
-#: admin/app_settings.py:186 admin/app_settings.py:194
-#: admin/forms/account.py:331
+#: admin/app_settings.py:225 admin/app_settings.py:233
+#: admin/forms/account.py:335
msgid "Must be a positive integer"
msgstr ""
-#: admin/app_settings.py:204
+#: admin/app_settings.py:243
#, fuzzy
#| msgid "Domain modified"
msgid "Directory not found."
msgstr "Домен изменен"
-#: admin/app_settings.py:210
+#: admin/app_settings.py:249
msgid "openssl not found, please make sure it is installed."
msgstr ""
-#: admin/app_settings.py:224
+#: admin/app_settings.py:263
msgid "Define at least one authorized network / address"
msgstr ""
-#: admin/app_settings.py:234
+#: admin/app_settings.py:273
msgid "Administration"
msgstr ""
-#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/constants.py:28 admin/forms/alias.py:43
#: admin/templates/admin/_per_domain_statistics_widget.html:7
#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr ""
-#: admin/constants.py:100
+#: admin/constants.py:29
#, fuzzy
#| msgid "New domain"
msgid "Relay domain"
msgstr "Новый домен"
-#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
+#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:125
msgid "Username"
msgstr "Логин пользователя"
-#: admin/forms/account.py:40
+#: admin/forms/account.py:34
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
msgstr ""
-#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
+#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Роль"
-#: admin/forms/account.py:46
+#: admin/forms/account.py:40
msgid "Choose"
msgstr "Выбрать"
-#: admin/forms/account.py:47
+#: admin/forms/account.py:41
msgid "What level of permission this user will have"
msgstr "Разрешения для этого пользователя"
-#: admin/forms/account.py:50 admin/forms/domain.py:227
+#: admin/forms/account.py:44 admin/forms/domain.py:245
#, fuzzy
#| msgid "Invalid request"
msgid "Random password"
msgstr "Ошибочный запрос"
-#: admin/forms/account.py:52
+#: admin/forms/account.py:46
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
msgstr ""
-#: admin/forms/account.py:58
+#: admin/forms/account.py:52
msgid "Password"
msgstr "Пароль"
-#: admin/forms/account.py:63
+#: admin/forms/account.py:57
msgid "Confirmation"
msgstr "Подтверждение"
-#: admin/forms/account.py:66
+#: admin/forms/account.py:60
msgid "Enter the same password as above, for verification."
msgstr "Введите такой же пароль как выше. Для проверки."
-#: admin/forms/account.py:78
+#: admin/forms/account.py:72
msgid "Enabled"
msgstr "Разрешено"
-#: admin/forms/account.py:172
+#: admin/forms/account.py:167
msgid "Only super administrators are allowed for this mode"
msgstr ""
-#: admin/forms/account.py:183 admin/forms/account.py:185
-#: admin/forms/domain.py:144 admin/forms/domain.py:273
-#: admin/forms/domain.py:276 admin/serializers.py:241
+#: admin/forms/account.py:178 admin/forms/account.py:180
+#: admin/forms/domain.py:162 admin/forms/domain.py:291
+#: admin/forms/domain.py:294 admin/serializers.py:287
#, fuzzy
#| msgid "A quota is required"
msgid "This field is required."
msgstr "Требуется квота"
-#: admin/forms/account.py:191
+#: admin/forms/account.py:186
msgid "The two password fields didn't match."
msgstr "Пароли не совпадают"
-#: admin/forms/account.py:204
+#: admin/forms/account.py:199
msgid "You can't disable your own account"
msgstr "Вы не можете запретить собственный аккаунт"
-#: admin/forms/account.py:225
+#: admin/forms/account.py:222
msgid "E-mail"
msgstr "Е-майл"
-#: admin/forms/account.py:227
+#: admin/forms/account.py:224
msgid "Create an alias using the old address"
msgstr ""
-#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/forms/account.py:229 admin/forms/domain.py:41
+#: admin/templates/admin/account_detail.html:45
#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Квота"
-#: admin/forms/account.py:234
+#: admin/forms/account.py:232
+#, fuzzy
+#| msgid ""
+#| "Quota in MB for this mailbox. Define a custom value or use domain's "
+#| "default one. Leave empty to define an unlimited value (not allowed for "
+#| "domain administrators)."
msgid ""
-"Quota in MB for this mailbox. Define a custom value or use domain's default "
-"one. Leave empty to define an unlimited value (not allowed for domain "
-"administrators)."
+"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a "
+"custom value or use domain's default one. Leave empty to define an unlimited "
+"value (not allowed for domain administrators)."
msgstr ""
"Квота в мегабайтах для этого почтового ящика. Определите собственное "
"значение или используйте значение по умолчанию для родительского домена. "
"Оставьте пустым для неограниченного значения. (Не разрешено администраторам "
"домена)"
-#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/forms/account.py:242 admin/forms/domain.py:31
#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Синоним(ы)"
@@ -318,70 +368,70 @@ msgstr ""
"Этот синоним почтового ящика. Вводите один адрес за раз. Нажмите ENTER для "
"добавления."
-#: admin/forms/account.py:309 admin/forms/alias.py:94
-#: admin/models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:88
+#: admin/models/mailbox.py:310
msgid "Domain does not exist"
msgstr "Домен не существует"
-#: admin/forms/account.py:341
+#: admin/forms/account.py:345
#, fuzzy
#| msgid "Domain does not exist"
msgid "Local domain does not exist"
msgstr "Домен не существует"
-#: admin/forms/account.py:345 admin/forms/account.py:353
-#: admin/forms/alias.py:97
+#: admin/forms/account.py:349 admin/forms/account.py:357
+#: admin/forms/alias.py:91
msgid "You don't have access to this domain"
msgstr "Вы не имеете права доступа к этому домену"
-#: admin/forms/account.py:452
+#: admin/forms/account.py:456
msgid "Domain(s)"
msgstr "Домен(ы)"
-#: admin/forms/account.py:454
+#: admin/forms/account.py:458
msgid "Domain(s) that user administrates"
msgstr "Домен(ы) администрируемые пользователем"
-#: admin/forms/account.py:500 admin/forms/account.py:590
-#: admin/forms/domain.py:344 admin/forms/domain.py:414
+#: admin/forms/account.py:505 admin/forms/account.py:595
+#: admin/forms/domain.py:362 admin/forms/domain.py:433
msgid "General"
msgstr "Основные"
-#: admin/forms/account.py:504
+#: admin/forms/account.py:509
msgid "Profile"
msgstr ""
-#: admin/forms/account.py:508 admin/forms/account.py:596
+#: admin/forms/account.py:513 admin/forms/account.py:601
msgid "Mail"
msgstr "Почта"
-#: admin/forms/account.py:511
+#: admin/forms/account.py:516
msgid "Permissions"
msgstr "Права"
-#: admin/forms/account.py:579
+#: admin/forms/account.py:584
msgid "Account updated"
msgstr "аккаунт изменен"
-#: admin/forms/account.py:604
+#: admin/forms/account.py:609
msgid "New account"
msgstr "Новый аккаунт"
-#: admin/forms/account.py:614
+#: admin/forms/account.py:619
msgid "Account created"
msgstr "Аккаунт создан"
-#: admin/forms/alias.py:26
+#: admin/forms/alias.py:20
#, fuzzy
#| msgid "Invalid request"
msgid "Random address"
msgstr "Ошибочный запрос"
-#: admin/forms/alias.py:29
+#: admin/forms/alias.py:23
msgid "Email address"
msgstr "Е-майл адрес"
-#: admin/forms/alias.py:31
+#: admin/forms/alias.py:25
#, fuzzy
#| msgid ""
#| "The alias address (without the domain part). For a 'catch-all' address, "
@@ -393,11 +443,11 @@ msgstr ""
"Адреса синонимов (без доменной части). Для указания адреса 'для всех' "
"введите символ *"
-#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Получатели"
-#: admin/forms/alias.py:39
+#: admin/forms/alias.py:33
#, fuzzy
#| msgid ""
#| "Mailbox(es) this alias will point to. Indicate only one address per "
@@ -409,22 +459,22 @@ msgstr ""
"Этот синоним почтового ящика. Вводите один адрес за раз. Нажмите ENTER для "
"добавления."
-#: admin/forms/alias.py:114 admin/forms/alias.py:116
+#: admin/forms/alias.py:108 admin/forms/alias.py:110
#, fuzzy
#| msgid "A quota is required"
msgid "This field is required"
msgstr "Требуется квота"
-#: admin/forms/alias.py:120
+#: admin/forms/alias.py:114
msgid "No recipient defined"
msgstr "Получатель не определен"
-#: admin/forms/domain.py:36
+#: admin/forms/domain.py:28
#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr ""
-#: admin/forms/domain.py:42
+#: admin/forms/domain.py:34
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
@@ -432,55 +482,67 @@ msgstr ""
"Синоним(ы) этого домена. Вводите одно имя за раз. Нажмите ENTER для "
"добавления."
-#: admin/forms/domain.py:47
+#: admin/forms/domain.py:39
msgid "Key selector"
msgstr ""
-#: admin/forms/domain.py:85 admin/handlers.py:171
+#: admin/forms/domain.py:44 admin/serializers.py:30
+msgid ""
+"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
+"A value of 0 means no quota."
+msgstr ""
+
+#: admin/forms/domain.py:52
+msgid ""
+"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
+"GB. A value of 0 means no quota."
+msgstr ""
+
+#: admin/forms/domain.py:94 admin/handlers.py:161
msgid "domain alias"
msgstr ""
-#: admin/forms/domain.py:88 admin/forms/domain.py:155 admin/forms/domain.py:163
+#: admin/forms/domain.py:97 admin/forms/domain.py:173 admin/forms/domain.py:181
#, python-format
msgid "A %s with this name already exists"
msgstr ""
-#: admin/forms/domain.py:96 admin/serializers.py:45
+#: admin/forms/domain.py:105 admin/serializers.py:64
msgid "No authorized MX record found for this domain"
msgstr ""
-#: admin/forms/domain.py:108
+#: admin/forms/domain.py:117
msgid "DKIM keys storage directory not configured"
msgstr ""
-#: admin/forms/domain.py:129 admin/serializers.py:55
+#: admin/forms/domain.py:147 admin/serializers.py:82
msgid "Cannot be greater than domain quota"
msgstr ""
-#: admin/forms/domain.py:134
+#: admin/forms/domain.py:152
msgid "You can't define an unlimited quota."
msgstr ""
-#: admin/forms/domain.py:155 admin/forms/domain.py:160
+#: admin/forms/domain.py:173 admin/forms/domain.py:178
msgid "domain"
msgstr ""
-#: admin/forms/domain.py:209
+#: admin/forms/domain.py:227
msgid "Create a domain administrator"
msgstr "Создание администратора домена"
-#: admin/forms/domain.py:212
+#: admin/forms/domain.py:230
msgid "Automatically create an administrator for this domain"
msgstr "Автоматически создаст администратора для этого домена"
-#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/forms/domain.py:235 admin/templates/admin/domain_detail.html:125
#: admin/templates/admin/domain_headers.html:3
#: admin/templates/admin/identity_headers.html:2
#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Логин"
-#: admin/forms/domain.py:220
+#: admin/forms/domain.py:238
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
@@ -488,382 +550,384 @@ msgstr ""
"Имя администратора. Не включайте имя домена оно будет добавлено "
"автоматически."
-#: admin/forms/domain.py:230
+#: admin/forms/domain.py:248
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Generate a random password for the administrator."
msgstr "Создание администратора домена"
-#: admin/forms/domain.py:236
+#: admin/forms/domain.py:254
msgid "With a mailbox"
msgstr ""
-#: admin/forms/domain.py:239
+#: admin/forms/domain.py:257
#, fuzzy
#| msgid "Create a domain administrator"
msgid "Create a mailbox for the administrator."
msgstr "Создание администратора домена"
-#: admin/forms/domain.py:245
+#: admin/forms/domain.py:263
msgid "Create aliases"
msgstr "Создание синонимов"
-#: admin/forms/domain.py:248
+#: admin/forms/domain.py:266
msgid "Automatically create standard aliases for this domain"
msgstr "Автоматически создает стандартные синонимы для этого домена"
-#: admin/forms/domain.py:264
+#: admin/forms/domain.py:282
msgid "Invalid format"
msgstr "Неверный формат"
-#: admin/forms/domain.py:293
+#: admin/forms/domain.py:311
#, python-format
msgid "User '%s' already exists"
msgstr "Пользователь '%s' уже существует"
-#: admin/forms/domain.py:404
+#: admin/forms/domain.py:423
msgid "Domain modified"
msgstr "Домен изменен"
-#: admin/forms/domain.py:425
+#: admin/forms/domain.py:444
msgid "Options"
msgstr "Опции"
-#: admin/forms/domain.py:433
+#: admin/forms/domain.py:452
msgid "New domain"
msgstr "Новый домен"
-#: admin/forms/domain.py:446
+#: admin/forms/domain.py:465
msgid "Domain created"
msgstr "Домен создан"
-#: admin/forms/export.py:9
-msgid "File name"
-msgstr "Имя файла"
-
-#: admin/forms/export.py:15 admin/forms/import_.py:15
+#: admin/forms/export.py:9 admin/forms/import_.py:13
msgid "Separator"
msgstr "Разделитель"
-#: admin/forms/forward.py:14
+#: admin/forms/forward.py:12
msgid "Recipient(s)"
msgstr "Получатели"
-#: admin/forms/forward.py:18
+#: admin/forms/forward.py:16
msgid "Indicate one or more recipients separated by a ','"
msgstr "Укажите одного или нескольких получателей, разделенных запятой ','"
-#: admin/forms/forward.py:21
+#: admin/forms/forward.py:19
msgid "Keep local copies"
msgstr "Сохранить локальную копию"
-#: admin/forms/forward.py:24
+#: admin/forms/forward.py:22
msgid "Forward messages and store copies into your local mailbox"
msgstr ""
"Перенаправление сообщения, и сохранение копии в вашем локальном почтовом "
"ящике"
-#: admin/forms/import_.py:13
+#: admin/forms/import_.py:11
msgid "Select a file"
msgstr "Выберите файл"
-#: admin/forms/import_.py:21
+#: admin/forms/import_.py:19
msgid "Continue on error"
msgstr "Продолжать при ошибке"
-#: admin/forms/import_.py:22
+#: admin/forms/import_.py:20
msgid "Don't treat duplicated objects as error"
msgstr "Не исправлять дублирующийся объект при ошибке"
-#: admin/forms/import_.py:40
+#: admin/forms/import_.py:38
msgid "Crypt passwords"
msgstr "Шифровать пароль"
-#: admin/forms/import_.py:42
+#: admin/forms/import_.py:40
msgid "Check this option if passwords contained in your file are not crypted"
msgstr "Выберите эту опцию если пароль в вашем файле не зашифрован "
-#: admin/handlers.py:218
+#: admin/handlers.py:210
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Ошибка импорта аккаунта (%s): домен должен существовать "
-#: admin/handlers.py:231 admin/models/mailbox.py:342
+#: admin/handlers.py:223 admin/models/mailbox.py:338
#, fuzzy
#| msgid "Mailbox %s already exists"
msgid "Mailbox {} already exists"
msgstr "Почтовый ящик %s существует"
-#: admin/handlers.py:239
+#: admin/handlers.py:231
#, fuzzy, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Ошибка импорта аккаунта (%s): домен должен существовать "
-#: admin/handlers.py:279
+#: admin/handlers.py:271
#: admin/templates/admin/_global_statistics_widget.html:17
#: admin/templates/admin/_per_domain_statistics_widget.html:8
#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Пользователи"
-#: admin/handlers.py:295 admin/templates/admin/forward.html:2
+#: admin/handlers.py:287 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Перенаправленые"
-#: admin/lib.py:44
+#: admin/lib.py:38
msgid "A mailbox is required"
msgstr ""
-#: admin/lib.py:134
+#: admin/lib.py:128
#, fuzzy
#| msgid "You can't delete your own domain"
msgid "You are not allowed to import domains"
msgstr "Вы не можете удалить собственный домен"
-#: admin/lib.py:145
+#: admin/lib.py:139
msgid "You are not allowed to import domain aliases."
msgstr ""
-#: admin/lib.py:183 admin/tests/test_mx.py:122
+#: admin/lib.py:189 admin/tests/test_mx.py:127 admin/tests/test_mx.py:136
+#: admin/tests/test_mx.py:139
#, python-format
-msgid "No DNS records found for %s"
+msgid "No DNS record found for %s"
msgstr ""
-#: admin/lib.py:185 admin/tests/test_mx.py:125
+#: admin/lib.py:192
#, python-format
-msgid "No MX record for %s"
+msgid "No %(type)s record for %(name)s"
msgstr ""
-#: admin/lib.py:187 admin/tests/test_mx.py:126
+#: admin/lib.py:196 admin/tests/test_mx.py:131
msgid "No working name servers found"
msgstr ""
-#: admin/lib.py:190 admin/tests/test_mx.py:128
+#: admin/lib.py:199 admin/tests/test_mx.py:133
#, python-format
msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr ""
-#: admin/lib.py:201 admin/tests/test_mx.py:131
-#, python-format
-msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+#: admin/lib.py:227
+#, python-brace-format
+msgid "Invalid IP address format for {domain}; {addr}"
msgstr ""
-#: admin/lib.py:212 admin/tests/test_mx.py:134
-#, python-format
-msgid "Invalid IP address format for %(domain)s; %(addr)s"
+#: admin/management/commands/subcommands/_import.py:93
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:136
+#: admin/management/commands/subcommands/_import.py:105
+#, python-format
+msgid "Reading CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_import.py:116
+#, python-format
+msgid "Unable to decode CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:132
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:152
msgid "Domain {} has no MX record"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:167
+#: admin/management/commands/subcommands/_mx.py:163
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr ""
-#: admin/management/commands/subcommands/_mx.py:184
+#: admin/management/commands/subcommands/_mx.py:180
msgid "[modoboa] MX issue(s) for domain {}"
msgstr ""
-#: admin/models/alias.py:35 admin/models/mailbox.py:97
+#: admin/models/alias.py:32 admin/models/mailbox.py:95
msgid "address"
msgstr "адрес"
-#: admin/models/alias.py:37
+#: admin/models/alias.py:34
#, fuzzy
#| msgid "The alias name"
msgid "The alias address."
msgstr "Имя синонима"
-#: admin/models/alias.py:42 admin/models/domain.py:48
-#: admin/models/domain_alias.py:47
+#: admin/models/alias.py:39 admin/models/domain.py:37
+#: admin/models/domain_alias.py:42
msgid "enabled"
msgstr "Разрешен"
-#: admin/models/alias.py:43 admin/models/domain_alias.py:48
+#: admin/models/alias.py:40 admin/models/domain_alias.py:43
msgid "Check to activate this alias"
msgstr "Отметить для активации синонима"
-#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
+#: admin/models/alias.py:45 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr ""
-#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
+#: admin/models/alias.py:47 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr ""
-#: admin/models/alias.py:93
+#: admin/models/alias.py:87
msgid "alias"
msgstr "Синоним"
-#: admin/models/alias.py:125
+#: admin/models/alias.py:119
#, fuzzy
#| msgid "Invalid request"
msgid "Invalid address"
msgstr "Ошибочный запрос"
-#: admin/models/alias.py:146
+#: admin/models/alias.py:140
#, fuzzy
#| msgid "Local recipient %s not found"
msgid "Local recipient {}@{} not found"
msgstr "Локальный получатель %s не найден"
-#: admin/models/alias.py:176
+#: admin/models/alias.py:170
#, python-format
msgid "Invalid line: %s"
msgstr "Неверная строка %s"
-#: admin/models/alias.py:182
+#: admin/models/alias.py:176
#, python-format
msgid "Domain '%s' does not exist"
msgstr "Домен '%s' не существует"
-#: admin/models/domain.py:30 admin/models/domain_alias.py:39
+#: admin/models/domain.py:27 admin/models/domain_alias.py:34
msgid "name"
msgstr "имя"
-#: admin/models/domain.py:31
+#: admin/models/domain.py:28
msgid "The domain name"
msgstr "Имя домена"
-#: admin/models/domain.py:35
-msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
-msgstr ""
-
-#: admin/models/domain.py:43
-msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
-msgstr ""
-
-#: admin/models/domain.py:49
+#: admin/models/domain.py:38
msgid "Check to activate this domain"
msgstr "Отметить для активации этого домена"
-#: admin/models/domain.py:54
+#: admin/models/domain.py:43
msgid "Enable DNS checks"
msgstr ""
-#: admin/models/domain.py:55
+#: admin/models/domain.py:44
#, fuzzy
#| msgid "Check to activate this domain"
msgid "Check to enable DNS checks for this domain"
msgstr "Отметить для активации этого домена"
-#: admin/models/domain.py:62
+#: admin/models/domain.py:51
msgid "Enable DKIM signing"
msgstr ""
-#: admin/models/domain.py:64
+#: admin/models/domain.py:53
msgid ""
"If you activate this feature, a DKIM key will be generated for this domain."
msgstr ""
-#: admin/models/domain.py:70
+#: admin/models/domain.py:59
msgid "Key length"
msgstr ""
-#: admin/models/domain.py:285 admin/models/domain_alias.py:74
+#: admin/models/domain.py:312 admin/models/domain_alias.py:67
msgid "Invalid line"
msgstr "Ошибочная строка"
-#: admin/models/domain.py:295
+#: admin/models/domain.py:322
msgid "No authorized MX record found for domain {}"
msgstr ""
-#: admin/models/domain.py:302
+#: admin/models/domain.py:329
msgid "Invalid quota value for domain '{}'"
msgstr ""
-#: admin/models/domain.py:309
+#: admin/models/domain.py:336
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr ""
-#: admin/models/domain.py:314
+#: admin/models/domain.py:341
msgid "Default mailbox quota cannot be greater than domain quota"
msgstr ""
-#: admin/models/domain_alias.py:40
+#: admin/models/domain_alias.py:35
msgid "The alias name"
msgstr "Имя синонима"
-#: admin/models/domain_alias.py:42
+#: admin/models/domain_alias.py:37
msgid "target"
msgstr "адресат"
-#: admin/models/domain_alias.py:43
+#: admin/models/domain_alias.py:38
msgid "The domain this alias points to"
msgstr "Домен этого синонима указывает на"
-#: admin/models/domain_alias.py:83
+#: admin/models/domain_alias.py:76
#, python-format
msgid "Unknown domain %s"
msgstr "Неизвестный домен %s"
-#: admin/models/mailbox.py:99
+#: admin/models/mailbox.py:97
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Адрес почтового ящика (без @domain.tld)"
-#: admin/models/mailbox.py:165
+#: admin/models/mailbox.py:160
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Ошибка получения места находжения почтового ящика (%s)"
-#: admin/models/mailbox.py:258
+#: admin/models/mailbox.py:253
msgid "A quota is required"
msgstr "Требуется квота"
-#: admin/models/mailbox.py:264
+#: admin/models/mailbox.py:259
#, fuzzy
#| msgid "Domain created"
msgid "Domain quota exceeded"
msgstr "Домен создан"
-#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
+#: admin/serializers.py:37
+msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgstr ""
+
+#: admin/serializers.py:107 admin/serializers.py:312 admin/serializers.py:410
#, fuzzy
#| msgid "Permissions"
msgid "Permission denied."
msgstr "Права"
-#: admin/serializers.py:118
+#: admin/serializers.py:158
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr ""
-#: admin/serializers.py:218
+#: admin/serializers.py:262
msgid "Not allowed for this role."
msgstr ""
-#: admin/serializers.py:228
+#: admin/serializers.py:274
msgid "Must be equal to mailbox full_address"
msgstr ""
-#: admin/serializers.py:253
+#: admin/serializers.py:299
#, fuzzy
#| msgid "Domain does not exist"
msgid "Local domain {} does not exist"
msgstr "Домен не существует"
-#: admin/serializers.py:347
+#: admin/serializers.py:397
msgid "A list of recipient"
msgstr ""
-#: admin/serializers.py:358
+#: admin/serializers.py:408
#, fuzzy
#| msgid "Domain modified"
msgid "Domain not found."
msgstr "Домен изменен"
-#: admin/serializers.py:407
+#: admin/serializers.py:457
#, fuzzy
#| msgid "You don't have access to this domain"
msgid "You don't have access to this domain."
msgstr "Вы не имеете права доступа к этому домену"
-#: admin/serializers.py:415
+#: admin/serializers.py:465
#, fuzzy
#| msgid "You don't have access to this domain"
msgid "You don't have access to this mailbox."
@@ -901,6 +965,19 @@ msgstr "Разрешен"
msgid "Awaiting checks"
msgstr ""
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+#, fuzzy
+#| msgid "Domain modified"
+msgid "No record found"
+msgstr "Домен изменен"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
+msgstr ""
+
#: admin/templates/admin/_global_statistics_widget.html:4
#, fuzzy
#| msgid "Statistics"
@@ -1029,7 +1106,8 @@ msgid "Address"
msgstr "Адрес"
#: admin/templates/admin/dnsbl_domain_detail.html:12
-#: admin/templates/admin/domain_detail.html:96
+#: admin/templates/admin/domain_detail.html:100
+#: admin/templates/admin/messages_log_headers.html:6
#, fuzzy
#| msgid "Statistics"
msgid "Status"
@@ -1063,11 +1141,8 @@ msgstr "Синонимы почтового ящика"
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domain_detail.html:65
-#: admin/templates/admin/domain_general_form.html:4
-#: admin/templates/admin/domain_general_form.html:5
#: admin/templates/admin/domains_quotas.html:11
#: admin/templates/admin/domains_quotas.html:12
-#: admin/templates/admin/mailform.html:7
#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "Мб"
@@ -1089,34 +1164,38 @@ msgstr ""
msgid "allocated"
msgstr ""
-#: admin/templates/admin/domain_detail.html:91
+#: admin/templates/admin/domain_detail.html:92
msgid "DNS"
msgstr ""
-#: admin/templates/admin/domain_detail.html:103
+#: admin/templates/admin/domain_detail.html:107
msgid "DKIM key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:107
+#: admin/templates/admin/domain_detail.html:111
msgid "Show key"
msgstr ""
-#: admin/templates/admin/domain_detail.html:110
+#: admin/templates/admin/domain_detail.html:113
+msgid "Generate new key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:115
#, fuzzy
#| msgid "No recipient defined"
msgid "Not generated"
msgstr "Получатель не определен"
-#: admin/templates/admin/domain_detail.html:117
+#: admin/templates/admin/domain_detail.html:122
msgid "Administrators"
msgstr "Администраторы"
-#: admin/templates/admin/domain_detail.html:129
-#: admin/templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:134
+#: admin/templatetags/admin_tags.py:265
msgid "Remove this permission"
msgstr "Удалить это разрешение"
-#: admin/templates/admin/domain_detail.html:134
+#: admin/templates/admin/domain_detail.html:139
#, fuzzy
#| msgid "No domain administrator defined"
msgid "No domain administrator defined yet."
@@ -1179,7 +1258,7 @@ msgstr "Разрешен"
msgid "Automatically forward emails to another address"
msgstr "Автоматически перенаправлять письма на другой адрес"
-#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:87
msgid "Update"
msgstr "Обновление"
@@ -1238,6 +1317,22 @@ msgstr "Выбрать значение"
msgid "Use domain default value"
msgstr "Используются значения домена по умолчанию "
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:3
+msgid "Date"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:4
+msgid "From"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:5
+msgid "To"
+msgstr ""
+
#: admin/templates/admin/mx_domain_detail.html:11
#, fuzzy
#| msgid "Update"
@@ -1275,73 +1370,83 @@ msgstr ""
msgid "Search"
msgstr "Поиск"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_m"
msgstr "enabled_m"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_f"
msgstr "enabled_f"
-#: admin/templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:45
#, fuzzy
msgid "List domains"
msgstr "Список квот"
-#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:50 admin/templatetags/admin_tags.py:105
msgid "List quotas"
msgstr "Список квот"
-#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
-#: admin/views/import_.py:89 admin/views/import_.py:111
+#: admin/templatetags/admin_tags.py:62 admin/templatetags/admin_tags.py:110
+#: admin/views/import_.py:85 admin/views/import_.py:107
msgid "Import"
msgstr "Импорт"
-#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
-#: admin/views/export.py:43 admin/views/export.py:71
+#: admin/templatetags/admin_tags.py:68 admin/templatetags/admin_tags.py:116
+#: admin/views/export.py:39 admin/views/export.py:67
msgid "Export"
msgstr "Экспорт"
-#: admin/templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:100
msgid "List identities"
msgstr "Список пользователей"
-#: admin/templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:135
msgid "View the domain's identities"
msgstr "Информация о домене"
-#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
-#: admin/templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:141 admin/templatetags/admin_tags.py:184
+#: admin/templatetags/admin_tags.py:197
msgid "Edit {}"
msgstr ""
-#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
-#: admin/templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:151 admin/templatetags/admin_tags.py:188
+#: admin/templatetags/admin_tags.py:202
#, python-format
msgid "Delete %s?"
msgstr "Удалить %s?"
-#: admin/views/alias.py:35
+#: admin/tests/test_mx.py:130
+#, python-format
+msgid "No MX record for %s"
+msgstr ""
+
+#: admin/tests/test_mx.py:142 admin/tests/test_mx.py:145
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/views/alias.py:29
msgid "Alias with this name already exists"
msgstr "Синоним с таким именем уже есть"
-#: admin/views/alias.py:60
+#: admin/views/alias.py:54
msgid "Create"
msgstr "Создать"
-#: admin/views/alias.py:72
+#: admin/views/alias.py:66
msgid "New alias"
msgstr "Новый синоним"
-#: admin/views/alias.py:73
+#: admin/views/alias.py:67
msgid "Alias created"
msgstr "Синоним создан"
-#: admin/views/alias.py:85
+#: admin/views/alias.py:79
msgid "Alias modified"
msgstr "Синоним изменен"
-#: admin/views/alias.py:109
+#: admin/views/alias.py:103
#, fuzzy
#| msgid "Alias created"
msgid "Alias deleted"
@@ -1350,67 +1455,70 @@ msgstr[0] "Синоним создан"
msgstr[1] "Синоним создан"
msgstr[2] "Синоним создан"
-#: admin/views/dns.py:32
+#: admin/views/dns.py:28
msgid "MX records of {}"
msgstr ""
-#: admin/views/dns.py:55
+#: admin/views/dns.py:51
msgid "DNSBL summary for {}"
msgstr ""
-#: admin/views/domain.py:188
+#: admin/views/domain.py:202
msgid "You can't delete your own domain"
msgstr "Вы не можете удалить собственный домен"
-#: admin/views/domain.py:191
+#: admin/views/domain.py:205
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Домен удален"
msgstr[1] "Домена удалено"
msgstr[2] "Доменов удалено"
-#: admin/views/export.py:42
+#: admin/views/export.py:38
msgid "Export identities"
msgstr "Экспорт пользователя"
-#: admin/views/export.py:70
+#: admin/views/export.py:66
msgid "Export domains"
msgstr "Экспорт доменов"
-#: admin/views/identity.py:113 admin/views/identity.py:206
-#: admin/views/identity.py:211
+#: admin/views/identity.py:107 admin/views/identity.py:201
+#: admin/views/identity.py:206
msgid "Invalid request"
msgstr "Ошибочный запрос"
-#: admin/views/identity.py:196
+#: admin/views/identity.py:191
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Аккаунт удален"
msgstr[1] "Аккаунта удалено"
msgstr[2] "Аккаунтов удалено"
-#: admin/views/import_.py:65
+#: admin/views/import_.py:61
#, python-format
msgid "Object already exists: %s"
msgstr "Объект уже существует: %s"
-#: admin/views/import_.py:69
+#: admin/views/import_.py:65
#, python-format
msgid "%d objects imported successfully"
msgstr "%d объектов импортировано"
-#: admin/views/import_.py:88
+#: admin/views/import_.py:84
msgid "Import domains"
msgstr "Импорт доменов"
-#: admin/views/import_.py:110
+#: admin/views/import_.py:106
msgid "Import identities"
msgstr "Импорт информации о пользователях"
-#: admin/views/user.py:40
+#: admin/views/user.py:36
msgid "Forward updated"
msgstr "Перенаправление обновлено"
+#~ msgid "File name"
+#~ msgstr "Имя файла"
+
#~ msgid ""
#~ "You can't define a forward to a local destination. Please ask your "
#~ "administrator to create an alias instead."
diff --git a/modoboa/admin/locale/ru/LC_MESSAGES/djangojs.po b/modoboa/admin/locale/ru/LC_MESSAGES/djangojs.po
index 0ea906cbb..934ad4217 100644
--- a/modoboa/admin/locale/ru/LC_MESSAGES/djangojs.po
+++ b/modoboa/admin/locale/ru/LC_MESSAGES/djangojs.po
@@ -3,35 +3,38 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
+# Ravil Kadyrbayev, 2015
+# Yuriy Matskanyuk , 2018
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-04 22:08+0100\n"
-"PO-Revision-Date: 2013-12-03 09:35+0000\n"
-"Last-Translator: Antoine Nguyen \n"
-"Language-Team: Russian (http://www.transifex.com/projects/p/modoboa/language/"
+"POT-Creation-Date: 2020-03-09 16:48+0100\n"
+"PO-Revision-Date: 2018-11-27 17:54+0000\n"
+"Last-Translator: Yuriy Matskanyuk \n"
+"Language-Team: Russian (http://www.transifex.com/tonio/modoboa/language/"
"ru/)\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n"
+"%100>=11 && n%100<=14)? 2 : 3);\n"
-#: admin/static/admin/js/admin.js:131
+#: admin/static/admin/js/admin.js:129 admin/static/admin/js/admin.js:174
msgid "No more domain to show"
-msgstr ""
+msgstr "Нет больше доменов для показа"
-#: admin/static/admin/js/admin.js:150
+#: admin/static/admin/js/admin.js:149
msgid "Do not delete domain directory"
msgstr "Не удаляйте каталог домена"
-#: admin/static/admin/js/admin.js:152
+#: admin/static/admin/js/admin.js:151
msgid "This operation will remove ALL data associated to this domain."
msgstr "Эта операция удалит ВСЕ данные, связанные с этим доменом."
-#: admin/static/admin/js/admin.js:153
+#: admin/static/admin/js/admin.js:152
msgid ""
"This operation will remove all data associated to this domain, excepting "
"accounts."
@@ -39,18 +42,18 @@ msgstr ""
"Эта операция удалит ВСЕ данные, связанные с этим доменом, за исключением "
"аккаунтов."
-#: admin/static/admin/js/admin.js:236
+#: admin/static/admin/js/admin.js:177 admin/static/admin/js/admin.js:433
+msgid "No more quota to show"
+msgstr "Нет больше квоты для показа"
+
+#: admin/static/admin/js/admin.js:306
msgid "No domain administrator defined"
msgstr "Не указан администратор домена"
-#: admin/static/admin/js/admin.js:291 admin/static/admin/js/admin.js:359
+#: admin/static/admin/js/admin.js:362 admin/static/admin/js/admin.js:430
msgid "No more identity to show"
-msgstr ""
+msgstr "Нет личности для показа"
-#: admin/static/admin/js/admin.js:333
+#: admin/static/admin/js/admin.js:404
msgid "Do not delete mailbox directory"
msgstr "Не удаляйте каталог почтовых ящиков"
-
-#: admin/static/admin/js/admin.js:362
-msgid "No more quota to show"
-msgstr ""
diff --git a/modoboa/admin/locale/sv/LC_MESSAGES/django.po b/modoboa/admin/locale/sv/LC_MESSAGES/django.po
index 2a8907fd5..5053a186b 100644
--- a/modoboa/admin/locale/sv/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/sv/LC_MESSAGES/django.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Martin Persson , 2014,2017
# Olle Gustafsson , 2013,2015-2018
@@ -10,263 +10,353 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
"PO-Revision-Date: 2018-08-14 08:35+0000\n"
"Last-Translator: Olle Gustafsson \n"
-"Language-Team: Swedish (http://www.transifex.com/tonio/modoboa/language/sv/)\n"
+"Language-Team: Swedish (http://www.transifex.com/tonio/modoboa/language/"
+"sv/)\n"
+"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/api.py:142
+msgid "Here is your new Modoboa password: {}"
+msgstr ""
+
+#: admin/app_settings.py:20 admin/handlers.py:261
#: admin/templates/admin/_global_statistics_widget.html:11
#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "Domäner"
-#: admin/app_settings.py:25
+#: admin/app_settings.py:23
msgid "Enable MX checks"
msgstr "Aktivera MX kontroll"
-#: admin/app_settings.py:28
+#: admin/app_settings.py:26
msgid "Check that every domain has a valid MX record"
msgstr "Kontrollera att varje domän har ett giltigt MX record"
-#: admin/app_settings.py:33
+#: admin/app_settings.py:31
msgid "Valid MXs"
msgstr "Giltiga MX"
-#: admin/app_settings.py:36
+#: admin/app_settings.py:34
msgid ""
-"A list of IP or network address every MX record should match. A warning will"
-" be sent if a record does not respect it."
-msgstr "En lista över IP eller nätverksadresser varje MX record skall matcha. En varning kommer skickas om ett record inte matchar."
+"A list of IP or network address every MX record should match. A warning will "
+"be sent if a record does not respect it."
+msgstr ""
+"En lista över IP eller nätverksadresser varje MX record skall matcha. En "
+"varning kommer skickas om ett record inte matchar."
-#: admin/app_settings.py:44
+#: admin/app_settings.py:42
msgid "New domains must use authorized MX(s)"
msgstr "Nya domäner måste använda auktoriseradade MX inlägg"
-#: admin/app_settings.py:47
+#: admin/app_settings.py:45
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
-msgstr "Förhindra uppskapandet av nya domäner om ett MX inlägg inte använder ett fördefinerat."
+msgstr ""
+"Förhindra uppskapandet av nya domäner om ett MX inlägg inte använder ett "
+"fördefinerat."
-#: admin/app_settings.py:53
+#: admin/app_settings.py:51
+#, fuzzy
+#| msgid "Enable DNS checks"
+msgid "Enable SPF checks"
+msgstr "Aktivera DNS kontroller"
+
+#: admin/app_settings.py:54
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid SPF record"
+msgstr "Kontrollera att varje domän har ett giltigt MX record"
+
+#: admin/app_settings.py:59
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DKIM checks"
+msgstr "Aktivera MX kontroll"
+
+#: admin/app_settings.py:62
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr "Kontrollera att varje domän har ett giltigt MX record"
+
+#: admin/app_settings.py:68
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DMARC checks"
+msgstr "Aktivera MX kontroll"
+
+#: admin/app_settings.py:71
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid DMARC record"
+msgstr "Kontrollera att varje domän har ett giltigt MX record"
+
+#: admin/app_settings.py:76
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable autoconfig checks"
+msgstr "Aktivera MX kontroll"
+
+#: admin/app_settings.py:79
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr "Kontrollera att varje domän har ett giltigt MX record"
+
+#: admin/app_settings.py:84
msgid "Enable DNSBL checks"
msgstr "Aktivera DNSBL kontroller"
-#: admin/app_settings.py:56
+#: admin/app_settings.py:87
msgid "Check every domain against major DNSBL providers"
msgstr "Kontrollera varje domän mot större DNSBL leverantörer"
-#: admin/app_settings.py:61
+#: admin/app_settings.py:92
+msgid "Custom DNS server"
+msgstr ""
+
+#: admin/app_settings.py:95
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr ""
+
+#: admin/app_settings.py:100
msgid "DKIM keys storage directory"
msgstr "DKIM nycklar lagrings katalog"
-#: admin/app_settings.py:64
+#: admin/app_settings.py:103
msgid ""
"Absolute path of the directory where DKIM private keys will be stored. Make "
"sure this directory belongs to root user and is not readable by the outside "
"world."
-msgstr "Absolut sökväg till katalogen där DKIM privata nycklar kommer lagras. Se till att den här katalogen ägs av root-användaren och inte kan läsas av utomstående."
+msgstr ""
+"Absolut sökväg till katalogen där DKIM privata nycklar kommer lagras. Se "
+"till att den här katalogen ägs av root-användaren och inte kan läsas av "
+"utomstående."
-#: admin/app_settings.py:72
+#: admin/app_settings.py:111
msgid "Default DKIM key length"
msgstr "Standard DKIM nyckellängd"
-#: admin/app_settings.py:76
+#: admin/app_settings.py:115
msgid "Default length in bits for newly generated DKIM keys."
msgstr "Standardlängd i bitar för genererade DKIM nycklar."
-#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
+#: admin/app_settings.py:119 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "Brevlådor"
-#: admin/app_settings.py:83
+#: admin/app_settings.py:122
msgid "Handle mailboxes on filesystem"
msgstr "Hantera brevlådor på filsystem"
-#: admin/app_settings.py:86
+#: admin/app_settings.py:125
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
-msgstr "Byt namn på eller ta bort brevlådor på filsystemet när de kommer byta namn eller tas bort inom Modoboa"
+msgstr ""
+"Byt namn på eller ta bort brevlådor på filsystemet när de kommer byta namn "
+"eller tas bort inom Modoboa"
-#: admin/app_settings.py:92
+#: admin/app_settings.py:131
msgid "Mailboxes owner"
msgstr "Brevlådans ägare"
-#: admin/app_settings.py:95
+#: admin/app_settings.py:134
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "Den UNIX-konto som äger brevlådor på filsystemet"
-#: admin/app_settings.py:100
+#: admin/app_settings.py:139
msgid "Default domain quota"
msgstr "Standard domän kvota"
-#: admin/app_settings.py:103
+#: admin/app_settings.py:142
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
-msgstr "Standard kvota (i MB) applicerad på nyskapade domäner som inte har något värde specificerat. Ett värde på 0 betyder ingen kvota."
+msgstr ""
+"Standard kvota (i MB) applicerad på nyskapade domäner som inte har något "
+"värde specificerat. Ett värde på 0 betyder ingen kvota."
-#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/app_settings.py:148 admin/forms/domain.py:49 admin/models/domain.py:33
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr "Standard brevlåde kvota"
-#: admin/app_settings.py:112
+#: admin/app_settings.py:151
+#, fuzzy
+#| msgid ""
+#| "Default mailbox quota (in MB) applied to freshly created domains with no "
+#| "value specified. A value of 0 means no quota."
msgid ""
-"Default mailbox quota (in MB) applied to freshly created domains with no "
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
"value specified. A value of 0 means no quota."
-msgstr "Standard brevlåde kvota (i MB) applicerad på nyligen skapade domäner där inget värde angetts. 0 betyder ingen kvota."
+msgstr ""
+"Standard brevlåde kvota (i MB) applicerad på nyligen skapade domäner där "
+"inget värde angetts. 0 betyder ingen kvota."
-#: admin/app_settings.py:118
+#: admin/app_settings.py:157
msgid "Automatic account removal"
msgstr "Automatisk konto borttagning"
-#: admin/app_settings.py:121
+#: admin/app_settings.py:160
msgid "When a mailbox is removed, also remove the associated account"
msgstr "När en brevlåda raderas, radera också tillhörande konto"
-#: admin/app_settings.py:125
+#: admin/app_settings.py:164
msgid "Automatic domain/mailbox creation"
msgstr "Automatisk skapande av domän/brevlåda"
-#: admin/app_settings.py:128
-msgid ""
-"Create a domain and a mailbox when an account is automatically created."
+#: admin/app_settings.py:167
+msgid "Create a domain and a mailbox when an account is automatically created."
msgstr "Skapa en domän och en brevlåda när ett konto skapas automatiskt."
-#: admin/app_settings.py:134
+#: admin/app_settings.py:173
msgid "Create an alias when a mailbox is renamed"
msgstr "Skapa ett alias när en brevlåda döps om"
-#: admin/app_settings.py:137
+#: admin/app_settings.py:176
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr "Skapa ett alias med den gamla adressen när en brevlåda bytt namn."
-#: admin/app_settings.py:186 admin/app_settings.py:194
-#: admin/forms/account.py:331
+#: admin/app_settings.py:225 admin/app_settings.py:233
+#: admin/forms/account.py:335
msgid "Must be a positive integer"
msgstr "Måste vara ett positivt heltal"
-#: admin/app_settings.py:204
+#: admin/app_settings.py:243
msgid "Directory not found."
msgstr "Katalog kunde ej hittas."
-#: admin/app_settings.py:210
+#: admin/app_settings.py:249
msgid "openssl not found, please make sure it is installed."
msgstr "openssl hittades inte, kontroller att det är installerat."
-#: admin/app_settings.py:224
+#: admin/app_settings.py:263
msgid "Define at least one authorized network / address"
msgstr "Ange åtminstonde en auktoriserad nätverk / adress"
-#: admin/app_settings.py:234
+#: admin/app_settings.py:273
msgid "Administration"
msgstr "Administration"
-#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/constants.py:28 admin/forms/alias.py:43
#: admin/templates/admin/_per_domain_statistics_widget.html:7
#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "Domän"
-#: admin/constants.py:100
+#: admin/constants.py:29
msgid "Relay domain"
msgstr "Relay domän"
-#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
+#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:125
msgid "Username"
msgstr "Användarnamn"
-#: admin/forms/account.py:40
+#: admin/forms/account.py:34
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
-msgstr "Användarens namn. Måste vara en giltig e-postadress för vanliga användare eller för administratörer med brevlåda."
+msgstr ""
+"Användarens namn. Måste vara en giltig e-postadress för vanliga användare "
+"eller för administratörer med brevlåda."
-#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
+#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "Roll"
-#: admin/forms/account.py:46
+#: admin/forms/account.py:40
msgid "Choose"
msgstr "Välj"
-#: admin/forms/account.py:47
+#: admin/forms/account.py:41
msgid "What level of permission this user will have"
msgstr "Vilken nivå av behörighet den här användaren har"
-#: admin/forms/account.py:50 admin/forms/domain.py:227
+#: admin/forms/account.py:44 admin/forms/domain.py:245
msgid "Random password"
msgstr "Slumpmässigt lösenord"
-#: admin/forms/account.py:52
+#: admin/forms/account.py:46
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
-msgstr "Skapa ett slumpmässigt lösenord. Om du uppdaterar det här kontot och markerar den här rutan genereras ett nytt lösenord."
+msgstr ""
+"Skapa ett slumpmässigt lösenord. Om du uppdaterar det här kontot och "
+"markerar den här rutan genereras ett nytt lösenord."
-#: admin/forms/account.py:58
+#: admin/forms/account.py:52
msgid "Password"
msgstr "Lösenord"
-#: admin/forms/account.py:63
+#: admin/forms/account.py:57
msgid "Confirmation"
msgstr "Bekräftelse"
-#: admin/forms/account.py:66
+#: admin/forms/account.py:60
msgid "Enter the same password as above, for verification."
msgstr "Ange samma lösenord som ovan för verifiering."
-#: admin/forms/account.py:78
+#: admin/forms/account.py:72
msgid "Enabled"
msgstr "Aktiverad"
-#: admin/forms/account.py:172
+#: admin/forms/account.py:167
msgid "Only super administrators are allowed for this mode"
msgstr "Endast superadmininstratörer tillåts åtkomst till det här läget"
-#: admin/forms/account.py:183 admin/forms/account.py:185
-#: admin/forms/domain.py:144 admin/forms/domain.py:273
-#: admin/forms/domain.py:276 admin/serializers.py:241
+#: admin/forms/account.py:178 admin/forms/account.py:180
+#: admin/forms/domain.py:162 admin/forms/domain.py:291
+#: admin/forms/domain.py:294 admin/serializers.py:287
msgid "This field is required."
msgstr "Detta fält krävs."
-#: admin/forms/account.py:191
+#: admin/forms/account.py:186
msgid "The two password fields didn't match."
msgstr "Dessa två lösnordsfält matchar inte."
-#: admin/forms/account.py:204
+#: admin/forms/account.py:199
msgid "You can't disable your own account"
msgstr "Du kan inte inaktivera ditt eget konto"
-#: admin/forms/account.py:225
+#: admin/forms/account.py:222
msgid "E-mail"
msgstr "E-post"
-#: admin/forms/account.py:227
+#: admin/forms/account.py:224
msgid "Create an alias using the old address"
msgstr "Skapa ett alias med den gamla adressen"
-#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/forms/account.py:229 admin/forms/domain.py:41
+#: admin/templates/admin/account_detail.html:45
#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "Kvot"
-#: admin/forms/account.py:234
+#: admin/forms/account.py:232
+#, fuzzy
+#| msgid ""
+#| "Quota in MB for this mailbox. Define a custom value or use domain's "
+#| "default one. Leave empty to define an unlimited value (not allowed for "
+#| "domain administrators)."
msgid ""
-"Quota in MB for this mailbox. Define a custom value or use domain's default "
-"one. Leave empty to define an unlimited value (not allowed for domain "
-"administrators)."
-msgstr "Kvot i MB för denna brevlåda. Definiera ett anpassat värde eller använda domänens förvalda. Lämna tomt för att definiera ett obegränsat värde (ej tillåtet för domänadministratörer)."
+"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a "
+"custom value or use domain's default one. Leave empty to define an unlimited "
+"value (not allowed for domain administrators)."
+msgstr ""
+"Kvot i MB för denna brevlåda. Definiera ett anpassat värde eller använda "
+"domänens förvalda. Lämna tomt för att definiera ett obegränsat värde (ej "
+"tillåtet för domänadministratörer)."
-#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/forms/account.py:242 admin/forms/domain.py:31
#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "Alias"
@@ -276,7 +366,10 @@ msgid ""
"Alias(es) of this mailbox. Indicate only one address per input, press ENTER "
"to add a new input. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
-msgstr "Alias för denna brevlåda. Ange endast en adress per inmatning, tryck RETUR för att lägga till nytt. För att skapa ett \"catch-all\" alias, ange bara domännamnet (@domain.tld)."
+msgstr ""
+"Alias för denna brevlåda. Ange endast en adress per inmatning, tryck RETUR "
+"för att lägga till nytt. För att skapa ett \"catch-all\" alias, ange bara "
+"domännamnet (@domain.tld)."
#: admin/forms/account.py:251
msgid "Sender addresses"
@@ -287,505 +380,541 @@ msgid ""
"Additional sender address(es) for this account. The user will be allowed to "
"send emails using this address, even if it does not exist locally. Indicate "
"one address per input. Press ENTER to add a new input."
-msgstr "Övriga avsändaradresser fär detta konto. Användaren tillåts skicka e-post med från denna adress, även om den inte finns lokalt. Ange en adress per rad. Tryck RETUR för att lägga till ny rad."
+msgstr ""
+"Övriga avsändaradresser fär detta konto. Användaren tillåts skicka e-post "
+"med från denna adress, även om den inte finns lokalt. Ange en adress per "
+"rad. Tryck RETUR för att lägga till ny rad."
-#: admin/forms/account.py:309 admin/forms/alias.py:94
-#: admin/models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:88
+#: admin/models/mailbox.py:310
msgid "Domain does not exist"
msgstr "Domän existerar inte"
-#: admin/forms/account.py:341
+#: admin/forms/account.py:345
msgid "Local domain does not exist"
msgstr "Lokal domän existerar inte"
-#: admin/forms/account.py:345 admin/forms/account.py:353
-#: admin/forms/alias.py:97
+#: admin/forms/account.py:349 admin/forms/account.py:357
+#: admin/forms/alias.py:91
msgid "You don't have access to this domain"
msgstr "Du har inte åtkomst till denna domän"
-#: admin/forms/account.py:452
+#: admin/forms/account.py:456
msgid "Domain(s)"
msgstr "Domän(er)"
-#: admin/forms/account.py:454
+#: admin/forms/account.py:458
msgid "Domain(s) that user administrates"
msgstr "Domän(er) användaren administrerar"
-#: admin/forms/account.py:500 admin/forms/account.py:590
-#: admin/forms/domain.py:344 admin/forms/domain.py:414
+#: admin/forms/account.py:505 admin/forms/account.py:595
+#: admin/forms/domain.py:362 admin/forms/domain.py:433
msgid "General"
msgstr "Generellt"
-#: admin/forms/account.py:504
+#: admin/forms/account.py:509
msgid "Profile"
msgstr "Profil"
-#: admin/forms/account.py:508 admin/forms/account.py:596
+#: admin/forms/account.py:513 admin/forms/account.py:601
msgid "Mail"
msgstr "Post"
-#: admin/forms/account.py:511
+#: admin/forms/account.py:516
msgid "Permissions"
msgstr "Rättigheter"
-#: admin/forms/account.py:579
+#: admin/forms/account.py:584
msgid "Account updated"
msgstr "Konto uppdaterat"
-#: admin/forms/account.py:604
+#: admin/forms/account.py:609
msgid "New account"
msgstr "Nytt konto"
-#: admin/forms/account.py:614
+#: admin/forms/account.py:619
msgid "Account created"
msgstr "Konto skapat"
-#: admin/forms/alias.py:26
+#: admin/forms/alias.py:20
msgid "Random address"
msgstr "Slumpmässig adress"
-#: admin/forms/alias.py:29
+#: admin/forms/alias.py:23
msgid "Email address"
msgstr "E-post adress"
-#: admin/forms/alias.py:31
+#: admin/forms/alias.py:25
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
-msgstr "Alias adress. För en \"catch-all\"-alias, ange bara domännamnet (@domän.tld)."
+msgstr ""
+"Alias adress. För en \"catch-all\"-alias, ange bara domännamnet (@domän.tld)."
-#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "Mottagare"
-#: admin/forms/alias.py:39
+#: admin/forms/alias.py:33
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
-msgstr "Adresser detta alias kommer peka på. Ange bara en adress per fält, tryck RETUR för att lägga till ytterligare."
+msgstr ""
+"Adresser detta alias kommer peka på. Ange bara en adress per fält, tryck "
+"RETUR för att lägga till ytterligare."
-#: admin/forms/alias.py:114 admin/forms/alias.py:116
+#: admin/forms/alias.py:108 admin/forms/alias.py:110
msgid "This field is required"
msgstr "Detta fält krävs"
-#: admin/forms/alias.py:120
+#: admin/forms/alias.py:114
msgid "No recipient defined"
msgstr "Ingen mottagare definierad"
-#: admin/forms/domain.py:36
+#: admin/forms/domain.py:28
#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "Typ"
-#: admin/forms/domain.py:42
+#: admin/forms/domain.py:34
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
-msgstr "Alias för denna domän. Ange endast ett namn per rad, tryck ENTER för att lägga till en rad."
+msgstr ""
+"Alias för denna domän. Ange endast ett namn per rad, tryck ENTER för att "
+"lägga till en rad."
-#: admin/forms/domain.py:47
+#: admin/forms/domain.py:39
msgid "Key selector"
msgstr "Nyckelväljare"
-#: admin/forms/domain.py:85 admin/handlers.py:171
+#: admin/forms/domain.py:44 admin/serializers.py:30
+#, fuzzy
+#| msgid ""
+#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgid ""
+"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
+"A value of 0 means no quota."
+msgstr "Standardkvota i MB applicerad på nya brevlådor. 0 betyder ingen kvota."
+
+#: admin/forms/domain.py:52
+#, fuzzy
+#| msgid ""
+#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgid ""
+"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
+"GB. A value of 0 means no quota."
+msgstr "Standardkvota i MB applicerad på nya brevlådor. 0 betyder ingen kvota."
+
+#: admin/forms/domain.py:94 admin/handlers.py:161
msgid "domain alias"
msgstr "domän alias"
-#: admin/forms/domain.py:88 admin/forms/domain.py:155
-#: admin/forms/domain.py:163
+#: admin/forms/domain.py:97 admin/forms/domain.py:173 admin/forms/domain.py:181
#, python-format
msgid "A %s with this name already exists"
msgstr "En %s med detta namn finns redan"
-#: admin/forms/domain.py:96 admin/serializers.py:45
+#: admin/forms/domain.py:105 admin/serializers.py:64
msgid "No authorized MX record found for this domain"
msgstr "Inga auktoriserade MX inlägg finns för denna domänen"
-#: admin/forms/domain.py:108
+#: admin/forms/domain.py:117
msgid "DKIM keys storage directory not configured"
msgstr "DKIM nycklar lagringskatalog ej konfigurerad"
-#: admin/forms/domain.py:129 admin/serializers.py:55
+#: admin/forms/domain.py:147 admin/serializers.py:82
msgid "Cannot be greater than domain quota"
msgstr "Får inte vara större än domän kvot"
-#: admin/forms/domain.py:134
+#: admin/forms/domain.py:152
msgid "You can't define an unlimited quota."
msgstr "Du kan inte ange en obegränsad kvota."
-#: admin/forms/domain.py:155 admin/forms/domain.py:160
+#: admin/forms/domain.py:173 admin/forms/domain.py:178
msgid "domain"
msgstr "domän"
-#: admin/forms/domain.py:209
+#: admin/forms/domain.py:227
msgid "Create a domain administrator"
msgstr "Skapa en domän administratör"
-#: admin/forms/domain.py:212
+#: admin/forms/domain.py:230
msgid "Automatically create an administrator for this domain"
msgstr "Skapa en domän administratör automatiskt för denna domän"
-#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/forms/domain.py:235 admin/templates/admin/domain_detail.html:125
#: admin/templates/admin/domain_headers.html:3
#: admin/templates/admin/identity_headers.html:2
#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "Namn"
-#: admin/forms/domain.py:220
+#: admin/forms/domain.py:238
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
-msgstr "Administratörens namn. Inkludera inte domänens namn här, den kommer att läggas till automatiskt."
+msgstr ""
+"Administratörens namn. Inkludera inte domänens namn här, den kommer att "
+"läggas till automatiskt."
-#: admin/forms/domain.py:230
+#: admin/forms/domain.py:248
msgid "Generate a random password for the administrator."
msgstr "Skapa ett slumpmässigt lösenord för administratören."
-#: admin/forms/domain.py:236
+#: admin/forms/domain.py:254
msgid "With a mailbox"
msgstr "Med en brevlåda"
-#: admin/forms/domain.py:239
+#: admin/forms/domain.py:257
msgid "Create a mailbox for the administrator."
msgstr "Skapa en brevlåda för administratören."
-#: admin/forms/domain.py:245
+#: admin/forms/domain.py:263
msgid "Create aliases"
msgstr "Skapa alias."
-#: admin/forms/domain.py:248
+#: admin/forms/domain.py:266
msgid "Automatically create standard aliases for this domain"
msgstr "Skapa automatiskt standard alias för den här domänen"
-#: admin/forms/domain.py:264
+#: admin/forms/domain.py:282
msgid "Invalid format"
msgstr "Ogiltigt format"
-#: admin/forms/domain.py:293
+#: admin/forms/domain.py:311
#, python-format
msgid "User '%s' already exists"
msgstr "Användare '%s' finns redan"
-#: admin/forms/domain.py:404
+#: admin/forms/domain.py:423
msgid "Domain modified"
msgstr "Domän ändrad"
-#: admin/forms/domain.py:425
+#: admin/forms/domain.py:444
msgid "Options"
msgstr "Inställningar"
-#: admin/forms/domain.py:433
+#: admin/forms/domain.py:452
msgid "New domain"
msgstr "Ny domän"
-#: admin/forms/domain.py:446
+#: admin/forms/domain.py:465
msgid "Domain created"
msgstr "Domän skapad"
-#: admin/forms/export.py:9
-msgid "File name"
-msgstr "Filnamn"
-
-#: admin/forms/export.py:15 admin/forms/import_.py:15
+#: admin/forms/export.py:9 admin/forms/import_.py:13
msgid "Separator"
msgstr "Separator"
-#: admin/forms/forward.py:14
+#: admin/forms/forward.py:12
msgid "Recipient(s)"
msgstr "Mottagare"
-#: admin/forms/forward.py:18
+#: admin/forms/forward.py:16
msgid "Indicate one or more recipients separated by a ','"
msgstr "Ange en eller flera mottagare separerade med ett ','"
-#: admin/forms/forward.py:21
+#: admin/forms/forward.py:19
msgid "Keep local copies"
msgstr "Behåll lokal kopia"
-#: admin/forms/forward.py:24
+#: admin/forms/forward.py:22
msgid "Forward messages and store copies into your local mailbox"
msgstr "Vidarebefordra meddelande och spara kopia i din lokala brevlåda"
-#: admin/forms/import_.py:13
+#: admin/forms/import_.py:11
msgid "Select a file"
msgstr "Välj en fil"
-#: admin/forms/import_.py:21
+#: admin/forms/import_.py:19
msgid "Continue on error"
msgstr "Fortsätt vid fel"
-#: admin/forms/import_.py:22
+#: admin/forms/import_.py:20
msgid "Don't treat duplicated objects as error"
msgstr "Behandla inte dubletter som fel"
-#: admin/forms/import_.py:40
+#: admin/forms/import_.py:38
msgid "Crypt passwords"
msgstr "Krypterade lösenord"
-#: admin/forms/import_.py:42
+#: admin/forms/import_.py:40
msgid "Check this option if passwords contained in your file are not crypted"
msgstr "Markera det här alternativet om lösenord i filen inte är krypterad"
-#: admin/handlers.py:218
+#: admin/handlers.py:210
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "Konto import misslyckades (%s): domänen existerar inte"
-#: admin/handlers.py:231 admin/models/mailbox.py:342
+#: admin/handlers.py:223 admin/models/mailbox.py:338
msgid "Mailbox {} already exists"
msgstr "Brevlåda {} finns redan"
-#: admin/handlers.py:239
+#: admin/handlers.py:231
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "Importering av konto misslyckades (%s): Fel kvota värde"
-#: admin/handlers.py:279
+#: admin/handlers.py:271
#: admin/templates/admin/_global_statistics_widget.html:17
#: admin/templates/admin/_per_domain_statistics_widget.html:8
#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "Konton"
-#: admin/handlers.py:295 admin/templates/admin/forward.html:2
+#: admin/handlers.py:287 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "Vidarebefordra"
-#: admin/lib.py:44
+#: admin/lib.py:38
msgid "A mailbox is required"
msgstr "En brevlåda krävs"
-#: admin/lib.py:134
+#: admin/lib.py:128
msgid "You are not allowed to import domains"
msgstr "Du tillåts inte att importera domäner"
-#: admin/lib.py:145
+#: admin/lib.py:139
msgid "You are not allowed to import domain aliases."
msgstr "Du tillåts inte att importera domän alias."
-#: admin/lib.py:183 admin/tests/test_mx.py:122
-#, python-format
-msgid "No DNS records found for %s"
+#: admin/lib.py:189 admin/tests/test_mx.py:127 admin/tests/test_mx.py:136
+#: admin/tests/test_mx.py:139
+#, fuzzy, python-format
+#| msgid "No DNS records found for %s"
+msgid "No DNS record found for %s"
msgstr "Inga DNS-poster hittades för %s"
-#: admin/lib.py:185 admin/tests/test_mx.py:125
-#, python-format
-msgid "No MX record for %s"
+#: admin/lib.py:192
+#, fuzzy, python-format
+#| msgid "No MX record for %s"
+msgid "No %(type)s record for %(name)s"
msgstr "Ingen MX-post för %s"
-#: admin/lib.py:187 admin/tests/test_mx.py:126
+#: admin/lib.py:196 admin/tests/test_mx.py:131
msgid "No working name servers found"
msgstr "Inga fungerande namnservrar hittades"
-#: admin/lib.py:190 admin/tests/test_mx.py:128
+#: admin/lib.py:199 admin/tests/test_mx.py:133
#, python-format
msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr "DNS-upplösning timeout, kan inte fråga %s för tillfället"
-#: admin/lib.py:201 admin/tests/test_mx.py:131
-#, python-format
-msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
-msgstr "Kunde inte slå upp ip adress för %(domain)s; %(error)s"
-
-#: admin/lib.py:212 admin/tests/test_mx.py:134
-#, python-format
-msgid "Invalid IP address format for %(domain)s; %(addr)s"
+#: admin/lib.py:227
+#, fuzzy, python-brace-format
+#| msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgid "Invalid IP address format for {domain}; {addr}"
msgstr "Ogiltigt IP-adress format för %(domain)s; %(addr)s"
-#: admin/management/commands/subcommands/_mx.py:136
+#: admin/management/commands/subcommands/_import.py:93
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_import.py:105
+#, python-format
+msgid "Reading CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_import.py:116
+#, python-format
+msgid "Unable to decode CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:132
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr "[modoboa] DNSBL fråga(or) för domän {}"
-#: admin/management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:152
msgid "Domain {} has no MX record"
msgstr "Domän {} saknar MX record"
-#: admin/management/commands/subcommands/_mx.py:167
+#: admin/management/commands/subcommands/_mx.py:163
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr "MX record för domän {0} är ogiltig: {1}"
-#: admin/management/commands/subcommands/_mx.py:184
+#: admin/management/commands/subcommands/_mx.py:180
msgid "[modoboa] MX issue(s) for domain {}"
msgstr "[modoboa] MX problem för domän {}"
-#: admin/models/alias.py:35 admin/models/mailbox.py:97
+#: admin/models/alias.py:32 admin/models/mailbox.py:95
msgid "address"
msgstr "adress"
-#: admin/models/alias.py:37
+#: admin/models/alias.py:34
msgid "The alias address."
msgstr "Alias adressen."
-#: admin/models/alias.py:42 admin/models/domain.py:48
-#: admin/models/domain_alias.py:47
+#: admin/models/alias.py:39 admin/models/domain.py:37
+#: admin/models/domain_alias.py:42
msgid "enabled"
msgstr "aktiverad"
-#: admin/models/alias.py:43 admin/models/domain_alias.py:48
+#: admin/models/alias.py:40 admin/models/domain_alias.py:43
msgid "Check to activate this alias"
msgstr "Markera för aktivera detta alias"
-#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
+#: admin/models/alias.py:45 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr "Beskrivning"
-#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
+#: admin/models/alias.py:47 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr "Går ut"
-#: admin/models/alias.py:93
+#: admin/models/alias.py:87
msgid "alias"
msgstr "alias"
-#: admin/models/alias.py:125
+#: admin/models/alias.py:119
msgid "Invalid address"
msgstr "Ogiltigt adress"
-#: admin/models/alias.py:146
+#: admin/models/alias.py:140
msgid "Local recipient {}@{} not found"
msgstr "Lokal mottagare {}@{} kunde inte hittas."
-#: admin/models/alias.py:176
+#: admin/models/alias.py:170
#, python-format
msgid "Invalid line: %s"
msgstr "Ogiltig rad: %s"
-#: admin/models/alias.py:182
+#: admin/models/alias.py:176
#, python-format
msgid "Domain '%s' does not exist"
msgstr "Domänen '%s' existerar inte"
-#: admin/models/domain.py:30 admin/models/domain_alias.py:39
+#: admin/models/domain.py:27 admin/models/domain_alias.py:34
msgid "name"
msgstr "namn"
-#: admin/models/domain.py:31
+#: admin/models/domain.py:28
msgid "The domain name"
msgstr "Domännamnet"
-#: admin/models/domain.py:35
-msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
-msgstr "Kvota i MB delade mellan brevlådor. 0 betyder ingen kvota."
-
-#: admin/models/domain.py:43
-msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
-msgstr "Standardkvota i MB applicerad på nya brevlådor. 0 betyder ingen kvota."
-
-#: admin/models/domain.py:49
+#: admin/models/domain.py:38
msgid "Check to activate this domain"
msgstr "Markera för att aktivera denna domän"
-#: admin/models/domain.py:54
+#: admin/models/domain.py:43
msgid "Enable DNS checks"
msgstr "Aktivera DNS kontroller"
-#: admin/models/domain.py:55
+#: admin/models/domain.py:44
msgid "Check to enable DNS checks for this domain"
msgstr "Markera för att aktivera DNS kontroller för den här domänen"
-#: admin/models/domain.py:62
+#: admin/models/domain.py:51
msgid "Enable DKIM signing"
msgstr "Aktivera DKIM-signering"
-#: admin/models/domain.py:64
+#: admin/models/domain.py:53
msgid ""
"If you activate this feature, a DKIM key will be generated for this domain."
-msgstr "Om du aktiverar den här funktionen genereras en DKIM-nyckel för den här domänen."
+msgstr ""
+"Om du aktiverar den här funktionen genereras en DKIM-nyckel för den här "
+"domänen."
-#: admin/models/domain.py:70
+#: admin/models/domain.py:59
msgid "Key length"
msgstr "Nyckellängd"
-#: admin/models/domain.py:285 admin/models/domain_alias.py:74
+#: admin/models/domain.py:312 admin/models/domain_alias.py:67
msgid "Invalid line"
msgstr "Ogiltig rad"
-#: admin/models/domain.py:295
+#: admin/models/domain.py:322
msgid "No authorized MX record found for domain {}"
msgstr "Inga auktoriserade MX inlägg finns för domänen {}"
-#: admin/models/domain.py:302
+#: admin/models/domain.py:329
msgid "Invalid quota value for domain '{}'"
msgstr "Ogiltig kvota värd för domän '{}'"
-#: admin/models/domain.py:309
+#: admin/models/domain.py:336
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr "Ogiltig standard brevlådekvota för domän '{}'"
-#: admin/models/domain.py:314
+#: admin/models/domain.py:341
msgid "Default mailbox quota cannot be greater than domain quota"
msgstr "Standard brevlådekvota kan inte vara större än domänkvotan"
-#: admin/models/domain_alias.py:40
+#: admin/models/domain_alias.py:35
msgid "The alias name"
msgstr "Alias namn"
-#: admin/models/domain_alias.py:42
+#: admin/models/domain_alias.py:37
msgid "target"
msgstr "mål"
-#: admin/models/domain_alias.py:43
+#: admin/models/domain_alias.py:38
msgid "The domain this alias points to"
msgstr "Domän dit detta alias pekar mot"
-#: admin/models/domain_alias.py:83
+#: admin/models/domain_alias.py:76
#, python-format
msgid "Unknown domain %s"
msgstr "Okänt kommando %s"
-#: admin/models/mailbox.py:99
+#: admin/models/mailbox.py:97
msgid "Mailbox address (without the @domain.tld part)"
msgstr "Brevlåde adress (utan @domain.tld)"
-#: admin/models/mailbox.py:165
+#: admin/models/mailbox.py:160
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "Kunde inte hitta brevlådans sökväg (%s)"
-#: admin/models/mailbox.py:258
+#: admin/models/mailbox.py:253
msgid "A quota is required"
msgstr "En kvota krävs"
-#: admin/models/mailbox.py:264
+#: admin/models/mailbox.py:259
msgid "Domain quota exceeded"
msgstr "Domänkvota överskriden"
-#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
+#: admin/serializers.py:37
+msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgstr "Standardkvota i MB applicerad på nya brevlådor. 0 betyder ingen kvota."
+
+#: admin/serializers.py:107 admin/serializers.py:312 admin/serializers.py:410
msgid "Permission denied."
msgstr "Åtskomst nekad."
-#: admin/serializers.py:118
+#: admin/serializers.py:158
msgid ""
"List of administered domains (resellers and domain administrators only)."
-msgstr "Lista över administrerade domäner (endast återförsäljare och domänadministratörer)."
+msgstr ""
+"Lista över administrerade domäner (endast återförsäljare och "
+"domänadministratörer)."
-#: admin/serializers.py:218
+#: admin/serializers.py:262
msgid "Not allowed for this role."
msgstr "Inte tillåtet för denna roll."
-#: admin/serializers.py:228
+#: admin/serializers.py:274
msgid "Must be equal to mailbox full_address"
msgstr "Måste vara lika med brevlådans full_address"
-#: admin/serializers.py:253
+#: admin/serializers.py:299
msgid "Local domain {} does not exist"
msgstr "Lokal domän {} finns inte"
-#: admin/serializers.py:347
+#: admin/serializers.py:397
msgid "A list of recipient"
msgstr "En lista på mottagare"
-#: admin/serializers.py:358
+#: admin/serializers.py:408
msgid "Domain not found."
msgstr "Domän kunde ej hittas."
-#: admin/serializers.py:407
+#: admin/serializers.py:457
msgid "You don't have access to this domain."
msgstr "Du har inte åtkomst till denna domän."
-#: admin/serializers.py:415
+#: admin/serializers.py:465
msgid "You don't have access to this mailbox."
msgstr "Du har inte åtkomst till denna brevlåda."
@@ -816,6 +945,19 @@ msgstr "Inaktiverad"
msgid "Awaiting checks"
msgstr "Väntar kontroll"
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+#, fuzzy
+#| msgid "No DNS records found for %s"
+msgid "No record found"
+msgstr "Inga DNS-poster hittades för %s"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
+msgstr ""
+
#: admin/templates/admin/_global_statistics_widget.html:4
msgid "Global statistics"
msgstr "Global statistik"
@@ -922,7 +1064,8 @@ msgid "Address"
msgstr "Adress"
#: admin/templates/admin/dnsbl_domain_detail.html:12
-#: admin/templates/admin/domain_detail.html:96
+#: admin/templates/admin/domain_detail.html:100
+#: admin/templates/admin/messages_log_headers.html:6
msgid "Status"
msgstr "Status"
@@ -954,11 +1097,8 @@ msgstr "Brevlåde alias"
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domain_detail.html:65
-#: admin/templates/admin/domain_general_form.html:4
-#: admin/templates/admin/domain_general_form.html:5
#: admin/templates/admin/domains_quotas.html:11
#: admin/templates/admin/domains_quotas.html:12
-#: admin/templates/admin/mailform.html:7
#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
@@ -978,32 +1118,36 @@ msgstr "använt"
msgid "allocated"
msgstr "allokerat"
-#: admin/templates/admin/domain_detail.html:91
+#: admin/templates/admin/domain_detail.html:92
msgid "DNS"
msgstr "DNS"
-#: admin/templates/admin/domain_detail.html:103
+#: admin/templates/admin/domain_detail.html:107
msgid "DKIM key"
msgstr "DKIM nyckel"
-#: admin/templates/admin/domain_detail.html:107
+#: admin/templates/admin/domain_detail.html:111
msgid "Show key"
msgstr "Visa nyckel"
-#: admin/templates/admin/domain_detail.html:110
+#: admin/templates/admin/domain_detail.html:113
+msgid "Generate new key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:115
msgid "Not generated"
msgstr "Ej genererad"
-#: admin/templates/admin/domain_detail.html:117
+#: admin/templates/admin/domain_detail.html:122
msgid "Administrators"
msgstr "Administratörer"
-#: admin/templates/admin/domain_detail.html:129
-#: admin/templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:134
+#: admin/templatetags/admin_tags.py:265
msgid "Remove this permission"
msgstr "Radera detta tillstånd"
-#: admin/templates/admin/domain_detail.html:134
+#: admin/templates/admin/domain_detail.html:139
msgid "No domain administrator defined yet."
msgstr "Ingen domänadministratöre ännu definierad."
@@ -1057,7 +1201,7 @@ msgstr "inaktiverad"
msgid "Automatically forward emails to another address"
msgstr "Vidarebefordra automatiskt e-post till en annan adress"
-#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:87
msgid "Update"
msgstr "Uppdatera"
@@ -1082,17 +1226,30 @@ msgid ""
"verify recipients
The first element of each line is "
"mandatory and must be equal to one of the previous values.
You can "
"use a different character as separator.
"
-msgstr "Tillhandahåll en CSV fil där raderna har följande format: - domain; name; quota; default mailbox quota; enabled
- domainalias; name; targeted domain; enabled
- relaydomain; name; target host; target port; service; enabled; verify recipients
Det första elementet i varje rad är obligatoriskt och måste vara lika med en av de tidigare värdena.
Du kan använda ett annat tecken som separator.
"
+msgstr ""
+"Tillhandahåll en CSV fil där raderna har följande format: "
+"- domain; name; quota; default mailbox quota; enabled
"
+"- domainalias; name; targeted domain; enabled
"
+"- relaydomain; name; target host; target port; service; enabled; "
+"verify recipients
Det första elementet i varje rad är "
+"obligatoriskt och måste vara lika med en av de tidigare värdena.
Du "
+"kan använda ett annat tecken som separator.
"
#: admin/templates/admin/import_identities_form.html:6
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
-"- account; loginname; password; first name; last name; enabled; group;"
-" address; quota; [, domain, ...]
- alias; address; enabled; "
+"
- account; loginname; password; first name; last name; enabled; group; "
+"address; quota; [, domain, ...]
- alias; address; enabled; "
"recipient; recipient; ...
The first element of each line "
-"is mandatory and must be equal to one of the previous values.
You can"
-" use a different character as separator.
"
-msgstr "Tillhandahåll en CSV-fil där raderna har följande format: - account; loginname; password; first name; last name; enabled; group; address; quota; [, domain, ...]
- alias; address; enabled; recipient; recipient; ...
Det första elementet i varje rad är obligatorisk och måste vara lika med en av de tidigare värdena.
Du kan använda ett annat tecken separator.
"
+"is mandatory and must be equal to one of the previous values. You can "
+"use a different character as separator.
"
+msgstr ""
+"Tillhandahåll en CSV-fil där raderna har följande format: "
+"- account; loginname; password; first name; last name; enabled; group; "
+"address; quota; [, domain, ...]
- alias; address; enabled; "
+"recipient; recipient; ...
Det första elementet i varje "
+"rad är obligatorisk och måste vara lika med en av de tidigare värdena.
"
+"Du kan använda ett annat tecken separator.
"
#: admin/templates/admin/importform.html:6
msgid "Help"
@@ -1114,6 +1271,22 @@ msgstr "Välj ett värde"
msgid "Use domain default value"
msgstr "Använd domänens standardvärde"
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:3
+msgid "Date"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:4
+msgid "From"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:5
+msgid "To"
+msgstr ""
+
#: admin/templates/admin/mx_domain_detail.html:11
msgid "Updated"
msgstr "Uppdaterad"
@@ -1131,14 +1304,19 @@ msgstr "Inget MX record funnet för denna domän."
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
"providers:"
-msgstr "Modoboa har upptäckt att domän %(domain)s är listad host följande DNSBL leverantörer:"
+msgstr ""
+"Modoboa har upptäckt att domän %(domain)s är listad host följande DNSBL "
+"leverantörer:"
#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
msgid ""
"The domain's reputation will be affected and there is a chance that emails "
"coming from it are considered as spam. You should contact those providers "
"and ask them to unlist detected IP address(es)."
-msgstr "Domänens rykte kommer påverkas och det finns en chans att epost som kommer från den anses vara skräppost. Du bör kontakta dessa leverantörer och be den att avlista upptäckt IP adress(er)."
+msgstr ""
+"Domänens rykte kommer påverkas och det finns en chans att epost som kommer "
+"från den anses vara skräppost. Du bör kontakta dessa leverantörer och be den "
+"att avlista upptäckt IP adress(er)."
#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
@@ -1149,132 +1327,176 @@ msgstr "Modoboa upptäckte att domänen %(domain)s saknar giltiga MX record:"
msgid "Search"
msgstr "Sök"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_m"
msgstr "enabled_m"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_f"
msgstr "enabled_f"
-#: admin/templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:45
msgid "List domains"
msgstr "Lista domäner"
-#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:50 admin/templatetags/admin_tags.py:105
msgid "List quotas"
msgstr "Lista kvoter"
-#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
-#: admin/views/import_.py:89 admin/views/import_.py:111
+#: admin/templatetags/admin_tags.py:62 admin/templatetags/admin_tags.py:110
+#: admin/views/import_.py:85 admin/views/import_.py:107
msgid "Import"
msgstr "Importera"
-#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
-#: admin/views/export.py:43 admin/views/export.py:71
+#: admin/templatetags/admin_tags.py:68 admin/templatetags/admin_tags.py:116
+#: admin/views/export.py:39 admin/views/export.py:67
msgid "Export"
msgstr "Exportera"
-#: admin/templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:100
msgid "List identities"
msgstr "Lista konton"
-#: admin/templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:135
msgid "View the domain's identities"
msgstr "Visa domänens konton"
-#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
-#: admin/templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:141 admin/templatetags/admin_tags.py:184
+#: admin/templatetags/admin_tags.py:197
msgid "Edit {}"
msgstr "Redigera {}"
-#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
-#: admin/templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:151 admin/templatetags/admin_tags.py:188
+#: admin/templatetags/admin_tags.py:202
#, python-format
msgid "Delete %s?"
msgstr "Radera %s?"
-#: admin/views/alias.py:35
+#: admin/tests/test_mx.py:130
+#, python-format
+msgid "No MX record for %s"
+msgstr "Ingen MX-post för %s"
+
+#: admin/tests/test_mx.py:142 admin/tests/test_mx.py:145
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr "Ogiltigt IP-adress format för %(domain)s; %(addr)s"
+
+#: admin/views/alias.py:29
msgid "Alias with this name already exists"
msgstr "Alias med detta namn existerar redan"
-#: admin/views/alias.py:60
+#: admin/views/alias.py:54
msgid "Create"
msgstr "Skapa"
-#: admin/views/alias.py:72
+#: admin/views/alias.py:66
msgid "New alias"
msgstr "Nytt alias"
-#: admin/views/alias.py:73
+#: admin/views/alias.py:67
msgid "Alias created"
msgstr "Alias skapat"
-#: admin/views/alias.py:85
+#: admin/views/alias.py:79
msgid "Alias modified"
msgstr "Alias ändrat"
-#: admin/views/alias.py:109
+#: admin/views/alias.py:103
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] "Alias raderat"
msgstr[1] "Alias raderade"
-#: admin/views/dns.py:32
+#: admin/views/dns.py:28
msgid "MX records of {}"
msgstr "MX record för {}"
-#: admin/views/dns.py:55
+#: admin/views/dns.py:51
msgid "DNSBL summary for {}"
msgstr "DNSBL summering för {}"
-#: admin/views/domain.py:188
+#: admin/views/domain.py:202
msgid "You can't delete your own domain"
msgstr "Du kan inte radera din egen domän"
-#: admin/views/domain.py:191
+#: admin/views/domain.py:205
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Domän raderad"
msgstr[1] "Domäner raderade"
-#: admin/views/export.py:42
+#: admin/views/export.py:38
msgid "Export identities"
msgstr "Exportera konton"
-#: admin/views/export.py:70
+#: admin/views/export.py:66
msgid "Export domains"
msgstr "Exportera domäner"
-#: admin/views/identity.py:113 admin/views/identity.py:206
-#: admin/views/identity.py:211
+#: admin/views/identity.py:107 admin/views/identity.py:201
+#: admin/views/identity.py:206
msgid "Invalid request"
msgstr "Ogiltig förfrågan"
-#: admin/views/identity.py:196
+#: admin/views/identity.py:191
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Konto raderat"
msgstr[1] "Konton raderade"
-#: admin/views/import_.py:65
+#: admin/views/import_.py:61
#, python-format
msgid "Object already exists: %s"
msgstr "Objektet existerar redan: %s"
-#: admin/views/import_.py:69
+#: admin/views/import_.py:65
#, python-format
msgid "%d objects imported successfully"
msgstr "%d objekt importerade"
-#: admin/views/import_.py:88
+#: admin/views/import_.py:84
msgid "Import domains"
msgstr "Importera domäner"
-#: admin/views/import_.py:110
+#: admin/views/import_.py:106
msgid "Import identities"
msgstr "Importera konton"
-#: admin/views/user.py:40
+#: admin/views/user.py:36
msgid "Forward updated"
msgstr "Vidarebefordring uppdaterad"
+
+#~ msgid "File name"
+#~ msgstr "Filnamn"
+
+#, fuzzy
+#~| msgid "No DNS records found for %s"
+#~ msgid "No {type} record found for MX {mx}"
+#~ msgstr "Inga DNS-poster hittades för %s"
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No A record found for MX %(domain)s"
+#~ msgstr "Inget MX record funnet för denna domän."
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No AAAA record found for MX %(domain)s"
+#~ msgstr "Inget MX record funnet för denna domän."
+
+#~ msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
+#~ msgstr "Kvota i MB delade mellan brevlådor. 0 betyder ingen kvota."
+
+#, fuzzy
+#~| msgid "No DNS records found for %s"
+#~ msgid "No DNS records found without MX for %s"
+#~ msgstr "Inga DNS-poster hittades för %s"
+
+#, fuzzy
+#~| msgid "No DNS records found for %s"
+#~ msgid "No DNS records found without MX for %(domain)s"
+#~ msgstr "Inga DNS-poster hittades för %s"
+
+#~ msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+#~ msgstr "Kunde inte slå upp ip adress för %(domain)s; %(error)s"
diff --git a/modoboa/admin/locale/sv/LC_MESSAGES/djangojs.po b/modoboa/admin/locale/sv/LC_MESSAGES/djangojs.po
index d8fe91577..8f26b0c22 100644
--- a/modoboa/admin/locale/sv/LC_MESSAGES/djangojs.po
+++ b/modoboa/admin/locale/sv/LC_MESSAGES/djangojs.po
@@ -1,53 +1,56 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# Olle Gustafsson , 2013,2015
msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-04 22:08+0100\n"
+"POT-Creation-Date: 2020-03-09 16:48+0100\n"
"PO-Revision-Date: 2017-09-22 09:50+0000\n"
"Last-Translator: Antoine Nguyen \n"
-"Language-Team: Swedish (http://www.transifex.com/tonio/modoboa/language/sv/)\n"
+"Language-Team: Swedish (http://www.transifex.com/tonio/modoboa/language/"
+"sv/)\n"
+"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: admin/static/admin/js/admin.js:131
+#: admin/static/admin/js/admin.js:129 admin/static/admin/js/admin.js:174
msgid "No more domain to show"
msgstr "Inga fler domäner att visa"
-#: admin/static/admin/js/admin.js:150
+#: admin/static/admin/js/admin.js:149
msgid "Do not delete domain directory"
msgstr "Radera inte domän katalog"
-#: admin/static/admin/js/admin.js:152
+#: admin/static/admin/js/admin.js:151
msgid "This operation will remove ALL data associated to this domain."
msgstr "Denna åtgärd kommer radera ALL data associerad med den här domänen."
-#: admin/static/admin/js/admin.js:153
+#: admin/static/admin/js/admin.js:152
msgid ""
"This operation will remove all data associated to this domain, excepting "
"accounts."
-msgstr "Den här operationen raderar all data som är associerad med denna domän, förutom konton."
+msgstr ""
+"Den här operationen raderar all data som är associerad med denna domän, "
+"förutom konton."
-#: admin/static/admin/js/admin.js:236
+#: admin/static/admin/js/admin.js:177 admin/static/admin/js/admin.js:433
+msgid "No more quota to show"
+msgstr "Ingen mer kvota att visa"
+
+#: admin/static/admin/js/admin.js:306
msgid "No domain administrator defined"
msgstr "Ingen domänadministratör definierad"
-#: admin/static/admin/js/admin.js:291 admin/static/admin/js/admin.js:359
+#: admin/static/admin/js/admin.js:362 admin/static/admin/js/admin.js:430
msgid "No more identity to show"
msgstr "Inga fler konton att visa"
-#: admin/static/admin/js/admin.js:333
+#: admin/static/admin/js/admin.js:404
msgid "Do not delete mailbox directory"
msgstr "Radera inte brevlådans katalog"
-
-#: admin/static/admin/js/admin.js:362
-msgid "No more quota to show"
-msgstr "Ingen mer kvota att visa"
diff --git a/modoboa/admin/locale/tr_TR/LC_MESSAGES/django.po b/modoboa/admin/locale/tr_TR/LC_MESSAGES/django.po
new file mode 100644
index 000000000..629500e29
--- /dev/null
+++ b/modoboa/admin/locale/tr_TR/LC_MESSAGES/django.po
@@ -0,0 +1,1378 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Ediz Duman , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Modoboa\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
+"PO-Revision-Date: 2018-10-17 12:40+0000\n"
+"Last-Translator: Antoine Nguyen \n"
+"Language-Team: Turkish (Turkey) (http://www.transifex.com/tonio/modoboa/"
+"language/tr_TR/)\n"
+"Language: tr_TR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: admin/api.py:142
+msgid "Here is your new Modoboa password: {}"
+msgstr ""
+
+#: admin/app_settings.py:20 admin/handlers.py:261
+#: admin/templates/admin/_global_statistics_widget.html:11
+#: admin/templates/admin/domains.html:5
+msgid "Domains"
+msgstr ""
+
+#: admin/app_settings.py:23
+msgid "Enable MX checks"
+msgstr ""
+
+#: admin/app_settings.py:26
+msgid "Check that every domain has a valid MX record"
+msgstr ""
+
+#: admin/app_settings.py:31
+msgid "Valid MXs"
+msgstr ""
+
+#: admin/app_settings.py:34
+msgid ""
+"A list of IP or network address every MX record should match. A warning will "
+"be sent if a record does not respect it."
+msgstr ""
+
+#: admin/app_settings.py:42
+msgid "New domains must use authorized MX(s)"
+msgstr ""
+
+#: admin/app_settings.py:45
+msgid ""
+"Prevent the creation of a new domain if its MX record does not use one of "
+"the defined addresses."
+msgstr ""
+
+#: admin/app_settings.py:51
+msgid "Enable SPF checks"
+msgstr ""
+
+#: admin/app_settings.py:54
+msgid "Check if every domain has a valid SPF record"
+msgstr ""
+
+#: admin/app_settings.py:59
+msgid "Enable DKIM checks"
+msgstr ""
+
+#: admin/app_settings.py:62
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr ""
+
+#: admin/app_settings.py:68
+msgid "Enable DMARC checks"
+msgstr ""
+
+#: admin/app_settings.py:71
+msgid "Check if every domain has a valid DMARC record"
+msgstr ""
+
+#: admin/app_settings.py:76
+msgid "Enable autoconfig checks"
+msgstr ""
+
+#: admin/app_settings.py:79
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr ""
+
+#: admin/app_settings.py:84
+msgid "Enable DNSBL checks"
+msgstr ""
+
+#: admin/app_settings.py:87
+msgid "Check every domain against major DNSBL providers"
+msgstr ""
+
+#: admin/app_settings.py:92
+msgid "Custom DNS server"
+msgstr ""
+
+#: admin/app_settings.py:95
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr ""
+
+#: admin/app_settings.py:100
+msgid "DKIM keys storage directory"
+msgstr ""
+
+#: admin/app_settings.py:103
+msgid ""
+"Absolute path of the directory where DKIM private keys will be stored. Make "
+"sure this directory belongs to root user and is not readable by the outside "
+"world."
+msgstr ""
+
+#: admin/app_settings.py:111
+msgid "Default DKIM key length"
+msgstr ""
+
+#: admin/app_settings.py:115
+msgid "Default length in bits for newly generated DKIM keys."
+msgstr ""
+
+#: admin/app_settings.py:119 admin/templates/admin/domain_detail.html:41
+msgid "Mailboxes"
+msgstr ""
+
+#: admin/app_settings.py:122
+msgid "Handle mailboxes on filesystem"
+msgstr ""
+
+#: admin/app_settings.py:125
+msgid ""
+"Rename or remove mailboxes on the filesystem when they get renamed or "
+"removed within Modoboa"
+msgstr ""
+
+#: admin/app_settings.py:131
+msgid "Mailboxes owner"
+msgstr "Posta kutularının sahibi"
+
+#: admin/app_settings.py:134
+msgid "The UNIX account who owns mailboxes on the filesystem"
+msgstr ""
+
+#: admin/app_settings.py:139
+msgid "Default domain quota"
+msgstr ""
+
+#: admin/app_settings.py:142
+msgid ""
+"Default quota (in MB) applied to freshly created domains with no value "
+"specified. A value of 0 means no quota."
+msgstr ""
+
+#: admin/app_settings.py:148 admin/forms/domain.py:49 admin/models/domain.py:33
+#: admin/templates/admin/domain_detail.html:64
+msgid "Default mailbox quota"
+msgstr ""
+
+#: admin/app_settings.py:151
+msgid ""
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
+"value specified. A value of 0 means no quota."
+msgstr ""
+
+#: admin/app_settings.py:157
+msgid "Automatic account removal"
+msgstr ""
+
+#: admin/app_settings.py:160
+msgid "When a mailbox is removed, also remove the associated account"
+msgstr ""
+
+#: admin/app_settings.py:164
+msgid "Automatic domain/mailbox creation"
+msgstr ""
+
+#: admin/app_settings.py:167
+msgid "Create a domain and a mailbox when an account is automatically created."
+msgstr ""
+
+#: admin/app_settings.py:173
+msgid "Create an alias when a mailbox is renamed"
+msgstr ""
+
+#: admin/app_settings.py:176
+msgid "Create an alias using the old address when a mailbox is renamed."
+msgstr ""
+
+#: admin/app_settings.py:225 admin/app_settings.py:233
+#: admin/forms/account.py:335
+msgid "Must be a positive integer"
+msgstr ""
+
+#: admin/app_settings.py:243
+msgid "Directory not found."
+msgstr ""
+
+#: admin/app_settings.py:249
+msgid "openssl not found, please make sure it is installed."
+msgstr ""
+
+#: admin/app_settings.py:263
+msgid "Define at least one authorized network / address"
+msgstr ""
+
+#: admin/app_settings.py:273
+msgid "Administration"
+msgstr "Yönetim"
+
+#: admin/constants.py:28 admin/forms/alias.py:43
+#: admin/templates/admin/_per_domain_statistics_widget.html:7
+#: admin/templates/admin/domains_quota_headers.html:2
+msgid "Domain"
+msgstr ""
+
+#: admin/constants.py:29
+msgid "Relay domain"
+msgstr ""
+
+#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:125
+msgid "Username"
+msgstr "Kullanıcı adı"
+
+#: admin/forms/account.py:34
+msgid ""
+"The user's name. Must be a valid e-mail address for simple users or "
+"administrators with a mailbox."
+msgstr ""
+
+#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29
+msgid "Role"
+msgstr "Rol"
+
+#: admin/forms/account.py:40
+msgid "Choose"
+msgstr "Seçme"
+
+#: admin/forms/account.py:41
+msgid "What level of permission this user will have"
+msgstr "Bu kullanıcının izni hangi düzeyde olacak"
+
+#: admin/forms/account.py:44 admin/forms/domain.py:245
+msgid "Random password"
+msgstr ""
+
+#: admin/forms/account.py:46
+msgid ""
+"Generate a random password. If you're updating this account and check this "
+"box, a new password will be generated."
+msgstr ""
+
+#: admin/forms/account.py:52
+msgid "Password"
+msgstr "Parola"
+
+#: admin/forms/account.py:57
+msgid "Confirmation"
+msgstr "Doğrulama"
+
+#: admin/forms/account.py:60
+msgid "Enter the same password as above, for verification."
+msgstr "Doğrulama için, yukarıdaki aynı şifreyi girin."
+
+#: admin/forms/account.py:72
+msgid "Enabled"
+msgstr "Etkin"
+
+#: admin/forms/account.py:167
+msgid "Only super administrators are allowed for this mode"
+msgstr "Sadece süper yöneticiler bu mod için izinli"
+
+#: admin/forms/account.py:178 admin/forms/account.py:180
+#: admin/forms/domain.py:162 admin/forms/domain.py:291
+#: admin/forms/domain.py:294 admin/serializers.py:287
+msgid "This field is required."
+msgstr ""
+
+#: admin/forms/account.py:186
+msgid "The two password fields didn't match."
+msgstr "İki şifre alanlarını eşleşmiyor."
+
+#: admin/forms/account.py:199
+msgid "You can't disable your own account"
+msgstr "Kendi hesabınızı devre dışı bırakamazsınız"
+
+#: admin/forms/account.py:222
+msgid "E-mail"
+msgstr "E-posta"
+
+#: admin/forms/account.py:224
+msgid "Create an alias using the old address"
+msgstr ""
+
+#: admin/forms/account.py:229 admin/forms/domain.py:41
+#: admin/templates/admin/account_detail.html:45
+#: admin/templates/admin/domain_detail.html:49
+msgid "Quota"
+msgstr "Kota"
+
+#: admin/forms/account.py:232
+msgid ""
+"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a "
+"custom value or use domain's default one. Leave empty to define an unlimited "
+"value (not allowed for domain administrators)."
+msgstr ""
+
+#: admin/forms/account.py:242 admin/forms/domain.py:31
+#: admin/templates/admin/domain_headers.html:4
+msgid "Alias(es)"
+msgstr ""
+
+#: admin/forms/account.py:245
+msgid ""
+"Alias(es) of this mailbox. Indicate only one address per input, press ENTER "
+"to add a new input. To create a catchall alias, just enter the domain name "
+"(@domain.tld)."
+msgstr ""
+
+#: admin/forms/account.py:251
+msgid "Sender addresses"
+msgstr ""
+
+#: admin/forms/account.py:254
+msgid ""
+"Additional sender address(es) for this account. The user will be allowed to "
+"send emails using this address, even if it does not exist locally. Indicate "
+"one address per input. Press ENTER to add a new input."
+msgstr ""
+
+#: admin/forms/account.py:309 admin/forms/alias.py:88
+#: admin/models/mailbox.py:310
+msgid "Domain does not exist"
+msgstr ""
+
+#: admin/forms/account.py:345
+msgid "Local domain does not exist"
+msgstr ""
+
+#: admin/forms/account.py:349 admin/forms/account.py:357
+#: admin/forms/alias.py:91
+msgid "You don't have access to this domain"
+msgstr ""
+
+#: admin/forms/account.py:456
+msgid "Domain(s)"
+msgstr ""
+
+#: admin/forms/account.py:458
+msgid "Domain(s) that user administrates"
+msgstr ""
+
+#: admin/forms/account.py:505 admin/forms/account.py:595
+#: admin/forms/domain.py:362 admin/forms/domain.py:433
+msgid "General"
+msgstr "Genel"
+
+#: admin/forms/account.py:509
+msgid "Profile"
+msgstr ""
+
+#: admin/forms/account.py:513 admin/forms/account.py:601
+msgid "Mail"
+msgstr "Posta"
+
+#: admin/forms/account.py:516
+msgid "Permissions"
+msgstr "İzinler"
+
+#: admin/forms/account.py:584
+msgid "Account updated"
+msgstr "Hesap güncellendi"
+
+#: admin/forms/account.py:609
+msgid "New account"
+msgstr "Yeni hesap"
+
+#: admin/forms/account.py:619
+msgid "Account created"
+msgstr ""
+
+#: admin/forms/alias.py:20
+msgid "Random address"
+msgstr ""
+
+#: admin/forms/alias.py:23
+msgid "Email address"
+msgstr "E-posta adresi"
+
+#: admin/forms/alias.py:25
+msgid ""
+"The alias address. To create a catchall alias, just enter the domain name "
+"(@domain.tld)."
+msgstr ""
+
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
+msgid "Recipients"
+msgstr "Alıcılar"
+
+#: admin/forms/alias.py:33
+msgid ""
+"Addresses this alias will point to. Indicate only one address per input, "
+"press ENTER to add a new input."
+msgstr ""
+
+#: admin/forms/alias.py:108 admin/forms/alias.py:110
+msgid "This field is required"
+msgstr ""
+
+#: admin/forms/alias.py:114
+msgid "No recipient defined"
+msgstr ""
+
+#: admin/forms/domain.py:28
+#: admin/templates/admin/_global_statistics_widget.html:7
+msgid "Type"
+msgstr "Tip"
+
+#: admin/forms/domain.py:34
+msgid ""
+"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
+"add a new input."
+msgstr ""
+
+#: admin/forms/domain.py:39
+msgid "Key selector"
+msgstr ""
+
+#: admin/forms/domain.py:44 admin/serializers.py:30
+msgid ""
+"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
+"A value of 0 means no quota."
+msgstr ""
+
+#: admin/forms/domain.py:52
+msgid ""
+"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
+"GB. A value of 0 means no quota."
+msgstr ""
+
+#: admin/forms/domain.py:94 admin/handlers.py:161
+msgid "domain alias"
+msgstr ""
+
+#: admin/forms/domain.py:97 admin/forms/domain.py:173 admin/forms/domain.py:181
+#, python-format
+msgid "A %s with this name already exists"
+msgstr ""
+
+#: admin/forms/domain.py:105 admin/serializers.py:64
+msgid "No authorized MX record found for this domain"
+msgstr ""
+
+#: admin/forms/domain.py:117
+msgid "DKIM keys storage directory not configured"
+msgstr ""
+
+#: admin/forms/domain.py:147 admin/serializers.py:82
+msgid "Cannot be greater than domain quota"
+msgstr ""
+
+#: admin/forms/domain.py:152
+msgid "You can't define an unlimited quota."
+msgstr ""
+
+#: admin/forms/domain.py:173 admin/forms/domain.py:178
+msgid "domain"
+msgstr ""
+
+#: admin/forms/domain.py:227
+msgid "Create a domain administrator"
+msgstr ""
+
+#: admin/forms/domain.py:230
+msgid "Automatically create an administrator for this domain"
+msgstr ""
+
+#: admin/forms/domain.py:235 admin/templates/admin/domain_detail.html:125
+#: admin/templates/admin/domain_headers.html:3
+#: admin/templates/admin/identity_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:9
+msgid "Name"
+msgstr ""
+
+#: admin/forms/domain.py:238
+msgid ""
+"The administrator's name. Don't include the domain's name here, it will be "
+"automatically appended."
+msgstr ""
+
+#: admin/forms/domain.py:248
+msgid "Generate a random password for the administrator."
+msgstr ""
+
+#: admin/forms/domain.py:254
+msgid "With a mailbox"
+msgstr ""
+
+#: admin/forms/domain.py:257
+msgid "Create a mailbox for the administrator."
+msgstr ""
+
+#: admin/forms/domain.py:263
+msgid "Create aliases"
+msgstr ""
+
+#: admin/forms/domain.py:266
+msgid "Automatically create standard aliases for this domain"
+msgstr ""
+
+#: admin/forms/domain.py:282
+msgid "Invalid format"
+msgstr "Geçersiz format"
+
+#: admin/forms/domain.py:311
+#, python-format
+msgid "User '%s' already exists"
+msgstr ""
+
+#: admin/forms/domain.py:423
+msgid "Domain modified"
+msgstr ""
+
+#: admin/forms/domain.py:444
+msgid "Options"
+msgstr "Seçenekler"
+
+#: admin/forms/domain.py:452
+msgid "New domain"
+msgstr ""
+
+#: admin/forms/domain.py:465
+msgid "Domain created"
+msgstr ""
+
+#: admin/forms/export.py:9 admin/forms/import_.py:13
+msgid "Separator"
+msgstr "Ayraç"
+
+#: admin/forms/forward.py:12
+msgid "Recipient(s)"
+msgstr "Alıcı (lar)"
+
+#: admin/forms/forward.py:16
+msgid "Indicate one or more recipients separated by a ','"
+msgstr ""
+
+#: admin/forms/forward.py:19
+msgid "Keep local copies"
+msgstr ""
+
+#: admin/forms/forward.py:22
+msgid "Forward messages and store copies into your local mailbox"
+msgstr ""
+
+#: admin/forms/import_.py:11
+msgid "Select a file"
+msgstr ""
+
+#: admin/forms/import_.py:19
+msgid "Continue on error"
+msgstr ""
+
+#: admin/forms/import_.py:20
+msgid "Don't treat duplicated objects as error"
+msgstr ""
+
+#: admin/forms/import_.py:38
+msgid "Crypt passwords"
+msgstr ""
+
+#: admin/forms/import_.py:40
+msgid "Check this option if passwords contained in your file are not crypted"
+msgstr ""
+
+#: admin/handlers.py:210
+#, python-format
+msgid "Account import failed (%s): domain does not exist"
+msgstr ""
+
+#: admin/handlers.py:223 admin/models/mailbox.py:338
+msgid "Mailbox {} already exists"
+msgstr ""
+
+#: admin/handlers.py:231
+#, python-format
+msgid "Account import failed (%s): wrong quota value"
+msgstr ""
+
+#: admin/handlers.py:271
+#: admin/templates/admin/_global_statistics_widget.html:17
+#: admin/templates/admin/_per_domain_statistics_widget.html:8
+#: admin/templates/admin/identities.html:5
+msgid "Identities"
+msgstr ""
+
+#: admin/handlers.py:287 admin/templates/admin/forward.html:2
+msgid "Forward"
+msgstr ""
+
+#: admin/lib.py:38
+msgid "A mailbox is required"
+msgstr ""
+
+#: admin/lib.py:128
+msgid "You are not allowed to import domains"
+msgstr ""
+
+#: admin/lib.py:139
+msgid "You are not allowed to import domain aliases."
+msgstr ""
+
+#: admin/lib.py:189 admin/tests/test_mx.py:127 admin/tests/test_mx.py:136
+#: admin/tests/test_mx.py:139
+#, python-format
+msgid "No DNS record found for %s"
+msgstr ""
+
+#: admin/lib.py:192
+#, python-format
+msgid "No %(type)s record for %(name)s"
+msgstr ""
+
+#: admin/lib.py:196 admin/tests/test_mx.py:131
+msgid "No working name servers found"
+msgstr ""
+
+#: admin/lib.py:199 admin/tests/test_mx.py:133
+#, python-format
+msgid "DNS resolution timeout, unable to query %s at the moment"
+msgstr ""
+
+#: admin/lib.py:227
+#, python-brace-format
+msgid "Invalid IP address format for {domain}; {addr}"
+msgstr ""
+
+#: admin/management/commands/subcommands/_import.py:93
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_import.py:105
+#, python-format
+msgid "Reading CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_import.py:116
+#, python-format
+msgid "Unable to decode CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:132
+msgid "[modoboa] DNSBL issue(s) for domain {}"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:152
+msgid "Domain {} has no MX record"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:163
+#, python-brace-format
+msgid "MX record for domain {0} is invalid: {1}"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:180
+msgid "[modoboa] MX issue(s) for domain {}"
+msgstr ""
+
+#: admin/models/alias.py:32 admin/models/mailbox.py:95
+msgid "address"
+msgstr ""
+
+#: admin/models/alias.py:34
+msgid "The alias address."
+msgstr ""
+
+#: admin/models/alias.py:39 admin/models/domain.py:37
+#: admin/models/domain_alias.py:42
+msgid "enabled"
+msgstr ""
+
+#: admin/models/alias.py:40 admin/models/domain_alias.py:43
+msgid "Check to activate this alias"
+msgstr ""
+
+#: admin/models/alias.py:45 admin/templates/admin/alias_detail.html:32
+msgid "Description"
+msgstr ""
+
+#: admin/models/alias.py:47 admin/templates/admin/alias_detail.html:29
+msgid "Expire at"
+msgstr ""
+
+#: admin/models/alias.py:87
+msgid "alias"
+msgstr ""
+
+#: admin/models/alias.py:119
+msgid "Invalid address"
+msgstr ""
+
+#: admin/models/alias.py:140
+msgid "Local recipient {}@{} not found"
+msgstr ""
+
+#: admin/models/alias.py:170
+#, python-format
+msgid "Invalid line: %s"
+msgstr ""
+
+#: admin/models/alias.py:176
+#, python-format
+msgid "Domain '%s' does not exist"
+msgstr ""
+
+#: admin/models/domain.py:27 admin/models/domain_alias.py:34
+msgid "name"
+msgstr ""
+
+#: admin/models/domain.py:28
+msgid "The domain name"
+msgstr ""
+
+#: admin/models/domain.py:38
+msgid "Check to activate this domain"
+msgstr ""
+
+#: admin/models/domain.py:43
+msgid "Enable DNS checks"
+msgstr ""
+
+#: admin/models/domain.py:44
+msgid "Check to enable DNS checks for this domain"
+msgstr ""
+
+#: admin/models/domain.py:51
+msgid "Enable DKIM signing"
+msgstr ""
+
+#: admin/models/domain.py:53
+msgid ""
+"If you activate this feature, a DKIM key will be generated for this domain."
+msgstr ""
+
+#: admin/models/domain.py:59
+msgid "Key length"
+msgstr ""
+
+#: admin/models/domain.py:312 admin/models/domain_alias.py:67
+msgid "Invalid line"
+msgstr ""
+
+#: admin/models/domain.py:322
+msgid "No authorized MX record found for domain {}"
+msgstr ""
+
+#: admin/models/domain.py:329
+msgid "Invalid quota value for domain '{}'"
+msgstr ""
+
+#: admin/models/domain.py:336
+msgid "Invalid default mailbox quota value for domain '{}'"
+msgstr ""
+
+#: admin/models/domain.py:341
+msgid "Default mailbox quota cannot be greater than domain quota"
+msgstr ""
+
+#: admin/models/domain_alias.py:35
+msgid "The alias name"
+msgstr ""
+
+#: admin/models/domain_alias.py:37
+msgid "target"
+msgstr ""
+
+#: admin/models/domain_alias.py:38
+msgid "The domain this alias points to"
+msgstr ""
+
+#: admin/models/domain_alias.py:76
+#, python-format
+msgid "Unknown domain %s"
+msgstr ""
+
+#: admin/models/mailbox.py:97
+msgid "Mailbox address (without the @domain.tld part)"
+msgstr ""
+
+#: admin/models/mailbox.py:160
+#, python-format
+msgid "Failed to retrieve mailbox location (%s)"
+msgstr ""
+
+#: admin/models/mailbox.py:253
+msgid "A quota is required"
+msgstr ""
+
+#: admin/models/mailbox.py:259
+msgid "Domain quota exceeded"
+msgstr ""
+
+#: admin/serializers.py:37
+msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgstr ""
+
+#: admin/serializers.py:107 admin/serializers.py:312 admin/serializers.py:410
+msgid "Permission denied."
+msgstr ""
+
+#: admin/serializers.py:158
+msgid ""
+"List of administered domains (resellers and domain administrators only)."
+msgstr ""
+
+#: admin/serializers.py:262
+msgid "Not allowed for this role."
+msgstr ""
+
+#: admin/serializers.py:274
+msgid "Must be equal to mailbox full_address"
+msgstr ""
+
+#: admin/serializers.py:299
+msgid "Local domain {} does not exist"
+msgstr ""
+
+#: admin/serializers.py:397
+msgid "A list of recipient"
+msgstr ""
+
+#: admin/serializers.py:408
+msgid "Domain not found."
+msgstr ""
+
+#: admin/serializers.py:457
+msgid "You don't have access to this domain."
+msgstr ""
+
+#: admin/serializers.py:465
+msgid "You don't have access to this mailbox."
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:6
+#: admin/templates/admin/_domain_dkim_key.html:20
+msgid "Close"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:7
+#, python-format
+msgid "DKIM public key for %(domain)s"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:11
+msgid "Raw format"
+msgstr ""
+
+#: admin/templates/admin/_domain_dkim_key.html:15
+msgid "Bind/named format"
+msgstr ""
+
+#: admin/templates/admin/_domain_dnschecks_status.html:4
+msgctxt "checks"
+msgid "Disabled"
+msgstr ""
+
+#: admin/templates/admin/_domain_dnschecks_status.html:6
+msgid "Awaiting checks"
+msgstr ""
+
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+msgid "No record found"
+msgstr ""
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
+msgstr ""
+
+#: admin/templates/admin/_global_statistics_widget.html:4
+msgid "Global statistics"
+msgstr ""
+
+#: admin/templates/admin/_global_statistics_widget.html:8
+msgid "Quantity"
+msgstr ""
+
+#: admin/templates/admin/_global_statistics_widget.html:14
+#: admin/templates/admin/domain_detail.html:37
+#: admin/templates/admin/domain_detail.html:73
+msgid "Domain aliases"
+msgstr ""
+
+#: admin/templates/admin/_per_domain_statistics_widget.html:4
+msgid "Per-domain statistics"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:16
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/domain_detail.html:19
+#: admin/templates/admin/identities_table.html:7
+msgid "(disabled)"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:22
+#: admin/templates/admin/alias_detail.html:22
+#: admin/templates/admin/domain_detail.html:25
+msgid "Summary"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:26
+msgid "Full name"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:32
+#: admin/templates/admin/alias_detail.html:26
+msgid "Created"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:35
+msgid "Last login"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:38
+msgid "Secondary email"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:38
+#: admin/templates/admin/account_detail.html:41
+msgid "Not defined"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:41
+msgid "Phone number"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:55
+msgid "Administered domains"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:61
+msgid "No domain defined."
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:75
+msgid "Aliases"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:81
+msgid "No alias defined"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:87
+msgid "Additional sender addresses"
+msgstr ""
+
+#: admin/templates/admin/account_detail.html:93
+msgid "No sender address defined"
+msgstr ""
+
+#: admin/templates/admin/account_general_form.html:12
+#: admin/templates/admin/aliasform.html:13
+msgid "Domain is disabled"
+msgstr ""
+
+#: admin/templates/admin/alias_detail.html:16
+#: admin/templates/admin/identities.html:33
+msgid "Alias"
+msgstr ""
+
+#: admin/templates/admin/alias_detail.html:27
+msgid "Modified"
+msgstr ""
+
+#: admin/templates/admin/dnsbl_domain_detail.html:10
+msgid "Provider"
+msgstr ""
+
+#: admin/templates/admin/dnsbl_domain_detail.html:11
+#: admin/templates/admin/identities_quota_headers.html:2
+#: admin/templates/admin/mx_domain_detail.html:10
+msgid "Address"
+msgstr ""
+
+#: admin/templates/admin/dnsbl_domain_detail.html:12
+#: admin/templates/admin/domain_detail.html:100
+#: admin/templates/admin/messages_log_headers.html:6
+msgid "Status"
+msgstr ""
+
+#: admin/templates/admin/dnsbl_domain_detail.html:21
+msgid "listed"
+msgstr ""
+
+#: admin/templates/admin/dnsbl_domain_detail.html:29
+msgid "Everything is fine, this domain is not listed."
+msgstr ""
+
+#: admin/templates/admin/dnsbl_domain_detail.html:32
+msgid "No information available for this domain."
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:29
+msgid "Creation date"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:33
+msgid "Last modification date"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:45
+msgid "Mailbox aliases"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:50
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domain_detail.html:65
+#: admin/templates/admin/domains_quotas.html:11
+#: admin/templates/admin/domains_quotas.html:12
+#: admin/templates/admin/newdomainform.html:3
+msgid "MB"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:54
+msgid "Usage"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:57
+#: admin/templates/admin/domains_quotas.html:11
+msgctxt "quota"
+msgid "used"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:58
+#: admin/templates/admin/domains_quotas.html:12
+msgid "allocated"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:92
+msgid "DNS"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:107
+msgid "DKIM key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:111
+msgid "Show key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:113
+msgid "Generate new key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:115
+msgid "Not generated"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:122
+msgid "Administrators"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:134
+#: admin/templatetags/admin_tags.py:265
+msgid "Remove this permission"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:139
+msgid "No domain administrator defined yet."
+msgstr ""
+
+#: admin/templates/admin/domain_headers.html:5
+#: admin/templates/admin/identity_headers.html:4
+msgid "Tags"
+msgstr ""
+
+#: admin/templates/admin/domain_headers.html:7
+msgid "DNS status"
+msgstr ""
+
+#: admin/templates/admin/domain_headers.html:9
+#: admin/templates/admin/identity_headers.html:5
+msgid "Actions"
+msgstr ""
+
+#: admin/templates/admin/domain_options_form.html:10
+msgid "You can't create a new domain administrator"
+msgstr ""
+
+#: admin/templates/admin/domains.html:28
+#: admin/templates/admin/identities.html:29
+msgid "Add"
+msgstr ""
+
+#: admin/templates/admin/domains_quota_headers.html:3
+#: admin/templates/admin/identities_quota_headers.html:4
+msgid "Limit"
+msgstr ""
+
+#: admin/templates/admin/domains_quota_headers.html:4
+msgid "Used"
+msgstr ""
+
+#: admin/templates/admin/domains_quota_headers.html:5
+msgid "Allocated"
+msgstr ""
+
+#: admin/templates/admin/domains_quota_headers.html:6
+#: admin/templates/admin/identities_quota_headers.html:5
+#, python-format
+msgid "Usage (%%)"
+msgstr ""
+
+#: admin/templates/admin/domains_table.html:5
+msgid "disabled"
+msgstr ""
+
+#: admin/templates/admin/forward.html:2
+msgid "Automatically forward emails to another address"
+msgstr ""
+
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:87
+msgid "Update"
+msgstr ""
+
+#: admin/templates/admin/identities.html:32
+msgid "Account"
+msgstr ""
+
+#: admin/templates/admin/identities_quota_headers.html:3
+msgid "Value"
+msgstr ""
+
+#: admin/templates/admin/identity_headers.html:3
+msgid "Fullname/Recipient"
+msgstr ""
+
+#: admin/templates/admin/import_domains_form.html:6
+msgid ""
+"Provide a CSV file where lines respect one of the following formats: "
+"- domain; name; quota; default mailbox quota; enabled
"
+"- domainalias; name; targeted domain; enabled
"
+"- relaydomain; name; target host; target port; service; enabled; "
+"verify recipients
The first element of each line is "
+"mandatory and must be equal to one of the previous values.
You can "
+"use a different character as separator.
"
+msgstr ""
+
+#: admin/templates/admin/import_identities_form.html:6
+msgid ""
+"Provide a CSV file where lines respect one of the following formats: "
+"- account; loginname; password; first name; last name; enabled; group; "
+"address; quota; [, domain, ...]
- alias; address; enabled; "
+"recipient; recipient; ...
The first element of each line "
+"is mandatory and must be equal to one of the previous values.
You can "
+"use a different character as separator.
"
+msgstr ""
+
+#: admin/templates/admin/importform.html:6
+msgid "Help"
+msgstr ""
+
+#: admin/templates/admin/importform.html:13
+msgid "Importing..."
+msgstr ""
+
+#: admin/templates/admin/index.html:6
+msgid "Admin"
+msgstr ""
+
+#: admin/templates/admin/mailboxes_raw.html:3
+msgid "Choose a value"
+msgstr ""
+
+#: admin/templates/admin/mailform.html:7
+msgid "Use domain default value"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:3
+msgid "Date"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:4
+msgid "From"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:5
+msgid "To"
+msgstr ""
+
+#: admin/templates/admin/mx_domain_detail.html:11
+msgid "Updated"
+msgstr ""
+
+#: admin/templates/admin/mx_domain_detail.html:23
+msgid "This IP does not match any of the valid MXs defined in parameters"
+msgstr ""
+
+#: admin/templates/admin/mx_domain_detail.html:36
+msgid "No MX record found for this domain."
+msgstr ""
+
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
+#, python-format
+msgid ""
+"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
+"providers:"
+msgstr ""
+
+#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
+msgid ""
+"The domain's reputation will be affected and there is a chance that emails "
+"coming from it are considered as spam. You should contact those providers "
+"and ask them to unlist detected IP address(es)."
+msgstr ""
+
+#: admin/templates/admin/notifications/domain_invalid_mx.html:3
+#, python-format
+msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
+msgstr ""
+
+#: admin/templates/admin/searchform.html:6
+msgid "Search"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:19
+msgid "enabled_m"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:19
+msgid "enabled_f"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:45
+msgid "List domains"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:50 admin/templatetags/admin_tags.py:105
+msgid "List quotas"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:62 admin/templatetags/admin_tags.py:110
+#: admin/views/import_.py:85 admin/views/import_.py:107
+msgid "Import"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:68 admin/templatetags/admin_tags.py:116
+#: admin/views/export.py:39 admin/views/export.py:67
+msgid "Export"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:100
+msgid "List identities"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:135
+msgid "View the domain's identities"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:141 admin/templatetags/admin_tags.py:184
+#: admin/templatetags/admin_tags.py:197
+msgid "Edit {}"
+msgstr ""
+
+#: admin/templatetags/admin_tags.py:151 admin/templatetags/admin_tags.py:188
+#: admin/templatetags/admin_tags.py:202
+#, python-format
+msgid "Delete %s?"
+msgstr ""
+
+#: admin/tests/test_mx.py:130
+#, python-format
+msgid "No MX record for %s"
+msgstr ""
+
+#: admin/tests/test_mx.py:142 admin/tests/test_mx.py:145
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: admin/views/alias.py:29
+msgid "Alias with this name already exists"
+msgstr ""
+
+#: admin/views/alias.py:54
+msgid "Create"
+msgstr ""
+
+#: admin/views/alias.py:66
+msgid "New alias"
+msgstr ""
+
+#: admin/views/alias.py:67
+msgid "Alias created"
+msgstr ""
+
+#: admin/views/alias.py:79
+msgid "Alias modified"
+msgstr ""
+
+#: admin/views/alias.py:103
+msgid "Alias deleted"
+msgid_plural "Aliases deleted"
+msgstr[0] ""
+msgstr[1] ""
+
+#: admin/views/dns.py:28
+msgid "MX records of {}"
+msgstr ""
+
+#: admin/views/dns.py:51
+msgid "DNSBL summary for {}"
+msgstr ""
+
+#: admin/views/domain.py:202
+msgid "You can't delete your own domain"
+msgstr ""
+
+#: admin/views/domain.py:205
+msgid "Domain deleted"
+msgid_plural "Domains deleted"
+msgstr[0] ""
+msgstr[1] ""
+
+#: admin/views/export.py:38
+msgid "Export identities"
+msgstr ""
+
+#: admin/views/export.py:66
+msgid "Export domains"
+msgstr ""
+
+#: admin/views/identity.py:107 admin/views/identity.py:201
+#: admin/views/identity.py:206
+msgid "Invalid request"
+msgstr ""
+
+#: admin/views/identity.py:191
+msgid "Account deleted"
+msgid_plural "Accounts deleted"
+msgstr[0] ""
+msgstr[1] ""
+
+#: admin/views/import_.py:61
+#, python-format
+msgid "Object already exists: %s"
+msgstr ""
+
+#: admin/views/import_.py:65
+#, python-format
+msgid "%d objects imported successfully"
+msgstr ""
+
+#: admin/views/import_.py:84
+msgid "Import domains"
+msgstr ""
+
+#: admin/views/import_.py:106
+msgid "Import identities"
+msgstr ""
+
+#: admin/views/user.py:36
+msgid "Forward updated"
+msgstr ""
+
+#~ msgid "File name"
+#~ msgstr "Dosya adı"
diff --git a/modoboa/admin/locale/tr_TR/LC_MESSAGES/djangojs.po b/modoboa/admin/locale/tr_TR/LC_MESSAGES/djangojs.po
new file mode 100644
index 000000000..9af4cba4b
--- /dev/null
+++ b/modoboa/admin/locale/tr_TR/LC_MESSAGES/djangojs.po
@@ -0,0 +1,54 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Ediz Duman , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Modoboa\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-03-09 16:48+0100\n"
+"PO-Revision-Date: 2017-09-22 09:50+0000\n"
+"Last-Translator: Ediz Duman \n"
+"Language-Team: Turkish (Turkey) (http://www.transifex.com/tonio/modoboa/"
+"language/tr_TR/)\n"
+"Language: tr_TR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: admin/static/admin/js/admin.js:129 admin/static/admin/js/admin.js:174
+msgid "No more domain to show"
+msgstr "Gösterilecek başka domain yok"
+
+#: admin/static/admin/js/admin.js:149
+msgid "Do not delete domain directory"
+msgstr "Domain dizini silmeyin"
+
+#: admin/static/admin/js/admin.js:151
+msgid "This operation will remove ALL data associated to this domain."
+msgstr "Bu işlem, bu domain ilişkili TÜM verileri kaldıracaktır."
+
+#: admin/static/admin/js/admin.js:152
+msgid ""
+"This operation will remove all data associated to this domain, excepting "
+"accounts."
+msgstr "Bu işlem hesap dışında bu domain ilişkili tüm verileri kaldıracaktır."
+
+#: admin/static/admin/js/admin.js:177 admin/static/admin/js/admin.js:433
+msgid "No more quota to show"
+msgstr "Gösterilecek kota yok"
+
+#: admin/static/admin/js/admin.js:306
+msgid "No domain administrator defined"
+msgstr "domain yöneticisi tanımlanmadı"
+
+#: admin/static/admin/js/admin.js:362 admin/static/admin/js/admin.js:430
+msgid "No more identity to show"
+msgstr "Gösterilecek daha fazla kimlik yok"
+
+#: admin/static/admin/js/admin.js:404
+msgid "Do not delete mailbox directory"
+msgstr "Posta kutusu dizini silmeyin"
diff --git a/modoboa/admin/locale/zh_TW/LC_MESSAGES/django.po b/modoboa/admin/locale/zh_TW/LC_MESSAGES/django.po
index 81ff495bc..8622c7da9 100644
--- a/modoboa/admin/locale/zh_TW/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/zh_TW/LC_MESSAGES/django.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# akong , 2018
# freedom lee , 2018
@@ -10,263 +10,339 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-25 09:09+0100\n"
+"POT-Creation-Date: 2020-05-06 13:15+0200\n"
"PO-Revision-Date: 2018-07-09 04:17+0000\n"
"Last-Translator: akong \n"
-"Language-Team: Chinese (Taiwan) (http://www.transifex.com/tonio/modoboa/language/zh_TW/)\n"
+"Language-Team: Chinese (Taiwan) (http://www.transifex.com/tonio/modoboa/"
+"language/zh_TW/)\n"
+"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: admin/app_settings.py:22 admin/handlers.py:269
+#: admin/api.py:142
+msgid "Here is your new Modoboa password: {}"
+msgstr ""
+
+#: admin/app_settings.py:20 admin/handlers.py:261
#: admin/templates/admin/_global_statistics_widget.html:11
#: admin/templates/admin/domains.html:5
msgid "Domains"
msgstr "網域"
-#: admin/app_settings.py:25
+#: admin/app_settings.py:23
msgid "Enable MX checks"
msgstr "啟用 MX 檢查"
-#: admin/app_settings.py:28
+#: admin/app_settings.py:26
msgid "Check that every domain has a valid MX record"
msgstr "檢查每個網域都有正確的 MX 紀錄"
-#: admin/app_settings.py:33
+#: admin/app_settings.py:31
msgid "Valid MXs"
msgstr "正確的 MX"
-#: admin/app_settings.py:36
+#: admin/app_settings.py:34
msgid ""
-"A list of IP or network address every MX record should match. A warning will"
-" be sent if a record does not respect it."
-msgstr "每個 MX 紀錄應該要跟列出來的 IP 或網路位址一樣。假如紀錄不同的會有警告送出。"
+"A list of IP or network address every MX record should match. A warning will "
+"be sent if a record does not respect it."
+msgstr ""
+"每個 MX 紀錄應該要跟列出來的 IP 或網路位址一樣。假如紀錄不同的會有警告送出。"
-#: admin/app_settings.py:44
+#: admin/app_settings.py:42
msgid "New domains must use authorized MX(s)"
msgstr "新的網域必須要有已驗立的 MX(s)"
-#: admin/app_settings.py:47
+#: admin/app_settings.py:45
msgid ""
"Prevent the creation of a new domain if its MX record does not use one of "
"the defined addresses."
msgstr "假如 MX 紀錄未使用定義的位址請避免建立新的網域。"
-#: admin/app_settings.py:53
+#: admin/app_settings.py:51
+#, fuzzy
+#| msgid "Enable DNS checks"
+msgid "Enable SPF checks"
+msgstr "啟用 DNS 檢查"
+
+#: admin/app_settings.py:54
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid SPF record"
+msgstr "檢查每個網域都有正確的 MX 紀錄"
+
+#: admin/app_settings.py:59
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DKIM checks"
+msgstr "啟用 MX 檢查"
+
+#: admin/app_settings.py:62
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain with DKIM signin enabled has a valid DNS record"
+msgstr "檢查每個網域都有正確的 MX 紀錄"
+
+#: admin/app_settings.py:68
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable DMARC checks"
+msgstr "啟用 MX 檢查"
+
+#: admin/app_settings.py:71
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid DMARC record"
+msgstr "檢查每個網域都有正確的 MX 紀錄"
+
+#: admin/app_settings.py:76
+#, fuzzy
+#| msgid "Enable MX checks"
+msgid "Enable autoconfig checks"
+msgstr "啟用 MX 檢查"
+
+#: admin/app_settings.py:79
+#, fuzzy
+#| msgid "Check that every domain has a valid MX record"
+msgid "Check if every domain has a valid records for autoconfiguration"
+msgstr "檢查每個網域都有正確的 MX 紀錄"
+
+#: admin/app_settings.py:84
msgid "Enable DNSBL checks"
msgstr "啟用 DNSBL 檢查"
-#: admin/app_settings.py:56
+#: admin/app_settings.py:87
msgid "Check every domain against major DNSBL providers"
msgstr "針對每個 DNSBL 供應商來檢查每個網域"
-#: admin/app_settings.py:61
+#: admin/app_settings.py:92
+msgid "Custom DNS server"
+msgstr ""
+
+#: admin/app_settings.py:95
+msgid "Use a custom DNS server instead of local server configuration"
+msgstr ""
+
+#: admin/app_settings.py:100
msgid "DKIM keys storage directory"
msgstr "DKIM 金鑰儲存目錄"
-#: admin/app_settings.py:64
+#: admin/app_settings.py:103
msgid ""
"Absolute path of the directory where DKIM private keys will be stored. Make "
"sure this directory belongs to root user and is not readable by the outside "
"world."
-msgstr "絕對路徑的目錄將會給 DKIM 私鑰儲存。確認這個目錄屬於 root 使用者並且外面的世界無法讀取。"
+msgstr ""
+"絕對路徑的目錄將會給 DKIM 私鑰儲存。確認這個目錄屬於 root 使用者並且外面的世"
+"界無法讀取。"
-#: admin/app_settings.py:72
+#: admin/app_settings.py:111
msgid "Default DKIM key length"
msgstr "預設 DKIM 金鑰長度"
-#: admin/app_settings.py:76
+#: admin/app_settings.py:115
msgid "Default length in bits for newly generated DKIM keys."
msgstr "預設長度是給新產生的 DKIM 金鑰用。"
-#: admin/app_settings.py:80 admin/templates/admin/domain_detail.html:41
+#: admin/app_settings.py:119 admin/templates/admin/domain_detail.html:41
msgid "Mailboxes"
msgstr "信箱"
-#: admin/app_settings.py:83
+#: admin/app_settings.py:122
msgid "Handle mailboxes on filesystem"
msgstr "在檔案系統上處理信箱"
-#: admin/app_settings.py:86
+#: admin/app_settings.py:125
msgid ""
"Rename or remove mailboxes on the filesystem when they get renamed or "
"removed within Modoboa"
msgstr "當他要在 Modoboa 上取得更名或移除就會在檔案系統上更名或移除信箱"
-#: admin/app_settings.py:92
+#: admin/app_settings.py:131
msgid "Mailboxes owner"
msgstr "信箱擁有者"
-#: admin/app_settings.py:95
+#: admin/app_settings.py:134
msgid "The UNIX account who owns mailboxes on the filesystem"
msgstr "UNIX 帳號是檔案系統上擁有的信箱"
-#: admin/app_settings.py:100
+#: admin/app_settings.py:139
msgid "Default domain quota"
msgstr "預設網域配額"
-#: admin/app_settings.py:103
+#: admin/app_settings.py:142
msgid ""
"Default quota (in MB) applied to freshly created domains with no value "
"specified. A value of 0 means no quota."
msgstr "預設配額(以MB為單位)應用於未指定值的創立網域。值為0表示沒有配額。"
-#: admin/app_settings.py:109 admin/models/domain.py:40
+#: admin/app_settings.py:148 admin/forms/domain.py:49 admin/models/domain.py:33
#: admin/templates/admin/domain_detail.html:64
msgid "Default mailbox quota"
msgstr "預設信箱配額"
-#: admin/app_settings.py:112
+#: admin/app_settings.py:151
+#, fuzzy
+#| msgid ""
+#| "Default mailbox quota (in MB) applied to freshly created domains with no "
+#| "value specified. A value of 0 means no quota."
msgid ""
-"Default mailbox quota (in MB) applied to freshly created domains with no "
+"Default mailbox quota (in MB) applied to freshly created mailboxes with no "
"value specified. A value of 0 means no quota."
-msgstr "預設信箱配額(以MB為單位)應用於未指定值的建立網域。值為0表示沒有配額。"
+msgstr ""
+"預設信箱配額(以MB為單位)應用於未指定值的建立網域。值為0表示沒有配額。"
-#: admin/app_settings.py:118
+#: admin/app_settings.py:157
msgid "Automatic account removal"
msgstr "自動刪除帳號"
-#: admin/app_settings.py:121
+#: admin/app_settings.py:160
msgid "When a mailbox is removed, also remove the associated account"
msgstr "當信箱移除時,也會移除關聯的帳號"
-#: admin/app_settings.py:125
+#: admin/app_settings.py:164
msgid "Automatic domain/mailbox creation"
msgstr "自動建立網域/信箱"
-#: admin/app_settings.py:128
-msgid ""
-"Create a domain and a mailbox when an account is automatically created."
+#: admin/app_settings.py:167
+msgid "Create a domain and a mailbox when an account is automatically created."
msgstr "當帳號自動建立後會建立網域和一個信箱。"
-#: admin/app_settings.py:134
+#: admin/app_settings.py:173
msgid "Create an alias when a mailbox is renamed"
msgstr "當信箱更名時會建立別名"
-#: admin/app_settings.py:137
+#: admin/app_settings.py:176
msgid "Create an alias using the old address when a mailbox is renamed."
msgstr "當信箱更名時建立別名並使用在舊的位址。"
-#: admin/app_settings.py:186 admin/app_settings.py:194
-#: admin/forms/account.py:331
+#: admin/app_settings.py:225 admin/app_settings.py:233
+#: admin/forms/account.py:335
msgid "Must be a positive integer"
msgstr "必須是正整數"
-#: admin/app_settings.py:204
+#: admin/app_settings.py:243
msgid "Directory not found."
msgstr "目錄不存在"
-#: admin/app_settings.py:210
+#: admin/app_settings.py:249
msgid "openssl not found, please make sure it is installed."
msgstr "openssl 找不到,請確認已安裝。"
-#: admin/app_settings.py:224
+#: admin/app_settings.py:263
msgid "Define at least one authorized network / address"
msgstr "定義至少一個已驗證網路/位址"
-#: admin/app_settings.py:234
+#: admin/app_settings.py:273
msgid "Administration"
msgstr "管理員"
-#: admin/constants.py:99 admin/forms/alias.py:49
+#: admin/constants.py:28 admin/forms/alias.py:43
#: admin/templates/admin/_per_domain_statistics_widget.html:7
#: admin/templates/admin/domains_quota_headers.html:2
msgid "Domain"
msgstr "網域"
-#: admin/constants.py:100
+#: admin/constants.py:29
msgid "Relay domain"
msgstr "網域轉送"
-#: admin/forms/account.py:38 admin/templates/admin/domain_detail.html:120
+#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:125
msgid "Username"
msgstr "使用者名稱"
-#: admin/forms/account.py:40
+#: admin/forms/account.py:34
msgid ""
"The user's name. Must be a valid e-mail address for simple users or "
"administrators with a mailbox."
msgstr "使用者名稱。必須是單純使用者的正確電子郵件地址或是管理員的信箱。"
-#: admin/forms/account.py:45 admin/templates/admin/account_detail.html:29
+#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29
msgid "Role"
msgstr "身份"
-#: admin/forms/account.py:46
+#: admin/forms/account.py:40
msgid "Choose"
msgstr "選擇"
-#: admin/forms/account.py:47
+#: admin/forms/account.py:41
msgid "What level of permission this user will have"
msgstr "這個使用者有什麼樣的權限等級"
-#: admin/forms/account.py:50 admin/forms/domain.py:227
+#: admin/forms/account.py:44 admin/forms/domain.py:245
msgid "Random password"
msgstr "隨機密碼"
-#: admin/forms/account.py:52
+#: admin/forms/account.py:46
msgid ""
"Generate a random password. If you're updating this account and check this "
"box, a new password will be generated."
msgstr "產生一個隨機密碼。假如您更新這個帳號也勾選這個選項,新的密碼就會產生。"
-#: admin/forms/account.py:58
+#: admin/forms/account.py:52
msgid "Password"
msgstr "密碼"
-#: admin/forms/account.py:63
+#: admin/forms/account.py:57
msgid "Confirmation"
msgstr "確認"
-#: admin/forms/account.py:66
+#: admin/forms/account.py:60
msgid "Enter the same password as above, for verification."
msgstr "為了驗證,在下方輸入相同的密碼。"
-#: admin/forms/account.py:78
+#: admin/forms/account.py:72
msgid "Enabled"
msgstr "已啟用"
-#: admin/forms/account.py:172
+#: admin/forms/account.py:167
msgid "Only super administrators are allowed for this mode"
msgstr "只有超級管理員在這個模式下是允許的"
-#: admin/forms/account.py:183 admin/forms/account.py:185
-#: admin/forms/domain.py:144 admin/forms/domain.py:273
-#: admin/forms/domain.py:276 admin/serializers.py:241
+#: admin/forms/account.py:178 admin/forms/account.py:180
+#: admin/forms/domain.py:162 admin/forms/domain.py:291
+#: admin/forms/domain.py:294 admin/serializers.py:287
msgid "This field is required."
msgstr "這個欄位是必填的"
-#: admin/forms/account.py:191
+#: admin/forms/account.py:186
msgid "The two password fields didn't match."
msgstr "兩次鍵入的密碼不相符。"
-#: admin/forms/account.py:204
+#: admin/forms/account.py:199
msgid "You can't disable your own account"
msgstr "您不可以停用您擁有的帳號"
-#: admin/forms/account.py:225
+#: admin/forms/account.py:222
msgid "E-mail"
msgstr "電郵"
-#: admin/forms/account.py:227
+#: admin/forms/account.py:224
msgid "Create an alias using the old address"
msgstr "用舊的位址來建立別名"
-#: admin/forms/account.py:232 admin/templates/admin/account_detail.html:45
+#: admin/forms/account.py:229 admin/forms/domain.py:41
+#: admin/templates/admin/account_detail.html:45
#: admin/templates/admin/domain_detail.html:49
msgid "Quota"
msgstr "配額"
-#: admin/forms/account.py:234
+#: admin/forms/account.py:232
+#, fuzzy
+#| msgid ""
+#| "Quota in MB for this mailbox. Define a custom value or use domain's "
+#| "default one. Leave empty to define an unlimited value (not allowed for "
+#| "domain administrators)."
msgid ""
-"Quota in MB for this mailbox. Define a custom value or use domain's default "
-"one. Leave empty to define an unlimited value (not allowed for domain "
-"administrators)."
-msgstr "這個信箱有多少 MB 的配額。定義一個自訂的值或使用網域的預設值。保持空白是定義為無限制 (不允許網域管理者)。"
+"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a "
+"custom value or use domain's default one. Leave empty to define an unlimited "
+"value (not allowed for domain administrators)."
+msgstr ""
+"這個信箱有多少 MB 的配額。定義一個自訂的值或使用網域的預設值。保持空白是定義"
+"為無限制 (不允許網域管理者)。"
-#: admin/forms/account.py:242 admin/forms/domain.py:39
+#: admin/forms/account.py:242 admin/forms/domain.py:31
#: admin/templates/admin/domain_headers.html:4
msgid "Alias(es)"
msgstr "別名(是)"
@@ -276,7 +352,9 @@ msgid ""
"Alias(es) of this mailbox. Indicate only one address per input, press ENTER "
"to add a new input. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
-msgstr "這個信箱的別名(es)。一行只能輸入一個電子郵件,按 Enter 新增新的一行,要建立抓取別名,只要輸入網域名稱 (@domain.tld)。"
+msgstr ""
+"這個信箱的別名(es)。一行只能輸入一個電子郵件,按 Enter 新增新的一行,要建立抓"
+"取別名,只要輸入網域名稱 (@domain.tld)。"
#: admin/forms/account.py:251
msgid "Sender addresses"
@@ -287,505 +365,530 @@ msgid ""
"Additional sender address(es) for this account. The user will be allowed to "
"send emails using this address, even if it does not exist locally. Indicate "
"one address per input. Press ENTER to add a new input."
-msgstr "新增這個帳號的寄件地址(es)。此使用者將會允許使用這個位址寄送郵件,即使這個不在本機。一行輸入一個位址。按 Enter 新增新的一行。"
+msgstr ""
+"新增這個帳號的寄件地址(es)。此使用者將會允許使用這個位址寄送郵件,即使這個不"
+"在本機。一行輸入一個位址。按 Enter 新增新的一行。"
-#: admin/forms/account.py:309 admin/forms/alias.py:94
-#: admin/models/mailbox.py:315
+#: admin/forms/account.py:309 admin/forms/alias.py:88
+#: admin/models/mailbox.py:310
msgid "Domain does not exist"
msgstr "網域不存在"
-#: admin/forms/account.py:341
+#: admin/forms/account.py:345
msgid "Local domain does not exist"
msgstr "本地網域不存在"
-#: admin/forms/account.py:345 admin/forms/account.py:353
-#: admin/forms/alias.py:97
+#: admin/forms/account.py:349 admin/forms/account.py:357
+#: admin/forms/alias.py:91
msgid "You don't have access to this domain"
msgstr "您無權訪問此網域"
-#: admin/forms/account.py:452
+#: admin/forms/account.py:456
msgid "Domain(s)"
msgstr "網域"
-#: admin/forms/account.py:454
+#: admin/forms/account.py:458
msgid "Domain(s) that user administrates"
msgstr "系統管理者網域(S)"
-#: admin/forms/account.py:500 admin/forms/account.py:590
-#: admin/forms/domain.py:344 admin/forms/domain.py:414
+#: admin/forms/account.py:505 admin/forms/account.py:595
+#: admin/forms/domain.py:362 admin/forms/domain.py:433
msgid "General"
msgstr "一般"
-#: admin/forms/account.py:504
+#: admin/forms/account.py:509
msgid "Profile"
msgstr "檔案"
-#: admin/forms/account.py:508 admin/forms/account.py:596
+#: admin/forms/account.py:513 admin/forms/account.py:601
msgid "Mail"
msgstr "電子郵件"
-#: admin/forms/account.py:511
+#: admin/forms/account.py:516
msgid "Permissions"
msgstr "權限"
-#: admin/forms/account.py:579
+#: admin/forms/account.py:584
msgid "Account updated"
msgstr "帳號已更新"
-#: admin/forms/account.py:604
+#: admin/forms/account.py:609
msgid "New account"
msgstr "新帳號"
-#: admin/forms/account.py:614
+#: admin/forms/account.py:619
msgid "Account created"
msgstr "帳號已建立"
-#: admin/forms/alias.py:26
+#: admin/forms/alias.py:20
msgid "Random address"
msgstr "隨機位址"
-#: admin/forms/alias.py:29
+#: admin/forms/alias.py:23
msgid "Email address"
msgstr "電郵地址"
-#: admin/forms/alias.py:31
+#: admin/forms/alias.py:25
msgid ""
"The alias address. To create a catchall alias, just enter the domain name "
"(@domain.tld)."
msgstr "此別名位址。要建立抓取別名,只要輸入網域名稱 (@domain.tld)。"
-#: admin/forms/alias.py:37 admin/templates/admin/alias_detail.html:37
+#: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37
msgid "Recipients"
msgstr "收件人"
-#: admin/forms/alias.py:39
+#: admin/forms/alias.py:33
msgid ""
"Addresses this alias will point to. Indicate only one address per input, "
"press ENTER to add a new input."
-msgstr "這個別名的位址將會指到這。一行只能輸入一個電子郵件,按 Enter 新增新的一行。"
+msgstr ""
+"這個別名的位址將會指到這。一行只能輸入一個電子郵件,按 Enter 新增新的一行。"
-#: admin/forms/alias.py:114 admin/forms/alias.py:116
+#: admin/forms/alias.py:108 admin/forms/alias.py:110
msgid "This field is required"
msgstr "這個欄位是必填的"
-#: admin/forms/alias.py:120
+#: admin/forms/alias.py:114
msgid "No recipient defined"
msgstr "沒有定義收件人"
-#: admin/forms/domain.py:36
+#: admin/forms/domain.py:28
#: admin/templates/admin/_global_statistics_widget.html:7
msgid "Type"
msgstr "類型"
-#: admin/forms/domain.py:42
+#: admin/forms/domain.py:34
msgid ""
"Alias(es) of this domain. Indicate only one name per input, press ENTER to "
"add a new input."
msgstr "這個網域的別名(es)。一行只能輸入一個電子郵件,按 Enter 新增新的一行。"
-#: admin/forms/domain.py:47
+#: admin/forms/domain.py:39
msgid "Key selector"
msgstr "Key selector"
-#: admin/forms/domain.py:85 admin/handlers.py:171
+#: admin/forms/domain.py:44 admin/serializers.py:30
+#, fuzzy
+#| msgid ""
+#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgid ""
+"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. "
+"A value of 0 means no quota."
+msgstr "預設套用在信箱幾 MB 的配額。值為0表示沒配額。"
+
+#: admin/forms/domain.py:52
+#, fuzzy
+#| msgid ""
+#| "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgid ""
+"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or "
+"GB. A value of 0 means no quota."
+msgstr "預設套用在信箱幾 MB 的配額。值為0表示沒配額。"
+
+#: admin/forms/domain.py:94 admin/handlers.py:161
msgid "domain alias"
msgstr "網域別名"
-#: admin/forms/domain.py:88 admin/forms/domain.py:155
-#: admin/forms/domain.py:163
+#: admin/forms/domain.py:97 admin/forms/domain.py:173 admin/forms/domain.py:181
#, python-format
msgid "A %s with this name already exists"
msgstr "此 %s 及這個名稱已存在"
-#: admin/forms/domain.py:96 admin/serializers.py:45
+#: admin/forms/domain.py:105 admin/serializers.py:64
msgid "No authorized MX record found for this domain"
msgstr "沒有找到這個網域已驗證過的 MX 紀錄"
-#: admin/forms/domain.py:108
+#: admin/forms/domain.py:117
msgid "DKIM keys storage directory not configured"
msgstr "未設置 DKIM 金鑰儲存目錄"
-#: admin/forms/domain.py:129 admin/serializers.py:55
+#: admin/forms/domain.py:147 admin/serializers.py:82
msgid "Cannot be greater than domain quota"
msgstr "不可以超過網域配額"
-#: admin/forms/domain.py:134
+#: admin/forms/domain.py:152
msgid "You can't define an unlimited quota."
msgstr "您不可以定義無限制配額。"
-#: admin/forms/domain.py:155 admin/forms/domain.py:160
+#: admin/forms/domain.py:173 admin/forms/domain.py:178
msgid "domain"
msgstr "網域"
-#: admin/forms/domain.py:209
+#: admin/forms/domain.py:227
msgid "Create a domain administrator"
msgstr "建立網域管理者"
-#: admin/forms/domain.py:212
+#: admin/forms/domain.py:230
msgid "Automatically create an administrator for this domain"
msgstr "自動建立這個網域的管理者"
-#: admin/forms/domain.py:217 admin/templates/admin/domain_detail.html:120
+#: admin/forms/domain.py:235 admin/templates/admin/domain_detail.html:125
#: admin/templates/admin/domain_headers.html:3
#: admin/templates/admin/identity_headers.html:2
#: admin/templates/admin/mx_domain_detail.html:9
msgid "Name"
msgstr "名稱"
-#: admin/forms/domain.py:220
+#: admin/forms/domain.py:238
msgid ""
"The administrator's name. Don't include the domain's name here, it will be "
"automatically appended."
msgstr "管理者的名稱。不可以包括這裡的網域名稱,這將會自動附加。"
-#: admin/forms/domain.py:230
+#: admin/forms/domain.py:248
msgid "Generate a random password for the administrator."
msgstr "產生隨機密碼給管理員。"
-#: admin/forms/domain.py:236
+#: admin/forms/domain.py:254
msgid "With a mailbox"
msgstr "有附信箱"
-#: admin/forms/domain.py:239
+#: admin/forms/domain.py:257
msgid "Create a mailbox for the administrator."
msgstr "建立信箱給管理員"
-#: admin/forms/domain.py:245
+#: admin/forms/domain.py:263
msgid "Create aliases"
msgstr "建立別名"
-#: admin/forms/domain.py:248
+#: admin/forms/domain.py:266
msgid "Automatically create standard aliases for this domain"
msgstr "自動建立這個網域的標準別名"
-#: admin/forms/domain.py:264
+#: admin/forms/domain.py:282
msgid "Invalid format"
msgstr "無效格式"
-#: admin/forms/domain.py:293
+#: admin/forms/domain.py:311
#, python-format
msgid "User '%s' already exists"
msgstr "使用者 '%s' 已存在"
-#: admin/forms/domain.py:404
+#: admin/forms/domain.py:423
msgid "Domain modified"
msgstr "網域已修改"
-#: admin/forms/domain.py:425
+#: admin/forms/domain.py:444
msgid "Options"
msgstr "選項"
-#: admin/forms/domain.py:433
+#: admin/forms/domain.py:452
msgid "New domain"
msgstr "新網域"
-#: admin/forms/domain.py:446
+#: admin/forms/domain.py:465
msgid "Domain created"
msgstr "網域已建立"
-#: admin/forms/export.py:9
-msgid "File name"
-msgstr "檔案名稱"
-
-#: admin/forms/export.py:15 admin/forms/import_.py:15
+#: admin/forms/export.py:9 admin/forms/import_.py:13
msgid "Separator"
msgstr "分開"
-#: admin/forms/forward.py:14
+#: admin/forms/forward.py:12
msgid "Recipient(s)"
msgstr "收件人"
-#: admin/forms/forward.py:18
+#: admin/forms/forward.py:16
msgid "Indicate one or more recipients separated by a ','"
msgstr "指定一個或多個收件人並用 ',' 來分開"
-#: admin/forms/forward.py:21
+#: admin/forms/forward.py:19
msgid "Keep local copies"
msgstr "本機儲存"
-#: admin/forms/forward.py:24
+#: admin/forms/forward.py:22
msgid "Forward messages and store copies into your local mailbox"
msgstr "轉寄郵件及儲存一份到您的本機信箱"
-#: admin/forms/import_.py:13
+#: admin/forms/import_.py:11
msgid "Select a file"
msgstr "選擇檔案"
-#: admin/forms/import_.py:21
+#: admin/forms/import_.py:19
msgid "Continue on error"
msgstr "錯誤時仍繼續"
-#: admin/forms/import_.py:22
+#: admin/forms/import_.py:20
msgid "Don't treat duplicated objects as error"
msgstr "錯誤時不用處理重複的物件"
-#: admin/forms/import_.py:40
+#: admin/forms/import_.py:38
msgid "Crypt passwords"
msgstr "加密密碼"
-#: admin/forms/import_.py:42
+#: admin/forms/import_.py:40
msgid "Check this option if passwords contained in your file are not crypted"
msgstr "假如密碼包含在您的檔案且未加密時請勾選這個選項"
-#: admin/handlers.py:218
+#: admin/handlers.py:210
#, python-format
msgid "Account import failed (%s): domain does not exist"
msgstr "帳號匯入失敗 (%s): 網域不存在"
-#: admin/handlers.py:231 admin/models/mailbox.py:342
+#: admin/handlers.py:223 admin/models/mailbox.py:338
msgid "Mailbox {} already exists"
msgstr "信箱 {} 已存在"
-#: admin/handlers.py:239
+#: admin/handlers.py:231
#, python-format
msgid "Account import failed (%s): wrong quota value"
msgstr "帳號匯入失敗 (%s): 錯誤配額"
-#: admin/handlers.py:279
+#: admin/handlers.py:271
#: admin/templates/admin/_global_statistics_widget.html:17
#: admin/templates/admin/_per_domain_statistics_widget.html:8
#: admin/templates/admin/identities.html:5
msgid "Identities"
msgstr "使用者"
-#: admin/handlers.py:295 admin/templates/admin/forward.html:2
+#: admin/handlers.py:287 admin/templates/admin/forward.html:2
msgid "Forward"
msgstr "轉發"
-#: admin/lib.py:44
+#: admin/lib.py:38
msgid "A mailbox is required"
msgstr "信箱是必要的"
-#: admin/lib.py:134
+#: admin/lib.py:128
msgid "You are not allowed to import domains"
msgstr "您未允許匯入網域"
-#: admin/lib.py:145
+#: admin/lib.py:139
msgid "You are not allowed to import domain aliases."
msgstr "您未允許匯入網域別名。"
-#: admin/lib.py:183 admin/tests/test_mx.py:122
-#, python-format
-msgid "No DNS records found for %s"
+#: admin/lib.py:189 admin/tests/test_mx.py:127 admin/tests/test_mx.py:136
+#: admin/tests/test_mx.py:139
+#, fuzzy, python-format
+#| msgid "No DNS records found for %s"
+msgid "No DNS record found for %s"
msgstr "沒有找到 %s 的 DNS 紀錄"
-#: admin/lib.py:185 admin/tests/test_mx.py:125
-#, python-format
-msgid "No MX record for %s"
+#: admin/lib.py:192
+#, fuzzy, python-format
+#| msgid "No MX record for %s"
+msgid "No %(type)s record for %(name)s"
msgstr "沒有 %s 的 MX 紀錄"
-#: admin/lib.py:187 admin/tests/test_mx.py:126
+#: admin/lib.py:196 admin/tests/test_mx.py:131
msgid "No working name servers found"
msgstr "沒有找到執行中的名稱伺服器"
-#: admin/lib.py:190 admin/tests/test_mx.py:128
+#: admin/lib.py:199 admin/tests/test_mx.py:133
#, python-format
msgid "DNS resolution timeout, unable to query %s at the moment"
msgstr "DNS 解析逾時,無法查詢 %s 在這個時間點"
-#: admin/lib.py:201 admin/tests/test_mx.py:131
-#, python-format
-msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
-msgstr "無法查詢此 IP 位址 %(domain)s; %(error)s"
-
-#: admin/lib.py:212 admin/tests/test_mx.py:134
-#, python-format
-msgid "Invalid IP address format for %(domain)s; %(addr)s"
+#: admin/lib.py:227
+#, fuzzy, python-brace-format
+#| msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgid "Invalid IP address format for {domain}; {addr}"
msgstr "無效的 IP 位址格式 %(domain)s; %(addr)s"
-#: admin/management/commands/subcommands/_mx.py:136
+#: admin/management/commands/subcommands/_import.py:93
+msgid "CSV file is not encoded in UTF-8, attempting to guess encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_import.py:105
+#, python-format
+msgid "Reading CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_import.py:116
+#, python-format
+msgid "Unable to decode CSV file using %(encoding)s encoding"
+msgstr ""
+
+#: admin/management/commands/subcommands/_mx.py:132
msgid "[modoboa] DNSBL issue(s) for domain {}"
msgstr "[modoboa] 此網域的 DNSBL 問題(s) {}"
-#: admin/management/commands/subcommands/_mx.py:156
+#: admin/management/commands/subcommands/_mx.py:152
msgid "Domain {} has no MX record"
msgstr "網域 {} 沒有 MX 紀錄"
-#: admin/management/commands/subcommands/_mx.py:167
+#: admin/management/commands/subcommands/_mx.py:163
#, python-brace-format
msgid "MX record for domain {0} is invalid: {1}"
msgstr "此網域的 MX 紀錄 {0} 是無效的: {1}"
-#: admin/management/commands/subcommands/_mx.py:184
+#: admin/management/commands/subcommands/_mx.py:180
msgid "[modoboa] MX issue(s) for domain {}"
msgstr "[modoboa] 此網域的 MX 問題(s) {}"
-#: admin/models/alias.py:35 admin/models/mailbox.py:97
+#: admin/models/alias.py:32 admin/models/mailbox.py:95
msgid "address"
msgstr "地址"
-#: admin/models/alias.py:37
+#: admin/models/alias.py:34
msgid "The alias address."
msgstr "別名位址。"
-#: admin/models/alias.py:42 admin/models/domain.py:48
-#: admin/models/domain_alias.py:47
+#: admin/models/alias.py:39 admin/models/domain.py:37
+#: admin/models/domain_alias.py:42
msgid "enabled"
msgstr "已啟用"
-#: admin/models/alias.py:43 admin/models/domain_alias.py:48
+#: admin/models/alias.py:40 admin/models/domain_alias.py:43
msgid "Check to activate this alias"
msgstr "點擊啟用這個別名"
-#: admin/models/alias.py:48 admin/templates/admin/alias_detail.html:32
+#: admin/models/alias.py:45 admin/templates/admin/alias_detail.html:32
msgid "Description"
msgstr "描述"
-#: admin/models/alias.py:50 admin/templates/admin/alias_detail.html:29
+#: admin/models/alias.py:47 admin/templates/admin/alias_detail.html:29
msgid "Expire at"
msgstr "過期在"
-#: admin/models/alias.py:93
+#: admin/models/alias.py:87
msgid "alias"
msgstr "別名"
-#: admin/models/alias.py:125
+#: admin/models/alias.py:119
msgid "Invalid address"
msgstr "無效位址"
-#: admin/models/alias.py:146
+#: admin/models/alias.py:140
msgid "Local recipient {}@{} not found"
msgstr "本機收件人 {}@{} 未找到"
-#: admin/models/alias.py:176
+#: admin/models/alias.py:170
#, python-format
msgid "Invalid line: %s"
msgstr "無效行: %s"
-#: admin/models/alias.py:182
+#: admin/models/alias.py:176
#, python-format
msgid "Domain '%s' does not exist"
msgstr "網域 '%s' 不存在"
-#: admin/models/domain.py:30 admin/models/domain_alias.py:39
+#: admin/models/domain.py:27 admin/models/domain_alias.py:34
msgid "name"
msgstr "名稱"
-#: admin/models/domain.py:31
+#: admin/models/domain.py:28
msgid "The domain name"
msgstr "網域名稱"
-#: admin/models/domain.py:35
-msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
-msgstr "信箱之間共用幾 MB 的配額。值為0表示沒配額。"
-
-#: admin/models/domain.py:43
-msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
-msgstr "預設套用在信箱幾 MB 的配額。值為0表示沒配額。"
-
-#: admin/models/domain.py:49
+#: admin/models/domain.py:38
msgid "Check to activate this domain"
msgstr "點擊啟用這個網域"
-#: admin/models/domain.py:54
+#: admin/models/domain.py:43
msgid "Enable DNS checks"
msgstr "啟用 DNS 檢查"
-#: admin/models/domain.py:55
+#: admin/models/domain.py:44
msgid "Check to enable DNS checks for this domain"
msgstr "點擊啟用這個網域的 DNS 檢查"
-#: admin/models/domain.py:62
+#: admin/models/domain.py:51
msgid "Enable DKIM signing"
msgstr "啟用 DKIM 簽署"
-#: admin/models/domain.py:64
+#: admin/models/domain.py:53
msgid ""
"If you activate this feature, a DKIM key will be generated for this domain."
msgstr "假如您啟用這個功能,DKIM 金鑰將會產生給這個網域。"
-#: admin/models/domain.py:70
+#: admin/models/domain.py:59
msgid "Key length"
msgstr "金鑰長度"
-#: admin/models/domain.py:285 admin/models/domain_alias.py:74
+#: admin/models/domain.py:312 admin/models/domain_alias.py:67
msgid "Invalid line"
msgstr "無效的行"
-#: admin/models/domain.py:295
+#: admin/models/domain.py:322
msgid "No authorized MX record found for domain {}"
msgstr "沒有找到這個網域已驗證過的 MX 紀錄 {}"
-#: admin/models/domain.py:302
+#: admin/models/domain.py:329
msgid "Invalid quota value for domain '{}'"
msgstr "此網域有無效的配額值 '{}'"
-#: admin/models/domain.py:309
+#: admin/models/domain.py:336
msgid "Invalid default mailbox quota value for domain '{}'"
msgstr "此網域有無效的預設信箱配額值 '{}'"
-#: admin/models/domain.py:314
+#: admin/models/domain.py:341
msgid "Default mailbox quota cannot be greater than domain quota"
msgstr "預設的信箱配額不可以超過網域配額"
-#: admin/models/domain_alias.py:40
+#: admin/models/domain_alias.py:35
msgid "The alias name"
msgstr "別名名稱"
-#: admin/models/domain_alias.py:42
+#: admin/models/domain_alias.py:37
msgid "target"
msgstr "目標"
-#: admin/models/domain_alias.py:43
+#: admin/models/domain_alias.py:38
msgid "The domain this alias points to"
msgstr "此網域的這個別名指到"
-#: admin/models/domain_alias.py:83
+#: admin/models/domain_alias.py:76
#, python-format
msgid "Unknown domain %s"
msgstr "未知網域 %s"
-#: admin/models/mailbox.py:99
+#: admin/models/mailbox.py:97
msgid "Mailbox address (without the @domain.tld part)"
msgstr "信箱位址 (不要有 @domain.tld 這個部份)"
-#: admin/models/mailbox.py:165
+#: admin/models/mailbox.py:160
#, python-format
msgid "Failed to retrieve mailbox location (%s)"
msgstr "無法收回信箱位置 (%s)"
-#: admin/models/mailbox.py:258
+#: admin/models/mailbox.py:253
msgid "A quota is required"
msgstr "配額是必要的"
-#: admin/models/mailbox.py:264
+#: admin/models/mailbox.py:259
msgid "Domain quota exceeded"
msgstr "網域配額已超過"
-#: admin/serializers.py:80 admin/serializers.py:266 admin/serializers.py:360
+#: admin/serializers.py:37
+msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota."
+msgstr "預設套用在信箱幾 MB 的配額。值為0表示沒配額。"
+
+#: admin/serializers.py:107 admin/serializers.py:312 admin/serializers.py:410
msgid "Permission denied."
msgstr "權限不足"
-#: admin/serializers.py:118
+#: admin/serializers.py:158
msgid ""
"List of administered domains (resellers and domain administrators only)."
msgstr "管理員網域列表 (只有經銷商和網域管理員)。"
-#: admin/serializers.py:218
+#: admin/serializers.py:262
msgid "Not allowed for this role."
msgstr "不允許這個身份"
-#: admin/serializers.py:228
+#: admin/serializers.py:274
msgid "Must be equal to mailbox full_address"
msgstr "必須跟信箱完整位址一樣"
-#: admin/serializers.py:253
+#: admin/serializers.py:299
msgid "Local domain {} does not exist"
msgstr "本機網域 {} 不存在"
-#: admin/serializers.py:347
+#: admin/serializers.py:397
msgid "A list of recipient"
msgstr "收件人列表"
-#: admin/serializers.py:358
+#: admin/serializers.py:408
msgid "Domain not found."
msgstr "網域不存在。"
-#: admin/serializers.py:407
+#: admin/serializers.py:457
msgid "You don't have access to this domain."
msgstr "您不能存取這個網域。"
-#: admin/serializers.py:415
+#: admin/serializers.py:465
msgid "You don't have access to this mailbox."
msgstr "您不能存取這個信箱。"
@@ -816,6 +919,19 @@ msgstr "已停用"
msgid "Awaiting checks"
msgstr "等待檢查"
+#: admin/templates/admin/_domain_dnschecks_status.html:16
+#: admin/templates/admin/_domain_dnschecks_status.html:26
+#: admin/templates/admin/_domain_dnschecks_status.html:34
+#: admin/templates/admin/_domain_dnschecks_status.html:42
+#, fuzzy
+#| msgid "No DNS records found for %s"
+msgid "No record found"
+msgstr "沒有找到 %s 的 DNS 紀錄"
+
+#: admin/templates/admin/_domain_dnschecks_status.html:24
+msgid "Waiting for key to be generated"
+msgstr ""
+
#: admin/templates/admin/_global_statistics_widget.html:4
msgid "Global statistics"
msgstr "全域狀態"
@@ -922,7 +1038,8 @@ msgid "Address"
msgstr "地址"
#: admin/templates/admin/dnsbl_domain_detail.html:12
-#: admin/templates/admin/domain_detail.html:96
+#: admin/templates/admin/domain_detail.html:100
+#: admin/templates/admin/messages_log_headers.html:6
msgid "Status"
msgstr "狀態"
@@ -954,11 +1071,8 @@ msgstr "信箱別名"
#: admin/templates/admin/domain_detail.html:57
#: admin/templates/admin/domain_detail.html:58
#: admin/templates/admin/domain_detail.html:65
-#: admin/templates/admin/domain_general_form.html:4
-#: admin/templates/admin/domain_general_form.html:5
#: admin/templates/admin/domains_quotas.html:11
#: admin/templates/admin/domains_quotas.html:12
-#: admin/templates/admin/mailform.html:7
#: admin/templates/admin/newdomainform.html:3
msgid "MB"
msgstr "MB"
@@ -978,32 +1092,36 @@ msgstr "已使用"
msgid "allocated"
msgstr "分配"
-#: admin/templates/admin/domain_detail.html:91
+#: admin/templates/admin/domain_detail.html:92
msgid "DNS"
msgstr "DNS"
-#: admin/templates/admin/domain_detail.html:103
+#: admin/templates/admin/domain_detail.html:107
msgid "DKIM key"
msgstr "DKIM 金鑰"
-#: admin/templates/admin/domain_detail.html:107
+#: admin/templates/admin/domain_detail.html:111
msgid "Show key"
msgstr "顯示金鑰"
-#: admin/templates/admin/domain_detail.html:110
+#: admin/templates/admin/domain_detail.html:113
+msgid "Generate new key"
+msgstr ""
+
+#: admin/templates/admin/domain_detail.html:115
msgid "Not generated"
msgstr "沒有產生"
-#: admin/templates/admin/domain_detail.html:117
+#: admin/templates/admin/domain_detail.html:122
msgid "Administrators"
msgstr "管理員"
-#: admin/templates/admin/domain_detail.html:129
-#: admin/templatetags/admin_tags.py:268
+#: admin/templates/admin/domain_detail.html:134
+#: admin/templatetags/admin_tags.py:265
msgid "Remove this permission"
msgstr "移除這個權限"
-#: admin/templates/admin/domain_detail.html:134
+#: admin/templates/admin/domain_detail.html:139
msgid "No domain administrator defined yet."
msgstr "沒有定義網域管理員。"
@@ -1057,7 +1175,7 @@ msgstr "已停用"
msgid "Automatically forward emails to another address"
msgstr "自動轉寄郵件到其他位址"
-#: admin/templates/admin/forward.html:9 admin/views/alias.py:93
+#: admin/templates/admin/forward.html:9 admin/views/alias.py:87
msgid "Update"
msgstr "更新"
@@ -1082,17 +1200,26 @@ msgid ""
"verify recipients The first element of each line is "
"mandatory and must be equal to one of the previous values.
You can "
"use a different character as separator.
"
-msgstr "提供 CSV 檔並且每行使用以下格式: - 網域; 名稱; 配額; 預設信箱配額; 已啟用
- 網域別名; 名稱; 目標網域; 已啟用
- 轉送網域; 名稱; 目標主機; 目標連接埠; 服務; 已啟用; 驗證收件人
每一行的第一個元件都是強制性的且必須跟之前值是一樣的。
您可以使用不同的字元來分開。
"
+msgstr ""
+"提供 CSV 檔並且每行使用以下格式: - 網域; 名稱; 配額; 預設信箱配"
+"額; 已啟用
- 網域別名; 名稱; 目標網域; 已啟用
"
+"- 轉送網域; 名稱; 目標主機; 目標連接埠; 服務; 已啟用; 驗證收件人"
+"li>
每一行的第一個元件都是強制性的且必須跟之前值是一樣的。
您"
+"可以使用不同的字元來分開。
"
#: admin/templates/admin/import_identities_form.html:6
msgid ""
"Provide a CSV file where lines respect one of the following formats: "
-"- account; loginname; password; first name; last name; enabled; group;"
-" address; quota; [, domain, ...]
- alias; address; enabled; "
+"
- account; loginname; password; first name; last name; enabled; group; "
+"address; quota; [, domain, ...]
- alias; address; enabled; "
"recipient; recipient; ...
The first element of each line "
-"is mandatory and must be equal to one of the previous values.
You can"
-" use a different character as separator.
"
-msgstr "提供 CSV 檔並且每行使用以下格式: - 帳號; 登入名稱; 密碼; 名; 姓; 已啟用; 群組; 位址; 配額; [, 網域, ...]
- 別名; 位址; 已啟用; 收件人; 收件人; ...
每一行的第一個元件都是強制性的且必須跟之前值是一樣的。
您可以使用不同的字元來分開。
"
+"is mandatory and must be equal to one of the previous values. You can "
+"use a different character as separator.
"
+msgstr ""
+"提供 CSV 檔並且每行使用以下格式: - 帳號; 登入名稱; 密碼; 名; 姓; "
+"已啟用; 群組; 位址; 配額; [, 網域, ...]
- 別名; 位址; 已啟"
+"用; 收件人; 收件人; ...
每一行的第一個元件都是強制性的且必"
+"須跟之前值是一樣的。
您可以使用不同的字元來分開。
"
#: admin/templates/admin/importform.html:6
msgid "Help"
@@ -1114,6 +1241,22 @@ msgstr "選擇一個值"
msgid "Use domain default value"
msgstr "使用網域預設值"
+#: admin/templates/admin/messages_log_headers.html:2
+msgid "ID"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:3
+msgid "Date"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:4
+msgid "From"
+msgstr ""
+
+#: admin/templates/admin/messages_log_headers.html:5
+msgid "To"
+msgstr ""
+
#: admin/templates/admin/mx_domain_detail.html:11
msgid "Updated"
msgstr "已更新"
@@ -1138,7 +1281,9 @@ msgid ""
"The domain's reputation will be affected and there is a chance that emails "
"coming from it are considered as spam. You should contact those providers "
"and ask them to unlist detected IP address(es)."
-msgstr "此網域的信用將有機會影響從這裡寄出的郵件被當作垃圾郵件。您應該聯絡提供者並要求他們取消 IP 位址(es) 的偵測列表。"
+msgstr ""
+"此網域的信用將有機會影響從這裡寄出的郵件被當作垃圾郵件。您應該聯絡提供者並要"
+"求他們取消 IP 位址(es) 的偵測列表。"
#: admin/templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
@@ -1149,129 +1294,173 @@ msgstr "Modoboa 已偵測到網域 %(domain)s 沒有正確的 MX 紀錄:"
msgid "Search"
msgstr "搜尋"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_m"
msgstr "enabled_m"
-#: admin/templatetags/admin_tags.py:22
+#: admin/templatetags/admin_tags.py:19
msgid "enabled_f"
msgstr "enabled_f"
-#: admin/templatetags/admin_tags.py:48
+#: admin/templatetags/admin_tags.py:45
msgid "List domains"
msgstr "網域清單"
-#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:108
+#: admin/templatetags/admin_tags.py:50 admin/templatetags/admin_tags.py:105
msgid "List quotas"
msgstr "配額清單"
-#: admin/templatetags/admin_tags.py:65 admin/templatetags/admin_tags.py:113
-#: admin/views/import_.py:89 admin/views/import_.py:111
+#: admin/templatetags/admin_tags.py:62 admin/templatetags/admin_tags.py:110
+#: admin/views/import_.py:85 admin/views/import_.py:107
msgid "Import"
msgstr "匯入"
-#: admin/templatetags/admin_tags.py:71 admin/templatetags/admin_tags.py:119
-#: admin/views/export.py:43 admin/views/export.py:71
+#: admin/templatetags/admin_tags.py:68 admin/templatetags/admin_tags.py:116
+#: admin/views/export.py:39 admin/views/export.py:67
msgid "Export"
msgstr "匯出"
-#: admin/templatetags/admin_tags.py:103
+#: admin/templatetags/admin_tags.py:100
msgid "List identities"
msgstr "使用者清單"
-#: admin/templatetags/admin_tags.py:138
+#: admin/templatetags/admin_tags.py:135
msgid "View the domain's identities"
msgstr "查看網域使用者"
-#: admin/templatetags/admin_tags.py:144 admin/templatetags/admin_tags.py:187
-#: admin/templatetags/admin_tags.py:200
+#: admin/templatetags/admin_tags.py:141 admin/templatetags/admin_tags.py:184
+#: admin/templatetags/admin_tags.py:197
msgid "Edit {}"
msgstr "編輯 {}"
-#: admin/templatetags/admin_tags.py:154 admin/templatetags/admin_tags.py:191
-#: admin/templatetags/admin_tags.py:205
+#: admin/templatetags/admin_tags.py:151 admin/templatetags/admin_tags.py:188
+#: admin/templatetags/admin_tags.py:202
#, python-format
msgid "Delete %s?"
msgstr "刪除 %s?"
-#: admin/views/alias.py:35
+#: admin/tests/test_mx.py:130
+#, python-format
+msgid "No MX record for %s"
+msgstr "沒有 %s 的 MX 紀錄"
+
+#: admin/tests/test_mx.py:142 admin/tests/test_mx.py:145
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr "無效的 IP 位址格式 %(domain)s; %(addr)s"
+
+#: admin/views/alias.py:29
msgid "Alias with this name already exists"
msgstr "這個名稱的別名已存在"
-#: admin/views/alias.py:60
+#: admin/views/alias.py:54
msgid "Create"
msgstr "建立"
-#: admin/views/alias.py:72
+#: admin/views/alias.py:66
msgid "New alias"
msgstr "新的別名"
-#: admin/views/alias.py:73
+#: admin/views/alias.py:67
msgid "Alias created"
msgstr "別名已建立"
-#: admin/views/alias.py:85
+#: admin/views/alias.py:79
msgid "Alias modified"
msgstr "別名已修改"
-#: admin/views/alias.py:109
+#: admin/views/alias.py:103
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] "別名已刪除"
-#: admin/views/dns.py:32
+#: admin/views/dns.py:28
msgid "MX records of {}"
msgstr "MX 紀錄 {}"
-#: admin/views/dns.py:55
+#: admin/views/dns.py:51
msgid "DNSBL summary for {}"
msgstr "DNSBL 摘要 {}"
-#: admin/views/domain.py:188
+#: admin/views/domain.py:202
msgid "You can't delete your own domain"
msgstr "您不可以刪除您擁有的網域"
-#: admin/views/domain.py:191
+#: admin/views/domain.py:205
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "網域移除"
-#: admin/views/export.py:42
+#: admin/views/export.py:38
msgid "Export identities"
msgstr "匯出使用者"
-#: admin/views/export.py:70
+#: admin/views/export.py:66
msgid "Export domains"
msgstr "匯出網域"
-#: admin/views/identity.py:113 admin/views/identity.py:206
-#: admin/views/identity.py:211
+#: admin/views/identity.py:107 admin/views/identity.py:201
+#: admin/views/identity.py:206
msgid "Invalid request"
msgstr "無效請求"
-#: admin/views/identity.py:196
+#: admin/views/identity.py:191
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "帳號已刪除"
-#: admin/views/import_.py:65
+#: admin/views/import_.py:61
#, python-format
msgid "Object already exists: %s"
msgstr "元件已存在: %s"
-#: admin/views/import_.py:69
+#: admin/views/import_.py:65
#, python-format
msgid "%d objects imported successfully"
msgstr "%d 元件已匯入成功"
-#: admin/views/import_.py:88
+#: admin/views/import_.py:84
msgid "Import domains"
msgstr "匯入網域"
-#: admin/views/import_.py:110
+#: admin/views/import_.py:106
msgid "Import identities"
msgstr "匯入使用者"
-#: admin/views/user.py:40
+#: admin/views/user.py:36
msgid "Forward updated"
msgstr "轉寄已更新"
+
+#~ msgid "File name"
+#~ msgstr "檔案名稱"
+
+#, fuzzy
+#~| msgid "No DNS records found for %s"
+#~ msgid "No {type} record found for MX {mx}"
+#~ msgstr "沒有找到 %s 的 DNS 紀錄"
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No A record found for MX %(domain)s"
+#~ msgstr "沒有找到這個網域的 MX 紀錄。"
+
+#, fuzzy
+#~| msgid "No MX record found for this domain."
+#~ msgid "No AAAA record found for MX %(domain)s"
+#~ msgstr "沒有找到這個網域的 MX 紀錄。"
+
+#~ msgid "Quota in MB shared between mailboxes. A value of 0 means no quota."
+#~ msgstr "信箱之間共用幾 MB 的配額。值為0表示沒配額。"
+
+#, fuzzy
+#~| msgid "No DNS records found for %s"
+#~ msgid "No DNS records found without MX for %s"
+#~ msgstr "沒有找到 %s 的 DNS 紀錄"
+
+#, fuzzy
+#~| msgid "No DNS records found for %s"
+#~ msgid "No DNS records found without MX for %(domain)s"
+#~ msgstr "沒有找到 %s 的 DNS 紀錄"
+
+#~ msgid "Unable to lookup ip addresses for %(domain)s; %(error)s"
+#~ msgstr "無法查詢此 IP 位址 %(domain)s; %(error)s"
diff --git a/modoboa/admin/locale/zh_TW/LC_MESSAGES/djangojs.po b/modoboa/admin/locale/zh_TW/LC_MESSAGES/djangojs.po
index a03a0d19a..72183e2a0 100644
--- a/modoboa/admin/locale/zh_TW/LC_MESSAGES/djangojs.po
+++ b/modoboa/admin/locale/zh_TW/LC_MESSAGES/djangojs.po
@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
-#
+#
# Translators:
# akong , 2018
# Radium , 2017
@@ -9,46 +9,47 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-11-04 22:08+0100\n"
+"POT-Creation-Date: 2020-03-09 16:48+0100\n"
"PO-Revision-Date: 2018-06-29 00:40+0000\n"
"Last-Translator: akong \n"
-"Language-Team: Chinese (Taiwan) (http://www.transifex.com/tonio/modoboa/language/zh_TW/)\n"
+"Language-Team: Chinese (Taiwan) (http://www.transifex.com/tonio/modoboa/"
+"language/zh_TW/)\n"
+"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: admin/static/admin/js/admin.js:131
+#: admin/static/admin/js/admin.js:129 admin/static/admin/js/admin.js:174
msgid "No more domain to show"
msgstr "無更多網域可展示"
-#: admin/static/admin/js/admin.js:150
+#: admin/static/admin/js/admin.js:149
msgid "Do not delete domain directory"
msgstr "不可以刪除網域目錄"
-#: admin/static/admin/js/admin.js:152
+#: admin/static/admin/js/admin.js:151
msgid "This operation will remove ALL data associated to this domain."
msgstr "這個操作將會刪除所有這個網域有關的資料。"
-#: admin/static/admin/js/admin.js:153
+#: admin/static/admin/js/admin.js:152
msgid ""
"This operation will remove all data associated to this domain, excepting "
"accounts."
msgstr "這個操作將會刪除所有這個網域有關的資料,除了帳號。"
-#: admin/static/admin/js/admin.js:236
+#: admin/static/admin/js/admin.js:177 admin/static/admin/js/admin.js:433
+msgid "No more quota to show"
+msgstr "沒有配額可能顯示"
+
+#: admin/static/admin/js/admin.js:306
msgid "No domain administrator defined"
msgstr "網域管理員未指定"
-#: admin/static/admin/js/admin.js:291 admin/static/admin/js/admin.js:359
+#: admin/static/admin/js/admin.js:362 admin/static/admin/js/admin.js:430
msgid "No more identity to show"
msgstr "沒有身份可以顯示"
-#: admin/static/admin/js/admin.js:333
+#: admin/static/admin/js/admin.js:404
msgid "Do not delete mailbox directory"
msgstr "不可能刪除郵件目錄"
-
-#: admin/static/admin/js/admin.js:362
-msgid "No more quota to show"
-msgstr "沒有配額可能顯示"
diff --git a/modoboa/admin/management/commands/handle_mailbox_operations.py b/modoboa/admin/management/commands/handle_mailbox_operations.py
index 15d8f6e11..b7d9c3b99 100644
--- a/modoboa/admin/management/commands/handle_mailbox_operations.py
+++ b/modoboa/admin/management/commands/handle_mailbox_operations.py
@@ -1,9 +1,5 @@
-# -*- coding: utf-8 -*-
-
"""A management command to apply mailbox operations."""
-from __future__ import print_function, unicode_literals
-
import logging
import os
import shutil
diff --git a/modoboa/admin/management/commands/modo.py b/modoboa/admin/management/commands/modo.py
index b4f3495f5..295b09062 100644
--- a/modoboa/admin/management/commands/modo.py
+++ b/modoboa/admin/management/commands/modo.py
@@ -1,10 +1,6 @@
-# -*- coding: utf-8 -*-
-
"""Modoboa main management command."""
-from __future__ import unicode_literals
-
-from subcommand.base import SubcommandCommand
+from django.core.management.base import BaseCommand
from .subcommands._export import ExportCommand
from .subcommands._import import ImportCommand
@@ -13,13 +9,13 @@ from .subcommands._mx import CheckMXRecords
from .subcommands._repair import Repair
-class Command(SubcommandCommand):
+class Command(BaseCommand):
"""Top management command for modoboa.
$ python manage.py modo
"""
- help = "Modoboa top management command." # NOQA:A003
+ help = "Modoboa top management command."
subcommands = {
"export": ExportCommand,
@@ -28,3 +24,27 @@ class Command(SubcommandCommand):
"manage_dkim_keys": ManageDKIMKeys,
"repair": Repair,
}
+
+ def add_arguments(self, parser):
+ subparsers = parser.add_subparsers(
+ dest='subcommand', title='subcommands'
+ )
+ # required argument is added in Python 3.7
+ subparsers.required = True
+
+ for command_name, command_class in self.subcommands.items():
+ command = command_class(self.stdout, self.stderr)
+ command.style = self.style
+
+ subparser = subparsers.add_parser(
+ command_name, help=command_class.help
+ )
+ # This is needed to output console friendly errors
+ subparser.called_from_command_line = self._called_from_command_line
+
+ command.add_arguments(subparser)
+
+ subparser.set_defaults(command=command)
+
+ def execute(self, *args, **options):
+ return options.pop('command').execute(*args, **options)
diff --git a/modoboa/admin/management/commands/subcommands/_export.py b/modoboa/admin/management/commands/subcommands/_export.py
index 947f81d37..91c40d929 100644
--- a/modoboa/admin/management/commands/subcommands/_export.py
+++ b/modoboa/admin/management/commands/subcommands/_export.py
@@ -1,24 +1,14 @@
-# -*- coding: utf-8 -*-
-
"""Django management command to export admin objects."""
-from __future__ import unicode_literals
-
-import sys
+import csv
from django.core.management.base import BaseCommand
-from django.utils import six
from django.utils.encoding import smart_text
from modoboa.core.extensions import exts_pool
from modoboa.core.models import User
from .... import models
-if six.PY2:
- from backports import csv
-else:
- import csv
-
class ExportCommand(BaseCommand):
"""Command class."""
diff --git a/modoboa/admin/management/commands/subcommands/_import.py b/modoboa/admin/management/commands/subcommands/_import.py
index a202fe22b..d4b7054db 100644
--- a/modoboa/admin/management/commands/subcommands/_import.py
+++ b/modoboa/admin/management/commands/subcommands/_import.py
@@ -1,9 +1,6 @@
-# -*- coding: utf-8 -*-
-
"""Django management command to import admin objects."""
-from __future__ import unicode_literals
-
+import csv
import io
import os
@@ -12,7 +9,6 @@ from chardet.universaldetector import UniversalDetector
from django.core.management.base import BaseCommand, CommandError
from django.db import transaction
-from django.utils import six
from django.utils.translation import ugettext as _
from modoboa.core import models as core_models
@@ -20,11 +16,6 @@ from modoboa.core.extensions import exts_pool
from modoboa.lib.exceptions import Conflict
from .... import signals
-if six.PY2:
- from backports import csv
-else:
- import csv
-
class ImportCommand(BaseCommand):
"""Command class."""
@@ -35,7 +26,7 @@ class ImportCommand(BaseCommand):
def add_arguments(self, parser):
"""Add extra arguments to command."""
parser.add_argument(
- "--sepchar", type=six.text_type, default=";",
+ "--sepchar", type=str, default=";",
help="Separator used in file.")
parser.add_argument(
"--continue-if-exists", action="store_true",
@@ -45,7 +36,7 @@ class ImportCommand(BaseCommand):
"--crypt-password", action="store_true",
default=False, help="Encrypt provided passwords.")
parser.add_argument(
- "files", type=six.text_type, nargs="+", help="CSV files to import.")
+ "files", type=str, nargs="+", help="CSV files to import.")
def _import(self, filename, options, encoding="utf-8"):
"""Import domains or identities."""
@@ -121,10 +112,7 @@ class ImportCommand(BaseCommand):
encoding=detector.result["encoding"]
)
except UnicodeDecodeError as exc:
- six.raise_from(
- CommandError(
- _("Unable to decode CSV file using %(encoding)s "
- "encoding") % detector.result
- ),
- exc
- )
+ raise CommandError(
+ _("Unable to decode CSV file using %(encoding)s "
+ "encoding") % detector.result
+ ) from exc
diff --git a/modoboa/admin/management/commands/subcommands/_manage_dkim_keys.py b/modoboa/admin/management/commands/subcommands/_manage_dkim_keys.py
index c7002c2c0..0bc9e6f4e 100644
--- a/modoboa/admin/management/commands/subcommands/_manage_dkim_keys.py
+++ b/modoboa/admin/management/commands/subcommands/_manage_dkim_keys.py
@@ -1,9 +1,5 @@
-# -*- coding: utf-8 -*-
-
"""Management command to create DKIM keys."""
-from __future__ import print_function, unicode_literals
-
import os
from django.core.management.base import BaseCommand
diff --git a/modoboa/admin/management/commands/subcommands/_mx.py b/modoboa/admin/management/commands/subcommands/_mx.py
index 8f0db645e..964643d18 100644
--- a/modoboa/admin/management/commands/subcommands/_mx.py
+++ b/modoboa/admin/management/commands/subcommands/_mx.py
@@ -1,24 +1,21 @@
-# -*- coding: utf-8 -*-
-
"""Management command to check defined domains."""
-from __future__ import print_function, unicode_literals
-
import ipaddress
import gevent
from gevent import socket
from django.conf import settings
-from django.core import mail
from django.core.mail import EmailMessage
from django.core.management.base import BaseCommand
from django.template.loader import render_to_string
+from django.utils import timezone
from django.utils.encoding import smart_text
from django.utils.functional import cached_property
from django.utils.translation import ugettext as _
from modoboa.admin import constants, models
+from modoboa.dnstools import models as dns_models
from modoboa.parameters import tools as param_tools
@@ -74,7 +71,7 @@ class CheckMXRecords(BaseCommand):
for ip, mxs in mx_list.items():
try:
ip = ipaddress.ip_address(smart_text(ip))
- except ValueError as e:
+ except ValueError:
continue
else:
delim = "." if ip.version == 4 else ":"
@@ -89,8 +86,11 @@ class CheckMXRecords(BaseCommand):
return provider, results
def store_dnsbl_result(self, domain, provider, results, **options):
- """Store DNSBL provider results for domain."""
- alerts = {}
+ """Store DNSBL provider results for domain.
+
+ Return a list of alerts.
+ """
+ alerts = []
to_create = []
for mx, result in list(results.items()):
if not result:
@@ -111,13 +111,29 @@ class CheckMXRecords(BaseCommand):
dnsbl_result.save()
if not dnsbl_result.status and result:
trigger = True
+ alarm_name = "domain_mx_in_dnsbl_{}".format(provider)
if trigger:
- if domain not in alerts:
- alerts[domain] = []
- alerts[domain].append((provider, mx))
+ title = _("MX {} listed by DNSBL provider {}").format(
+ mx.name, provider)
+ domain.alarms.create(
+ internal_name=alarm_name,
+ status=constants.ALARM_OPENED,
+ title=title
+ )
+ alerts.append((provider, mx.name))
+ else:
+ domain.alarms.filter(
+ internal_name=alarm_name,
+ status=constants.ALARM_OPENED
+ ).update(
+ status=constants.ALARM_CLOSED,
+ closed=timezone.now()
+ )
models.DNSBLResult.objects.bulk_create(to_create)
- if not alerts:
- return
+ return alerts
+
+ def send_alert_notifications(self, domain, alerts, subject, tpl, **options):
+ """Send email notifications about given alerts."""
emails = list(options["email"])
if not options["skip_admin_emails"]:
emails.extend(
@@ -126,19 +142,9 @@ class CheckMXRecords(BaseCommand):
)
if not len(emails):
return
- with mail.get_connection() as connection:
- for domain, providers in list(alerts.items()):
- content = render_to_string(
- "admin/notifications/domain_in_dnsbl.html", {
- "domain": domain, "alerts": providers
- })
- subject = _("[modoboa] DNSBL issue(s) for domain {}").format(
- domain.name)
- msg = EmailMessage(
- subject, content.strip(), self.sender, emails,
- connection=connection
- )
- msg.send()
+ content = render_to_string(tpl, {"domain": domain, "alerts": alerts})
+ msg = EmailMessage(subject, content.strip(), self.sender, emails)
+ msg.send()
def check_valid_mx(self, domain, mx_list, **options):
"""Check that domain's MX record exist.
@@ -152,38 +158,57 @@ class CheckMXRecords(BaseCommand):
for mx in mx_list]
valid_mxs = self.valid_mxs
if not mxs:
- alerts.append(_("Domain {} has no MX record").format(domain))
- elif valid_mxs:
- for subnet in valid_mxs:
- for mx, addr in mxs:
- if addr in subnet:
- mx.managed = check = True
- mx.save()
- if check is False:
- mx_names = [
- "{0.name} ({0.address})".format(mx) for mx in mx_list]
+ alarm, created = domain.alarms.get_or_create(
+ internal_name="domain_has_no_mx",
+ status=constants.ALARM_OPENED,
+ defaults={"title": _("Domain has no MX record")}
+ )
+ if created:
alerts.append(
- _("MX record for domain {0} is invalid: {1}").format(
- domain, ", ".join(mx_names))
- )
+ _("Domain {} has no MX record").format(domain.name))
+ else:
+ # Close opened alarm
+ domain.alarms.filter(
+ internal_name="domain_has_no_mx",
+ status=constants.ALARM_OPENED).update(
+ status=constants.ALARM_CLOSED, closed=timezone.now())
+ if valid_mxs:
+ for subnet in valid_mxs:
+ for mx, addr in mxs:
+ if addr in subnet:
+ mx.managed = check = True
+ mx.save()
+ if check is False:
+ mx_names = [
+ "{0.name} ({0.address})".format(mx) for mx in mx_list]
+ alarm, created = domain.alarms.get_or_create(
+ internal_name="domain_invalid_mx",
+ status=constants.ALARM_OPENED,
+ defaults={
+ "title": _("Invalid MX record: {}").format(
+ ", ".join(mx_names))
+ }
+ )
+ if created:
+ alerts.append(
+ _("MX record for domain {0} is invalid: {1}")
+ .format(domain, ", ".join(mx_names))
+ )
+ else:
+ # Close opened alarm
+ domain.alarms.filter(
+ internal_name="domain_invalid_mx",
+ status=constants.ALARM_OPENED
+ ).update(
+ status=constants.ALARM_CLOSED,
+ closed=timezone.now()
+ )
if not alerts:
return
- emails = list(options["email"])
- if not options["skip_admin_emails"]:
- emails.extend(
- domain.admins.exclude(mailbox__isnull=True)
- .values_list("email", flat=True)
- )
- if not len(emails):
- return
- content = render_to_string(
- "admin/notifications/domain_invalid_mx.html", {
- "domain": domain, "alerts": alerts
- })
subject = _("[modoboa] MX issue(s) for domain {}").format(
domain.name)
- msg = EmailMessage(subject, content.strip(), self.sender, emails)
- msg.send()
+ tpl = "admin/notifications/domain_invalid_mx.html"
+ self.send_alert_notifications(domain, alerts, subject, tpl, **options)
def check_domain(self, domain, timeout=3, ttl=7200, **options):
"""Check specified domain."""
@@ -193,6 +218,25 @@ class CheckMXRecords(BaseCommand):
if param_tools.get_global_parameter("enable_mx_checks"):
self.check_valid_mx(domain, mx_list, **options)
+ if param_tools.get_global_parameter("enable_spf_checks"):
+ dns_models.DNSRecord.objects.get_or_create_for_domain(
+ domain, "spf", ttl)
+ condition = (
+ param_tools.get_global_parameter("enable_dkim_checks") and
+ domain.dkim_public_key
+ )
+ if condition:
+ dns_models.DNSRecord.objects.get_or_create_for_domain(
+ domain, "dkim", ttl)
+ if param_tools.get_global_parameter("enable_dmarc_checks"):
+ dns_models.DNSRecord.objects.get_or_create_for_domain(
+ domain, "dmarc", ttl)
+ if param_tools.get_global_parameter("enable_autoconfig_checks"):
+ dns_models.DNSRecord.objects.get_or_create_for_domain(
+ domain, "autoconfig", ttl)
+ dns_models.DNSRecord.objects.get_or_create_for_domain(
+ domain, "autodiscover", ttl)
+
condition = (
not param_tools.get_global_parameter("enable_dnsbl_checks") or
options["no_dnsbl"] is True)
@@ -210,11 +254,19 @@ class CheckMXRecords(BaseCommand):
gevent.spawn(self.query_dnsbl, mx_by_ip, provider)
for provider in self.providers]
gevent.joinall(jobs, timeout)
+ alerts = []
for job in jobs:
if not job.successful():
continue
provider, results = job.value
- self.store_dnsbl_result(domain, provider, results, **options)
+ alerts += self.store_dnsbl_result(
+ domain, provider, results, **options)
+ if not alerts:
+ return
+ subject = _("[modoboa] DNSBL issue(s) for domain {}").format(
+ domain.name)
+ tpl = "admin/notifications/domain_in_dnsbl.html"
+ self.send_alert_notifications(domain, alerts, subject, tpl, **options)
def handle(self, *args, **options):
"""Command entry point."""
diff --git a/modoboa/admin/management/commands/subcommands/_repair.py b/modoboa/admin/management/commands/subcommands/_repair.py
index 26bfb42f4..7cc8178a6 100644
--- a/modoboa/admin/management/commands/subcommands/_repair.py
+++ b/modoboa/admin/management/commands/subcommands/_repair.py
@@ -1,9 +1,5 @@
-# -*- coding: utf-8 -*-
-
"""Management command to check and fix known problems."""
-from __future__ import print_function, unicode_literals
-
from django.conf import settings
from django.core.management.base import BaseCommand
from django.utils.encoding import smart_str
diff --git a/modoboa/admin/migrations/0001_initial.py b/modoboa/admin/migrations/0001_initial.py
index 9be649089..09a6edb57 100644
--- a/modoboa/admin/migrations/0001_initial.py
+++ b/modoboa/admin/migrations/0001_initial.py
@@ -1,6 +1,3 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
from django.db import models, migrations
from django.conf import settings
@@ -22,7 +19,6 @@ class Migration(migrations.Migration):
],
options={
'ordering': ['address'],
- 'permissions': (('view_aliases', 'View aliases'),),
},
bases=(models.Model,),
),
@@ -50,7 +46,6 @@ class Migration(migrations.Migration):
],
options={
'ordering': ['name'],
- 'permissions': (('view_domain', 'View domain'), ('view_domains', 'View domains')),
},
bases=(models.Model,),
),
@@ -61,9 +56,6 @@ class Migration(migrations.Migration):
('name', models.CharField(help_text='The alias name', unique=True, max_length=100, verbose_name='name')),
('enabled', models.BooleanField(default=True, help_text='Check to activate this alias', verbose_name='enabled')),
],
- options={
- 'permissions': (('view_domaliases', 'View domain aliases'),),
- },
bases=(models.Model,),
),
migrations.CreateModel(
@@ -74,9 +66,6 @@ class Migration(migrations.Migration):
('quota', models.PositiveIntegerField()),
('use_domain_quota', models.BooleanField(default=False)),
],
- options={
- 'permissions': (('view_mailboxes', 'View mailboxes'),),
- },
bases=(models.Model,),
),
migrations.CreateModel(
diff --git a/modoboa/admin/migrations/0002_migrate_from_modoboa_admin.py b/modoboa/admin/migrations/0002_migrate_from_modoboa_admin.py
index c854881b6..301a6406b 100644
--- a/modoboa/admin/migrations/0002_migrate_from_modoboa_admin.py
+++ b/modoboa/admin/migrations/0002_migrate_from_modoboa_admin.py
@@ -1,6 +1,3 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
from django.db import models, migrations
diff --git a/modoboa/admin/migrations/0003_auto_20151118_1215.py b/modoboa/admin/migrations/0003_auto_20151118_1215.py
index 3dbbfe390..df92da9f4 100644
--- a/modoboa/admin/migrations/0003_auto_20151118_1215.py
+++ b/modoboa/admin/migrations/0003_auto_20151118_1215.py
@@ -1,6 +1,3 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
from django.db import migrations, models
diff --git a/modoboa/admin/migrations/0004_auto_20160914_0907.py b/modoboa/admin/migrations/0004_auto_20160914_0907.py
index 32aa5e148..6427b4439 100644
--- a/modoboa/admin/migrations/0004_auto_20160914_0907.py
+++ b/modoboa/admin/migrations/0004_auto_20160914_0907.py
@@ -1,7 +1,4 @@
-# -*- coding: utf-8 -*-
# Generated by Django 1.9.9 on 2016-09-14 09:07
-from __future__ import unicode_literals
-
from django.db import migrations, models
import django.db.models.deletion
diff --git a/modoboa/admin/migrations/0005_auto_20161026_1003.py b/modoboa/admin/migrations/0005_auto_20161026_1003.py
index d679eba6b..a6c94f83c 100644
--- a/modoboa/admin/migrations/0005_auto_20161026_1003.py
+++ b/modoboa/admin/migrations/0005_auto_20161026_1003.py
@@ -1,7 +1,4 @@
-# -*- coding: utf-8 -*-
# Generated by Django 1.9.5 on 2016-10-26 08:03
-from __future__ import unicode_literals
-
from django.db import migrations, models
diff --git a/modoboa/admin/migrations/0006_auto_20161104_1900.py b/modoboa/admin/migrations/0006_auto_20161104_1900.py
index daac34e1b..9b48d6b1a 100644
--- a/modoboa/admin/migrations/0006_auto_20161104_1900.py
+++ b/modoboa/admin/migrations/0006_auto_20161104_1900.py
@@ -1,7 +1,4 @@
-# -*- coding: utf-8 -*-
# Generated by Django 1.9.5 on 2016-11-04 18:00
-from __future__ import unicode_literals
-
from django.db import migrations, models
import django.utils.timezone
diff --git a/modoboa/admin/migrations/0007_auto_20161104_1915.py b/modoboa/admin/migrations/0007_auto_20161104_1915.py
index 761a22a12..318e265a4 100644
--- a/modoboa/admin/migrations/0007_auto_20161104_1915.py
+++ b/modoboa/admin/migrations/0007_auto_20161104_1915.py
@@ -1,7 +1,4 @@
-# -*- coding: utf-8 -*-
# Generated by Django 1.9.5 on 2016-11-04 18:15
-from __future__ import unicode_literals
-
from django.db import migrations, models
diff --git a/modoboa/admin/migrations/0008_domain_enable_dns_checks.py b/modoboa/admin/migrations/0008_domain_enable_dns_checks.py
index c7be468fe..974d05025 100644
--- a/modoboa/admin/migrations/0008_domain_enable_dns_checks.py
+++ b/modoboa/admin/migrations/0008_domain_enable_dns_checks.py
@@ -1,7 +1,4 @@
-# -*- coding: utf-8 -*-
# Generated by Django 1.9.12 on 2017-02-06 06:13
-from __future__ import unicode_literals
-
from django.db import migrations, models
diff --git a/modoboa/admin/migrations/0009_auto_20170215_0948.py b/modoboa/admin/migrations/0009_auto_20170215_0948.py
index b032a7190..262549b50 100644
--- a/modoboa/admin/migrations/0009_auto_20170215_0948.py
+++ b/modoboa/admin/migrations/0009_auto_20170215_0948.py
@@ -1,7 +1,4 @@
-# -*- coding: utf-8 -*-
# Generated by Django 1.10.5 on 2017-02-15 08:48
-from __future__ import unicode_literals
-
from django.db import migrations
diff --git a/modoboa/admin/migrations/0010_auto_20170215_1328.py b/modoboa/admin/migrations/0010_auto_20170215_1328.py
index e71d408ca..bc4535930 100644
--- a/modoboa/admin/migrations/0010_auto_20170215_1328.py
+++ b/modoboa/admin/migrations/0010_auto_20170215_1328.py
@@ -1,7 +1,4 @@
-# -*- coding: utf-8 -*-
# Generated by Django 1.10.5 on 2017-02-15 12:28
-from __future__ import unicode_literals
-
from django.db import migrations, models
diff --git a/modoboa/admin/migrations/0011_domain_transport.py b/modoboa/admin/migrations/0011_domain_transport.py
index 8f037fb6c..001b23761 100644
--- a/modoboa/admin/migrations/0011_domain_transport.py
+++ b/modoboa/admin/migrations/0011_domain_transport.py
@@ -1,7 +1,4 @@
-# -*- coding: utf-8 -*-
# Generated by Django 1.10.7 on 2017-12-20 14:17
-from __future__ import unicode_literals
-
from django.db import migrations, models
import django.db.models.deletion
diff --git a/modoboa/admin/migrations/0012_auto_20180112_1658.py b/modoboa/admin/migrations/0012_auto_20180112_1658.py
index a69e64388..24bc6f938 100644
--- a/modoboa/admin/migrations/0012_auto_20180112_1658.py
+++ b/modoboa/admin/migrations/0012_auto_20180112_1658.py
@@ -1,7 +1,4 @@
-# -*- coding: utf-8 -*-
# Generated by Django 1.11.8 on 2018-01-12 15:58
-from __future__ import unicode_literals
-
from django.db import migrations, models
diff --git a/modoboa/admin/migrations/0013_auto_20180124_2311.py b/modoboa/admin/migrations/0013_auto_20180124_2311.py
index d0671ab0d..c5bd1d3b5 100644
--- a/modoboa/admin/migrations/0013_auto_20180124_2311.py
+++ b/modoboa/admin/migrations/0013_auto_20180124_2311.py
@@ -1,7 +1,4 @@
-# -*- coding: utf-8 -*-
# Generated by Django 1.11.8 on 2018-01-24 23:11
-from __future__ import unicode_literals
-
from django.db import migrations, models
diff --git a/modoboa/admin/migrations/0014_auto_20181017_1628.py b/modoboa/admin/migrations/0014_auto_20181017_1628.py
new file mode 100644
index 000000000..73b47d5b8
--- /dev/null
+++ b/modoboa/admin/migrations/0014_auto_20181017_1628.py
@@ -0,0 +1,22 @@
+# Generated by Django 1.11.16 on 2018-10-17 14:28
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('admin', '0013_auto_20180124_2311'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='domain',
+ name='default_mailbox_quota',
+ field=models.PositiveIntegerField(default=0, verbose_name='Default mailbox quota'),
+ ),
+ migrations.AlterField(
+ model_name='domain',
+ name='quota',
+ field=models.PositiveIntegerField(default=0),
+ ),
+ ]
diff --git a/modoboa/admin/migrations/0015_rename_view_permissions.py b/modoboa/admin/migrations/0015_rename_view_permissions.py
new file mode 100644
index 000000000..744469a87
--- /dev/null
+++ b/modoboa/admin/migrations/0015_rename_view_permissions.py
@@ -0,0 +1,44 @@
+# Generated by Django 2.1.15 on 2020-01-13 09:22
+
+import sys
+
+from django.db import IntegrityError, migrations, transaction
+
+VIEW_PERMISSION_CODENAMES = {
+ 'view_aliases': 'view_alias',
+ 'view_domaliases': 'view_domainalias',
+ 'view_mailboxes': 'view_mailbox',
+}
+
+
+def rename_view_permissions(apps, schema_editor):
+ Permission = apps.get_model('auth', 'Permission')
+ db_alias = schema_editor.connection.alias
+ # Iterate over permissions and try to rename the codename
+ for perm in Permission.objects.using(db_alias).filter(
+ codename__in=VIEW_PERMISSION_CODENAMES.keys()
+ ):
+ codename = perm.codename
+ try:
+ with transaction.atomic():
+ perm.codename = VIEW_PERMISSION_CODENAMES[perm.codename]
+ perm.save()
+ except IntegrityError:
+ print(
+ (
+ "Unable to rename '{}' to '{}', a permission with this "
+ "codename already exists.".format(codename, perm.codename)
+ ),
+ file=sys.stderr,
+ )
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('admin', '0014_auto_20181017_1628'),
+ ]
+
+ operations = [
+ migrations.RunPython(rename_view_permissions),
+ ]
diff --git a/modoboa/admin/migrations/0016_auto_20200602_1201.py b/modoboa/admin/migrations/0016_auto_20200602_1201.py
new file mode 100644
index 000000000..4b273fb07
--- /dev/null
+++ b/modoboa/admin/migrations/0016_auto_20200602_1201.py
@@ -0,0 +1,23 @@
+# Generated by Django 2.2.12 on 2020-06-02 10:01
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('admin', '0015_rename_view_permissions'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='domain',
+ name='message_limit',
+ field=models.PositiveIntegerField(blank=True, help_text='Number of messages this domain can send per day', null=True, verbose_name='Message sending limit'),
+ ),
+ migrations.AddField(
+ model_name='mailbox',
+ name='message_limit',
+ field=models.PositiveIntegerField(blank=True, help_text='Number of messages this mailbox can send per day', null=True, verbose_name='Message sending limit'),
+ ),
+ ]
diff --git a/modoboa/admin/migrations/0017_alarm.py b/modoboa/admin/migrations/0017_alarm.py
new file mode 100644
index 000000000..ea955c897
--- /dev/null
+++ b/modoboa/admin/migrations/0017_alarm.py
@@ -0,0 +1,31 @@
+# Generated by Django 2.2.12 on 2020-09-11 07:46
+
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('admin', '0016_auto_20200602_1201'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Alarm',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('created', models.DateTimeField(default=django.utils.timezone.now)),
+ ('closed', models.DateTimeField(blank=True, null=True)),
+ ('status', models.IntegerField(choices=[(1, 'Opened'), (2, 'Closed')], db_index=True, default=1)),
+ ('title', models.CharField(max_length=150)),
+ ('internal_name', models.CharField(max_length=120)),
+ ('domain', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='alarms', to='admin.Domain')),
+ ('mailbox', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='alarms', to='admin.Mailbox')),
+ ],
+ options={
+ 'ordering': ['created'],
+ },
+ ),
+ ]
diff --git a/modoboa/admin/migrations/__init__.py b/modoboa/admin/migrations/__init__.py
index baffc4882..e69de29bb 100644
--- a/modoboa/admin/migrations/__init__.py
+++ b/modoboa/admin/migrations/__init__.py
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/modoboa/admin/models/__init__.py b/modoboa/admin/models/__init__.py
index 068fc45e9..67e40e208 100644
--- a/modoboa/admin/models/__init__.py
+++ b/modoboa/admin/models/__init__.py
@@ -1,9 +1,6 @@
-# -*- coding: utf-8 -*-
-
"""Admin models."""
-from __future__ import unicode_literals
-
+from .alarm import Alarm
from .alias import Alias, AliasRecipient
from .base import AdminObject
from .domain import Domain
@@ -12,6 +9,7 @@ from .mailbox import Mailbox, MailboxOperation, Quota, SenderAddress
from .mxrecord import DNSBLResult, MXRecord
__all__ = [
+ "Alarm",
"AdminObject",
"Alias",
"AliasRecipient",
diff --git a/modoboa/admin/models/alarm.py b/modoboa/admin/models/alarm.py
new file mode 100644
index 000000000..12ea82d39
--- /dev/null
+++ b/modoboa/admin/models/alarm.py
@@ -0,0 +1,55 @@
+"""Alert related models."""
+
+from django.db import models
+from django.utils import timezone
+
+from reversion import revisions as reversion
+
+from .. import constants
+
+
+class AlarmQuerySet(models.QuerySet):
+ """Custom queryset for Alarm."""
+
+ def opened(self):
+ """Return opened alarms."""
+ return self.filter(status=constants.ALARM_OPENED)
+
+
+class Alarm(models.Model):
+ """A simple alarm to attach to a domain and/or mailbox."""
+
+ domain = models.ForeignKey(
+ "admin.Domain", on_delete=models.CASCADE, related_name="alarms")
+ mailbox = models.ForeignKey(
+ "admin.Mailbox", on_delete=models.SET_NULL,
+ related_name="alarms",
+ null=True, blank=True,
+ )
+ created = models.DateTimeField(default=timezone.now)
+ closed = models.DateTimeField(null=True, blank=True)
+ status = models.IntegerField(
+ default=constants.ALARM_OPENED, choices=constants.ALARM_STATUSES,
+ db_index=True
+ )
+
+ title = models.CharField(max_length=150)
+ internal_name = models.CharField(max_length=120)
+
+ objects = models.Manager.from_queryset(AlarmQuerySet)()
+
+ class Meta:
+ ordering = ["created"]
+
+ def __str__(self):
+ return "[{}] {} - {}".format(
+ self.created, self.domain, self.get_status_display())
+
+ def close(self):
+ """Close this alarm."""
+ self.status = constants.ALARM_CLOSED
+ self.closed = timezone.now()
+ self.save()
+
+
+reversion.register(Alarm)
diff --git a/modoboa/admin/models/alias.py b/modoboa/admin/models/alias.py
index 98a360c09..468b335df 100644
--- a/modoboa/admin/models/alias.py
+++ b/modoboa/admin/models/alias.py
@@ -1,9 +1,5 @@
-# -*- coding: utf-8 -*-
-
"""Models related to aliases management."""
-from __future__ import unicode_literals
-
import hashlib
import random
@@ -52,9 +48,6 @@ class Alias(AdminObject):
_objectname = "MailboxAlias"
class Meta:
- permissions = (
- ("view_aliases", "View aliases"),
- )
ordering = ["address"]
unique_together = (("address", "internal"), )
app_label = "admin"
diff --git a/modoboa/admin/models/base.py b/modoboa/admin/models/base.py
index abe182180..5a23f4944 100644
--- a/modoboa/admin/models/base.py
+++ b/modoboa/admin/models/base.py
@@ -1,9 +1,5 @@
-# -*- coding: utf-8 -*-
-
"""Base admin models."""
-from __future__ import unicode_literals
-
from django.contrib.contenttypes.fields import GenericRelation
from django.db import models
from django.utils import timezone
@@ -47,13 +43,13 @@ class AdminObject(models.Model):
def __init__(self, *args, **kwargs):
"""Custom constructor."""
- super(AdminObject, self).__init__(*args, **kwargs)
+ super().__init__(*args, **kwargs)
self._loaded_values = {}
@classmethod
def from_db(cls, db, field_names, values):
"""Store loaded values."""
- instance = super(AdminObject, cls).from_db(db, field_names, values)
+ instance = super().from_db(db, field_names, values)
instance._loaded_values = dict(zip(field_names, values))
return instance
diff --git a/modoboa/admin/models/domain.py b/modoboa/admin/models/domain.py
index c04175a1b..9442b35f0 100644
--- a/modoboa/admin/models/domain.py
+++ b/modoboa/admin/models/domain.py
@@ -1,18 +1,12 @@
-# -*- coding: utf-8 -*-
-
"""Models related to domains management."""
-from __future__ import unicode_literals
-
import datetime
from reversion import revisions as reversion
from django.db import models
from django.utils import timezone
-from django.utils.encoding import (
- force_text, python_2_unicode_compatible, smart_text
-)
+from django.utils.encoding import force_text, smart_text
from django.utils.functional import cached_property
from django.utils.translation import ugettext as _, ugettext_lazy
@@ -20,29 +14,29 @@ from modoboa.core import signals as core_signals
from modoboa.core.models import User
from modoboa.lib.exceptions import BadRequest, Conflict
from modoboa.parameters import tools as param_tools
+
from .. import constants
from .base import AdminObject
+from . import mixins
-@python_2_unicode_compatible
-class Domain(AdminObject):
+class Domain(mixins.MessageLimitMixin, AdminObject):
"""Mail domain."""
name = models.CharField(ugettext_lazy("name"), max_length=100, unique=True,
help_text=ugettext_lazy("The domain name"))
quota = models.PositiveIntegerField(
default=0,
- help_text=ugettext_lazy(
- "Quota in MB shared between mailboxes. A value of 0 means "
- "no quota."
- )
)
default_mailbox_quota = models.PositiveIntegerField(
verbose_name=ugettext_lazy("Default mailbox quota"),
- default=0,
+ default=0
+ )
+ message_limit = models.PositiveIntegerField(
+ ugettext_lazy("Message sending limit"),
+ null=True, blank=True,
help_text=ugettext_lazy(
- "Default quota in MB applied to mailboxes. A value of 0 means "
- "no quota."
+ "Number of messages this domain can send per day"
)
)
enabled = models.BooleanField(
@@ -75,10 +69,6 @@ class Domain(AdminObject):
dkim_private_key_path = models.CharField(max_length=254, blank=True)
class Meta:
- permissions = (
- ("view_domain", "View domain"),
- ("view_domains", "View domains"),
- )
ordering = ["name"]
app_label = "admin"
@@ -87,6 +77,7 @@ class Domain(AdminObject):
super(Domain, self).__init__(*args, **kwargs)
self.old_mail_homes = None
self.oldname = self.name
+ self.old_dkim_key_length = self.dkim_key_length
@property
def domainalias_count(self):
@@ -189,6 +180,31 @@ class Domain(AdminObject):
else:
return "success"
+ @cached_property
+ def spf_record(self):
+ """Return SPF record."""
+ return self.dnsrecord_set.filter(type="spf").first()
+
+ @cached_property
+ def dkim_record(self):
+ """Return DKIM record."""
+ return self.dnsrecord_set.filter(type="dkim").first()
+
+ @cached_property
+ def dmarc_record(self):
+ """Return DMARC record."""
+ return self.dnsrecord_set.filter(type="dmarc").first()
+
+ @cached_property
+ def autoconfig_record(self):
+ """Return autoconfig record."""
+ return self.dnsrecord_set.filter(type="autoconfig").first()
+
+ @cached_property
+ def autodiscover_record(self):
+ """Return autodiscover record."""
+ return self.dnsrecord_set.filter(type="autodiscover").first()
+
@cached_property
def allocated_quota(self):
"""Return current quota allocation."""
@@ -224,6 +240,11 @@ class Domain(AdminObject):
return 0
return int(self.used_quota / float(self.quota) * 100)
+ @property
+ def message_counter_key(self):
+ """Return the key used to store messages count."""
+ return self.name
+
@property
def bind_format_dkim_public_key(self):
"""Return DKIM public key using Bind format."""
@@ -240,7 +261,7 @@ class Domain(AdminObject):
split_record.append(" \"%s\"" % record)
break
record = "\n".join(split_record)
- return "{}._domainkey.{}. 10800 IN TXT (\n{})".format(
+ return "{}._domainkey.{}. IN TXT (\n{})".format(
self.dkim_key_selector, self.name, record)
def add_admin(self, account):
@@ -283,6 +304,9 @@ class Domain(AdminObject):
self.old_mail_homes = {
mb.id: mb.mail_home for mb in self.mailbox_set.all()
}
+ if self.old_dkim_key_length != self.dkim_key_length:
+ self.dkim_public_key = ""
+ self.dkim_private_key_path = ""
super(Domain, self).save(*args, **kwargs)
def delete(self, fromuser, keepdir=False):
diff --git a/modoboa/admin/models/domain_alias.py b/modoboa/admin/models/domain_alias.py
index 917039911..6caa0a9cd 100644
--- a/modoboa/admin/models/domain_alias.py
+++ b/modoboa/admin/models/domain_alias.py
@@ -1,9 +1,5 @@
-# -*- coding: utf-8 -*-
-
"""Models related to domain aliases management."""
-from __future__ import unicode_literals
-
from reversion import revisions as reversion
from django.contrib.contenttypes.fields import GenericRelation
@@ -53,9 +49,6 @@ class DomainAlias(AdminObject):
objects = DomainAliasManager()
class Meta:
- permissions = (
- ("view_domaliases", "View domain aliases"),
- )
app_label = "admin"
def __str__(self):
diff --git a/modoboa/admin/models/mailbox.py b/modoboa/admin/models/mailbox.py
index 696d63d2f..cbea1a775 100644
--- a/modoboa/admin/models/mailbox.py
+++ b/modoboa/admin/models/mailbox.py
@@ -1,9 +1,5 @@
-# -*- coding: utf-8 -*-
-
"""Models related to mailboxes management."""
-from __future__ import unicode_literals
-
import os
import pwd
@@ -13,16 +9,18 @@ from django.contrib.contenttypes.models import ContentType
from django.db import models
from django.db.models import Q
from django.db.models.manager import Manager
-from django.utils.encoding import python_2_unicode_compatible, smart_text
+from django.utils.encoding import smart_text, force_text
from django.utils.translation import ugettext as _, ugettext_lazy
from modoboa.core.models import User
from modoboa.lib import exceptions as lib_exceptions
from modoboa.lib.email_utils import split_mailbox
-from modoboa.lib.sysutils import exec_cmd
+from modoboa.lib.sysutils import doveadm_cmd
from modoboa.parameters import tools as param_tools
+
from .base import AdminObject
from .domain import Domain
+from . import mixins
class QuotaManager(models.Manager):
@@ -90,8 +88,7 @@ class MailboxManager(Manager):
return self.get_queryset().select_related().filter(qf)
-@python_2_unicode_compatible
-class Mailbox(AdminObject):
+class Mailbox(mixins.MessageLimitMixin, AdminObject):
"""User mailbox."""
address = models.CharField(
@@ -101,21 +98,24 @@ class Mailbox(AdminObject):
)
quota = models.PositiveIntegerField(default=0)
use_domain_quota = models.BooleanField(default=False)
+ message_limit = models.PositiveIntegerField(
+ ugettext_lazy("Message sending limit"), null=True, blank=True,
+ help_text=ugettext_lazy(
+ "Number of messages this mailbox can send per day")
+ )
domain = models.ForeignKey(Domain, on_delete=models.CASCADE)
user = models.OneToOneField(User, on_delete=models.CASCADE)
objects = MailboxManager()
class Meta:
- permissions = (
- ("view_mailboxes", "View mailboxes"),
- )
app_label = "admin"
def __init__(self, *args, **kwargs):
- super(Mailbox, self).__init__(*args, **kwargs)
+ super().__init__(*args, **kwargs)
self.__mail_home = None
self.old_full_address = self.full_address
+ self.old_message_limit = self.message_limit
def __str__(self):
return smart_text(self.full_address)
@@ -158,13 +158,13 @@ class Mailbox(AdminObject):
options = {}
if curuser != mbowner:
options["sudo_user"] = mbowner
- code, output = exec_cmd(
- "doveadm user -f home %s" % self.full_address, **options
+ code, output = doveadm_cmd(
+ "user -f home %s" % self.full_address, **options
)
if code:
raise lib_exceptions.InternalError(
_("Failed to retrieve mailbox location (%s)") % output)
- self.__mail_home = output.strip()
+ self.__mail_home = force_text(output.strip())
return self.__mail_home
@property
@@ -196,6 +196,11 @@ class Mailbox(AdminObject):
"""Set the ``Quota`` for this mailbox."""
self._quota_value = instance
+ @property
+ def message_counter_key(self):
+ """Return the key used to store messages count."""
+ return self.full_address
+
def rename_dir(self, old_mail_home):
"""Rename local directory if needed."""
hm = param_tools.get_global_parameter(
@@ -325,6 +330,7 @@ class Mailbox(AdminObject):
not user.userobjectlimit_set.get(name="quota").max_value
)
self.set_quota(values["quota"], override_rules)
+ self.message_limit = values.get("message_limit")
if newaddress:
self.rename(local_part, domain)
self.save()
@@ -351,7 +357,6 @@ class Mailbox(AdminObject):
reversion.register(Mailbox)
-@python_2_unicode_compatible
class SenderAddress(models.Model):
"""Extra sender address for Mailbox."""
diff --git a/modoboa/admin/models/mixins.py b/modoboa/admin/models/mixins.py
new file mode 100644
index 000000000..82e0dcf6c
--- /dev/null
+++ b/modoboa/admin/models/mixins.py
@@ -0,0 +1,27 @@
+"""Admin model mixins."""
+
+from modoboa.policyd.utils import get_message_counter
+
+
+class MessageLimitMixin:
+ """A mixin to add message limit support."""
+
+ @property
+ def message_counter_key(self):
+ raise NotImplementedError
+
+ @property
+ def sent_messages(self):
+ """Return number of sent messages for the current day."""
+ if self.message_limit is None:
+ return None
+ return (
+ self.message_limit - get_message_counter(self.message_counter_key)
+ )
+
+ @property
+ def sent_messages_in_percent(self):
+ """Return number of sent messages as a percentage."""
+ if self.message_limit is None:
+ return None
+ return int(self.sent_messages / float(self.message_limit) * 100)
diff --git a/modoboa/admin/models/mxrecord.py b/modoboa/admin/models/mxrecord.py
index 3d2cf9de8..a6f1f518e 100644
--- a/modoboa/admin/models/mxrecord.py
+++ b/modoboa/admin/models/mxrecord.py
@@ -1,9 +1,5 @@
-# -*- coding: utf-8 -*-
-
"""MX records storage."""
-from __future__ import unicode_literals
-
import datetime
from django.db import models
diff --git a/modoboa/admin/postfix_maps.py b/modoboa/admin/postfix_maps.py
index a1c58d410..d7c1eda64 100644
--- a/modoboa/admin/postfix_maps.py
+++ b/modoboa/admin/postfix_maps.py
@@ -1,10 +1,5 @@
-# -*- coding: utf-8 -*-
-
"""Map file definitions for postfix."""
-from __future__ import unicode_literals
-
-
class DomainsMap(object):
"""Map to list all domains."""
@@ -116,10 +111,20 @@ class SenderLoginMap(object):
"WHERE sad.address='%s') "
"UNION "
"(SELECT concat(mb.address, '@', dom.name) FROM admin_mailbox mb "
- "INNER JOIN modoboa_admin_aliasrecipient alr ON alr.r_mailbox_id=mb.id"
- " INNER JOIN admin_domain dom ON dom.id=mb.domain_id"
- " INNER JOIN admin_alias al ON alr.alias_id=al.id "
- "WHERE al.enabled=1 AND al.address='%s')"
+ "INNER JOIN modoboa_admin_aliasrecipient alr ON alr.r_mailbox_id=mb.id "
+ "INNER JOIN admin_domain dom ON dom.id=mb.domain_id "
+ "INNER JOIN admin_alias al ON alr.alias_id=al.id "
+ "LEFT JOIN admin_domainalias adoma ON adoma.target_id=al.domain_id "
+ "LEFT JOIN admin_domain adom ON adom.id=adoma.target_id "
+ "WHERE al.enabled=1 AND ("
+ " al.address='%s' OR ("
+ " adoma.name='%d' AND al.address=concat('%u', '@', adom.name)"
+ "))) "
+ "UNION "
+ "(SELECT concat(mb.address, '@', dom.name) FROM admin_mailbox mb "
+ "INNER JOIN admin_senderaddress sad ON sad.mailbox_id=mb.id "
+ "INNER JOIN admin_domain dom ON dom.id=mb.domain_id "
+ "WHERE sad.address=concat('@','%d')) "
)
postgres = (
"(SELECT email FROM core_user WHERE email='%s' AND is_active) "
@@ -130,10 +135,20 @@ class SenderLoginMap(object):
"WHERE sad.address='%s') "
"UNION "
"(SELECT mb.address || '@' || dom.name FROM admin_mailbox mb "
- "INNER JOIN modoboa_admin_aliasrecipient alr ON alr.r_mailbox_id=mb.id"
- " INNER JOIN admin_domain dom ON dom.id=mb.domain_id"
- " INNER JOIN admin_alias al ON alr.alias_id=al.id "
- "WHERE al.enabled AND al.address='%s')"
+ "INNER JOIN modoboa_admin_aliasrecipient alr ON alr.r_mailbox_id=mb.id "
+ "INNER JOIN admin_domain dom ON dom.id=mb.domain_id "
+ "INNER JOIN admin_alias al ON alr.alias_id=al.id "
+ "LEFT JOIN admin_domainalias adoma ON adoma.target_id=al.domain_id "
+ "LEFT JOIN admin_domain adom ON adom.id=adoma.target_id "
+ "WHERE al.enabled AND ("
+ " al.address='%s' OR ("
+ " adoma.name='%d' AND al.address='%u'||'@'||adom.name"
+ "))) "
+ "UNION "
+ "(SELECT mb.address || '@' || dom.name FROM admin_mailbox mb "
+ "INNER JOIN admin_senderaddress sad ON sad.mailbox_id=mb.id "
+ "INNER JOIN admin_domain dom ON dom.id=mb.domain_id "
+ "WHERE sad.address='@'||'%d') "
)
sqlite = (
"SELECT email FROM core_user WHERE email='%s' AND is_active=1 "
@@ -147,5 +162,15 @@ class SenderLoginMap(object):
"INNER JOIN modoboa_admin_aliasrecipient alr ON alr.r_mailbox_id=mb.id "
"INNER JOIN admin_domain dom ON dom.id=mb.domain_id "
"INNER JOIN admin_alias al ON alr.alias_id=al.id "
- "WHERE al.enabled=1 AND al.address='%s'"
+ "LEFT JOIN admin_domainalias adoma ON adoma.target_id=al.domain_id "
+ "LEFT JOIN admin_domain adom ON adom.id=adoma.target_id "
+ "WHERE al.enabled=1 AND ("
+ " al.address='%s' OR ("
+ " adoma.name='%d' AND al.address='%u'||'@'||adom.name"
+ ")) "
+ "UNION "
+ "(SELECT mb.address || '@' || dom.name FROM admin_mailbox mb "
+ "INNER JOIN admin_senderaddress sad ON sad.mailbox_id=mb.id "
+ "INNER JOIN admin_domain dom ON dom.id=mb.domain_id "
+ "WHERE sad.address='@'||'%d') "
)
diff --git a/modoboa/admin/serializers.py b/modoboa/admin/serializers.py
index 52e764d20..1aa88e92d 100644
--- a/modoboa/admin/serializers.py
+++ b/modoboa/admin/serializers.py
@@ -1,9 +1,5 @@
-# -*- coding: utf-8 -*-
-
"""Admin serializers."""
-from __future__ import unicode_literals
-
from django.conf import settings
from django.contrib.auth import password_validation
from django.core.exceptions import ValidationError
@@ -19,7 +15,7 @@ from modoboa.core import (
)
from modoboa.lib import (
email_utils, exceptions as lib_exceptions, fields as lib_fields,
- permissions
+ permissions, web_utils
)
from modoboa.parameters import tools as param_tools
@@ -29,6 +25,21 @@ from . import constants, lib, models
class DomainSerializer(serializers.ModelSerializer):
"""Base Domain serializer."""
+ quota = serializers.CharField(
+ required=False,
+ help_text=ugettext_lazy(
+ "Quota shared between mailboxes. Can be expressed in KB, "
+ "MB (default) or GB. A value of 0 means no quota."
+ )
+ )
+ default_mailbox_quota = serializers.CharField(
+ required=False,
+ help_text=ugettext_lazy(
+ "Default quota in MB applied to mailboxes. A value of 0 means "
+ "no quota."
+ )
+ )
+
class Meta:
model = models.Domain
fields = (
@@ -36,7 +47,7 @@ class DomainSerializer(serializers.ModelSerializer):
"enable_dkim", "dkim_key_selector", "dkim_key_length",
"dkim_public_key", "dkim_private_key_path",
"mailbox_count", "mbalias_count", "domainalias_count",
- "dns_status"
+ "dns_status", "message_limit"
)
read_only_fields = (
"pk", "dkim_public_key", "dns_status", "allocated_quota_in_percent"
@@ -57,6 +68,14 @@ class DomainSerializer(serializers.ModelSerializer):
_("No authorized MX record found for this domain"))
return value
+ def validate_quota(self, value):
+ """Convert quota to MB."""
+ return web_utils.size2integer(value, output_unit="MB")
+
+ def validate_default_mailbox_quota(self, value):
+ """Convert quota to MB."""
+ return web_utils.size2integer(value, output_unit="MB")
+
def validate(self, data):
"""Check quota values."""
quota = data.get("quota", 0)
@@ -70,7 +89,14 @@ class DomainSerializer(serializers.ModelSerializer):
def create(self, validated_data):
"""Set permissions."""
+ params = dict(param_tools.get_global_parameters("admin"))
domain = models.Domain(**validated_data)
+ condition = (
+ params["default_domain_message_limit"] is not None and
+ "message_limit" not in validated_data
+ )
+ if condition:
+ domain.message_limit = params["default_domain_message_limit"]
creator = self.context["request"].user
core_signals.can_create_object.send(
sender=self.__class__, context=creator,
@@ -118,15 +144,22 @@ class MailboxSerializer(serializers.ModelSerializer):
"""Base mailbox serializer."""
full_address = lib_fields.DRFEmailFieldUTF8()
+ quota = serializers.CharField()
class Meta:
model = models.Mailbox
- fields = ("pk", "full_address", "use_domain_quota", "quota", )
+ fields = (
+ "pk", "full_address", "use_domain_quota", "quota", "message_limit"
+ )
def validate_full_address(self, value):
"""Lower case address."""
return value.lower()
+ def validate_quota(self, value):
+ """Convert quota to MB."""
+ return web_utils.size2integer(value, output_unit="MB")
+
class AccountSerializer(serializers.ModelSerializer):
"""Base account serializer."""
@@ -304,6 +337,10 @@ class WritableAccountSerializer(AccountSerializer):
mb = admin_models.Mailbox(
user=account, address=address, domain=domain, **data)
mb.set_quota(quota, creator.has_perm("admin.add_domain"))
+ default_msg_limit = param_tools.get_global_parameter(
+ "default_mailbox_message_limit")
+ if default_msg_limit is not None:
+ mb.message_limit = default_msg_limit
mb.save(creator=creator)
account.email = full_address
return mb
@@ -466,3 +503,9 @@ class AdminGlobalParametersSerializer(serializers.Serializer):
auto_account_removal = serializers.BooleanField(default=False)
auto_create_domain_and_mailbox = serializers.BooleanField(default=True)
create_alias_on_mbox_rename = serializers.BooleanField(default=False)
+
+
+class ResetPasswordSerializer(serializers.Serializer):
+ """Serializer by the reset password endpoint."""
+
+ email = lib_fields.DRFEmailFieldUTF8()
diff --git a/modoboa/admin/signals.py b/modoboa/admin/signals.py
index b085d7807..d7e59ba9b 100644
--- a/modoboa/admin/signals.py
+++ b/modoboa/admin/signals.py
@@ -1,9 +1,5 @@
-# -*- coding: utf-8 -*-
-
"""Modoboa admin signals."""
-from __future__ import unicode_literals
-
import django.dispatch
check_extra_account_form = django.dispatch.Signal(
diff --git a/modoboa/admin/static/admin/js/admin.js b/modoboa/admin/static/admin/js/admin.js
index da2039ce3..0ef78734c 100644
--- a/modoboa/admin/static/admin/js/admin.js
+++ b/modoboa/admin/static/admin/js/admin.js
@@ -172,9 +172,12 @@ Domains.prototype = {
if (this.navobj.getbaseurl() === "list") {
args.objtype = "domain";
this.options.eor_message = gettext("No more domain to show");
- } else {
+ } else if (this.navobj.getbaseurl() === "quota") {
args.objtype = "quota";
this.options.eor_message = gettext("No more quota to show");
+ } else {
+ args.objtype = "log";
+ this.options.eor_message = gettext("No more log to show");
}
return args;
},
@@ -217,7 +220,7 @@ Domains.prototype = {
* A new page has been received, inject it.
*
* @param {Object} data - page content
- * @param {string} direction -
+ * @param {string} direction -
*/
add_new_page: function(data, direction) {
Admin.prototype.add_new_page.call(this, data, direction);
@@ -439,7 +442,7 @@ Identities.prototype = {
* A new page has been received, inject it.
*
* @param {Object} data - page content
- * @param {string} direction -
+ * @param {string} direction -
*/
add_new_page: function(data, direction) {
Admin.prototype.add_new_page.call(this, data, direction);
diff --git a/modoboa/admin/templates/admin/_domain_dnschecks_status.html b/modoboa/admin/templates/admin/_domain_dnschecks_status.html
index 1e123a4ae..b66c4e8e9 100644
--- a/modoboa/admin/templates/admin/_domain_dnschecks_status.html
+++ b/modoboa/admin/templates/admin/_domain_dnschecks_status.html
@@ -11,4 +11,39 @@
{% if enable_dnsbl_checks %}
DNSBL
{% endif %}
+ {% if enable_spf_checks %}
+ {% if not domain.spf_record %}
+ SPF
+ {% else %}
+
+ SPF
+ {% endif %}
+ {% endif %}
+ {% if enable_dkim_checks and domain.enable_dkim %}
+ {% if not domain.dkim_public_key %}
+ DKIM
+ {% elif not domain.dkim_record %}
+ DKIM
+ {% else %}
+
+ DKIM
+ {% endif %}
+ {% endif %}
+ {% if enable_dmarc_checks %}
+ {% if not domain.dmarc_record %}
+ DMARC
+ {% else %}
+
+ DMARC
+ {% endif %}
+ {% endif %}
+ {% if enable_autoconfig_checks %}
+ {% if not domain.autoconfig_record and not domain.autodiscover_record %}
+ autoconfig
+ {% elif not domain.autoconfig_record or not domain.autodiscover_record %}
+ autoconfig
+ {% else %}
+ autoconfig
+ {% endif %}
+ {% endif %}
{% endif %}
diff --git a/modoboa/admin/templates/admin/account_detail.html b/modoboa/admin/templates/admin/account_detail.html
index 6e9c17b9f..78c490e90 100644
--- a/modoboa/admin/templates/admin/account_detail.html
+++ b/modoboa/admin/templates/admin/account_detail.html
@@ -45,6 +45,12 @@
{% trans "Quota" %} |
{% include "common/progressbar.html" with id='quotabar' value=object.mailbox.get_quota_in_percent %} |
+ {% if object.mailbox.message_limit is not None %}
+
+ | {% trans "Message sending limit" %} |
+ {% include "common/progressbar.html" with id='messagelimitbar' value=object.mailbox.sent_messages_in_percent %} |
+
+ {% endif %}
{% endif %}
@@ -59,7 +65,7 @@
| {{ domain }} |
{% empty %}
| {% trans "No domain defined." %} |
- {% endfor %}
+ {% endfor %}
{% endif %}
diff --git a/modoboa/admin/templates/admin/domain_alarms.html b/modoboa/admin/templates/admin/domain_alarms.html
new file mode 100644
index 000000000..a9db261a9
--- /dev/null
+++ b/modoboa/admin/templates/admin/domain_alarms.html
@@ -0,0 +1,46 @@
+{% extends "admin/header.html" %}
+
+{% load admin_tags i18n lib_tags static %}
+
+{% block extra_css %}
+ {{ block.super }}
+ {% extra_static_content "domains" "css" user %}
+{% endblock %}
+
+{% block leftcol %}
+
+
+ {% get_extra_admin_content user "leftcol" selection %}
+{% endblock %}
+
+{% block apparea %}
+ {% trans "Opened alarms for" %} {{ object }}
+
+
+
+
+
+ | {% trans "Date" %} |
+ {% trans "Message" %} |
+ {% trans "Mailbox" %} |
+
+
+
+ {% for alarm in object.alarms.opened %}
+
+ | {{ alarm.created|date:"SHORT_DATETIME_FORMAT" }} |
+ {{ alarm.title }} |
+ {{ alarm.mailbox|default:"" }} |
+
+ {% empty %}
+
+ |
+ {% trans "No opened alarm" %}
+ |
+
+ {% endfor %}
+
+
+{% endblock %}
diff --git a/modoboa/admin/templates/admin/domain_detail.html b/modoboa/admin/templates/admin/domain_detail.html
index fbebca6ab..fb4ef1b37 100644
--- a/modoboa/admin/templates/admin/domain_detail.html
+++ b/modoboa/admin/templates/admin/domain_detail.html
@@ -38,11 +38,11 @@
{{ domain.domainalias_count }} |
- | {% trans "Mailboxes" %} |
+ {% trans "Mailboxes" %} |
{{ domain.mailbox_count }} |
- | {% trans "Mailbox aliases" %} |
+ {% trans "Mailbox aliases" %} |
{{ domain.mbalias_count }} |
@@ -64,6 +64,20 @@
| {% trans "Default mailbox quota" %} |
{{ domain.default_mailbox_quota }} {% trans "MB" %} |
+ {% if domain.message_limit != None %}
+
+ | {% trans "Message sending limit" %} |
+ {{ domain.message_limit }} {% trans "per day" %} |
+
+
+ | {% trans "Usage" %} |
+
+
+ |
+
+ {% endif %}
@@ -88,7 +102,11 @@