diff --git a/modoboa/admin/app_settings.py b/modoboa/admin/app_settings.py
index ebe6032f3..d0ad679b0 100644
--- a/modoboa/admin/app_settings.py
+++ b/modoboa/admin/app_settings.py
@@ -59,6 +59,14 @@ class AdminParametersForm(param_forms.AdminParametersForm):
)
)
+ custom_dns_server = GenericIPAddressField(
+ label=ugettext_lazy("Custom DNS server"),
+ required=False,
+ help_text=ugettext_lazy(
+ "Use a custom DNS server instead of local server configuration"
+ )
+ )
+
dkim_keys_storage_dir = forms.CharField(
label=ugettext_lazy("DKIM keys storage directory"),
initial="",
@@ -79,14 +87,6 @@ class AdminParametersForm(param_forms.AdminParametersForm):
)
)
- use_specific_dns_server = GenericIPAddressField(
- label=ugettext_lazy("Use specific DNS server"),
- required=False,
- help_text=ugettext_lazy(
- "Use a specific DNS server instead of local server configuration"
- )
- )
-
mbsep = SeparatorField(label=ugettext_lazy("Mailboxes"))
handle_mailboxes = YesNoField(
diff --git a/modoboa/admin/lib.py b/modoboa/admin/lib.py
index a8aabd51d..9d1b11aef 100644
--- a/modoboa/admin/lib.py
+++ b/modoboa/admin/lib.py
@@ -7,7 +7,6 @@ from __future__ import unicode_literals
import ipaddress
import logging
import random
-import socket
import string
from functools import wraps
from itertools import chain
@@ -175,12 +174,15 @@ def get_domain_mx_list(domain):
"""Return a list of MX IP address for domain."""
result = []
logger = logging.getLogger("modoboa.admin")
- dns_server = param_tools.get_global_parameter("use_specific_dns_server")
+ dns_server = param_tools.get_global_parameter("custom_dns_server")
if dns_server:
- dns.resolver.default_resolver.nameservers = [dns_server]
+ resolver = dns.resolver.Resolver()
+ resolver.nameservers = [dns_server]
+ else:
+ resolver = dns.resolver
try:
- dns_answers = dns.resolver.query(domain, "MX")
+ dns_answers = resolver.query(domain, "MX")
except dns.resolver.NXDOMAIN as e:
logger.error(_("No DNS records found for %s") % domain, exc_info=e)
except dns.resolver.NoAnswer as e:
@@ -193,29 +195,29 @@ def get_domain_mx_list(domain):
domain, exc_info=e)
else:
for dns_answer in dns_answers:
- try:
- mx_domain = dns_answer.exchange.to_unicode(
- omit_final_dot=True, idna_codec=IDNA_2008_UTS_46)
- ip_answers = dns.resolver.query(mx_domain)
- except dns.resolver.NXDOMAIN as e:
- logger.error(_("No DNS records found without MX for %s")
- % domain, exc_info=e)
- else:
- for ip_answer in ip_answers:
- for answer_set in ip_answer.response.answer:
- for address in answer_set:
- try:
- address_smart = smart_text(address)
- mx_ip = ipaddress.ip_address(address_smart)
- except ValueError as e:
- logger.warning(
- _("Invalid IP address format for "
- "%(domain)s; %(addr)s")
- % {"domain": mx_domain,
- "addr": smart_text(address)},
- exc_info=e)
- else:
- result.append((mx_domain, mx_ip))
+ for rtype in ["A", "AAAA"]:
+ try:
+ mx_domain = dns_answer.exchange.to_unicode(
+ omit_final_dot=True, idna_codec=IDNA_2008_UTS_46)
+ ip_answers = resolver.query(mx_domain, rtype)
+ except dns.resolver.NXDOMAIN as e:
+ logger.error(
+ _("No {type} record found for MX {mx}").format(
+ type=rtype, mx=domain), exc_info=e)
+ else:
+ for ip_answer in ip_answers:
+ try:
+ address_smart = smart_text(ip_answer.address)
+ mx_ip = ipaddress.ip_address(address_smart)
+ except ValueError as e:
+ logger.warning(
+ _("Invalid IP address format for "
+ "{domain}; {addr}").format(
+ domain=mx_domain,
+ addr=smart_text(ip_answer.address)
+ ), exc_info=e)
+ else:
+ result.append((mx_domain, mx_ip))
return result
diff --git a/modoboa/admin/locale/cs_CZ/LC_MESSAGES/django.po b/modoboa/admin/locale/cs_CZ/LC_MESSAGES/django.po
index c4ec18881..6141f6420 100644
--- a/modoboa/admin/locale/cs_CZ/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/cs_CZ/LC_MESSAGES/django.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-10-05 16:08+0200\n"
+"POT-Creation-Date: 2018-10-17 09:25+0200\n"
"PO-Revision-Date: 2018-08-10 11:53+0000\n"
"Last-Translator: Jarda Tesar "
"
Můžete také použít " "jiný oddělovač hodnot.
" -#: admin/templates/admin/import_identities_form.html:6 +#: templates/admin/import_identities_form.html:6 msgid "" "Provide a CSV file where lines respect one of the following formats:Můžete také použít jiný oddělovač " "hodnot.
" -#: admin/templates/admin/importform.html:6 +#: templates/admin/importform.html:6 msgid "Help" msgstr "Nápověda" -#: admin/templates/admin/importform.html:13 +#: templates/admin/importform.html:13 msgid "Importing..." msgstr "Importuji..." -#: admin/templates/admin/index.html:6 +#: templates/admin/index.html:6 msgid "Admin" msgstr "Admin" -#: admin/templates/admin/mailboxes_raw.html:3 +#: templates/admin/mailboxes_raw.html:3 msgid "Choose a value" msgstr "Zvolte hodnotu" -#: admin/templates/admin/mailform.html:7 +#: templates/admin/mailform.html:7 msgid "Use domain default value" msgstr "Použít výchozí hodnotu domény" -#: admin/templates/admin/mx_domain_detail.html:11 +#: templates/admin/mx_domain_detail.html:11 msgid "Updated" msgstr "Aktualizováno" -#: admin/templates/admin/mx_domain_detail.html:23 +#: templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" msgstr "Tato IP neodpovídá žádnému z platných MX-ů zadefinovaných v možnostech" -#: admin/templates/admin/mx_domain_detail.html:36 +#: templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." msgstr "Pro tuto doménu nebyl nalezen žádný MX záznam." -#: admin/templates/admin/notifications/domain_in_dnsbl.html:3 +#: templates/admin/notifications/domain_in_dnsbl.html:3 #, python-format msgid "" "Modoboa detected that domain %(domain)s is listed by the following DNSBL " @@ -1204,7 +1195,7 @@ msgstr "" "Modoboa zjistilo, že doména %(domain)s je uvedena v seznamu u následujících " "poskytovatelů DNSBL:" -#: admin/templates/admin/notifications/domain_in_dnsbl.html:11 +#: 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 " @@ -1214,81 +1205,98 @@ msgstr "" "jsou považovány za spam. Měli byste kontaktovat tyto poskytovatele a požádat " "je o odstranění IP adresy (adres) ze seznamu." -#: admin/templates/admin/notifications/domain_invalid_mx.html:3 +#: templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "Modoboa zjistilo, že doména %(domain)s nemá platný MX záznam:" -#: admin/templates/admin/searchform.html:6 +#: templates/admin/searchform.html:6 msgid "Search" msgstr "Hledat" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_m" msgstr "Aktivovaný" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_f" msgstr "Aktivovaná" -#: admin/templatetags/admin_tags.py:49 +#: templatetags/admin_tags.py:49 msgid "List domains" msgstr "Seznam domén" -#: admin/templatetags/admin_tags.py:54 admin/templatetags/admin_tags.py:109 +#: templatetags/admin_tags.py:54 templatetags/admin_tags.py:109 msgid "List quotas" msgstr "Seznam kvót" -#: admin/templatetags/admin_tags.py:66 admin/templatetags/admin_tags.py:114 -#: admin/views/import_.py:94 admin/views/import_.py:116 +#: templatetags/admin_tags.py:66 templatetags/admin_tags.py:114 +#: views/import_.py:94 views/import_.py:116 msgid "Import" msgstr "Import" -#: admin/templatetags/admin_tags.py:72 admin/templatetags/admin_tags.py:120 -#: admin/views/export.py:48 admin/views/export.py:76 +#: templatetags/admin_tags.py:72 templatetags/admin_tags.py:120 +#: views/export.py:48 views/export.py:76 msgid "Export" msgstr "Export" -#: admin/templatetags/admin_tags.py:104 +#: templatetags/admin_tags.py:104 msgid "List identities" msgstr "Seznam identit" -#: admin/templatetags/admin_tags.py:139 +#: templatetags/admin_tags.py:139 msgid "View the domain's identities" msgstr "Zobrazit seznam identit domény" -#: admin/templatetags/admin_tags.py:145 admin/templatetags/admin_tags.py:188 -#: admin/templatetags/admin_tags.py:201 +#: templatetags/admin_tags.py:145 templatetags/admin_tags.py:188 +#: templatetags/admin_tags.py:201 msgid "Edit {}" msgstr "Upravit {}" -#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:192 -#: admin/templatetags/admin_tags.py:206 +#: templatetags/admin_tags.py:155 templatetags/admin_tags.py:192 +#: templatetags/admin_tags.py:206 #, python-format msgid "Delete %s?" msgstr "Smazat %s?" -#: admin/views/alias.py:33 +#: tests/test_mx.py:144 +#, fuzzy, python-format +#| msgid "No MX record found for this domain." +msgid "No A record found for MX %(domain)s" +msgstr "Pro tuto doménu nebyl nalezen žádný MX záznam." + +#: tests/test_mx.py:147 +#, fuzzy, python-format +#| msgid "No MX record found for this domain." +msgid "No AAAA record found for MX %(domain)s" +msgstr "Pro tuto doménu nebyl nalezen žádný MX záznam." + +#: tests/test_mx.py:150 tests/test_mx.py:153 +#, python-format +msgid "Invalid IP address format for %(domain)s; %(addr)s" +msgstr "Neplatný formát IP adresy pro %(domain)s; %(addr)s" + +#: views/alias.py:33 msgid "Alias with this name already exists" msgstr "Alias s tímto názvem již existuje" -#: admin/views/alias.py:58 +#: views/alias.py:58 msgid "Create" msgstr "Vytvořit" -#: admin/views/alias.py:70 +#: views/alias.py:70 msgid "New alias" msgstr "Nový alias" -#: admin/views/alias.py:71 +#: views/alias.py:71 msgid "Alias created" msgstr "Alias vytvořen" -#: admin/views/alias.py:83 +#: views/alias.py:83 msgid "Alias modified" msgstr "Alias upraven" -#: admin/views/alias.py:107 +#: views/alias.py:107 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Alias smazán" @@ -1296,19 +1304,19 @@ msgstr[1] "Alias smazán" msgstr[2] "Aliasy smazány" msgstr[3] "Aliasy smazány" -#: admin/views/dns.py:32 +#: views/dns.py:32 msgid "MX records of {}" msgstr "MX záznamy pro {}" -#: admin/views/dns.py:55 +#: views/dns.py:55 msgid "DNSBL summary for {}" msgstr "DNSBL přehled pro {}" -#: admin/views/domain.py:199 +#: views/domain.py:199 msgid "You can't delete your own domain" msgstr "Nemůžete smazat vlastní doménu" -#: admin/views/domain.py:202 +#: views/domain.py:202 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Doména smazána" @@ -1316,20 +1324,19 @@ msgstr[1] "Domény smazány" msgstr[2] "Domén smazáno" msgstr[3] "Domén smazáno" -#: admin/views/export.py:47 +#: views/export.py:47 msgid "Export identities" msgstr "Exportovat identity" -#: admin/views/export.py:75 +#: views/export.py:75 msgid "Export domains" msgstr "Exportovat domény" -#: admin/views/identity.py:111 admin/views/identity.py:205 -#: admin/views/identity.py:210 +#: views/identity.py:111 views/identity.py:205 views/identity.py:210 msgid "Invalid request" msgstr "Neplatný požadavek" -#: admin/views/identity.py:195 +#: views/identity.py:195 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Účet smazán" @@ -1337,24 +1344,37 @@ msgstr[1] "Účty smazány" msgstr[2] "Účtů smazáno" msgstr[3] "Účtů smazáno" -#: admin/views/import_.py:70 +#: views/import_.py:70 #, python-format msgid "Object already exists: %s" msgstr "Objekt již existuje: %s" -#: admin/views/import_.py:74 +#: views/import_.py:74 #, python-format msgid "%d objects imported successfully" msgstr "%d objektů úspěšně importováno" -#: admin/views/import_.py:93 +#: views/import_.py:93 msgid "Import domains" msgstr "Importovat domény" -#: admin/views/import_.py:115 +#: views/import_.py:115 msgid "Import identities" msgstr "Importovat identity" -#: admin/views/user.py:40 +#: views/user.py:40 msgid "Forward updated" msgstr "Přeposílání aktualizováno" + +#, fuzzy +#~| msgid "No DNS records found for %s" +#~ msgid "No DNS records found without MX for %s" +#~ msgstr "Nenalezeny žádné DNS záznamy pro %s" + +#, fuzzy +#~| msgid "No DNS records found for %s" +#~ msgid "No DNS records found without MX for %(domain)s" +#~ msgstr "Nenalezeny žádné DNS záznamy pro %s" + +#~ msgid "Unable to lookup ip addresses for %(domain)s; %(error)s" +#~ msgstr "Nelze vyhledat IP adresy pro %(domain)s; %(error)s" diff --git a/modoboa/admin/locale/de/LC_MESSAGES/django.po b/modoboa/admin/locale/de/LC_MESSAGES/django.po index 33fbd48c3..9b380046f 100644 --- a/modoboa/admin/locale/de/LC_MESSAGES/django.po +++ b/modoboa/admin/locale/de/LC_MESSAGES/django.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-10-05 16:08+0200\n" +"POT-Creation-Date: 2018-10-17 09:25+0200\n" "PO-Revision-Date: 2015-09-09 09:33+0000\n" "Last-Translator: controlc.de\n" "Language-Team: German (http://www.transifex.com/tonio/modoboa/language/de/)\n" @@ -20,76 +20,84 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: admin/app_settings.py:23 admin/handlers.py:265 -#: admin/templates/admin/_global_statistics_widget.html:11 -#: admin/templates/admin/domains.html:5 +#: app_settings.py:24 handlers.py:265 +#: templates/admin/_global_statistics_widget.html:11 +#: templates/admin/domains.html:5 msgid "Domains" msgstr "Domains" -#: admin/app_settings.py:26 +#: app_settings.py:27 msgid "Enable MX checks" msgstr "" -#: admin/app_settings.py:29 +#: app_settings.py:30 msgid "Check that every domain has a valid MX record" msgstr "" -#: admin/app_settings.py:34 +#: app_settings.py:35 msgid "Valid MXs" msgstr "" -#: admin/app_settings.py:37 +#: app_settings.py:38 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:45 +#: app_settings.py:46 msgid "New domains must use authorized MX(s)" msgstr "" -#: admin/app_settings.py:48 +#: app_settings.py:49 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:54 +#: app_settings.py:55 msgid "Enable DNSBL checks" msgstr "" -#: admin/app_settings.py:57 +#: app_settings.py:58 msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:62 +#: app_settings.py:63 +msgid "Custom DNS server" +msgstr "" + +#: app_settings.py:66 +msgid "Use a custom DNS server instead of local server configuration" +msgstr "" + +#: app_settings.py:71 msgid "DKIM keys storage directory" msgstr "" -#: admin/app_settings.py:65 +#: app_settings.py:74 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:73 +#: app_settings.py:82 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:77 +#: app_settings.py:86 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:81 admin/templates/admin/domain_detail.html:41 +#: app_settings.py:90 templates/admin/domain_detail.html:41 msgid "Mailboxes" msgstr "Postfächer" -#: admin/app_settings.py:84 +#: app_settings.py:93 msgid "Handle mailboxes on filesystem" msgstr "Postfächer im Dateisystem verwalten" -#: admin/app_settings.py:87 +#: app_settings.py:96 msgid "" "Rename or remove mailboxes on the filesystem when they get renamed or " "removed within Modoboa" @@ -97,21 +105,21 @@ msgstr "" "Postfächer auch in Dateisystem umbenennen oder entfernen wenn sie in Modoboa " "umbenannt oder entfernt werden" -#: admin/app_settings.py:93 +#: app_settings.py:102 msgid "Mailboxes owner" msgstr "Postfach-Besitzer" -#: admin/app_settings.py:96 +#: app_settings.py:105 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." -#: admin/app_settings.py:101 +#: app_settings.py:110 msgid "Default domain quota" msgstr "Standard-Domainquota" -#: admin/app_settings.py:104 +#: app_settings.py:113 msgid "" "Default quota (in MB) applied to freshly created domains with no value " "specified. A value of 0 means no quota." @@ -119,14 +127,14 @@ msgstr "" "Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. " "Der Wert 0 bedeutet „Kein Quota“" -#: admin/app_settings.py:110 admin/models/domain.py:41 -#: admin/templates/admin/domain_detail.html:64 +#: app_settings.py:119 models/domain.py:41 +#: templates/admin/domain_detail.html:64 #, fuzzy #| msgid "Default domain quota" msgid "Default mailbox quota" msgstr "Standard-Domainquota" -#: admin/app_settings.py:113 +#: app_settings.py:122 #, fuzzy #| msgid "" #| "Default quota (in MB) applied to freshly created domains with no value " @@ -138,72 +146,71 @@ msgstr "" "Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. " "Der Wert 0 bedeutet „Kein Quota“" -#: admin/app_settings.py:119 +#: app_settings.py:128 msgid "Automatic account removal" msgstr "Automatische Konto-Entfernung" -#: admin/app_settings.py:122 +#: app_settings.py:131 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:126 +#: app_settings.py:135 msgid "Automatic domain/mailbox creation" msgstr "Automatische Domain- /Postfach-Erstellung" -#: admin/app_settings.py:129 +#: app_settings.py:138 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:135 +#: app_settings.py:144 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:138 +#: app_settings.py:147 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:187 admin/app_settings.py:195 -#: admin/forms/account.py:332 +#: app_settings.py:196 app_settings.py:204 forms/account.py:332 msgid "Must be a positive integer" msgstr "Muss eine positive Ganzzahl sein" -#: admin/app_settings.py:205 +#: app_settings.py:214 #, fuzzy #| msgid "Domain modified" msgid "Directory not found." msgstr "Domain verändert" -#: admin/app_settings.py:211 +#: app_settings.py:220 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/app_settings.py:225 +#: app_settings.py:234 msgid "Define at least one authorized network / address" msgstr "" -#: admin/app_settings.py:235 +#: app_settings.py:244 msgid "Administration" msgstr "Verwaltung" -#: admin/constants.py:98 admin/forms/alias.py:47 -#: admin/templates/admin/_per_domain_statistics_widget.html:7 -#: admin/templates/admin/domains_quota_headers.html:2 +#: constants.py:98 forms/alias.py:47 +#: templates/admin/_per_domain_statistics_widget.html:7 +#: templates/admin/domains_quota_headers.html:2 msgid "Domain" msgstr "Domain" -#: admin/constants.py:99 +#: constants.py:99 #, fuzzy #| msgid "New domain" msgid "Relay domain" msgstr "Neue Domain" -#: admin/forms/account.py:36 admin/templates/admin/domain_detail.html:121 +#: forms/account.py:36 templates/admin/domain_detail.html:121 msgid "Username" msgstr "Benutzername" -#: admin/forms/account.py:38 +#: forms/account.py:38 msgid "" "The user's name. Must be a valid e-mail address for simple users or " "administrators with a mailbox." @@ -211,80 +218,79 @@ msgstr "" "Der Benutzername. Muss eine gültige E-Mail-Adresse für 'Normale Benutzer' " "oder Administratoren mit einer Mailbox sein." -#: admin/forms/account.py:43 admin/templates/admin/account_detail.html:29 +#: forms/account.py:43 templates/admin/account_detail.html:29 msgid "Role" msgstr "Rolle" -#: admin/forms/account.py:44 +#: forms/account.py:44 msgid "Choose" msgstr "Auswählen" -#: admin/forms/account.py:45 +#: forms/account.py:45 msgid "What level of permission this user will have" msgstr "Rechte, die der Benutzer haben wird" -#: admin/forms/account.py:48 admin/forms/domain.py:223 +#: forms/account.py:48 forms/domain.py:224 #, fuzzy #| msgid "Invalid address" msgid "Random password" msgstr "Ungültige Adresse" -#: admin/forms/account.py:50 +#: forms/account.py:50 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:56 +#: forms/account.py:56 msgid "Password" msgstr "Passwort" -#: admin/forms/account.py:61 +#: forms/account.py:61 msgid "Confirmation" msgstr "Bestätigung" -#: admin/forms/account.py:64 +#: forms/account.py:64 msgid "Enter the same password as above, for verification." msgstr "Passwort bestätigen" -#: admin/forms/account.py:76 +#: forms/account.py:76 msgid "Enabled" msgstr "Aktiviert" -#: admin/forms/account.py:171 +#: forms/account.py:171 msgid "Only super administrators are allowed for this mode" msgstr "Nur Super-Administratoren dürfen diesen Modus benutzen." -#: admin/forms/account.py:182 admin/forms/account.py:184 -#: admin/forms/domain.py:140 admin/forms/domain.py:269 -#: admin/forms/domain.py:272 admin/serializers.py:263 +#: forms/account.py:182 forms/account.py:184 forms/domain.py:141 +#: forms/domain.py:270 forms/domain.py:273 serializers.py:263 #, fuzzy #| msgid "A mailbox is required" msgid "This field is required." msgstr "Ein Postfach ist erforderlich" -#: admin/forms/account.py:190 +#: forms/account.py:190 msgid "The two password fields didn't match." msgstr "Die angegebenen Passwörter stimmen nicht überein" -#: admin/forms/account.py:203 +#: forms/account.py:203 msgid "You can't disable your own account" msgstr "Sie können Ihr eigenes Konto nicht deaktivieren" -#: admin/forms/account.py:226 +#: forms/account.py:226 msgid "E-mail" msgstr "E-Mail" -#: admin/forms/account.py:228 +#: forms/account.py:228 msgid "Create an alias using the old address" msgstr "" -#: admin/forms/account.py:233 admin/templates/admin/account_detail.html:45 -#: admin/templates/admin/domain_detail.html:49 +#: forms/account.py:233 templates/admin/account_detail.html:45 +#: templates/admin/domain_detail.html:49 msgid "Quota" msgstr "Quota" -#: admin/forms/account.py:235 +#: forms/account.py:235 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 " @@ -294,12 +300,12 @@ msgstr "" "nutzen Sie den Standardwert der Domain. Lassen Sie das Feld leer für " "unbegrenztes Quota (Domain-Administratoren ist dies nicht gestattet)." -#: admin/forms/account.py:243 admin/forms/domain.py:35 -#: admin/templates/admin/domain_headers.html:4 +#: forms/account.py:243 forms/domain.py:35 +#: templates/admin/domain_headers.html:4 msgid "Alias(es)" msgstr "Alias(e)" -#: admin/forms/account.py:246 +#: forms/account.py:246 #, fuzzy #| msgid "" #| "Alias(es) of this mailbox. Indicate only one address per input, press " @@ -314,13 +320,13 @@ msgstr "" "an. Bestätigen Sie die Eingabe mit ENTER. Geben Sie '*' an, um einen " "'catchall'-Alias (Bsp: *@example.com) zu erstellen." -#: admin/forms/account.py:252 +#: forms/account.py:252 #, fuzzy #| msgid "Invalid address" msgid "Sender addresses" msgstr "Ungültige Adresse" -#: admin/forms/account.py:255 +#: forms/account.py:255 #, fuzzy #| msgid "" #| "Addresses this alias will point to. Indicate only one address per input, " @@ -333,70 +339,68 @@ msgstr "" "Adressen, auf die der Alias verweist. Geben Sie jeweils nur eine Adresse ein " "und bestätigen Sie mit ENTER." -#: admin/forms/account.py:310 admin/forms/alias.py:92 -#: admin/models/mailbox.py:316 +#: forms/account.py:310 forms/alias.py:92 models/mailbox.py:317 msgid "Domain does not exist" msgstr "Domain existiert nicht" -#: admin/forms/account.py:342 +#: forms/account.py:342 #, fuzzy #| msgid "Domain does not exist" msgid "Local domain does not exist" msgstr "Domain existiert nicht" -#: admin/forms/account.py:346 admin/forms/account.py:354 -#: admin/forms/alias.py:95 +#: forms/account.py:346 forms/account.py:354 forms/alias.py:95 msgid "You don't have access to this domain" msgstr "Der Zugriff auf diese Domain ist Ihnen nicht gestattet" -#: admin/forms/account.py:453 +#: forms/account.py:453 msgid "Domain(s)" msgstr "Domain(s)" -#: admin/forms/account.py:455 +#: forms/account.py:455 msgid "Domain(s) that user administrates" msgstr "Domain(s), die dieser Benutzer administriert" -#: admin/forms/account.py:501 admin/forms/account.py:591 -#: admin/forms/domain.py:340 admin/forms/domain.py:410 +#: forms/account.py:501 forms/account.py:591 forms/domain.py:341 +#: forms/domain.py:412 msgid "General" msgstr "Allgemein" -#: admin/forms/account.py:505 +#: forms/account.py:505 msgid "Profile" msgstr "" -#: admin/forms/account.py:509 admin/forms/account.py:597 +#: forms/account.py:509 forms/account.py:597 msgid "Mail" msgstr "E-Mail" -#: admin/forms/account.py:512 +#: forms/account.py:512 msgid "Permissions" msgstr "Berechtigungen" -#: admin/forms/account.py:580 +#: forms/account.py:580 msgid "Account updated" msgstr "Konto aktualisiert" -#: admin/forms/account.py:605 +#: forms/account.py:605 msgid "New account" msgstr "Neues Konto" -#: admin/forms/account.py:615 +#: forms/account.py:615 msgid "Account created" msgstr "Konto erstellt" -#: admin/forms/alias.py:24 +#: forms/alias.py:24 #, fuzzy #| msgid "Invalid address" msgid "Random address" msgstr "Ungültige Adresse" -#: admin/forms/alias.py:27 +#: forms/alias.py:27 msgid "Email address" msgstr "E-Mail Adresse" -#: admin/forms/alias.py:29 +#: forms/alias.py:29 msgid "" "The alias address. To create a catchall alias, just enter the domain name " "(@domain.tld)." @@ -404,11 +408,11 @@ msgstr "" "Die Alias-Adresse. Geben Sie nur den Domainnamen (@domain.tld) für eine " "'catch-all' Alias an." -#: admin/forms/alias.py:35 admin/templates/admin/alias_detail.html:37 +#: forms/alias.py:35 templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "Empfänger" -#: admin/forms/alias.py:37 +#: forms/alias.py:37 msgid "" "Addresses this alias will point to. Indicate only one address per input, " "press ENTER to add a new input." @@ -416,22 +420,21 @@ msgstr "" "Adressen, auf die der Alias verweist. Geben Sie jeweils nur eine Adresse ein " "und bestätigen Sie mit ENTER." -#: admin/forms/alias.py:112 admin/forms/alias.py:114 +#: forms/alias.py:112 forms/alias.py:114 #, fuzzy #| msgid "A mailbox is required" msgid "This field is required" msgstr "Ein Postfach ist erforderlich" -#: admin/forms/alias.py:118 +#: forms/alias.py:118 msgid "No recipient defined" msgstr "Keine Empfänger angegeben" -#: admin/forms/domain.py:32 -#: admin/templates/admin/_global_statistics_widget.html:7 +#: forms/domain.py:32 templates/admin/_global_statistics_widget.html:7 msgid "Type" msgstr "Typ" -#: admin/forms/domain.py:38 +#: forms/domain.py:38 msgid "" "Alias(es) of this domain. Indicate only one name per input, press ENTER to " "add a new input." @@ -440,55 +443,55 @@ msgstr "" "Eingabefeld an. Bestätigen Sie mit ENTER, um ein neues Eingabefeld zu " "erhalten." -#: admin/forms/domain.py:43 +#: forms/domain.py:43 msgid "Key selector" msgstr "" -#: admin/forms/domain.py:81 admin/handlers.py:165 +#: forms/domain.py:82 handlers.py:165 msgid "domain alias" msgstr "Domain-Alias" -#: admin/forms/domain.py:84 admin/forms/domain.py:151 admin/forms/domain.py:159 +#: forms/domain.py:85 forms/domain.py:152 forms/domain.py:160 #, python-format msgid "A %s with this name already exists" msgstr "Ein %s mit diesem Namen existiert bereits" -#: admin/forms/domain.py:92 admin/serializers.py:53 +#: forms/domain.py:93 serializers.py:53 msgid "No authorized MX record found for this domain" msgstr "" -#: admin/forms/domain.py:104 +#: forms/domain.py:105 msgid "DKIM keys storage directory not configured" msgstr "" -#: admin/forms/domain.py:125 admin/serializers.py:63 +#: forms/domain.py:126 serializers.py:63 msgid "Cannot be greater than domain quota" msgstr "" -#: admin/forms/domain.py:130 +#: forms/domain.py:131 msgid "You can't define an unlimited quota." msgstr "" -#: admin/forms/domain.py:151 admin/forms/domain.py:156 +#: forms/domain.py:152 forms/domain.py:157 msgid "domain" msgstr "Domain" -#: admin/forms/domain.py:205 +#: forms/domain.py:206 msgid "Create a domain administrator" msgstr "Domain-Administrator erstellen" -#: admin/forms/domain.py:208 +#: forms/domain.py:209 msgid "Automatically create an administrator for this domain" msgstr "Automatisch Administrator für diese Domain anlegen" -#: admin/forms/domain.py:213 admin/templates/admin/domain_detail.html:121 -#: admin/templates/admin/domain_headers.html:3 -#: admin/templates/admin/identity_headers.html:2 -#: admin/templates/admin/mx_domain_detail.html:9 +#: forms/domain.py:214 templates/admin/domain_detail.html:121 +#: templates/admin/domain_headers.html:3 +#: templates/admin/identity_headers.html:2 +#: templates/admin/mx_domain_detail.html:9 msgid "Name" msgstr "Name" -#: admin/forms/domain.py:216 +#: forms/domain.py:217 msgid "" "The administrator's name. Don't include the domain's name here, it will be " "automatically appended." @@ -496,255 +499,254 @@ msgstr "" "Name des Administrators. Geben Sie nicht den Domainnamen mit an. Er wird " "automatisch angehängt." -#: admin/forms/domain.py:226 +#: forms/domain.py:227 #, fuzzy #| msgid "Create a domain administrator" msgid "Generate a random password for the administrator." msgstr "Domain-Administrator erstellen" -#: admin/forms/domain.py:232 +#: forms/domain.py:233 msgid "With a mailbox" msgstr "" -#: admin/forms/domain.py:235 +#: forms/domain.py:236 #, fuzzy #| msgid "Create a domain administrator" msgid "Create a mailbox for the administrator." msgstr "Domain-Administrator erstellen" -#: admin/forms/domain.py:241 +#: forms/domain.py:242 msgid "Create aliases" msgstr "Aliase erstellen" -#: admin/forms/domain.py:244 +#: forms/domain.py:245 msgid "Automatically create standard aliases for this domain" msgstr "Automatisch Standard-Aliase für Domain anlegen" -#: admin/forms/domain.py:260 +#: forms/domain.py:261 msgid "Invalid format" msgstr "Ungültiges Format" -#: admin/forms/domain.py:289 +#: forms/domain.py:290 #, python-format msgid "User '%s' already exists" msgstr "Benutzer %s existiert bereits" -#: admin/forms/domain.py:400 +#: forms/domain.py:402 msgid "Domain modified" msgstr "Domain verändert" -#: admin/forms/domain.py:421 +#: forms/domain.py:423 msgid "Options" msgstr "Optionen" -#: admin/forms/domain.py:429 +#: forms/domain.py:431 msgid "New domain" msgstr "Neue Domain" -#: admin/forms/domain.py:442 +#: forms/domain.py:444 msgid "Domain created" msgstr "Domain erstellt." -#: admin/forms/export.py:11 +#: forms/export.py:11 msgid "File name" msgstr "Dateiname" -#: admin/forms/export.py:17 admin/forms/import_.py:17 +#: forms/export.py:17 forms/import_.py:17 msgid "Separator" msgstr "Separator" -#: admin/forms/forward.py:16 +#: forms/forward.py:16 msgid "Recipient(s)" msgstr "Empfänger" -#: admin/forms/forward.py:20 +#: forms/forward.py:20 msgid "Indicate one or more recipients separated by a ','" msgstr "Geben sie einen oder mehrere, durch ',' separierte Empfänger an" -#: admin/forms/forward.py:23 +#: forms/forward.py:23 msgid "Keep local copies" msgstr "Lokale Kopien behalten" -#: admin/forms/forward.py:26 +#: forms/forward.py:26 msgid "Forward messages and store copies into your local mailbox" msgstr "Nachricht weiterleiten und Kopie in Mailbox ablegen" -#: admin/forms/import_.py:15 +#: forms/import_.py:15 msgid "Select a file" msgstr "Wählen Sie eine Datei" -#: admin/forms/import_.py:23 +#: forms/import_.py:23 msgid "Continue on error" msgstr "Bei Fehler fortfahren" -#: admin/forms/import_.py:24 +#: forms/import_.py:24 msgid "Don't treat duplicated objects as error" msgstr "Doppelte Objekte nicht als Fehler behandeln" -#: admin/forms/import_.py:42 +#: forms/import_.py:42 msgid "Crypt passwords" msgstr "Passwörter verschlüsseln" -#: admin/forms/import_.py:44 +#: forms/import_.py:44 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:214 +#: handlers.py:214 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "Kann Konto nicht importieren (%s): Die Domain existiert nicht" -#: admin/handlers.py:227 admin/models/mailbox.py:344 +#: handlers.py:227 models/mailbox.py:345 #, fuzzy #| msgid "Mailbox %s already exists" msgid "Mailbox {} already exists" msgstr "Postfach %s existiert bereits" -#: admin/handlers.py:235 +#: handlers.py:235 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "Konto Import fehlgeschlagen (%s): ungültiger Quota-Wert" -#: admin/handlers.py:275 -#: admin/templates/admin/_global_statistics_widget.html:17 -#: admin/templates/admin/_per_domain_statistics_widget.html:8 -#: admin/templates/admin/identities.html:5 +#: handlers.py:275 templates/admin/_global_statistics_widget.html:17 +#: templates/admin/_per_domain_statistics_widget.html:8 +#: templates/admin/identities.html:5 msgid "Identities" msgstr "Identitäten" -#: admin/handlers.py:291 admin/templates/admin/forward.html:2 +#: handlers.py:291 templates/admin/forward.html:2 msgid "Forward" msgstr "Weiterleiten" -#: admin/lib.py:42 +#: lib.py:41 msgid "A mailbox is required" msgstr "Ein Postfach ist erforderlich" -#: admin/lib.py:132 +#: lib.py:131 msgid "You are not allowed to import domains" msgstr "Sie verfügen nicht über ausreichend Rechte, um Domains zu importieren." -#: admin/lib.py:143 +#: lib.py:142 msgid "You are not allowed to import domain aliases." msgstr "" "Sie verfügen nicht über ausreichend Rechte, um Domain Aliase zu importieren." -#: admin/lib.py:181 admin/tests/test_mx.py:125 +#: lib.py:187 tests/test_mx.py:135 #, python-format msgid "No DNS records found for %s" msgstr "" -#: admin/lib.py:183 admin/tests/test_mx.py:128 +#: lib.py:189 tests/test_mx.py:138 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/lib.py:185 admin/tests/test_mx.py:129 +#: lib.py:191 tests/test_mx.py:139 msgid "No working name servers found" msgstr "" -#: admin/lib.py:188 admin/tests/test_mx.py:131 +#: lib.py:194 tests/test_mx.py:141 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" -#: admin/lib.py:199 admin/tests/test_mx.py:134 -#, python-format -msgid "Unable to lookup ip addresses for %(domain)s; %(error)s" +#: lib.py:205 +#, python-brace-format +msgid "No {type} record found for MX {mx}" msgstr "" -#: admin/lib.py:210 admin/tests/test_mx.py:137 -#, python-format -msgid "Invalid IP address format for %(domain)s; %(addr)s" -msgstr "" +#: lib.py:214 +#, fuzzy, python-brace-format +#| msgid "Invalid quota value for domain '%s'" +msgid "Invalid IP address format for {domain}; {addr}" +msgstr "Ungültiger Quota-Wert für Domain '%s'" -#: admin/management/commands/subcommands/_import.py:102 +#: management/commands/subcommands/_import.py:102 msgid "CSV file is not encoded in UTF-8, attempting to guess encoding" msgstr "" -#: admin/management/commands/subcommands/_import.py:114 +#: management/commands/subcommands/_import.py:114 #, python-format msgid "Reading CSV file using %(encoding)s encoding" msgstr "" -#: admin/management/commands/subcommands/_import.py:126 +#: management/commands/subcommands/_import.py:126 #, python-format msgid "Unable to decode CSV file using %(encoding)s encoding" msgstr "" -#: admin/management/commands/subcommands/_mx.py:135 +#: management/commands/subcommands/_mx.py:135 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "" -#: admin/management/commands/subcommands/_mx.py:155 +#: management/commands/subcommands/_mx.py:155 msgid "Domain {} has no MX record" msgstr "" -#: admin/management/commands/subcommands/_mx.py:166 +#: management/commands/subcommands/_mx.py:166 #, python-brace-format msgid "MX record for domain {0} is invalid: {1}" msgstr "" -#: admin/management/commands/subcommands/_mx.py:183 +#: management/commands/subcommands/_mx.py:183 msgid "[modoboa] MX issue(s) for domain {}" msgstr "" -#: admin/models/alias.py:36 admin/models/mailbox.py:98 +#: models/alias.py:36 models/mailbox.py:99 msgid "address" msgstr "Adresse" -#: admin/models/alias.py:38 +#: models/alias.py:38 msgid "The alias address." msgstr "Die Alias-Adresse" -#: admin/models/alias.py:43 admin/models/domain.py:49 -#: admin/models/domain_alias.py:46 +#: models/alias.py:43 models/domain.py:49 models/domain_alias.py:46 msgid "enabled" msgstr "aktiviert" -#: admin/models/alias.py:44 admin/models/domain_alias.py:47 +#: models/alias.py:44 models/domain_alias.py:47 msgid "Check to activate this alias" msgstr "Auswählen, um den Alias zu aktivieren" -#: admin/models/alias.py:49 admin/templates/admin/alias_detail.html:32 +#: models/alias.py:49 templates/admin/alias_detail.html:32 msgid "Description" msgstr "" -#: admin/models/alias.py:51 admin/templates/admin/alias_detail.html:29 +#: models/alias.py:51 templates/admin/alias_detail.html:29 msgid "Expire at" msgstr "" -#: admin/models/alias.py:94 +#: models/alias.py:94 msgid "alias" msgstr "Alias" -#: admin/models/alias.py:126 +#: models/alias.py:126 msgid "Invalid address" msgstr "Ungültige Adresse" -#: admin/models/alias.py:147 +#: models/alias.py:147 msgid "Local recipient {}@{} not found" msgstr "Lokaler Empfänger {}@{} nicht gefunden" -#: admin/models/alias.py:177 +#: models/alias.py:177 #, python-format msgid "Invalid line: %s" msgstr "Ungültige Zeile: %s" -#: admin/models/alias.py:183 +#: models/alias.py:183 #, python-format msgid "Domain '%s' does not exist" msgstr "Domain '%s' existiert nicht" -#: admin/models/domain.py:31 admin/models/domain_alias.py:38 +#: models/domain.py:31 models/domain_alias.py:38 msgid "name" msgstr "Name" -#: admin/models/domain.py:32 +#: models/domain.py:32 msgid "The domain name" msgstr "Name der Domain" -#: admin/models/domain.py:36 +#: models/domain.py:36 #, fuzzy #| msgid "" #| "Default quota (in MB) applied to freshly created domains with no value " @@ -754,7 +756,7 @@ msgstr "" "Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. " "Der Wert 0 bedeutet „Kein Quota“" -#: admin/models/domain.py:44 +#: models/domain.py:44 #, fuzzy #| msgid "" #| "Default quota (in MB) applied to freshly created domains with no value " @@ -764,475 +766,463 @@ msgstr "" "Standardquota (in MB) für neu erstelle Domains ohne explizite Wertangabe. " "Der Wert 0 bedeutet „Kein Quota“" -#: admin/models/domain.py:50 +#: models/domain.py:50 msgid "Check to activate this domain" msgstr "Auswählen, um diese Domain zu aktivieren" -#: admin/models/domain.py:55 +#: models/domain.py:55 msgid "Enable DNS checks" msgstr "" -#: admin/models/domain.py:56 +#: models/domain.py:56 #, fuzzy #| msgid "Check to activate this domain" msgid "Check to enable DNS checks for this domain" msgstr "Auswählen, um diese Domain zu aktivieren" -#: admin/models/domain.py:63 +#: models/domain.py:63 msgid "Enable DKIM signing" msgstr "" -#: admin/models/domain.py:65 +#: models/domain.py:65 msgid "" "If you activate this feature, a DKIM key will be generated for this domain." msgstr "" -#: admin/models/domain.py:71 +#: models/domain.py:71 msgid "Key length" msgstr "" -#: admin/models/domain.py:299 admin/models/domain_alias.py:74 +#: models/domain.py:303 models/domain_alias.py:74 msgid "Invalid line" msgstr "Ungültige Zeile" -#: admin/models/domain.py:309 +#: models/domain.py:313 msgid "No authorized MX record found for domain {}" msgstr "" -#: admin/models/domain.py:316 +#: models/domain.py:320 #, fuzzy #| msgid "Invalid quota value for domain '%s'" msgid "Invalid quota value for domain '{}'" msgstr "Ungültiger Quota-Wert für Domain '%s'" -#: admin/models/domain.py:323 +#: models/domain.py:327 #, fuzzy #| msgid "Invalid quota value for domain '%s'" msgid "Invalid default mailbox quota value for domain '{}'" msgstr "Ungültiger Quota-Wert für Domain '%s'" -#: admin/models/domain.py:328 +#: models/domain.py:332 msgid "Default mailbox quota cannot be greater than domain quota" msgstr "" -#: admin/models/domain_alias.py:39 +#: models/domain_alias.py:39 msgid "The alias name" msgstr "Der Alias-Name" -#: admin/models/domain_alias.py:41 +#: models/domain_alias.py:41 msgid "target" msgstr "Ziel" -#: admin/models/domain_alias.py:42 +#: models/domain_alias.py:42 msgid "The domain this alias points to" msgstr "Domain, auf die dieser Alias verweist" -#: admin/models/domain_alias.py:83 +#: models/domain_alias.py:83 #, python-format msgid "Unknown domain %s" msgstr "Unbekannte Domain %s" -#: admin/models/mailbox.py:100 +#: models/mailbox.py:101 msgid "Mailbox address (without the @domain.tld part)" msgstr "Postfach-Adresse (ohne den '@domain.tld' Teil)" -#: admin/models/mailbox.py:166 +#: models/mailbox.py:167 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Der Speicherort des Postfachs (%s) konnte nicht bestimmt werden" -#: admin/models/mailbox.py:259 +#: models/mailbox.py:260 msgid "A quota is required" msgstr "Ein Quota ist erforderlich" -#: admin/models/mailbox.py:265 +#: models/mailbox.py:266 #, fuzzy #| msgid "Domain created" msgid "Domain quota exceeded" msgstr "Domain erstellt." -#: admin/serializers.py:88 admin/serializers.py:288 admin/serializers.py:386 +#: serializers.py:88 serializers.py:288 serializers.py:386 #, fuzzy #| msgid "Permissions" msgid "Permission denied." msgstr "Berechtigungen" -#: admin/serializers.py:134 +#: serializers.py:134 msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/serializers.py:238 +#: serializers.py:238 msgid "Not allowed for this role." msgstr "" -#: admin/serializers.py:250 +#: serializers.py:250 msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/serializers.py:275 +#: serializers.py:275 #, fuzzy #| msgid "Domain does not exist" msgid "Local domain {} does not exist" msgstr "Domain existiert nicht" -#: admin/serializers.py:373 +#: serializers.py:373 msgid "A list of recipient" msgstr "" -#: admin/serializers.py:384 +#: serializers.py:384 #, fuzzy #| msgid "Domain modified" msgid "Domain not found." msgstr "Domain verändert" -#: admin/serializers.py:433 +#: serializers.py:433 #, fuzzy #| msgid "You don't have access to this domain" msgid "You don't have access to this domain." msgstr "Der Zugriff auf diese Domain ist Ihnen nicht gestattet" -#: admin/serializers.py:441 +#: serializers.py:441 #, fuzzy #| msgid "You don't have access to this domain" msgid "You don't have access to this mailbox." msgstr "Der Zugriff auf diese Domain ist Ihnen nicht gestattet" -#: admin/templates/admin/_domain_dkim_key.html:6 -#: admin/templates/admin/_domain_dkim_key.html:20 +#: templates/admin/_domain_dkim_key.html:6 +#: templates/admin/_domain_dkim_key.html:20 msgid "Close" msgstr "" -#: admin/templates/admin/_domain_dkim_key.html:7 +#: 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 +#: templates/admin/_domain_dkim_key.html:11 #, fuzzy #| msgid "Invalid format" msgid "Raw format" msgstr "Ungültiges Format" -#: admin/templates/admin/_domain_dkim_key.html:15 +#: templates/admin/_domain_dkim_key.html:15 #, fuzzy #| msgid "Invalid format" msgid "Bind/named format" msgstr "Ungültiges Format" -#: admin/templates/admin/_domain_dnschecks_status.html:4 +#: templates/admin/_domain_dnschecks_status.html:4 #, fuzzy #| msgid "disabled" msgctxt "checks" msgid "Disabled" msgstr "deaktiviert" -#: admin/templates/admin/_domain_dnschecks_status.html:6 +#: templates/admin/_domain_dnschecks_status.html:6 msgid "Awaiting checks" msgstr "" -#: admin/templates/admin/_global_statistics_widget.html:4 +#: templates/admin/_global_statistics_widget.html:4 #, fuzzy #| msgid "Statistics" msgid "Global statistics" msgstr "Statistiken" -#: admin/templates/admin/_global_statistics_widget.html:8 +#: templates/admin/_global_statistics_widget.html:8 msgid "Quantity" msgstr "Anzahl" -#: admin/templates/admin/_global_statistics_widget.html:14 -#: admin/templates/admin/domain_detail.html:37 -#: admin/templates/admin/domain_detail.html:73 +#: templates/admin/_global_statistics_widget.html:14 +#: templates/admin/domain_detail.html:37 templates/admin/domain_detail.html:73 msgid "Domain aliases" msgstr "Domain-Aliase" -#: admin/templates/admin/_per_domain_statistics_widget.html:4 +#: templates/admin/_per_domain_statistics_widget.html:4 #, fuzzy #| msgid "Per-domain counters" msgid "Per-domain statistics" msgstr "pro Domain" -#: 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 +#: templates/admin/account_detail.html:16 templates/admin/alias_detail.html:16 +#: templates/admin/domain_detail.html:19 +#: templates/admin/identities_table.html:7 #, fuzzy #| msgid "disabled" msgid "(disabled)" msgstr "deaktiviert" -#: admin/templates/admin/account_detail.html:22 -#: admin/templates/admin/alias_detail.html:22 -#: admin/templates/admin/domain_detail.html:25 +#: templates/admin/account_detail.html:22 templates/admin/alias_detail.html:22 +#: templates/admin/domain_detail.html:25 msgid "Summary" msgstr "" -#: admin/templates/admin/account_detail.html:26 +#: templates/admin/account_detail.html:26 #, fuzzy #| msgid "File name" msgid "Full name" msgstr "Dateiname" -#: admin/templates/admin/account_detail.html:32 -#: admin/templates/admin/alias_detail.html:26 +#: templates/admin/account_detail.html:32 templates/admin/alias_detail.html:26 #, fuzzy #| msgid "Create" msgid "Created" msgstr "Erstellen" -#: admin/templates/admin/account_detail.html:35 +#: templates/admin/account_detail.html:35 msgid "Last login" msgstr "" -#: admin/templates/admin/account_detail.html:38 +#: templates/admin/account_detail.html:38 msgid "Secondary email" msgstr "" -#: admin/templates/admin/account_detail.html:38 -#: admin/templates/admin/account_detail.html:41 +#: templates/admin/account_detail.html:38 +#: templates/admin/account_detail.html:41 #, fuzzy #| msgid "No recipient defined" msgid "Not defined" msgstr "Keine Empfänger angegeben" -#: admin/templates/admin/account_detail.html:41 +#: templates/admin/account_detail.html:41 msgid "Phone number" msgstr "" -#: admin/templates/admin/account_detail.html:55 +#: templates/admin/account_detail.html:55 #, fuzzy #| msgid "Administration" msgid "Administered domains" msgstr "Verwaltung" -#: admin/templates/admin/account_detail.html:61 +#: templates/admin/account_detail.html:61 #, fuzzy #| msgid "No recipient defined" msgid "No domain defined." msgstr "Keine Empfänger angegeben" -#: admin/templates/admin/account_detail.html:75 +#: templates/admin/account_detail.html:75 #, fuzzy #| msgid "Alias(es)" msgid "Aliases" msgstr "Alias(e)" -#: admin/templates/admin/account_detail.html:81 +#: templates/admin/account_detail.html:81 #, fuzzy #| msgid "No recipient defined" msgid "No alias defined" msgstr "Keine Empfänger angegeben" -#: admin/templates/admin/account_detail.html:87 +#: templates/admin/account_detail.html:87 msgid "Additional sender addresses" msgstr "" -#: admin/templates/admin/account_detail.html:93 +#: 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 +#: templates/admin/account_general_form.html:12 +#: templates/admin/aliasform.html:13 msgid "Domain is disabled" msgstr "Domain ist deaktiviert" -#: admin/templates/admin/alias_detail.html:16 -#: admin/templates/admin/identities.html:33 +#: templates/admin/alias_detail.html:16 templates/admin/identities.html:33 #, fuzzy #| msgid "alias" msgid "Alias" msgstr "Alias" -#: admin/templates/admin/alias_detail.html:27 +#: templates/admin/alias_detail.html:27 #, fuzzy #| msgid "Alias modified" msgid "Modified" msgstr "Alias verändert" -#: admin/templates/admin/dnsbl_domain_detail.html:10 +#: 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 +#: templates/admin/dnsbl_domain_detail.html:11 +#: templates/admin/identities_quota_headers.html:2 +#: templates/admin/mx_domain_detail.html:10 msgid "Address" msgstr "Adresse" -#: admin/templates/admin/dnsbl_domain_detail.html:12 -#: admin/templates/admin/domain_detail.html:96 +#: templates/admin/dnsbl_domain_detail.html:12 +#: templates/admin/domain_detail.html:96 #, fuzzy #| msgid "Statistics" msgid "Status" msgstr "Statistiken" -#: admin/templates/admin/dnsbl_domain_detail.html:21 +#: templates/admin/dnsbl_domain_detail.html:21 msgid "listed" msgstr "" -#: admin/templates/admin/dnsbl_domain_detail.html:29 +#: 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 +#: templates/admin/dnsbl_domain_detail.html:32 msgid "No information available for this domain." msgstr "" -#: admin/templates/admin/domain_detail.html:29 +#: templates/admin/domain_detail.html:29 msgid "Creation date" msgstr "Erstellungsdatum" -#: admin/templates/admin/domain_detail.html:33 +#: templates/admin/domain_detail.html:33 msgid "Last modification date" msgstr "Datum der letzten Änderung" -#: admin/templates/admin/domain_detail.html:45 +#: templates/admin/domain_detail.html:45 msgid "Mailbox aliases" msgstr "Postfach-Aliase" -#: 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/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 +#: templates/admin/domain_detail.html:50 templates/admin/domain_detail.html:57 +#: templates/admin/domain_detail.html:58 templates/admin/domain_detail.html:65 +#: templates/admin/domain_general_form.html:4 +#: templates/admin/domain_general_form.html:5 +#: templates/admin/domains_quotas.html:11 +#: templates/admin/domains_quotas.html:12 templates/admin/mailform.html:7 +#: templates/admin/newdomainform.html:3 msgid "MB" msgstr "MB" -#: admin/templates/admin/domain_detail.html:54 +#: templates/admin/domain_detail.html:54 #, fuzzy #| msgid "Usage (%%)" msgid "Usage" msgstr "Verwendung (%%)" -#: admin/templates/admin/domain_detail.html:57 -#: admin/templates/admin/domains_quotas.html:11 +#: templates/admin/domain_detail.html:57 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 +#: templates/admin/domain_detail.html:58 templates/admin/domains_quotas.html:12 msgid "allocated" msgstr "" -#: admin/templates/admin/domain_detail.html:91 +#: templates/admin/domain_detail.html:91 msgid "DNS" msgstr "" -#: admin/templates/admin/domain_detail.html:103 +#: templates/admin/domain_detail.html:103 msgid "DKIM key" msgstr "" -#: admin/templates/admin/domain_detail.html:107 +#: templates/admin/domain_detail.html:107 msgid "Show key" msgstr "" -#: admin/templates/admin/domain_detail.html:109 +#: templates/admin/domain_detail.html:109 msgid "Generate new key" msgstr "" -#: admin/templates/admin/domain_detail.html:111 +#: templates/admin/domain_detail.html:111 #, fuzzy #| msgid "No recipient defined" msgid "Not generated" msgstr "Keine Empfänger angegeben" -#: admin/templates/admin/domain_detail.html:118 +#: templates/admin/domain_detail.html:118 msgid "Administrators" msgstr "Administratoren" -#: admin/templates/admin/domain_detail.html:130 -#: admin/templatetags/admin_tags.py:269 +#: templates/admin/domain_detail.html:130 templatetags/admin_tags.py:269 msgid "Remove this permission" msgstr "Diese Berechtigung entfernen" -#: admin/templates/admin/domain_detail.html:135 +#: templates/admin/domain_detail.html:135 #, fuzzy #| msgid "No domain administrator defined" msgid "No domain administrator defined yet." msgstr "Kein Domain-Administrator definiert" -#: admin/templates/admin/domain_headers.html:5 -#: admin/templates/admin/identity_headers.html:4 +#: templates/admin/domain_headers.html:5 +#: templates/admin/identity_headers.html:4 msgid "Tags" msgstr "Tags" -#: admin/templates/admin/domain_headers.html:7 +#: templates/admin/domain_headers.html:7 #, fuzzy #| msgid "Statistics" msgid "DNS status" msgstr "Statistiken" -#: admin/templates/admin/domain_headers.html:9 -#: admin/templates/admin/identity_headers.html:5 +#: templates/admin/domain_headers.html:9 +#: templates/admin/identity_headers.html:5 msgid "Actions" msgstr "Aktionen" -#: admin/templates/admin/domain_options_form.html:10 +#: templates/admin/domain_options_form.html:10 msgid "You can't create a new domain administrator" msgstr "Sie können keinen neuen Domain-Administrator erstellen" -#: admin/templates/admin/domains.html:28 -#: admin/templates/admin/identities.html:29 +#: templates/admin/domains.html:28 templates/admin/identities.html:29 #, fuzzy #| msgid "Address" msgid "Add" msgstr "Adresse" -#: admin/templates/admin/domains_quota_headers.html:3 -#: admin/templates/admin/identities_quota_headers.html:4 +#: templates/admin/domains_quota_headers.html:3 +#: templates/admin/identities_quota_headers.html:4 msgid "Limit" msgstr "Limit" -#: admin/templates/admin/domains_quota_headers.html:4 +#: templates/admin/domains_quota_headers.html:4 msgid "Used" msgstr "" -#: admin/templates/admin/domains_quota_headers.html:5 +#: templates/admin/domains_quota_headers.html:5 #, fuzzy #| msgid "Alias created" msgid "Allocated" msgstr "Alias erstellt" -#: admin/templates/admin/domains_quota_headers.html:6 -#: admin/templates/admin/identities_quota_headers.html:5 +#: templates/admin/domains_quota_headers.html:6 +#: templates/admin/identities_quota_headers.html:5 #, python-format msgid "Usage (%%)" msgstr "Verwendung (%%)" -#: admin/templates/admin/domains_table.html:5 +#: templates/admin/domains_table.html:5 msgid "disabled" msgstr "deaktiviert" -#: admin/templates/admin/forward.html:2 +#: templates/admin/forward.html:2 msgid "Automatically forward emails to another address" msgstr "Nachrichten automatisch an andere Adresse weiterleiten" -#: admin/templates/admin/forward.html:9 admin/views/alias.py:91 +#: templates/admin/forward.html:9 views/alias.py:91 msgid "Update" msgstr "Aktualisieren" -#: admin/templates/admin/identities.html:32 +#: templates/admin/identities.html:32 #, fuzzy #| msgid "Add account" msgid "Account" msgstr "Konto hinzufügen" -#: admin/templates/admin/identities_quota_headers.html:3 +#: templates/admin/identities_quota_headers.html:3 msgid "Value" msgstr "Wert" -#: admin/templates/admin/identity_headers.html:3 +#: templates/admin/identity_headers.html:3 msgid "Fullname/Recipient" msgstr "Name/Empfänger" -#: admin/templates/admin/import_domains_form.html:6 +#: templates/admin/import_domains_form.html:6 #, fuzzy #| msgid "" #| "Provide a CSV file where lines respect one of the following formats:\n" @@ -1263,7 +1253,7 @@ msgstr "" "vorhergehenden sein.\n" "Ein anderes Zeichen als Trenner ist gestattet.
\n" -#: admin/templates/admin/import_identities_form.html:6 +#: templates/admin/import_identities_form.html:6 #, fuzzy #| msgid "" #| "Provide a CSV file where lines respect one of the following formats:\n" @@ -1299,129 +1289,144 @@ msgstr "" "\n" "Ein anderes Zeichen als Separator ist gestattet.
\n" -#: admin/templates/admin/importform.html:6 +#: templates/admin/importform.html:6 msgid "Help" msgstr "Hilfe" -#: admin/templates/admin/importform.html:13 +#: templates/admin/importform.html:13 msgid "Importing..." msgstr "Importiere…" -#: admin/templates/admin/index.html:6 +#: templates/admin/index.html:6 msgid "Admin" msgstr "" -#: admin/templates/admin/mailboxes_raw.html:3 +#: templates/admin/mailboxes_raw.html:3 msgid "Choose a value" msgstr "Wert auswählen" -#: admin/templates/admin/mailform.html:7 +#: templates/admin/mailform.html:7 msgid "Use domain default value" msgstr "Standardwert der Domain verwenden" -#: admin/templates/admin/mx_domain_detail.html:11 +#: templates/admin/mx_domain_detail.html:11 #, fuzzy #| msgid "Update" msgid "Updated" msgstr "Aktualisieren" -#: admin/templates/admin/mx_domain_detail.html:23 +#: 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 +#: 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 +#: 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 +#: 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 +#: 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 +#: templates/admin/searchform.html:6 msgid "Search" msgstr "Suchen" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_m" msgstr "aktiviert_m" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_f" msgstr "aktiviert_f" -#: admin/templatetags/admin_tags.py:49 +#: templatetags/admin_tags.py:49 msgid "List domains" msgstr "Domain-Liste" -#: admin/templatetags/admin_tags.py:54 admin/templatetags/admin_tags.py:109 +#: templatetags/admin_tags.py:54 templatetags/admin_tags.py:109 msgid "List quotas" msgstr "Quota-Liste" -#: admin/templatetags/admin_tags.py:66 admin/templatetags/admin_tags.py:114 -#: admin/views/import_.py:94 admin/views/import_.py:116 +#: templatetags/admin_tags.py:66 templatetags/admin_tags.py:114 +#: views/import_.py:94 views/import_.py:116 msgid "Import" msgstr "Import" -#: admin/templatetags/admin_tags.py:72 admin/templatetags/admin_tags.py:120 -#: admin/views/export.py:48 admin/views/export.py:76 +#: templatetags/admin_tags.py:72 templatetags/admin_tags.py:120 +#: views/export.py:48 views/export.py:76 msgid "Export" msgstr "Export" -#: admin/templatetags/admin_tags.py:104 +#: templatetags/admin_tags.py:104 msgid "List identities" msgstr "Identitäten-Liste" -#: admin/templatetags/admin_tags.py:139 +#: templatetags/admin_tags.py:139 msgid "View the domain's identities" msgstr "Domain-Identitäten anzeigen" -#: admin/templatetags/admin_tags.py:145 admin/templatetags/admin_tags.py:188 -#: admin/templatetags/admin_tags.py:201 +#: templatetags/admin_tags.py:145 templatetags/admin_tags.py:188 +#: templatetags/admin_tags.py:201 msgid "Edit {}" msgstr "" -#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:192 -#: admin/templatetags/admin_tags.py:206 +#: templatetags/admin_tags.py:155 templatetags/admin_tags.py:192 +#: templatetags/admin_tags.py:206 #, python-format msgid "Delete %s?" msgstr "%s löschen?" -#: admin/views/alias.py:33 +#: tests/test_mx.py:144 +#, python-format +msgid "No A record found for MX %(domain)s" +msgstr "" + +#: tests/test_mx.py:147 +#, python-format +msgid "No AAAA record found for MX %(domain)s" +msgstr "" + +#: tests/test_mx.py:150 tests/test_mx.py:153 +#, python-format +msgid "Invalid IP address format for %(domain)s; %(addr)s" +msgstr "" + +#: views/alias.py:33 msgid "Alias with this name already exists" msgstr "Ein Alias mit diesem Namen existiert bereits" -#: admin/views/alias.py:58 +#: views/alias.py:58 msgid "Create" msgstr "Erstellen" -#: admin/views/alias.py:70 +#: views/alias.py:70 msgid "New alias" msgstr "Neuer Alias" -#: admin/views/alias.py:71 +#: views/alias.py:71 msgid "Alias created" msgstr "Alias erstellt" -#: admin/views/alias.py:83 +#: views/alias.py:83 msgid "Alias modified" msgstr "Alias verändert" -#: admin/views/alias.py:107 +#: views/alias.py:107 #, fuzzy #| msgid "Alias created" msgid "Alias deleted" @@ -1429,62 +1434,61 @@ msgid_plural "Aliases deleted" msgstr[0] "Alias erstellt" msgstr[1] "Alias erstellt" -#: admin/views/dns.py:32 +#: views/dns.py:32 msgid "MX records of {}" msgstr "" -#: admin/views/dns.py:55 +#: views/dns.py:55 msgid "DNSBL summary for {}" msgstr "" -#: admin/views/domain.py:199 +#: views/domain.py:199 msgid "You can't delete your own domain" msgstr "Sie können Ihre eigene Domain nicht löschen" -#: admin/views/domain.py:202 +#: views/domain.py:202 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domain gelöscht" msgstr[1] "Domains gelöscht" -#: admin/views/export.py:47 +#: views/export.py:47 msgid "Export identities" msgstr "Identitäten exportieren" -#: admin/views/export.py:75 +#: views/export.py:75 msgid "Export domains" msgstr "Domains exportieren" -#: admin/views/identity.py:111 admin/views/identity.py:205 -#: admin/views/identity.py:210 +#: views/identity.py:111 views/identity.py:205 views/identity.py:210 msgid "Invalid request" msgstr "Ungültige Anfrage" -#: admin/views/identity.py:195 +#: views/identity.py:195 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Konto gelöscht" msgstr[1] "Konten gelöscht" -#: admin/views/import_.py:70 +#: views/import_.py:70 #, python-format msgid "Object already exists: %s" msgstr "Objekt existiert bereits: %s" -#: admin/views/import_.py:74 +#: views/import_.py:74 #, python-format msgid "%d objects imported successfully" msgstr "%d Objekte erfolgreich importiert" -#: admin/views/import_.py:93 +#: views/import_.py:93 msgid "Import domains" msgstr "Domains importieren" -#: admin/views/import_.py:115 +#: views/import_.py:115 msgid "Import identities" msgstr "Identitäten importieren" -#: admin/views/user.py:40 +#: views/user.py:40 msgid "Forward updated" msgstr "Weiterleitung aktualisiert" diff --git a/modoboa/admin/locale/el_GR/LC_MESSAGES/django.po b/modoboa/admin/locale/el_GR/LC_MESSAGES/django.po index 8e14360ba..31bfb1b59 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-10-05 16:08+0200\n" +"POT-Creation-Date: 2018-10-17 09:25+0200\n" "PO-Revision-Date: 2017-10-12 08:13+0000\n" "Last-Translator: Kostas MoumourisΜπορείτε να χρησιμοποιήσετε διαφορετικό χαρακτήρα " "ως διαχωριστικό.
" -#: admin/templates/admin/import_identities_form.html:6 +#: templates/admin/import_identities_form.html:6 msgid "" "Provide a CSV file where lines respect one of the following formats: Μπορείτε να "
"χρησιμοποιήσετε διαφορετικό χαρακτήρα ως διαχωριστικό."
-#: admin/templates/admin/importform.html:6
+#: templates/admin/importform.html:6
msgid "Help"
msgstr "Βοήθεια"
-#: admin/templates/admin/importform.html:13
+#: templates/admin/importform.html:13
msgid "Importing..."
msgstr "Εισαγωγή..."
-#: admin/templates/admin/index.html:6
+#: templates/admin/index.html:6
msgid "Admin"
msgstr "Διαχειριστής"
-#: admin/templates/admin/mailboxes_raw.html:3
+#: templates/admin/mailboxes_raw.html:3
msgid "Choose a value"
msgstr "Επιλέξτε μία τιμή"
-#: admin/templates/admin/mailform.html:7
+#: templates/admin/mailform.html:7
msgid "Use domain default value"
msgstr "Χρήση της προεπιλεγμένης τιμής του domain"
-#: admin/templates/admin/mx_domain_detail.html:11
+#: templates/admin/mx_domain_detail.html:11
msgid "Updated"
msgstr "Ενημερώθηκε"
-#: admin/templates/admin/mx_domain_detail.html:23
+#: templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
msgstr ""
"Αυτή η διεύθυνση IP δεν αντιστοιχεί σε κανένα από τα έγκυρο MX που ορίζονται "
"στις παραμέτρους"
-#: admin/templates/admin/mx_domain_detail.html:36
+#: templates/admin/mx_domain_detail.html:36
msgid "No MX record found for this domain."
msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. "
-#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
+#: templates/admin/notifications/domain_in_dnsbl.html:3
#, python-format
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
@@ -1235,7 +1226,7 @@ msgstr ""
"Η Modoboa ανίχνευσε ότι το domain %(domain)s είναι καταχωρημένος στους "
"ακόλουθους παρόχους DNSBL:"
-#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
+#: 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 "
@@ -1246,142 +1237,168 @@ msgstr ""
"ανεπιθύμητα. Θα πρέπει να επικοινωνήσετε με αυτούς τους παροχους και να τους "
"ζητήσετε να σας βγάλουν από τη λίστα ανεπιθύμητων διευθύνσεων IP."
-#: admin/templates/admin/notifications/domain_invalid_mx.html:3
+#: templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
msgstr ""
"To Modoboa ανίχνευσε ότι το domain %(domain)s δεν έχει έγκυρη εγγραφή MX:"
-#: admin/templates/admin/searchform.html:6
+#: templates/admin/searchform.html:6
msgid "Search"
msgstr "Αναζήτηση"
-#: admin/templatetags/admin_tags.py:23
+#: templatetags/admin_tags.py:23
msgid "enabled_m"
msgstr "enabled_m"
-#: admin/templatetags/admin_tags.py:23
+#: templatetags/admin_tags.py:23
msgid "enabled_f"
msgstr "enabled_f"
-#: admin/templatetags/admin_tags.py:49
+#: templatetags/admin_tags.py:49
msgid "List domains"
msgstr "Λίστα domains"
-#: admin/templatetags/admin_tags.py:54 admin/templatetags/admin_tags.py:109
+#: templatetags/admin_tags.py:54 templatetags/admin_tags.py:109
msgid "List quotas"
msgstr "List Quotas"
-#: admin/templatetags/admin_tags.py:66 admin/templatetags/admin_tags.py:114
-#: admin/views/import_.py:94 admin/views/import_.py:116
+#: templatetags/admin_tags.py:66 templatetags/admin_tags.py:114
+#: views/import_.py:94 views/import_.py:116
msgid "Import"
msgstr "Εισαγωγή"
-#: admin/templatetags/admin_tags.py:72 admin/templatetags/admin_tags.py:120
-#: admin/views/export.py:48 admin/views/export.py:76
+#: templatetags/admin_tags.py:72 templatetags/admin_tags.py:120
+#: views/export.py:48 views/export.py:76
msgid "Export"
msgstr "Εξαγωγή"
-#: admin/templatetags/admin_tags.py:104
+#: templatetags/admin_tags.py:104
msgid "List identities"
msgstr "Λίστα ταυτοτήτων"
-#: admin/templatetags/admin_tags.py:139
+#: templatetags/admin_tags.py:139
msgid "View the domain's identities"
msgstr "Εμφάνιση των ταυτοτήτων του domain"
-#: admin/templatetags/admin_tags.py:145 admin/templatetags/admin_tags.py:188
-#: admin/templatetags/admin_tags.py:201
+#: templatetags/admin_tags.py:145 templatetags/admin_tags.py:188
+#: templatetags/admin_tags.py:201
msgid "Edit {}"
msgstr "Επεξεργασία{}"
-#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:192
-#: admin/templatetags/admin_tags.py:206
+#: templatetags/admin_tags.py:155 templatetags/admin_tags.py:192
+#: templatetags/admin_tags.py:206
#, python-format
msgid "Delete %s?"
msgstr "Διαγραφή %s;"
-#: admin/views/alias.py:33
+#: tests/test_mx.py:144
+#, fuzzy, python-format
+#| msgid "No MX record found for this domain."
+msgid "No A record found for MX %(domain)s"
+msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. "
+
+#: tests/test_mx.py:147
+#, fuzzy, python-format
+#| msgid "No MX record found for this domain."
+msgid "No AAAA record found for MX %(domain)s"
+msgstr "Δεν βρέθηκε εγράφη MX για αυτό το domain. "
+
+#: tests/test_mx.py:150 tests/test_mx.py:153
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: views/alias.py:33
msgid "Alias with this name already exists"
msgstr "Υπάρχει είδη αυτό το ψευδώνυμο"
-#: admin/views/alias.py:58
+#: views/alias.py:58
msgid "Create"
msgstr "Δημιουργία"
-#: admin/views/alias.py:70
+#: views/alias.py:70
msgid "New alias"
msgstr "Νέο ψευδώνυμο"
-#: admin/views/alias.py:71
+#: views/alias.py:71
msgid "Alias created"
msgstr "Το ψευδώνυμο δημιουργήθηκε"
-#: admin/views/alias.py:83
+#: views/alias.py:83
msgid "Alias modified"
msgstr "Το ψευδώνυμο τροποποιήθηκε"
-#: admin/views/alias.py:107
+#: views/alias.py:107
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] "Το ψευδώνυμο διαγράφηκε"
msgstr[1] "Ψευδώνυμο διαγράφηκε"
-#: admin/views/dns.py:32
+#: views/dns.py:32
msgid "MX records of {}"
msgstr "Έγραφες MX από{}"
-#: admin/views/dns.py:55
+#: views/dns.py:55
msgid "DNSBL summary for {}"
msgstr "Περίληψη DNSBL για{}"
-#: admin/views/domain.py:199
+#: views/domain.py:199
msgid "You can't delete your own domain"
msgstr "Δεν μπορείτε να σβήσετε το δικό σας domain"
-#: admin/views/domain.py:202
+#: views/domain.py:202
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Το domain διαφράφηκε"
msgstr[1] "Τα domains διαφράφηκαν"
-#: admin/views/export.py:47
+#: views/export.py:47
msgid "Export identities"
msgstr "Εξαγωγή ταυτοτήτων"
-#: admin/views/export.py:75
+#: views/export.py:75
msgid "Export domains"
msgstr "Εξαγωγή των domain"
-#: admin/views/identity.py:111 admin/views/identity.py:205
-#: admin/views/identity.py:210
+#: views/identity.py:111 views/identity.py:205 views/identity.py:210
msgid "Invalid request"
msgstr "Λάθος αίτημα"
-#: admin/views/identity.py:195
+#: views/identity.py:195
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Ο λογαριασμός διαγράφηκε"
msgstr[1] "Οι λογαριασμοί διαγράφηκαν"
-#: admin/views/import_.py:70
+#: views/import_.py:70
#, python-format
msgid "Object already exists: %s"
msgstr "Το αντικείμενο υπάρχει ήδη: %s'"
-#: admin/views/import_.py:74
+#: views/import_.py:74
#, python-format
msgid "%d objects imported successfully"
msgstr "%d αντικείμενα εισήχθησαν με επιτυχία"
-#: admin/views/import_.py:93
+#: views/import_.py:93
msgid "Import domains"
msgstr "Εισαγωγή των domain"
-#: admin/views/import_.py:115
+#: views/import_.py:115
msgid "Import identities"
msgstr "Εισαγωγή ταυτοτήτων"
-#: admin/views/user.py:40
+#: views/user.py:40
msgid "Forward updated"
msgstr "Η προώθηση ενημερώθηκε"
+
+#, 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/en/LC_MESSAGES/django.po b/modoboa/admin/locale/en/LC_MESSAGES/django.po
index 7cc77d846..dd80b8b2e 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-10-05 16:08+0200\n"
+"POT-Creation-Date: 2018-10-17 09:25+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME "
"
Puede utilizar un carácter diferente como Separador.
" -#: admin/templates/admin/import_identities_form.html:6 +#: templates/admin/import_identities_form.html:6 msgid "" "Provide a CSV file where lines respect one of the following formats:Puede "
"utilizar un carácter diferente como separador. p>"
-#: admin/templates/admin/importform.html:6
+#: templates/admin/importform.html:6
msgid "Help"
msgstr "Ayuda"
-#: admin/templates/admin/importform.html:13
+#: templates/admin/importform.html:13
msgid "Importing..."
msgstr "Importando..."
-#: admin/templates/admin/index.html:6
+#: templates/admin/index.html:6
msgid "Admin"
msgstr "Administrador"
-#: admin/templates/admin/mailboxes_raw.html:3
+#: templates/admin/mailboxes_raw.html:3
msgid "Choose a value"
msgstr "Elija un valor"
-#: admin/templates/admin/mailform.html:7
+#: templates/admin/mailform.html:7
msgid "Use domain default value"
msgstr "Usar el valor por defecto del dominio"
-#: admin/templates/admin/mx_domain_detail.html:11
+#: templates/admin/mx_domain_detail.html:11
msgid "Updated"
msgstr "Actualizado"
-#: admin/templates/admin/mx_domain_detail.html:23
+#: templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
msgstr ""
"Esta IP no coincide con ninguno de los registros MX válidos definidos en los "
"parámetros"
-#: admin/templates/admin/mx_domain_detail.html:36
+#: templates/admin/mx_domain_detail.html:36
msgid "No MX record found for this domain."
msgstr "No se encontró ningún registro MX para este dominio."
-#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
+#: templates/admin/notifications/domain_in_dnsbl.html:3
#, python-format
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
@@ -1229,7 +1220,7 @@ msgstr ""
"Modoboa detectó que el(los) dominio(s) %(domain)s está(n) listado(s) por los "
"siguientes proveedores DNSBL:"
-#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
+#: 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 "
@@ -1240,143 +1231,169 @@ msgstr ""
"Debe comunicarse con estos proveedores y pedirles que elimine la(s) "
"dirección(es) IP detectada(s)."
-#: admin/templates/admin/notifications/domain_invalid_mx.html:3
+#: templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
msgstr ""
"Modoboa detectó que el(los) dominio(s) %(domain)s está(n) listado(s) por los "
"siguientes proveedores DNSBL:"
-#: admin/templates/admin/searchform.html:6
+#: templates/admin/searchform.html:6
msgid "Search"
msgstr "Buscar"
-#: admin/templatetags/admin_tags.py:23
+#: templatetags/admin_tags.py:23
msgid "enabled_m"
msgstr "Activado"
-#: admin/templatetags/admin_tags.py:23
+#: templatetags/admin_tags.py:23
msgid "enabled_f"
msgstr "Activado"
-#: admin/templatetags/admin_tags.py:49
+#: templatetags/admin_tags.py:49
msgid "List domains"
msgstr "Listar dominios"
-#: admin/templatetags/admin_tags.py:54 admin/templatetags/admin_tags.py:109
+#: templatetags/admin_tags.py:54 templatetags/admin_tags.py:109
msgid "List quotas"
msgstr "Listar cuotas"
-#: admin/templatetags/admin_tags.py:66 admin/templatetags/admin_tags.py:114
-#: admin/views/import_.py:94 admin/views/import_.py:116
+#: templatetags/admin_tags.py:66 templatetags/admin_tags.py:114
+#: views/import_.py:94 views/import_.py:116
msgid "Import"
msgstr "Importar"
-#: admin/templatetags/admin_tags.py:72 admin/templatetags/admin_tags.py:120
-#: admin/views/export.py:48 admin/views/export.py:76
+#: templatetags/admin_tags.py:72 templatetags/admin_tags.py:120
+#: views/export.py:48 views/export.py:76
msgid "Export"
msgstr "Exportar"
-#: admin/templatetags/admin_tags.py:104
+#: templatetags/admin_tags.py:104
msgid "List identities"
msgstr "Listar identidades"
-#: admin/templatetags/admin_tags.py:139
+#: templatetags/admin_tags.py:139
msgid "View the domain's identities"
msgstr "Ver las identidades del dominio"
-#: admin/templatetags/admin_tags.py:145 admin/templatetags/admin_tags.py:188
-#: admin/templatetags/admin_tags.py:201
+#: templatetags/admin_tags.py:145 templatetags/admin_tags.py:188
+#: templatetags/admin_tags.py:201
msgid "Edit {}"
msgstr "Editar {}"
-#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:192
-#: admin/templatetags/admin_tags.py:206
+#: templatetags/admin_tags.py:155 templatetags/admin_tags.py:192
+#: templatetags/admin_tags.py:206
#, python-format
msgid "Delete %s?"
msgstr "¿Eliminar %s?"
-#: admin/views/alias.py:33
+#: tests/test_mx.py:144
+#, fuzzy, python-format
+#| 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."
+
+#: tests/test_mx.py:147
+#, fuzzy, python-format
+#| 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."
+
+#: tests/test_mx.py:150 tests/test_mx.py:153
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: views/alias.py:33
msgid "Alias with this name already exists"
msgstr "Ya existe un alias con este nombre"
-#: admin/views/alias.py:58
+#: views/alias.py:58
msgid "Create"
msgstr "Crear"
-#: admin/views/alias.py:70
+#: views/alias.py:70
msgid "New alias"
msgstr "Nuevo alias"
-#: admin/views/alias.py:71
+#: views/alias.py:71
msgid "Alias created"
msgstr "Alias creado"
-#: admin/views/alias.py:83
+#: views/alias.py:83
msgid "Alias modified"
msgstr "Alias modificado"
-#: admin/views/alias.py:107
+#: views/alias.py:107
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] "Alias eliminado"
msgstr[1] "Aliases eliminados"
-#: admin/views/dns.py:32
+#: views/dns.py:32
msgid "MX records of {}"
msgstr "Registros MX de {}"
-#: admin/views/dns.py:55
+#: views/dns.py:55
msgid "DNSBL summary for {}"
msgstr "Resumen de DNSBL para {}"
-#: admin/views/domain.py:199
+#: views/domain.py:199
msgid "You can't delete your own domain"
msgstr "No puedo eliminar su propio dominio"
-#: admin/views/domain.py:202
+#: views/domain.py:202
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Dominio eliminado"
msgstr[1] "Dominios eliminados"
-#: admin/views/export.py:47
+#: views/export.py:47
msgid "Export identities"
msgstr "Exportar identidades"
-#: admin/views/export.py:75
+#: views/export.py:75
msgid "Export domains"
msgstr "Exportar dominios"
-#: admin/views/identity.py:111 admin/views/identity.py:205
-#: admin/views/identity.py:210
+#: views/identity.py:111 views/identity.py:205 views/identity.py:210
msgid "Invalid request"
msgstr "Petición inválida"
-#: admin/views/identity.py:195
+#: views/identity.py:195
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Cuenta eliminada"
msgstr[1] "Cuentas eliminadas"
-#: admin/views/import_.py:70
+#: views/import_.py:70
#, python-format
msgid "Object already exists: %s"
msgstr "El objeto ya existe: %s"
-#: admin/views/import_.py:74
+#: views/import_.py:74
#, python-format
msgid "%d objects imported successfully"
msgstr "%d objetos importados con éxito"
-#: admin/views/import_.py:93
+#: views/import_.py:93
msgid "Import domains"
msgstr "Importar dominios"
-#: admin/views/import_.py:115
+#: views/import_.py:115
msgid "Import identities"
msgstr "Importar identidades"
-#: admin/views/user.py:40
+#: views/user.py:40
msgid "Forward updated"
msgstr "Reenvío actualizado"
+
+#, 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/fr/LC_MESSAGES/django.po b/modoboa/admin/locale/fr/LC_MESSAGES/django.po
index b00391e20..cd15cf544 100644
--- a/modoboa/admin/locale/fr/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/fr/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-10-05 16:08+0200\n"
+"POT-Creation-Date: 2018-10-17 09:25+0200\n"
"PO-Revision-Date: 2018-01-25 09:18+0100\n"
"Last-Translator: Antoine Nguyen "
"
Vous " "pouvez utiliser un caractère différent comme séparateur.
" -#: admin/templates/admin/import_identities_form.html:6 +#: templates/admin/import_identities_form.html:6 msgid "" "Provide a CSV file where lines respect one of the following formats:Vous pouvez utiliser un caractère différent en " "tant que séparateur.
" -#: admin/templates/admin/importform.html:6 +#: templates/admin/importform.html:6 msgid "Help" msgstr "Aide" -#: admin/templates/admin/importform.html:13 +#: templates/admin/importform.html:13 msgid "Importing..." msgstr "Import en cours..." -#: admin/templates/admin/index.html:6 +#: templates/admin/index.html:6 msgid "Admin" msgstr "Admin" -#: admin/templates/admin/mailboxes_raw.html:3 +#: templates/admin/mailboxes_raw.html:3 msgid "Choose a value" msgstr "Choisir une valeur" -#: admin/templates/admin/mailform.html:7 +#: templates/admin/mailform.html:7 msgid "Use domain default value" msgstr "Utiliser la valeur par défaut du domaine" -#: admin/templates/admin/mx_domain_detail.html:11 +#: templates/admin/mx_domain_detail.html:11 msgid "Updated" msgstr "Mis à jour" -#: admin/templates/admin/mx_domain_detail.html:23 +#: templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" msgstr "" "Cette IP ne correspond à un aucun des MX valides déclarés dans les " "paramètres." -#: admin/templates/admin/mx_domain_detail.html:36 +#: templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." msgstr "Aucun enregistrement MX trouvé pour ce domaine." -#: admin/templates/admin/notifications/domain_in_dnsbl.html:3 +#: templates/admin/notifications/domain_in_dnsbl.html:3 #, python-format msgid "" "Modoboa detected that domain %(domain)s is listed by the following DNSBL " @@ -1221,7 +1212,7 @@ msgstr "" "Modoboa a détecté que le domaine %(domain)s est listé par les fournisseurs " "de DNSBL suivants :" -#: admin/templates/admin/notifications/domain_in_dnsbl.html:11 +#: 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 " @@ -1231,143 +1222,157 @@ msgstr "" "venant de lui soient considérés comme du spam. Vous devriez contacter ces " "fournisseurs pour leur demander de délister la/les adresse(s) détectée(s)." -#: admin/templates/admin/notifications/domain_invalid_mx.html:3 +#: 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 détecté que le domain %(domain)s n'a aucun enregistrement MX " "valide :" -#: admin/templates/admin/searchform.html:6 +#: templates/admin/searchform.html:6 msgid "Search" msgstr "Chercher" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_m" msgstr "Activé" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_f" msgstr "Activée" -#: admin/templatetags/admin_tags.py:49 +#: templatetags/admin_tags.py:49 msgid "List domains" msgstr "Lister les domaines" -#: admin/templatetags/admin_tags.py:54 admin/templatetags/admin_tags.py:109 +#: templatetags/admin_tags.py:54 templatetags/admin_tags.py:109 msgid "List quotas" msgstr "Lister les quotas" -#: admin/templatetags/admin_tags.py:66 admin/templatetags/admin_tags.py:114 -#: admin/views/import_.py:94 admin/views/import_.py:116 +#: templatetags/admin_tags.py:66 templatetags/admin_tags.py:114 +#: views/import_.py:94 views/import_.py:116 msgid "Import" msgstr "Importer" -#: admin/templatetags/admin_tags.py:72 admin/templatetags/admin_tags.py:120 -#: admin/views/export.py:48 admin/views/export.py:76 +#: templatetags/admin_tags.py:72 templatetags/admin_tags.py:120 +#: views/export.py:48 views/export.py:76 msgid "Export" msgstr "Exporter" -#: admin/templatetags/admin_tags.py:104 +#: templatetags/admin_tags.py:104 msgid "List identities" msgstr "Lister les identités" -#: admin/templatetags/admin_tags.py:139 +#: templatetags/admin_tags.py:139 msgid "View the domain's identities" msgstr "Voir les identités du domaine" -#: admin/templatetags/admin_tags.py:145 admin/templatetags/admin_tags.py:188 -#: admin/templatetags/admin_tags.py:201 +#: templatetags/admin_tags.py:145 templatetags/admin_tags.py:188 +#: templatetags/admin_tags.py:201 msgid "Edit {}" msgstr "Modifier {}" -#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:192 -#: admin/templatetags/admin_tags.py:206 +#: templatetags/admin_tags.py:155 templatetags/admin_tags.py:192 +#: templatetags/admin_tags.py:206 #, python-format msgid "Delete %s?" msgstr "Supprimer %s ?" -#: admin/views/alias.py:33 +#: tests/test_mx.py:144 +#, python-format +msgid "No A record found for MX %(domain)s" +msgstr "Aucun enregistrement A trouvé pour le MX %(domain)s." + +#: tests/test_mx.py:147 +#, python-format +msgid "No AAAA record found for MX %(domain)s" +msgstr "Aucun enregistrement AAAA trouvé pour le MX %(domain)s." + +#: tests/test_mx.py:150 tests/test_mx.py:153 +#, python-format +msgid "Invalid IP address format for %(domain)s; %(addr)s" +msgstr "Format d'adresse IP incorrect pour %(domain)s; %(addr)s" + +#: views/alias.py:33 msgid "Alias with this name already exists" msgstr "Un alias de ce nom existe déjà" -#: admin/views/alias.py:58 +#: views/alias.py:58 msgid "Create" msgstr "Créer" -#: admin/views/alias.py:70 +#: views/alias.py:70 msgid "New alias" msgstr "Nouvel alias" -#: admin/views/alias.py:71 +#: views/alias.py:71 msgid "Alias created" msgstr "Alias créé" -#: admin/views/alias.py:83 +#: views/alias.py:83 msgid "Alias modified" msgstr "Alias modifié" -#: admin/views/alias.py:107 +#: views/alias.py:107 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Alias supprimé" msgstr[1] "Alias supprimés" -#: admin/views/dns.py:32 +#: views/dns.py:32 msgid "MX records of {}" msgstr "Enregistrements MX de {}" -#: admin/views/dns.py:55 +#: views/dns.py:55 msgid "DNSBL summary for {}" msgstr "Résumé DNSBL pour {}" -#: admin/views/domain.py:199 +#: views/domain.py:199 msgid "You can't delete your own domain" msgstr "Vous ne pouvez pas supprimer votre propre domaine" -#: admin/views/domain.py:202 +#: views/domain.py:202 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domaine supprimé" msgstr[1] "Domaines supprimés" -#: admin/views/export.py:47 +#: views/export.py:47 msgid "Export identities" msgstr "Export d'identités" -#: admin/views/export.py:75 +#: views/export.py:75 msgid "Export domains" msgstr "Export de domaines" -#: admin/views/identity.py:111 admin/views/identity.py:205 -#: admin/views/identity.py:210 +#: views/identity.py:111 views/identity.py:205 views/identity.py:210 msgid "Invalid request" msgstr "Requête invalide" -#: admin/views/identity.py:195 +#: views/identity.py:195 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Compte supprimé" msgstr[1] "Comptes supprimés" -#: admin/views/import_.py:70 +#: views/import_.py:70 #, python-format msgid "Object already exists: %s" msgstr "L'objet existe déjà : %s" -#: admin/views/import_.py:74 +#: views/import_.py:74 #, python-format msgid "%d objects imported successfully" msgstr "%d objets importés avec succès" -#: admin/views/import_.py:93 +#: views/import_.py:93 msgid "Import domains" msgstr "Importer des domaines" -#: admin/views/import_.py:115 +#: views/import_.py:115 msgid "Import identities" msgstr "Importer des identités" -#: admin/views/user.py:40 +#: views/user.py:40 msgid "Forward updated" msgstr "Transfert mis à jour" diff --git a/modoboa/admin/locale/it/LC_MESSAGES/django.po b/modoboa/admin/locale/it/LC_MESSAGES/django.po index eb0fef5d2..4e2f6a324 100644 --- a/modoboa/admin/locale/it/LC_MESSAGES/django.po +++ b/modoboa/admin/locale/it/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-10-05 16:08+0200\n" +"POT-Creation-Date: 2018-10-17 09:25+0200\n" "PO-Revision-Date: 2015-10-11 11:48+0000\n" "Last-Translator: RoccoCome separatore puoi utilizzare un carattere diverso.
\n" -#: admin/templates/admin/import_identities_form.html:6 +#: templates/admin/import_identities_form.html:6 #, fuzzy #| msgid "" #| "Provide a CSV file where lines respect one of the following formats:\n" @@ -1301,129 +1291,144 @@ msgstr "" "\n" "Come separatore puoi utilizzare un carattere diverso.
\n" -#: admin/templates/admin/importform.html:6 +#: templates/admin/importform.html:6 msgid "Help" msgstr "Aiuto" -#: admin/templates/admin/importform.html:13 +#: templates/admin/importform.html:13 msgid "Importing..." msgstr "Importazione..." -#: admin/templates/admin/index.html:6 +#: templates/admin/index.html:6 msgid "Admin" msgstr "" -#: admin/templates/admin/mailboxes_raw.html:3 +#: templates/admin/mailboxes_raw.html:3 msgid "Choose a value" msgstr "Scegli un valore" -#: admin/templates/admin/mailform.html:7 +#: templates/admin/mailform.html:7 msgid "Use domain default value" msgstr "Usa il valore predefinito" -#: admin/templates/admin/mx_domain_detail.html:11 +#: templates/admin/mx_domain_detail.html:11 #, fuzzy #| msgid "Update" msgid "Updated" msgstr "Aggiorna" -#: admin/templates/admin/mx_domain_detail.html:23 +#: 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 +#: 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 +#: 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 +#: 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 +#: 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 +#: templates/admin/searchform.html:6 msgid "Search" msgstr "Ricerca" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_m" msgstr "Abilitato" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_f" msgstr "Abilitata" -#: admin/templatetags/admin_tags.py:49 +#: templatetags/admin_tags.py:49 msgid "List domains" msgstr "Lista domini" -#: admin/templatetags/admin_tags.py:54 admin/templatetags/admin_tags.py:109 +#: templatetags/admin_tags.py:54 templatetags/admin_tags.py:109 msgid "List quotas" msgstr "Elenco quote" -#: admin/templatetags/admin_tags.py:66 admin/templatetags/admin_tags.py:114 -#: admin/views/import_.py:94 admin/views/import_.py:116 +#: templatetags/admin_tags.py:66 templatetags/admin_tags.py:114 +#: views/import_.py:94 views/import_.py:116 msgid "Import" msgstr "Importa" -#: admin/templatetags/admin_tags.py:72 admin/templatetags/admin_tags.py:120 -#: admin/views/export.py:48 admin/views/export.py:76 +#: templatetags/admin_tags.py:72 templatetags/admin_tags.py:120 +#: views/export.py:48 views/export.py:76 msgid "Export" msgstr "Esporta" -#: admin/templatetags/admin_tags.py:104 +#: templatetags/admin_tags.py:104 msgid "List identities" msgstr "Elenco identità" -#: admin/templatetags/admin_tags.py:139 +#: templatetags/admin_tags.py:139 msgid "View the domain's identities" msgstr "Visualizza le identita del dominio" -#: admin/templatetags/admin_tags.py:145 admin/templatetags/admin_tags.py:188 -#: admin/templatetags/admin_tags.py:201 +#: templatetags/admin_tags.py:145 templatetags/admin_tags.py:188 +#: templatetags/admin_tags.py:201 msgid "Edit {}" msgstr "" -#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:192 -#: admin/templatetags/admin_tags.py:206 +#: templatetags/admin_tags.py:155 templatetags/admin_tags.py:192 +#: templatetags/admin_tags.py:206 #, python-format msgid "Delete %s?" msgstr "Eliminare %s?" -#: admin/views/alias.py:33 +#: tests/test_mx.py:144 +#, python-format +msgid "No A record found for MX %(domain)s" +msgstr "" + +#: tests/test_mx.py:147 +#, python-format +msgid "No AAAA record found for MX %(domain)s" +msgstr "" + +#: tests/test_mx.py:150 tests/test_mx.py:153 +#, python-format +msgid "Invalid IP address format for %(domain)s; %(addr)s" +msgstr "" + +#: views/alias.py:33 msgid "Alias with this name already exists" msgstr "Un alias con questo nome esiste già" -#: admin/views/alias.py:58 +#: views/alias.py:58 msgid "Create" msgstr "Crea" -#: admin/views/alias.py:70 +#: views/alias.py:70 msgid "New alias" msgstr "Nuovo alias" -#: admin/views/alias.py:71 +#: views/alias.py:71 msgid "Alias created" msgstr "Alias creato" -#: admin/views/alias.py:83 +#: views/alias.py:83 msgid "Alias modified" msgstr "Alias modificato" -#: admin/views/alias.py:107 +#: views/alias.py:107 #, fuzzy #| msgid "Alias created" msgid "Alias deleted" @@ -1431,62 +1436,61 @@ msgid_plural "Aliases deleted" msgstr[0] "Alias creato" msgstr[1] "Alias creato" -#: admin/views/dns.py:32 +#: views/dns.py:32 msgid "MX records of {}" msgstr "" -#: admin/views/dns.py:55 +#: views/dns.py:55 msgid "DNSBL summary for {}" msgstr "" -#: admin/views/domain.py:199 +#: views/domain.py:199 msgid "You can't delete your own domain" msgstr "Non puoi cancellare il tuo dominio" -#: admin/views/domain.py:202 +#: views/domain.py:202 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Dominio cancellato" msgstr[1] "Domini cancellati" -#: admin/views/export.py:47 +#: views/export.py:47 msgid "Export identities" msgstr "Identità di esportazione" -#: admin/views/export.py:75 +#: views/export.py:75 msgid "Export domains" msgstr "Esporta domini" -#: admin/views/identity.py:111 admin/views/identity.py:205 -#: admin/views/identity.py:210 +#: views/identity.py:111 views/identity.py:205 views/identity.py:210 msgid "Invalid request" msgstr "Richiesta non valida" -#: admin/views/identity.py:195 +#: views/identity.py:195 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Account cancellato" msgstr[1] "Account cancellati" -#: admin/views/import_.py:70 +#: views/import_.py:70 #, python-format msgid "Object already exists: %s" msgstr "L'oggetto esiste già: %s" -#: admin/views/import_.py:74 +#: views/import_.py:74 #, python-format msgid "%d objects imported successfully" msgstr "%d oggetti importati correttamente" -#: admin/views/import_.py:93 +#: views/import_.py:93 msgid "Import domains" msgstr "Importa domini" -#: admin/views/import_.py:115 +#: views/import_.py:115 msgid "Import identities" msgstr "Identità di importazione" -#: admin/views/user.py:40 +#: views/user.py:40 msgid "Forward updated" msgstr "Inoltro aggiornato" diff --git a/modoboa/admin/locale/ja_JP/LC_MESSAGES/django.po b/modoboa/admin/locale/ja_JP/LC_MESSAGES/django.po index f6531e7ec..c0bbb1280 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-10-05 16:08+0200\n" +"POT-Creation-Date: 2018-10-17 09:25+0200\n" "PO-Revision-Date: 2016-09-14 17:06+0000\n" "Last-Translator: Antoine Nguyen各行の最初の要素は必須で、上の値に等しくなければなりません。
\n" "セパレータとして別の文字を使用することができます。
\n" -#: admin/templates/admin/import_identities_form.html:6 +#: templates/admin/import_identities_form.html:6 #, fuzzy #| msgid "" #| "Provide a CSV file where lines respect one of the following formats:\n" @@ -1256,43 +1247,43 @@ msgstr "" "各行の最初の要素は必須で、上の値に等しくなければなりません。
\n" "セパレータとして別の文字を使用することができます。
\n" -#: admin/templates/admin/importform.html:6 +#: templates/admin/importform.html:6 msgid "Help" msgstr "ヘルプ" -#: admin/templates/admin/importform.html:13 +#: templates/admin/importform.html:13 msgid "Importing..." msgstr "インポート中 ..." -#: admin/templates/admin/index.html:6 +#: templates/admin/index.html:6 msgid "Admin" msgstr "" -#: admin/templates/admin/mailboxes_raw.html:3 +#: templates/admin/mailboxes_raw.html:3 msgid "Choose a value" msgstr "値を選択してください" -#: admin/templates/admin/mailform.html:7 +#: templates/admin/mailform.html:7 msgid "Use domain default value" msgstr "ドメインのデフォルト値を使う" -#: admin/templates/admin/mx_domain_detail.html:11 +#: templates/admin/mx_domain_detail.html:11 #, fuzzy #| msgid "Update" msgid "Updated" msgstr "更新" -#: admin/templates/admin/mx_domain_detail.html:23 +#: 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 +#: templates/admin/mx_domain_detail.html:36 #, fuzzy #| msgid "No information available for this domain." msgid "No MX record found for this domain." msgstr "このドメインに関する情報がありません。" -#: admin/templates/admin/notifications/domain_in_dnsbl.html:3 +#: templates/admin/notifications/domain_in_dnsbl.html:3 #, python-format msgid "" "Modoboa detected that domain %(domain)s is listed by the following DNSBL " @@ -1301,7 +1292,7 @@ msgstr "" "Modoboa は、ドメイン %(domain)s が、以下の DNSBL プロバイダーに載っていること" "を検出しました:" -#: admin/templates/admin/notifications/domain_in_dnsbl.html:11 +#: 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 " @@ -1311,142 +1302,168 @@ msgstr "" "はスパムと見なされる可能性があります。あなたは、これらのプロバイダーに連絡し" "て、検出されたIPアドレスを登録解除してもらう必要があります。" -#: admin/templates/admin/notifications/domain_invalid_mx.html:3 +#: 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 +#: templates/admin/searchform.html:6 msgid "Search" msgstr "検索" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_m" msgstr "enabled_m" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_f" msgstr "enabled_f" -#: admin/templatetags/admin_tags.py:49 +#: templatetags/admin_tags.py:49 msgid "List domains" msgstr "ドメイン一覧を表示" -#: admin/templatetags/admin_tags.py:54 admin/templatetags/admin_tags.py:109 +#: templatetags/admin_tags.py:54 templatetags/admin_tags.py:109 msgid "List quotas" msgstr "クォータ一覧を表示" -#: admin/templatetags/admin_tags.py:66 admin/templatetags/admin_tags.py:114 -#: admin/views/import_.py:94 admin/views/import_.py:116 +#: templatetags/admin_tags.py:66 templatetags/admin_tags.py:114 +#: views/import_.py:94 views/import_.py:116 msgid "Import" msgstr "インポート" -#: admin/templatetags/admin_tags.py:72 admin/templatetags/admin_tags.py:120 -#: admin/views/export.py:48 admin/views/export.py:76 +#: templatetags/admin_tags.py:72 templatetags/admin_tags.py:120 +#: views/export.py:48 views/export.py:76 msgid "Export" msgstr "エクスポート" -#: admin/templatetags/admin_tags.py:104 +#: templatetags/admin_tags.py:104 msgid "List identities" msgstr "ID 一覧を表示" -#: admin/templatetags/admin_tags.py:139 +#: templatetags/admin_tags.py:139 msgid "View the domain's identities" msgstr "ドメインの ID を表示" -#: admin/templatetags/admin_tags.py:145 admin/templatetags/admin_tags.py:188 -#: admin/templatetags/admin_tags.py:201 +#: templatetags/admin_tags.py:145 templatetags/admin_tags.py:188 +#: templatetags/admin_tags.py:201 msgid "Edit {}" msgstr "{} を編集" -#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:192 -#: admin/templatetags/admin_tags.py:206 +#: templatetags/admin_tags.py:155 templatetags/admin_tags.py:192 +#: templatetags/admin_tags.py:206 #, python-format msgid "Delete %s?" msgstr "%s を削除しますか?" -#: admin/views/alias.py:33 +#: tests/test_mx.py:144 +#, fuzzy, python-format +#| msgid "No information available for this domain." +msgid "No A record found for MX %(domain)s" +msgstr "このドメインに関する情報がありません。" + +#: tests/test_mx.py:147 +#, fuzzy, python-format +#| msgid "No information available for this domain." +msgid "No AAAA record found for MX %(domain)s" +msgstr "このドメインに関する情報がありません。" + +#: tests/test_mx.py:150 tests/test_mx.py:153 +#, python-format +msgid "Invalid IP address format for %(domain)s; %(addr)s" +msgstr "" + +#: views/alias.py:33 msgid "Alias with this name already exists" msgstr "このエイリアス名がすでに存在しています" -#: admin/views/alias.py:58 +#: views/alias.py:58 msgid "Create" msgstr "作成" -#: admin/views/alias.py:70 +#: views/alias.py:70 msgid "New alias" msgstr "新しいエイリアス" -#: admin/views/alias.py:71 +#: views/alias.py:71 msgid "Alias created" msgstr "エイリアスが作成されました" -#: admin/views/alias.py:83 +#: views/alias.py:83 msgid "Alias modified" msgstr "エイリアスは修正されました" -#: admin/views/alias.py:107 +#: views/alias.py:107 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "" -#: admin/views/dns.py:32 +#: views/dns.py:32 msgid "MX records of {}" msgstr "" -#: admin/views/dns.py:55 +#: views/dns.py:55 msgid "DNSBL summary for {}" msgstr "{} のDNSBL 要約" -#: admin/views/domain.py:199 +#: views/domain.py:199 msgid "You can't delete your own domain" msgstr "あなた自身のドメインは削除できません" -#: admin/views/domain.py:202 +#: views/domain.py:202 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "ドメインを削除しました" -#: admin/views/export.py:47 +#: views/export.py:47 msgid "Export identities" msgstr "ID をエクスポート" -#: admin/views/export.py:75 +#: views/export.py:75 msgid "Export domains" msgstr "ドメインをエクスポート" -#: admin/views/identity.py:111 admin/views/identity.py:205 -#: admin/views/identity.py:210 +#: views/identity.py:111 views/identity.py:205 views/identity.py:210 msgid "Invalid request" msgstr "不正なリクエスト" -#: admin/views/identity.py:195 +#: views/identity.py:195 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "アカウントを削除しました" -#: admin/views/import_.py:70 +#: views/import_.py:70 #, python-format msgid "Object already exists: %s" msgstr "オブジェクトはすでに存在します: %s" -#: admin/views/import_.py:74 +#: views/import_.py:74 #, python-format msgid "%d objects imported successfully" msgstr "%d オブジェクトのインポートに成功しました" -#: admin/views/import_.py:93 +#: views/import_.py:93 msgid "Import domains" msgstr "ドメインをインポート" -#: admin/views/import_.py:115 +#: views/import_.py:115 msgid "Import identities" msgstr "ID をインポート" -#: admin/views/user.py:40 +#: views/user.py:40 msgid "Forward updated" msgstr "転送先が更新されました" +#, 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/nl_NL/LC_MESSAGES/django.po b/modoboa/admin/locale/nl_NL/LC_MESSAGES/django.po index 513bcaf02..8c1ed89ab 100644 --- a/modoboa/admin/locale/nl_NL/LC_MESSAGES/django.po +++ b/modoboa/admin/locale/nl_NL/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-10-05 16:08+0200\n" +"POT-Creation-Date: 2018-10-17 09:25+0200\n" "PO-Revision-Date: 2014-12-31 11:37+0000\n" "Last-Translator: TuxBrotherLet op! Zorg dat het 'line-encoding format' Unix is - anders gaat het " "importeren mis
\n" -#: admin/templates/admin/importform.html:6 +#: templates/admin/importform.html:6 msgid "Help" msgstr "Help" -#: admin/templates/admin/importform.html:13 +#: templates/admin/importform.html:13 msgid "Importing..." msgstr "Importeren..." -#: admin/templates/admin/index.html:6 +#: templates/admin/index.html:6 msgid "Admin" msgstr "" -#: admin/templates/admin/mailboxes_raw.html:3 +#: templates/admin/mailboxes_raw.html:3 msgid "Choose a value" msgstr "Kies een waarde" -#: admin/templates/admin/mailform.html:7 +#: templates/admin/mailform.html:7 msgid "Use domain default value" msgstr "Gebruik de standaard waarde van dit domein" -#: admin/templates/admin/mx_domain_detail.html:11 +#: templates/admin/mx_domain_detail.html:11 #, fuzzy #| msgid "Update" msgid "Updated" msgstr "Toepassen" -#: admin/templates/admin/mx_domain_detail.html:23 +#: 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 +#: templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." msgstr "Geen mx record gevonden voor dit domein" -#: admin/templates/admin/notifications/domain_in_dnsbl.html:3 +#: 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 +#: 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 +#: 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 +#: templates/admin/searchform.html:6 msgid "Search" msgstr "Zoeken" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_m" msgstr "geactiveerd_m" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_f" msgstr "geactiveerd_f" -#: admin/templatetags/admin_tags.py:49 +#: templatetags/admin_tags.py:49 msgid "List domains" msgstr "Weergeef domeinen" -#: admin/templatetags/admin_tags.py:54 admin/templatetags/admin_tags.py:109 +#: templatetags/admin_tags.py:54 templatetags/admin_tags.py:109 msgid "List quotas" msgstr "Weergeef quota's" -#: admin/templatetags/admin_tags.py:66 admin/templatetags/admin_tags.py:114 -#: admin/views/import_.py:94 admin/views/import_.py:116 +#: templatetags/admin_tags.py:66 templatetags/admin_tags.py:114 +#: views/import_.py:94 views/import_.py:116 msgid "Import" msgstr "Importeren" -#: admin/templatetags/admin_tags.py:72 admin/templatetags/admin_tags.py:120 -#: admin/views/export.py:48 admin/views/export.py:76 +#: templatetags/admin_tags.py:72 templatetags/admin_tags.py:120 +#: views/export.py:48 views/export.py:76 msgid "Export" msgstr "Exporteren" -#: admin/templatetags/admin_tags.py:104 +#: templatetags/admin_tags.py:104 msgid "List identities" msgstr "Weergeef identiteiten" -#: admin/templatetags/admin_tags.py:139 +#: templatetags/admin_tags.py:139 msgid "View the domain's identities" msgstr "Weergeef de identiteiten van dit domein" -#: admin/templatetags/admin_tags.py:145 admin/templatetags/admin_tags.py:188 -#: admin/templatetags/admin_tags.py:201 +#: templatetags/admin_tags.py:145 templatetags/admin_tags.py:188 +#: templatetags/admin_tags.py:201 msgid "Edit {}" msgstr "" -#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:192 -#: admin/templatetags/admin_tags.py:206 +#: templatetags/admin_tags.py:155 templatetags/admin_tags.py:192 +#: templatetags/admin_tags.py:206 #, python-format msgid "Delete %s?" msgstr "Verwijder %s?" -#: admin/views/alias.py:33 +#: tests/test_mx.py:144 +#, fuzzy, python-format +#| msgid "No MX record found for this domain." +msgid "No A record found for MX %(domain)s" +msgstr "Geen mx record gevonden voor dit domein" + +#: tests/test_mx.py:147 +#, fuzzy, python-format +#| msgid "No MX record found for this domain." +msgid "No AAAA record found for MX %(domain)s" +msgstr "Geen mx record gevonden voor dit domein" + +#: tests/test_mx.py:150 tests/test_mx.py:153 +#, python-format +msgid "Invalid IP address format for %(domain)s; %(addr)s" +msgstr "" + +#: views/alias.py:33 msgid "Alias with this name already exists" msgstr "Een alias met deze naam bestaat al" -#: admin/views/alias.py:58 +#: views/alias.py:58 msgid "Create" msgstr "Aanmaken" -#: admin/views/alias.py:70 +#: views/alias.py:70 msgid "New alias" msgstr "Nieuwe alias" -#: admin/views/alias.py:71 +#: views/alias.py:71 msgid "Alias created" msgstr "Alias aangemaakt" -#: admin/views/alias.py:83 +#: views/alias.py:83 msgid "Alias modified" msgstr "Alias aangepast" -#: admin/views/alias.py:107 +#: views/alias.py:107 #, fuzzy #| msgid "Alias created" msgid "Alias deleted" @@ -1451,65 +1459,74 @@ msgid_plural "Aliases deleted" msgstr[0] "Alias aangemaakt" msgstr[1] "Alias aangemaakt" -#: admin/views/dns.py:32 +#: views/dns.py:32 msgid "MX records of {}" msgstr "" -#: admin/views/dns.py:55 +#: views/dns.py:55 msgid "DNSBL summary for {}" msgstr "DNSBL samenvatting voor {}" -#: admin/views/domain.py:199 +#: views/domain.py:199 msgid "You can't delete your own domain" msgstr "U kunt uw eigen domein niet verwijderen" -#: admin/views/domain.py:202 +#: views/domain.py:202 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domeinen verwijderd" msgstr[1] "Domeinen verwijderd" -#: admin/views/export.py:47 +#: views/export.py:47 msgid "Export identities" msgstr "Identiteiten exporteren" -#: admin/views/export.py:75 +#: views/export.py:75 msgid "Export domains" msgstr "Exporteer domeinen" -#: admin/views/identity.py:111 admin/views/identity.py:205 -#: admin/views/identity.py:210 +#: views/identity.py:111 views/identity.py:205 views/identity.py:210 msgid "Invalid request" msgstr "Ongeldig verzoek" -#: admin/views/identity.py:195 +#: views/identity.py:195 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Account verwijderd" msgstr[1] "Accounts verwijderd" -#: admin/views/import_.py:70 +#: views/import_.py:70 #, python-format msgid "Object already exists: %s" msgstr "Object bestaat al: %s" -#: admin/views/import_.py:74 +#: views/import_.py:74 #, python-format msgid "%d objects imported successfully" msgstr "%d objecten successvol geimporteerd" -#: admin/views/import_.py:93 +#: views/import_.py:93 msgid "Import domains" msgstr "Importeer domeinen" -#: admin/views/import_.py:115 +#: views/import_.py:115 msgid "Import identities" msgstr "Identiteiten importeren" -#: admin/views/user.py:40 +#: views/user.py:40 msgid "Forward updated" msgstr "Doorstuuradres aangepast" +#, fuzzy +#~| msgid "No MX record found for this domain." +#~ msgid "No DNS records found without MX for %s" +#~ msgstr "Geen mx record gevonden voor dit domein" + +#, fuzzy +#~| msgid "No MX record found for this domain." +#~ msgid "No DNS records found without MX for %(domain)s" +#~ msgstr "Geen mx record gevonden voor dit domein" + #~ msgid "" #~ "Default quota in MB applied to mailboxes. Leave empty to use the default " #~ "value." diff --git a/modoboa/admin/locale/pl_PL/LC_MESSAGES/django.po b/modoboa/admin/locale/pl_PL/LC_MESSAGES/django.po index 3dc9e594a..d4d4ed4c7 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-10-05 16:08+0200\n" +"POT-Creation-Date: 2018-10-17 09:25+0200\n" "PO-Revision-Date: 2017-12-07 08:37+0000\n" "Last-Translator: Antoine NguyenMożesz użyc różnych znaków jako separatora pól.
" -#: admin/templates/admin/import_identities_form.html:6 +#: templates/admin/import_identities_form.html:6 msgid "" "Provide a CSV file where lines respect one of the following formats:Możesz użyć różnych znaków jako separatora pól."
-#: admin/templates/admin/importform.html:6
+#: templates/admin/importform.html:6
msgid "Help"
msgstr "Pomoc"
-#: admin/templates/admin/importform.html:13
+#: templates/admin/importform.html:13
msgid "Importing..."
msgstr "Importowanie..."
-#: admin/templates/admin/index.html:6
+#: templates/admin/index.html:6
msgid "Admin"
msgstr "Admin"
-#: admin/templates/admin/mailboxes_raw.html:3
+#: templates/admin/mailboxes_raw.html:3
msgid "Choose a value"
msgstr "Wybierz wartość"
-#: admin/templates/admin/mailform.html:7
+#: templates/admin/mailform.html:7
msgid "Use domain default value"
msgstr "Użyj domyślnej wartości dla domeny"
-#: admin/templates/admin/mx_domain_detail.html:11
+#: templates/admin/mx_domain_detail.html:11
msgid "Updated"
msgstr "Zaktualizowane"
-#: admin/templates/admin/mx_domain_detail.html:23
+#: templates/admin/mx_domain_detail.html:23
msgid "This IP does not match any of the valid MXs defined in parameters"
msgstr "Ten IP nie pasuje do żadnego poprawnego MX'a określonego w parametrach"
-#: admin/templates/admin/mx_domain_detail.html:36
+#: templates/admin/mx_domain_detail.html:36
msgid "No MX record found for this domain."
msgstr "Nie znaleziono rekordu MX dla tej domeny"
-#: admin/templates/admin/notifications/domain_in_dnsbl.html:3
+#: templates/admin/notifications/domain_in_dnsbl.html:3
#, python-format
msgid ""
"Modoboa detected that domain %(domain)s is listed by the following DNSBL "
@@ -1222,7 +1213,7 @@ msgid ""
msgstr ""
"Modoboa znalazło tą domenę %(domain)s na liście DNSBL poniższych providerów:"
-#: admin/templates/admin/notifications/domain_in_dnsbl.html:11
+#: 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 "
@@ -1232,83 +1223,100 @@ msgstr ""
"pochodzące zostaną zakwalifikowane jako spam. Powinieneś skontaktować się z "
"tymi providerami i poprości o usunięcie wykrytych adresów IP."
-#: admin/templates/admin/notifications/domain_invalid_mx.html:3
+#: templates/admin/notifications/domain_invalid_mx.html:3
#, python-format
msgid "Modoboa detected that domain %(domain)s has no valid MX record:"
msgstr ""
"Modoboa sygnalizuje że ta domena %(domain)s nie posiada poprawnego rekordu "
"MX:"
-#: admin/templates/admin/searchform.html:6
+#: templates/admin/searchform.html:6
msgid "Search"
msgstr "Szukaj"
-#: admin/templatetags/admin_tags.py:23
+#: templatetags/admin_tags.py:23
msgid "enabled_m"
msgstr "enabled_m"
-#: admin/templatetags/admin_tags.py:23
+#: templatetags/admin_tags.py:23
msgid "enabled_f"
msgstr "enabled_f"
-#: admin/templatetags/admin_tags.py:49
+#: templatetags/admin_tags.py:49
msgid "List domains"
msgstr "Lista domen"
-#: admin/templatetags/admin_tags.py:54 admin/templatetags/admin_tags.py:109
+#: templatetags/admin_tags.py:54 templatetags/admin_tags.py:109
msgid "List quotas"
msgstr "Lista limitów"
-#: admin/templatetags/admin_tags.py:66 admin/templatetags/admin_tags.py:114
-#: admin/views/import_.py:94 admin/views/import_.py:116
+#: templatetags/admin_tags.py:66 templatetags/admin_tags.py:114
+#: views/import_.py:94 views/import_.py:116
msgid "Import"
msgstr "Importuj"
-#: admin/templatetags/admin_tags.py:72 admin/templatetags/admin_tags.py:120
-#: admin/views/export.py:48 admin/views/export.py:76
+#: templatetags/admin_tags.py:72 templatetags/admin_tags.py:120
+#: views/export.py:48 views/export.py:76
msgid "Export"
msgstr "Exportuj"
-#: admin/templatetags/admin_tags.py:104
+#: templatetags/admin_tags.py:104
msgid "List identities"
msgstr "Lista tożsamości"
-#: admin/templatetags/admin_tags.py:139
+#: templatetags/admin_tags.py:139
msgid "View the domain's identities"
msgstr "Pokaż tożsamości domeny"
-#: admin/templatetags/admin_tags.py:145 admin/templatetags/admin_tags.py:188
-#: admin/templatetags/admin_tags.py:201
+#: templatetags/admin_tags.py:145 templatetags/admin_tags.py:188
+#: templatetags/admin_tags.py:201
msgid "Edit {}"
msgstr "Edytuj {}"
-#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:192
-#: admin/templatetags/admin_tags.py:206
+#: templatetags/admin_tags.py:155 templatetags/admin_tags.py:192
+#: templatetags/admin_tags.py:206
#, python-format
msgid "Delete %s?"
msgstr "Usunąć %s?"
-#: admin/views/alias.py:33
+#: tests/test_mx.py:144
+#, fuzzy, python-format
+#| 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"
+
+#: tests/test_mx.py:147
+#, fuzzy, python-format
+#| 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"
+
+#: tests/test_mx.py:150 tests/test_mx.py:153
+#, python-format
+msgid "Invalid IP address format for %(domain)s; %(addr)s"
+msgstr ""
+
+#: views/alias.py:33
msgid "Alias with this name already exists"
msgstr "Alias z taką nazwą już istnieje"
-#: admin/views/alias.py:58
+#: views/alias.py:58
msgid "Create"
msgstr "Utwórz"
-#: admin/views/alias.py:70
+#: views/alias.py:70
msgid "New alias"
msgstr "Nowy alias"
-#: admin/views/alias.py:71
+#: views/alias.py:71
msgid "Alias created"
msgstr "Alias utworzony"
-#: admin/views/alias.py:83
+#: views/alias.py:83
msgid "Alias modified"
msgstr "Alias zmodyfikowany"
-#: admin/views/alias.py:107
+#: views/alias.py:107
msgid "Alias deleted"
msgid_plural "Aliases deleted"
msgstr[0] "Alias skasowano"
@@ -1316,19 +1324,19 @@ msgstr[1] "Alias skasowano"
msgstr[2] "Alias skasowano"
msgstr[3] "Aliasy skasowano"
-#: admin/views/dns.py:32
+#: views/dns.py:32
msgid "MX records of {}"
msgstr "Rekordy MX dla {}"
-#: admin/views/dns.py:55
+#: views/dns.py:55
msgid "DNSBL summary for {}"
msgstr "DNSBL podsumowanie dla {}"
-#: admin/views/domain.py:199
+#: views/domain.py:199
msgid "You can't delete your own domain"
msgstr "Nie możesz usunąć swoje własnej domeny"
-#: admin/views/domain.py:202
+#: views/domain.py:202
msgid "Domain deleted"
msgid_plural "Domains deleted"
msgstr[0] "Domena usunięta"
@@ -1336,20 +1344,19 @@ msgstr[1] "Domeny usunięte"
msgstr[2] "Domeny usunięte"
msgstr[3] "Domeny usunięte"
-#: admin/views/export.py:47
+#: views/export.py:47
msgid "Export identities"
msgstr "Eksportuj tożsamości"
-#: admin/views/export.py:75
+#: views/export.py:75
msgid "Export domains"
msgstr "Eksportuj domeny"
-#: admin/views/identity.py:111 admin/views/identity.py:205
-#: admin/views/identity.py:210
+#: views/identity.py:111 views/identity.py:205 views/identity.py:210
msgid "Invalid request"
msgstr "Nieprawidłowe żądanie"
-#: admin/views/identity.py:195
+#: views/identity.py:195
msgid "Account deleted"
msgid_plural "Accounts deleted"
msgstr[0] "Konto usunięte"
@@ -1357,24 +1364,34 @@ msgstr[1] "Konta usunięte"
msgstr[2] "Konta usunięte"
msgstr[3] "Konta usunięte"
-#: admin/views/import_.py:70
+#: views/import_.py:70
#, python-format
msgid "Object already exists: %s"
msgstr "Obiekt %s już istnieje"
-#: admin/views/import_.py:74
+#: views/import_.py:74
#, python-format
msgid "%d objects imported successfully"
msgstr "Zaimportowano %d obiektów z sukcesem"
-#: admin/views/import_.py:93
+#: views/import_.py:93
msgid "Import domains"
msgstr "Importuj domeny"
-#: admin/views/import_.py:115
+#: views/import_.py:115
msgid "Import identities"
msgstr "Importuj tożsamości"
-#: admin/views/user.py:40
+#: views/user.py:40
msgid "Forward updated"
msgstr "Reguła przekazywania zmodyfikowana"
+
+#, 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/pt_BR/LC_MESSAGES/django.po b/modoboa/admin/locale/pt_BR/LC_MESSAGES/django.po
index 4b2131f46..f5645b94e 100644
--- a/modoboa/admin/locale/pt_BR/LC_MESSAGES/django.po
+++ b/modoboa/admin/locale/pt_BR/LC_MESSAGES/django.po
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Modoboa\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-10-05 16:08+0200\n"
+"POT-Creation-Date: 2018-10-17 09:25+0200\n"
"PO-Revision-Date: 2018-09-25 03:25+0000\n"
"Last-Translator: Rafael Barretto "
"
Você pode " "usar um carácter diferente como separador.
" -#: admin/templates/admin/import_identities_form.html:6 +#: templates/admin/import_identities_form.html:6 msgid "" "Provide a CSV file where lines respect one of the following formats:Você pode usar um carácter diferente como separador.
" -#: admin/templates/admin/importform.html:6 +#: templates/admin/importform.html:6 msgid "Help" msgstr "Ajuda" -#: admin/templates/admin/importform.html:13 +#: templates/admin/importform.html:13 msgid "Importing..." msgstr "Importando..." -#: admin/templates/admin/index.html:6 +#: templates/admin/index.html:6 msgid "Admin" msgstr "Admin" -#: admin/templates/admin/mailboxes_raw.html:3 +#: templates/admin/mailboxes_raw.html:3 msgid "Choose a value" msgstr "Escolher um valor" -#: admin/templates/admin/mailform.html:7 +#: templates/admin/mailform.html:7 msgid "Use domain default value" msgstr "Usar valor padrão do domínio" -#: admin/templates/admin/mx_domain_detail.html:11 +#: templates/admin/mx_domain_detail.html:11 msgid "Updated" msgstr "Atualizado" -#: admin/templates/admin/mx_domain_detail.html:23 +#: 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" -#: admin/templates/admin/mx_domain_detail.html:36 +#: templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." msgstr "Nenhum registro MX foi encontrado para este domínio." -#: admin/templates/admin/notifications/domain_in_dnsbl.html:3 +#: templates/admin/notifications/domain_in_dnsbl.html:3 #, python-format msgid "" "Modoboa detected that domain %(domain)s is listed by the following DNSBL " @@ -1220,7 +1211,7 @@ 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 +#: 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 " @@ -1230,142 +1221,163 @@ msgstr "" "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 +#: 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." -#: admin/templates/admin/searchform.html:6 +#: templates/admin/searchform.html:6 msgid "Search" msgstr "Busca" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_m" msgstr "Ativado" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_f" msgstr "Ativada" -#: admin/templatetags/admin_tags.py:49 +#: templatetags/admin_tags.py:49 msgid "List domains" msgstr "Listardomínios" -#: admin/templatetags/admin_tags.py:54 admin/templatetags/admin_tags.py:109 +#: templatetags/admin_tags.py:54 templatetags/admin_tags.py:109 msgid "List quotas" msgstr "Listar quotas" -#: admin/templatetags/admin_tags.py:66 admin/templatetags/admin_tags.py:114 -#: admin/views/import_.py:94 admin/views/import_.py:116 +#: templatetags/admin_tags.py:66 templatetags/admin_tags.py:114 +#: views/import_.py:94 views/import_.py:116 msgid "Import" msgstr "Importar" -#: admin/templatetags/admin_tags.py:72 admin/templatetags/admin_tags.py:120 -#: admin/views/export.py:48 admin/views/export.py:76 +#: templatetags/admin_tags.py:72 templatetags/admin_tags.py:120 +#: views/export.py:48 views/export.py:76 msgid "Export" msgstr "Exportar" -#: admin/templatetags/admin_tags.py:104 +#: templatetags/admin_tags.py:104 msgid "List identities" msgstr "Listar identidades" -#: admin/templatetags/admin_tags.py:139 +#: templatetags/admin_tags.py:139 msgid "View the domain's identities" msgstr "Ver as identidades de domínios" -#: admin/templatetags/admin_tags.py:145 admin/templatetags/admin_tags.py:188 -#: admin/templatetags/admin_tags.py:201 +#: templatetags/admin_tags.py:145 templatetags/admin_tags.py:188 +#: templatetags/admin_tags.py:201 msgid "Edit {}" msgstr "Editar {}" -#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:192 -#: admin/templatetags/admin_tags.py:206 +#: templatetags/admin_tags.py:155 templatetags/admin_tags.py:192 +#: templatetags/admin_tags.py:206 #, python-format msgid "Delete %s?" msgstr "Remover %s?" -#: admin/views/alias.py:33 +#: tests/test_mx.py:144 +#, fuzzy, python-format +#| msgid "No MX record found for this domain." +msgid "No A record found for MX %(domain)s" +msgstr "Nenhum registro MX foi encontrado para este domínio." + +#: tests/test_mx.py:147 +#, fuzzy, python-format +#| 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." + +#: tests/test_mx.py:150 tests/test_mx.py:153 +#, python-format +msgid "Invalid IP address format for %(domain)s; %(addr)s" +msgstr "" + +#: views/alias.py:33 msgid "Alias with this name already exists" msgstr "Um alias para esse nome já existe" -#: admin/views/alias.py:58 +#: views/alias.py:58 msgid "Create" msgstr "Criar" -#: admin/views/alias.py:70 +#: views/alias.py:70 msgid "New alias" msgstr "Novo alias" -#: admin/views/alias.py:71 +#: views/alias.py:71 msgid "Alias created" msgstr "Alias criado" -#: admin/views/alias.py:83 +#: views/alias.py:83 msgid "Alias modified" msgstr "Alias modificado" -#: admin/views/alias.py:107 +#: views/alias.py:107 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Aliases apagados" msgstr[1] "Aliases apagados" -#: admin/views/dns.py:32 +#: views/dns.py:32 msgid "MX records of {}" msgstr "Registro MX para {}" -#: admin/views/dns.py:55 +#: views/dns.py:55 msgid "DNSBL summary for {}" msgstr "Sumário DNSBL para {}" -#: admin/views/domain.py:199 +#: views/domain.py:199 msgid "You can't delete your own domain" msgstr "Você não pode deletar seu próprio domínio" -#: admin/views/domain.py:202 +#: views/domain.py:202 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domínio deletado" msgstr[1] "Domínios deletados" -#: admin/views/export.py:47 +#: views/export.py:47 msgid "Export identities" msgstr "Exportar identidades" -#: admin/views/export.py:75 +#: views/export.py:75 msgid "Export domains" msgstr "Exportar domínios" -#: admin/views/identity.py:111 admin/views/identity.py:205 -#: admin/views/identity.py:210 +#: views/identity.py:111 views/identity.py:205 views/identity.py:210 msgid "Invalid request" msgstr "Solicitação inválida" -#: admin/views/identity.py:195 +#: views/identity.py:195 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Conta deletada" msgstr[1] "Contas deletadas" -#: admin/views/import_.py:70 +#: views/import_.py:70 #, python-format msgid "Object already exists: %s" msgstr "O objeto já existe: %s" -#: admin/views/import_.py:74 +#: views/import_.py:74 #, python-format msgid "%d objects imported successfully" msgstr "%d objetos importados com sucesso" -#: admin/views/import_.py:93 +#: views/import_.py:93 msgid "Import domains" msgstr "Importar domínios" -#: admin/views/import_.py:115 +#: views/import_.py:115 msgid "Import identities" msgstr "Importar identidades" -#: admin/views/user.py:40 +#: views/user.py:40 msgid "Forward updated" msgstr "Encaminhamento atualizado" + +#, 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_PT/LC_MESSAGES/django.po b/modoboa/admin/locale/pt_PT/LC_MESSAGES/django.po index 7d569c10a..a08c3858e 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-10-05 16:08+0200\n" +"POT-Creation-Date: 2018-10-17 09:25+0200\n" "PO-Revision-Date: 2014-12-29 12:51+0000\n" "Last-Translator: Mike C.Puteți utiliza un caracter diferit ca separator." "
" -#: admin/templates/admin/importform.html:6 +#: templates/admin/importform.html:6 msgid "Help" msgstr "Ajutor" -#: admin/templates/admin/importform.html:13 +#: templates/admin/importform.html:13 msgid "Importing..." msgstr "Importare..." -#: admin/templates/admin/index.html:6 +#: templates/admin/index.html:6 msgid "Admin" msgstr "Administrator" -#: admin/templates/admin/mailboxes_raw.html:3 +#: templates/admin/mailboxes_raw.html:3 msgid "Choose a value" msgstr "Alege o valuare" -#: admin/templates/admin/mailform.html:7 +#: templates/admin/mailform.html:7 msgid "Use domain default value" msgstr "Folosește valuarea implicită a domeniului" -#: admin/templates/admin/mx_domain_detail.html:11 +#: templates/admin/mx_domain_detail.html:11 msgid "Updated" msgstr "Actualizat" -#: admin/templates/admin/mx_domain_detail.html:23 +#: 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" -#: admin/templates/admin/mx_domain_detail.html:36 +#: templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." msgstr "Nu există înregistrări MX pentru acest domeniu." -#: admin/templates/admin/notifications/domain_in_dnsbl.html:3 +#: templates/admin/notifications/domain_in_dnsbl.html:3 #, python-format msgid "" "Modoboa detected that domain %(domain)s is listed by the following DNSBL " @@ -1221,7 +1212,7 @@ 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 +#: 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 " @@ -1231,145 +1222,174 @@ msgstr "" "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 +#: 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: " -#: admin/templates/admin/searchform.html:6 +#: templates/admin/searchform.html:6 msgid "Search" msgstr "Caută" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_m" msgstr "activat_m" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_f" msgstr "activat_f" -#: admin/templatetags/admin_tags.py:49 +#: templatetags/admin_tags.py:49 msgid "List domains" msgstr "Listă domenii" -#: admin/templatetags/admin_tags.py:54 admin/templatetags/admin_tags.py:109 +#: templatetags/admin_tags.py:54 templatetags/admin_tags.py:109 msgid "List quotas" msgstr "Listă cote" -#: admin/templatetags/admin_tags.py:66 admin/templatetags/admin_tags.py:114 -#: admin/views/import_.py:94 admin/views/import_.py:116 +#: templatetags/admin_tags.py:66 templatetags/admin_tags.py:114 +#: views/import_.py:94 views/import_.py:116 msgid "Import" msgstr "Import" -#: admin/templatetags/admin_tags.py:72 admin/templatetags/admin_tags.py:120 -#: admin/views/export.py:48 admin/views/export.py:76 +#: templatetags/admin_tags.py:72 templatetags/admin_tags.py:120 +#: views/export.py:48 views/export.py:76 msgid "Export" msgstr "Export" -#: admin/templatetags/admin_tags.py:104 +#: templatetags/admin_tags.py:104 msgid "List identities" msgstr "Listare identități" -#: admin/templatetags/admin_tags.py:139 +#: templatetags/admin_tags.py:139 msgid "View the domain's identities" msgstr "Afișare identități domeniului" -#: admin/templatetags/admin_tags.py:145 admin/templatetags/admin_tags.py:188 -#: admin/templatetags/admin_tags.py:201 +#: templatetags/admin_tags.py:145 templatetags/admin_tags.py:188 +#: templatetags/admin_tags.py:201 msgid "Edit {}" msgstr "Editează {}" -#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:192 -#: admin/templatetags/admin_tags.py:206 +#: templatetags/admin_tags.py:155 templatetags/admin_tags.py:192 +#: templatetags/admin_tags.py:206 #, python-format msgid "Delete %s?" msgstr "Șterge %s?" -#: admin/views/alias.py:33 +#: tests/test_mx.py:144 +#, fuzzy, python-format +#| 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." + +#: tests/test_mx.py:147 +#, fuzzy, python-format +#| 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." + +#: tests/test_mx.py:150 tests/test_mx.py:153 +#, python-format +msgid "Invalid IP address format for %(domain)s; %(addr)s" +msgstr "Format invalid de IP pentru %(domain)s; %(addr)s " + +#: views/alias.py:33 msgid "Alias with this name already exists" msgstr "Un alias cu acelasi nume deja există" -#: admin/views/alias.py:58 +#: views/alias.py:58 msgid "Create" msgstr "Creează" -#: admin/views/alias.py:70 +#: views/alias.py:70 msgid "New alias" msgstr "Alias nou" -#: admin/views/alias.py:71 +#: views/alias.py:71 msgid "Alias created" msgstr "Alias creat" -#: admin/views/alias.py:83 +#: views/alias.py:83 msgid "Alias modified" msgstr "Alias modificat" -#: admin/views/alias.py:107 +#: views/alias.py:107 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Alias șters" msgstr[1] "Aliasuri șterse" msgstr[2] "Aliasuri șterse" -#: admin/views/dns.py:32 +#: views/dns.py:32 msgid "MX records of {}" msgstr "Înregistrări MX ale {}" -#: admin/views/dns.py:55 +#: views/dns.py:55 msgid "DNSBL summary for {}" msgstr "Sumar DNSBL pentru {}" -#: admin/views/domain.py:199 +#: views/domain.py:199 msgid "You can't delete your own domain" msgstr "Nu poți să îți ștergi propriul domeniu" -#: admin/views/domain.py:202 +#: views/domain.py:202 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domeniu șters" msgstr[1] "Domenii șterse" msgstr[2] "Domenii șterse" -#: admin/views/export.py:47 +#: views/export.py:47 msgid "Export identities" msgstr "Exportă identități" -#: admin/views/export.py:75 +#: views/export.py:75 msgid "Export domains" msgstr "Exportă domenii" -#: admin/views/identity.py:111 admin/views/identity.py:205 -#: admin/views/identity.py:210 +#: views/identity.py:111 views/identity.py:205 views/identity.py:210 msgid "Invalid request" msgstr "Cerere invalidă" -#: admin/views/identity.py:195 +#: views/identity.py:195 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Cont șters" msgstr[1] "Conturi șterse" msgstr[2] "Conturi șterse" -#: admin/views/import_.py:70 +#: views/import_.py:70 #, python-format msgid "Object already exists: %s" msgstr "Obiectul deja există: %s" -#: admin/views/import_.py:74 +#: views/import_.py:74 #, python-format msgid "%d objects imported successfully" msgstr "%d obiecte importate cu succes" -#: admin/views/import_.py:93 +#: views/import_.py:93 msgid "Import domains" msgstr "Importă domenii" -#: admin/views/import_.py:115 +#: views/import_.py:115 msgid "Import identities" msgstr "Importă identități" -#: admin/views/user.py:40 +#: views/user.py:40 msgid "Forward updated" msgstr "Redirecționare actualizată" + +#, 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/ru/LC_MESSAGES/django.po b/modoboa/admin/locale/ru/LC_MESSAGES/django.po index 4a5dbdd55..14008500c 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-10-05 16:08+0200\n" +"POT-Creation-Date: 2018-10-17 09:25+0200\n" "PO-Revision-Date: 2013-12-03 09:35+0000\n" "Last-Translator: Antoine NguyenDu " "kan använda ett annat tecken som separator.
" -#: admin/templates/admin/import_identities_form.html:6 +#: templates/admin/import_identities_form.html:6 msgid "" "Provide a CSV file where lines respect one of the following formats:Du kan använda ett annat tecken separator.
" -#: admin/templates/admin/importform.html:6 +#: templates/admin/importform.html:6 msgid "Help" msgstr "Hjälp" -#: admin/templates/admin/importform.html:13 +#: templates/admin/importform.html:13 msgid "Importing..." msgstr "Importerar..." -#: admin/templates/admin/index.html:6 +#: templates/admin/index.html:6 msgid "Admin" msgstr "Administratör" -#: admin/templates/admin/mailboxes_raw.html:3 +#: templates/admin/mailboxes_raw.html:3 msgid "Choose a value" msgstr "Välj ett värde" -#: admin/templates/admin/mailform.html:7 +#: templates/admin/mailform.html:7 msgid "Use domain default value" msgstr "Använd domänens standardvärde" -#: admin/templates/admin/mx_domain_detail.html:11 +#: templates/admin/mx_domain_detail.html:11 msgid "Updated" msgstr "Uppdaterad" -#: admin/templates/admin/mx_domain_detail.html:23 +#: templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" msgstr "Detta IP matchar inget av de giltiga MX records" -#: admin/templates/admin/mx_domain_detail.html:36 +#: templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." msgstr "Inget MX record funnet för denna domän." -#: admin/templates/admin/notifications/domain_in_dnsbl.html:3 +#: templates/admin/notifications/domain_in_dnsbl.html:3 #, python-format msgid "" "Modoboa detected that domain %(domain)s is listed by the following DNSBL " @@ -1202,7 +1193,7 @@ 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 +#: 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 " @@ -1212,141 +1203,170 @@ msgstr "" "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 +#: templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "Modoboa upptäckte att domänen %(domain)s saknar giltiga MX record:" -#: admin/templates/admin/searchform.html:6 +#: templates/admin/searchform.html:6 msgid "Search" msgstr "Sök" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_m" msgstr "enabled_m" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_f" msgstr "enabled_f" -#: admin/templatetags/admin_tags.py:49 +#: templatetags/admin_tags.py:49 msgid "List domains" msgstr "Lista domäner" -#: admin/templatetags/admin_tags.py:54 admin/templatetags/admin_tags.py:109 +#: templatetags/admin_tags.py:54 templatetags/admin_tags.py:109 msgid "List quotas" msgstr "Lista kvoter" -#: admin/templatetags/admin_tags.py:66 admin/templatetags/admin_tags.py:114 -#: admin/views/import_.py:94 admin/views/import_.py:116 +#: templatetags/admin_tags.py:66 templatetags/admin_tags.py:114 +#: views/import_.py:94 views/import_.py:116 msgid "Import" msgstr "Importera" -#: admin/templatetags/admin_tags.py:72 admin/templatetags/admin_tags.py:120 -#: admin/views/export.py:48 admin/views/export.py:76 +#: templatetags/admin_tags.py:72 templatetags/admin_tags.py:120 +#: views/export.py:48 views/export.py:76 msgid "Export" msgstr "Exportera" -#: admin/templatetags/admin_tags.py:104 +#: templatetags/admin_tags.py:104 msgid "List identities" msgstr "Lista konton" -#: admin/templatetags/admin_tags.py:139 +#: templatetags/admin_tags.py:139 msgid "View the domain's identities" msgstr "Visa domänens konton" -#: admin/templatetags/admin_tags.py:145 admin/templatetags/admin_tags.py:188 -#: admin/templatetags/admin_tags.py:201 +#: templatetags/admin_tags.py:145 templatetags/admin_tags.py:188 +#: templatetags/admin_tags.py:201 msgid "Edit {}" msgstr "Redigera {}" -#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:192 -#: admin/templatetags/admin_tags.py:206 +#: templatetags/admin_tags.py:155 templatetags/admin_tags.py:192 +#: templatetags/admin_tags.py:206 #, python-format msgid "Delete %s?" msgstr "Radera %s?" -#: admin/views/alias.py:33 +#: tests/test_mx.py:144 +#, fuzzy, python-format +#| 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." + +#: tests/test_mx.py:147 +#, fuzzy, python-format +#| 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." + +#: tests/test_mx.py:150 tests/test_mx.py:153 +#, python-format +msgid "Invalid IP address format for %(domain)s; %(addr)s" +msgstr "Ogiltigt IP-adress format för %(domain)s; %(addr)s" + +#: views/alias.py:33 msgid "Alias with this name already exists" msgstr "Alias med detta namn existerar redan" -#: admin/views/alias.py:58 +#: views/alias.py:58 msgid "Create" msgstr "Skapa" -#: admin/views/alias.py:70 +#: views/alias.py:70 msgid "New alias" msgstr "Nytt alias" -#: admin/views/alias.py:71 +#: views/alias.py:71 msgid "Alias created" msgstr "Alias skapat" -#: admin/views/alias.py:83 +#: views/alias.py:83 msgid "Alias modified" msgstr "Alias ändrat" -#: admin/views/alias.py:107 +#: views/alias.py:107 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Alias raderat" msgstr[1] "Alias raderade" -#: admin/views/dns.py:32 +#: views/dns.py:32 msgid "MX records of {}" msgstr "MX record för {}" -#: admin/views/dns.py:55 +#: views/dns.py:55 msgid "DNSBL summary for {}" msgstr "DNSBL summering för {}" -#: admin/views/domain.py:199 +#: views/domain.py:199 msgid "You can't delete your own domain" msgstr "Du kan inte radera din egen domän" -#: admin/views/domain.py:202 +#: views/domain.py:202 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domän raderad" msgstr[1] "Domäner raderade" -#: admin/views/export.py:47 +#: views/export.py:47 msgid "Export identities" msgstr "Exportera konton" -#: admin/views/export.py:75 +#: views/export.py:75 msgid "Export domains" msgstr "Exportera domäner" -#: admin/views/identity.py:111 admin/views/identity.py:205 -#: admin/views/identity.py:210 +#: views/identity.py:111 views/identity.py:205 views/identity.py:210 msgid "Invalid request" msgstr "Ogiltig förfrågan" -#: admin/views/identity.py:195 +#: views/identity.py:195 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Konto raderat" msgstr[1] "Konton raderade" -#: admin/views/import_.py:70 +#: views/import_.py:70 #, python-format msgid "Object already exists: %s" msgstr "Objektet existerar redan: %s" -#: admin/views/import_.py:74 +#: views/import_.py:74 #, python-format msgid "%d objects imported successfully" msgstr "%d objekt importerade" -#: admin/views/import_.py:93 +#: views/import_.py:93 msgid "Import domains" msgstr "Importera domäner" -#: admin/views/import_.py:115 +#: views/import_.py:115 msgid "Import identities" msgstr "Importera konton" -#: admin/views/user.py:40 +#: views/user.py:40 msgid "Forward updated" msgstr "Vidarebefordring uppdaterad" + +#, 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/zh_TW/LC_MESSAGES/django.po b/modoboa/admin/locale/zh_TW/LC_MESSAGES/django.po index 06d41c860..ff094cacc 100644 --- a/modoboa/admin/locale/zh_TW/LC_MESSAGES/django.po +++ b/modoboa/admin/locale/zh_TW/LC_MESSAGES/django.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-10-05 16:08+0200\n" +"POT-Creation-Date: 2018-10-17 09:25+0200\n" "PO-Revision-Date: 2018-07-09 04:17+0000\n" "Last-Translator: akong每一行的第一個元件都是強制性的且必須跟之前值是一樣的。
您" "可以使用不同的字元來分開。
" -#: admin/templates/admin/import_identities_form.html:6 +#: templates/admin/import_identities_form.html:6 msgid "" "Provide a CSV file where lines respect one of the following formats:每一行的第一個元件都是強制性的且必" "須跟之前值是一樣的。
您可以使用不同的字元來分開。
" -#: admin/templates/admin/importform.html:6 +#: templates/admin/importform.html:6 msgid "Help" msgstr "幫助" -#: admin/templates/admin/importform.html:13 +#: templates/admin/importform.html:13 msgid "Importing..." msgstr "匯入中..." -#: admin/templates/admin/index.html:6 +#: templates/admin/index.html:6 msgid "Admin" msgstr "管理" -#: admin/templates/admin/mailboxes_raw.html:3 +#: templates/admin/mailboxes_raw.html:3 msgid "Choose a value" msgstr "選擇一個值" -#: admin/templates/admin/mailform.html:7 +#: templates/admin/mailform.html:7 msgid "Use domain default value" msgstr "使用網域預設值" -#: admin/templates/admin/mx_domain_detail.html:11 +#: templates/admin/mx_domain_detail.html:11 msgid "Updated" msgstr "已更新" -#: admin/templates/admin/mx_domain_detail.html:23 +#: templates/admin/mx_domain_detail.html:23 msgid "This IP does not match any of the valid MXs defined in parameters" msgstr "這個 IP 與參數中定義任何有效 MX 不正確" -#: admin/templates/admin/mx_domain_detail.html:36 +#: templates/admin/mx_domain_detail.html:36 msgid "No MX record found for this domain." msgstr "沒有找到這個網域的 MX 紀錄。" -#: admin/templates/admin/notifications/domain_in_dnsbl.html:3 +#: 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 "Modoboa 已偵測到網域 %(domain)s 是列表在以下的 DNSBL 提供者:" -#: admin/templates/admin/notifications/domain_in_dnsbl.html:11 +#: 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 " @@ -1179,138 +1170,167 @@ msgstr "" "此網域的信用將有機會影響從這裡寄出的郵件被當作垃圾郵件。您應該聯絡提供者並要" "求他們取消 IP 位址(es) 的偵測列表。" -#: admin/templates/admin/notifications/domain_invalid_mx.html:3 +#: templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" msgstr "Modoboa 已偵測到網域 %(domain)s 沒有正確的 MX 紀錄:" -#: admin/templates/admin/searchform.html:6 +#: templates/admin/searchform.html:6 msgid "Search" msgstr "搜尋" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_m" msgstr "enabled_m" -#: admin/templatetags/admin_tags.py:23 +#: templatetags/admin_tags.py:23 msgid "enabled_f" msgstr "enabled_f" -#: admin/templatetags/admin_tags.py:49 +#: templatetags/admin_tags.py:49 msgid "List domains" msgstr "網域清單" -#: admin/templatetags/admin_tags.py:54 admin/templatetags/admin_tags.py:109 +#: templatetags/admin_tags.py:54 templatetags/admin_tags.py:109 msgid "List quotas" msgstr "配額清單" -#: admin/templatetags/admin_tags.py:66 admin/templatetags/admin_tags.py:114 -#: admin/views/import_.py:94 admin/views/import_.py:116 +#: templatetags/admin_tags.py:66 templatetags/admin_tags.py:114 +#: views/import_.py:94 views/import_.py:116 msgid "Import" msgstr "匯入" -#: admin/templatetags/admin_tags.py:72 admin/templatetags/admin_tags.py:120 -#: admin/views/export.py:48 admin/views/export.py:76 +#: templatetags/admin_tags.py:72 templatetags/admin_tags.py:120 +#: views/export.py:48 views/export.py:76 msgid "Export" msgstr "匯出" -#: admin/templatetags/admin_tags.py:104 +#: templatetags/admin_tags.py:104 msgid "List identities" msgstr "使用者清單" -#: admin/templatetags/admin_tags.py:139 +#: templatetags/admin_tags.py:139 msgid "View the domain's identities" msgstr "查看網域使用者" -#: admin/templatetags/admin_tags.py:145 admin/templatetags/admin_tags.py:188 -#: admin/templatetags/admin_tags.py:201 +#: templatetags/admin_tags.py:145 templatetags/admin_tags.py:188 +#: templatetags/admin_tags.py:201 msgid "Edit {}" msgstr "編輯 {}" -#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:192 -#: admin/templatetags/admin_tags.py:206 +#: templatetags/admin_tags.py:155 templatetags/admin_tags.py:192 +#: templatetags/admin_tags.py:206 #, python-format msgid "Delete %s?" msgstr "刪除 %s?" -#: admin/views/alias.py:33 +#: tests/test_mx.py:144 +#, fuzzy, python-format +#| msgid "No MX record found for this domain." +msgid "No A record found for MX %(domain)s" +msgstr "沒有找到這個網域的 MX 紀錄。" + +#: tests/test_mx.py:147 +#, fuzzy, python-format +#| msgid "No MX record found for this domain." +msgid "No AAAA record found for MX %(domain)s" +msgstr "沒有找到這個網域的 MX 紀錄。" + +#: tests/test_mx.py:150 tests/test_mx.py:153 +#, python-format +msgid "Invalid IP address format for %(domain)s; %(addr)s" +msgstr "無效的 IP 位址格式 %(domain)s; %(addr)s" + +#: views/alias.py:33 msgid "Alias with this name already exists" msgstr "這個名稱的別名已存在" -#: admin/views/alias.py:58 +#: views/alias.py:58 msgid "Create" msgstr "建立" -#: admin/views/alias.py:70 +#: views/alias.py:70 msgid "New alias" msgstr "新的別名" -#: admin/views/alias.py:71 +#: views/alias.py:71 msgid "Alias created" msgstr "別名已建立" -#: admin/views/alias.py:83 +#: views/alias.py:83 msgid "Alias modified" msgstr "別名已修改" -#: admin/views/alias.py:107 +#: views/alias.py:107 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "別名已刪除" -#: admin/views/dns.py:32 +#: views/dns.py:32 msgid "MX records of {}" msgstr "MX 紀錄 {}" -#: admin/views/dns.py:55 +#: views/dns.py:55 msgid "DNSBL summary for {}" msgstr "DNSBL 摘要 {}" -#: admin/views/domain.py:199 +#: views/domain.py:199 msgid "You can't delete your own domain" msgstr "您不可以刪除您擁有的網域" -#: admin/views/domain.py:202 +#: views/domain.py:202 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "網域移除" -#: admin/views/export.py:47 +#: views/export.py:47 msgid "Export identities" msgstr "匯出使用者" -#: admin/views/export.py:75 +#: views/export.py:75 msgid "Export domains" msgstr "匯出網域" -#: admin/views/identity.py:111 admin/views/identity.py:205 -#: admin/views/identity.py:210 +#: views/identity.py:111 views/identity.py:205 views/identity.py:210 msgid "Invalid request" msgstr "無效請求" -#: admin/views/identity.py:195 +#: views/identity.py:195 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "帳號已刪除" -#: admin/views/import_.py:70 +#: views/import_.py:70 #, python-format msgid "Object already exists: %s" msgstr "元件已存在: %s" -#: admin/views/import_.py:74 +#: views/import_.py:74 #, python-format msgid "%d objects imported successfully" msgstr "%d 元件已匯入成功" -#: admin/views/import_.py:93 +#: views/import_.py:93 msgid "Import domains" msgstr "匯入網域" -#: admin/views/import_.py:115 +#: views/import_.py:115 msgid "Import identities" msgstr "匯入使用者" -#: admin/views/user.py:40 +#: views/user.py:40 msgid "Forward updated" msgstr "轉寄已更新" + +#, 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/models/mailbox.py b/modoboa/admin/models/mailbox.py index 696d63d2f..ef17ba264 100644 --- a/modoboa/admin/models/mailbox.py +++ b/modoboa/admin/models/mailbox.py @@ -19,8 +19,9 @@ 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 @@ -158,8 +159,8 @@ 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( diff --git a/modoboa/admin/tests/test_mx.py b/modoboa/admin/tests/test_mx.py index b7bdc962f..7d39dec24 100644 --- a/modoboa/admin/tests/test_mx.py +++ b/modoboa/admin/tests/test_mx.py @@ -114,7 +114,7 @@ class MXTestCase(ModoTestCase): """Test to get mx list from specific DNS server.""" mock_query.side_effect = utils.mock_dns_query_result mock_getaddrinfo.side_effect = utils.mock_ip_query_result - self.set_global_parameter("use_specific_dns_server", "123.45.67.89") + self.set_global_parameter("custom_dns_server", "123.45.67.89") get_domain_mx_list("does-not-exist.example.com") @mock.patch("ipaddress.ip_address") @@ -139,13 +139,19 @@ class MXTestCase(ModoTestCase): ("modoboa.admin", "ERROR", _("No working name servers found")), ("modoboa.admin", "WARNING", _("DNS resolution timeout, unable to query %s at the moment") - % "timeout.example.com"), + % "timeout.example.com"), ("modoboa.admin", "ERROR", - _("No DNS records found without MX for %(domain)s") + _("No A record found for MX %(domain)s") + % {"domain": "no-lookup.example.com"}), + ("modoboa.admin", "ERROR", + _("No AAAA record found for MX %(domain)s") % {"domain": "no-lookup.example.com"}), ("modoboa.admin", "WARNING", - _("Invalid IP address format for %(domain)s; %(addr)s") - % {"domain": "bad-response.example.com", "addr": "000.0.0.0"}), + _("Invalid IP address format for %(domain)s; %(addr)s") + % {"domain": "bad-response.example.com", "addr": "000.0.0.0"}), + ("modoboa.admin", "WARNING", + _("Invalid IP address format for %(domain)s; %(addr)s") + % {"domain": "bad-response.example.com", "addr": "000.0.0.0"}), ) diff --git a/modoboa/admin/tests/utils.py b/modoboa/admin/tests/utils.py index 3e9161d2b..2c6cee995 100644 --- a/modoboa/admin/tests/utils.py +++ b/modoboa/admin/tests/utils.py @@ -3,7 +3,6 @@ """Test utilities.""" from __future__ import unicode_literals -from dns.rrset import RRset import socket @@ -12,27 +11,16 @@ from dns.rdtypes.ANY.MX import MX from dns.resolver import NXDOMAIN, NoAnswer, NoNameservers, Timeout - -class RRsetResponse(object): - - def __init__(self): - self.answer = [["192.0.2.1"]] - class RRset(object): def __init__(self): - self.response = RRsetResponse() + self.address = "192.0.2.1" -class RRsetResponseInvalid(object): - - def __init__(self): - self.answer = [["000.0.0.0"]] class RRsetInvalid(object): def __init__(self): - self.response = RRsetResponseInvalid() - + self.address = "000.0.0.0" _MX_RECORD_1 = MX("IN", "MX", 10, Name("mx.example.com".split("."))) @@ -42,7 +30,6 @@ _DNE_MX_RECORD = MX("IN", "MX", 10, Name( "does-not-exist.example.com".split("."))) _MX_RECORDS = [_MX_RECORD_1] _IP_SET_RECORDS = [RRset()] - _IPV4_RECORD_1 = (socket.AF_INET, socket.SOCK_STREAM, 6, "", ("192.0.2.1", 25)) _IPV4_RECORD_2 = (socket.AF_INET, socket.SOCK_STREAM, 6, "", ("192.0.2.2", 25)) @@ -79,20 +66,20 @@ _POSSIBLE_IP_RESULTS = { def mock_dns_query_result(qname, *args, **kwargs): if "MX" in args: - if qname in _POSSIBLE_DNS_RESULTS: - return get_mock_dns_query_response(_POSSIBLE_DNS_RESULTS, qname) - return _MX_RECORDS + if qname in _POSSIBLE_DNS_RESULTS: + return get_mock_dns_query_response(_POSSIBLE_DNS_RESULTS, qname) + return _MX_RECORDS elif qname in _POSSIBLE_DNS_RESULTS_NO_MX: return get_mock_dns_query_response(_POSSIBLE_DNS_RESULTS_NO_MX, qname) else: return _IP_SET_RECORDS - + def get_mock_dns_query_response(responses, attributeName): if isinstance(responses[attributeName], Exception): raise responses[attributeName] - else: - return responses[attributeName] + return responses[attributeName] + def mock_ip_address_result(host, *args, **kwargs): if host in _POSSIBLE_IP_RESULTS: @@ -100,9 +87,8 @@ def mock_ip_address_result(host, *args, **kwargs): raise _POSSIBLE_IP_RESULTS[host] else: return _POSSIBLE_IP_RESULTS[host] - return _IP_RECORDS - + def mock_ip_query_result(host, port, *args, **kwargs): if host in _POSSIBLE_IP_RESULTS: @@ -110,5 +96,4 @@ def mock_ip_query_result(host, port, *args, **kwargs): raise _POSSIBLE_IP_RESULTS[host] else: return _POSSIBLE_IP_RESULTS[host] - return _IP_RECORDS diff --git a/modoboa/core/tests/test_views.py b/modoboa/core/tests/test_views.py index ce8fc71d5..fb5e3e840 100644 --- a/modoboa/core/tests/test_views.py +++ b/modoboa/core/tests/test_views.py @@ -69,7 +69,7 @@ SETTINGS_SAMPLE = { "admin-create_alias_on_mbox_rename": False, "admin-dkim_keys_storage_dir": "", "admin-dkim_default_key_length": 1024, - "admin-use_specific_dns_server": "193.43.55.67" + "admin-custom_dns_server": "193.43.55.67" }