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 \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/tonio/" @@ -22,25 +22,25 @@ msgstr "" "Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n " "<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\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 "Domény" -#: admin/app_settings.py:26 +#: app_settings.py:27 msgid "Enable MX checks" msgstr "Povolit MX kontroly" -#: admin/app_settings.py:29 +#: app_settings.py:30 msgid "Check that every domain has a valid MX record" msgstr "Ověřit, zda má každá doména platný MX záznam" -#: admin/app_settings.py:34 +#: app_settings.py:35 msgid "Valid MXs" msgstr "Platné MX záznamy" -#: 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." @@ -48,11 +48,11 @@ msgstr "" "Seznam IP nebo síťových adres, které by každý MX záznam měl obsahovat. Pokud " "toto záznam nerespektuje, bude odesláno varování." -#: admin/app_settings.py:45 +#: app_settings.py:46 msgid "New domains must use authorized MX(s)" msgstr "Nové domény musí používat autorizovaný/é MX záznam(y)" -#: 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." @@ -60,19 +60,27 @@ msgstr "" "Zamezit vytvoření nové domény, pokud její MX záznamy neodpovídají jedné ze " "zadaných adres." -#: admin/app_settings.py:54 +#: app_settings.py:55 msgid "Enable DNSBL checks" msgstr "Povolit DNSBL kontroly" -#: admin/app_settings.py:57 +#: app_settings.py:58 msgid "Check every domain against major DNSBL providers" msgstr "Ověřit každou doménu vůči hlavním DNSBL providerům" -#: 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 "Složka pro uložení DKIM klíčů" -#: 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 " @@ -82,23 +90,23 @@ msgstr "" "se, že vytvořená složka patří uživateli root a není možné z ní číst okolním " "světem." -#: admin/app_settings.py:73 +#: app_settings.py:82 msgid "Default DKIM key length" msgstr "Výchozí délka DKIM klíče" -#: admin/app_settings.py:77 +#: app_settings.py:86 msgid "Default length in bits for newly generated DKIM keys." msgstr "Výchozí délka v bitech pro nově vygenerované DKIM klíče." -#: 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 "Schránky" -#: admin/app_settings.py:84 +#: app_settings.py:93 msgid "Handle mailboxes on filesystem" msgstr "Spravovat schránky v souborovém systému" -#: 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" @@ -106,19 +114,19 @@ msgstr "" "Přejmenovat nebo odstranit schránky v souborovém systému, pokud jsou " "přejmenovány nebo odstraněny v Modoboa" -#: admin/app_settings.py:93 +#: app_settings.py:102 msgid "Mailboxes owner" msgstr "Majitel schránky" -#: admin/app_settings.py:96 +#: app_settings.py:105 msgid "The UNIX account who owns mailboxes on the filesystem" msgstr "Účet UNIXu, který vlastní schránky v souborovém systému" -#: admin/app_settings.py:101 +#: app_settings.py:110 msgid "Default domain quota" msgstr "Výchozí kvóta domény" -#: 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." @@ -126,12 +134,12 @@ msgstr "" "Výchozí kvóta (v MB), které se použije u nově vytvořených domén bez uvedené " "hodnoty kvóty. Hodnota 0 znamená, že se kvóta nepoužívá." -#: 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 msgid "Default mailbox quota" msgstr "Výchozí kvóta schránky" -#: admin/app_settings.py:113 +#: app_settings.py:122 msgid "" "Default mailbox quota (in MB) applied to freshly created domains with no " "value specified. A value of 0 means no quota." @@ -140,68 +148,67 @@ msgstr "" "které nemají specifikovanou vlastní hodnotu. Hodnota 0 znamená neomezenou " "kvótu." -#: admin/app_settings.py:119 +#: app_settings.py:128 msgid "Automatic account removal" msgstr "Automatické odstranění účtu" -#: admin/app_settings.py:122 +#: app_settings.py:131 msgid "When a mailbox is removed, also remove the associated account" msgstr "Když je schránka odstraněná, odstranit také přiřazený účet uživatele" -#: admin/app_settings.py:126 +#: app_settings.py:135 msgid "Automatic domain/mailbox creation" msgstr "Automatické vytvoření domény/schránky" -#: admin/app_settings.py:129 +#: app_settings.py:138 msgid "Create a domain and a mailbox when an account is automatically created." msgstr "Při založení účtu automaticky vytvořit doménu a schránku." -#: admin/app_settings.py:135 +#: app_settings.py:144 msgid "Create an alias when a mailbox is renamed" msgstr "Vytvořit alias, pokud je mailová schránka přejmenována" -#: admin/app_settings.py:138 +#: app_settings.py:147 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" "Vytvořit alias použitím původní adresy, pokud je mailová schránka " "přejmenována." -#: 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 "Musí se jednat o kladné číslo" -#: admin/app_settings.py:205 +#: app_settings.py:214 msgid "Directory not found." msgstr "Složka nenalezena." -#: admin/app_settings.py:211 +#: app_settings.py:220 msgid "openssl not found, please make sure it is installed." msgstr "openssl nenalezeno, prosím ujistěte se, že je nainstalováno." -#: admin/app_settings.py:225 +#: app_settings.py:234 msgid "Define at least one authorized network / address" msgstr "Definujte alespoň jednu autorizovanou síť / adresu" -#: admin/app_settings.py:235 +#: app_settings.py:244 msgid "Administration" msgstr "Správa" -#: 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 "Doména" -#: admin/constants.py:99 +#: constants.py:99 msgid "Relay domain" msgstr "Relay doména" -#: 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 "Uživatelské jméno" -#: 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." @@ -209,23 +216,23 @@ msgstr "" "Název uživatele. U běžných uživatelů musí být uvedena platná e-mailová " "adresa nebo u administrátorů schránka." -#: 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 "Role" -#: admin/forms/account.py:44 +#: forms/account.py:44 msgid "Choose" msgstr "Vybrat" -#: admin/forms/account.py:45 +#: forms/account.py:45 msgid "What level of permission this user will have" msgstr "Jaká úroveň oprávnění bude tomuto uživateli nastavena" -#: admin/forms/account.py:48 admin/forms/domain.py:223 +#: forms/account.py:48 forms/domain.py:224 msgid "Random password" msgstr "Náhodné heslo" -#: 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." @@ -233,54 +240,53 @@ msgstr "" "Vygenerovat náhodné heslo. Pokud upravujete tento účet a zaškrtnete tuto " "položku, bude vygenerováno nové heslo." -#: admin/forms/account.py:56 +#: forms/account.py:56 msgid "Password" msgstr "Heslo" -#: admin/forms/account.py:61 +#: forms/account.py:61 msgid "Confirmation" msgstr "Potvrzení" -#: admin/forms/account.py:64 +#: forms/account.py:64 msgid "Enter the same password as above, for verification." msgstr "Vložte stejné heslo jako v poli výše, pro jeho ověření." -#: admin/forms/account.py:76 +#: forms/account.py:76 msgid "Enabled" msgstr "Povoleno" -#: admin/forms/account.py:171 +#: forms/account.py:171 msgid "Only super administrators are allowed for this mode" msgstr "Pouze super správci jsou oprávnění pro tento režim" -#: 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 msgid "This field is required." msgstr "Toto pole je vyžadováno." -#: admin/forms/account.py:190 +#: forms/account.py:190 msgid "The two password fields didn't match." msgstr "Obě pole s heslem se neshodují." -#: admin/forms/account.py:203 +#: forms/account.py:203 msgid "You can't disable your own account" msgstr "Nemůžete zakázat váš vlastní účet" -#: 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 "Vytvořit alias použitím původní adresy" -#: 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 "Kvóta" -#: 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 " @@ -290,12 +296,12 @@ msgstr "" "hodnotu domény. Ponechejte prázdné pro neomezenou kvótu (není povoleno " "správcům domény)." -#: 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(y)" -#: admin/forms/account.py:246 +#: forms/account.py:246 msgid "" "Alias(es) of this mailbox. Indicate only one address per input, press ENTER " "to add a new input. To create a catchall alias, just enter the domain name " @@ -305,11 +311,11 @@ msgstr "" "ENTER pro vložení dalšího aliasu. Pro vytvoření doménového koše vložte " "'*' (např. *@domena.cz)." -#: admin/forms/account.py:252 +#: forms/account.py:252 msgid "Sender addresses" msgstr "Adresa odesílatele" -#: admin/forms/account.py:255 +#: forms/account.py:255 msgid "" "Additional sender address(es) for this account. The user will be allowed to " "send emails using this address, even if it does not exist locally. Indicate " @@ -319,77 +325,75 @@ msgstr "" "maily pomocí této adresy, a to i v případě, že neexistuje lokálně. V rámci " "vstupu vložte pouze jednu adresu. Stiskněte ENTER pro vložení další adresy." -#: 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 "Doména neexistuje" -#: admin/forms/account.py:342 +#: forms/account.py:342 msgid "Local domain does not exist" msgstr "Lokální doména neexistuje" -#: 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 "Nemáte oprávnění k přístupu k této doméně" -#: admin/forms/account.py:453 +#: forms/account.py:453 msgid "Domain(s)" msgstr "Doména(y)" -#: admin/forms/account.py:455 +#: forms/account.py:455 msgid "Domain(s) that user administrates" msgstr "Doména(y) pod správou uživatele" -#: 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 "Obecné" -#: admin/forms/account.py:505 +#: forms/account.py:505 msgid "Profile" msgstr "Profil" -#: admin/forms/account.py:509 admin/forms/account.py:597 +#: forms/account.py:509 forms/account.py:597 msgid "Mail" msgstr "Mail" -#: admin/forms/account.py:512 +#: forms/account.py:512 msgid "Permissions" msgstr "Oprávnění" -#: admin/forms/account.py:580 +#: forms/account.py:580 msgid "Account updated" msgstr "Účet aktualizován" -#: admin/forms/account.py:605 +#: forms/account.py:605 msgid "New account" msgstr "Nový účet" -#: admin/forms/account.py:615 +#: forms/account.py:615 msgid "Account created" msgstr "Účet vytvořen" -#: admin/forms/alias.py:24 +#: forms/alias.py:24 msgid "Random address" msgstr "Náhodná adresa" -#: admin/forms/alias.py:27 +#: forms/alias.py:27 msgid "Email address" msgstr "Emailová adresa" -#: 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)." msgstr "" "Alias adresy. Pro vytvoření doménového koše vložte '*' (např. *@domena.cz)." -#: 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 "Příjemci" -#: 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." @@ -397,20 +401,19 @@ msgstr "" "Adresy na které bude tento alias ukazovat. Adresy zadávejte jednotlivo, " "stisknutím klávesy ENTER přidáte nový vstup." -#: admin/forms/alias.py:112 admin/forms/alias.py:114 +#: forms/alias.py:112 forms/alias.py:114 msgid "This field is required" msgstr "Toto pole je vyžadováno" -#: admin/forms/alias.py:118 +#: forms/alias.py:118 msgid "No recipient defined" msgstr "Nebyl určen příjemce" -#: 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." @@ -418,716 +421,704 @@ msgstr "" "Alias(y) této domény. Uveďte na řádek pouze jeden alias; pro vložení dalšího " "aliasu stiskněte po vložení ENTER." -#: admin/forms/domain.py:43 +#: forms/domain.py:43 msgid "Key selector" msgstr "Identifikátor klíče" -#: admin/forms/domain.py:81 admin/handlers.py:165 +#: forms/domain.py:82 handlers.py:165 msgid "domain alias" msgstr "doménový 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 "%s s tímto názvem již existuje" -#: 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 "Nebyly nalezeny žádné autorizované MX záznamy pro tuto doménu" -#: admin/forms/domain.py:104 +#: forms/domain.py:105 msgid "DKIM keys storage directory not configured" msgstr "Není nastavena složka pro ukládání DKIM klíčů" -#: admin/forms/domain.py:125 admin/serializers.py:63 +#: forms/domain.py:126 serializers.py:63 msgid "Cannot be greater than domain quota" msgstr "Nemůže být vyšší než kvóta domény" -#: admin/forms/domain.py:130 +#: forms/domain.py:131 msgid "You can't define an unlimited quota." msgstr "Neomezená kvóta nelze definovat." -#: admin/forms/domain.py:151 admin/forms/domain.py:156 +#: forms/domain.py:152 forms/domain.py:157 msgid "domain" msgstr "doména" -#: admin/forms/domain.py:205 +#: forms/domain.py:206 msgid "Create a domain administrator" msgstr "Vytvořit správce domény" -#: admin/forms/domain.py:208 +#: forms/domain.py:209 msgid "Automatically create an administrator for this domain" msgstr "Automaticky vytvořit správce této domény" -#: 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 "Jméno" -#: 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." msgstr "" "Jméno správce. Nevkládejte sem název domény, název bude automaticky doplněn." -#: admin/forms/domain.py:226 +#: forms/domain.py:227 msgid "Generate a random password for the administrator." msgstr "Generovat náhodné heslo pro administrátora." -#: admin/forms/domain.py:232 +#: forms/domain.py:233 msgid "With a mailbox" msgstr "S mailovou schránkou" -#: admin/forms/domain.py:235 +#: forms/domain.py:236 msgid "Create a mailbox for the administrator." msgstr "Vytvořit mailovou schránku pro administrátora." -#: admin/forms/domain.py:241 +#: forms/domain.py:242 msgid "Create aliases" msgstr "Vytvořit aliasy" -#: admin/forms/domain.py:244 +#: forms/domain.py:245 msgid "Automatically create standard aliases for this domain" msgstr "Automaticky vytvořit běžné aliasy pro tuto doménu" -#: admin/forms/domain.py:260 +#: forms/domain.py:261 msgid "Invalid format" msgstr "Neplatný formát" -#: admin/forms/domain.py:289 +#: forms/domain.py:290 #, python-format msgid "User '%s' already exists" msgstr "Uživatel '%s' již existuje" -#: admin/forms/domain.py:400 +#: forms/domain.py:402 msgid "Domain modified" msgstr "Doména upravena" -#: admin/forms/domain.py:421 +#: forms/domain.py:423 msgid "Options" msgstr "Možnosti" -#: admin/forms/domain.py:429 +#: forms/domain.py:431 msgid "New domain" msgstr "Nová doména" -#: admin/forms/domain.py:442 +#: forms/domain.py:444 msgid "Domain created" msgstr "Doména vytvořena" -#: admin/forms/export.py:11 +#: forms/export.py:11 msgid "File name" msgstr "Název souboru" -#: admin/forms/export.py:17 admin/forms/import_.py:17 +#: forms/export.py:17 forms/import_.py:17 msgid "Separator" msgstr "Oddělovač" -#: admin/forms/forward.py:16 +#: forms/forward.py:16 msgid "Recipient(s)" msgstr "Příjemce(i)" -#: admin/forms/forward.py:20 +#: forms/forward.py:20 msgid "Indicate one or more recipients separated by a ','" msgstr "Uveďte jednoho nebo více příjemců oddělených pomocí ','" -#: admin/forms/forward.py:23 +#: forms/forward.py:23 msgid "Keep local copies" msgstr "Ponechat místní kopie" -#: admin/forms/forward.py:26 +#: forms/forward.py:26 msgid "Forward messages and store copies into your local mailbox" msgstr "Přeposílat zprávy a ukládat kopie do místní schránky" -#: admin/forms/import_.py:15 +#: forms/import_.py:15 msgid "Select a file" msgstr "Vybrat soubor" -#: admin/forms/import_.py:23 +#: forms/import_.py:23 msgid "Continue on error" msgstr "Při výskytu chyby pokračovat" -#: admin/forms/import_.py:24 +#: forms/import_.py:24 msgid "Don't treat duplicated objects as error" msgstr "Nepovažovat duplikáty objektů za chybu" -#: admin/forms/import_.py:42 +#: forms/import_.py:42 msgid "Crypt passwords" msgstr "Zašifrovat hesla" -#: admin/forms/import_.py:44 +#: forms/import_.py:44 msgid "Check this option if passwords contained in your file are not crypted" msgstr "Zatrhněte toto pole, pokud hesla ve vašem souboru nejsou zašifrována" -#: admin/handlers.py:214 +#: handlers.py:214 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "Import účtu nebyl úspěšný (%s): doména neexistuje" -#: admin/handlers.py:227 admin/models/mailbox.py:344 +#: handlers.py:227 models/mailbox.py:345 msgid "Mailbox {} already exists" msgstr "Schránka {} již existuje" -#: admin/handlers.py:235 +#: handlers.py:235 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "Import účtu selhal (%s): chybná hodnota kvóty" -#: 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 "Identity" -#: admin/handlers.py:291 admin/templates/admin/forward.html:2 +#: handlers.py:291 templates/admin/forward.html:2 msgid "Forward" msgstr "Přeposlat" -#: admin/lib.py:42 +#: lib.py:41 msgid "A mailbox is required" msgstr "Schránka je vyžadována" -#: admin/lib.py:132 +#: lib.py:131 msgid "You are not allowed to import domains" msgstr "Nemáte oprávnění pro import domén" -#: admin/lib.py:143 +#: lib.py:142 msgid "You are not allowed to import domain aliases." msgstr "Nemáte oprávnění pri import doménových aliasů" -#: 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 "Nenalezeny žádné DNS záznamy pro %s" -#: 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 "Žádný MX záznam pro %s" -#: 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 "Nenalezeny žádné funkční DNS servery" -#: 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 "Vypršel časový limit DNS požadavku, nelze získat %s v tuto chvíli" -#: admin/lib.py:199 admin/tests/test_mx.py:134 -#, python-format -msgid "Unable to lookup ip addresses for %(domain)s; %(error)s" -msgstr "Nelze vyhledat IP adresy pro %(domain)s; %(error)s" +#: lib.py:205 +#, fuzzy, python-brace-format +#| msgid "No DNS records found for %s" +msgid "No {type} record found for MX {mx}" +msgstr "Nenalezeny žádné DNS záznamy pro %s" -#: admin/lib.py:210 admin/tests/test_mx.py:137 -#, python-format -msgid "Invalid IP address format for %(domain)s; %(addr)s" +#: lib.py:214 +#, fuzzy, python-brace-format +#| msgid "Invalid IP address format for %(domain)s; %(addr)s" +msgid "Invalid IP address format for {domain}; {addr}" msgstr "Neplatný formát IP adresy pro %(domain)s; %(addr)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 "[modoboa] DNSBL problém(y) pro doménu {}" -#: admin/management/commands/subcommands/_mx.py:155 +#: management/commands/subcommands/_mx.py:155 msgid "Domain {} has no MX record" msgstr "Doména {} nemá MX záznam" -#: 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 "MX záznam pro doménu {0} je neplatný: {1}" -#: admin/management/commands/subcommands/_mx.py:183 +#: management/commands/subcommands/_mx.py:183 msgid "[modoboa] MX issue(s) for domain {}" msgstr "[modoboa] MX problém(y) pro doménu {}" -#: admin/models/alias.py:36 admin/models/mailbox.py:98 +#: models/alias.py:36 models/mailbox.py:99 msgid "address" msgstr "adresa" -#: admin/models/alias.py:38 +#: models/alias.py:38 msgid "The alias address." msgstr "Adresa aliasu." -#: 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 "povoleno" -#: 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 "Zatrhněte pole pro povolení tohoto aliasu" -#: 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 "Popis" -#: 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 "Vyprší o" -#: 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 "Neplatná adresa" -#: admin/models/alias.py:147 +#: models/alias.py:147 msgid "Local recipient {}@{} not found" msgstr "Lokální příjemce {}@{} nebyl nalezen" -#: admin/models/alias.py:177 +#: models/alias.py:177 #, python-format msgid "Invalid line: %s" msgstr "Neplatný řádek: %s" -#: admin/models/alias.py:183 +#: models/alias.py:183 #, python-format msgid "Domain '%s' does not exist" msgstr "Doména '%s' neexistuje" -#: admin/models/domain.py:31 admin/models/domain_alias.py:38 +#: models/domain.py:31 models/domain_alias.py:38 msgid "name" msgstr "název" -#: admin/models/domain.py:32 +#: models/domain.py:32 msgid "The domain name" msgstr "Doménové jméno" -#: admin/models/domain.py:36 +#: models/domain.py:36 msgid "Quota in MB shared between mailboxes. A value of 0 means no quota." msgstr "Kvóta v MB sdílená mezi schránky. Hodnota 0 = žádná kvóta." -#: admin/models/domain.py:44 +#: models/domain.py:44 msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." msgstr "Výchozí kvóta v MB pro schránky. Hodnota 0 = žádná kvóta." -#: admin/models/domain.py:50 +#: models/domain.py:50 msgid "Check to activate this domain" msgstr "Zatrhněte pole pro povolení této domény" -#: admin/models/domain.py:55 +#: models/domain.py:55 msgid "Enable DNS checks" msgstr "Zapnout kontrolu DNS" -#: admin/models/domain.py:56 +#: models/domain.py:56 msgid "Check to enable DNS checks for this domain" msgstr "Zaškrtněte pro zapnutí kontroly DNS pro tuto doménu" -#: admin/models/domain.py:63 +#: models/domain.py:63 msgid "Enable DKIM signing" msgstr "Povolit DKIM podepisování" -#: 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 "" "Pokud povolíte tuto možnost, bude vygenerován DKIM klíč pro tuto doménu." -#: admin/models/domain.py:71 +#: models/domain.py:71 msgid "Key length" msgstr "Délka klíče" -#: admin/models/domain.py:299 admin/models/domain_alias.py:74 +#: models/domain.py:303 models/domain_alias.py:74 msgid "Invalid line" msgstr "Neplatný řádek" -#: admin/models/domain.py:309 +#: models/domain.py:313 msgid "No authorized MX record found for domain {}" msgstr "Nenalezeny žádný autorizovaný MX záznam pro doménu {}" -#: admin/models/domain.py:316 +#: models/domain.py:320 msgid "Invalid quota value for domain '{}'" msgstr "Neplatná hodnota kvóty pro doménu '{}'" -#: admin/models/domain.py:323 +#: models/domain.py:327 msgid "Invalid default mailbox quota value for domain '{}'" msgstr "Neplatná výchozí hodnota kvóty schránky pro doménu '{}'" -#: admin/models/domain.py:328 +#: models/domain.py:332 msgid "Default mailbox quota cannot be greater than domain quota" msgstr "Výchozí kvóta mailové schránky nemůže být větší než kvóta domény" -#: admin/models/domain_alias.py:39 +#: models/domain_alias.py:39 msgid "The alias name" msgstr "Název aliasu" -#: admin/models/domain_alias.py:41 +#: models/domain_alias.py:41 msgid "target" msgstr "cíl" -#: admin/models/domain_alias.py:42 +#: models/domain_alias.py:42 msgid "The domain this alias points to" msgstr "Doména, na kterou tento alias odkazuje" -#: admin/models/domain_alias.py:83 +#: models/domain_alias.py:83 #, python-format msgid "Unknown domain %s" msgstr "Neznámá doména %s" -#: admin/models/mailbox.py:100 +#: models/mailbox.py:101 msgid "Mailbox address (without the @domain.tld part)" msgstr "Adresa schránky (bez části @doména.tld)" -#: admin/models/mailbox.py:166 +#: models/mailbox.py:167 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Nebylo možné zjistit umístění schránky (%s)" -#: admin/models/mailbox.py:259 +#: models/mailbox.py:260 msgid "A quota is required" msgstr "Kvóta je vyžadována" -#: admin/models/mailbox.py:265 +#: models/mailbox.py:266 msgid "Domain quota exceeded" msgstr "Kvóta domény byla překročena" -#: admin/serializers.py:88 admin/serializers.py:288 admin/serializers.py:386 +#: serializers.py:88 serializers.py:288 serializers.py:386 msgid "Permission denied." msgstr "Přístup zamítnut." -#: admin/serializers.py:134 +#: serializers.py:134 msgid "" "List of administered domains (resellers and domain administrators only)." msgstr "Zobrazit spravované domény (jenom distributori a správci domén)" -#: admin/serializers.py:238 +#: serializers.py:238 msgid "Not allowed for this role." msgstr "Není povoleno pro tuto roli." -#: admin/serializers.py:250 +#: serializers.py:250 msgid "Must be equal to mailbox full_address" msgstr "Musí být rovno hodnote schránky celá_adresa" -#: admin/serializers.py:275 +#: serializers.py:275 msgid "Local domain {} does not exist" msgstr "Lokální doména {} neexistuje" -#: admin/serializers.py:373 +#: serializers.py:373 msgid "A list of recipient" msgstr "Seznam příjemců" -#: admin/serializers.py:384 +#: serializers.py:384 msgid "Domain not found." msgstr "Doména nebyla nalezena." -#: admin/serializers.py:433 +#: serializers.py:433 msgid "You don't have access to this domain." msgstr "K této doméně nemáte přístup." -#: admin/serializers.py:441 +#: serializers.py:441 msgid "You don't have access to this mailbox." msgstr "K této schránce nemáte přístup." -#: 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 "Zavřít" -#: 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 "Veřejný DKIM klíč pro %(domain)s" -#: admin/templates/admin/_domain_dkim_key.html:11 +#: templates/admin/_domain_dkim_key.html:11 msgid "Raw format" msgstr "Raw formát" -#: admin/templates/admin/_domain_dkim_key.html:15 +#: templates/admin/_domain_dkim_key.html:15 msgid "Bind/named format" msgstr "Bind/named formát" -#: admin/templates/admin/_domain_dnschecks_status.html:4 +#: templates/admin/_domain_dnschecks_status.html:4 msgctxt "checks" msgid "Disabled" msgstr "Zákázáno" -#: admin/templates/admin/_domain_dnschecks_status.html:6 +#: templates/admin/_domain_dnschecks_status.html:6 msgid "Awaiting checks" msgstr "Čeká na kontrolu" -#: admin/templates/admin/_global_statistics_widget.html:4 +#: templates/admin/_global_statistics_widget.html:4 msgid "Global statistics" msgstr "Globální statistiky" -#: admin/templates/admin/_global_statistics_widget.html:8 +#: templates/admin/_global_statistics_widget.html:8 msgid "Quantity" msgstr "Počet" -#: 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 "Doménové aliasy" -#: admin/templates/admin/_per_domain_statistics_widget.html:4 +#: templates/admin/_per_domain_statistics_widget.html:4 msgid "Per-domain statistics" msgstr "Statistiky pro jednotlivé domény" -#: 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 msgid "(disabled)" msgstr "(zákázáno)" -#: 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 "Shrnutí" -#: admin/templates/admin/account_detail.html:26 +#: templates/admin/account_detail.html:26 msgid "Full name" msgstr "Celé jméno" -#: 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 msgid "Created" msgstr "Vytvořeno" -#: admin/templates/admin/account_detail.html:35 +#: templates/admin/account_detail.html:35 msgid "Last login" msgstr "Poslední přihlášení" -#: admin/templates/admin/account_detail.html:38 +#: templates/admin/account_detail.html:38 msgid "Secondary email" msgstr "Sekundární email" -#: 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 msgid "Not defined" msgstr "Není definováno" -#: admin/templates/admin/account_detail.html:41 +#: templates/admin/account_detail.html:41 msgid "Phone number" msgstr "Telefonní číslo" -#: admin/templates/admin/account_detail.html:55 +#: templates/admin/account_detail.html:55 msgid "Administered domains" msgstr "Spravované domény" -#: admin/templates/admin/account_detail.html:61 +#: templates/admin/account_detail.html:61 msgid "No domain defined." msgstr "Není vytvořena žádná doména." -#: admin/templates/admin/account_detail.html:75 +#: templates/admin/account_detail.html:75 msgid "Aliases" msgstr "Aliasy" -#: admin/templates/admin/account_detail.html:81 +#: templates/admin/account_detail.html:81 msgid "No alias defined" msgstr "Není vytvořen žádný alias" -#: admin/templates/admin/account_detail.html:87 +#: templates/admin/account_detail.html:87 msgid "Additional sender addresses" msgstr "Další adresa odesílatele" -#: admin/templates/admin/account_detail.html:93 +#: templates/admin/account_detail.html:93 msgid "No sender address defined" msgstr "Není uvedena žádná adresa odesílatele" -#: 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 "Doména je zakázána" -#: admin/templates/admin/alias_detail.html:16 -#: admin/templates/admin/identities.html:33 +#: templates/admin/alias_detail.html:16 templates/admin/identities.html:33 msgid "Alias" msgstr "Alias" -#: admin/templates/admin/alias_detail.html:27 +#: templates/admin/alias_detail.html:27 msgid "Modified" msgstr "Upraveno" -#: admin/templates/admin/dnsbl_domain_detail.html:10 +#: templates/admin/dnsbl_domain_detail.html:10 msgid "Provider" msgstr "Poskytovatel" -#: 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 "Adresa" -#: 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 msgid "Status" msgstr "Stav" -#: admin/templates/admin/dnsbl_domain_detail.html:21 +#: templates/admin/dnsbl_domain_detail.html:21 msgid "listed" msgstr "v seznamu" -#: 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 "Všechno je v pořádku, doména není v seznamu." -#: admin/templates/admin/dnsbl_domain_detail.html:32 +#: templates/admin/dnsbl_domain_detail.html:32 msgid "No information available for this domain." msgstr "Pro tuto doménu nejsou k dispozici žádné informace." -#: admin/templates/admin/domain_detail.html:29 +#: templates/admin/domain_detail.html:29 msgid "Creation date" msgstr "Datum vytvoření" -#: admin/templates/admin/domain_detail.html:33 +#: templates/admin/domain_detail.html:33 msgid "Last modification date" msgstr "Datum poslední změny" -#: admin/templates/admin/domain_detail.html:45 +#: templates/admin/domain_detail.html:45 msgid "Mailbox aliases" msgstr "Aliasy schránek" -#: 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 msgid "Usage" msgstr "Využití" -#: 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 "využito" -#: 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 "alokováno" -#: admin/templates/admin/domain_detail.html:91 +#: templates/admin/domain_detail.html:91 msgid "DNS" msgstr "DNS" -#: admin/templates/admin/domain_detail.html:103 +#: templates/admin/domain_detail.html:103 msgid "DKIM key" msgstr "DKIM klíč" -#: admin/templates/admin/domain_detail.html:107 +#: templates/admin/domain_detail.html:107 msgid "Show key" msgstr "Zobrazit klíč" -#: 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 msgid "Not generated" msgstr "Nevygenerováno" -#: admin/templates/admin/domain_detail.html:118 +#: templates/admin/domain_detail.html:118 msgid "Administrators" msgstr "Správci" -#: 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 "Odstranit toto oprávnění" -#: admin/templates/admin/domain_detail.html:135 +#: templates/admin/domain_detail.html:135 msgid "No domain administrator defined yet." msgstr "Dosud nebyl určen správce domény." -#: 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 "Značky" -#: admin/templates/admin/domain_headers.html:7 +#: templates/admin/domain_headers.html:7 msgid "DNS status" msgstr "DNS stav" -#: 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 "Akce" -#: 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 "Nemůžete vytvořit nového správce domény" -#: admin/templates/admin/domains.html:28 -#: admin/templates/admin/identities.html:29 +#: templates/admin/domains.html:28 templates/admin/identities.html:29 msgid "Add" msgstr "Přidat" -#: 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 "Omezení" -#: admin/templates/admin/domains_quota_headers.html:4 +#: templates/admin/domains_quota_headers.html:4 msgid "Used" msgstr "Použito" -#: admin/templates/admin/domains_quota_headers.html:5 +#: templates/admin/domains_quota_headers.html:5 msgid "Allocated" msgstr "Alokováno" -#: 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 "Využití (%%)" -#: admin/templates/admin/domains_table.html:5 +#: templates/admin/domains_table.html:5 msgid "disabled" msgstr "zákázáno" -#: admin/templates/admin/forward.html:2 +#: templates/admin/forward.html:2 msgid "Automatically forward emails to another address" msgstr "Automaticky přesměrovat emaily na jinou adresu" -#: admin/templates/admin/forward.html:9 admin/views/alias.py:91 +#: templates/admin/forward.html:9 views/alias.py:91 msgid "Update" msgstr "Aktualizovat" -#: admin/templates/admin/identities.html:32 +#: templates/admin/identities.html:32 msgid "Account" msgstr "Účet" -#: admin/templates/admin/identities_quota_headers.html:3 +#: templates/admin/identities_quota_headers.html:3 msgid "Value" msgstr "Hodnota" -#: admin/templates/admin/identity_headers.html:3 +#: templates/admin/identity_headers.html:3 msgid "Fullname/Recipient" msgstr "Celé jméno/Příjemce" -#: admin/templates/admin/import_domains_form.html:6 +#: templates/admin/import_domains_form.html:6 msgid "" "Provide a CSV file where lines respect one of the following formats: