diff --git a/frontend/src/api/account.js b/frontend/src/api/account.js index af181f383..962002c8a 100644 --- a/frontend/src/api/account.js +++ b/frontend/src/api/account.js @@ -44,4 +44,10 @@ export default { deleteAPIToken() { return repository.delete(`${resource}/api_token/`) }, + getARMessage() { + return repository.get(`${resource}/armessage/`) + }, + setARMessage(data) { + return repository.put(`${resource}/armessage/`, data) + }, } diff --git a/frontend/src/components/account/APISetupForm.vue b/frontend/src/components/account/APISetupForm.vue new file mode 100644 index 000000000..0a580ea81 --- /dev/null +++ b/frontend/src/components/account/APISetupForm.vue @@ -0,0 +1,118 @@ + + + diff --git a/frontend/src/components/account/AutoReplyForm.vue b/frontend/src/components/account/AutoReplyForm.vue new file mode 100644 index 000000000..ee0593123 --- /dev/null +++ b/frontend/src/components/account/AutoReplyForm.vue @@ -0,0 +1,98 @@ + + + diff --git a/frontend/src/components/admin/identities/AccountSenderAddresses.vue b/frontend/src/components/admin/identities/AccountSenderAddresses.vue index 0dfbdd8f4..0349aae82 100644 --- a/frontend/src/components/admin/identities/AccountSenderAddresses.vue +++ b/frontend/src/components/admin/identities/AccountSenderAddresses.vue @@ -1,4 +1,3 @@ -Ac + + diff --git a/modoboa/locale/br/LC_MESSAGES/django.po b/modoboa/locale/br/LC_MESSAGES/django.po index 11f27686b..fc4b61b46 100644 --- a/modoboa/locale/br/LC_MESSAGES/django.po +++ b/modoboa/locale/br/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-20 14:11+0200\n" +"POT-Creation-Date: 2024-03-15 11:23+0100\n" "PO-Revision-Date: 2020-05-06 11:16+0000\n" "Last-Translator: Antoine Nguyen \n" "Language-Team: Breton (http://www.transifex.com/tonio/modoboa/language/br/)\n" @@ -19,512 +19,612 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\n" -#: admin/api/v1/serializers.py:35 admin/forms/domain.py:44 -msgid "Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." -msgstr "Kota rannet kenetre ar boestoù-postel. Gellout a ra bezañ ezpleget e Ko, Mo (diouer) pe Go c'hoazh. Un dalvoudegezh \"0\" a dalvez kota ebet." +#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49 +msgid "" +"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. " +"A value of 0 means no quota." +msgstr "" +"Kota rannet kenetre ar boestoù-postel. Gellout a ra bezañ ezpleget e Ko, Mo " +"(diouer) pe Go c'hoazh. Un dalvoudegezh \"0\" a dalvez kota ebet." -#: admin/api/v1/serializers.py:42 +#: admin/api/v1/serializers.py:49 msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." -msgstr "Kota dre-ziouer e Mo arloet d'ar boestoù-postel. Un dalvoudegezh \"0\" a dalvez kota ebet." +msgstr "" +"Kota dre-ziouer e Mo arloet d'ar boestoù-postel. Un dalvoudegezh \"0\" a " +"dalvez kota ebet." -#: admin/api/v1/serializers.py:73 admin/forms/domain.py:108 +#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118 msgid "No authorized MX record found for this domain" msgstr "Enrolladenn MX aotreet ebet kavet evit an domani-mañ" -#: admin/api/v1/serializers.py:91 admin/forms/domain.py:150 +#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160 msgid "Cannot be greater than domain quota" msgstr "N'hall ket bezañ brasoc'h evit kota an domani" -#: admin/api/v1/serializers.py:123 admin/api/v1/serializers.py:318 -#: admin/api/v2/serializers.py:479 admin/models/alias.py:34 +#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:384 +#: admin/api/v2/serializers.py:482 admin/models/alias.py:38 msgid "Permission denied." msgstr "Aotreadur nac'het" -#: admin/api/v1/serializers.py:174 admin/api/v2/serializers.py:74 -#: admin/api/v2/serializers.py:408 admin/forms/alias.py:108 -#: admin/forms/alias.py:110 core/api/v2/serializers.py:224 +#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77 +#: admin/api/v2/serializers.py:414 admin/forms/alias.py:113 +#: admin/forms/alias.py:115 core/api/v2/serializers.py:224 #: core/api/v2/serializers.py:226 core/api/v2/serializers.py:235 -#: core/app_settings.py:608 core/app_settings.py:610 core/app_settings.py:621 +#: core/app_settings.py:582 core/app_settings.py:584 core/app_settings.py:595 #: transport/backends.py:40 msgid "This field is required" msgstr "Rekis eo leuniañ ar vaezienn" -#: admin/api/v1/serializers.py:186 -msgid "List of administered domains (resellers and domain administrators only)." +#: admin/api/v1/serializers.py:235 +msgid "" +"List of administered domains (resellers and domain administrators only)." msgstr "Listenn domanioù meret (eilgwerzherien ha merourien zomani hepken)." -#: admin/api/v1/serializers.py:292 admin/api/v2/serializers.py:458 +#: admin/api/v1/serializers.py:357 admin/api/v2/serializers.py:464 msgid "Not allowed for this role." msgstr "Neket aotreet evit ar rol-mañ." -#: admin/api/v1/serializers.py:310 +#: admin/api/v1/serializers.py:375 msgid "Must be equal to mailbox full_address" msgstr "Rankout a ra bezañ par ouzh boest-postell chomlec'h_klok" -#: admin/api/v1/serializers.py:347 admin/api/v2/serializers.py:503 -#: admin/forms/account.py:178 admin/forms/account.py:180 -#: admin/forms/domain.py:165 admin/forms/domain.py:294 -#: admin/forms/domain.py:297 core/forms.py:94 core/forms.py:97 core/forms.py:99 +#: admin/api/v1/serializers.py:413 admin/api/v2/serializers.py:506 +#: admin/forms/account.py:186 admin/forms/account.py:188 +#: admin/forms/domain.py:174 admin/forms/domain.py:302 +#: admin/forms/domain.py:304 core/forms.py:101 core/forms.py:104 +#: core/forms.py:106 msgid "This field is required." msgstr "Ar vaezienn-mañ a zo rekiset." -#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:520 +#: admin/api/v1/serializers.py:425 admin/api/v2/serializers.py:523 msgid "Local domain {} does not exist" msgstr "N'eus ket eus an domani lec'hel {}" -#: admin/api/v1/serializers.py:445 +#: admin/api/v1/serializers.py:513 msgid "A list of recipient" msgstr "Ul listenn resevourien" -#: admin/api/v1/serializers.py:492 +#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271 +#, fuzzy +#| msgid "User '%s' already exists" +msgid "This alias already exists" +msgstr "An implijer \"%s\" a zo anezhañ endeo" + +#: admin/api/v1/serializers.py:565 msgid "You don't have access to this domain." msgstr "N'ho peus moned ebet d'an domani-mañ." -#: admin/api/v1/serializers.py:500 +#: admin/api/v1/serializers.py:574 msgid "You don't have access to this mailbox." msgstr "N'ho peus moned ebet d'ar voest-posteloù-mañ." -#: admin/api/v1/viewsets.py:174 +#: admin/api/v1/viewsets.py:183 msgid "Here is your new Modoboa password: {}" msgstr "" -#: admin/api/v2/serializers.py:100 admin/forms/domain.py:314 +#: admin/api/v2/serializers.py:103 admin/forms/domain.py:320 #, python-format msgid "User '%s' already exists" msgstr "An implijer \"%s\" a zo anezhañ endeo" -#: admin/api/v2/serializers.py:210 admin/api/v2/serializers.py:218 -#: admin/app_settings.py:237 admin/app_settings.py:245 -#: admin/forms/account.py:351 +#: admin/api/v2/serializers.py:219 admin/api/v2/serializers.py:225 +#: admin/app_settings.py:230 admin/app_settings.py:236 +#: admin/forms/account.py:366 msgid "Must be a positive integer" msgstr "Rankout a ra bezañ un anterin pozitivel" -#: admin/api/v2/serializers.py:227 admin/app_settings.py:255 -#: pdfcredentials/api/v2/serializers.py:50 +#: admin/api/v2/serializers.py:232 admin/app_settings.py:244 +#: pdfcredentials/api/v2/serializers.py:59 msgid "Directory not found." msgstr "Neket bet kavet an domani." -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 #, fuzzy #| msgid "Directory not found." msgid "Directory non-writable" msgstr "Neket bet kavet an domani." -#: admin/api/v2/serializers.py:236 admin/app_settings.py:261 +#: admin/api/v2/serializers.py:238 admin/app_settings.py:248 msgid "openssl not found, please make sure it is installed." msgstr "n'heller ket kavout openssl, bezit asur emañ staliet." -#: admin/api/v2/serializers.py:251 admin/app_settings.py:278 +#: admin/api/v2/serializers.py:252 admin/app_settings.py:263 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:263 +#: admin/api/v2/serializers.py:265 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:275 admin/app_settings.py:293 +#: admin/api/v2/serializers.py:278 admin/app_settings.py:277 msgid "Define at least one authorized network / address" msgstr "Termeniñ da vihanañ ur rouedad / chomlec'h aotreet" -#: admin/api/v2/serializers.py:508 +#: admin/api/v2/serializers.py:511 #, fuzzy #| msgid "A mailbox is required" msgid "A mailbox is required to create aliases." msgstr "Ur voest-posteloù a zo rekiset" -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 #, fuzzy #| msgid "Unknown" msgid "Unknown status" msgstr "Dizanv" -#: admin/api/v2/viewsets.py:75 admin/forms/account.py:365 -#: admin/forms/account.py:373 admin/forms/alias.py:91 +#: admin/api/v2/viewsets.py:84 admin/forms/account.py:379 +#: admin/forms/account.py:386 admin/forms/alias.py:97 msgid "You don't have access to this domain" msgstr "N'ho peus moned ebet d'an domani-mañ" -#: admin/api/v2/viewsets.py:78 admin/views/domain.py:247 +#: admin/api/v2/viewsets.py:87 admin/views/domain.py:248 msgid "You can't delete your own domain" msgstr "N'hallit ket dilemel ho tomani deoc'h-c'hwi hoc'h-unan" -#: admin/api/v2/viewsets.py:384 +#: admin/api/v2/viewsets.py:392 msgid "No alarm ID provided" msgstr "" -#: admin/api/v2/viewsets.py:389 +#: admin/api/v2/viewsets.py:396 msgid "Received invalid alarm id(s)" msgstr "" -#: admin/app_settings.py:23 admin/app_settings.py:300 admin/handlers.py:266 +#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289 #: admin/templates/admin/_global_statistics_widget.html:11 -#: admin/templates/admin/domains.html:5 limits/app_settings.py:37 -#: limits/app_settings.py:170 limits/constants.py:9 +#: admin/templates/admin/domains.html:5 limits/app_settings.py:36 +#: limits/app_settings.py:172 limits/constants.py:13 msgid "Domains" msgstr "Domanioù" -#: admin/app_settings.py:26 admin/app_settings.py:303 +#: admin/app_settings.py:26 admin/app_settings.py:295 msgid "Enable MX checks" msgstr "Enaouiñ ar gwiriañ MX" -#: admin/app_settings.py:29 admin/app_settings.py:305 +#: admin/app_settings.py:28 admin/app_settings.py:297 msgid "Check that every domain has a valid MX record" msgstr "Gwiriañ a ra e vez kement domai un enrolladenn MX reizh" -#: admin/app_settings.py:34 admin/app_settings.py:309 +#: admin/app_settings.py:32 admin/app_settings.py:304 msgid "Valid MXs" msgstr "MXs talvoudus" -#: admin/app_settings.py:37 admin/app_settings.py:312 -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 "Ul listennad chomlec'hioù IP pe rouedad hag a rank bezañ doujet gant kement enrolladenn MX Ur c'hemenn-diwall a vo kaset seul wech ma ne vo ket doujet gant un enrolladenn." +#: admin/app_settings.py:35 admin/app_settings.py:307 +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 "" +"Ul listennad chomlec'hioù IP pe rouedad hag a rank bezañ doujet gant kement " +"enrolladenn MX Ur c'hemenn-diwall a vo kaset seul wech ma ne vo ket doujet " +"gant un enrolladenn." -#: admin/app_settings.py:45 admin/app_settings.py:318 +#: admin/app_settings.py:43 admin/app_settings.py:317 msgid "New domains must use authorized MX(s)" msgstr "An domanioù nevez a rank implijout MX(où) aotreet" -#: admin/app_settings.py:48 admin/app_settings.py:321 -msgid "Prevent the creation of a new domain if its MX record does not use one of the defined addresses." -msgstr "Mirout ouzh krouidigezh un domani ma n'eus ket da vihanañ ur chomlec'h termenet MX evit ec'h enrolladennoù." +#: admin/app_settings.py:46 admin/app_settings.py:321 +msgid "" +"Prevent the creation of a new domain if its MX record does not use one of " +"the defined addresses." +msgstr "" +"Mirout ouzh krouidigezh un domani ma n'eus ket da vihanañ ur chomlec'h " +"termenet MX evit ec'h enrolladennoù." -#: admin/app_settings.py:54 admin/app_settings.py:326 +#: admin/app_settings.py:52 admin/app_settings.py:329 +#, fuzzy +#| msgid "Enable DNS checks" +msgid "Enable IPV6 checks" +msgstr "Enaouiñ ar gwiriañ DNS" + +#: admin/app_settings.py:54 admin/app_settings.py:332 +msgid "Check if MX setup for ipv6 is valid" +msgstr "" + +#: admin/app_settings.py:58 admin/app_settings.py:339 #, fuzzy #| msgid "Enable DNS checks" msgid "Enable SPF checks" msgstr "Enaouiñ ar gwiriañ DNS" -#: admin/app_settings.py:57 admin/app_settings.py:328 +#: admin/app_settings.py:60 admin/app_settings.py:341 #, fuzzy #| msgid "Check that every domain has a valid MX record" msgid "Check if every domain has a valid SPF record" msgstr "Gwiriañ a ra e vez kement domai un enrolladenn MX reizh" -#: admin/app_settings.py:62 admin/app_settings.py:332 +#: admin/app_settings.py:64 admin/app_settings.py:348 #, fuzzy #| msgid "Enable MX checks" msgid "Enable DKIM checks" msgstr "Enaouiñ ar gwiriañ MX" -#: admin/app_settings.py:65 admin/app_settings.py:334 +#: admin/app_settings.py:67 admin/app_settings.py:350 #, fuzzy #| msgid "Check that every domain has a valid MX record" msgid "Check if every domain with DKIM signin enabled has a valid DNS record" msgstr "Gwiriañ a ra e vez kement domai un enrolladenn MX reizh" -#: admin/app_settings.py:71 admin/app_settings.py:339 +#: admin/app_settings.py:72 admin/app_settings.py:358 #, fuzzy #| msgid "Enable MX checks" msgid "Enable DMARC checks" msgstr "Enaouiñ ar gwiriañ MX" -#: admin/app_settings.py:74 admin/app_settings.py:341 +#: admin/app_settings.py:74 admin/app_settings.py:360 #, fuzzy #| msgid "Check that every domain has a valid MX record" msgid "Check if every domain has a valid DMARC record" msgstr "Gwiriañ a ra e vez kement domai un enrolladenn MX reizh" -#: admin/app_settings.py:79 admin/app_settings.py:345 +#: admin/app_settings.py:78 admin/app_settings.py:367 #, fuzzy #| msgid "Enable MX checks" msgid "Enable autoconfig checks" msgstr "Enaouiñ ar gwiriañ MX" -#: admin/app_settings.py:82 admin/app_settings.py:347 +#: admin/app_settings.py:81 admin/app_settings.py:369 #, fuzzy #| msgid "Check that every domain has a valid MX record" msgid "Check if every domain has a valid records for autoconfiguration" msgstr "Gwiriañ a ra e vez kement domai un enrolladenn MX reizh" -#: admin/app_settings.py:87 admin/app_settings.py:352 +#: admin/app_settings.py:86 admin/app_settings.py:377 msgid "Enable DNSBL checks" msgstr "Enaouiñ ar gwiriañ DNSBL" -#: admin/app_settings.py:90 admin/app_settings.py:354 +#: admin/app_settings.py:88 admin/app_settings.py:379 msgid "Check every domain against major DNSBL providers" msgstr "Gwiriañ a ra kement domani ouzh ar bourvezerien DNSBL pennañ" -#: admin/app_settings.py:95 admin/app_settings.py:358 +#: admin/app_settings.py:92 admin/app_settings.py:386 msgid "Custom DNS server" msgstr "Servijer DNS personnel" -#: admin/app_settings.py:99 admin/app_settings.py:360 +#: admin/app_settings.py:96 admin/app_settings.py:388 msgid "Use a custom DNS server instead of local server configuration" msgstr "Implijit ur servijer DNS e-plas ur c'hefluniadur servijer lec'hel" -#: admin/app_settings.py:104 admin/app_settings.py:365 +#: admin/app_settings.py:101 admin/app_settings.py:396 msgid "DKIM keys storage directory" msgstr "Kavlec'h stokiñ an alc'hwezioù DKIM" -#: admin/app_settings.py:107 admin/app_settings.py:367 -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 "Hent absolut ar c'havlec'h a vo stoket an alc'hwezioù DKIM ennañ. Bezit asur e vez perc'hennet ar c'havlec'h-mañ gant an implijer gwrizienn ha n'hall ket bezañ lennet gant an dud diavaez." +#: admin/app_settings.py:104 admin/app_settings.py:398 +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 "" +"Hent absolut ar c'havlec'h a vo stoket an alc'hwezioù DKIM ennañ. Bezit asur" +" e vez perc'hennet ar c'havlec'h-mañ gant an implijer gwrizienn ha n'hall " +"ket bezañ lennet gant an dud diavaez." -#: admin/app_settings.py:115 admin/app_settings.py:373 +#: admin/app_settings.py:112 admin/app_settings.py:407 msgid "Default DKIM key length" msgstr "Ment dre-ziouer un alc'hwez DKIM" -#: admin/app_settings.py:119 admin/app_settings.py:375 +#: admin/app_settings.py:115 admin/app_settings.py:409 msgid "Default length in bits for newly generated DKIM keys." msgstr "Ment dre-ziouer en oktedoù an alc'hwezioù DKIM ganet." -#: admin/app_settings.py:124 admin/app_settings.py:379 +#: admin/app_settings.py:119 admin/app_settings.py:416 msgid "Default domain quota" msgstr "Kota domani dre-ziouer" -#: admin/app_settings.py:127 admin/app_settings.py:381 -msgid "Default quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgstr "Kota dre-ziouer (e Mo) arloet d'an domanioù krouet hep talvoudegezh spisaet. Un dalvoudegezh 0 a dalvez n'eus kota ebet." +#: admin/app_settings.py:122 admin/app_settings.py:418 +msgid "" +"Default quota (in MB) applied to freshly created domains with no value " +"specified. A value of 0 means no quota." +msgstr "" +"Kota dre-ziouer (e Mo) arloet d'an domanioù krouet hep talvoudegezh spisaet." +" Un dalvoudegezh 0 a dalvez n'eus kota ebet." -#: admin/app_settings.py:133 admin/app_settings.py:386 +#: admin/app_settings.py:128 admin/app_settings.py:426 #, fuzzy #| msgid "Default domain quota" msgid "Default domain sending limit" msgstr "Kota domani dre-ziouer" -#: admin/app_settings.py:136 admin/app_settings.py:388 -msgid "Number of messages freshly created domains will be allowed to send per day. Leave empty for no limit." +#: admin/app_settings.py:131 admin/app_settings.py:428 +msgid "" +"Number of messages freshly created domains will be allowed to send per day. " +"Leave empty for no limit." msgstr "" -#: admin/app_settings.py:141 admin/app_settings.py:395 -#: admin/templates/admin/domain_detail.html:41 limits/app_settings.py:58 -#: limits/app_settings.py:119 limits/app_settings.py:187 -#: limits/app_settings.py:238 limits/constants.py:17 limits/constants.py:45 +#: admin/app_settings.py:136 admin/app_settings.py:440 +#: admin/templates/admin/domain_detail.html:41 limits/app_settings.py:55 +#: limits/app_settings.py:111 limits/app_settings.py:195 +#: limits/app_settings.py:269 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "Boest-posteloù" -#: admin/app_settings.py:144 admin/app_settings.py:398 +#: admin/app_settings.py:139 admin/app_settings.py:446 msgid "Handle mailboxes on filesystem" msgstr "Merañ ar voest-posteloù war restr-sistem" -#: admin/app_settings.py:147 admin/app_settings.py:400 -msgid "Rename or remove mailboxes on the filesystem when they get renamed or removed within Modoboa" -msgstr "Adenvel pe zilemel boest-posteloù war ar restr-sistem pa vezont adanvet pe dilamet diwar Modoboa" +#: admin/app_settings.py:142 admin/app_settings.py:448 +msgid "" +"Rename or remove mailboxes on the filesystem when they get renamed or " +"removed within Modoboa" +msgstr "" +"Adenvel pe zilemel boest-posteloù war ar restr-sistem pa vezont adanvet pe " +"dilamet diwar Modoboa" -#: admin/app_settings.py:153 admin/app_settings.py:405 admin/forms/domain.py:49 -#: admin/models/domain.py:32 admin/templates/admin/domain_detail.html:64 +#: admin/app_settings.py:148 admin/app_settings.py:456 +#: admin/forms/domain.py:54 admin/models/domain.py:36 +#: admin/templates/admin/domain_detail.html:64 msgid "Default mailbox quota" msgstr "Kota boest-posteloù dre-ziouer" -#: admin/app_settings.py:156 +#: admin/app_settings.py:151 #, fuzzy -#| msgid "Default mailbox quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgid "Default mailbox quota (in MB) applied to freshly created mailboxes with no value specified. A value of 0 means no quota." -msgstr "Kota dre-ziouer (e Mo) arloet d'ar voest-posteloù krouet hep talvoudegezh spisaet. Un dalvoudegezh 0 a dalvez n'eus kota ebet." +#| msgid "" +#| "Default mailbox quota (in MB) applied to freshly created domains with no " +#| "value specified. A value of 0 means no quota." +msgid "" +"Default mailbox quota (in MB) applied to freshly created mailboxes with no " +"value specified. A value of 0 means no quota." +msgstr "" +"Kota dre-ziouer (e Mo) arloet d'ar voest-posteloù krouet hep talvoudegezh " +"spisaet. Un dalvoudegezh 0 a dalvez n'eus kota ebet." -#: admin/app_settings.py:162 admin/app_settings.py:413 +#: admin/app_settings.py:157 admin/app_settings.py:467 #, fuzzy #| msgid "Default mailbox quota" msgid "Default mailbox sending limit" msgstr "Kota boest-posteloù dre-ziouer" -#: admin/app_settings.py:165 admin/app_settings.py:415 -msgid "Number of messages freshly created mailboxes will be allowed to send per day. Leave empty for no limit." +#: admin/app_settings.py:160 admin/app_settings.py:469 +msgid "" +"Number of messages freshly created mailboxes will be allowed to send per " +"day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:171 admin/app_settings.py:420 +#: admin/app_settings.py:166 admin/app_settings.py:477 msgid "Automatic account removal" msgstr "Em-dilamadur kont" -#: admin/app_settings.py:174 admin/app_settings.py:422 +#: admin/app_settings.py:169 admin/app_settings.py:479 msgid "When a mailbox is removed, also remove the associated account" msgstr "Pa vez dilamet ur voest-posteloù, dilamit ur gont kevelet." -#: admin/app_settings.py:178 admin/app_settings.py:426 +#: admin/app_settings.py:174 admin/app_settings.py:488 msgid "Automatic domain/mailbox creation" msgstr "Em-grouidigezh domani/boest-postel" -#: admin/app_settings.py:181 admin/app_settings.py:428 -msgid "Create a domain and a mailbox when an account is automatically created." +#: admin/app_settings.py:177 admin/app_settings.py:491 +msgid "" +"Create a domain and a mailbox when an account is automatically created." msgstr "Krouit un domani hag ur voest-posteloù pa vez em-grouet ur gont." -#: admin/app_settings.py:187 admin/app_settings.py:434 +#: admin/app_settings.py:182 admin/app_settings.py:500 msgid "Create an alias when a mailbox is renamed" msgstr "Krouiñ un alias pa vez adanvet ur voest-posteloù" -#: admin/app_settings.py:190 admin/app_settings.py:436 +#: admin/app_settings.py:185 admin/app_settings.py:503 msgid "Create an alias using the old address when a mailbox is renamed." -msgstr "Krouiñ un alias en ur implijout ar chomlec'h pa vez adanvet ar voest-posteloù." +msgstr "" +"Krouiñ un alias en ur implijout ar chomlec'h pa vez adanvet ar voest-" +"posteloù." -#: admin/app_settings.py:407 +#: admin/app_settings.py:458 #, fuzzy -#| msgid "Default mailbox quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgid "Default mailbox quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgstr "Kota dre-ziouer (e Mo) arloet d'ar voest-posteloù krouet hep talvoudegezh spisaet. Un dalvoudegezh 0 a dalvez n'eus kota ebet." +#| msgid "" +#| "Default mailbox quota (in MB) applied to freshly created domains with no " +#| "value specified. A value of 0 means no quota." +msgid "" +"Default mailbox quota (in MB) applied to freshly created domains with no " +"value specified. A value of 0 means no quota." +msgstr "" +"Kota dre-ziouer (e Mo) arloet d'ar voest-posteloù krouet hep talvoudegezh " +"spisaet. Un dalvoudegezh 0 a dalvez n'eus kota ebet." -#: admin/app_settings.py:451 admin/app_settings.py:453 +#: admin/app_settings.py:522 admin/app_settings.py:527 msgid "Administration" msgstr "Melestradurezh" -#: admin/constants.py:28 admin/forms/alias.py:43 +#: admin/constants.py:23 admin/forms/alias.py:43 #: admin/templates/admin/_per_domain_statistics_widget.html:7 #: admin/templates/admin/domains_quota_headers.html:2 msgid "Domain" msgstr "Domani" -#: admin/constants.py:29 +#: admin/constants.py:24 msgid "Relay domain" msgstr "Domani a-eil" -#: admin/constants.py:44 +#: admin/constants.py:39 msgid "Opened" msgstr "" -#: admin/constants.py:45 +#: admin/constants.py:40 #, fuzzy #| msgid "Close" msgid "Closed" msgstr "Serriñ" -#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:159 -#: core/forms.py:23 pdfcredentials/documents.py:80 +#: admin/forms/account.py:29 admin/templates/admin/domain_detail.html:159 +#: core/forms.py:21 pdfcredentials/documents.py:98 msgid "Username" msgstr "Anv implier" -#: admin/forms/account.py:34 -msgid "The user's name. Must be a valid e-mail address for simple users or administrators with a mailbox." -msgstr "An anv implijer. Rankout a ra bezañ ur voest-posteloù reizh evit an implijer eeun pe ar verourien gant ur voest-posteloù." +#: admin/forms/account.py:31 +msgid "" +"The user's name. Must be a valid e-mail address for simple users or " +"administrators with a mailbox." +msgstr "" +"An anv implijer. Rankout a ra bezañ ur voest-posteloù reizh evit an implijer" +" eeun pe ar verourien gant ur voest-posteloù." -#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29 +#: admin/forms/account.py:36 admin/templates/admin/account_detail.html:29 #: core/templates/core/information.html:37 msgid "Role" msgstr "Rol" -#: admin/forms/account.py:40 +#: admin/forms/account.py:37 msgid "Choose" msgstr "Dibab" -#: admin/forms/account.py:41 +#: admin/forms/account.py:38 msgid "What level of permission this user will have" msgstr "Peseurt live-aotre a vo gant an implijer-mañ" -#: admin/forms/account.py:44 admin/forms/domain.py:248 +#: admin/forms/account.py:41 admin/forms/domain.py:262 msgid "Random password" msgstr "Ger-tremen dre-zegouezh" -#: admin/forms/account.py:46 -msgid "Generate a random password. If you're updating this account and check this box, a new password will be generated." -msgstr "Genel ur ger-tremen dre-zegouezh. M'emaoc'h oc'h hizivaat ar gont-mañ hag e kochit ar c'hombodig-mañ, ur ger-tremen nevez a vo ganet." +#: admin/forms/account.py:43 +msgid "" +"Generate a random password. If you're updating this account and check this " +"box, a new password will be generated." +msgstr "" +"Genel ur ger-tremen dre-zegouezh. M'emaoc'h oc'h hizivaat ar gont-mañ hag e " +"kochit ar c'hombodig-mañ, ur ger-tremen nevez a vo ganet." -#: admin/forms/account.py:52 core/forms.py:27 pdfcredentials/documents.py:81 +#: admin/forms/account.py:49 core/forms.py:25 pdfcredentials/documents.py:99 msgid "Password" msgstr "Ger-tremen" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "Kadarnaat" -#: admin/forms/account.py:60 +#: admin/forms/account.py:57 msgid "Enter the same password as above, for verification." msgstr "Ebarzhit ar memes ger-tremen hag a-us, da wiriañ." -#: admin/forms/account.py:72 +#: admin/forms/account.py:71 msgid "Enabled" msgstr "Enaouet" -#: admin/forms/account.py:167 +#: admin/forms/account.py:175 msgid "Only super administrators are allowed for this mode" msgstr "N'eus nemet an dreist-merourien hag a vez aotreet evit ar mod-se" -#: admin/forms/account.py:186 +#: admin/forms/account.py:193 msgid "The two password fields didn't match." msgstr "An div vaezienn ger-tremen na glotont ket an eil gant eben." -#: admin/forms/account.py:199 +#: admin/forms/account.py:206 msgid "You can't disable your own account" msgstr "N'hallit ket dilemel ho kont deoc'h-c'hwi hoc'h-unan" -#: admin/forms/account.py:226 +#: admin/forms/account.py:234 msgid "E-mail" msgstr "Postel" -#: admin/forms/account.py:228 +#: admin/forms/account.py:236 msgid "Create an alias using the old address" msgstr "Krouiñ un alias en ur implijout ur chomlec'h kozh" -#: admin/forms/account.py:233 admin/forms/domain.py:41 +#: admin/forms/account.py:241 admin/forms/domain.py:46 #: admin/templates/admin/account_detail.html:45 -#: admin/templates/admin/domain_detail.html:49 limits/app_settings.py:78 -#: limits/app_settings.py:204 limits/constants.py:30 +#: admin/templates/admin/domain_detail.html:49 limits/app_settings.py:73 +#: limits/app_settings.py:218 limits/constants.py:59 msgid "Quota" msgstr "Kota" -#: admin/forms/account.py:236 -msgid "Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a custom value or use domain's default one. Leave empty to define an unlimited value (not allowed for domain administrators)." -msgstr "Kota evit ar voest-posteloù-mañ. Gellout a ra bezañ ezpleget e Ko, Mo (diouer) pe Go c'hoazh. Termeniñ un dalvoudegezh ispisial pe implijit talvoudegezh an domani. Laoskit goullo evit termeniñ un dalvoudegezh divevenn (berzet evit ar verourien zomani)." +#: admin/forms/account.py:244 +msgid "" +"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a" +" custom value or use domain's default one. Leave empty to define an " +"unlimited value (not allowed for domain administrators)." +msgstr "" +"Kota evit ar voest-posteloù-mañ. Gellout a ra bezañ ezpleget e Ko, Mo " +"(diouer) pe Go c'hoazh. Termeniñ un dalvoudegezh ispisial pe implijit " +"talvoudegezh an domani. Laoskit goullo evit termeniñ un dalvoudegezh " +"divevenn (berzet evit ar verourien zomani)." -#: admin/forms/account.py:246 admin/models/domain.py:36 -#: admin/models/mailbox.py:99 admin/templates/admin/account_detail.html:50 +#: admin/forms/account.py:254 admin/models/domain.py:39 +#: admin/models/mailbox.py:92 admin/templates/admin/account_detail.html:50 #: admin/templates/admin/domain_detail.html:69 msgid "Message sending limit" msgstr "" -#: admin/forms/account.py:250 admin/models/mailbox.py:101 +#: admin/forms/account.py:257 admin/models/mailbox.py:95 msgid "Number of messages this mailbox can send per day" msgstr "" -#: admin/forms/account.py:253 admin/forms/domain.py:31 +#: admin/forms/account.py:262 +msgid "Block IMAP connection and incoming mails for this mailbox" +msgstr "" + +#: admin/forms/account.py:266 admin/forms/domain.py:35 #: admin/templates/admin/domain_headers.html:4 msgid "Alias(es)" msgstr "Alias(où)" -#: admin/forms/account.py:256 -msgid "Alias(es) of this mailbox. Indicate only one address per input, press ENTER to add a new input. To create a catchall alias, just enter the domain name (@domain.tld)." -msgstr "Alias(où) ar voest-postel-mañ. Spisait ur chomlec'h dre enmont, pouezit war KAS evit ouzhpennañ un enmont nevez. Evit krouiñ un alias 'lak-pep-tra', ebarzhit anv an domani hepken (@domain.tld)." +#: admin/forms/account.py:269 +msgid "" +"Alias(es) of this mailbox. Indicate only one address per input, press ENTER " +"to add a new input. To create a catchall alias, just enter the domain name " +"(@domain.tld)." +msgstr "" +"Alias(où) ar voest-postel-mañ. Spisait ur chomlec'h dre enmont, pouezit war " +"KAS evit ouzhpennañ un enmont nevez. Evit krouiñ un alias 'lak-pep-tra', " +"ebarzhit anv an domani hepken (@domain.tld)." -#: admin/forms/account.py:262 +#: admin/forms/account.py:275 msgid "Sender addresses" msgstr "Chomlec'hioù ar c'haser" -#: admin/forms/account.py:265 -msgid "Additional sender address(es) for this account. The user will be allowed to send emails using this address, even if it does not exist locally. Indicate one address per input. Press ENTER to add a new input." -msgstr "Chomlec'h(ioù) kaser ouzhpenn evit ar gont-mañ. An implijer a vo aotreet da gas posteloù en ur ober gant ar chomlec'hioù-se, ha pa 'z eus anezhañ en un doare lec'hel. Spisait ur chomlec'h dre enmont. Pouezit war KAS evit un enmont nevez." +#: admin/forms/account.py:278 +msgid "" +"Additional sender address(es) for this account. The user will be allowed to " +"send emails using this address, even if it does not exist locally. Indicate " +"one address per input. Press ENTER to add a new input." +msgstr "" +"Chomlec'h(ioù) kaser ouzhpenn evit ar gont-mañ. An implijer a vo aotreet da " +"gas posteloù en ur ober gant ar chomlec'hioù-se, ha pa 'z eus anezhañ en un " +"doare lec'hel. Spisait ur chomlec'h dre enmont. Pouezit war KAS evit un " +"enmont nevez." -#: admin/forms/account.py:325 admin/forms/alias.py:88 -#: admin/models/mailbox.py:313 +#: admin/forms/account.py:339 admin/forms/alias.py:95 +#: admin/models/mailbox.py:308 msgid "Domain does not exist" msgstr "N'eus ket eus an Domani" -#: admin/forms/account.py:361 +#: admin/forms/account.py:376 msgid "Local domain does not exist" msgstr "N'eus ket eus an domani lec'hel" -#: admin/forms/account.py:476 +#: admin/forms/account.py:503 msgid "Domain(s)" msgstr "Domani(où)" -#: admin/forms/account.py:478 +#: admin/forms/account.py:505 msgid "Domain(s) that user administrates" msgstr "Domani(où) meret gant an implijer" -#: admin/forms/account.py:525 admin/forms/account.py:615 -#: admin/forms/domain.py:365 admin/forms/domain.py:436 core/apps.py:19 -#: core/apps.py:21 imap_migration/app_settings.py:14 -#: imap_migration/app_settings.py:64 maillog/forms.py:20 -#: pdfcredentials/app_settings.py:20 pdfcredentials/app_settings.py:123 +#: admin/forms/account.py:552 admin/forms/account.py:652 +#: admin/forms/domain.py:373 admin/forms/domain.py:445 core/apps.py:19 +#: core/apps.py:24 imap_migration/app_settings.py:17 +#: imap_migration/app_settings.py:99 maillog/apps.py:14 maillog/forms.py:20 +#: pdfcredentials/app_settings.py:23 pdfcredentials/app_settings.py:195 +#: postfix_autoreply/forms.py:118 msgid "General" msgstr "Hollek" -#: admin/forms/account.py:529 core/templates/core/user_profile.html:3 -#: core/templatetags/core_tags.py:116 +#: admin/forms/account.py:560 core/templates/core/user_profile.html:3 +#: core/templatetags/core_tags.py:133 msgid "Profile" msgstr "Profil" -#: admin/forms/account.py:533 admin/forms/account.py:621 +#: admin/forms/account.py:566 admin/forms/account.py:659 msgid "Mail" msgstr "Postel" -#: admin/forms/account.py:536 +#: admin/forms/account.py:573 msgid "Permissions" msgstr "Aotreadurioù" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 msgid "Account updated" msgstr "Kont hizivaet" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 msgid "New account" msgstr "Kont nevez" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 msgid "Account created" msgstr "Kont krouet" @@ -537,69 +637,85 @@ msgid "Email address" msgstr "Chomlec'h postel" #: admin/forms/alias.py:25 -msgid "The alias address. To create a catchall alias, just enter the domain name (@domain.tld)." -msgstr "Chomlec'h an alias. Evit krouiñ un alias catchall, ebarzhit hepken an anv domani (@domani.tld)" +msgid "" +"The alias address. To create a catchall alias, just enter the domain name " +"(@domain.tld)." +msgstr "" +"Chomlec'h an alias. Evit krouiñ un alias catchall, ebarzhit hepken an anv " +"domani (@domani.tld)" #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "Reseverien" -#: admin/forms/alias.py:33 -msgid "Addresses this alias will point to. Indicate only one address per input, press ENTER to add a new input." -msgstr "Chomlec'hioù az aio an alias-mañ betek ar poent ennañ. Spisait ur chomlec'h dre enmont, pouezit war KAS evit ouzhpennañ un enmont nevez." +#: admin/forms/alias.py:34 +msgid "" +"Addresses this alias will point to. Indicate only one address per input, " +"press ENTER to add a new input." +msgstr "" +"Chomlec'hioù az aio an alias-mañ betek ar poent ennañ. Spisait ur chomlec'h " +"dre enmont, pouezit war KAS evit ouzhpennañ un enmont nevez." -#: admin/forms/alias.py:114 +#: admin/forms/alias.py:119 msgid "No recipient defined" msgstr "Resever ebet termenet" -#: admin/forms/domain.py:28 +#: admin/forms/domain.py:32 #: admin/templates/admin/_global_statistics_widget.html:7 msgid "Type" msgstr "Doare" -#: admin/forms/domain.py:34 -msgid "Alias(es) of this domain. Indicate only one name per input, press ENTER to add a new input." -msgstr "Alias​​(où) an domani-mañ. Spisait un anv dre enmont hepken, pouezit war KAS evit ouzhpennañ un emnont nevez." +#: admin/forms/domain.py:38 +msgid "" +"Alias(es) of this domain. Indicate only one name per input, press ENTER to " +"add a new input." +msgstr "" +"Alias​​(où) an domani-mañ. Spisait un anv dre enmont hepken, pouezit war KAS" +" evit ouzhpennañ un emnont nevez." -#: admin/forms/domain.py:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "Diuzer alc'hwez" -#: admin/forms/domain.py:52 -msgid "Default quota applied to mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." -msgstr "Kota arloet d'ar boestoù-postel. Gellout a ra bezañ ezpleget e Ko, Mo (diouer) pe Go c'hoazh. Un dalvoudegezh \"0\" a dalvez kota ebet." +#: admin/forms/domain.py:57 +msgid "" +"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or " +"GB. A value of 0 means no quota." +msgstr "" +"Kota arloet d'ar boestoù-postel. Gellout a ra bezañ ezpleget e Ko, Mo " +"(diouer) pe Go c'hoazh. Un dalvoudegezh \"0\" a dalvez kota ebet." -#: admin/forms/domain.py:97 admin/handlers.py:166 +#: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" msgstr "alias an domani" -#: admin/forms/domain.py:100 admin/forms/domain.py:176 -#: admin/forms/domain.py:184 +#: admin/forms/domain.py:109 admin/forms/domain.py:185 +#: admin/forms/domain.py:192 #, python-format msgid "A %s with this name already exists" msgstr "Bez ez eus \"%s\" gant ar memes anv" -#: admin/forms/domain.py:120 +#: admin/forms/domain.py:130 msgid "DKIM keys storage directory not configured" msgstr "Kavlec'h stokiñ an alc'hwezioù DKIM chomet digefluniet" -#: admin/forms/domain.py:155 +#: admin/forms/domain.py:166 msgid "You can't define an unlimited quota." msgstr "N'hallit ket termeniñ ur c'hota divevenn" -#: admin/forms/domain.py:176 admin/forms/domain.py:181 +#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107 msgid "domain" msgstr "domani" -#: admin/forms/domain.py:230 +#: admin/forms/domain.py:246 msgid "Create a domain administrator" msgstr "Krouit ur merour domani" -#: admin/forms/domain.py:233 +#: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" msgstr "Em-grouit ur merour evit an domani-mañ" -#: admin/forms/domain.py:238 admin/templates/admin/domain_detail.html:159 +#: admin/forms/domain.py:252 admin/templates/admin/domain_detail.html:159 #: admin/templates/admin/domain_headers.html:3 #: admin/templates/admin/identity_headers.html:2 #: admin/templates/admin/mx_domain_detail.html:9 @@ -608,51 +724,53 @@ msgstr "Em-grouit ur merour evit an domani-mañ" msgid "Name" msgstr "Anv" -#: admin/forms/domain.py:241 -msgid "The administrator's name. Don't include the domain's name here, it will be automatically appended." +#: admin/forms/domain.py:255 +msgid "" +"The administrator's name. Don't include the domain's name here, it will be " +"automatically appended." msgstr "An anv merour. Na eberzhit ket anv domani amañ, em-ouzhpennet e vo." -#: admin/forms/domain.py:251 +#: admin/forms/domain.py:264 msgid "Generate a random password for the administrator." msgstr "Genel ur ger-tremen dre-zegouezh evit ar merour." -#: admin/forms/domain.py:257 +#: admin/forms/domain.py:269 msgid "With a mailbox" msgstr "Gant ur voest-posteloù" -#: admin/forms/domain.py:260 +#: admin/forms/domain.py:271 msgid "Create a mailbox for the administrator." msgstr "Krouiñ ur voest-posteloù evit ar merour." -#: admin/forms/domain.py:266 +#: admin/forms/domain.py:276 msgid "Create aliases" msgstr "Krouiñ aliasoù" -#: admin/forms/domain.py:269 +#: admin/forms/domain.py:278 msgid "Automatically create standard aliases for this domain" msgstr "Em-grouit aliasoù standard evit an domani-mañ" -#: admin/forms/domain.py:285 +#: admin/forms/domain.py:294 msgid "Invalid format" msgstr "Stumm direizh" -#: admin/forms/domain.py:426 +#: admin/forms/domain.py:433 msgid "Domain modified" msgstr "Domani aozet" -#: admin/forms/domain.py:447 +#: admin/forms/domain.py:458 msgid "Options" msgstr "Dibarzhioù" -#: admin/forms/domain.py:455 +#: admin/forms/domain.py:467 msgid "New domain" msgstr "Domani nevez" -#: admin/forms/domain.py:468 +#: admin/forms/domain.py:481 msgid "Domain created" msgstr "Domani krouet" -#: admin/forms/export.py:9 admin/forms/import_.py:13 +#: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" msgstr "Skejer" @@ -660,23 +778,25 @@ msgstr "Skejer" msgid "Recipient(s)" msgstr "Resever(ien)" -#: admin/forms/forward.py:16 +#: admin/forms/forward.py:15 msgid "Indicate one or more recipients separated by a ','" msgstr "Roit da anavout unan pe meur a resever skejet gant ur ','" -#: admin/forms/forward.py:19 +#: admin/forms/forward.py:18 msgid "Keep local copies" msgstr "Mirout eiladennoù lec'hel" -#: admin/forms/forward.py:22 +#: admin/forms/forward.py:21 msgid "Forward messages and store copies into your local mailbox" -msgstr "Treuzkas kemennadennoù ha stokiñ eiladennoù e-barzh ar voest-posteloù lec'hel" +msgstr "" +"Treuzkas kemennadennoù ha stokiñ eiladennoù e-barzh ar voest-posteloù " +"lec'hel" -#: admin/forms/import_.py:11 +#: admin/forms/import_.py:10 msgid "Select a file" msgstr "Diuzañ ur restr" -#: admin/forms/import_.py:19 +#: admin/forms/import_.py:18 msgid "Continue on error" msgstr "Kenderc'hel war ar fazi" @@ -684,132 +804,137 @@ msgstr "Kenderc'hel war ar fazi" msgid "Don't treat duplicated objects as error" msgstr "Arabat tretiñ an objedoù e doubl evel ur fazi" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 msgid "Crypt passwords" msgstr "Kriptañ ar gerioù-tremen" #: admin/forms/import_.py:40 msgid "Check this option if passwords contained in your file are not crypted" -msgstr "Kochit an dibarzh ma ne vez ket kriptet ar gerioù-tremen endalc'het en ho restr" +msgstr "" +"Kochit an dibarzh ma ne vez ket kriptet ar gerioù-tremen endalc'het en ho " +"restr" -#: admin/handlers.py:215 +#: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "Enporzhiadur kont c'hwitet (%s): n'eus ket eus an domani" -#: admin/handlers.py:228 admin/models/mailbox.py:342 +#: admin/handlers.py:248 admin/models/mailbox.py:340 msgid "Mailbox {} already exists" msgstr "Boest-postel {} a zo anezhi endeo" -#: admin/handlers.py:236 +#: admin/handlers.py:257 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "Enporzhiadur kont c'hwitet (%s): talvoudegezh kota fall" -#: admin/handlers.py:276 +#: admin/handlers.py:298 #: admin/templates/admin/_global_statistics_widget.html:17 #: admin/templates/admin/_per_domain_statistics_widget.html:8 #: admin/templates/admin/identities.html:5 msgid "Identities" msgstr "Identelezhioù" -#: admin/handlers.py:292 admin/templates/admin/forward.html:2 +#: admin/handlers.py:316 admin/templates/admin/forward.html:2 msgid "Forward" msgstr "Treuzkas" -#: admin/lib.py:48 +#: admin/lib.py:47 msgid "A mailbox is required" msgstr "Ur voest-posteloù a zo rekiset" -#: admin/lib.py:138 +#: admin/lib.py:141 msgid "You are not allowed to import domains" msgstr "N'hoc'h ket aotreet da emporzhiañ domanioù" -#: admin/lib.py:149 +#: admin/lib.py:150 msgid "You are not allowed to import domain aliases." msgstr "N'hoc'h ket aotreet da emporzhiañ aliasoù domani." -#: admin/lib.py:199 admin/tests/test_mx.py:152 admin/tests/test_mx.py:161 -#: admin/tests/test_mx.py:164 +#: admin/lib.py:201 admin/tests/test_mx.py:154 admin/tests/test_mx.py:167 +#: admin/tests/test_mx.py:172 #, fuzzy, python-format #| msgid "No DNS records found for %s" msgid "No DNS record found for %s" msgstr "Enrolladenn DNS ebet kavet evit %s" -#: admin/lib.py:202 +#: admin/lib.py:204 #, fuzzy, python-format #| msgid "No MX record for %s" msgid "No %(type)s record for %(name)s" msgstr "Enrolladenn MX ebet evit %s" -#: admin/lib.py:206 admin/tests/test_mx.py:156 +#: admin/lib.py:208 admin/tests/test_mx.py:157 msgid "No working name servers found" msgstr "N'eus bet kavet anv servijer ebet hag az afe en-dro" -#: admin/lib.py:209 admin/tests/test_mx.py:158 +#: admin/lib.py:211 admin/tests/test_mx.py:161 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" -msgstr "Prantad gortoz spister DNS, n'heller ket sevel ar reked %s evit ar mare" +msgstr "" +"Prantad gortoz spister DNS, n'heller ket sevel ar reked %s evit ar mare" -#: admin/lib.py:212 +#: admin/lib.py:215 #, python-format msgid "DNS name is too long: %s" msgstr "" -#: admin/lib.py:239 +#: admin/lib.py:246 #, python-brace-format msgid "Invalid IP address format for {domain}; {addr}" msgstr "Stumm chomlec'h IP direizh evit {domain}; {addr}" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "Objed a zo anezhañ dija: %s" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "%d objed emporzhiet gant berzh" -#: admin/management/commands/subcommands/_import.py:93 +#: admin/management/commands/subcommands/_import.py:99 msgid "CSV file is not encoded in UTF-8, attempting to guess encoding" -msgstr "Ar restr CSV neket kodet anezhi en UTF-8, klask a reomp divinout an enkodañ" +msgstr "" +"Ar restr CSV neket kodet anezhi en UTF-8, klask a reomp divinout an enkodañ" -#: admin/management/commands/subcommands/_import.py:105 +#: admin/management/commands/subcommands/_import.py:114 #, python-format msgid "Reading CSV file using %(encoding)s encoding" msgstr "Lenn ur restr CSV en ur implijout an enkodañ %(encoding)s" -#: admin/management/commands/subcommands/_import.py:116 +#: admin/management/commands/subcommands/_import.py:125 #, python-format msgid "Unable to decode CSV file using %(encoding)s encoding" -msgstr "N'heller ket digodiñ ar restroù CSV en ur ober gant an enkodañ %(encoding)s" +msgstr "" +"N'heller ket digodiñ ar restroù CSV en ur ober gant an enkodañ %(encoding)s" #: admin/management/commands/subcommands/_manage_dkim_keys.py:28 msgid "DKIM path non-writable" msgstr "" -#: admin/management/commands/subcommands/_mx.py:121 +#: admin/management/commands/subcommands/_mx.py:133 msgid "MX {} listed by DNSBL provider {}" msgstr "" -#: admin/management/commands/subcommands/_mx.py:169 +#: admin/management/commands/subcommands/_mx.py:174 #, fuzzy #| msgid "Domain {} has no MX record" msgid "Domain has no MX record" msgstr "An domani {} n'eus enrolladenn MX ebet gantañ" -#: admin/management/commands/subcommands/_mx.py:173 +#: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" msgstr "An domani {} n'eus enrolladenn MX ebet gantañ" -#: admin/management/commands/subcommands/_mx.py:193 +#: admin/management/commands/subcommands/_mx.py:195 #, fuzzy #| msgid "MX records of {}" msgid "Invalid MX record: {}" msgstr "Enrolladennoù MX eus {}" -#: admin/management/commands/subcommands/_mx.py:199 +#: admin/management/commands/subcommands/_mx.py:202 #, python-brace-format msgid "MX record for domain {0} is invalid: {1}" msgstr "An enrolladenn MX evit an domani {0} a zo direizh {1}" @@ -818,160 +943,159 @@ msgstr "An enrolladenn MX evit an domani {0} a zo direizh {1}" msgid "[modoboa] MX issue(s) for domain {}" msgstr "[modoboa] kudenn(où) MX evit an domani {}" -#: admin/management/commands/subcommands/_mx.py:271 +#: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "[modoboa] Kudenn(où) DNSBL gant an domani {}" -#: admin/models/alias.py:32 +#: admin/models/alias.py:36 msgid "Domain not found." msgstr "Neket bet kavet an domani." -#: admin/models/alias.py:37 -#, fuzzy -#| msgid "Alias with this name already exists" -msgid "An alias with this name already exists." -msgstr "Un alias gant an anv-mañ zo anezhañ dija" - -#: admin/models/alias.py:71 admin/models/mailbox.py:92 +#: admin/models/alias.py:91 admin/models/mailbox.py:85 msgid "address" msgstr "chomlec'h" -#: admin/models/alias.py:73 +#: admin/models/alias.py:93 msgid "The alias address." msgstr "Chomlec'h an alias." -#: admin/models/alias.py:78 admin/models/domain.py:43 -#: admin/models/domain_alias.py:41 +#: admin/models/alias.py:97 admin/models/domain.py:45 +#: admin/models/domain_alias.py:45 postfix_autoreply/models.py:23 msgid "enabled" msgstr "enaouet" -#: admin/models/alias.py:79 admin/models/domain_alias.py:42 +#: admin/models/alias.py:98 admin/models/domain_alias.py:46 msgid "Check to activate this alias" msgstr "Kochiñ evit enaouiñ an alias-mañ" -#: admin/models/alias.py:84 admin/templates/admin/alias_detail.html:32 +#: admin/models/alias.py:102 admin/templates/admin/alias_detail.html:32 #: core/templates/core/information.html:17 msgid "Description" msgstr "Deskrivadur" -#: admin/models/alias.py:86 admin/templates/admin/alias_detail.html:29 +#: admin/models/alias.py:103 admin/templates/admin/alias_detail.html:29 msgid "Expire at" msgstr "Diamzeriet da" -#: admin/models/alias.py:127 +#: admin/models/alias.py:144 msgid "alias" msgstr "alias" -#: admin/models/alias.py:159 +#: admin/models/alias.py:177 msgid "Invalid address" msgstr "Chomlec'h direizh" -#: admin/models/alias.py:180 +#: admin/models/alias.py:196 msgid "Local recipient {}@{} not found" msgstr "Resever lec'hel {}@{} nann-kavet" -#: admin/models/alias.py:215 +#: admin/models/alias.py:245 #, fuzzy #| msgid "Invalid line: %s" msgid "Invalid line: {}" msgstr "Linenn direizh: %s" -#: admin/models/domain.py:26 admin/models/domain_alias.py:33 +#: admin/models/domain.py:27 admin/models/domain_alias.py:33 msgid "name" msgstr "anv" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 msgid "The domain name" msgstr "Anv an domani" -#: admin/models/domain.py:39 +#: admin/models/domain.py:42 msgid "Number of messages this domain can send per day" msgstr "" -#: admin/models/domain.py:44 +#: admin/models/domain.py:46 msgid "Check to activate this domain" msgstr "Kochit evit enaouiñ an domani-mañ" -#: admin/models/domain.py:49 +#: admin/models/domain.py:51 msgid "Enable DNS checks" msgstr "Enaouiñ ar gwiriañ DNS" -#: admin/models/domain.py:50 +#: admin/models/domain.py:53 msgid "Check to enable DNS checks for this domain" msgstr "Kochit evit enaouiñ ar gwiriadenoù DNs evit an domani-mañ" -#: admin/models/domain.py:57 +#: admin/models/domain.py:61 msgid "Enable DKIM signing" msgstr "Enaouiñ ar sinadur DKIM" -#: admin/models/domain.py:59 -msgid "If you activate this feature, a DKIM key will be generated for this domain." -msgstr "Ma enaouit an arc'hweladur-mañ, un alc'hwez DKIM a vo ganet evit an domani-mañ." +#: admin/models/domain.py:63 +msgid "" +"If you activate this feature, a DKIM key will be generated for this domain." +msgstr "" +"Ma enaouit an arc'hweladur-mañ, un alc'hwez DKIM a vo ganet evit an domani-" +"mañ." -#: admin/models/domain.py:65 +#: admin/models/domain.py:70 msgid "Key length" msgstr "Padelezh an alc'hwez" -#: admin/models/domain.py:357 admin/models/domain_alias.py:66 -#: core/models.py:320 relaydomains/lib.py:13 +#: admin/models/domain.py:368 admin/models/domain_alias.py:70 +#: core/models.py:329 relaydomains/lib.py:13 msgid "Invalid line" msgstr "Linenn direizh" -#: admin/models/domain.py:367 +#: admin/models/domain.py:378 #, fuzzy #| msgid "No authorized MX record found for domain {}" msgid "{}: no authorized MX record found for domain" msgstr "Enrolladenn MX aotreet ebet kavet evit an domani {}" -#: admin/models/domain.py:374 +#: admin/models/domain.py:383 #, fuzzy #| msgid "Invalid quota value for domain '{}'" msgid "{}: invalid quota value for domain" msgstr "Talvoudegezh kota direizh evit an domani \"{}\"" -#: admin/models/domain.py:381 +#: admin/models/domain.py:388 #, fuzzy #| msgid "Invalid default mailbox quota value for domain '{}'" msgid "{}: invalid default mailbox quota value for domain" msgstr "Talvoudegezh kota direizh evit boest-posteloù an domani \"{}\"" -#: admin/models/domain.py:386 +#: admin/models/domain.py:395 #, fuzzy #| msgid "Default mailbox quota cannot be greater than domain quota" msgid "{}: default mailbox quota cannot be greater than domain quota" -msgstr "N'hall ket bezañ brasoc'h kota dre-ziouer ur voestad-posteloù evit kota un domani" +msgstr "" +"N'hall ket bezañ brasoc'h kota dre-ziouer ur voestad-posteloù evit kota un " +"domani" -#: admin/models/domain_alias.py:34 +#: admin/models/domain_alias.py:36 msgid "The alias name" msgstr "Anv an alias" -#: admin/models/domain_alias.py:36 +#: admin/models/domain_alias.py:40 msgid "target" msgstr "bukenn" -#: admin/models/domain_alias.py:37 +#: admin/models/domain_alias.py:41 msgid "The domain this alias points to" msgstr "An domani a vez lakaet ar biz warnañ gant an alias-mañ" -#: admin/models/domain_alias.py:75 +#: admin/models/domain_alias.py:79 #, python-format msgid "Unknown domain %s" msgstr "Domani dizanv %s" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "Chomlec'hioù boest-posteloù (hep al lodenn @domani.tld)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "N'heller ket adsevel lec'hiadur ar voest-posteloù (%s)" -#: admin/models/mailbox.py:254 +#: admin/models/mailbox.py:249 msgid "A quota is required" msgstr "Ur c'hota a zo rekiset" -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 #, fuzzy #| msgid "Domain quota exceeded" msgid "{}: domain quota exceeded" @@ -981,8 +1105,9 @@ msgstr "Kota an domani dibaseet" #: admin/templates/admin/_domain_dkim_key.html:20 #: core/templates/core/user_security.html:83 #: core/templates/core/user_security.html:99 -#: templates/common/generic_modal.html:6 templates/common/generic_modal.html:13 -#: templates/common/wizard_forms.html:6 templates/common/wizard_forms.html:27 +#: templates/common/generic_modal.html:6 +#: templates/common/generic_modal.html:13 templates/common/wizard_forms.html:6 +#: templates/common/wizard_forms.html:27 msgid "Close" msgstr "Serriñ" @@ -1033,9 +1158,9 @@ msgstr "Kementad" #: admin/templates/admin/_global_statistics_widget.html:14 #: admin/templates/admin/domain_detail.html:37 -#: admin/templates/admin/domain_detail.html:87 limits/app_settings.py:47 -#: limits/app_settings.py:108 limits/app_settings.py:178 -#: limits/app_settings.py:229 limits/constants.py:13 limits/constants.py:41 +#: admin/templates/admin/domain_detail.html:87 limits/app_settings.py:45 +#: limits/app_settings.py:101 limits/app_settings.py:183 +#: limits/app_settings.py:257 limits/constants.py:22 limits/constants.py:76 msgid "Domain aliases" msgstr "Aliasoù domani" @@ -1070,7 +1195,7 @@ msgstr "Krouet" msgid "Last login" msgstr "Kevreadenn ziwezhañ" -#: admin/templates/admin/account_detail.html:38 core/models.py:69 +#: admin/templates/admin/account_detail.html:38 core/models.py:70 msgid "Secondary email" msgstr "Eil chomlec'h postel" @@ -1079,7 +1204,7 @@ msgstr "Eil chomlec'h postel" msgid "Not defined" msgstr "Ket termenet" -#: admin/templates/admin/account_detail.html:41 core/models.py:67 +#: admin/templates/admin/account_detail.html:41 core/models.py:68 msgid "Phone number" msgstr "Niverenn bellgomz" @@ -1157,7 +1282,7 @@ msgstr "" #: admin/templates/admin/domain_alarms.html:25 #: admin/templates/admin/domains_log_headers.html:3 #: admin/templates/admin/messages_log_headers.html:3 -#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:106 +#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:119 msgid "Date" msgstr "Deiziad" @@ -1183,9 +1308,9 @@ msgstr "Deiziad krouidigezh" msgid "Last modification date" msgstr "Deiziad aozañ diwezhañ" -#: admin/templates/admin/domain_detail.html:45 limits/app_settings.py:68 -#: limits/app_settings.py:129 limits/app_settings.py:196 -#: limits/app_settings.py:246 limits/constants.py:20 limits/constants.py:48 +#: admin/templates/admin/domain_detail.html:45 limits/app_settings.py:64 +#: limits/app_settings.py:120 limits/app_settings.py:207 +#: limits/app_settings.py:280 limits/constants.py:39 limits/constants.py:92 msgid "Mailbox aliases" msgstr "Aliasoù boest-posteloù" @@ -1244,11 +1369,12 @@ msgid "Warning" msgstr "" #: admin/templates/admin/domain_detail.html:139 -msgid "DKIM keys already exist for this domain. Do you want to overwrite them?" +msgid "" +"DKIM keys already exist for this domain. Do you want to overwrite them?" msgstr "" #: admin/templates/admin/domain_detail.html:142 core/constants.py:53 -#: lib/form_utils.py:397 +#: lib/form_utils.py:400 msgid "No" msgstr "Ket" @@ -1256,7 +1382,7 @@ msgstr "Ket" msgid "Generate new key" msgstr "Genel un alc'hwez nevez" -#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:396 +#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400 msgid "Yes" msgstr "Ya" @@ -1269,7 +1395,7 @@ msgid "Administrators" msgstr "Merourien" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:279 +#: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" msgstr "Dilemel an aotre-mañ" @@ -1306,13 +1432,13 @@ msgstr "" #: admin/templates/admin/domains_log_headers.html:4 #: admin/templates/admin/messages_log_headers.html:4 -#: lib/templatetags/lib_tags.py:104 +#: lib/templatetags/lib_tags.py:117 postfix_autoreply/forms.py:20 msgid "From" msgstr "Eus" #: admin/templates/admin/domains_log_headers.html:5 #: admin/templates/admin/messages_log_headers.html:5 -#: lib/templatetags/lib_tags.py:105 +#: lib/templatetags/lib_tags.py:118 msgid "To" msgstr "Da" @@ -1343,9 +1469,10 @@ msgstr "lazhet" msgid "Automatically forward emails to another address" msgstr "Em-dreuzkas ar posteloù betek ur chomlec'h postel all" -#: admin/templates/admin/forward.html:9 admin/views/alias.py:88 +#: admin/templates/admin/forward.html:9 admin/views/alias.py:84 #: core/templates/core/api_access.html:35 -#: core/templates/core/user_profile.html:19 lib/form_utils.py:354 +#: core/templates/core/user_profile.html:19 lib/form_utils.py:356 +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10 msgid "Update" msgstr "Hizivaat" @@ -1362,12 +1489,40 @@ msgid "Fullname/Recipient" msgstr "Anv klok/Resever" #: admin/templates/admin/import_domains_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:

The first element of each line is mandatory and must be equal to one of the previous values.

You can use a different character as separator.

" -msgstr "Pourvezit ur restr CSV el lec'h ma touj al linennoù unan eus ar stummoù da-heul:

Elfenn gentañ pep linenn a vez ret hag e rank bezañ par ouzh unan eus an talvoudegezhioù kent.

Gellout a rit implijout un arouezenn evel skejer.

" +msgid "" +"Provide a CSV file where lines respect one of the following formats:

The first element of each line is " +"mandatory and must be equal to one of the previous values.

You can " +"use a different character as separator.

" +msgstr "" +"Pourvezit ur restr CSV el lec'h ma touj al linennoù unan eus ar stummoù da-" +"heul:

Elfenn " +"gentañ pep linenn a vez ret hag e rank bezañ par ouzh unan eus an " +"talvoudegezhioù kent.

Gellout a rit implijout un arouezenn evel " +"skejer.

" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:

The first element of each line is mandatory and must be equal to one of the previous values.

You can use a different character as separator.

" -msgstr "Pourvezit ur restr CSV el lec'h ma touj al linennoù unan eus ar stummoù da-heul:

Elfenn gentañ pep linenn a vez ret hag e rank bezañ par ouzh unan eus an talvoudegezhioù kent.

Gellout a rit implijout un arouezenn evel skejer.

" +msgid "" +"Provide a CSV file where lines respect one of the following formats:

The first element of each line " +"is mandatory and must be equal to one of the previous values.

You can" +" use a different character as separator.

" +msgstr "" +"Pourvezit ur restr CSV el lec'h ma touj al linennoù unan eus ar stummoù da-" +"heul: " +"

Elfenn gentañ pep linenn a vez ret hag e rank bezañ par ouzh unan eus an " +"talvoudegezhioù kent.

Gellout a rit implijout un arouezenn evel " +"skejer.

" #: admin/templates/admin/importform.html:6 msgid "Help" @@ -1403,108 +1558,127 @@ msgstr "Erolladenn MX ebet kavet evit an domani-mañ." #: admin/templates/admin/notifications/domain_in_dnsbl.html:3 #, python-format -msgid "Modoboa detected that domain %(domain)s is listed by the following DNSBL providers:" -msgstr "Modoboa en deus diguzhet e oa an domani %(domain)s listennet gant ar bourvezerien DNSBL da-heul:" +msgid "" +"Modoboa detected that domain %(domain)s is listed by the following DNSBL " +"providers:" +msgstr "" +"Modoboa en deus diguzhet e oa an domani %(domain)s listennet gant ar " +"bourvezerien DNSBL da-heul:" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 -msgid "The domain's reputation will be affected and there is a chance that emails coming from it are considered as spam. You should contact those providers and ask them to unlist detected IP address(es)." -msgstr "Brud an domani a vo merket-kennañ ha posupl eo e vo lakaet da strob ar posteloù o tont eus e berzh. Rankout a rafec'h mont e darempred gant ar bourvezerien-mañ evit goulenn digantañ dilistennañ ar chomlec'h(ioù) IP diguzhet." +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 "" +"Brud an domani a vo merket-kennañ ha posupl eo e vo lakaet da strob ar " +"posteloù o tont eus e berzh. Rankout a rafec'h mont e darempred gant ar " +"bourvezerien-mañ evit goulenn digantañ dilistennañ ar chomlec'h(ioù) IP " +"diguzhet." #: admin/templates/admin/notifications/domain_invalid_mx.html:3 #, python-format msgid "Modoboa detected that domain %(domain)s has no valid MX record:" -msgstr "Modoboa a zo bet diguzhet gantañ ne oa tamm enrolladenn MX reizh gant an domani %(domain)s:" +msgstr "" +"Modoboa a zo bet diguzhet gantañ ne oa tamm enrolladenn MX reizh gant an " +"domani %(domain)s:" #: admin/templates/admin/searchform.html:6 msgid "Search" msgstr "Klask" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "enaouet_m" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "enaouet_f" -#: admin/templatetags/admin_tags.py:47 +#: admin/templatetags/admin_tags.py:46 msgid "List domains" msgstr "Listenn domanioù" -#: admin/templatetags/admin_tags.py:52 admin/templatetags/admin_tags.py:112 +#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:123 msgid "List quotas" msgstr "Listenn kotaioù" -#: admin/templatetags/admin_tags.py:57 +#: admin/templatetags/admin_tags.py:60 msgid "Message logs" msgstr "" -#: admin/templatetags/admin_tags.py:69 admin/templatetags/admin_tags.py:117 -#: admin/views/import_.py:56 admin/views/import_.py:78 +#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130 +#: admin/views/import_.py:57 admin/views/import_.py:78 msgid "Import" msgstr "Emporzhiañ" -#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:123 -#: admin/views/export.py:39 admin/views/export.py:67 +#: admin/templatetags/admin_tags.py:83 admin/templatetags/admin_tags.py:138 +#: admin/views/export.py:41 admin/views/export.py:70 msgid "Export" msgstr "Ezporzhiañ" -#: admin/templatetags/admin_tags.py:107 +#: admin/templatetags/admin_tags.py:116 msgid "List identities" msgstr "Listenn identelezhioù" -#: admin/templatetags/admin_tags.py:142 +#: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" msgstr "Gwelet identelezhioù an domanioù" -#: admin/templatetags/admin_tags.py:149 +#: admin/templatetags/admin_tags.py:166 #, fuzzy #| msgid "domain alias" msgid "View domain's alarms" msgstr "alias an domani" -#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:198 -#: admin/templatetags/admin_tags.py:211 +#: admin/templatetags/admin_tags.py:174 admin/templatetags/admin_tags.py:218 +#: admin/templatetags/admin_tags.py:235 msgid "Edit {}" msgstr "Aozet {}" -#: admin/templatetags/admin_tags.py:165 admin/templatetags/admin_tags.py:202 -#: admin/templatetags/admin_tags.py:216 +#: admin/templatetags/admin_tags.py:186 admin/templatetags/admin_tags.py:224 +#: admin/templatetags/admin_tags.py:241 #, python-format msgid "Delete %s?" msgstr "Dilemel %s?" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:156 #, python-format msgid "No MX record for %s" msgstr "Enrolladenn MX ebet evit %s" -#: admin/tests/test_mx.py:167 admin/tests/test_mx.py:170 +#: admin/tests/test_mx.py:177 admin/tests/test_mx.py:183 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "Stumm chomlec'h IP direizh evit %(domain)s; %(addr)s" +#: admin/tests/test_mx.py:200 +#, fuzzy, python-format +#| msgid "No MX record for %s" +msgid "No AAAA record for %s" +msgstr "Enrolladenn MX ebet evit %s" + #: admin/views/alias.py:30 msgid "Alias with this name already exists" msgstr "Un alias gant an anv-mañ zo anezhañ dija" -#: admin/views/alias.py:55 +#: admin/views/alias.py:52 msgid "Create" msgstr "Krouiñ" -#: admin/views/alias.py:67 +#: admin/views/alias.py:64 msgid "New alias" msgstr "Alias nevez" -#: admin/views/alias.py:68 +#: admin/views/alias.py:64 msgid "Alias created" msgstr "Alias krouet" -#: admin/views/alias.py:80 +#: admin/views/alias.py:76 msgid "Alias modified" msgstr "Alias aozet" -#: admin/views/alias.py:105 +#: admin/views/alias.py:101 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "Alias dilemet" @@ -1517,11 +1691,11 @@ msgstr[4] "Aliasoù dilemet" msgid "MX records of {}" msgstr "Enrolladennoù MX eus {}" -#: admin/views/dns.py:51 +#: admin/views/dns.py:50 msgid "DNSBL summary for {}" msgstr "Berradenn DNSBL evit {}" -#: admin/views/domain.py:250 +#: admin/views/domain.py:251 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "Domani dilemet" @@ -1530,20 +1704,20 @@ msgstr[2] "Domanioù dilemet" msgstr[3] "Domanioù dilemet" msgstr[4] "Domanioù dilemet" -#: admin/views/export.py:38 +#: admin/views/export.py:40 msgid "Export identities" msgstr "Ezporzhiañ identelezhioù" -#: admin/views/export.py:66 +#: admin/views/export.py:69 msgid "Export domains" msgstr "Ezporzhiañ domanioù" -#: admin/views/identity.py:108 admin/views/identity.py:205 -#: admin/views/identity.py:210 lib/form_utils.py:110 lib/form_utils.py:113 +#: admin/views/identity.py:110 admin/views/identity.py:197 +#: admin/views/identity.py:202 lib/form_utils.py:110 lib/form_utils.py:113 msgid "Invalid request" msgstr "Reked direizh" -#: admin/views/identity.py:194 +#: admin/views/identity.py:187 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "Kont dilemet" @@ -1552,7 +1726,7 @@ msgstr[2] "Kontoù dilemet" msgstr[3] "Kontoù dilemet" msgstr[4] "Kontoù dilemet" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "Emporzhiañ domanioù" @@ -1560,87 +1734,74 @@ msgstr "Emporzhiañ domanioù" msgid "Import identities" msgstr "Emporzhiañ identelezhioù" -#: admin/views/user.py:52 +#: admin/views/user.py:51 msgid "Forward updated" msgstr "Treuzkas hizivaet" -#: core/api/v1/serializers.py:16 +#: core/api/v1/serializers.py:21 #, fuzzy #| msgid "MX records of {}" msgid "Invalid PIN code" msgstr "Enrolladennoù MX eus {}" -#: core/api/v1/serializers.py:22 +#: core/api/v1/serializers.py:27 msgid "2FA is already enabled" msgstr "" -#: core/api/v1/viewsets.py:61 -msgid "2FA is not enabled" +#: core/api/v1/serializers.py:40 +#, python-format +msgid "Failed TFA settings editing attempt from '%s' as user '%s'" msgstr "" -#: core/api/v2/serializers.py:60 core/app_settings.py:43 -msgid "Local" -msgstr "Lec'hel" - -#: core/api/v2/serializers.py:68 -msgid "md5crypt (weak)" -msgstr "" - -#: core/api/v2/serializers.py:69 -msgid "sha256 (weak)" -msgstr "" - -#: core/api/v2/serializers.py:70 -msgid "md5 (weak)" -msgstr "" - -#: core/api/v2/serializers.py:71 -msgid "crypt (weak)" -msgstr "" - -#: core/api/v2/serializers.py:72 -msgid "plain (weak)" -msgstr "" - -#: core/api/v2/serializers.py:168 core/app_settings.py:26 -msgid "User profile" -msgstr "Profil implijer" - -#: core/api/v2/serializers.py:183 core/api/v2/serializers.py:190 -#: core/api/v2/serializers.py:197 core/app_settings.py:561 -#: core/app_settings.py:569 core/app_settings.py:577 -msgid "Invalid syntax" -msgstr "Sintaks direizh" - -#: core/api/v2/serializers.py:202 core/app_settings.py:583 -msgid "Invalid rounds number" -msgstr "Niveroù ront direizh" - -#: core/api/v2/serializers.py:262 core/forms.py:176 -msgid "This code is invalid" -msgstr "" - -#: core/api/v2/serializers.py:274 +#: core/api/v1/serializers.py:44 core/api/v2/serializers.py:274 #, fuzzy #| msgid "Old password" msgid "Invalid password" msgstr "Ger-tremen kozh" -#: core/api/v2/serializers.py:328 core/views/auth.py:180 core/views/auth.py:235 +#: core/api/v1/viewsets.py:64 core/api/v1/viewsets.py:82 +msgid "2FA is not enabled" +msgstr "" + +#: core/api/v2/serializers.py:68 core/app_settings.py:48 +msgid "Local" +msgstr "Lec'hel" + +#: core/api/v2/serializers.py:164 core/app_settings.py:24 +msgid "User profile" +msgstr "Profil implijer" + +#: core/api/v2/serializers.py:183 core/api/v2/serializers.py:190 +#: core/api/v2/serializers.py:197 core/app_settings.py:535 +#: core/app_settings.py:543 core/app_settings.py:551 +#: postfix_autoreply/forms.py:165 +msgid "Invalid syntax" +msgstr "Sintaks direizh" + +#: core/api/v2/serializers.py:202 core/app_settings.py:557 +msgid "Invalid rounds number" +msgstr "Niveroù ront direizh" + +#: core/api/v2/serializers.py:262 core/forms.py:194 +msgid "This code is invalid" +msgstr "" + +#: core/api/v2/serializers.py:333 core/views/auth.py:184 +#: core/views/auth.py:237 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" -#: core/api/v2/views.py:54 +#: core/api/v2/views.py:57 #, python-format msgid "Failed connection attempt from '%s' as user '%s'" msgstr "" -#: core/api/v2/views.py:67 core/views/auth.py:89 +#: core/api/v2/views.py:69 core/views/auth.py:89 #, python-format msgid "User '%s' successfully logged in" msgstr "Implijer '%s' kevreet gant berzh" -#: core/api/v2/views.py:86 core/views/auth.py:68 +#: core/api/v2/views.py:86 core/views/auth.py:67 #, python-format msgid "Password scheme mismatch. Updating %s password" msgstr "Dizemglev gant brastres ar ger-tremen. Oc'h hizivat ar ger-tremen %s" @@ -1650,452 +1811,504 @@ msgstr "Dizemglev gant brastres ar ger-tremen. Oc'h hizivat ar ger-tremen %s" msgid "Password hash parameter missmatch. Updating %s password" msgstr "" -#: core/app_settings.py:39 core/app_settings.py:728 +#: core/app_settings.py:44 core/app_settings.py:716 msgid "Authentication" msgstr "O vezañ anavezet" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "Doare anavezadur" -#: core/app_settings.py:46 core/app_settings.py:733 +#: core/app_settings.py:50 core/app_settings.py:724 msgid "The backend used for authentication" msgstr "Drekleur implijet evit bezañ anavezet" -#: core/app_settings.py:51 core/app_settings.py:736 +#: core/app_settings.py:55 core/app_settings.py:731 msgid "Default password scheme" msgstr "Ger-tremen dre ziouer ar brastres" -#: core/app_settings.py:54 core/app_settings.py:738 +#: core/app_settings.py:58 core/app_settings.py:733 msgid "Scheme used to crypt mailbox passwords" msgstr "Brastres implijet evit enrinegañ gerioù-tremen ar postelerezh" -#: core/app_settings.py:58 core/app_settings.py:741 +#: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" msgstr "Troiadoù" -#: core/app_settings.py:61 core/app_settings.py:743 -msgid "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be between 1000 and 999999999, inclusive." -msgstr "Niver a droiadoù d'ober ganto (implijet gant sha256crypt ha sha512crypt hepken). Bez' e rank bezañ etre 1000 ha 999999999, e-barzh." +#: core/app_settings.py:65 core/app_settings.py:742 +msgid "" +"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " +"between 1000 and 999999999, inclusive." +msgstr "" +"Niver a droiadoù d'ober ganto (implijet gant sha256crypt ha sha512crypt " +"hepken). Bez' e rank bezañ etre 1000 ha 999999999, e-barzh." -#: core/app_settings.py:67 core/app_settings.py:749 +#: core/app_settings.py:71 core/app_settings.py:752 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:70 core/app_settings.py:751 +#: core/app_settings.py:74 core/app_settings.py:755 msgid "Update user password at login to use the default password scheme" -msgstr "Hizivait ger-tremen an implijer d'ar mare kevreaén evit implijout ar brastres ger-tremen dre-ziouer" +msgstr "" +"Hizivait ger-tremen an implijer d'ar mare kevreaén evit implijout ar " +"brastres ger-tremen dre-ziouer" -#: core/app_settings.py:75 core/app_settings.py:756 +#: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" msgstr "Ger-tremen dre-ziouer" -#: core/app_settings.py:78 core/app_settings.py:758 +#: core/app_settings.py:81 core/app_settings.py:765 msgid "Default password for automatically created accounts." msgstr "Ger-tremen dre-ziouer evit ar gontoù em-grouet." -#: core/app_settings.py:82 core/app_settings.py:761 +#: core/app_settings.py:85 core/app_settings.py:772 msgid "Random password length" msgstr "Hirder dre-zegouezh ger-tremen" -#: core/app_settings.py:86 core/app_settings.py:763 +#: core/app_settings.py:88 core/app_settings.py:774 msgid "Length of randomly generated passwords." msgstr "Hirder ar gerioù-tremen em-c'hanet." -#: core/app_settings.py:90 core/app_settings.py:766 +#: core/app_settings.py:92 core/app_settings.py:781 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:94 core/app_settings.py:768 -msgid "The URL of an external page where users will be able to update their password. It applies only to non local users, ie. those automatically created after a successful external authentication (LDAP, SMTP)." +#: core/app_settings.py:96 core/app_settings.py:783 +msgid "" +"The URL of an external page where users will be able to update their " +"password. It applies only to non local users, ie. those automatically " +"created after a successful external authentication (LDAP, SMTP)." msgstr "" -#: core/app_settings.py:102 core/app_settings.py:775 +#: core/app_settings.py:104 core/app_settings.py:793 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:107 core/app_settings.py:777 +#: core/app_settings.py:109 core/app_settings.py:795 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:113 core/app_settings.py:782 +#: core/app_settings.py:114 core/app_settings.py:804 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:116 core/app_settings.py:784 +#: core/app_settings.py:117 core/app_settings.py:807 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:122 core/app_settings.py:789 +#: core/app_settings.py:122 core/app_settings.py:815 msgid "SMS provider" msgstr "" -#: core/app_settings.py:125 core/app_settings.py:792 +#: core/app_settings.py:124 core/app_settings.py:818 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:131 +#: core/app_settings.py:129 msgid "LDAP settings" msgstr "Arventennoù LDAP" -#: core/app_settings.py:134 core/app_settings.py:802 +#: core/app_settings.py:132 core/app_settings.py:836 msgid "Server address" msgstr "Chomlec'h ar servijer" -#: core/app_settings.py:137 core/app_settings.py:804 +#: core/app_settings.py:134 core/app_settings.py:838 msgid "The IP address or the DNS name of the LDAP server" msgstr "Chomlec'h IP pe anv DNS ar servijer LDAP" -#: core/app_settings.py:141 core/app_settings.py:807 +#: core/app_settings.py:138 core/app_settings.py:845 msgid "Server port" msgstr "Porzh ar servijer" -#: core/app_settings.py:143 core/app_settings.py:809 +#: core/app_settings.py:140 core/app_settings.py:847 msgid "The TCP port number used by the LDAP server" msgstr "Niverenn borzh TCP implijet gant ar servijer LDAP" -#: core/app_settings.py:147 core/app_settings.py:812 +#: core/app_settings.py:144 core/app_settings.py:855 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:150 core/app_settings.py:814 -msgid "Enable a secondary LDAP server which will be used if the primary one fails" +#: core/app_settings.py:147 core/app_settings.py:858 +msgid "" +"Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:156 core/app_settings.py:819 +#: core/app_settings.py:153 core/app_settings.py:866 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:159 core/app_settings.py:822 +#: core/app_settings.py:156 core/app_settings.py:869 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:163 core/app_settings.py:826 +#: core/app_settings.py:161 core/app_settings.py:876 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:166 core/app_settings.py:829 +#: core/app_settings.py:163 core/app_settings.py:879 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:170 core/app_settings.py:833 +#: core/app_settings.py:167 core/app_settings.py:886 msgid "Use a secured connection" msgstr "Ober gant ur gevreadenn suraet" -#: core/app_settings.py:174 core/app_settings.py:835 +#: core/app_settings.py:171 core/app_settings.py:888 msgid "Use an SSL/STARTTLS connection to access the LDAP server" -msgstr "Implijit ur gevreadenn SSL/STARTTLS evit gellet tizhout ar servijer LDAP" +msgstr "" +"Implijit ur gevreadenn SSL/STARTTLS evit gellet tizhout ar servijer LDAP" -#: core/app_settings.py:178 core/app_settings.py:838 +#: core/app_settings.py:176 core/app_settings.py:895 msgid "Active Directory" msgstr "Kavlec'h oberiant" -#: core/app_settings.py:181 core/app_settings.py:840 +#: core/app_settings.py:178 core/app_settings.py:897 msgid "Tell if the LDAP server is an Active Directory one" msgstr "Lavarout a ra hag-eñ e vez ar servijer LDAP ur C'havlec'h Oberiant" -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "Strolladoù merañ" -#: core/app_settings.py:188 core/app_settings.py:845 -msgid "Members of those LDAP Posix groups will be created as domain administrators. Use ';' characters to separate groups." -msgstr "Izili ar strolladoù LDAP Posix a vo krouet evel bezañ merourien domani. Implijit an arouezoù ';' evit gellet skejañ ar strolladoù." +#: core/app_settings.py:185 core/app_settings.py:906 +msgid "" +"Members of those LDAP Posix groups will be created as domain administrators." +" Use ';' characters to separate groups." +msgstr "" +"Izili ar strolladoù LDAP Posix a vo krouet evel bezañ merourien domani. " +"Implijit an arouezoù ';' evit gellet skejañ ar strolladoù." -#: core/app_settings.py:195 core/app_settings.py:851 +#: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" msgstr "Doare ar strollad" -#: core/app_settings.py:199 core/app_settings.py:853 +#: core/app_settings.py:195 core/app_settings.py:917 msgid "The LDAP group type to use with your directory." msgstr "An doare strollad LDAP da implijout gant ho kavlec'h." -#: core/app_settings.py:204 core/app_settings.py:857 +#: core/app_settings.py:199 core/app_settings.py:924 msgid "Groups search base" msgstr "Diazez klask ar strolladoù" -#: core/app_settings.py:207 core/app_settings.py:859 +#: core/app_settings.py:202 core/app_settings.py:926 msgid "The distinguished name of the search base used to find groups" msgstr "Anv dibar an diaz klask implijet evit kavout strolladoù" -#: core/app_settings.py:213 core/app_settings.py:864 +#: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" msgstr "Perzhioù ar ger-tremen" -#: core/app_settings.py:215 core/app_settings.py:866 +#: core/app_settings.py:210 core/app_settings.py:936 msgid "The attribute used to store user passwords" msgstr "Ar perzhioù implijet evit stokiñ ar gerioù-tremen implijer" -#: core/app_settings.py:220 core/app_settings.py:869 +#: core/app_settings.py:214 core/app_settings.py:943 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:223 core/app_settings.py:874 +#: core/app_settings.py:217 core/app_settings.py:951 msgid "Authentication method" msgstr "Doare dilesañ" -#: core/app_settings.py:224 core/constants.py:59 +#: core/app_settings.py:219 core/constants.py:59 msgid "Search and bind" msgstr "Klask ha liammañ" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "liamm eeun" -#: core/app_settings.py:227 core/app_settings.py:877 +#: core/app_settings.py:223 core/app_settings.py:954 msgid "Choose the authentication method to use" msgstr "Dibabit an doare anavezadur da vezañ implijet" -#: core/app_settings.py:231 core/app_settings.py:285 core/app_settings.py:880 -#: core/app_settings.py:925 +#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961 +#: core/app_settings.py:1024 msgid "Bind DN" msgstr "Liammañ DN" -#: core/app_settings.py:234 core/app_settings.py:288 core/app_settings.py:882 -#: core/app_settings.py:927 -msgid "The distinguished name to use when binding to the LDAP server. Leave empty for an anonymous bind" -msgstr "An anv dibar da vezañ implijet evit en em liammañ ouzh ar servijer LDAP. Lezel goullo evit un liamm dizanv." +#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963 +#: core/app_settings.py:1026 +msgid "" +"The distinguished name to use when binding to the LDAP server. Leave empty " +"for an anonymous bind" +msgstr "" +"An anv dibar da vezañ implijet evit en em liammañ ouzh ar servijer LDAP. " +"Lezel goullo evit un liamm dizanv." -#: core/app_settings.py:241 core/app_settings.py:295 core/app_settings.py:888 -#: core/app_settings.py:932 +#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972 +#: core/app_settings.py:1034 msgid "Bind password" msgstr "Liammañ ur ger-tremen" -#: core/app_settings.py:244 core/app_settings.py:298 core/app_settings.py:890 -#: core/app_settings.py:934 +#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974 +#: core/app_settings.py:1036 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" -msgstr "Ar ger-tremen d'ober gantañ evit kevreañ ouzh ar servijer LDAP (gant 'kevreadenn DN')" +msgstr "" +"Ar ger-tremen d'ober gantañ evit kevreañ ouzh ar servijer LDAP (gant " +"'kevreadenn DN')" -#: core/app_settings.py:252 core/app_settings.py:344 core/app_settings.py:897 -#: core/app_settings.py:971 +#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984 +#: core/app_settings.py:1089 msgid "Users search base" msgstr "Diazez enklask an implijerien" -#: core/app_settings.py:255 core/app_settings.py:347 core/app_settings.py:899 -#: core/app_settings.py:973 +#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986 +#: core/app_settings.py:1091 msgid "The distinguished name of the search base used to find users" msgstr "Anv dibar an diaz enklask implijet evit kavout implijerien" -#: core/app_settings.py:261 core/app_settings.py:353 core/app_settings.py:905 -#: core/app_settings.py:979 +#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995 +#: core/app_settings.py:1100 msgid "Search filter" msgstr "Sil klask" -#: core/app_settings.py:264 core/app_settings.py:356 core/app_settings.py:907 -#: core/app_settings.py:981 -msgid "An optional filter string (e.g. '(objectClass=person)'). In order to be valid, it must be enclosed in parentheses." -msgstr "Ur chadenn sil diret (d.sk. '(objedKlas = person)'). Evit bezañ reizh, e rank bezañ enklozet etre krommelloù." +#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997 +#: core/app_settings.py:1102 +msgid "" +"An optional filter string (e.g. '(objectClass=person)'). In order to be " +"valid, it must be enclosed in parentheses." +msgstr "" +"Ur chadenn sil diret (d.sk. '(objedKlas = person)'). Evit bezañ reizh, e " +"rank bezañ enklozet etre krommelloù." -#: core/app_settings.py:271 core/app_settings.py:913 +#: core/app_settings.py:266 core/app_settings.py:1006 msgid "User DN template" msgstr "Patrom implijer DN" -#: core/app_settings.py:274 core/app_settings.py:915 +#: core/app_settings.py:269 core/app_settings.py:1008 #, python-format -msgid "The template used to construct a user's DN. It should contain one placeholder (ie. %(user)s)" -msgstr "Ar skouer implijet evit sevel DN un implijer. Rankout a rafe enderc'hel ur spas miret (d.l.e %(user)s)" +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" +msgstr "" +"Ar skouer implijet evit sevel DN un implijer. Rankout a rafe enderc'hel ur " +"spas miret (d.l.e %(user)s)" -#: core/app_settings.py:282 core/app_settings.py:921 +#: core/app_settings.py:276 core/app_settings.py:1017 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:306 core/app_settings.py:940 +#: core/app_settings.py:299 core/app_settings.py:1045 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:309 core/app_settings.py:942 -msgid "Enable automatic synchronization between local database and LDAP directory" +#: core/app_settings.py:302 core/app_settings.py:1047 +msgid "" +"Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:315 core/app_settings.py:948 +#: core/app_settings.py:308 core/app_settings.py:1056 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:319 core/app_settings.py:950 -msgid "Delete remote LDAP account when local account is deleted, otherwise it will be disabled." +#: core/app_settings.py:311 core/app_settings.py:1059 +msgid "" +"Delete remote LDAP account when local account is deleted, otherwise it will " +"be disabled." msgstr "" -#: core/app_settings.py:325 core/app_settings.py:956 +#: core/app_settings.py:317 core/app_settings.py:1068 msgid "Account DN template" msgstr "" -#: core/app_settings.py:328 core/app_settings.py:958 +#: core/app_settings.py:320 core/app_settings.py:1070 #, python-format -msgid "The template used to construct an account's DN. It should contain one placeholder (ie. %(user)s)" +msgid "" +"The template used to construct an account's DN. It should contain one " +"placeholder (ie. %(user)s)" msgstr "" -#: core/app_settings.py:335 core/app_settings.py:964 +#: core/app_settings.py:327 core/app_settings.py:1079 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:338 core/app_settings.py:966 +#: core/app_settings.py:330 core/app_settings.py:1081 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:363 core/app_settings.py:987 +#: core/app_settings.py:354 core/app_settings.py:1111 msgid "Username attribute" msgstr "" -#: core/app_settings.py:366 core/app_settings.py:989 +#: core/app_settings.py:357 core/app_settings.py:1113 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:371 core/app_settings.py:995 +#: core/app_settings.py:362 core/app_settings.py:1122 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:374 core/app_settings.py:997 +#: core/app_settings.py:365 core/app_settings.py:1124 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:380 core/app_settings.py:1002 +#: core/app_settings.py:370 core/app_settings.py:1132 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:384 core/app_settings.py:1004 -msgid "Location of the configuration file which contains Dovecot LDAP settings." +#: core/app_settings.py:374 core/app_settings.py:1134 +msgid "" +"Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:389 core/app_settings.py:1013 +#: core/app_settings.py:379 core/app_settings.py:1147 #: core/templates/core/dashboard.html:5 msgid "Dashboard" msgstr "Taolenn-stur" -#: core/app_settings.py:392 core/app_settings.py:1016 +#: core/app_settings.py:382 core/app_settings.py:1153 msgid "Custom RSS feed" msgstr "Froud RSS personel" -#: core/app_settings.py:395 core/app_settings.py:1018 +#: core/app_settings.py:385 core/app_settings.py:1155 msgid "Display custom RSS feed to resellers and domain administrators" -msgstr "Diskouez froudoù RSS personnel d'an eilgwerzherien ha merourien an domani" +msgstr "" +"Diskouez froudoù RSS personnel d'an eilgwerzherien ha merourien an domani" -#: core/app_settings.py:400 core/app_settings.py:1023 +#: core/app_settings.py:390 core/app_settings.py:1163 msgid "Hide features widget" msgstr "Kuzhat an arc'hweladurioù objed" -#: core/app_settings.py:403 core/app_settings.py:1025 +#: core/app_settings.py:393 core/app_settings.py:1165 msgid "Hide features widget for resellers and domain administrators" -msgstr "Kuzhat an arc'hweladurioù objed d'an eilgwerzherien ha merourien an domani" +msgstr "" +"Kuzhat an arc'hweladurioù objed d'an eilgwerzherien ha merourien an domani" -#: core/app_settings.py:407 core/app_settings.py:1032 +#: core/app_settings.py:397 core/app_settings.py:1177 msgid "Notifications" msgstr "Kemennadennoù" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 msgid "Sender address" msgstr "Chomlec'h ar c'haser" -#: core/app_settings.py:413 core/app_settings.py:1037 +#: core/app_settings.py:402 core/app_settings.py:1185 msgid "Email address used to send notifications." msgstr "Chomlec'h postel implijet da gas kemmennoù." -#: core/app_settings.py:417 core/app_settings.py:1042 +#: core/app_settings.py:405 core/app_settings.py:1196 msgid "Public API" msgstr "API foran" -#: core/app_settings.py:420 core/app_settings.py:1045 +#: core/app_settings.py:408 core/app_settings.py:1202 msgid "Enable communication" msgstr "Enaouiñ ar c'hehentiñ" -#: core/app_settings.py:423 +#: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" msgstr "Enaouiñ ar c'hehentiñ dre API foran Modoboa " -#: core/app_settings.py:427 core/app_settings.py:1050 +#: core/app_settings.py:414 core/app_settings.py:1211 msgid "Check new versions" msgstr "Klask stummoù nevez" -#: core/app_settings.py:430 core/app_settings.py:1047 core/app_settings.py:1053 +#: core/app_settings.py:416 core/app_settings.py:1204 +#: core/app_settings.py:1214 msgid "Automatically checks if a newer version is available" msgstr "Em-wiriañ ma vez ur stumm nevez hegerz" -#: core/app_settings.py:434 core/app_settings.py:1057 +#: core/app_settings.py:420 core/app_settings.py:1222 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:437 core/app_settings.py:1060 +#: core/app_settings.py:422 core/app_settings.py:1226 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:441 core/app_settings.py:1064 +#: core/app_settings.py:425 core/app_settings.py:1233 msgid "Recipient" msgstr "" -#: core/app_settings.py:444 core/app_settings.py:1067 +#: core/app_settings.py:427 core/app_settings.py:1236 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:449 core/app_settings.py:1071 +#: core/app_settings.py:431 core/app_settings.py:1243 msgid "Send statistics" msgstr "Kas statistikoù" -#: core/app_settings.py:452 core/app_settings.py:1074 +#: core/app_settings.py:434 core/app_settings.py:1246 msgid "Send statistics to Modoboa public API (counters and used extensions)" -msgstr "Kas ar statistikoù da API foran Modoboa (kontourioù hag an astennoù impliljet)" +msgstr "" +"Kas ar statistikoù da API foran Modoboa (kontourioù hag an astennoù " +"impliljet)" -#: core/app_settings.py:456 core/app_settings.py:1080 +#: core/app_settings.py:438 core/app_settings.py:1258 msgid "Miscellaneous" msgstr "A-bep seurt" -#: core/app_settings.py:459 core/app_settings.py:1083 +#: core/app_settings.py:441 core/app_settings.py:1265 #, fuzzy #| msgid "Inactive account threshold" msgid "Enable inactive account tracking" msgstr "Treuzoù ar c'hontoù dioberiant" -#: core/app_settings.py:461 core/app_settings.py:1085 -msgid "Allow the administrator to set a threshold (in days) beyond which an account is considered inactive if the user hasn't logged in" +#: core/app_settings.py:444 core/app_settings.py:1268 +msgid "" +"Allow the administrator to set a threshold (in days) beyond which an account" +" is considered inactive if the user hasn't logged in" msgstr "" -#: core/app_settings.py:467 core/app_settings.py:1091 +#: core/app_settings.py:451 core/app_settings.py:1277 msgid "Inactive account threshold" msgstr "Treuzoù ar c'hontoù dioberiant" -#: core/app_settings.py:470 core/app_settings.py:1094 -msgid "An account with a last login date greater than this threshold (in days) will be considered as inactive" -msgstr "Ur gont gant un deiziad kevreañ koshoc'h evit an treuzoù-se (e devezhioù) a vo kontet evel bezañ dioberiant" +#: core/app_settings.py:454 core/app_settings.py:1280 +msgid "" +"An account with a last login date greater than this threshold (in days) will" +" be considered as inactive" +msgstr "" +"Ur gont gant un deiziad kevreañ koshoc'h evit an treuzoù-se (e devezhioù) a " +"vo kontet evel bezañ dioberiant" -#: core/app_settings.py:476 core/app_settings.py:1099 +#: core/app_settings.py:460 core/app_settings.py:1289 msgid "Top notifications check interval" msgstr "Padelezh etre ar c'hemennoù gwiriañ pennañ" -#: core/app_settings.py:479 core/app_settings.py:1101 +#: core/app_settings.py:462 core/app_settings.py:1292 msgid "Interval between two top notification checks (in seconds)" msgstr "Padelezh etre div gwiriadenn gemennoù pennañ (en eilennoù)" -#: core/app_settings.py:484 core/app_settings.py:1105 +#: core/app_settings.py:466 core/app_settings.py:1299 msgid "Maximum log record age" msgstr "Oad enrollañ maksimom ar marilhoù" -#: core/app_settings.py:486 core/app_settings.py:1107 +#: core/app_settings.py:468 core/app_settings.py:1301 msgid "The maximum age in days of a log record" msgstr "Oad brasañ e devezhioù un enrollodenn renabl" -#: core/app_settings.py:490 core/app_settings.py:1110 +#: core/app_settings.py:472 core/app_settings.py:1308 msgid "Items per page" msgstr "Elfennoù dre bajenn" -#: core/app_settings.py:492 core/app_settings.py:1111 +#: core/app_settings.py:474 core/app_settings.py:1310 msgid "Number of displayed items per page" msgstr "Niver a elfennoù diskouezet dre bajenn" -#: core/app_settings.py:496 core/app_settings.py:1114 +#: core/app_settings.py:478 core/app_settings.py:1317 msgid "Default top redirection" msgstr "Adhenchañ pennañ dre-ziouer" -#: core/app_settings.py:500 core/app_settings.py:1116 +#: core/app_settings.py:482 core/app_settings.py:1319 msgid "The default redirection used when no application is specified" msgstr "An adheñchañ dre-ziouer implijet pa n'eus arload ebet spisaet" -#: core/app_settings.py:799 +#: core/app_settings.py:830 msgid "LDAP" msgstr "" -#: core/checks/settings_checks.py:6 -msgid "You have USE_TZ set to False, this may result in issues during transitions between summer/winter time (ie the same local time occuring twice due to clock change)." -msgstr "Bez ho peus lakaet USE_TZ da Gaou, gellout a ra degas kudennoù da vare an tremennadennoù eurvezh hañv/eurvezh goañv (d.l.e ar memes eurvezh lec'hel a c'hoarvez div wech abalamour d'ur cheñchamant horolaj)." +#: core/checks/settings_checks.py:7 +msgid "" +"You have USE_TZ set to False, this may result in issues during transitions " +"between summer/winter time (ie the same local time occuring twice due to " +"clock change)." +msgstr "" +"Bez ho peus lakaet USE_TZ da Gaou, gellout a ra degas kudennoù da vare an " +"tremennadennoù eurvezh hañv/eurvezh goañv (d.l.e ar memes eurvezh lec'hel a " +"c'hoarvez div wech abalamour d'ur cheñchamant horolaj)." -#: core/checks/settings_checks.py:9 +#: core/checks/settings_checks.py:11 msgid "Set `USE_TZ = True` in settings.py" msgstr "Lakaat `USE_TZ = Gwir e-barzh`arventennoù.py" @@ -2127,31 +2340,31 @@ msgstr "" msgid "Missing 2FA verification." msgstr "" -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "Ger-tremen kozh" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "Ger-termen nevez" -#: core/forms.py:76 +#: core/forms.py:79 msgid "Old password mismatchs" msgstr "Disklotadurioù ar ger-tremen kozh" -#: core/forms.py:89 +#: core/forms.py:92 msgid "Passwords mismatch" msgstr "Disklotadurioù gerioù-tremen" -#: core/forms.py:118 +#: core/forms.py:124 msgid "Enable API access" msgstr "Aotren moned an API" -#: core/forms.py:152 +#: core/forms.py:170 msgid "Verification code" msgstr "" -#: core/forms.py:163 +#: core/forms.py:181 msgid "Invalid code" msgstr "" @@ -2168,20 +2381,20 @@ msgstr "kemmet" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "%(object)s '%(name)s' %(action)s gant an implijer %(user)s" -#: core/handlers.py:63 +#: core/handlers.py:64 #, python-format msgid "%(object)s '%(name)s' %(action)s by " msgstr "%(object)s '%(name)s' %(action)s gant " -#: core/handlers.py:65 +#: core/handlers.py:67 msgid "deleted" msgstr "diverket" -#: core/handlers.py:69 +#: core/handlers.py:71 msgid "user {}" msgstr "implijer {}" -#: core/handlers.py:71 +#: core/handlers.py:73 msgid "management command" msgstr "meradur an urzhiad" @@ -2189,65 +2402,69 @@ msgstr "meradur an urzhiad" msgid "You can't delete your own account" msgstr "N'hallit ket diverkañ ho kont deoc'h-c'hwi hoc'h-unan" -#: core/handlers.py:131 +#: core/handlers.py:128 msgid "One or more updates are available" msgstr "Hegerz ez eus un hizivadenn pe muioc'h" -#: core/management/commands/communicate_with_public_api.py:44 +#: core/management/commands/communicate_with_public_api.py:42 msgid "[modoboa] Update(s) available" msgstr "" -#: core/models.py:52 +#: core/models.py:55 msgid "Allow mailboxes access" msgstr "Aotren ar moned d'ar boestoù-post" -#: core/models.py:54 +#: core/models.py:57 msgid "Allow this administrator to access user mailboxes" msgstr "Aotren an implijer-mañ da vont e boestoù-post an implijerien" -#: core/models.py:57 +#: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" msgstr "Ger-tremen" -#: core/models.py:60 +#: core/models.py:62 msgid "language" msgstr "yezh" -#: core/models.py:63 +#: core/models.py:66 msgid "Prefered language to display pages." msgstr "Yezh karetañ evit diskwel ar pajenoù" -#: core/models.py:72 +#: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." -msgstr "Gallout a reer ober gant un eil chomlec'h postel evit ezhommoù adtapout" +msgstr "" +"Gallout a reer ober gant un eil chomlec'h postel evit ezhommoù adtapout" -#: core/models.py:126 +#: core/models.py:131 msgid "Failed to update password: LDAP module not installed" msgstr "Hizivadur ger-tremen c'hwitet: modulenn LDAP nann-staliet" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "kont" -#: core/models.py:286 +#: core/models.py:294 msgid "Unknown" msgstr "Dizanv" -#: core/models.py:328 +#: core/models.py:337 msgid "You can't import an account with a role greater than yours" -msgstr "N'hallit ket emporzhiañ ur gont gant ur rol pouezusoc'h evit hoc'h hini deoc'h-c'hwi" +msgstr "" +"N'hallit ket emporzhiañ ur gont gant ur rol pouezusoc'h evit hoc'h hini " +"deoc'h-c'hwi" -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "An implijer eeun '%s' a rank kaout ur chomlec'h postel reizh" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" -msgstr "ar maeziennoù anv-implijer hag ar postel a rank bezañ disheñvel diouzh '%s'" +msgstr "" +"ar maeziennoù anv-implijer hag ar postel a rank bezañ disheñvel diouzh '%s'" -#: core/password_validation.py:24 +#: core/password_validation.py:25 msgid "Password must contain at least {} digit." msgid_plural "Password must contain at least {} digits." msgstr[0] "Ar ger-tremen a rank enderc'hel da vihanañ {} sifr." @@ -2256,7 +2473,7 @@ msgstr[2] "Ar ger-tremen a rank enderc'hel da vihanañ {} sifr." msgstr[3] "Ar ger-tremen a rank enderc'hel da vihanañ {} sifr." msgstr[4] "Ar ger-tremen a rank enderc'hel da vihanañ {} sifr." -#: core/password_validation.py:34 +#: core/password_validation.py:37 msgid "Password must contain at least {} lowercase letter." msgid_plural "Password must contain at least {} lowercase letters." msgstr[0] "Ar ger-tremen a rank enderc'hel da vihanañ {} lizherenn vunut." @@ -2265,7 +2482,7 @@ msgstr[2] "Ar ger-tremen a rank enderc'hel da vihanañ {} lizherenn vunut." msgstr[3] "Ar ger-tremen a rank enderc'hel da vihanañ {} lizherenn vunut." msgstr[4] "Ar ger-tremen a rank enderc'hel da vihanañ {} lizherenn vunut." -#: core/password_validation.py:45 +#: core/password_validation.py:49 msgid "Password must contain at least {} uppercase letter." msgid_plural "Password must contain at least {} uppercase letters." msgstr[0] "Ar ger-tremen a rank enderc'hel da vihanañ {} bennlizherenn." @@ -2274,7 +2491,7 @@ msgstr[2] "Ar ger-tremen a rank enderc'hel da vihanañ {} a bennlizherennoù." msgstr[3] "Ar ger-tremen a rank enderc'hel da vihanañ {} a bennlizherennoù." msgstr[4] "Ar ger-tremen a rank enderc'hel da vihanañ {} a bennlizherennoù." -#: core/password_validation.py:57 +#: core/password_validation.py:62 msgid "Password must contain at least {} special character." msgid_plural "Password must contain at least {} special characters." msgstr[0] "Ar ger-tremen a rank enderc'hel da vihanañ {} arouez ispisial." @@ -2283,55 +2500,56 @@ msgstr[2] "Ar ger-tremen a rank enderc'hel da vihanañ {} arouez ispisial." msgstr[3] "Ar ger-tremen a rank enderc'hel da vihanañ {} arouez ispisial." msgstr[4] "Ar ger-tremen a rank enderc'hel da vihanañ {} arouez ispisial." -#: core/password_validation.py:65 +#: core/password_validation.py:70 msgid "Your password must contain a combination of different character types." -msgstr "Rankout a ra enderc'hel ho ker-tremen ur c'henaozadur a arouezioù disheñvel." +msgstr "" +"Rankout a ra enderc'hel ho ker-tremen ur c'henaozadur a arouezioù disheñvel." -#: core/sms_backends/ovh.py:21 core/sms_backends/ovh.py:103 +#: core/sms_backends/ovh.py:21 core/sms_backends/ovh.py:102 msgid "API endpoint" msgstr "" -#: core/sms_backends/ovh.py:24 core/sms_backends/ovh.py:65 +#: core/sms_backends/ovh.py:24 core/sms_backends/ovh.py:62 msgid "OVH Europe" msgstr "" -#: core/sms_backends/ovh.py:25 core/sms_backends/ovh.py:66 +#: core/sms_backends/ovh.py:25 core/sms_backends/ovh.py:63 msgid "OVH US" msgstr "" -#: core/sms_backends/ovh.py:26 core/sms_backends/ovh.py:67 +#: core/sms_backends/ovh.py:26 core/sms_backends/ovh.py:64 msgid "OVH North-America" msgstr "" -#: core/sms_backends/ovh.py:27 core/sms_backends/ovh.py:68 +#: core/sms_backends/ovh.py:27 core/sms_backends/ovh.py:65 msgid "So you Start Europe" msgstr "" -#: core/sms_backends/ovh.py:28 core/sms_backends/ovh.py:69 +#: core/sms_backends/ovh.py:28 core/sms_backends/ovh.py:66 msgid "So you Start North America" msgstr "" -#: core/sms_backends/ovh.py:29 core/sms_backends/ovh.py:70 +#: core/sms_backends/ovh.py:29 core/sms_backends/ovh.py:67 msgid "Kimsufi Europe" msgstr "" -#: core/sms_backends/ovh.py:30 core/sms_backends/ovh.py:71 +#: core/sms_backends/ovh.py:30 core/sms_backends/ovh.py:68 msgid "Kimsufi North America" msgstr "" -#: core/sms_backends/ovh.py:37 core/sms_backends/ovh.py:107 +#: core/sms_backends/ovh.py:36 core/sms_backends/ovh.py:109 msgid "Application key" msgstr "" -#: core/sms_backends/ovh.py:44 +#: core/sms_backends/ovh.py:41 msgid "Application secret" msgstr "" -#: core/sms_backends/ovh.py:52 core/sms_backends/ovh.py:116 +#: core/sms_backends/ovh.py:49 core/sms_backends/ovh.py:124 msgid "Consumer key" msgstr "" -#: core/sms_backends/ovh.py:111 +#: core/sms_backends/ovh.py:116 #, fuzzy #| msgid "Applications" msgid "Appication secret" @@ -2358,8 +2576,12 @@ msgid "Latest news" msgstr "Keleier diwezhañ" #: core/templates/core/_latest_news_widget.html:19 -msgid "Visit the official weblog for more information." -msgstr "Kit d'ober un dro war ar weblog ofisiel evit kaout muioc'h a ditouroù." +msgid "" +"Visit the official " +"weblog for more information." +msgstr "" +"Kit d'ober un dro war ar weblog ofisiel evit kaout muioc'h a ditouroù." #: core/templates/core/api_access.html:3 msgid "API access" @@ -2371,8 +2593,12 @@ msgstr "Merit ho moned da API Modoboa" #: core/templates/core/api_access.html:7 #, python-format -msgid "A documentation of the API is available here." -msgstr "Un teuliadur diwar-benn an API a vez hegerzh amañ." +msgid "" +"A documentation of the API is available here." +msgstr "" +"Un teuliadur diwar-benn an API a vez hegerzh amañ." #: core/templates/core/api_access.html:14 msgid "API access token" @@ -2383,7 +2609,7 @@ msgstr "Jedaouer aotren moned API" msgid "Hello %(user)s." msgstr "Deiz mat deoc'h %(user)s." -#: core/templates/core/information.html:2 core/templatetags/core_tags.py:62 +#: core/templates/core/information.html:2 core/templatetags/core_tags.py:58 msgid "Information" msgstr "Titouroù" @@ -2397,7 +2623,9 @@ msgstr "Un hizivadenn pe muioc'h a zo hegerz!" #: core/templates/core/information.html:6 msgid "Check the following list to find the component(s) that can be updated." -msgstr "Sellit ouzh al listenn da-heul da welet hag-eñ e c'hall bezañ hizivaet ar parzh(ioù)." +msgstr "" +"Sellit ouzh al listenn da-heul da welet hag-eñ e c'hall bezañ hizivaet ar " +"parzh(ioù)." #: core/templates/core/information.html:10 msgid "Applications" @@ -2415,7 +2643,7 @@ msgstr "Stumm diwezhañ" msgid "Active users" msgstr "Implijerien oberiant" -#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:66 +#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:63 msgid "Logs" msgstr "Marilhoù" @@ -2444,7 +2672,7 @@ msgstr[2] "" msgstr[3] "" msgstr[4] "" -#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:71 +#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:70 msgid "Parameters" msgstr "Arventennoù" @@ -2461,12 +2689,12 @@ msgstr "Enrollañ" msgid "Modoboa settings" msgstr "Arventennoù Modoboa" -#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:90 +#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:95 msgid "Settings" msgstr "Arventennoù" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "Penndibaboù" @@ -2486,7 +2714,7 @@ msgstr "Hizivaat ho titouroù personel" msgid "Click here to update your password" msgstr "" -#: core/templates/core/user_security.html:2 core/templatetags/core_tags.py:124 +#: core/templates/core/user_security.html:2 core/templatetags/core_tags.py:145 msgid "Security" msgstr "" @@ -2497,7 +2725,9 @@ msgid "Two-Factor authentication" msgstr "Drekleur implijet evit bezañ anavezet" #: core/templates/core/user_security.html:17 -msgid "Install a soft token authenticator like FreeOTP or Google Authenticator from your application repository and use that app to scan this QR code." +msgid "" +"Install a soft token authenticator like FreeOTP or Google Authenticator from" +" your application repository and use that app to scan this QR code." msgstr "" #: core/templates/core/user_security.html:25 @@ -2509,18 +2739,27 @@ msgid "Register" msgstr "" #: core/templates/core/user_security.html:33 -msgid "Congratulations! Two-Factor Authentication is now enabled for your account." +msgid "" +"Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "" #: core/templates/core/user_security.html:38 #: core/templates/core/user_security.html:89 -msgid "The following recovery codes can be used one time each to let you regain access to your account, in case you lose your phone for example. Make sure to save them in a safe place, otherwise you won't be able to access your account anymore." +msgid "" +"The following recovery codes can be used one time each to let you regain " +"access to your account, in case you lose your phone for example. Make sure " +"to save them in a safe place, otherwise you won't be able to access your " +"account anymore." msgstr "" #: core/templates/core/user_security.html:53 msgid "Two-Factor Authentication is enabled for your account." msgstr "" +#: core/templates/core/user_security.html:57 +msgid "This will invalidate your registered application." +msgstr "" + #: core/templates/core/user_security.html:58 #, fuzzy #| msgctxt "checks" @@ -2528,12 +2767,18 @@ msgstr "" msgid "Disable 2FA" msgstr "Lazhet" +#: core/templates/core/user_security.html:60 +msgid "This will regenerate your tokens." +msgstr "" + #: core/templates/core/user_security.html:61 msgid "Reset recovery codes" msgstr "" #: core/templates/core/user_security.html:65 -msgid "Two-Factor Authentication (2FA) is not yet activated for your account. Enabling this feature will increase your account's security." +msgid "" +"Two-Factor Authentication (2FA) is not yet activated for your account. " +"Enabling this feature will increase your account's security." msgstr "" #: core/templates/core/user_security.html:73 @@ -2552,69 +2797,79 @@ msgstr "Enrolladenn DNS ebet kavet evit %s" msgid "Here are your new recovery codes. " msgstr "" +#: core/templates/core/user_security.html:118 +#, fuzzy +#| msgid "Crypt passwords" +msgid "Confirm your password" +msgstr "Kriptañ ar gerioù-tremen" + #: core/templatetags/core_tags.py:34 msgid "Modoboa" msgstr "Modoboa" -#: core/templatetags/core_tags.py:102 +#: core/templatetags/core_tags.py:110 msgid "Logout" msgstr "Digevreañ" -#: core/templatetags/core_tags.py:131 +#: core/templatetags/core_tags.py:154 msgid "API" msgstr "API" -#: core/utils.py:32 +#: core/utils.py:33 msgid "The core part of Modoboa" msgstr "Lodenn greiz Modoboa" -#: core/views/admin.py:43 +#: core/views/admin.py:42 msgid "Parameters saved" msgstr "Arventennoù enrollet" -#: core/views/auth.py:100 +#: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." -msgstr "Hoc'h anv-implijer hag ho ker-tremen na genglotont ket. Klaskit en-dro, mar plij." +msgstr "" +"Hoc'h anv-implijer hag ho ker-tremen na genglotont ket. Klaskit en-dro, mar " +"plij." -#: core/views/auth.py:135 +#: core/views/auth.py:144 msgid "User '{}' successfully logged out" msgstr "Implijer '{}' digevreet gant berzh" -#: core/views/user.py:59 +#: core/views/user.py:55 msgid "Profile updated" msgstr "Profil hizivaet" -#: core/views/user.py:88 +#: core/views/user.py:89 msgid "Preferences saved" msgstr "Arventennoù enrollet" -#: core/views/user.py:110 +#: core/views/user.py:118 msgid "Access updated" msgstr "Moned hizivaet" -#: dmarc/forms.py:38 dmarc/forms.py:51 +#: dmarc/forms.py:36 dmarc/forms.py:50 msgid "DNS settings" msgstr "Arventennoù DNS" -#: dmarc/forms.py:41 dmarc/forms.py:54 +#: dmarc/forms.py:39 dmarc/forms.py:56 msgid "Enable reverse lookups" msgstr "Enaouiñ an enklaskoù eilpennet" -#: dmarc/forms.py:44 dmarc/forms.py:56 +#: dmarc/forms.py:41 dmarc/forms.py:58 msgid "Enable reverse DNS lookups (reports will be longer to display)" -msgstr "Enaouiñ an enklaskoù DNS eilpennet (danevelloù a vo hiroc'h da vezañ diskouezet)" +msgstr "" +"Enaouiñ an enklaskoù DNS eilpennet (danevelloù a vo hiroc'h da vezañ " +"diskouezet)" -#: dmarc/forms.py:69 dmarc/forms.py:71 +#: dmarc/forms.py:74 dmarc/forms.py:78 #, fuzzy #| msgid "DMARC tools" msgid "DMARC" msgstr "Ostilhoù DMARC" -#: dmarc/handlers.py:20 +#: dmarc/handlers.py:21 msgid "Show DMARC report for {}" msgstr "Diskouez an danevell DMARC evit {}" -#: dmarc/lib.py:299 dmarc/templatetags/dmarc_tags.py:59 dmarc/views.py:123 +#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120 msgid "Not resolved" msgstr "" @@ -2650,11 +2905,11 @@ msgstr "Fazi padennek" msgid "Permanent error" msgstr "Fazi peurbadus" -#: dmarc/models.py:25 +#: dmarc/models.py:24 msgid "Policy" msgstr "Politikerezh" -#: dmarc/models.py:29 +#: dmarc/models.py:26 msgid "Soft failure" msgstr "Sac'hadenn wan" @@ -2730,95 +2985,95 @@ msgstr "" msgid "Unknown sources / Threats" msgstr "Mammennoù dizanv/Gourdrouzioù" -#: dnstools/lib.py:78 +#: dnstools/lib.py:82 msgid "Wrong ip4 mechanism syntax" msgstr "" -#: dnstools/lib.py:82 +#: dnstools/lib.py:86 msgid "Wrong IPv4 address format" msgstr "" -#: dnstools/lib.py:88 +#: dnstools/lib.py:92 msgid "Wrong ip6 mechanism syntax" msgstr "" -#: dnstools/lib.py:93 +#: dnstools/lib.py:97 msgid "Wrong IPv6 address format" msgstr "" -#: dnstools/lib.py:108 dnstools/lib.py:134 +#: dnstools/lib.py:111 dnstools/lib.py:136 msgid "Invalid syntax for {} mechanism" msgstr "" -#: dnstools/lib.py:110 +#: dnstools/lib.py:113 msgid "Invalid mask found {}" msgstr "" -#: dnstools/lib.py:155 +#: dnstools/lib.py:157 msgid "Not an SPF record" msgstr "" -#: dnstools/lib.py:177 +#: dnstools/lib.py:179 msgid "Unknown mechanism {}" msgstr "" -#: dnstools/lib.py:179 +#: dnstools/lib.py:181 msgid "Unknown modifier {}" msgstr "" -#: dnstools/lib.py:182 +#: dnstools/lib.py:184 msgid "Duplicate modifier {} found" msgstr "" -#: dnstools/lib.py:186 +#: dnstools/lib.py:188 msgid "No mechanism found" msgstr "" -#: dnstools/lib.py:193 +#: dnstools/lib.py:195 msgid "Not a valid DKIM record" msgstr "" -#: dnstools/lib.py:201 dnstools/lib.py:254 +#: dnstools/lib.py:203 dnstools/lib.py:256 msgid "Invalid tag {}" msgstr "" -#: dnstools/lib.py:206 +#: dnstools/lib.py:208 msgid "No key found in record" msgstr "" -#: dnstools/lib.py:213 +#: dnstools/lib.py:215 msgid "Wrong value {} for tag {}" msgstr "" -#: dnstools/lib.py:228 +#: dnstools/lib.py:230 msgid "Wrong value {} for tag {}:" msgstr "" -#: dnstools/lib.py:232 +#: dnstools/lib.py:234 msgid " not an integer" msgstr "" -#: dnstools/lib.py:235 +#: dnstools/lib.py:236 msgid " less than {}" msgstr "" -#: dnstools/lib.py:238 +#: dnstools/lib.py:239 msgid " greater than {}" msgstr "" -#: dnstools/lib.py:246 +#: dnstools/lib.py:248 msgid "Not a valid DMARC record" msgstr "" -#: dnstools/lib.py:257 +#: dnstools/lib.py:259 msgid "Unknown tag {}" msgstr "" -#: dnstools/lib.py:262 +#: dnstools/lib.py:264 msgid "Missing required p tag" msgstr "" -#: dnstools/models.py:75 +#: dnstools/models.py:78 msgid "Public key mismatchs" msgstr "" @@ -2847,7 +3102,9 @@ msgid "A DNS record has been found but its syntax is not valid:" msgstr "" #: dnstools/templates/dnstools/domain_dns_configuration.html:7 -msgid "Here is an example of DNS configuration (bind format). Replace value between [ ] by the appropriate ones." +msgid "" +"Here is an example of DNS configuration (bind format). Replace value between" +" [ ] by the appropriate ones." msgstr "" #: dnstools/templates/dnstools/domain_dns_configuration.html:15 @@ -2863,7 +3120,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2871,95 +3128,103 @@ msgstr "" msgid "Auto configuration records for {}" msgstr "" -#: dnstools/views.py:84 +#: dnstools/views.py:80 msgid "DNS configuration for {}" msgstr "" -#: imap_migration/api/v2/serializers.py:52 +#: imap_migration/api/v2/serializers.py:117 #, fuzzy #| msgid "Access updated" msgid "Access denied" msgstr "Moned hizivaet" -#: imap_migration/app_settings.py:17 imap_migration/app_settings.py:67 +#: imap_migration/app_settings.py:23 imap_migration/app_settings.py:102 #, fuzzy #| msgid "Enable DKIM signing" msgid "Enable IMAP Migration" msgstr "Enaouiñ ar sinadur DKIM" -#: imap_migration/app_settings.py:19 imap_migration/app_settings.py:69 +#: imap_migration/app_settings.py:24 imap_migration/app_settings.py:104 #, fuzzy #| msgid "Enable DKIM signing" msgid "Enable IMAP Migration." msgstr "Enaouiñ ar sinadur DKIM" -#: imap_migration/app_settings.py:24 +#: imap_migration/app_settings.py:34 msgid "OfflineIMAP" msgstr "" -#: imap_migration/app_settings.py:27 imap_migration/app_settings.py:75 +#: imap_migration/app_settings.py:40 imap_migration/app_settings.py:110 msgid "Concurrent sync jobs" msgstr "" -#: imap_migration/app_settings.py:29 imap_migration/app_settings.py:77 +#: imap_migration/app_settings.py:42 imap_migration/app_settings.py:112 msgid "The maximum number of concurrent synchronization jobs" msgstr "" -#: imap_migration/app_settings.py:34 +#: imap_migration/app_settings.py:53 msgid "OfflineIMAP Filter" msgstr "" -#: imap_migration/app_settings.py:37 imap_migration/app_settings.py:83 +#: imap_migration/app_settings.py:59 imap_migration/app_settings.py:118 #, fuzzy #| msgid "Create aliases" msgid "Create Folders" msgstr "Krouiñ aliasoù" -#: imap_migration/app_settings.py:39 imap_migration/app_settings.py:85 +#: imap_migration/app_settings.py:61 imap_migration/app_settings.py:120 msgid "Allow Creation of missing folders during sync" msgstr "" -#: imap_migration/app_settings.py:42 imap_migration/app_settings.py:90 +#: imap_migration/app_settings.py:68 imap_migration/app_settings.py:125 msgid "Folder Filter Exclusions" msgstr "" -#: imap_migration/app_settings.py:44 imap_migration/app_settings.py:93 -msgid "Use a regular expression to explicitly include folders in sync. Example: ^Trash$|Del" +#: imap_migration/app_settings.py:70 imap_migration/app_settings.py:128 +msgid "" +"Use a regular expression to explicitly include folders in sync. Example: " +"^Trash$|Del" msgstr "" -#: imap_migration/app_settings.py:48 imap_migration/app_settings.py:100 +#: imap_migration/app_settings.py:78 imap_migration/app_settings.py:135 msgid "Folder Filter Inclusions" msgstr "" -#: imap_migration/app_settings.py:50 imap_migration/app_settings.py:103 -msgid "A comma seperated list of folders to explicitly include in sync even if filtered by the Folder Filter Exclusions. Example: debian.user, debian.personal " +#: imap_migration/app_settings.py:80 imap_migration/app_settings.py:138 +msgid "" +"A comma seperated list of folders to explicitly include in sync even if " +"filtered by the Folder Filter Exclusions. Example: debian.user, " +"debian.personal " msgstr "" -#: imap_migration/app_settings.py:72 +#: imap_migration/app_settings.py:107 #, fuzzy #| msgid "LDAP settings" msgid "OfflineIMAP settings" msgstr "Arventennoù LDAP" -#: imap_migration/app_settings.py:80 +#: imap_migration/app_settings.py:115 msgid "OfflineIMAP Filter settings" msgstr "" -#: imap_migration/apps.py:18 imap_migration/apps.py:20 +#: imap_migration/apps.py:18 imap_migration/apps.py:23 msgid "IMAP Migration" msgstr "" -#: imap_migration/auth_backends.py:46 +#: imap_migration/auth_backends.py:49 #, python-format msgid "Connection to IMAP server failed: %s" msgstr "" -#: imap_migration/checks.py:11 -msgid "Automatic domain/mailbox creation is disabled which means IMAP authentication won't work." +#: imap_migration/checks.py:12 +msgid "" +"Automatic domain/mailbox creation is disabled which means IMAP " +"authentication won't work." msgstr "" -#: imap_migration/checks.py:13 -msgid "Go to the online parameters panel (admin tab) and activate this feature." +#: imap_migration/checks.py:16 +msgid "" +"Go to the online parameters panel (admin tab) and activate this feature." msgstr "" #: imap_migration/templates/imap_migration/index.html:6 @@ -2968,52 +3233,52 @@ msgstr "" msgid "IMAP migration" msgstr "Melestradurezh" -#: ldapsync/lib.py:84 +#: ldapsync/lib.py:82 msgid "Failed to create LDAP account: {}" msgstr "" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" msgstr "" -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" msgstr "" -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" msgstr "" -#: lib/api_client.py:36 lib/api_client.py:72 lib/api_client.py:87 -#: lib/api_client.py:92 +#: lib/api_client.py:35 lib/api_client.py:69 lib/api_client.py:83 +#: lib/api_client.py:87 #, fuzzy, python-format #| msgid "Enable communication with Modoboa public API" msgid "Failed to communicate with public API: %s" msgstr "Enaouiñ ar c'hehentiñ dre API foran Modoboa " -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "Neket kefluniet ar gevreadenn ouzh an diaz-roadenn %s" -#: lib/email_utils.py:143 lib/email_utils.py:363 +#: lib/email_utils.py:139 lib/email_utils.py:350 msgid "unable to determine encoding of string" msgstr "n'heller ket termeniñ enkodiñ ar chadenn" -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "Aotreadur nac'het: %s" -#: lib/exceptions.py:68 +#: lib/exceptions.py:84 msgid "Permission denied" msgstr "Aotreadur nac'het" -#: lib/fields.py:15 lib/validators.py:14 +#: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" msgstr "Ebarzhiñ un anv domani reizh" -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." msgstr "Ebarzhit ur chomlec'h postel reizh." @@ -3023,133 +3288,178 @@ msgstr "Ebarzhit ur chomlec'h postel reizh." msgid "Submit" msgstr "Kas" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 msgid "Failed to update password: {}" msgstr "C'hwitet ez eus bet war hizivadur ar ger-tremen: {}" -#: lib/templatetags/lib_tags.py:107 templates/common/email_searchbar.html:17 +#: lib/templatetags/lib_tags.py:120 templates/common/email_searchbar.html:17 msgid "Subject" msgstr "Sujed" -#: limits/app_settings.py:17 limits/app_settings.py:154 +#: limits/app_settings.py:17 limits/app_settings.py:147 msgid "Default per-admin limits" msgstr "Bevennoù dre-ziouer dre-verour" -#: limits/app_settings.py:20 limits/app_settings.py:157 +#: limits/app_settings.py:20 limits/app_settings.py:153 msgid "Enable per-admin limits" msgstr "Enaouiñ bevennoù diouer dre-verour" -#: limits/app_settings.py:22 limits/app_settings.py:158 +#: limits/app_settings.py:22 limits/app_settings.py:154 msgid "Enable or disable per-admin limits" msgstr "Enaouiñ pe lazhañ ar bevennoù dre-verour" -#: limits/app_settings.py:26 limits/app_settings.py:97 -#: limits/app_settings.py:161 limits/app_settings.py:220 limits/constants.py:24 -#: limits/constants.py:54 +#: limits/app_settings.py:26 limits/app_settings.py:91 +#: limits/app_settings.py:160 limits/app_settings.py:245 +#: limits/constants.py:47 limits/constants.py:101 msgid "Domain admins" msgstr "Merourien domani" -#: limits/app_settings.py:29 limits/app_settings.py:164 -msgid "Maximum number of allowed domain administrators for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Niver brasañ a verourien zomani aotreet evit ur merour nevez anezhañ. (0 evit berzañ kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" +#: limits/app_settings.py:29 limits/app_settings.py:163 +msgid "" +"Maximum number of allowed domain administrators for a new administrator. (0 " +"to deny any creation, -1 to allow unlimited creations)" +msgstr "" +"Niver brasañ a verourien zomani aotreet evit ur merour nevez anezhañ. (0 " +"evit berzañ kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" -#: limits/app_settings.py:40 limits/app_settings.py:173 -msgid "Maximum number of allowed domains for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Niver brasañ a zomanioù aotreet evit ur merour nevez anezhañ. (0 evit berzañ kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" +#: limits/app_settings.py:39 limits/app_settings.py:175 +msgid "" +"Maximum number of allowed domains for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" +msgstr "" +"Niver brasañ a zomanioù aotreet evit ur merour nevez anezhañ. (0 evit berzañ" +" kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" -#: limits/app_settings.py:50 limits/app_settings.py:181 -msgid "Maximum number of allowed domain aliases for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Niver brasañ a aliasoù domani aotreet evit ur merour nevez anezhañ. (0 evit berzañ kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" +#: limits/app_settings.py:48 limits/app_settings.py:186 +msgid "" +"Maximum number of allowed domain aliases for a new administrator. (0 to deny" +" any creation, -1 to allow unlimited creations)" +msgstr "" +"Niver brasañ a aliasoù domani aotreet evit ur merour nevez anezhañ. (0 evit " +"berzañ kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" -#: limits/app_settings.py:61 limits/app_settings.py:190 -msgid "Maximum number of allowed mailboxes for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Niver brasañ a voestoù-postel aotreet evit ur merour nevez anezhañ. (0 evit berzañ kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" +#: limits/app_settings.py:58 limits/app_settings.py:198 +msgid "" +"Maximum number of allowed mailboxes for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" +msgstr "" +"Niver brasañ a voestoù-postel aotreet evit ur merour nevez anezhañ. (0 evit " +"berzañ kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" -#: limits/app_settings.py:71 limits/app_settings.py:199 -msgid "Maximum number of allowed aliases for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Niver brasañ a aliasoù aotreet evit ur merour nevez anezhañ. (0 evit berzañ kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" +#: limits/app_settings.py:67 limits/app_settings.py:210 +msgid "" +"Maximum number of allowed aliases for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" +msgstr "" +"Niver brasañ a aliasoù aotreet evit ur merour nevez anezhañ. (0 evit berzañ " +"kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" -#: limits/app_settings.py:81 limits/app_settings.py:206 -msgid "The quota a reseller will be allowed to share between the domains he creates. (0 means no quota)" -msgstr "Kota un eilgwerzher a vo aotreet da rannañ kenetre an domanioù krouet gantañ. (0 a dalvez tamm kota ebet)" +#: limits/app_settings.py:76 limits/app_settings.py:220 +msgid "" +"The quota a reseller will be allowed to share between the domains he " +"creates. (0 means no quota)" +msgstr "" +"Kota un eilgwerzher a vo aotreet da rannañ kenetre an domanioù krouet " +"gantañ. (0 a dalvez tamm kota ebet)" -#: limits/app_settings.py:88 limits/app_settings.py:213 +#: limits/app_settings.py:82 limits/app_settings.py:232 msgid "Default per-domain limits" msgstr "Bevennoù dre-zomani dre-ziouer" -#: limits/app_settings.py:91 limits/app_settings.py:216 +#: limits/app_settings.py:85 limits/app_settings.py:238 msgid "Enable per-domain limits" msgstr "Enaouiñ ar bevennoù dre-zomani" -#: limits/app_settings.py:93 limits/app_settings.py:217 +#: limits/app_settings.py:87 limits/app_settings.py:239 msgid "Enable or disable per-domain limits" msgstr "Enaouiñ pe lazhañ ar bevennoù dre-zomani" -#: limits/app_settings.py:100 limits/app_settings.py:223 -msgid "Maximum number of allowed domain administrators for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Niver brasañ a verourien zomani aotreet evit un domani nevez (0 evit berzañ kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" +#: limits/app_settings.py:94 limits/app_settings.py:248 +msgid "" +"Maximum number of allowed domain administrators for a new domain. (0 to deny" +" any creation, -1 to allow unlimited creations)" +msgstr "" +"Niver brasañ a verourien zomani aotreet evit un domani nevez (0 evit berzañ " +"kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" -#: limits/app_settings.py:111 limits/app_settings.py:232 -msgid "Maximum number of allowed domain aliases for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Niver brasañ a aliasoù domani aotreet evit un domani nevez anezhañ. (0 evit berzañ kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" +#: limits/app_settings.py:104 limits/app_settings.py:260 +msgid "" +"Maximum number of allowed domain aliases for a new domain. (0 to deny any " +"creation, -1 to allow unlimited creations)" +msgstr "" +"Niver brasañ a aliasoù domani aotreet evit un domani nevez anezhañ. (0 evit " +"berzañ kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" -#: limits/app_settings.py:122 limits/app_settings.py:241 -msgid "Maximum number of allowed mailboxes for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Niver brasañ a voestoù-postel aotreet evit un domani nevez anezhañ. (0 evit berzañ kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" +#: limits/app_settings.py:114 limits/app_settings.py:272 +msgid "" +"Maximum number of allowed mailboxes for a new domain. (0 to deny any " +"creation, -1 to allow unlimited creations)" +msgstr "" +"Niver brasañ a voestoù-postel aotreet evit un domani nevez anezhañ. (0 evit " +"berzañ kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" -#: limits/app_settings.py:132 limits/app_settings.py:249 -msgid "Maximum number of allowed aliases for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" -msgstr "Niver brasañ a aliasoù aotreet evit un domani nevez anezhañ. (0 evit berzañ kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" +#: limits/app_settings.py:123 limits/app_settings.py:283 +msgid "" +"Maximum number of allowed aliases for a new domain. (0 to deny any creation," +" -1 to allow unlimited creations)" +msgstr "" +"Niver brasañ a aliasoù aotreet evit un domani nevez anezhañ. (0 evit berzañ " +"kement krouidigezh, -1 evit aotren ar c'hrouidigezhioù divevenn)" -#: limits/apps.py:13 limits/apps.py:15 +#: limits/apps.py:13 limits/apps.py:17 msgid "Limits" msgstr "Bevennoù" -#: limits/constants.py:10 +#: limits/constants.py:14 msgid "Maximum number of domains this user can create" msgstr "Niver brasañ a zomanioù a c'hall bezañ krouet gant an implijer-mañ" -#: limits/constants.py:14 +#: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" -msgstr "Niver brasañ a aliasoù domanioù a c'hall bezañ krouet gant an implijer-mañ" +msgstr "" +"Niver brasañ a aliasoù domanioù a c'hall bezañ krouet gant an implijer-mañ" -#: limits/constants.py:18 +#: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" -msgstr "Niver brasañ a voestoù-postel a c'hall bezañ krouet gant an implijer-mañ" +msgstr "" +"Niver brasañ a voestoù-postel a c'hall bezañ krouet gant an implijer-mañ" -#: limits/constants.py:21 +#: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" -msgstr "Niver brasañ a aliasoù boest-postel a c'hall bezañ krouet gant an implijer-mañ" +msgstr "" +"Niver brasañ a aliasoù boest-postel a c'hall bezañ krouet gant an implijer-" +"mañ" -#: limits/constants.py:25 +#: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" -msgstr "Niver brasañ a verourien domani a c'hall bezañ krouet gant an implijer-mañ" +msgstr "" +"Niver brasañ a verourien domani a c'hall bezañ krouet gant an implijer-mañ" -#: limits/constants.py:31 +#: limits/constants.py:60 msgid "Quota shared between domains of this reseller" msgstr "Kota rannet kenetre domanioù an eilgwerzher-mañ" -#: limits/constants.py:42 +#: limits/constants.py:77 msgid "Maximum number of domain aliases allowed for this domain." msgstr "Niver brasañ a aliasoù domani aotreet evit an domani-mañ." -#: limits/constants.py:46 +#: limits/constants.py:85 msgid "Maximum number of mailboxes allowed for this domain." msgstr "Niver brasañ a voestoù-postel aotreet evit an domani-mañ." -#: limits/constants.py:50 +#: limits/constants.py:93 msgid "Maximum number of mailbox aliases allowed for this domain." msgstr "Niver brasañ a aliasoù aotreet evit an domani-mañ." -#: limits/constants.py:55 +#: limits/constants.py:102 msgid "Maximum number of domain admins allowed for this domain." msgstr "Niver brasañ a verourien zomani aotreet evit an domani-mañ." -#: limits/forms.py:38 limits/forms.py:87 +#: limits/forms.py:38 limits/forms.py:88 msgid "Invalid limit" msgstr "Bevenn fall" -#: limits/handlers.py:118 limits/handlers.py:154 +#: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" msgstr "Mammennoù" @@ -3162,11 +3472,11 @@ msgstr "%s: bevenn tizhet" msgid "Not enough resources" msgstr "Ket trawalc'h a vammennoù" -#: limits/lib.py:47 limits/models.py:47 +#: limits/lib.py:46 limits/models.py:46 msgid "You're not allowed to define unlimited values" msgstr "N'hoc'h ket aotreet da dermeniñ talvoudegezhioù divevenn" -#: limits/models.py:57 limits/models.py:121 +#: limits/models.py:56 limits/models.py:119 msgid "unlimited" msgstr "divevennet" @@ -3175,97 +3485,97 @@ msgstr "divevennet" msgid "Resources usage" msgstr "Implij mammennoù" -#: maillog/api/v2/serializers.py:36 +#: maillog/api/v2/serializers.py:35 msgid "You must provide start and end dates when period is custom" msgstr "" -#: maillog/forms.py:23 +#: maillog/apps.py:20 maillog/forms.py:23 msgid "Path to the log file" msgstr "" -#: maillog/forms.py:25 +#: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" msgstr "" -#: maillog/forms.py:30 +#: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" msgstr "" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 msgid "Show greylisted messages" msgstr "" -#: maillog/forms.py:41 +#: maillog/apps.py:40 maillog/forms.py:40 msgid "Differentiate between hard and soft rejects (greylisting)" msgstr "" -#: maillog/forms.py:59 maillog/handlers.py:22 +#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21 #, fuzzy #| msgid "Send statistics" msgid "Statistics" msgstr "Kas statistikoù" -#: maillog/graphics.py:93 +#: maillog/graphics.py:91 msgid "Failed to locate rrdtool binary." msgstr "" -#: maillog/graphics.py:170 +#: maillog/graphics.py:168 msgid "Average traffic (msgs/min)" msgstr "" -#: maillog/graphics.py:173 +#: maillog/graphics.py:171 #, fuzzy #| msgid "Message" msgid "sent messages" msgstr "Kemennadenn" -#: maillog/graphics.py:174 +#: maillog/graphics.py:172 msgid "received messages" msgstr "" -#: maillog/graphics.py:175 +#: maillog/graphics.py:173 msgid "bounced messages" msgstr "" -#: maillog/graphics.py:176 +#: maillog/graphics.py:174 msgid "rejected messages" msgstr "" -#: maillog/graphics.py:177 +#: maillog/graphics.py:175 msgid "virus messages" msgstr "" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 #, fuzzy #| msgid "Message" msgid "spam messages" msgstr "Kemennadenn" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 msgid "greylisted messages" msgstr "" -#: maillog/graphics.py:196 +#: maillog/graphics.py:200 msgid "Average normal traffic size (bytes/min)" msgstr "" -#: maillog/graphics.py:199 +#: maillog/graphics.py:203 msgid "received size" msgstr "" -#: maillog/graphics.py:201 +#: maillog/graphics.py:204 msgid "sent size" msgstr "" -#: maillog/graphics.py:209 +#: maillog/graphics.py:211 msgid "Mail traffic" msgstr "" -#: maillog/graphics.py:253 +#: maillog/graphics.py:254 msgid "Average account creation (account/hour)" msgstr "" @@ -3303,199 +3613,205 @@ msgstr "" msgid "No statistics available" msgstr "Arventenn hegerz ebet." -#: maillog/views.py:40 +#: maillog/views.py:39 msgid "Day" msgstr "" -#: maillog/views.py:41 +#: maillog/views.py:40 msgid "Week" msgstr "" -#: maillog/views.py:42 +#: maillog/views.py:41 msgid "Month" msgstr "" -#: maillog/views.py:43 +#: maillog/views.py:42 msgid "Year" msgstr "" -#: maillog/views.py:44 +#: maillog/views.py:43 msgid "Custom" msgstr "" -#: maillog/views.py:64 +#: maillog/views.py:66 #, fuzzy #| msgid "Unknown domain %s" msgid "Unknown graphic set" msgstr "Domani dizanv %s" -#: maillog/views.py:69 +#: maillog/views.py:71 #, fuzzy #| msgid "Unknown domain %s" msgid "Unknown domain" msgstr "Domani dizanv %s" -#: maillog/views.py:74 +#: maillog/views.py:76 msgid "Bad custom period" msgstr "" -#: pdfcredentials/api/v2/serializers.py:31 pdfcredentials/app_settings.py:164 -#: pdfcredentials/documents.py:52 +#: pdfcredentials/api/v2/serializers.py:31 pdfcredentials/app_settings.py:236 +#: pdfcredentials/documents.py:60 #, fuzzy #| msgid "Update your personal information" msgid "Personal account information" msgstr "Hizivaat ho titouroù personel" -#: pdfcredentials/api/v2/serializers.py:54 +#: pdfcredentials/api/v2/serializers.py:61 #, fuzzy #| msgid "Directory not found." msgid "Directory is not writable" msgstr "Neket bet kavet an domani." -#: pdfcredentials/api/v2/serializers.py:76 pdfcredentials/views.py:28 +#: pdfcredentials/api/v2/serializers.py:82 pdfcredentials/views.py:26 #, fuzzy #| msgid "No information available for this domain." msgid "No document available for this user" msgstr "Titour ebet hegerz evit an domani-mañ." -#: pdfcredentials/app_settings.py:23 pdfcredentials/app_settings.py:126 +#: pdfcredentials/app_settings.py:29 pdfcredentials/app_settings.py:198 #, fuzzy #| msgid "Enable DNS checks" msgid "Enable PDF credentials" msgstr "Enaouiñ ar gwiriañ DNS" -#: pdfcredentials/app_settings.py:25 pdfcredentials/app_settings.py:128 +#: pdfcredentials/app_settings.py:31 pdfcredentials/app_settings.py:200 msgid "Enabled PDF credentials document generation on account creation." msgstr "" -#: pdfcredentials/app_settings.py:30 pdfcredentials/app_settings.py:131 +#: pdfcredentials/app_settings.py:42 pdfcredentials/app_settings.py:203 msgid "Documents storage" msgstr "" -#: pdfcredentials/app_settings.py:33 pdfcredentials/app_settings.py:134 +#: pdfcredentials/app_settings.py:48 pdfcredentials/app_settings.py:206 msgid "Directory to save documents into" msgstr "" -#: pdfcredentials/app_settings.py:35 pdfcredentials/app_settings.py:136 +#: pdfcredentials/app_settings.py:50 pdfcredentials/app_settings.py:208 msgid "Path to a directory where PDF documents will be saved" msgstr "" -#: pdfcredentials/app_settings.py:40 pdfcredentials/app_settings.py:139 +#: pdfcredentials/app_settings.py:61 pdfcredentials/app_settings.py:211 #, fuzzy #| msgid "Description" msgid "Security options" msgstr "Deskrivadur" -#: pdfcredentials/app_settings.py:43 pdfcredentials/app_settings.py:142 +#: pdfcredentials/app_settings.py:67 pdfcredentials/app_settings.py:214 msgid "Delete documents after the first download" msgstr "" -#: pdfcredentials/app_settings.py:45 pdfcredentials/app_settings.py:145 -msgid "Automatically delete a document just after its first download from this interface" +#: pdfcredentials/app_settings.py:69 pdfcredentials/app_settings.py:217 +msgid "" +"Automatically delete a document just after its first download from this " +"interface" msgstr "" -#: pdfcredentials/app_settings.py:50 pdfcredentials/app_settings.py:151 +#: pdfcredentials/app_settings.py:78 pdfcredentials/app_settings.py:223 msgid "Generate documents only at account creation" msgstr "" -#: pdfcredentials/app_settings.py:52 pdfcredentials/app_settings.py:154 -msgid "Generate a new document only when a new account is created. If set to no, a new document will be created each time a password is updated." +#: pdfcredentials/app_settings.py:81 pdfcredentials/app_settings.py:226 +msgid "" +"Generate a new document only when a new account is created. If set to no, a " +"new document will be created each time a password is updated." msgstr "" -#: pdfcredentials/app_settings.py:60 pdfcredentials/app_settings.py:160 +#: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:232 msgid "Customization options" msgstr "" -#: pdfcredentials/app_settings.py:63 pdfcredentials/app_settings.py:163 +#: pdfcredentials/app_settings.py:100 pdfcredentials/app_settings.py:235 msgid "Title" msgstr "" -#: pdfcredentials/app_settings.py:64 pdfcredentials/app_settings.py:165 +#: pdfcredentials/app_settings.py:101 pdfcredentials/app_settings.py:237 msgid "The document's title" msgstr "" -#: pdfcredentials/app_settings.py:67 pdfcredentials/app_settings.py:169 +#: pdfcredentials/app_settings.py:107 pdfcredentials/app_settings.py:241 msgid "Web panel url" msgstr "" -#: pdfcredentials/app_settings.py:68 pdfcredentials/app_settings.py:170 +#: pdfcredentials/app_settings.py:108 pdfcredentials/app_settings.py:241 msgid "URL of the Modoboa web panel" msgstr "" -#: pdfcredentials/app_settings.py:71 pdfcredentials/app_settings.py:174 +#: pdfcredentials/app_settings.py:114 pdfcredentials/app_settings.py:245 #, fuzzy #| msgid "Custom RSS feed" msgid "Custom message" msgstr "Froud RSS personel" -#: pdfcredentials/app_settings.py:73 pdfcredentials/app_settings.py:176 +#: pdfcredentials/app_settings.py:116 pdfcredentials/app_settings.py:246 msgid "A custom message that will appear at the end of documents" msgstr "" -#: pdfcredentials/app_settings.py:77 pdfcredentials/app_settings.py:181 +#: pdfcredentials/app_settings.py:123 pdfcredentials/app_settings.py:251 msgid "Include mail client connection settings" msgstr "" -#: pdfcredentials/app_settings.py:79 pdfcredentials/app_settings.py:184 -msgid "Include required SMTP and IMAP connection information to configure a mail client, a tablet or a phone" +#: pdfcredentials/app_settings.py:125 pdfcredentials/app_settings.py:254 +msgid "" +"Include required SMTP and IMAP connection information to configure a mail " +"client, a tablet or a phone" msgstr "" -#: pdfcredentials/app_settings.py:84 pdfcredentials/app_settings.py:190 -#: pdfcredentials/documents.py:107 +#: pdfcredentials/app_settings.py:133 pdfcredentials/app_settings.py:260 +#: pdfcredentials/documents.py:133 #, fuzzy #| msgid "Server address" msgid "SMTP server address" msgstr "Chomlec'h ar servijer" -#: pdfcredentials/app_settings.py:86 pdfcredentials/app_settings.py:191 +#: pdfcredentials/app_settings.py:136 pdfcredentials/app_settings.py:261 msgid "Address of the SMTP server (hostname or IP)" msgstr "" -#: pdfcredentials/app_settings.py:89 pdfcredentials/app_settings.py:195 -#: pdfcredentials/documents.py:108 +#: pdfcredentials/app_settings.py:143 pdfcredentials/app_settings.py:265 +#: pdfcredentials/documents.py:134 #, fuzzy #| msgid "Server port" msgid "SMTP server port" msgstr "Porzh ar servijer" -#: pdfcredentials/app_settings.py:91 pdfcredentials/app_settings.py:197 +#: pdfcredentials/app_settings.py:145 pdfcredentials/app_settings.py:267 msgid "Listening port of the SMTP server" msgstr "" -#: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:201 -#: pdfcredentials/documents.py:109 +#: pdfcredentials/app_settings.py:151 pdfcredentials/app_settings.py:271 +#: pdfcredentials/documents.py:135 msgid "SMTP connection security" msgstr "" -#: pdfcredentials/app_settings.py:96 pdfcredentials/app_settings.py:111 -#: pdfcredentials/app_settings.py:204 pdfcredentials/app_settings.py:222 +#: pdfcredentials/app_settings.py:153 pdfcredentials/app_settings.py:179 +#: pdfcredentials/app_settings.py:274 pdfcredentials/app_settings.py:292 msgid "Connection security mechanism" msgstr "" -#: pdfcredentials/app_settings.py:99 pdfcredentials/app_settings.py:208 -#: pdfcredentials/documents.py:110 +#: pdfcredentials/app_settings.py:159 pdfcredentials/app_settings.py:278 +#: pdfcredentials/documents.py:136 #, fuzzy #| msgid "Server address" msgid "IMAP server address" msgstr "Chomlec'h ar servijer" -#: pdfcredentials/app_settings.py:101 pdfcredentials/app_settings.py:209 +#: pdfcredentials/app_settings.py:162 pdfcredentials/app_settings.py:279 msgid "Address of the IMAP server (hostname or IP)" msgstr "" -#: pdfcredentials/app_settings.py:104 pdfcredentials/app_settings.py:213 -#: pdfcredentials/documents.py:111 +#: pdfcredentials/app_settings.py:169 pdfcredentials/app_settings.py:283 +#: pdfcredentials/documents.py:137 #, fuzzy #| msgid "Server port" msgid "IMAP server port" msgstr "Porzh ar servijer" -#: pdfcredentials/app_settings.py:106 pdfcredentials/app_settings.py:215 +#: pdfcredentials/app_settings.py:171 pdfcredentials/app_settings.py:285 msgid "Listening port of the IMAP server" msgstr "" -#: pdfcredentials/app_settings.py:109 pdfcredentials/app_settings.py:219 -#: pdfcredentials/documents.py:112 +#: pdfcredentials/app_settings.py:177 pdfcredentials/app_settings.py:289 +#: pdfcredentials/documents.py:138 msgid "IMAP connection security" msgstr "" @@ -3503,15 +3819,15 @@ msgstr "" msgid "PDF credentials" msgstr "" -#: pdfcredentials/apps.py:21 +#: pdfcredentials/apps.py:24 msgid "PDF Credentials" msgstr "" -#: pdfcredentials/documents.py:55 +#: pdfcredentials/documents.py:65 msgid "Powered by Modoboa - Mail hosting made simple" msgstr "" -#: pdfcredentials/documents.py:71 +#: pdfcredentials/documents.py:84 #, python-format msgid "" "\n" @@ -3520,40 +3836,46 @@ msgid "" "the document as soon as possible.\n" msgstr "" -#: pdfcredentials/documents.py:77 +#: pdfcredentials/documents.py:95 msgid "Web panel:" msgstr "" -#: pdfcredentials/documents.py:91 +#: pdfcredentials/documents.py:116 msgid "" "\n" "Here you can view your emails anytime online, create filters or manage\n" "your contacts.\n" msgstr "" -#: pdfcredentials/documents.py:98 +#: pdfcredentials/documents.py:126 #, fuzzy #| msgid "Change password" msgid "Please change your password!" msgstr "Cheñch ger-tremen" -#: pdfcredentials/documents.py:104 +#: pdfcredentials/documents.py:130 msgid "PC/Tablet/Smartphone configuration:" msgstr "" -#: pdfcredentials/documents.py:122 +#: pdfcredentials/documents.py:153 msgid "Use those settings for your computer, tablet or phone." msgstr "" -#: pdfcredentials/handlers.py:51 +#: pdfcredentials/handlers.py:35 +msgid "" +"Failed to create PDF_credentials directory. Please check the permissions or " +"the path." +msgstr "" + +#: pdfcredentials/handlers.py:61 msgid "Retrieve user's credentials as a PDF document" msgstr "" -#: pdfcredentials/handlers.py:71 +#: pdfcredentials/handlers.py:82 msgid "Download PDF credentials" msgstr "" -#: pdfcredentials/lib.py:27 +#: pdfcredentials/lib.py:28 msgid "Can't write to selected directory to store PDF documents" msgstr "" @@ -3562,27 +3884,172 @@ msgstr "" msgid "Failed to create the directory that will contain PDF documents (%s)" msgstr "" -#: relaydomains/api/v1/serializers.py:25 +#: pdfcredentials/lib.py:81 +msgid "" +"Failed to create PDF_credentials file. Please check the permissions or the " +"path." +msgstr "" + +#: policyd/core.py:88 +#, fuzzy +#| msgid "%s: limit reached" +msgid "Daily sending limit reached" +msgstr "%s: bevenn tizhet" + +#: policyd/core.py:125 +#, fuzzy +#| msgid "%s: limit reached" +msgid "[modoboa] Sending limit reached" +msgstr "%s: bevenn tizhet" + +#: policyd/templates/policyd/notifications/limit_reached.html:3 +#, python-format +msgid "Daily limit of the following %(ltype)s has been reached: %(name)s." +msgstr "" + +#: postfix_autoreply/api/v2/serializers.py:28 postfix_autoreply/forms.py:98 +#, fuzzy +#| msgid "This field is required" +msgid "This date is over" +msgstr "Rekis eo leuniañ ar vaezienn" + +#: postfix_autoreply/api/v2/serializers.py:32 postfix_autoreply/forms.py:101 +#, fuzzy +#| msgid "Cannot be greater than domain quota" +msgid "Must be greater than start date" +msgstr "N'hall ket bezañ brasoc'h evit kota an domani" + +#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +#, fuzzy +#| msgid "Automatic account removal" +msgid "Automatic replies" +msgstr "Em-dilamadur kont" + +#: postfix_autoreply/forms.py:23 +msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "" + +#: postfix_autoreply/forms.py:31 +msgid "Until" +msgstr "" + +#: postfix_autoreply/forms.py:34 +msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "" + +#: postfix_autoreply/forms.py:51 +#, python-format +msgid "" +"The content of your answer. You can use the following variables, which will " +"be automatically replaced by the appropriate value: %(name)s, %(fromdate)s, " +"%(untildate)s" +msgstr "" + +#: postfix_autoreply/forms.py:121 +msgid "Automatic reply timeout" +msgstr "" + +#: postfix_autoreply/forms.py:124 +msgid "Timeout in seconds between two auto-replies to the same recipient" +msgstr "" + +#: postfix_autoreply/forms.py:130 +msgid "Default subject" +msgstr "" + +#: postfix_autoreply/forms.py:131 +msgid "I'm off" +msgstr "" + +#: postfix_autoreply/forms.py:133 +msgid "" +"Default subject used when an auto-reply message is created automatically" +msgstr "" + +#: postfix_autoreply/forms.py:140 +#, fuzzy +#| msgid "Default domain quota" +msgid "Default content" +msgstr "Kota domani dre-ziouer" + +#: postfix_autoreply/forms.py:142 +#, python-format +msgid "" +"I'm currently off. I'll answer as soon as I come back.\n" +"\n" +"Best regards,\n" +"%(name)s\n" +msgstr "" + +#: postfix_autoreply/forms.py:148 +#, python-format +msgid "" +"Default content used when an auto-reply message is created automatically. " +"The '%(name)s' macro will be replaced by the user's full name." +msgstr "" + +#: postfix_autoreply/handlers.py:123 +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +#, fuzzy +#| msgid "Custom RSS feed" +msgid "Auto-reply message" +msgstr "Froud RSS personel" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "" + +#: postfix_autoreply/models.py:15 +#, fuzzy +#| msgid "Subject" +msgid "subject" +msgstr "Sujed" + +#: postfix_autoreply/models.py:16 +msgid "The subject that will appear in sent emails" +msgstr "" + +#: postfix_autoreply/models.py:19 +msgid "content" +msgstr "" + +#: postfix_autoreply/models.py:20 +msgid "The content that will appear in sent emails" +msgstr "" + +#: postfix_autoreply/models.py:24 +msgid "Activate/Deactivate your auto reply" +msgstr "" + +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +msgid "Define a message to automatically send when you are off" +msgstr "" + +#: postfix_autoreply/views.py:30 +msgid "Auto reply message updated successfully." +msgstr "" + +#: relaydomains/api/v1/serializers.py:24 msgid "Unsupported service" msgstr "Servij nann-degemeret" -#: relaydomains/handlers.py:61 +#: relaydomains/handlers.py:64 msgid "Transport settings" msgstr "Arventennoù treuzdougen" -#: relaydomains/handlers.py:85 +#: relaydomains/handlers.py:89 msgid "Transport" msgstr "Treuzdougen" -#: relaydomains/transport.py:14 +#: relaydomains/transport.py:16 msgid "target host address" msgstr "chomlec'hioù herbrec'hiañ bukenn" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 msgid "target host port" msgstr "porzhioù herbrec'hiañ bukenn" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 msgid "verify recipients" msgstr "gwiriit ar reseverien" @@ -3652,16 +4119,25 @@ msgstr "Ger-tremen ankouaeet?" #: templates/registration/password_reset_complete.html:8 #, python-format -msgid "Your password has been set. You may go ahead and sign in now." -msgstr "Termenet eo bet ho ker-tremen. Gellout a rit mont war-raok ha kevreañ bremañ." +msgid "" +"Your password has been set. You may go ahead and sign " +"in now." +msgstr "" +"Termenet eo bet ho ker-tremen. Gellout a rit mont war-raok ha kevreañ bremañ." #: templates/registration/password_reset_confirm.html:7 msgid "Change password" msgstr "Cheñch ger-tremen" #: templates/registration/password_reset_confirm.html:17 -msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." -msgstr "Al liamm adderaouaekaat a oa direizh anezhañ, sur a-walc'h abalamour m'eo bet implijet endeo. Goulennit war-lerc'h un adderaouekadur ger-tremen nevez mar plij." +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." +msgstr "" +"Al liamm adderaouaekaat a oa direizh anezhañ, sur a-walc'h abalamour m'eo " +"bet implijet endeo. Goulennit war-lerc'h un adderaouekadur ger-tremen nevez " +"mar plij." #: templates/registration/password_reset_confirm_code.html:20 msgid "Enter the code you've just received by SMS" @@ -3672,19 +4148,35 @@ msgid "Resend code" msgstr "" #: templates/registration/password_reset_done.html:7 -msgid "

We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly.

If you don't receive an email, please make sure you've entered your primary address, and check your spam folder.

" -msgstr "

Postelet hon eus deoc'h pazennoù evit diazezañ ker-tremen, ma vez ur gont gant ar postel ho peus ebarzhet. Resevet e vint ganeoc'h a-benn nebeud.

Ma ne resevit tamm postel ebet, bezit asur da vezañ bet skrivet ho chomlec'h postel pennañ, ha taolit ur sell ouzh an doser strob.

" +msgid "" +"

We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly.

" +"

If you don't receive an email, please make sure you've entered your " +"primary address, and check your spam folder.

" +msgstr "" +"

Postelet hon eus deoc'h pazennoù evit diazezañ ker-tremen, ma vez ur gont" +" gant ar postel ho peus ebarzhet. Resevet e vint ganeoc'h a-benn nebeud.

" +"

Ma ne resevit tamm postel ebet, bezit asur da vezañ bet skrivet ho " +"chomlec'h postel pennañ, ha taolit ur sell ouzh an doser strob.

" #: templates/registration/password_reset_email.html:4 #: templates/registration/password_reset_email_v2.html:4 #, python-format -msgid "To initiate the password reset process for your %(username)s Modoboa account, click the link below:" -msgstr "%(username)s, evit loc'hañ an argerzh adderaouekaat ger-tremen evit ho kont Modoboa, klikit war al liamm dindan:" +msgid "" +"To initiate the password reset process for your %(username)s Modoboa " +"account, click the link below:" +msgstr "" +"%(username)s, evit loc'hañ an argerzh adderaouekaat ger-tremen evit ho kont " +"Modoboa, klikit war al liamm dindan:" #: templates/registration/password_reset_email.html:10 #: templates/registration/password_reset_email_v2.html:10 -msgid "If clicking the link above doesn't work, please copy and paste the URL in a new browser window instead." -msgstr "Ma ne 'z a ket en-dro klikañ war al liamm dindan, eilit pe pegit an URL e-barzh ur prenestr merdeer nevez e-plas." +msgid "" +"If clicking the link above doesn't work, please copy and paste the URL in a " +"new browser window instead." +msgstr "" +"Ma ne 'z a ket en-dro klikañ war al liamm dindan, eilit pe pegit an URL " +"e-barzh ur prenestr merdeer nevez e-plas." #: templates/registration/password_reset_email.html:14 #: templates/registration/password_reset_email_v2.html:14 @@ -3703,22 +4195,21 @@ msgstr "Ger-tremen Modoboa adderaouekaet" msgid "Invalid value" msgstr "Talvoudegezh direizh" -#: transport/models.py:16 +#: transport/models.py:15 msgid "pattern" msgstr "patern" -#: transport/models.py:17 +#: transport/models.py:16 msgid "service" msgstr "servij" -#: transport/models.py:18 +#: transport/models.py:17 msgid "next hop" msgstr "lamm da-heul" #, fuzzy -#~| msgid "%s: limit reached" -#~ msgid "Daily sending limit reached" -#~ msgstr "%s: bevenn tizhet" +#~ msgid "An alias with this name already exists." +#~ msgstr "Un alias gant an anv-mañ zo anezhañ dija" #~ msgid "A set of tools to ease DMARC integration" #~ msgstr "Un dastumad ostilhoù da aesaat enframmañ DMARC" diff --git a/modoboa/locale/cs/LC_MESSAGES/django.po b/modoboa/locale/cs/LC_MESSAGES/django.po index efc6dadcf..c3f138395 100644 --- a/modoboa/locale/cs/LC_MESSAGES/django.po +++ b/modoboa/locale/cs/LC_MESSAGES/django.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-20 14:11+0200\n" +"POT-Creation-Date: 2024-03-15 11:23+0100\n" "PO-Revision-Date: 2020-05-11 18:45+0000\n" "Last-Translator: Tydýt _, 2023\n" "Language-Team: Czech (https://www.transifex.com/tonio/teams/13749/cs/)\n" @@ -21,480 +21,535 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "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/api/v1/serializers.py:35 admin/forms/domain.py:44 -msgid "Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." +#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49 +msgid "" +"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. " +"A value of 0 means no quota." msgstr "" -#: admin/api/v1/serializers.py:42 +#: admin/api/v1/serializers.py:49 msgid "Default quota in MB applied to mailboxes. A value of 0 means no quota." msgstr "" -#: admin/api/v1/serializers.py:73 admin/forms/domain.py:108 +#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118 msgid "No authorized MX record found for this domain" msgstr "" -#: admin/api/v1/serializers.py:91 admin/forms/domain.py:150 +#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160 msgid "Cannot be greater than domain quota" msgstr "" -#: admin/api/v1/serializers.py:123 admin/api/v1/serializers.py:318 -#: admin/api/v2/serializers.py:479 admin/models/alias.py:34 +#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:384 +#: admin/api/v2/serializers.py:482 admin/models/alias.py:38 msgid "Permission denied." msgstr "" -#: admin/api/v1/serializers.py:174 admin/api/v2/serializers.py:74 -#: admin/api/v2/serializers.py:408 admin/forms/alias.py:108 -#: admin/forms/alias.py:110 core/api/v2/serializers.py:224 +#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77 +#: admin/api/v2/serializers.py:414 admin/forms/alias.py:113 +#: admin/forms/alias.py:115 core/api/v2/serializers.py:224 #: core/api/v2/serializers.py:226 core/api/v2/serializers.py:235 -#: core/app_settings.py:608 core/app_settings.py:610 core/app_settings.py:621 +#: core/app_settings.py:582 core/app_settings.py:584 core/app_settings.py:595 #: transport/backends.py:40 msgid "This field is required" msgstr "" -#: admin/api/v1/serializers.py:186 -msgid "List of administered domains (resellers and domain administrators only)." +#: admin/api/v1/serializers.py:235 +msgid "" +"List of administered domains (resellers and domain administrators only)." msgstr "" -#: admin/api/v1/serializers.py:292 admin/api/v2/serializers.py:458 +#: admin/api/v1/serializers.py:357 admin/api/v2/serializers.py:464 msgid "Not allowed for this role." msgstr "" -#: admin/api/v1/serializers.py:310 +#: admin/api/v1/serializers.py:375 msgid "Must be equal to mailbox full_address" msgstr "" -#: admin/api/v1/serializers.py:347 admin/api/v2/serializers.py:503 -#: admin/forms/account.py:178 admin/forms/account.py:180 -#: admin/forms/domain.py:165 admin/forms/domain.py:294 -#: admin/forms/domain.py:297 core/forms.py:94 core/forms.py:97 core/forms.py:99 +#: admin/api/v1/serializers.py:413 admin/api/v2/serializers.py:506 +#: admin/forms/account.py:186 admin/forms/account.py:188 +#: admin/forms/domain.py:174 admin/forms/domain.py:302 +#: admin/forms/domain.py:304 core/forms.py:101 core/forms.py:104 +#: core/forms.py:106 msgid "This field is required." msgstr "" -#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:520 +#: admin/api/v1/serializers.py:425 admin/api/v2/serializers.py:523 msgid "Local domain {} does not exist" msgstr "" -#: admin/api/v1/serializers.py:445 +#: admin/api/v1/serializers.py:513 msgid "A list of recipient" msgstr "" -#: admin/api/v1/serializers.py:492 +#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271 +msgid "This alias already exists" +msgstr "" + +#: admin/api/v1/serializers.py:565 msgid "You don't have access to this domain." msgstr "" -#: admin/api/v1/serializers.py:500 +#: admin/api/v1/serializers.py:574 msgid "You don't have access to this mailbox." msgstr "" -#: admin/api/v1/viewsets.py:174 +#: admin/api/v1/viewsets.py:183 msgid "Here is your new Modoboa password: {}" msgstr "" -#: admin/api/v2/serializers.py:100 admin/forms/domain.py:314 +#: admin/api/v2/serializers.py:103 admin/forms/domain.py:320 #, python-format msgid "User '%s' already exists" msgstr "" -#: admin/api/v2/serializers.py:210 admin/api/v2/serializers.py:218 -#: admin/app_settings.py:237 admin/app_settings.py:245 -#: admin/forms/account.py:351 +#: admin/api/v2/serializers.py:219 admin/api/v2/serializers.py:225 +#: admin/app_settings.py:230 admin/app_settings.py:236 +#: admin/forms/account.py:366 msgid "Must be a positive integer" msgstr "" -#: admin/api/v2/serializers.py:227 admin/app_settings.py:255 -#: pdfcredentials/api/v2/serializers.py:50 +#: admin/api/v2/serializers.py:232 admin/app_settings.py:244 +#: pdfcredentials/api/v2/serializers.py:59 msgid "Directory not found." msgstr "" -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 msgid "Directory non-writable" msgstr "" -#: admin/api/v2/serializers.py:236 admin/app_settings.py:261 +#: admin/api/v2/serializers.py:238 admin/app_settings.py:248 msgid "openssl not found, please make sure it is installed." msgstr "" -#: admin/api/v2/serializers.py:251 admin/app_settings.py:278 +#: admin/api/v2/serializers.py:252 admin/app_settings.py:263 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:263 +#: admin/api/v2/serializers.py:265 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:275 admin/app_settings.py:293 +#: admin/api/v2/serializers.py:278 admin/app_settings.py:277 msgid "Define at least one authorized network / address" msgstr "" -#: admin/api/v2/serializers.py:508 +#: admin/api/v2/serializers.py:511 msgid "A mailbox is required to create aliases." msgstr "" -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 msgid "Unknown status" msgstr "" -#: admin/api/v2/viewsets.py:75 admin/forms/account.py:365 -#: admin/forms/account.py:373 admin/forms/alias.py:91 +#: admin/api/v2/viewsets.py:84 admin/forms/account.py:379 +#: admin/forms/account.py:386 admin/forms/alias.py:97 msgid "You don't have access to this domain" msgstr "" -#: admin/api/v2/viewsets.py:78 admin/views/domain.py:247 +#: admin/api/v2/viewsets.py:87 admin/views/domain.py:248 msgid "You can't delete your own domain" msgstr "" -#: admin/api/v2/viewsets.py:384 +#: admin/api/v2/viewsets.py:392 msgid "No alarm ID provided" msgstr "" -#: admin/api/v2/viewsets.py:389 +#: admin/api/v2/viewsets.py:396 msgid "Received invalid alarm id(s)" msgstr "" -#: admin/app_settings.py:23 admin/app_settings.py:300 admin/handlers.py:266 +#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289 #: admin/templates/admin/_global_statistics_widget.html:11 -#: admin/templates/admin/domains.html:5 limits/app_settings.py:37 -#: limits/app_settings.py:170 limits/constants.py:9 +#: admin/templates/admin/domains.html:5 limits/app_settings.py:36 +#: limits/app_settings.py:172 limits/constants.py:13 msgid "Domains" msgstr "" -#: admin/app_settings.py:26 admin/app_settings.py:303 +#: admin/app_settings.py:26 admin/app_settings.py:295 msgid "Enable MX checks" msgstr "" -#: admin/app_settings.py:29 admin/app_settings.py:305 +#: admin/app_settings.py:28 admin/app_settings.py:297 msgid "Check that every domain has a valid MX record" msgstr "" -#: admin/app_settings.py:34 admin/app_settings.py:309 +#: admin/app_settings.py:32 admin/app_settings.py:304 msgid "Valid MXs" msgstr "" -#: admin/app_settings.py:37 admin/app_settings.py:312 -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." +#: admin/app_settings.py:35 admin/app_settings.py:307 +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 admin/app_settings.py:318 +#: admin/app_settings.py:43 admin/app_settings.py:317 msgid "New domains must use authorized MX(s)" msgstr "" -#: admin/app_settings.py:48 admin/app_settings.py:321 -msgid "Prevent the creation of a new domain if its MX record does not use one of the defined addresses." +#: admin/app_settings.py:46 admin/app_settings.py:321 +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 admin/app_settings.py:326 +#: admin/app_settings.py:52 admin/app_settings.py:329 +msgid "Enable IPV6 checks" +msgstr "" + +#: admin/app_settings.py:54 admin/app_settings.py:332 +msgid "Check if MX setup for ipv6 is valid" +msgstr "" + +#: admin/app_settings.py:58 admin/app_settings.py:339 msgid "Enable SPF checks" msgstr "" -#: admin/app_settings.py:57 admin/app_settings.py:328 +#: admin/app_settings.py:60 admin/app_settings.py:341 msgid "Check if every domain has a valid SPF record" msgstr "" -#: admin/app_settings.py:62 admin/app_settings.py:332 +#: admin/app_settings.py:64 admin/app_settings.py:348 msgid "Enable DKIM checks" msgstr "" -#: admin/app_settings.py:65 admin/app_settings.py:334 +#: admin/app_settings.py:67 admin/app_settings.py:350 msgid "Check if every domain with DKIM signin enabled has a valid DNS record" msgstr "" -#: admin/app_settings.py:71 admin/app_settings.py:339 +#: admin/app_settings.py:72 admin/app_settings.py:358 msgid "Enable DMARC checks" msgstr "" -#: admin/app_settings.py:74 admin/app_settings.py:341 +#: admin/app_settings.py:74 admin/app_settings.py:360 msgid "Check if every domain has a valid DMARC record" msgstr "" -#: admin/app_settings.py:79 admin/app_settings.py:345 +#: admin/app_settings.py:78 admin/app_settings.py:367 msgid "Enable autoconfig checks" msgstr "" -#: admin/app_settings.py:82 admin/app_settings.py:347 +#: admin/app_settings.py:81 admin/app_settings.py:369 msgid "Check if every domain has a valid records for autoconfiguration" msgstr "" -#: admin/app_settings.py:87 admin/app_settings.py:352 +#: admin/app_settings.py:86 admin/app_settings.py:377 msgid "Enable DNSBL checks" msgstr "" -#: admin/app_settings.py:90 admin/app_settings.py:354 +#: admin/app_settings.py:88 admin/app_settings.py:379 msgid "Check every domain against major DNSBL providers" msgstr "" -#: admin/app_settings.py:95 admin/app_settings.py:358 +#: admin/app_settings.py:92 admin/app_settings.py:386 msgid "Custom DNS server" msgstr "" -#: admin/app_settings.py:99 admin/app_settings.py:360 +#: admin/app_settings.py:96 admin/app_settings.py:388 msgid "Use a custom DNS server instead of local server configuration" msgstr "" -#: admin/app_settings.py:104 admin/app_settings.py:365 +#: admin/app_settings.py:101 admin/app_settings.py:396 msgid "DKIM keys storage directory" msgstr "" -#: admin/app_settings.py:107 admin/app_settings.py:367 -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." +#: admin/app_settings.py:104 admin/app_settings.py:398 +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:115 admin/app_settings.py:373 +#: admin/app_settings.py:112 admin/app_settings.py:407 msgid "Default DKIM key length" msgstr "" -#: admin/app_settings.py:119 admin/app_settings.py:375 +#: admin/app_settings.py:115 admin/app_settings.py:409 msgid "Default length in bits for newly generated DKIM keys." msgstr "" -#: admin/app_settings.py:124 admin/app_settings.py:379 +#: admin/app_settings.py:119 admin/app_settings.py:416 msgid "Default domain quota" msgstr "" -#: admin/app_settings.py:127 admin/app_settings.py:381 -msgid "Default quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." +#: admin/app_settings.py:122 admin/app_settings.py:418 +msgid "" +"Default quota (in MB) applied to freshly created domains with no value " +"specified. A value of 0 means no quota." msgstr "" -#: admin/app_settings.py:133 admin/app_settings.py:386 +#: admin/app_settings.py:128 admin/app_settings.py:426 msgid "Default domain sending limit" msgstr "" -#: admin/app_settings.py:136 admin/app_settings.py:388 -msgid "Number of messages freshly created domains will be allowed to send per day. Leave empty for no limit." +#: admin/app_settings.py:131 admin/app_settings.py:428 +msgid "" +"Number of messages freshly created domains will be allowed to send per day. " +"Leave empty for no limit." msgstr "" -#: admin/app_settings.py:141 admin/app_settings.py:395 -#: admin/templates/admin/domain_detail.html:41 limits/app_settings.py:58 -#: limits/app_settings.py:119 limits/app_settings.py:187 -#: limits/app_settings.py:238 limits/constants.py:17 limits/constants.py:45 +#: admin/app_settings.py:136 admin/app_settings.py:440 +#: admin/templates/admin/domain_detail.html:41 limits/app_settings.py:55 +#: limits/app_settings.py:111 limits/app_settings.py:195 +#: limits/app_settings.py:269 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "" -#: admin/app_settings.py:144 admin/app_settings.py:398 +#: admin/app_settings.py:139 admin/app_settings.py:446 msgid "Handle mailboxes on filesystem" msgstr "" -#: admin/app_settings.py:147 admin/app_settings.py:400 -msgid "Rename or remove mailboxes on the filesystem when they get renamed or removed within Modoboa" +#: admin/app_settings.py:142 admin/app_settings.py:448 +msgid "" +"Rename or remove mailboxes on the filesystem when they get renamed or " +"removed within Modoboa" msgstr "" -#: admin/app_settings.py:153 admin/app_settings.py:405 admin/forms/domain.py:49 -#: admin/models/domain.py:32 admin/templates/admin/domain_detail.html:64 +#: admin/app_settings.py:148 admin/app_settings.py:456 +#: admin/forms/domain.py:54 admin/models/domain.py:36 +#: admin/templates/admin/domain_detail.html:64 msgid "Default mailbox quota" msgstr "" -#: admin/app_settings.py:156 -msgid "Default mailbox quota (in MB) applied to freshly created mailboxes with no value specified. A value of 0 means no quota." +#: admin/app_settings.py:151 +msgid "" +"Default mailbox quota (in MB) applied to freshly created mailboxes with no " +"value specified. A value of 0 means no quota." msgstr "" -#: admin/app_settings.py:162 admin/app_settings.py:413 +#: admin/app_settings.py:157 admin/app_settings.py:467 msgid "Default mailbox sending limit" msgstr "" -#: admin/app_settings.py:165 admin/app_settings.py:415 -msgid "Number of messages freshly created mailboxes will be allowed to send per day. Leave empty for no limit." +#: admin/app_settings.py:160 admin/app_settings.py:469 +msgid "" +"Number of messages freshly created mailboxes will be allowed to send per " +"day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:171 admin/app_settings.py:420 +#: admin/app_settings.py:166 admin/app_settings.py:477 msgid "Automatic account removal" msgstr "" -#: admin/app_settings.py:174 admin/app_settings.py:422 +#: admin/app_settings.py:169 admin/app_settings.py:479 msgid "When a mailbox is removed, also remove the associated account" msgstr "" -#: admin/app_settings.py:178 admin/app_settings.py:426 +#: admin/app_settings.py:174 admin/app_settings.py:488 msgid "Automatic domain/mailbox creation" msgstr "" -#: admin/app_settings.py:181 admin/app_settings.py:428 -msgid "Create a domain and a mailbox when an account is automatically created." +#: admin/app_settings.py:177 admin/app_settings.py:491 +msgid "" +"Create a domain and a mailbox when an account is automatically created." msgstr "" -#: admin/app_settings.py:187 admin/app_settings.py:434 +#: admin/app_settings.py:182 admin/app_settings.py:500 msgid "Create an alias when a mailbox is renamed" msgstr "" -#: admin/app_settings.py:190 admin/app_settings.py:436 +#: admin/app_settings.py:185 admin/app_settings.py:503 msgid "Create an alias using the old address when a mailbox is renamed." msgstr "" -#: admin/app_settings.py:407 -msgid "Default mailbox quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." +#: admin/app_settings.py:458 +msgid "" +"Default mailbox quota (in MB) applied to freshly created domains with no " +"value specified. A value of 0 means no quota." msgstr "" -#: admin/app_settings.py:451 admin/app_settings.py:453 +#: admin/app_settings.py:522 admin/app_settings.py:527 msgid "Administration" msgstr "" -#: admin/constants.py:28 admin/forms/alias.py:43 +#: admin/constants.py:23 admin/forms/alias.py:43 #: admin/templates/admin/_per_domain_statistics_widget.html:7 #: admin/templates/admin/domains_quota_headers.html:2 msgid "Domain" msgstr "" -#: admin/constants.py:29 +#: admin/constants.py:24 msgid "Relay domain" msgstr "" -#: admin/constants.py:44 +#: admin/constants.py:39 msgid "Opened" msgstr "" -#: admin/constants.py:45 +#: admin/constants.py:40 msgid "Closed" msgstr "" -#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:159 -#: core/forms.py:23 pdfcredentials/documents.py:80 +#: admin/forms/account.py:29 admin/templates/admin/domain_detail.html:159 +#: core/forms.py:21 pdfcredentials/documents.py:98 msgid "Username" msgstr "" -#: admin/forms/account.py:34 -msgid "The user's name. Must be a valid e-mail address for simple users or administrators with a mailbox." +#: admin/forms/account.py:31 +msgid "" +"The user's name. Must be a valid e-mail address for simple users or " +"administrators with a mailbox." msgstr "" -#: admin/forms/account.py:39 admin/templates/admin/account_detail.html:29 +#: admin/forms/account.py:36 admin/templates/admin/account_detail.html:29 #: core/templates/core/information.html:37 msgid "Role" msgstr "" -#: admin/forms/account.py:40 +#: admin/forms/account.py:37 msgid "Choose" msgstr "" -#: admin/forms/account.py:41 +#: admin/forms/account.py:38 msgid "What level of permission this user will have" msgstr "" -#: admin/forms/account.py:44 admin/forms/domain.py:248 +#: admin/forms/account.py:41 admin/forms/domain.py:262 msgid "Random password" msgstr "" -#: admin/forms/account.py:46 -msgid "Generate a random password. If you're updating this account and check this box, a new password will be generated." +#: admin/forms/account.py:43 +msgid "" +"Generate a random password. If you're updating this account and check this " +"box, a new password will be generated." msgstr "" -#: admin/forms/account.py:52 core/forms.py:27 pdfcredentials/documents.py:81 +#: admin/forms/account.py:49 core/forms.py:25 pdfcredentials/documents.py:99 msgid "Password" msgstr "" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "" -#: admin/forms/account.py:60 +#: admin/forms/account.py:57 msgid "Enter the same password as above, for verification." msgstr "" -#: admin/forms/account.py:72 +#: admin/forms/account.py:71 msgid "Enabled" msgstr "" -#: admin/forms/account.py:167 +#: admin/forms/account.py:175 msgid "Only super administrators are allowed for this mode" msgstr "" -#: admin/forms/account.py:186 +#: admin/forms/account.py:193 msgid "The two password fields didn't match." msgstr "" -#: admin/forms/account.py:199 +#: admin/forms/account.py:206 msgid "You can't disable your own account" msgstr "" -#: admin/forms/account.py:226 +#: admin/forms/account.py:234 msgid "E-mail" msgstr "" -#: admin/forms/account.py:228 +#: admin/forms/account.py:236 msgid "Create an alias using the old address" msgstr "" -#: admin/forms/account.py:233 admin/forms/domain.py:41 +#: admin/forms/account.py:241 admin/forms/domain.py:46 #: admin/templates/admin/account_detail.html:45 -#: admin/templates/admin/domain_detail.html:49 limits/app_settings.py:78 -#: limits/app_settings.py:204 limits/constants.py:30 +#: admin/templates/admin/domain_detail.html:49 limits/app_settings.py:73 +#: limits/app_settings.py:218 limits/constants.py:59 msgid "Quota" msgstr "" -#: admin/forms/account.py:236 -msgid "Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a custom value or use domain's default one. Leave empty to define an unlimited value (not allowed for domain administrators)." +#: admin/forms/account.py:244 +msgid "" +"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a" +" custom value or use domain's default one. Leave empty to define an " +"unlimited value (not allowed for domain administrators)." msgstr "" -#: admin/forms/account.py:246 admin/models/domain.py:36 -#: admin/models/mailbox.py:99 admin/templates/admin/account_detail.html:50 +#: admin/forms/account.py:254 admin/models/domain.py:39 +#: admin/models/mailbox.py:92 admin/templates/admin/account_detail.html:50 #: admin/templates/admin/domain_detail.html:69 msgid "Message sending limit" msgstr "" -#: admin/forms/account.py:250 admin/models/mailbox.py:101 +#: admin/forms/account.py:257 admin/models/mailbox.py:95 msgid "Number of messages this mailbox can send per day" msgstr "" -#: admin/forms/account.py:253 admin/forms/domain.py:31 +#: admin/forms/account.py:262 +msgid "Block IMAP connection and incoming mails for this mailbox" +msgstr "" + +#: admin/forms/account.py:266 admin/forms/domain.py:35 #: admin/templates/admin/domain_headers.html:4 msgid "Alias(es)" msgstr "" -#: admin/forms/account.py:256 -msgid "Alias(es) of this mailbox. Indicate only one address per input, press ENTER to add a new input. To create a catchall alias, just enter the domain name (@domain.tld)." +#: admin/forms/account.py:269 +msgid "" +"Alias(es) of this mailbox. Indicate only one address per input, press ENTER " +"to add a new input. To create a catchall alias, just enter the domain name " +"(@domain.tld)." msgstr "" -#: admin/forms/account.py:262 +#: admin/forms/account.py:275 msgid "Sender addresses" msgstr "" -#: admin/forms/account.py:265 -msgid "Additional sender address(es) for this account. The user will be allowed to send emails using this address, even if it does not exist locally. Indicate one address per input. Press ENTER to add a new input." +#: admin/forms/account.py:278 +msgid "" +"Additional sender address(es) for this account. The user will be allowed to " +"send emails using this address, even if it does not exist locally. Indicate " +"one address per input. Press ENTER to add a new input." msgstr "" -#: admin/forms/account.py:325 admin/forms/alias.py:88 -#: admin/models/mailbox.py:313 +#: admin/forms/account.py:339 admin/forms/alias.py:95 +#: admin/models/mailbox.py:308 msgid "Domain does not exist" msgstr "" -#: admin/forms/account.py:361 +#: admin/forms/account.py:376 msgid "Local domain does not exist" msgstr "" -#: admin/forms/account.py:476 +#: admin/forms/account.py:503 msgid "Domain(s)" msgstr "" -#: admin/forms/account.py:478 +#: admin/forms/account.py:505 msgid "Domain(s) that user administrates" msgstr "" -#: admin/forms/account.py:525 admin/forms/account.py:615 -#: admin/forms/domain.py:365 admin/forms/domain.py:436 core/apps.py:19 -#: core/apps.py:21 imap_migration/app_settings.py:14 -#: imap_migration/app_settings.py:64 maillog/forms.py:20 -#: pdfcredentials/app_settings.py:20 pdfcredentials/app_settings.py:123 +#: admin/forms/account.py:552 admin/forms/account.py:652 +#: admin/forms/domain.py:373 admin/forms/domain.py:445 core/apps.py:19 +#: core/apps.py:24 imap_migration/app_settings.py:17 +#: imap_migration/app_settings.py:99 maillog/apps.py:14 maillog/forms.py:20 +#: pdfcredentials/app_settings.py:23 pdfcredentials/app_settings.py:195 +#: postfix_autoreply/forms.py:118 msgid "General" msgstr "" -#: admin/forms/account.py:529 core/templates/core/user_profile.html:3 -#: core/templatetags/core_tags.py:116 +#: admin/forms/account.py:560 core/templates/core/user_profile.html:3 +#: core/templatetags/core_tags.py:133 msgid "Profile" msgstr "" -#: admin/forms/account.py:533 admin/forms/account.py:621 +#: admin/forms/account.py:566 admin/forms/account.py:659 msgid "Mail" msgstr "" -#: admin/forms/account.py:536 +#: admin/forms/account.py:573 msgid "Permissions" msgstr "" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 msgid "Account updated" msgstr "" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 msgid "New account" msgstr "" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 msgid "Account created" msgstr "" @@ -507,69 +562,77 @@ msgid "Email address" msgstr "" #: admin/forms/alias.py:25 -msgid "The alias address. To create a catchall alias, just enter the domain name (@domain.tld)." +msgid "" +"The alias address. To create a catchall alias, just enter the domain name " +"(@domain.tld)." msgstr "" #: admin/forms/alias.py:31 admin/templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "" -#: admin/forms/alias.py:33 -msgid "Addresses this alias will point to. Indicate only one address per input, press ENTER to add a new input." +#: admin/forms/alias.py:34 +msgid "" +"Addresses this alias will point to. Indicate only one address per input, " +"press ENTER to add a new input." msgstr "" -#: admin/forms/alias.py:114 +#: admin/forms/alias.py:119 msgid "No recipient defined" msgstr "" -#: admin/forms/domain.py:28 +#: admin/forms/domain.py:32 #: admin/templates/admin/_global_statistics_widget.html:7 msgid "Type" msgstr "" -#: admin/forms/domain.py:34 -msgid "Alias(es) of this domain. Indicate only one name per input, press ENTER to add a new input." +#: admin/forms/domain.py:38 +msgid "" +"Alias(es) of this domain. Indicate only one name per input, press ENTER to " +"add a new input." msgstr "" -#: admin/forms/domain.py:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "" -#: admin/forms/domain.py:52 -msgid "Default quota applied to mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." +#: admin/forms/domain.py:57 +msgid "" +"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or " +"GB. A value of 0 means no quota." msgstr "" -#: admin/forms/domain.py:97 admin/handlers.py:166 +#: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" msgstr "" -#: admin/forms/domain.py:100 admin/forms/domain.py:176 -#: admin/forms/domain.py:184 +#: admin/forms/domain.py:109 admin/forms/domain.py:185 +#: admin/forms/domain.py:192 #, python-format msgid "A %s with this name already exists" msgstr "" -#: admin/forms/domain.py:120 +#: admin/forms/domain.py:130 msgid "DKIM keys storage directory not configured" msgstr "" -#: admin/forms/domain.py:155 +#: admin/forms/domain.py:166 msgid "You can't define an unlimited quota." msgstr "" -#: admin/forms/domain.py:176 admin/forms/domain.py:181 +#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107 msgid "domain" msgstr "" -#: admin/forms/domain.py:230 +#: admin/forms/domain.py:246 msgid "Create a domain administrator" msgstr "" -#: admin/forms/domain.py:233 +#: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" msgstr "" -#: admin/forms/domain.py:238 admin/templates/admin/domain_detail.html:159 +#: admin/forms/domain.py:252 admin/templates/admin/domain_detail.html:159 #: admin/templates/admin/domain_headers.html:3 #: admin/templates/admin/identity_headers.html:2 #: admin/templates/admin/mx_domain_detail.html:9 @@ -578,51 +641,53 @@ msgstr "" msgid "Name" msgstr "" -#: admin/forms/domain.py:241 -msgid "The administrator's name. Don't include the domain's name here, it will be automatically appended." +#: admin/forms/domain.py:255 +msgid "" +"The administrator's name. Don't include the domain's name here, it will be " +"automatically appended." msgstr "" -#: admin/forms/domain.py:251 +#: admin/forms/domain.py:264 msgid "Generate a random password for the administrator." msgstr "" -#: admin/forms/domain.py:257 +#: admin/forms/domain.py:269 msgid "With a mailbox" msgstr "" -#: admin/forms/domain.py:260 +#: admin/forms/domain.py:271 msgid "Create a mailbox for the administrator." msgstr "" -#: admin/forms/domain.py:266 +#: admin/forms/domain.py:276 msgid "Create aliases" msgstr "" -#: admin/forms/domain.py:269 +#: admin/forms/domain.py:278 msgid "Automatically create standard aliases for this domain" msgstr "" -#: admin/forms/domain.py:285 +#: admin/forms/domain.py:294 msgid "Invalid format" msgstr "" -#: admin/forms/domain.py:426 +#: admin/forms/domain.py:433 msgid "Domain modified" msgstr "" -#: admin/forms/domain.py:447 +#: admin/forms/domain.py:458 msgid "Options" msgstr "" -#: admin/forms/domain.py:455 +#: admin/forms/domain.py:467 msgid "New domain" msgstr "" -#: admin/forms/domain.py:468 +#: admin/forms/domain.py:481 msgid "Domain created" msgstr "" -#: admin/forms/export.py:9 admin/forms/import_.py:13 +#: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" msgstr "" @@ -630,23 +695,23 @@ msgstr "" msgid "Recipient(s)" msgstr "" -#: admin/forms/forward.py:16 +#: admin/forms/forward.py:15 msgid "Indicate one or more recipients separated by a ','" msgstr "" -#: admin/forms/forward.py:19 +#: admin/forms/forward.py:18 msgid "Keep local copies" msgstr "" -#: admin/forms/forward.py:22 +#: admin/forms/forward.py:21 msgid "Forward messages and store copies into your local mailbox" msgstr "" -#: admin/forms/import_.py:11 +#: admin/forms/import_.py:10 msgid "Select a file" msgstr "" -#: admin/forms/import_.py:19 +#: admin/forms/import_.py:18 msgid "Continue on error" msgstr "" @@ -654,7 +719,7 @@ msgstr "" msgid "Don't treat duplicated objects as error" msgstr "" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 msgid "Crypt passwords" msgstr "" @@ -662,93 +727,93 @@ msgstr "" msgid "Check this option if passwords contained in your file are not crypted" msgstr "" -#: admin/handlers.py:215 +#: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "" -#: admin/handlers.py:228 admin/models/mailbox.py:342 +#: admin/handlers.py:248 admin/models/mailbox.py:340 msgid "Mailbox {} already exists" msgstr "" -#: admin/handlers.py:236 +#: admin/handlers.py:257 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "" -#: admin/handlers.py:276 +#: admin/handlers.py:298 #: admin/templates/admin/_global_statistics_widget.html:17 #: admin/templates/admin/_per_domain_statistics_widget.html:8 #: admin/templates/admin/identities.html:5 msgid "Identities" msgstr "" -#: admin/handlers.py:292 admin/templates/admin/forward.html:2 +#: admin/handlers.py:316 admin/templates/admin/forward.html:2 msgid "Forward" msgstr "" -#: admin/lib.py:48 +#: admin/lib.py:47 msgid "A mailbox is required" msgstr "" -#: admin/lib.py:138 +#: admin/lib.py:141 msgid "You are not allowed to import domains" msgstr "" -#: admin/lib.py:149 +#: admin/lib.py:150 msgid "You are not allowed to import domain aliases." msgstr "" -#: admin/lib.py:199 admin/tests/test_mx.py:152 admin/tests/test_mx.py:161 -#: admin/tests/test_mx.py:164 +#: admin/lib.py:201 admin/tests/test_mx.py:154 admin/tests/test_mx.py:167 +#: admin/tests/test_mx.py:172 #, python-format msgid "No DNS record found for %s" msgstr "" -#: admin/lib.py:202 +#: admin/lib.py:204 #, python-format msgid "No %(type)s record for %(name)s" msgstr "" -#: admin/lib.py:206 admin/tests/test_mx.py:156 +#: admin/lib.py:208 admin/tests/test_mx.py:157 msgid "No working name servers found" msgstr "" -#: admin/lib.py:209 admin/tests/test_mx.py:158 +#: admin/lib.py:211 admin/tests/test_mx.py:161 #, python-format msgid "DNS resolution timeout, unable to query %s at the moment" msgstr "" -#: admin/lib.py:212 +#: admin/lib.py:215 #, python-format msgid "DNS name is too long: %s" msgstr "" -#: admin/lib.py:239 +#: admin/lib.py:246 #, python-brace-format msgid "Invalid IP address format for {domain}; {addr}" msgstr "" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "" -#: admin/management/commands/subcommands/_import.py:93 +#: admin/management/commands/subcommands/_import.py:99 msgid "CSV file is not encoded in UTF-8, attempting to guess encoding" msgstr "" -#: admin/management/commands/subcommands/_import.py:105 +#: admin/management/commands/subcommands/_import.py:114 #, python-format msgid "Reading CSV file using %(encoding)s encoding" msgstr "" -#: admin/management/commands/subcommands/_import.py:116 +#: admin/management/commands/subcommands/_import.py:125 #, python-format msgid "Unable to decode CSV file using %(encoding)s encoding" msgstr "" @@ -757,23 +822,23 @@ msgstr "" msgid "DKIM path non-writable" msgstr "" -#: admin/management/commands/subcommands/_mx.py:121 +#: admin/management/commands/subcommands/_mx.py:133 msgid "MX {} listed by DNSBL provider {}" msgstr "" -#: admin/management/commands/subcommands/_mx.py:169 +#: admin/management/commands/subcommands/_mx.py:174 msgid "Domain has no MX record" msgstr "" -#: admin/management/commands/subcommands/_mx.py:173 +#: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" msgstr "" -#: admin/management/commands/subcommands/_mx.py:193 +#: admin/management/commands/subcommands/_mx.py:195 msgid "Invalid MX record: {}" msgstr "" -#: admin/management/commands/subcommands/_mx.py:199 +#: admin/management/commands/subcommands/_mx.py:202 #, python-brace-format msgid "MX record for domain {0} is invalid: {1}" msgstr "" @@ -782,148 +847,145 @@ msgstr "" msgid "[modoboa] MX issue(s) for domain {}" msgstr "" -#: admin/management/commands/subcommands/_mx.py:271 +#: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "" -#: admin/models/alias.py:32 +#: admin/models/alias.py:36 msgid "Domain not found." msgstr "" -#: admin/models/alias.py:37 -msgid "An alias with this name already exists." -msgstr "" - -#: admin/models/alias.py:71 admin/models/mailbox.py:92 +#: admin/models/alias.py:91 admin/models/mailbox.py:85 msgid "address" msgstr "" -#: admin/models/alias.py:73 +#: admin/models/alias.py:93 msgid "The alias address." msgstr "" -#: admin/models/alias.py:78 admin/models/domain.py:43 -#: admin/models/domain_alias.py:41 +#: admin/models/alias.py:97 admin/models/domain.py:45 +#: admin/models/domain_alias.py:45 postfix_autoreply/models.py:23 msgid "enabled" msgstr "" -#: admin/models/alias.py:79 admin/models/domain_alias.py:42 +#: admin/models/alias.py:98 admin/models/domain_alias.py:46 msgid "Check to activate this alias" msgstr "" -#: admin/models/alias.py:84 admin/templates/admin/alias_detail.html:32 +#: admin/models/alias.py:102 admin/templates/admin/alias_detail.html:32 #: core/templates/core/information.html:17 msgid "Description" msgstr "" -#: admin/models/alias.py:86 admin/templates/admin/alias_detail.html:29 +#: admin/models/alias.py:103 admin/templates/admin/alias_detail.html:29 msgid "Expire at" msgstr "" -#: admin/models/alias.py:127 +#: admin/models/alias.py:144 msgid "alias" msgstr "" -#: admin/models/alias.py:159 +#: admin/models/alias.py:177 msgid "Invalid address" msgstr "" -#: admin/models/alias.py:180 +#: admin/models/alias.py:196 msgid "Local recipient {}@{} not found" msgstr "" -#: admin/models/alias.py:215 +#: admin/models/alias.py:245 msgid "Invalid line: {}" msgstr "" -#: admin/models/domain.py:26 admin/models/domain_alias.py:33 +#: admin/models/domain.py:27 admin/models/domain_alias.py:33 msgid "name" msgstr "" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 msgid "The domain name" msgstr "" -#: admin/models/domain.py:39 +#: admin/models/domain.py:42 msgid "Number of messages this domain can send per day" msgstr "" -#: admin/models/domain.py:44 +#: admin/models/domain.py:46 msgid "Check to activate this domain" msgstr "" -#: admin/models/domain.py:49 +#: admin/models/domain.py:51 msgid "Enable DNS checks" msgstr "" -#: admin/models/domain.py:50 +#: admin/models/domain.py:53 msgid "Check to enable DNS checks for this domain" msgstr "" -#: admin/models/domain.py:57 +#: admin/models/domain.py:61 msgid "Enable DKIM signing" msgstr "" -#: admin/models/domain.py:59 -msgid "If you activate this feature, a DKIM key will be generated for this domain." +#: admin/models/domain.py:63 +msgid "" +"If you activate this feature, a DKIM key will be generated for this domain." msgstr "" -#: admin/models/domain.py:65 +#: admin/models/domain.py:70 msgid "Key length" msgstr "" -#: admin/models/domain.py:357 admin/models/domain_alias.py:66 -#: core/models.py:320 relaydomains/lib.py:13 +#: admin/models/domain.py:368 admin/models/domain_alias.py:70 +#: core/models.py:329 relaydomains/lib.py:13 msgid "Invalid line" msgstr "" -#: admin/models/domain.py:367 +#: admin/models/domain.py:378 msgid "{}: no authorized MX record found for domain" msgstr "" -#: admin/models/domain.py:374 +#: admin/models/domain.py:383 msgid "{}: invalid quota value for domain" msgstr "" -#: admin/models/domain.py:381 +#: admin/models/domain.py:388 msgid "{}: invalid default mailbox quota value for domain" msgstr "" -#: admin/models/domain.py:386 +#: admin/models/domain.py:395 msgid "{}: default mailbox quota cannot be greater than domain quota" msgstr "" -#: admin/models/domain_alias.py:34 +#: admin/models/domain_alias.py:36 msgid "The alias name" msgstr "" -#: admin/models/domain_alias.py:36 +#: admin/models/domain_alias.py:40 msgid "target" msgstr "" -#: admin/models/domain_alias.py:37 +#: admin/models/domain_alias.py:41 msgid "The domain this alias points to" msgstr "" -#: admin/models/domain_alias.py:75 +#: admin/models/domain_alias.py:79 #, python-format msgid "Unknown domain %s" msgstr "" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "" -#: admin/models/mailbox.py:254 +#: admin/models/mailbox.py:249 msgid "A quota is required" msgstr "" -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 msgid "{}: domain quota exceeded" msgstr "" @@ -931,8 +993,9 @@ msgstr "" #: admin/templates/admin/_domain_dkim_key.html:20 #: core/templates/core/user_security.html:83 #: core/templates/core/user_security.html:99 -#: templates/common/generic_modal.html:6 templates/common/generic_modal.html:13 -#: templates/common/wizard_forms.html:6 templates/common/wizard_forms.html:27 +#: templates/common/generic_modal.html:6 +#: templates/common/generic_modal.html:13 templates/common/wizard_forms.html:6 +#: templates/common/wizard_forms.html:27 msgid "Close" msgstr "" @@ -979,9 +1042,9 @@ msgstr "" #: admin/templates/admin/_global_statistics_widget.html:14 #: admin/templates/admin/domain_detail.html:37 -#: admin/templates/admin/domain_detail.html:87 limits/app_settings.py:47 -#: limits/app_settings.py:108 limits/app_settings.py:178 -#: limits/app_settings.py:229 limits/constants.py:13 limits/constants.py:41 +#: admin/templates/admin/domain_detail.html:87 limits/app_settings.py:45 +#: limits/app_settings.py:101 limits/app_settings.py:183 +#: limits/app_settings.py:257 limits/constants.py:22 limits/constants.py:76 msgid "Domain aliases" msgstr "" @@ -1016,7 +1079,7 @@ msgstr "" msgid "Last login" msgstr "" -#: admin/templates/admin/account_detail.html:38 core/models.py:69 +#: admin/templates/admin/account_detail.html:38 core/models.py:70 msgid "Secondary email" msgstr "" @@ -1025,7 +1088,7 @@ msgstr "" msgid "Not defined" msgstr "" -#: admin/templates/admin/account_detail.html:41 core/models.py:67 +#: admin/templates/admin/account_detail.html:41 core/models.py:68 msgid "Phone number" msgstr "" @@ -1103,7 +1166,7 @@ msgstr "" #: admin/templates/admin/domain_alarms.html:25 #: admin/templates/admin/domains_log_headers.html:3 #: admin/templates/admin/messages_log_headers.html:3 -#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:106 +#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:119 msgid "Date" msgstr "" @@ -1127,9 +1190,9 @@ msgstr "" msgid "Last modification date" msgstr "" -#: admin/templates/admin/domain_detail.html:45 limits/app_settings.py:68 -#: limits/app_settings.py:129 limits/app_settings.py:196 -#: limits/app_settings.py:246 limits/constants.py:20 limits/constants.py:48 +#: admin/templates/admin/domain_detail.html:45 limits/app_settings.py:64 +#: limits/app_settings.py:120 limits/app_settings.py:207 +#: limits/app_settings.py:280 limits/constants.py:39 limits/constants.py:92 msgid "Mailbox aliases" msgstr "" @@ -1185,11 +1248,12 @@ msgid "Warning" msgstr "" #: admin/templates/admin/domain_detail.html:139 -msgid "DKIM keys already exist for this domain. Do you want to overwrite them?" +msgid "" +"DKIM keys already exist for this domain. Do you want to overwrite them?" msgstr "" #: admin/templates/admin/domain_detail.html:142 core/constants.py:53 -#: lib/form_utils.py:397 +#: lib/form_utils.py:400 msgid "No" msgstr "" @@ -1197,7 +1261,7 @@ msgstr "" msgid "Generate new key" msgstr "" -#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:396 +#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400 msgid "Yes" msgstr "" @@ -1210,7 +1274,7 @@ msgid "Administrators" msgstr "" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:279 +#: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" msgstr "" @@ -1247,13 +1311,13 @@ msgstr "" #: admin/templates/admin/domains_log_headers.html:4 #: admin/templates/admin/messages_log_headers.html:4 -#: lib/templatetags/lib_tags.py:104 +#: lib/templatetags/lib_tags.py:117 postfix_autoreply/forms.py:20 msgid "From" msgstr "" #: admin/templates/admin/domains_log_headers.html:5 #: admin/templates/admin/messages_log_headers.html:5 -#: lib/templatetags/lib_tags.py:105 +#: lib/templatetags/lib_tags.py:118 msgid "To" msgstr "" @@ -1284,9 +1348,10 @@ msgstr "" msgid "Automatically forward emails to another address" msgstr "" -#: admin/templates/admin/forward.html:9 admin/views/alias.py:88 +#: admin/templates/admin/forward.html:9 admin/views/alias.py:84 #: core/templates/core/api_access.html:35 -#: core/templates/core/user_profile.html:19 lib/form_utils.py:354 +#: core/templates/core/user_profile.html:19 lib/form_utils.py:356 +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10 msgid "Update" msgstr "" @@ -1303,11 +1368,24 @@ msgid "Fullname/Recipient" msgstr "" #: admin/templates/admin/import_domains_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:

The first element of each line is mandatory and must be equal to one of the previous values.

You can use a different character as separator.

" +msgid "" +"Provide a CSV file where lines respect one of the following formats:

The first element of each line is " +"mandatory and must be equal to one of the previous values.

You can " +"use a different character as separator.

" msgstr "" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:

The first element of each line is mandatory and must be equal to one of the previous values.

You can use a different character as separator.

" +msgid "" +"Provide a CSV file where lines respect one of the following formats:

The first element of each line " +"is mandatory and must be equal to one of the previous values.

You can" +" use a different character as separator.

" msgstr "" #: admin/templates/admin/importform.html:6 @@ -1344,11 +1422,16 @@ msgstr "" #: admin/templates/admin/notifications/domain_in_dnsbl.html:3 #, python-format -msgid "Modoboa detected that domain %(domain)s is listed by the following DNSBL providers:" +msgid "" +"Modoboa detected that domain %(domain)s is listed by the following DNSBL " +"providers:" msgstr "" #: admin/templates/admin/notifications/domain_in_dnsbl.html:11 -msgid "The domain's reputation will be affected and there is a chance that emails coming from it are considered as spam. You should contact those providers and ask them to unlist detected IP address(es)." +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 @@ -1360,90 +1443,95 @@ msgstr "" msgid "Search" msgstr "" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_m" msgstr "" -#: admin/templatetags/admin_tags.py:19 +#: admin/templatetags/admin_tags.py:18 msgid "enabled_f" msgstr "" -#: admin/templatetags/admin_tags.py:47 +#: admin/templatetags/admin_tags.py:46 msgid "List domains" msgstr "" -#: admin/templatetags/admin_tags.py:52 admin/templatetags/admin_tags.py:112 +#: admin/templatetags/admin_tags.py:53 admin/templatetags/admin_tags.py:123 msgid "List quotas" msgstr "" -#: admin/templatetags/admin_tags.py:57 +#: admin/templatetags/admin_tags.py:60 msgid "Message logs" msgstr "" -#: admin/templatetags/admin_tags.py:69 admin/templatetags/admin_tags.py:117 -#: admin/views/import_.py:56 admin/views/import_.py:78 +#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:130 +#: admin/views/import_.py:57 admin/views/import_.py:78 msgid "Import" msgstr "" -#: admin/templatetags/admin_tags.py:75 admin/templatetags/admin_tags.py:123 -#: admin/views/export.py:39 admin/views/export.py:67 +#: admin/templatetags/admin_tags.py:83 admin/templatetags/admin_tags.py:138 +#: admin/views/export.py:41 admin/views/export.py:70 msgid "Export" msgstr "" -#: admin/templatetags/admin_tags.py:107 +#: admin/templatetags/admin_tags.py:116 msgid "List identities" msgstr "" -#: admin/templatetags/admin_tags.py:142 +#: admin/templatetags/admin_tags.py:157 msgid "View the domain's identities" msgstr "" -#: admin/templatetags/admin_tags.py:149 +#: admin/templatetags/admin_tags.py:166 msgid "View domain's alarms" msgstr "" -#: admin/templatetags/admin_tags.py:155 admin/templatetags/admin_tags.py:198 -#: admin/templatetags/admin_tags.py:211 +#: admin/templatetags/admin_tags.py:174 admin/templatetags/admin_tags.py:218 +#: admin/templatetags/admin_tags.py:235 msgid "Edit {}" msgstr "" -#: admin/templatetags/admin_tags.py:165 admin/templatetags/admin_tags.py:202 -#: admin/templatetags/admin_tags.py:216 +#: admin/templatetags/admin_tags.py:186 admin/templatetags/admin_tags.py:224 +#: admin/templatetags/admin_tags.py:241 #, python-format msgid "Delete %s?" msgstr "" -#: admin/tests/test_mx.py:155 +#: admin/tests/test_mx.py:156 #, python-format msgid "No MX record for %s" msgstr "" -#: admin/tests/test_mx.py:167 admin/tests/test_mx.py:170 +#: admin/tests/test_mx.py:177 admin/tests/test_mx.py:183 #, python-format msgid "Invalid IP address format for %(domain)s; %(addr)s" msgstr "" +#: admin/tests/test_mx.py:200 +#, python-format +msgid "No AAAA record for %s" +msgstr "" + #: admin/views/alias.py:30 msgid "Alias with this name already exists" msgstr "" -#: admin/views/alias.py:55 +#: admin/views/alias.py:52 msgid "Create" msgstr "" -#: admin/views/alias.py:67 +#: admin/views/alias.py:64 msgid "New alias" msgstr "" -#: admin/views/alias.py:68 +#: admin/views/alias.py:64 msgid "Alias created" msgstr "" -#: admin/views/alias.py:80 +#: admin/views/alias.py:76 msgid "Alias modified" msgstr "" -#: admin/views/alias.py:105 +#: admin/views/alias.py:101 msgid "Alias deleted" msgid_plural "Aliases deleted" msgstr[0] "" @@ -1455,11 +1543,11 @@ msgstr[3] "" msgid "MX records of {}" msgstr "" -#: admin/views/dns.py:51 +#: admin/views/dns.py:50 msgid "DNSBL summary for {}" msgstr "" -#: admin/views/domain.py:250 +#: admin/views/domain.py:251 msgid "Domain deleted" msgid_plural "Domains deleted" msgstr[0] "" @@ -1467,20 +1555,20 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: admin/views/export.py:38 +#: admin/views/export.py:40 msgid "Export identities" msgstr "" -#: admin/views/export.py:66 +#: admin/views/export.py:69 msgid "Export domains" msgstr "" -#: admin/views/identity.py:108 admin/views/identity.py:205 -#: admin/views/identity.py:210 lib/form_utils.py:110 lib/form_utils.py:113 +#: admin/views/identity.py:110 admin/views/identity.py:197 +#: admin/views/identity.py:202 lib/form_utils.py:110 lib/form_utils.py:113 msgid "Invalid request" msgstr "" -#: admin/views/identity.py:194 +#: admin/views/identity.py:187 msgid "Account deleted" msgid_plural "Accounts deleted" msgstr[0] "" @@ -1488,7 +1576,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: admin/views/import_.py:55 +#: admin/views/import_.py:56 msgid "Import domains" msgstr "" @@ -1496,83 +1584,70 @@ msgstr "" msgid "Import identities" msgstr "" -#: admin/views/user.py:52 +#: admin/views/user.py:51 msgid "Forward updated" msgstr "" -#: core/api/v1/serializers.py:16 +#: core/api/v1/serializers.py:21 msgid "Invalid PIN code" msgstr "" -#: core/api/v1/serializers.py:22 +#: core/api/v1/serializers.py:27 msgid "2FA is already enabled" msgstr "" -#: core/api/v1/viewsets.py:61 +#: core/api/v1/serializers.py:40 +#, python-format +msgid "Failed TFA settings editing attempt from '%s' as user '%s'" +msgstr "" + +#: core/api/v1/serializers.py:44 core/api/v2/serializers.py:274 +msgid "Invalid password" +msgstr "" + +#: core/api/v1/viewsets.py:64 core/api/v1/viewsets.py:82 msgid "2FA is not enabled" msgstr "" -#: core/api/v2/serializers.py:60 core/app_settings.py:43 +#: core/api/v2/serializers.py:68 core/app_settings.py:48 msgid "Local" msgstr "" -#: core/api/v2/serializers.py:68 -msgid "md5crypt (weak)" -msgstr "" - -#: core/api/v2/serializers.py:69 -msgid "sha256 (weak)" -msgstr "" - -#: core/api/v2/serializers.py:70 -msgid "md5 (weak)" -msgstr "" - -#: core/api/v2/serializers.py:71 -msgid "crypt (weak)" -msgstr "" - -#: core/api/v2/serializers.py:72 -msgid "plain (weak)" -msgstr "" - -#: core/api/v2/serializers.py:168 core/app_settings.py:26 +#: core/api/v2/serializers.py:164 core/app_settings.py:24 msgid "User profile" msgstr "" #: core/api/v2/serializers.py:183 core/api/v2/serializers.py:190 -#: core/api/v2/serializers.py:197 core/app_settings.py:561 -#: core/app_settings.py:569 core/app_settings.py:577 +#: core/api/v2/serializers.py:197 core/app_settings.py:535 +#: core/app_settings.py:543 core/app_settings.py:551 +#: postfix_autoreply/forms.py:165 msgid "Invalid syntax" msgstr "" -#: core/api/v2/serializers.py:202 core/app_settings.py:583 +#: core/api/v2/serializers.py:202 core/app_settings.py:557 msgid "Invalid rounds number" msgstr "" -#: core/api/v2/serializers.py:262 core/forms.py:176 +#: core/api/v2/serializers.py:262 core/forms.py:194 msgid "This code is invalid" msgstr "" -#: core/api/v2/serializers.py:274 -msgid "Invalid password" -msgstr "" - -#: core/api/v2/serializers.py:328 core/views/auth.py:180 core/views/auth.py:235 +#: core/api/v2/serializers.py:333 core/views/auth.py:184 +#: core/views/auth.py:237 msgid "Please use the following code to recover your Modoboa password: {}" msgstr "" -#: core/api/v2/views.py:54 +#: core/api/v2/views.py:57 #, python-format msgid "Failed connection attempt from '%s' as user '%s'" msgstr "" -#: core/api/v2/views.py:67 core/views/auth.py:89 +#: core/api/v2/views.py:69 core/views/auth.py:89 #, python-format msgid "User '%s' successfully logged in" msgstr "" -#: core/api/v2/views.py:86 core/views/auth.py:68 +#: core/api/v2/views.py:86 core/views/auth.py:67 #, python-format msgid "Password scheme mismatch. Updating %s password" msgstr "" @@ -1582,450 +1657,478 @@ msgstr "" msgid "Password hash parameter missmatch. Updating %s password" msgstr "" -#: core/app_settings.py:39 core/app_settings.py:728 +#: core/app_settings.py:44 core/app_settings.py:716 msgid "Authentication" msgstr "" -#: core/app_settings.py:42 core/app_settings.py:731 +#: core/app_settings.py:47 core/app_settings.py:722 msgid "Authentication type" msgstr "" -#: core/app_settings.py:46 core/app_settings.py:733 +#: core/app_settings.py:50 core/app_settings.py:724 msgid "The backend used for authentication" msgstr "" -#: core/app_settings.py:51 core/app_settings.py:736 +#: core/app_settings.py:55 core/app_settings.py:731 msgid "Default password scheme" msgstr "" -#: core/app_settings.py:54 core/app_settings.py:738 +#: core/app_settings.py:58 core/app_settings.py:733 msgid "Scheme used to crypt mailbox passwords" msgstr "" -#: core/app_settings.py:58 core/app_settings.py:741 +#: core/app_settings.py:62 core/app_settings.py:740 msgid "Rounds" msgstr "" -#: core/app_settings.py:61 core/app_settings.py:743 -msgid "Number of rounds to use (only used by sha256crypt and sha512crypt). Must be between 1000 and 999999999, inclusive." +#: core/app_settings.py:65 core/app_settings.py:742 +msgid "" +"Number of rounds to use (only used by sha256crypt and sha512crypt). Must be " +"between 1000 and 999999999, inclusive." msgstr "" -#: core/app_settings.py:67 core/app_settings.py:749 +#: core/app_settings.py:71 core/app_settings.py:752 msgid "Update password scheme at login" msgstr "" -#: core/app_settings.py:70 core/app_settings.py:751 +#: core/app_settings.py:74 core/app_settings.py:755 msgid "Update user password at login to use the default password scheme" msgstr "" -#: core/app_settings.py:75 core/app_settings.py:756 +#: core/app_settings.py:79 core/app_settings.py:763 msgid "Default password" msgstr "" -#: core/app_settings.py:78 core/app_settings.py:758 +#: core/app_settings.py:81 core/app_settings.py:765 msgid "Default password for automatically created accounts." msgstr "" -#: core/app_settings.py:82 core/app_settings.py:761 +#: core/app_settings.py:85 core/app_settings.py:772 msgid "Random password length" msgstr "" -#: core/app_settings.py:86 core/app_settings.py:763 +#: core/app_settings.py:88 core/app_settings.py:774 msgid "Length of randomly generated passwords." msgstr "" -#: core/app_settings.py:90 core/app_settings.py:766 +#: core/app_settings.py:92 core/app_settings.py:781 msgid "Update password service URL" msgstr "" -#: core/app_settings.py:94 core/app_settings.py:768 -msgid "The URL of an external page where users will be able to update their password. It applies only to non local users, ie. those automatically created after a successful external authentication (LDAP, SMTP)." +#: core/app_settings.py:96 core/app_settings.py:783 +msgid "" +"The URL of an external page where users will be able to update their " +"password. It applies only to non local users, ie. those automatically " +"created after a successful external authentication (LDAP, SMTP)." msgstr "" -#: core/app_settings.py:102 core/app_settings.py:775 +#: core/app_settings.py:104 core/app_settings.py:793 msgid "Password recovery announcement" msgstr "" -#: core/app_settings.py:107 core/app_settings.py:777 +#: core/app_settings.py:109 core/app_settings.py:795 msgid "A temporary message that will be displayed on the reset password page." msgstr "" -#: core/app_settings.py:113 core/app_settings.py:782 +#: core/app_settings.py:114 core/app_settings.py:804 msgid "Enable password recovery by SMS" msgstr "" -#: core/app_settings.py:116 core/app_settings.py:784 +#: core/app_settings.py:117 core/app_settings.py:807 msgid "Enable password recovery by SMS for users who filled a phone number." msgstr "" -#: core/app_settings.py:122 core/app_settings.py:789 +#: core/app_settings.py:122 core/app_settings.py:815 msgid "SMS provider" msgstr "" -#: core/app_settings.py:125 core/app_settings.py:792 +#: core/app_settings.py:124 core/app_settings.py:818 msgid "Choose a provider to send password recovery SMS" msgstr "" -#: core/app_settings.py:131 +#: core/app_settings.py:129 msgid "LDAP settings" msgstr "" -#: core/app_settings.py:134 core/app_settings.py:802 +#: core/app_settings.py:132 core/app_settings.py:836 msgid "Server address" msgstr "" -#: core/app_settings.py:137 core/app_settings.py:804 +#: core/app_settings.py:134 core/app_settings.py:838 msgid "The IP address or the DNS name of the LDAP server" msgstr "" -#: core/app_settings.py:141 core/app_settings.py:807 +#: core/app_settings.py:138 core/app_settings.py:845 msgid "Server port" msgstr "" -#: core/app_settings.py:143 core/app_settings.py:809 +#: core/app_settings.py:140 core/app_settings.py:847 msgid "The TCP port number used by the LDAP server" msgstr "" -#: core/app_settings.py:147 core/app_settings.py:812 +#: core/app_settings.py:144 core/app_settings.py:855 msgid "Enable secondary server (fallback)" msgstr "" -#: core/app_settings.py:150 core/app_settings.py:814 -msgid "Enable a secondary LDAP server which will be used if the primary one fails" +#: core/app_settings.py:147 core/app_settings.py:858 +msgid "" +"Enable a secondary LDAP server which will be used if the primary one fails" msgstr "" -#: core/app_settings.py:156 core/app_settings.py:819 +#: core/app_settings.py:153 core/app_settings.py:866 msgid "Secondary server address" msgstr "" -#: core/app_settings.py:159 core/app_settings.py:822 +#: core/app_settings.py:156 core/app_settings.py:869 msgid "The IP address or the DNS name of the seondary LDAP server" msgstr "" -#: core/app_settings.py:163 core/app_settings.py:826 +#: core/app_settings.py:161 core/app_settings.py:876 msgid "Secondary server port" msgstr "" -#: core/app_settings.py:166 core/app_settings.py:829 +#: core/app_settings.py:163 core/app_settings.py:879 msgid "The TCP port number used by the LDAP secondary server" msgstr "" -#: core/app_settings.py:170 core/app_settings.py:833 +#: core/app_settings.py:167 core/app_settings.py:886 msgid "Use a secured connection" msgstr "" -#: core/app_settings.py:174 core/app_settings.py:835 +#: core/app_settings.py:171 core/app_settings.py:888 msgid "Use an SSL/STARTTLS connection to access the LDAP server" msgstr "" -#: core/app_settings.py:178 core/app_settings.py:838 +#: core/app_settings.py:176 core/app_settings.py:895 msgid "Active Directory" msgstr "" -#: core/app_settings.py:181 core/app_settings.py:840 +#: core/app_settings.py:178 core/app_settings.py:897 msgid "Tell if the LDAP server is an Active Directory one" msgstr "" -#: core/app_settings.py:185 core/app_settings.py:843 +#: core/app_settings.py:182 core/app_settings.py:904 msgid "Administrator groups" msgstr "" -#: core/app_settings.py:188 core/app_settings.py:845 -msgid "Members of those LDAP Posix groups will be created as domain administrators. Use ';' characters to separate groups." +#: core/app_settings.py:185 core/app_settings.py:906 +msgid "" +"Members of those LDAP Posix groups will be created as domain administrators." +" Use ';' characters to separate groups." msgstr "" -#: core/app_settings.py:195 core/app_settings.py:851 +#: core/app_settings.py:192 core/app_settings.py:915 msgid "Group type" msgstr "" -#: core/app_settings.py:199 core/app_settings.py:853 +#: core/app_settings.py:195 core/app_settings.py:917 msgid "The LDAP group type to use with your directory." msgstr "" -#: core/app_settings.py:204 core/app_settings.py:857 +#: core/app_settings.py:199 core/app_settings.py:924 msgid "Groups search base" msgstr "" -#: core/app_settings.py:207 core/app_settings.py:859 +#: core/app_settings.py:202 core/app_settings.py:926 msgid "The distinguished name of the search base used to find groups" msgstr "" -#: core/app_settings.py:213 core/app_settings.py:864 +#: core/app_settings.py:208 core/app_settings.py:934 msgid "Password attribute" msgstr "" -#: core/app_settings.py:215 core/app_settings.py:866 +#: core/app_settings.py:210 core/app_settings.py:936 msgid "The attribute used to store user passwords" msgstr "" -#: core/app_settings.py:220 core/app_settings.py:869 +#: core/app_settings.py:214 core/app_settings.py:943 msgid "LDAP authentication settings" msgstr "" -#: core/app_settings.py:223 core/app_settings.py:874 +#: core/app_settings.py:217 core/app_settings.py:951 msgid "Authentication method" msgstr "" -#: core/app_settings.py:224 core/constants.py:59 +#: core/app_settings.py:219 core/constants.py:59 msgid "Search and bind" msgstr "" -#: core/app_settings.py:225 core/constants.py:60 +#: core/app_settings.py:220 core/constants.py:60 msgid "Direct bind" msgstr "" -#: core/app_settings.py:227 core/app_settings.py:877 +#: core/app_settings.py:223 core/app_settings.py:954 msgid "Choose the authentication method to use" msgstr "" -#: core/app_settings.py:231 core/app_settings.py:285 core/app_settings.py:880 -#: core/app_settings.py:925 +#: core/app_settings.py:227 core/app_settings.py:279 core/app_settings.py:961 +#: core/app_settings.py:1024 msgid "Bind DN" msgstr "" -#: core/app_settings.py:234 core/app_settings.py:288 core/app_settings.py:882 -#: core/app_settings.py:927 -msgid "The distinguished name to use when binding to the LDAP server. Leave empty for an anonymous bind" +#: core/app_settings.py:230 core/app_settings.py:282 core/app_settings.py:963 +#: core/app_settings.py:1026 +msgid "" +"The distinguished name to use when binding to the LDAP server. Leave empty " +"for an anonymous bind" msgstr "" -#: core/app_settings.py:241 core/app_settings.py:295 core/app_settings.py:888 -#: core/app_settings.py:932 +#: core/app_settings.py:237 core/app_settings.py:289 core/app_settings.py:972 +#: core/app_settings.py:1034 msgid "Bind password" msgstr "" -#: core/app_settings.py:244 core/app_settings.py:298 core/app_settings.py:890 -#: core/app_settings.py:934 +#: core/app_settings.py:240 core/app_settings.py:292 core/app_settings.py:974 +#: core/app_settings.py:1036 msgid "The password to use when binding to the LDAP server (with 'Bind DN')" msgstr "" -#: core/app_settings.py:252 core/app_settings.py:344 core/app_settings.py:897 -#: core/app_settings.py:971 +#: core/app_settings.py:247 core/app_settings.py:335 core/app_settings.py:984 +#: core/app_settings.py:1089 msgid "Users search base" msgstr "" -#: core/app_settings.py:255 core/app_settings.py:347 core/app_settings.py:899 -#: core/app_settings.py:973 +#: core/app_settings.py:250 core/app_settings.py:338 core/app_settings.py:986 +#: core/app_settings.py:1091 msgid "The distinguished name of the search base used to find users" msgstr "" -#: core/app_settings.py:261 core/app_settings.py:353 core/app_settings.py:905 -#: core/app_settings.py:979 +#: core/app_settings.py:256 core/app_settings.py:344 core/app_settings.py:995 +#: core/app_settings.py:1100 msgid "Search filter" msgstr "" -#: core/app_settings.py:264 core/app_settings.py:356 core/app_settings.py:907 -#: core/app_settings.py:981 -msgid "An optional filter string (e.g. '(objectClass=person)'). In order to be valid, it must be enclosed in parentheses." +#: core/app_settings.py:259 core/app_settings.py:347 core/app_settings.py:997 +#: core/app_settings.py:1102 +msgid "" +"An optional filter string (e.g. '(objectClass=person)'). In order to be " +"valid, it must be enclosed in parentheses." msgstr "" -#: core/app_settings.py:271 core/app_settings.py:913 +#: core/app_settings.py:266 core/app_settings.py:1006 msgid "User DN template" msgstr "" -#: core/app_settings.py:274 core/app_settings.py:915 +#: core/app_settings.py:269 core/app_settings.py:1008 #, python-format -msgid "The template used to construct a user's DN. It should contain one placeholder (ie. %(user)s)" +msgid "" +"The template used to construct a user's DN. It should contain one " +"placeholder (ie. %(user)s)" msgstr "" -#: core/app_settings.py:282 core/app_settings.py:921 +#: core/app_settings.py:276 core/app_settings.py:1017 msgid "LDAP synchronization settings" msgstr "" -#: core/app_settings.py:306 core/app_settings.py:940 +#: core/app_settings.py:299 core/app_settings.py:1045 msgid "Enable export to LDAP" msgstr "" -#: core/app_settings.py:309 core/app_settings.py:942 -msgid "Enable automatic synchronization between local database and LDAP directory" +#: core/app_settings.py:302 core/app_settings.py:1047 +msgid "" +"Enable automatic synchronization between local database and LDAP directory" msgstr "" -#: core/app_settings.py:315 core/app_settings.py:948 +#: core/app_settings.py:308 core/app_settings.py:1056 msgid "Delete remote LDAP account when local account is deleted" msgstr "" -#: core/app_settings.py:319 core/app_settings.py:950 -msgid "Delete remote LDAP account when local account is deleted, otherwise it will be disabled." +#: core/app_settings.py:311 core/app_settings.py:1059 +msgid "" +"Delete remote LDAP account when local account is deleted, otherwise it will " +"be disabled." msgstr "" -#: core/app_settings.py:325 core/app_settings.py:956 +#: core/app_settings.py:317 core/app_settings.py:1068 msgid "Account DN template" msgstr "" -#: core/app_settings.py:328 core/app_settings.py:958 +#: core/app_settings.py:320 core/app_settings.py:1070 #, python-format -msgid "The template used to construct an account's DN. It should contain one placeholder (ie. %(user)s)" +msgid "" +"The template used to construct an account's DN. It should contain one " +"placeholder (ie. %(user)s)" msgstr "" -#: core/app_settings.py:335 core/app_settings.py:964 +#: core/app_settings.py:327 core/app_settings.py:1079 msgid "Enable import from LDAP" msgstr "" -#: core/app_settings.py:338 core/app_settings.py:966 +#: core/app_settings.py:330 core/app_settings.py:1081 msgid "Enable account synchronization from LDAP directory to local database" msgstr "" -#: core/app_settings.py:363 core/app_settings.py:987 +#: core/app_settings.py:354 core/app_settings.py:1111 msgid "Username attribute" msgstr "" -#: core/app_settings.py:366 core/app_settings.py:989 +#: core/app_settings.py:357 core/app_settings.py:1113 msgid "The name of the LDAP attribute where the username can be found." msgstr "" -#: core/app_settings.py:371 core/app_settings.py:995 +#: core/app_settings.py:362 core/app_settings.py:1122 msgid "Enable Dovecot LDAP sync" msgstr "" -#: core/app_settings.py:374 core/app_settings.py:997 +#: core/app_settings.py:365 core/app_settings.py:1124 msgid "LDAP authentication settings will be applied to Dovecot configuration." msgstr "" -#: core/app_settings.py:380 core/app_settings.py:1002 +#: core/app_settings.py:370 core/app_settings.py:1132 msgid "Dovecot LDAP config file" msgstr "" -#: core/app_settings.py:384 core/app_settings.py:1004 -msgid "Location of the configuration file which contains Dovecot LDAP settings." +#: core/app_settings.py:374 core/app_settings.py:1134 +msgid "" +"Location of the configuration file which contains Dovecot LDAP settings." msgstr "" -#: core/app_settings.py:389 core/app_settings.py:1013 +#: core/app_settings.py:379 core/app_settings.py:1147 #: core/templates/core/dashboard.html:5 msgid "Dashboard" msgstr "" -#: core/app_settings.py:392 core/app_settings.py:1016 +#: core/app_settings.py:382 core/app_settings.py:1153 msgid "Custom RSS feed" msgstr "" -#: core/app_settings.py:395 core/app_settings.py:1018 +#: core/app_settings.py:385 core/app_settings.py:1155 msgid "Display custom RSS feed to resellers and domain administrators" msgstr "" -#: core/app_settings.py:400 core/app_settings.py:1023 +#: core/app_settings.py:390 core/app_settings.py:1163 msgid "Hide features widget" msgstr "" -#: core/app_settings.py:403 core/app_settings.py:1025 +#: core/app_settings.py:393 core/app_settings.py:1165 msgid "Hide features widget for resellers and domain administrators" msgstr "" -#: core/app_settings.py:407 core/app_settings.py:1032 +#: core/app_settings.py:397 core/app_settings.py:1177 msgid "Notifications" msgstr "" -#: core/app_settings.py:410 core/app_settings.py:1035 +#: core/app_settings.py:400 core/app_settings.py:1183 msgid "Sender address" msgstr "" -#: core/app_settings.py:413 core/app_settings.py:1037 +#: core/app_settings.py:402 core/app_settings.py:1185 msgid "Email address used to send notifications." msgstr "" -#: core/app_settings.py:417 core/app_settings.py:1042 +#: core/app_settings.py:405 core/app_settings.py:1196 msgid "Public API" msgstr "" -#: core/app_settings.py:420 core/app_settings.py:1045 +#: core/app_settings.py:408 core/app_settings.py:1202 msgid "Enable communication" msgstr "" -#: core/app_settings.py:423 +#: core/app_settings.py:410 msgid "Enable communication with Modoboa public API" msgstr "" -#: core/app_settings.py:427 core/app_settings.py:1050 +#: core/app_settings.py:414 core/app_settings.py:1211 msgid "Check new versions" msgstr "" -#: core/app_settings.py:430 core/app_settings.py:1047 core/app_settings.py:1053 +#: core/app_settings.py:416 core/app_settings.py:1204 +#: core/app_settings.py:1214 msgid "Automatically checks if a newer version is available" msgstr "" -#: core/app_settings.py:434 core/app_settings.py:1057 +#: core/app_settings.py:420 core/app_settings.py:1222 msgid "Send an email when new versions are found" msgstr "" -#: core/app_settings.py:437 core/app_settings.py:1060 +#: core/app_settings.py:422 core/app_settings.py:1226 msgid "Send an email to notify admins about new versions" msgstr "" -#: core/app_settings.py:441 core/app_settings.py:1064 +#: core/app_settings.py:425 core/app_settings.py:1233 msgid "Recipient" msgstr "" -#: core/app_settings.py:444 core/app_settings.py:1067 +#: core/app_settings.py:427 core/app_settings.py:1236 msgid "Recipient of new versions notification emails." msgstr "" -#: core/app_settings.py:449 core/app_settings.py:1071 +#: core/app_settings.py:431 core/app_settings.py:1243 msgid "Send statistics" msgstr "" -#: core/app_settings.py:452 core/app_settings.py:1074 +#: core/app_settings.py:434 core/app_settings.py:1246 msgid "Send statistics to Modoboa public API (counters and used extensions)" msgstr "" -#: core/app_settings.py:456 core/app_settings.py:1080 +#: core/app_settings.py:438 core/app_settings.py:1258 msgid "Miscellaneous" msgstr "" -#: core/app_settings.py:459 core/app_settings.py:1083 +#: core/app_settings.py:441 core/app_settings.py:1265 msgid "Enable inactive account tracking" msgstr "" -#: core/app_settings.py:461 core/app_settings.py:1085 -msgid "Allow the administrator to set a threshold (in days) beyond which an account is considered inactive if the user hasn't logged in" +#: core/app_settings.py:444 core/app_settings.py:1268 +msgid "" +"Allow the administrator to set a threshold (in days) beyond which an account" +" is considered inactive if the user hasn't logged in" msgstr "" -#: core/app_settings.py:467 core/app_settings.py:1091 +#: core/app_settings.py:451 core/app_settings.py:1277 msgid "Inactive account threshold" msgstr "" -#: core/app_settings.py:470 core/app_settings.py:1094 -msgid "An account with a last login date greater than this threshold (in days) will be considered as inactive" +#: core/app_settings.py:454 core/app_settings.py:1280 +msgid "" +"An account with a last login date greater than this threshold (in days) will" +" be considered as inactive" msgstr "" -#: core/app_settings.py:476 core/app_settings.py:1099 +#: core/app_settings.py:460 core/app_settings.py:1289 msgid "Top notifications check interval" msgstr "" -#: core/app_settings.py:479 core/app_settings.py:1101 +#: core/app_settings.py:462 core/app_settings.py:1292 msgid "Interval between two top notification checks (in seconds)" msgstr "" -#: core/app_settings.py:484 core/app_settings.py:1105 +#: core/app_settings.py:466 core/app_settings.py:1299 msgid "Maximum log record age" msgstr "" -#: core/app_settings.py:486 core/app_settings.py:1107 +#: core/app_settings.py:468 core/app_settings.py:1301 msgid "The maximum age in days of a log record" msgstr "" -#: core/app_settings.py:490 core/app_settings.py:1110 +#: core/app_settings.py:472 core/app_settings.py:1308 msgid "Items per page" msgstr "" -#: core/app_settings.py:492 core/app_settings.py:1111 +#: core/app_settings.py:474 core/app_settings.py:1310 msgid "Number of displayed items per page" msgstr "" -#: core/app_settings.py:496 core/app_settings.py:1114 +#: core/app_settings.py:478 core/app_settings.py:1317 msgid "Default top redirection" msgstr "" -#: core/app_settings.py:500 core/app_settings.py:1116 +#: core/app_settings.py:482 core/app_settings.py:1319 msgid "The default redirection used when no application is specified" msgstr "" -#: core/app_settings.py:799 +#: core/app_settings.py:830 msgid "LDAP" msgstr "" -#: core/checks/settings_checks.py:6 -msgid "You have USE_TZ set to False, this may result in issues during transitions between summer/winter time (ie the same local time occuring twice due to clock change)." +#: core/checks/settings_checks.py:7 +msgid "" +"You have USE_TZ set to False, this may result in issues during transitions " +"between summer/winter time (ie the same local time occuring twice due to " +"clock change)." msgstr "" -#: core/checks/settings_checks.py:9 +#: core/checks/settings_checks.py:11 msgid "Set `USE_TZ = True` in settings.py" msgstr "" @@ -2057,31 +2160,31 @@ msgstr "" msgid "Missing 2FA verification." msgstr "" -#: core/forms.py:40 +#: core/forms.py:35 msgid "Old password" msgstr "" -#: core/forms.py:44 +#: core/forms.py:40 msgid "New password" msgstr "" -#: core/forms.py:76 +#: core/forms.py:79 msgid "Old password mismatchs" msgstr "" -#: core/forms.py:89 +#: core/forms.py:92 msgid "Passwords mismatch" msgstr "" -#: core/forms.py:118 +#: core/forms.py:124 msgid "Enable API access" msgstr "" -#: core/forms.py:152 +#: core/forms.py:170 msgid "Verification code" msgstr "" -#: core/forms.py:163 +#: core/forms.py:181 msgid "Invalid code" msgstr "" @@ -2098,20 +2201,20 @@ msgstr "" msgid "%(object)s '%(name)s' %(action)s by user %(user)s" msgstr "" -#: core/handlers.py:63 +#: core/handlers.py:64 #, python-format msgid "%(object)s '%(name)s' %(action)s by " msgstr "" -#: core/handlers.py:65 +#: core/handlers.py:67 msgid "deleted" msgstr "" -#: core/handlers.py:69 +#: core/handlers.py:71 msgid "user {}" msgstr "" -#: core/handlers.py:71 +#: core/handlers.py:73 msgid "management command" msgstr "" @@ -2119,67 +2222,67 @@ msgstr "" msgid "You can't delete your own account" msgstr "" -#: core/handlers.py:131 +#: core/handlers.py:128 msgid "One or more updates are available" msgstr "" -#: core/management/commands/communicate_with_public_api.py:44 +#: core/management/commands/communicate_with_public_api.py:42 msgid "[modoboa] Update(s) available" msgstr "" -#: core/models.py:52 +#: core/models.py:55 msgid "Allow mailboxes access" msgstr "" -#: core/models.py:54 +#: core/models.py:57 msgid "Allow this administrator to access user mailboxes" msgstr "" -#: core/models.py:57 +#: core/models.py:59 core/templates/core/user_security.html:119 msgid "password" msgstr "" -#: core/models.py:60 +#: core/models.py:62 msgid "language" msgstr "" -#: core/models.py:63 +#: core/models.py:66 msgid "Prefered language to display pages." msgstr "" -#: core/models.py:72 +#: core/models.py:75 msgid "An alternative e-mail address, can be used for recovery needs." msgstr "" -#: core/models.py:126 +#: core/models.py:131 #, fuzzy #| msgid "Failed to update LDAP account: {}" msgid "Failed to update password: LDAP module not installed" msgstr "Nepodařilo se aktualizovat LDAP účet: {}" -#: core/models.py:159 +#: core/models.py:166 policyd/core.py:106 msgid "account" msgstr "" -#: core/models.py:286 +#: core/models.py:294 msgid "Unknown" msgstr "" -#: core/models.py:328 +#: core/models.py:337 msgid "You can't import an account with a role greater than yours" msgstr "" -#: core/models.py:343 +#: core/models.py:352 #, python-format msgid "The simple user '%s' must have a valid email address" msgstr "" -#: core/models.py:348 +#: core/models.py:359 #, python-format msgid "username and email fields must not differ for '%s'" msgstr "" -#: core/password_validation.py:24 +#: core/password_validation.py:25 msgid "Password must contain at least {} digit." msgid_plural "Password must contain at least {} digits." msgstr[0] "" @@ -2187,7 +2290,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: core/password_validation.py:34 +#: core/password_validation.py:37 msgid "Password must contain at least {} lowercase letter." msgid_plural "Password must contain at least {} lowercase letters." msgstr[0] "" @@ -2195,7 +2298,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: core/password_validation.py:45 +#: core/password_validation.py:49 msgid "Password must contain at least {} uppercase letter." msgid_plural "Password must contain at least {} uppercase letters." msgstr[0] "" @@ -2203,7 +2306,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: core/password_validation.py:57 +#: core/password_validation.py:62 msgid "Password must contain at least {} special character." msgid_plural "Password must contain at least {} special characters." msgstr[0] "" @@ -2211,55 +2314,55 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: core/password_validation.py:65 +#: core/password_validation.py:70 msgid "Your password must contain a combination of different character types." msgstr "" -#: core/sms_backends/ovh.py:21 core/sms_backends/ovh.py:103 +#: core/sms_backends/ovh.py:21 core/sms_backends/ovh.py:102 msgid "API endpoint" msgstr "" -#: core/sms_backends/ovh.py:24 core/sms_backends/ovh.py:65 +#: core/sms_backends/ovh.py:24 core/sms_backends/ovh.py:62 msgid "OVH Europe" msgstr "" -#: core/sms_backends/ovh.py:25 core/sms_backends/ovh.py:66 +#: core/sms_backends/ovh.py:25 core/sms_backends/ovh.py:63 msgid "OVH US" msgstr "" -#: core/sms_backends/ovh.py:26 core/sms_backends/ovh.py:67 +#: core/sms_backends/ovh.py:26 core/sms_backends/ovh.py:64 msgid "OVH North-America" msgstr "" -#: core/sms_backends/ovh.py:27 core/sms_backends/ovh.py:68 +#: core/sms_backends/ovh.py:27 core/sms_backends/ovh.py:65 msgid "So you Start Europe" msgstr "" -#: core/sms_backends/ovh.py:28 core/sms_backends/ovh.py:69 +#: core/sms_backends/ovh.py:28 core/sms_backends/ovh.py:66 msgid "So you Start North America" msgstr "" -#: core/sms_backends/ovh.py:29 core/sms_backends/ovh.py:70 +#: core/sms_backends/ovh.py:29 core/sms_backends/ovh.py:67 msgid "Kimsufi Europe" msgstr "" -#: core/sms_backends/ovh.py:30 core/sms_backends/ovh.py:71 +#: core/sms_backends/ovh.py:30 core/sms_backends/ovh.py:68 msgid "Kimsufi North America" msgstr "" -#: core/sms_backends/ovh.py:37 core/sms_backends/ovh.py:107 +#: core/sms_backends/ovh.py:36 core/sms_backends/ovh.py:109 msgid "Application key" msgstr "" -#: core/sms_backends/ovh.py:44 +#: core/sms_backends/ovh.py:41 msgid "Application secret" msgstr "" -#: core/sms_backends/ovh.py:52 core/sms_backends/ovh.py:116 +#: core/sms_backends/ovh.py:49 core/sms_backends/ovh.py:124 msgid "Consumer key" msgstr "" -#: core/sms_backends/ovh.py:111 +#: core/sms_backends/ovh.py:116 msgid "Appication secret" msgstr "" @@ -2284,7 +2387,9 @@ msgid "Latest news" msgstr "" #: core/templates/core/_latest_news_widget.html:19 -msgid "Visit the official weblog for more information." +msgid "" +"Visit the official " +"weblog for more information." msgstr "" #: core/templates/core/api_access.html:3 @@ -2297,7 +2402,9 @@ msgstr "" #: core/templates/core/api_access.html:7 #, python-format -msgid "A documentation of the API is available here." +msgid "" +"A documentation of the API is available here." msgstr "" #: core/templates/core/api_access.html:14 @@ -2309,7 +2416,7 @@ msgstr "" msgid "Hello %(user)s." msgstr "" -#: core/templates/core/information.html:2 core/templatetags/core_tags.py:62 +#: core/templates/core/information.html:2 core/templatetags/core_tags.py:58 msgid "Information" msgstr "" @@ -2341,7 +2448,7 @@ msgstr "" msgid "Active users" msgstr "" -#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:66 +#: core/templates/core/logs.html:2 core/templatetags/core_tags.py:63 msgid "Logs" msgstr "" @@ -2369,7 +2476,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:71 +#: core/templates/core/parameters.html:2 core/templatetags/core_tags.py:70 msgid "Parameters" msgstr "" @@ -2386,12 +2493,12 @@ msgstr "" msgid "Modoboa settings" msgstr "" -#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:90 +#: core/templates/core/user_index.html:4 core/templatetags/core_tags.py:95 msgid "Settings" msgstr "" #: core/templates/core/user_preferences.html:2 -#: core/templatetags/core_tags.py:120 +#: core/templatetags/core_tags.py:139 msgid "Preferences" msgstr "" @@ -2411,7 +2518,7 @@ msgstr "" msgid "Click here to update your password" msgstr "" -#: core/templates/core/user_security.html:2 core/templatetags/core_tags.py:124 +#: core/templates/core/user_security.html:2 core/templatetags/core_tags.py:145 msgid "Security" msgstr "" @@ -2420,7 +2527,9 @@ msgid "Two-Factor authentication" msgstr "" #: core/templates/core/user_security.html:17 -msgid "Install a soft token authenticator like FreeOTP or Google Authenticator from your application repository and use that app to scan this QR code." +msgid "" +"Install a soft token authenticator like FreeOTP or Google Authenticator from" +" your application repository and use that app to scan this QR code." msgstr "" #: core/templates/core/user_security.html:25 @@ -2432,28 +2541,43 @@ msgid "Register" msgstr "" #: core/templates/core/user_security.html:33 -msgid "Congratulations! Two-Factor Authentication is now enabled for your account." +msgid "" +"Congratulations! Two-Factor Authentication is now enabled for your account." msgstr "" #: core/templates/core/user_security.html:38 #: core/templates/core/user_security.html:89 -msgid "The following recovery codes can be used one time each to let you regain access to your account, in case you lose your phone for example. Make sure to save them in a safe place, otherwise you won't be able to access your account anymore." +msgid "" +"The following recovery codes can be used one time each to let you regain " +"access to your account, in case you lose your phone for example. Make sure " +"to save them in a safe place, otherwise you won't be able to access your " +"account anymore." msgstr "" #: core/templates/core/user_security.html:53 msgid "Two-Factor Authentication is enabled for your account." msgstr "" +#: core/templates/core/user_security.html:57 +msgid "This will invalidate your registered application." +msgstr "" + #: core/templates/core/user_security.html:58 msgid "Disable 2FA" msgstr "" +#: core/templates/core/user_security.html:60 +msgid "This will regenerate your tokens." +msgstr "" + #: core/templates/core/user_security.html:61 msgid "Reset recovery codes" msgstr "" #: core/templates/core/user_security.html:65 -msgid "Two-Factor Authentication (2FA) is not yet activated for your account. Enabling this feature will increase your account's security." +msgid "" +"Two-Factor Authentication (2FA) is not yet activated for your account. " +"Enabling this feature will increase your account's security." msgstr "" #: core/templates/core/user_security.html:73 @@ -2468,67 +2592,71 @@ msgstr "" msgid "Here are your new recovery codes. " msgstr "" +#: core/templates/core/user_security.html:118 +msgid "Confirm your password" +msgstr "" + #: core/templatetags/core_tags.py:34 msgid "Modoboa" msgstr "" -#: core/templatetags/core_tags.py:102 +#: core/templatetags/core_tags.py:110 msgid "Logout" msgstr "" -#: core/templatetags/core_tags.py:131 +#: core/templatetags/core_tags.py:154 msgid "API" msgstr "" -#: core/utils.py:32 +#: core/utils.py:33 msgid "The core part of Modoboa" msgstr "" -#: core/views/admin.py:43 +#: core/views/admin.py:42 msgid "Parameters saved" msgstr "" -#: core/views/auth.py:100 +#: core/views/auth.py:101 msgid "Your username and password didn't match. Please try again." msgstr "" -#: core/views/auth.py:135 +#: core/views/auth.py:144 msgid "User '{}' successfully logged out" msgstr "" -#: core/views/user.py:59 +#: core/views/user.py:55 msgid "Profile updated" msgstr "" -#: core/views/user.py:88 +#: core/views/user.py:89 msgid "Preferences saved" msgstr "" -#: core/views/user.py:110 +#: core/views/user.py:118 msgid "Access updated" msgstr "" -#: dmarc/forms.py:38 dmarc/forms.py:51 +#: dmarc/forms.py:36 dmarc/forms.py:50 msgid "DNS settings" msgstr "" -#: dmarc/forms.py:41 dmarc/forms.py:54 +#: dmarc/forms.py:39 dmarc/forms.py:56 msgid "Enable reverse lookups" msgstr "" -#: dmarc/forms.py:44 dmarc/forms.py:56 +#: dmarc/forms.py:41 dmarc/forms.py:58 msgid "Enable reverse DNS lookups (reports will be longer to display)" msgstr "" -#: dmarc/forms.py:69 dmarc/forms.py:71 +#: dmarc/forms.py:74 dmarc/forms.py:78 msgid "DMARC" msgstr "" -#: dmarc/handlers.py:20 +#: dmarc/handlers.py:21 msgid "Show DMARC report for {}" msgstr "" -#: dmarc/lib.py:299 dmarc/templatetags/dmarc_tags.py:59 dmarc/views.py:123 +#: dmarc/lib.py:294 dmarc/templatetags/dmarc_tags.py:67 dmarc/views.py:120 msgid "Not resolved" msgstr "" @@ -2564,11 +2692,11 @@ msgstr "" msgid "Permanent error" msgstr "" -#: dmarc/models.py:25 +#: dmarc/models.py:24 msgid "Policy" msgstr "" -#: dmarc/models.py:29 +#: dmarc/models.py:26 msgid "Soft failure" msgstr "" @@ -2640,95 +2768,95 @@ msgstr "" msgid "Unknown sources / Threats" msgstr "" -#: dnstools/lib.py:78 +#: dnstools/lib.py:82 msgid "Wrong ip4 mechanism syntax" msgstr "" -#: dnstools/lib.py:82 +#: dnstools/lib.py:86 msgid "Wrong IPv4 address format" msgstr "" -#: dnstools/lib.py:88 +#: dnstools/lib.py:92 msgid "Wrong ip6 mechanism syntax" msgstr "" -#: dnstools/lib.py:93 +#: dnstools/lib.py:97 msgid "Wrong IPv6 address format" msgstr "" -#: dnstools/lib.py:108 dnstools/lib.py:134 +#: dnstools/lib.py:111 dnstools/lib.py:136 msgid "Invalid syntax for {} mechanism" msgstr "" -#: dnstools/lib.py:110 +#: dnstools/lib.py:113 msgid "Invalid mask found {}" msgstr "" -#: dnstools/lib.py:155 +#: dnstools/lib.py:157 msgid "Not an SPF record" msgstr "" -#: dnstools/lib.py:177 +#: dnstools/lib.py:179 msgid "Unknown mechanism {}" msgstr "" -#: dnstools/lib.py:179 +#: dnstools/lib.py:181 msgid "Unknown modifier {}" msgstr "" -#: dnstools/lib.py:182 +#: dnstools/lib.py:184 msgid "Duplicate modifier {} found" msgstr "" -#: dnstools/lib.py:186 +#: dnstools/lib.py:188 msgid "No mechanism found" msgstr "" -#: dnstools/lib.py:193 +#: dnstools/lib.py:195 msgid "Not a valid DKIM record" msgstr "" -#: dnstools/lib.py:201 dnstools/lib.py:254 +#: dnstools/lib.py:203 dnstools/lib.py:256 msgid "Invalid tag {}" msgstr "" -#: dnstools/lib.py:206 +#: dnstools/lib.py:208 msgid "No key found in record" msgstr "" -#: dnstools/lib.py:213 +#: dnstools/lib.py:215 msgid "Wrong value {} for tag {}" msgstr "" -#: dnstools/lib.py:228 +#: dnstools/lib.py:230 msgid "Wrong value {} for tag {}:" msgstr "" -#: dnstools/lib.py:232 +#: dnstools/lib.py:234 msgid " not an integer" msgstr "" -#: dnstools/lib.py:235 +#: dnstools/lib.py:236 msgid " less than {}" msgstr "" -#: dnstools/lib.py:238 +#: dnstools/lib.py:239 msgid " greater than {}" msgstr "" -#: dnstools/lib.py:246 +#: dnstools/lib.py:248 msgid "Not a valid DMARC record" msgstr "" -#: dnstools/lib.py:257 +#: dnstools/lib.py:259 msgid "Unknown tag {}" msgstr "" -#: dnstools/lib.py:262 +#: dnstools/lib.py:264 msgid "Missing required p tag" msgstr "" -#: dnstools/models.py:75 +#: dnstools/models.py:78 msgid "Public key mismatchs" msgstr "" @@ -2757,7 +2885,9 @@ msgid "A DNS record has been found but its syntax is not valid:" msgstr "" #: dnstools/templates/dnstools/domain_dns_configuration.html:7 -msgid "Here is an example of DNS configuration (bind format). Replace value between [ ] by the appropriate ones." +msgid "" +"Here is an example of DNS configuration (bind format). Replace value between" +" [ ] by the appropriate ones." msgstr "" #: dnstools/templates/dnstools/domain_dns_configuration.html:15 @@ -2773,7 +2903,7 @@ msgstr "" msgid "hostname of your automx server" msgstr "" -#: dnstools/views.py:36 +#: dnstools/views.py:35 msgid "{} record of {}" msgstr "" @@ -2781,136 +2911,144 @@ msgstr "" msgid "Auto configuration records for {}" msgstr "" -#: dnstools/views.py:84 +#: dnstools/views.py:80 msgid "DNS configuration for {}" msgstr "" -#: imap_migration/api/v2/serializers.py:52 +#: imap_migration/api/v2/serializers.py:117 msgid "Access denied" msgstr "" -#: imap_migration/app_settings.py:17 imap_migration/app_settings.py:67 +#: imap_migration/app_settings.py:23 imap_migration/app_settings.py:102 msgid "Enable IMAP Migration" msgstr "" -#: imap_migration/app_settings.py:19 imap_migration/app_settings.py:69 +#: imap_migration/app_settings.py:24 imap_migration/app_settings.py:104 msgid "Enable IMAP Migration." msgstr "" -#: imap_migration/app_settings.py:24 +#: imap_migration/app_settings.py:34 msgid "OfflineIMAP" msgstr "" -#: imap_migration/app_settings.py:27 imap_migration/app_settings.py:75 +#: imap_migration/app_settings.py:40 imap_migration/app_settings.py:110 msgid "Concurrent sync jobs" msgstr "" -#: imap_migration/app_settings.py:29 imap_migration/app_settings.py:77 +#: imap_migration/app_settings.py:42 imap_migration/app_settings.py:112 msgid "The maximum number of concurrent synchronization jobs" msgstr "" -#: imap_migration/app_settings.py:34 +#: imap_migration/app_settings.py:53 msgid "OfflineIMAP Filter" msgstr "" -#: imap_migration/app_settings.py:37 imap_migration/app_settings.py:83 +#: imap_migration/app_settings.py:59 imap_migration/app_settings.py:118 msgid "Create Folders" msgstr "" -#: imap_migration/app_settings.py:39 imap_migration/app_settings.py:85 +#: imap_migration/app_settings.py:61 imap_migration/app_settings.py:120 msgid "Allow Creation of missing folders during sync" msgstr "" -#: imap_migration/app_settings.py:42 imap_migration/app_settings.py:90 +#: imap_migration/app_settings.py:68 imap_migration/app_settings.py:125 msgid "Folder Filter Exclusions" msgstr "" -#: imap_migration/app_settings.py:44 imap_migration/app_settings.py:93 -msgid "Use a regular expression to explicitly include folders in sync. Example: ^Trash$|Del" +#: imap_migration/app_settings.py:70 imap_migration/app_settings.py:128 +msgid "" +"Use a regular expression to explicitly include folders in sync. Example: " +"^Trash$|Del" msgstr "" -#: imap_migration/app_settings.py:48 imap_migration/app_settings.py:100 +#: imap_migration/app_settings.py:78 imap_migration/app_settings.py:135 msgid "Folder Filter Inclusions" msgstr "" -#: imap_migration/app_settings.py:50 imap_migration/app_settings.py:103 -msgid "A comma seperated list of folders to explicitly include in sync even if filtered by the Folder Filter Exclusions. Example: debian.user, debian.personal " +#: imap_migration/app_settings.py:80 imap_migration/app_settings.py:138 +msgid "" +"A comma seperated list of folders to explicitly include in sync even if " +"filtered by the Folder Filter Exclusions. Example: debian.user, " +"debian.personal " msgstr "" -#: imap_migration/app_settings.py:72 +#: imap_migration/app_settings.py:107 msgid "OfflineIMAP settings" msgstr "" -#: imap_migration/app_settings.py:80 +#: imap_migration/app_settings.py:115 msgid "OfflineIMAP Filter settings" msgstr "" -#: imap_migration/apps.py:18 imap_migration/apps.py:20 +#: imap_migration/apps.py:18 imap_migration/apps.py:23 msgid "IMAP Migration" msgstr "" -#: imap_migration/auth_backends.py:46 +#: imap_migration/auth_backends.py:49 #, python-format msgid "Connection to IMAP server failed: %s" msgstr "" -#: imap_migration/checks.py:11 -msgid "Automatic domain/mailbox creation is disabled which means IMAP authentication won't work." +#: imap_migration/checks.py:12 +msgid "" +"Automatic domain/mailbox creation is disabled which means IMAP " +"authentication won't work." msgstr "" -#: imap_migration/checks.py:13 -msgid "Go to the online parameters panel (admin tab) and activate this feature." +#: imap_migration/checks.py:16 +msgid "" +"Go to the online parameters panel (admin tab) and activate this feature." msgstr "" #: imap_migration/templates/imap_migration/index.html:6 msgid "IMAP migration" msgstr "" -#: ldapsync/lib.py:84 +#: ldapsync/lib.py:82 msgid "Failed to create LDAP account: {}" msgstr "Nepodařilo se vytvořit LDAT účet: {}" -#: ldapsync/lib.py:124 +#: ldapsync/lib.py:121 msgid "Failed to update LDAP account: {}" msgstr "Nepodařilo se aktualizovat LDAP účet: {}" -#: ldapsync/lib.py:138 +#: ldapsync/lib.py:134 msgid "Failed to delete LDAP account: {}" msgstr "Nepodařilo se smazat LDAP účet: {}" -#: ldapsync/lib.py:149 +#: ldapsync/lib.py:141 msgid "Failed to disable LDAP account: {}" msgstr "Nepodařilo se zakázat LDAP účet: {}" -#: lib/api_client.py:36 lib/api_client.py:72 lib/api_client.py:87 -#: lib/api_client.py:92 +#: lib/api_client.py:35 lib/api_client.py:69 lib/api_client.py:83 +#: lib/api_client.py:87 #, python-format msgid "Failed to communicate with public API: %s" msgstr "" -#: lib/db_utils.py:23 +#: lib/db_utils.py:22 #, python-format msgid "Connection to database %s not configured" msgstr "" -#: lib/email_utils.py:143 lib/email_utils.py:363 +#: lib/email_utils.py:139 lib/email_utils.py:350 msgid "unable to determine encoding of string" msgstr "" -#: lib/exceptions.py:67 +#: lib/exceptions.py:83 #, python-format msgid "Permission denied: %s" msgstr "" -#: lib/exceptions.py:68 +#: lib/exceptions.py:84 msgid "Permission denied" msgstr "" -#: lib/fields.py:15 lib/validators.py:14 +#: lib/fields.py:14 lib/validators.py:13 msgid "Enter a valid domain name" msgstr "" -#: lib/fields.py:44 lib/fields.py:58 +#: lib/fields.py:41 lib/fields.py:54 msgid "Enter a valid email address." msgstr "" @@ -2920,135 +3058,155 @@ msgstr "" msgid "Submit" msgstr "" -#: lib/ldap_utils.py:129 +#: lib/ldap_utils.py:126 #, fuzzy #| msgid "Failed to update LDAP account: {}" msgid "Failed to update password: {}" msgstr "Nepodařilo se aktualizovat LDAP účet: {}" -#: lib/templatetags/lib_tags.py:107 templates/common/email_searchbar.html:17 +#: lib/templatetags/lib_tags.py:120 templates/common/email_searchbar.html:17 msgid "Subject" msgstr "" -#: limits/app_settings.py:17 limits/app_settings.py:154 +#: limits/app_settings.py:17 limits/app_settings.py:147 msgid "Default per-admin limits" msgstr "" -#: limits/app_settings.py:20 limits/app_settings.py:157 +#: limits/app_settings.py:20 limits/app_settings.py:153 msgid "Enable per-admin limits" msgstr "" -#: limits/app_settings.py:22 limits/app_settings.py:158 +#: limits/app_settings.py:22 limits/app_settings.py:154 msgid "Enable or disable per-admin limits" msgstr "" -#: limits/app_settings.py:26 limits/app_settings.py:97 -#: limits/app_settings.py:161 limits/app_settings.py:220 limits/constants.py:24 -#: limits/constants.py:54 +#: limits/app_settings.py:26 limits/app_settings.py:91 +#: limits/app_settings.py:160 limits/app_settings.py:245 +#: limits/constants.py:47 limits/constants.py:101 msgid "Domain admins" msgstr "" -#: limits/app_settings.py:29 limits/app_settings.py:164 -msgid "Maximum number of allowed domain administrators for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +#: limits/app_settings.py:29 limits/app_settings.py:163 +msgid "" +"Maximum number of allowed domain administrators for a new administrator. (0 " +"to deny any creation, -1 to allow unlimited creations)" msgstr "" -#: limits/app_settings.py:40 limits/app_settings.py:173 -msgid "Maximum number of allowed domains for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +#: limits/app_settings.py:39 limits/app_settings.py:175 +msgid "" +"Maximum number of allowed domains for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "" -#: limits/app_settings.py:50 limits/app_settings.py:181 -msgid "Maximum number of allowed domain aliases for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +#: limits/app_settings.py:48 limits/app_settings.py:186 +msgid "" +"Maximum number of allowed domain aliases for a new administrator. (0 to deny" +" any creation, -1 to allow unlimited creations)" msgstr "" -#: limits/app_settings.py:61 limits/app_settings.py:190 -msgid "Maximum number of allowed mailboxes for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +#: limits/app_settings.py:58 limits/app_settings.py:198 +msgid "" +"Maximum number of allowed mailboxes for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "" -#: limits/app_settings.py:71 limits/app_settings.py:199 -msgid "Maximum number of allowed aliases for a new administrator. (0 to deny any creation, -1 to allow unlimited creations)" +#: limits/app_settings.py:67 limits/app_settings.py:210 +msgid "" +"Maximum number of allowed aliases for a new administrator. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "" -#: limits/app_settings.py:81 limits/app_settings.py:206 -msgid "The quota a reseller will be allowed to share between the domains he creates. (0 means no quota)" +#: limits/app_settings.py:76 limits/app_settings.py:220 +msgid "" +"The quota a reseller will be allowed to share between the domains he " +"creates. (0 means no quota)" msgstr "" -#: limits/app_settings.py:88 limits/app_settings.py:213 +#: limits/app_settings.py:82 limits/app_settings.py:232 msgid "Default per-domain limits" msgstr "" -#: limits/app_settings.py:91 limits/app_settings.py:216 +#: limits/app_settings.py:85 limits/app_settings.py:238 msgid "Enable per-domain limits" msgstr "" -#: limits/app_settings.py:93 limits/app_settings.py:217 +#: limits/app_settings.py:87 limits/app_settings.py:239 msgid "Enable or disable per-domain limits" msgstr "" -#: limits/app_settings.py:100 limits/app_settings.py:223 -msgid "Maximum number of allowed domain administrators for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +#: limits/app_settings.py:94 limits/app_settings.py:248 +msgid "" +"Maximum number of allowed domain administrators for a new domain. (0 to deny" +" any creation, -1 to allow unlimited creations)" msgstr "" -#: limits/app_settings.py:111 limits/app_settings.py:232 -msgid "Maximum number of allowed domain aliases for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +#: limits/app_settings.py:104 limits/app_settings.py:260 +msgid "" +"Maximum number of allowed domain aliases for a new domain. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "" -#: limits/app_settings.py:122 limits/app_settings.py:241 -msgid "Maximum number of allowed mailboxes for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +#: limits/app_settings.py:114 limits/app_settings.py:272 +msgid "" +"Maximum number of allowed mailboxes for a new domain. (0 to deny any " +"creation, -1 to allow unlimited creations)" msgstr "" -#: limits/app_settings.py:132 limits/app_settings.py:249 -msgid "Maximum number of allowed aliases for a new domain. (0 to deny any creation, -1 to allow unlimited creations)" +#: limits/app_settings.py:123 limits/app_settings.py:283 +msgid "" +"Maximum number of allowed aliases for a new domain. (0 to deny any creation," +" -1 to allow unlimited creations)" msgstr "" -#: limits/apps.py:13 limits/apps.py:15 +#: limits/apps.py:13 limits/apps.py:17 msgid "Limits" msgstr "" -#: limits/constants.py:10 +#: limits/constants.py:14 msgid "Maximum number of domains this user can create" msgstr "" -#: limits/constants.py:14 +#: limits/constants.py:23 msgid "Maximum number of domain aliases this user can create" msgstr "" -#: limits/constants.py:18 +#: limits/constants.py:32 msgid "Maximum number of mailboxes this user can create" msgstr "" -#: limits/constants.py:21 +#: limits/constants.py:40 msgid "Maximum number of mailbox aliases this user can create" msgstr "" -#: limits/constants.py:25 +#: limits/constants.py:49 msgid "Maximum number of domain administrators this user can create" msgstr "" -#: limits/constants.py:31 +#: limits/constants.py:60 msgid "Quota shared between domains of this reseller" msgstr "" -#: limits/constants.py:42 +#: limits/constants.py:77 msgid "Maximum number of domain aliases allowed for this domain." msgstr "" -#: limits/constants.py:46 +#: limits/constants.py:85 msgid "Maximum number of mailboxes allowed for this domain." msgstr "" -#: limits/constants.py:50 +#: limits/constants.py:93 msgid "Maximum number of mailbox aliases allowed for this domain." msgstr "" -#: limits/constants.py:55 +#: limits/constants.py:102 msgid "Maximum number of domain admins allowed for this domain." msgstr "" -#: limits/forms.py:38 limits/forms.py:87 +#: limits/forms.py:38 limits/forms.py:88 msgid "Invalid limit" msgstr "" -#: limits/handlers.py:118 limits/handlers.py:154 +#: limits/handlers.py:118 limits/handlers.py:151 msgid "Resources" msgstr "" @@ -3061,11 +3219,11 @@ msgstr "" msgid "Not enough resources" msgstr "" -#: limits/lib.py:47 limits/models.py:47 +#: limits/lib.py:46 limits/models.py:46 msgid "You're not allowed to define unlimited values" msgstr "" -#: limits/models.py:57 limits/models.py:121 +#: limits/models.py:56 limits/models.py:119 msgid "unlimited" msgstr "" @@ -3074,91 +3232,91 @@ msgstr "" msgid "Resources usage" msgstr "" -#: maillog/api/v2/serializers.py:36 +#: maillog/api/v2/serializers.py:35 msgid "You must provide start and end dates when period is custom" msgstr "" -#: maillog/forms.py:23 +#: maillog/apps.py:20 maillog/forms.py:23 msgid "Path to the log file" msgstr "" -#: maillog/forms.py:25 +#: maillog/apps.py:22 maillog/forms.py:25 msgid "Path to log file used to collect statistics" msgstr "" -#: maillog/forms.py:30 +#: maillog/apps.py:29 maillog/forms.py:30 msgid "Directory to store RRD files" msgstr "" -#: maillog/forms.py:33 +#: maillog/apps.py:31 maillog/forms.py:32 msgid "Path to directory where RRD files are stored" msgstr "" -#: maillog/forms.py:38 +#: maillog/apps.py:38 maillog/forms.py:37 msgid "Show greylisted messages" msgstr "" -#: maillog/forms.py:41 +#: maillog/apps.py:40 maillog/forms.py:40 msgid "Differentiate between hard and soft rejects (greylisting)" msgstr "" -#: maillog/forms.py:59 maillog/handlers.py:22 +#: maillog/apps.py:58 maillog/apps.py:62 maillog/handlers.py:21 msgid "Statistics" msgstr "" -#: maillog/graphics.py:93 +#: maillog/graphics.py:91 msgid "Failed to locate rrdtool binary." msgstr "" -#: maillog/graphics.py:170 +#: maillog/graphics.py:168 msgid "Average traffic (msgs/min)" msgstr "" -#: maillog/graphics.py:173 +#: maillog/graphics.py:171 msgid "sent messages" msgstr "" -#: maillog/graphics.py:174 +#: maillog/graphics.py:172 msgid "received messages" msgstr "" -#: maillog/graphics.py:175 +#: maillog/graphics.py:173 msgid "bounced messages" msgstr "" -#: maillog/graphics.py:176 +#: maillog/graphics.py:174 msgid "rejected messages" msgstr "" -#: maillog/graphics.py:177 +#: maillog/graphics.py:175 msgid "virus messages" msgstr "" -#: maillog/graphics.py:178 +#: maillog/graphics.py:176 msgid "spam messages" msgstr "" -#: maillog/graphics.py:185 +#: maillog/graphics.py:183 msgid "greylisted messages" msgstr "" -#: maillog/graphics.py:196 +#: maillog/graphics.py:200 msgid "Average normal traffic size (bytes/min)" msgstr "" -#: maillog/graphics.py:199 +#: maillog/graphics.py:203 msgid "received size" msgstr "" -#: maillog/graphics.py:201 +#: maillog/graphics.py:204 msgid "sent size" msgstr "" -#: maillog/graphics.py:209 +#: maillog/graphics.py:211 msgid "Mail traffic" msgstr "" -#: maillog/graphics.py:253 +#: maillog/graphics.py:254 msgid "Average account creation (account/hour)" msgstr "" @@ -3186,175 +3344,181 @@ msgstr "" msgid "No statistics available" msgstr "" -#: maillog/views.py:40 +#: maillog/views.py:39 msgid "Day" msgstr "" -#: maillog/views.py:41 +#: maillog/views.py:40 msgid "Week" msgstr "" -#: maillog/views.py:42 +#: maillog/views.py:41 msgid "Month" msgstr "" -#: maillog/views.py:43 +#: maillog/views.py:42 msgid "Year" msgstr "" -#: maillog/views.py:44 +#: maillog/views.py:43 msgid "Custom" msgstr "" -#: maillog/views.py:64 +#: maillog/views.py:66 msgid "Unknown graphic set" msgstr "" -#: maillog/views.py:69 +#: maillog/views.py:71 msgid "Unknown domain" msgstr "" -#: maillog/views.py:74 +#: maillog/views.py:76 msgid "Bad custom period" msgstr "" -#: pdfcredentials/api/v2/serializers.py:31 pdfcredentials/app_settings.py:164 -#: pdfcredentials/documents.py:52 +#: pdfcredentials/api/v2/serializers.py:31 pdfcredentials/app_settings.py:236 +#: pdfcredentials/documents.py:60 msgid "Personal account information" msgstr "" -#: pdfcredentials/api/v2/serializers.py:54 +#: pdfcredentials/api/v2/serializers.py:61 msgid "Directory is not writable" msgstr "" -#: pdfcredentials/api/v2/serializers.py:76 pdfcredentials/views.py:28 +#: pdfcredentials/api/v2/serializers.py:82 pdfcredentials/views.py:26 msgid "No document available for this user" msgstr "" -#: pdfcredentials/app_settings.py:23 pdfcredentials/app_settings.py:126 +#: pdfcredentials/app_settings.py:29 pdfcredentials/app_settings.py:198 msgid "Enable PDF credentials" msgstr "" -#: pdfcredentials/app_settings.py:25 pdfcredentials/app_settings.py:128 +#: pdfcredentials/app_settings.py:31 pdfcredentials/app_settings.py:200 msgid "Enabled PDF credentials document generation on account creation." msgstr "" -#: pdfcredentials/app_settings.py:30 pdfcredentials/app_settings.py:131 +#: pdfcredentials/app_settings.py:42 pdfcredentials/app_settings.py:203 msgid "Documents storage" msgstr "" -#: pdfcredentials/app_settings.py:33 pdfcredentials/app_settings.py:134 +#: pdfcredentials/app_settings.py:48 pdfcredentials/app_settings.py:206 msgid "Directory to save documents into" msgstr "" -#: pdfcredentials/app_settings.py:35 pdfcredentials/app_settings.py:136 +#: pdfcredentials/app_settings.py:50 pdfcredentials/app_settings.py:208 msgid "Path to a directory where PDF documents will be saved" msgstr "" -#: pdfcredentials/app_settings.py:40 pdfcredentials/app_settings.py:139 +#: pdfcredentials/app_settings.py:61 pdfcredentials/app_settings.py:211 msgid "Security options" msgstr "" -#: pdfcredentials/app_settings.py:43 pdfcredentials/app_settings.py:142 +#: pdfcredentials/app_settings.py:67 pdfcredentials/app_settings.py:214 msgid "Delete documents after the first download" msgstr "" -#: pdfcredentials/app_settings.py:45 pdfcredentials/app_settings.py:145 -msgid "Automatically delete a document just after its first download from this interface" +#: pdfcredentials/app_settings.py:69 pdfcredentials/app_settings.py:217 +msgid "" +"Automatically delete a document just after its first download from this " +"interface" msgstr "" -#: pdfcredentials/app_settings.py:50 pdfcredentials/app_settings.py:151 +#: pdfcredentials/app_settings.py:78 pdfcredentials/app_settings.py:223 msgid "Generate documents only at account creation" msgstr "" -#: pdfcredentials/app_settings.py:52 pdfcredentials/app_settings.py:154 -msgid "Generate a new document only when a new account is created. If set to no, a new document will be created each time a password is updated." +#: pdfcredentials/app_settings.py:81 pdfcredentials/app_settings.py:226 +msgid "" +"Generate a new document only when a new account is created. If set to no, a " +"new document will be created each time a password is updated." msgstr "" -#: pdfcredentials/app_settings.py:60 pdfcredentials/app_settings.py:160 +#: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:232 msgid "Customization options" msgstr "" -#: pdfcredentials/app_settings.py:63 pdfcredentials/app_settings.py:163 +#: pdfcredentials/app_settings.py:100 pdfcredentials/app_settings.py:235 msgid "Title" msgstr "" -#: pdfcredentials/app_settings.py:64 pdfcredentials/app_settings.py:165 +#: pdfcredentials/app_settings.py:101 pdfcredentials/app_settings.py:237 msgid "The document's title" msgstr "" -#: pdfcredentials/app_settings.py:67 pdfcredentials/app_settings.py:169 +#: pdfcredentials/app_settings.py:107 pdfcredentials/app_settings.py:241 msgid "Web panel url" msgstr "" -#: pdfcredentials/app_settings.py:68 pdfcredentials/app_settings.py:170 +#: pdfcredentials/app_settings.py:108 pdfcredentials/app_settings.py:241 msgid "URL of the Modoboa web panel" msgstr "" -#: pdfcredentials/app_settings.py:71 pdfcredentials/app_settings.py:174 +#: pdfcredentials/app_settings.py:114 pdfcredentials/app_settings.py:245 msgid "Custom message" msgstr "" -#: pdfcredentials/app_settings.py:73 pdfcredentials/app_settings.py:176 +#: pdfcredentials/app_settings.py:116 pdfcredentials/app_settings.py:246 msgid "A custom message that will appear at the end of documents" msgstr "" -#: pdfcredentials/app_settings.py:77 pdfcredentials/app_settings.py:181 +#: pdfcredentials/app_settings.py:123 pdfcredentials/app_settings.py:251 msgid "Include mail client connection settings" msgstr "" -#: pdfcredentials/app_settings.py:79 pdfcredentials/app_settings.py:184 -msgid "Include required SMTP and IMAP connection information to configure a mail client, a tablet or a phone" +#: pdfcredentials/app_settings.py:125 pdfcredentials/app_settings.py:254 +msgid "" +"Include required SMTP and IMAP connection information to configure a mail " +"client, a tablet or a phone" msgstr "" -#: pdfcredentials/app_settings.py:84 pdfcredentials/app_settings.py:190 -#: pdfcredentials/documents.py:107 +#: pdfcredentials/app_settings.py:133 pdfcredentials/app_settings.py:260 +#: pdfcredentials/documents.py:133 msgid "SMTP server address" msgstr "" -#: pdfcredentials/app_settings.py:86 pdfcredentials/app_settings.py:191 +#: pdfcredentials/app_settings.py:136 pdfcredentials/app_settings.py:261 msgid "Address of the SMTP server (hostname or IP)" msgstr "" -#: pdfcredentials/app_settings.py:89 pdfcredentials/app_settings.py:195 -#: pdfcredentials/documents.py:108 +#: pdfcredentials/app_settings.py:143 pdfcredentials/app_settings.py:265 +#: pdfcredentials/documents.py:134 msgid "SMTP server port" msgstr "" -#: pdfcredentials/app_settings.py:91 pdfcredentials/app_settings.py:197 +#: pdfcredentials/app_settings.py:145 pdfcredentials/app_settings.py:267 msgid "Listening port of the SMTP server" msgstr "" -#: pdfcredentials/app_settings.py:94 pdfcredentials/app_settings.py:201 -#: pdfcredentials/documents.py:109 +#: pdfcredentials/app_settings.py:151 pdfcredentials/app_settings.py:271 +#: pdfcredentials/documents.py:135 msgid "SMTP connection security" msgstr "" -#: pdfcredentials/app_settings.py:96 pdfcredentials/app_settings.py:111 -#: pdfcredentials/app_settings.py:204 pdfcredentials/app_settings.py:222 +#: pdfcredentials/app_settings.py:153 pdfcredentials/app_settings.py:179 +#: pdfcredentials/app_settings.py:274 pdfcredentials/app_settings.py:292 msgid "Connection security mechanism" msgstr "" -#: pdfcredentials/app_settings.py:99 pdfcredentials/app_settings.py:208 -#: pdfcredentials/documents.py:110 +#: pdfcredentials/app_settings.py:159 pdfcredentials/app_settings.py:278 +#: pdfcredentials/documents.py:136 msgid "IMAP server address" msgstr "" -#: pdfcredentials/app_settings.py:101 pdfcredentials/app_settings.py:209 +#: pdfcredentials/app_settings.py:162 pdfcredentials/app_settings.py:279 msgid "Address of the IMAP server (hostname or IP)" msgstr "" -#: pdfcredentials/app_settings.py:104 pdfcredentials/app_settings.py:213 -#: pdfcredentials/documents.py:111 +#: pdfcredentials/app_settings.py:169 pdfcredentials/app_settings.py:283 +#: pdfcredentials/documents.py:137 msgid "IMAP server port" msgstr "" -#: pdfcredentials/app_settings.py:106 pdfcredentials/app_settings.py:215 +#: pdfcredentials/app_settings.py:171 pdfcredentials/app_settings.py:285 msgid "Listening port of the IMAP server" msgstr "" -#: pdfcredentials/app_settings.py:109 pdfcredentials/app_settings.py:219 -#: pdfcredentials/documents.py:112 +#: pdfcredentials/app_settings.py:177 pdfcredentials/app_settings.py:289 +#: pdfcredentials/documents.py:138 msgid "IMAP connection security" msgstr "" @@ -3362,15 +3526,15 @@ msgstr "" msgid "PDF credentials" msgstr "" -#: pdfcredentials/apps.py:21 +#: pdfcredentials/apps.py:24 msgid "PDF Credentials" msgstr "" -#: pdfcredentials/documents.py:55 +#: pdfcredentials/documents.py:65 msgid "Powered by Modoboa - Mail hosting made simple" msgstr "" -#: pdfcredentials/documents.py:71 +#: pdfcredentials/documents.py:84 #, python-format msgid "" "\n" @@ -3379,38 +3543,44 @@ msgid "" "the document as soon as possible.\n" msgstr "" -#: pdfcredentials/documents.py:77 +#: pdfcredentials/documents.py:95 msgid "Web panel:" msgstr "" -#: pdfcredentials/documents.py:91 +#: pdfcredentials/documents.py:116 msgid "" "\n" "Here you can view your emails anytime online, create filters or manage\n" "your contacts.\n" msgstr "" -#: pdfcredentials/documents.py:98 +#: pdfcredentials/documents.py:126 msgid "Please change your password!" msgstr "" -#: pdfcredentials/documents.py:104 +#: pdfcredentials/documents.py:130 msgid "PC/Tablet/Smartphone configuration:" msgstr "" -#: pdfcredentials/documents.py:122 +#: pdfcredentials/documents.py:153 msgid "Use those settings for your computer, tablet or phone." msgstr "" -#: pdfcredentials/handlers.py:51 +#: pdfcredentials/handlers.py:35 +msgid "" +"Failed to create PDF_credentials directory. Please check the permissions or " +"the path." +msgstr "" + +#: pdfcredentials/handlers.py:61 msgid "Retrieve user's credentials as a PDF document" msgstr "" -#: pdfcredentials/handlers.py:71 +#: pdfcredentials/handlers.py:82 msgid "Download PDF credentials" msgstr "" -#: pdfcredentials/lib.py:27 +#: pdfcredentials/lib.py:28 msgid "Can't write to selected directory to store PDF documents" msgstr "" @@ -3419,27 +3589,156 @@ msgstr "" msgid "Failed to create the directory that will contain PDF documents (%s)" msgstr "" -#: relaydomains/api/v1/serializers.py:25 +#: pdfcredentials/lib.py:81 +msgid "" +"Failed to create PDF_credentials file. Please check the permissions or the " +"path." +msgstr "" + +#: policyd/core.py:88 +msgid "Daily sending limit reached" +msgstr "" + +#: policyd/core.py:125 +msgid "[modoboa] Sending limit reached" +msgstr "" + +#: policyd/templates/policyd/notifications/limit_reached.html:3 +#, python-format +msgid "Daily limit of the following %(ltype)s has been reached: %(name)s." +msgstr "" + +#: postfix_autoreply/api/v2/serializers.py:28 postfix_autoreply/forms.py:98 +msgid "This date is over" +msgstr "" + +#: postfix_autoreply/api/v2/serializers.py:32 postfix_autoreply/forms.py:101 +msgid "Must be greater than start date" +msgstr "" + +#: postfix_autoreply/apps.py:11 postfix_autoreply/forms.py:173 +msgid "Automatic replies" +msgstr "" + +#: postfix_autoreply/forms.py:23 +msgid "Activate your auto reply from this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "" + +#: postfix_autoreply/forms.py:31 +msgid "Until" +msgstr "" + +#: postfix_autoreply/forms.py:34 +msgid "Activate your auto reply until this date. Format : YYYY-MM-DD HH:mm:ss" +msgstr "" + +#: postfix_autoreply/forms.py:51 +#, python-format +msgid "" +"The content of your answer. You can use the following variables, which will " +"be automatically replaced by the appropriate value: %(name)s, %(fromdate)s, " +"%(untildate)s" +msgstr "" + +#: postfix_autoreply/forms.py:121 +msgid "Automatic reply timeout" +msgstr "" + +#: postfix_autoreply/forms.py:124 +msgid "Timeout in seconds between two auto-replies to the same recipient" +msgstr "" + +#: postfix_autoreply/forms.py:130 +msgid "Default subject" +msgstr "" + +#: postfix_autoreply/forms.py:131 +msgid "I'm off" +msgstr "" + +#: postfix_autoreply/forms.py:133 +msgid "" +"Default subject used when an auto-reply message is created automatically" +msgstr "" + +#: postfix_autoreply/forms.py:140 +msgid "Default content" +msgstr "" + +#: postfix_autoreply/forms.py:142 +#, python-format +msgid "" +"I'm currently off. I'll answer as soon as I come back.\n" +"\n" +"Best regards,\n" +"%(name)s\n" +msgstr "" + +#: postfix_autoreply/forms.py:148 +#, python-format +msgid "" +"Default content used when an auto-reply message is created automatically. " +"The '%(name)s' macro will be replaced by the user's full name." +msgstr "" + +#: postfix_autoreply/handlers.py:123 +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +msgid "Auto-reply message" +msgstr "" + +#: postfix_autoreply/handlers.py:135 +msgid "Auto reply" +msgstr "" + +#: postfix_autoreply/models.py:15 +msgid "subject" +msgstr "" + +#: postfix_autoreply/models.py:16 +msgid "The subject that will appear in sent emails" +msgstr "" + +#: postfix_autoreply/models.py:19 +msgid "content" +msgstr "" + +#: postfix_autoreply/models.py:20 +msgid "The content that will appear in sent emails" +msgstr "" + +#: postfix_autoreply/models.py:24 +msgid "Activate/Deactivate your auto reply" +msgstr "" + +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:3 +msgid "Define a message to automatically send when you are off" +msgstr "" + +#: postfix_autoreply/views.py:30 +msgid "Auto reply message updated successfully." +msgstr "" + +#: relaydomains/api/v1/serializers.py:24 msgid "Unsupported service" msgstr "" -#: relaydomains/handlers.py:61 +#: relaydomains/handlers.py:64 msgid "Transport settings" msgstr "" -#: relaydomains/handlers.py:85 +#: relaydomains/handlers.py:89 msgid "Transport" msgstr "" -#: relaydomains/transport.py:14 +#: relaydomains/transport.py:16 msgid "target host address" msgstr "" -#: relaydomains/transport.py:16 +#: relaydomains/transport.py:21 msgid "target host port" msgstr "" -#: relaydomains/transport.py:18 +#: relaydomains/transport.py:27 msgid "verify recipients" msgstr "" @@ -3507,7 +3806,9 @@ msgstr "" #: templates/registration/password_reset_complete.html:8 #, python-format -msgid "Your password has been set. You may go ahead and sign in now." +msgid "" +"Your password has been set. You may go ahead and sign " +"in now." msgstr "" #: templates/registration/password_reset_confirm.html:7 @@ -3515,7 +3816,9 @@ msgid "Change password" msgstr "" #: templates/registration/password_reset_confirm.html:17 -msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." +msgid "" +"The password reset link was invalid, possibly because it has already been " +"used. Please request a new password reset." msgstr "" #: templates/registration/password_reset_confirm_code.html:20 @@ -3527,18 +3830,26 @@ msgid "Resend code" msgstr "" #: templates/registration/password_reset_done.html:7 -msgid "

We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly.

If you don't receive an email, please make sure you've entered your primary address, and check your spam folder.

" +msgid "" +"

We've emailed you instructions for setting your password, if an account " +"exists with the email you entered. You should receive them shortly.

" +"

If you don't receive an email, please make sure you've entered your " +"primary address, and check your spam folder.

" msgstr "" #: templates/registration/password_reset_email.html:4 #: templates/registration/password_reset_email_v2.html:4 #, python-format -msgid "To initiate the password reset process for your %(username)s Modoboa account, click the link below:" +msgid "" +"To initiate the password reset process for your %(username)s Modoboa " +"account, click the link below:" msgstr "" #: templates/registration/password_reset_email.html:10 #: templates/registration/password_reset_email_v2.html:10 -msgid "If clicking the link above doesn't work, please copy and paste the URL in a new browser window instead." +msgid "" +"If clicking the link above doesn't work, please copy and paste the URL in a " +"new browser window instead." msgstr "" #: templates/registration/password_reset_email.html:14 @@ -3558,14 +3869,14 @@ msgstr "" msgid "Invalid value" msgstr "" -#: transport/models.py:16 +#: transport/models.py:15 msgid "pattern" msgstr "" -#: transport/models.py:17 +#: transport/models.py:16 msgid "service" msgstr "" -#: transport/models.py:18 +#: transport/models.py:17 msgid "next hop" msgstr "" diff --git a/modoboa/locale/cs_CZ/LC_MESSAGES/django.po b/modoboa/locale/cs_CZ/LC_MESSAGES/django.po index 150e332d3..2dc736a0f 100644 --- a/modoboa/locale/cs_CZ/LC_MESSAGES/django.po +++ b/modoboa/locale/cs_CZ/LC_MESSAGES/django.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Modoboa\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-04-20 14:11+0200\n" +"POT-Creation-Date: 2024-03-15 11:23+0100\n" "PO-Revision-Date: 2020-05-06 11:16+0000\n" "Last-Translator: Antoine Nguyen \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/tonio/modoboa/language/cs_CZ/)\n" @@ -21,512 +21,609 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "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/api/v1/serializers.py:35 admin/forms/domain.py:44 -msgid "Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." -msgstr "Kvóta sdílená mezi poštovními schránkami. Lze vyjádřit v KB, MB (výchozí) nebo GB. Hodnota 0 znamená žádnou kvótu." +#: admin/api/v1/serializers.py:42 admin/forms/domain.py:49 +msgid "" +"Quota shared between mailboxes. Can be expressed in KB, MB (default) or GB. " +"A value of 0 means no quota." +msgstr "" +"Kvóta sdílená mezi poštovními schránkami. Lze vyjádřit v KB, MB (výchozí) " +"nebo GB. Hodnota 0 znamená žádnou kvótu." -#: admin/api/v1/serializers.py:42 +#: admin/api/v1/serializers.py:49 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/api/v1/serializers.py:73 admin/forms/domain.py:108 +#: admin/api/v1/serializers.py:97 admin/forms/domain.py:118 msgid "No authorized MX record found for this domain" msgstr "Nebyly nalezeny žádné autorizované MX záznamy pro tuto doménu" -#: admin/api/v1/serializers.py:91 admin/forms/domain.py:150 +#: admin/api/v1/serializers.py:115 admin/forms/domain.py:160 msgid "Cannot be greater than domain quota" msgstr "Nemůže být vyšší než kvóta domény" -#: admin/api/v1/serializers.py:123 admin/api/v1/serializers.py:318 -#: admin/api/v2/serializers.py:479 admin/models/alias.py:34 +#: admin/api/v1/serializers.py:161 admin/api/v1/serializers.py:384 +#: admin/api/v2/serializers.py:482 admin/models/alias.py:38 msgid "Permission denied." msgstr "Přístup zamítnut." -#: admin/api/v1/serializers.py:174 admin/api/v2/serializers.py:74 -#: admin/api/v2/serializers.py:408 admin/forms/alias.py:108 -#: admin/forms/alias.py:110 core/api/v2/serializers.py:224 +#: admin/api/v1/serializers.py:223 admin/api/v2/serializers.py:77 +#: admin/api/v2/serializers.py:414 admin/forms/alias.py:113 +#: admin/forms/alias.py:115 core/api/v2/serializers.py:224 #: core/api/v2/serializers.py:226 core/api/v2/serializers.py:235 -#: core/app_settings.py:608 core/app_settings.py:610 core/app_settings.py:621 +#: core/app_settings.py:582 core/app_settings.py:584 core/app_settings.py:595 #: transport/backends.py:40 msgid "This field is required" msgstr "Toto pole je vyžadováno" -#: admin/api/v1/serializers.py:186 -msgid "List of administered domains (resellers and domain administrators only)." +#: admin/api/v1/serializers.py:235 +msgid "" +"List of administered domains (resellers and domain administrators only)." msgstr "Zobrazit spravované domény (jenom distributori a správci domén)" -#: admin/api/v1/serializers.py:292 admin/api/v2/serializers.py:458 +#: admin/api/v1/serializers.py:357 admin/api/v2/serializers.py:464 msgid "Not allowed for this role." msgstr "Není povoleno pro tuto roli." -#: admin/api/v1/serializers.py:310 +#: admin/api/v1/serializers.py:375 msgid "Must be equal to mailbox full_address" msgstr "Musí být rovno hodnote schránky celá_adresa" -#: admin/api/v1/serializers.py:347 admin/api/v2/serializers.py:503 -#: admin/forms/account.py:178 admin/forms/account.py:180 -#: admin/forms/domain.py:165 admin/forms/domain.py:294 -#: admin/forms/domain.py:297 core/forms.py:94 core/forms.py:97 core/forms.py:99 +#: admin/api/v1/serializers.py:413 admin/api/v2/serializers.py:506 +#: admin/forms/account.py:186 admin/forms/account.py:188 +#: admin/forms/domain.py:174 admin/forms/domain.py:302 +#: admin/forms/domain.py:304 core/forms.py:101 core/forms.py:104 +#: core/forms.py:106 msgid "This field is required." msgstr "Toto pole je vyžadováno." -#: admin/api/v1/serializers.py:359 admin/api/v2/serializers.py:520 +#: admin/api/v1/serializers.py:425 admin/api/v2/serializers.py:523 msgid "Local domain {} does not exist" msgstr "Lokální doména {} neexistuje" -#: admin/api/v1/serializers.py:445 +#: admin/api/v1/serializers.py:513 msgid "A list of recipient" msgstr "Seznam příjemců" -#: admin/api/v1/serializers.py:492 +#: admin/api/v1/serializers.py:529 admin/api/v2/viewsets.py:271 +#, fuzzy +#| msgid "User '%s' already exists" +msgid "This alias already exists" +msgstr "Uživatel '%s' již existuje" + +#: admin/api/v1/serializers.py:565 msgid "You don't have access to this domain." msgstr "K této doméně nemáte přístup." -#: admin/api/v1/serializers.py:500 +#: admin/api/v1/serializers.py:574 msgid "You don't have access to this mailbox." msgstr "K této schránce nemáte přístup." -#: admin/api/v1/viewsets.py:174 +#: admin/api/v1/viewsets.py:183 msgid "Here is your new Modoboa password: {}" msgstr "" -#: admin/api/v2/serializers.py:100 admin/forms/domain.py:314 +#: admin/api/v2/serializers.py:103 admin/forms/domain.py:320 #, python-format msgid "User '%s' already exists" msgstr "Uživatel '%s' již existuje" -#: admin/api/v2/serializers.py:210 admin/api/v2/serializers.py:218 -#: admin/app_settings.py:237 admin/app_settings.py:245 -#: admin/forms/account.py:351 +#: admin/api/v2/serializers.py:219 admin/api/v2/serializers.py:225 +#: admin/app_settings.py:230 admin/app_settings.py:236 +#: admin/forms/account.py:366 msgid "Must be a positive integer" msgstr "Musí se jednat o kladné číslo" -#: admin/api/v2/serializers.py:227 admin/app_settings.py:255 -#: pdfcredentials/api/v2/serializers.py:50 +#: admin/api/v2/serializers.py:232 admin/app_settings.py:244 +#: pdfcredentials/api/v2/serializers.py:59 msgid "Directory not found." msgstr "Složka nenalezena." -#: admin/api/v2/serializers.py:231 +#: admin/api/v2/serializers.py:234 #, fuzzy #| msgid "Directory not found." msgid "Directory non-writable" msgstr "Složka nenalezena." -#: admin/api/v2/serializers.py:236 admin/app_settings.py:261 +#: admin/api/v2/serializers.py:238 admin/app_settings.py:248 msgid "openssl not found, please make sure it is installed." msgstr "openssl nenalezeno, prosím ujistěte se, že je nainstalováno." -#: admin/api/v2/serializers.py:251 admin/app_settings.py:278 +#: admin/api/v2/serializers.py:252 admin/app_settings.py:263 msgid "This field only allows valid IP addresses (or networks)" msgstr "" -#: admin/api/v2/serializers.py:263 +#: admin/api/v2/serializers.py:265 msgid "Please disable imap migration before disabling this option." msgstr "" -#: admin/api/v2/serializers.py:275 admin/app_settings.py:293 +#: admin/api/v2/serializers.py:278 admin/app_settings.py:277 msgid "Define at least one authorized network / address" msgstr "Definujte alespoň jednu autorizovanou síť / adresu" -#: admin/api/v2/serializers.py:508 +#: admin/api/v2/serializers.py:511 #, fuzzy #| msgid "A mailbox is required" msgid "A mailbox is required to create aliases." msgstr "Schránka je vyžadována" -#: admin/api/v2/serializers.py:649 +#: admin/api/v2/serializers.py:674 #, fuzzy #| msgid "Unknown" msgid "Unknown status" msgstr "Neznámý" -#: admin/api/v2/viewsets.py:75 admin/forms/account.py:365 -#: admin/forms/account.py:373 admin/forms/alias.py:91 +#: admin/api/v2/viewsets.py:84 admin/forms/account.py:379 +#: admin/forms/account.py:386 admin/forms/alias.py:97 msgid "You don't have access to this domain" msgstr "Nemáte oprávnění k přístupu k této doméně" -#: admin/api/v2/viewsets.py:78 admin/views/domain.py:247 +#: admin/api/v2/viewsets.py:87 admin/views/domain.py:248 msgid "You can't delete your own domain" msgstr "Nemůžete smazat vlastní doménu" -#: admin/api/v2/viewsets.py:384 +#: admin/api/v2/viewsets.py:392 msgid "No alarm ID provided" msgstr "" -#: admin/api/v2/viewsets.py:389 +#: admin/api/v2/viewsets.py:396 msgid "Received invalid alarm id(s)" msgstr "" -#: admin/app_settings.py:23 admin/app_settings.py:300 admin/handlers.py:266 +#: admin/app_settings.py:23 admin/app_settings.py:289 admin/handlers.py:289 #: admin/templates/admin/_global_statistics_widget.html:11 -#: admin/templates/admin/domains.html:5 limits/app_settings.py:37 -#: limits/app_settings.py:170 limits/constants.py:9 +#: admin/templates/admin/domains.html:5 limits/app_settings.py:36 +#: limits/app_settings.py:172 limits/constants.py:13 msgid "Domains" msgstr "Domény" -#: admin/app_settings.py:26 admin/app_settings.py:303 +#: admin/app_settings.py:26 admin/app_settings.py:295 msgid "Enable MX checks" msgstr "Povolit MX kontroly" -#: admin/app_settings.py:29 admin/app_settings.py:305 +#: admin/app_settings.py:28 admin/app_settings.py:297 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 admin/app_settings.py:309 +#: admin/app_settings.py:32 admin/app_settings.py:304 msgid "Valid MXs" msgstr "Platné MX záznamy" -#: admin/app_settings.py:37 admin/app_settings.py:312 -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 "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:35 admin/app_settings.py:307 +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 "" +"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 admin/app_settings.py:318 +#: admin/app_settings.py:43 admin/app_settings.py:317 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 admin/app_settings.py:321 -msgid "Prevent the creation of a new domain if its MX record does not use one of the defined addresses." -msgstr "Zamezit vytvoření nové domény, pokud její MX záznamy neodpovídají jedné ze zadaných adres." +#: admin/app_settings.py:46 admin/app_settings.py:321 +msgid "" +"Prevent the creation of a new domain if its MX record does not use one of " +"the defined addresses." +msgstr "" +"Zamezit vytvoření nové domény, pokud její MX záznamy neodpovídají jedné ze " +"zadaných adres." -#: admin/app_settings.py:54 admin/app_settings.py:326 +#: admin/app_settings.py:52 admin/app_settings.py:329 +#, fuzzy +#| msgid "Enable DNS checks" +msgid "Enable IPV6 checks" +msgstr "Zapnout kontrolu DNS" + +#: admin/app_settings.py:54 admin/app_settings.py:332 +msgid "Check if MX setup for ipv6 is valid" +msgstr "" + +#: admin/app_settings.py:58 admin/app_settings.py:339 #, fuzzy #| msgid "Enable DNS checks" msgid "Enable SPF checks" msgstr "Zapnout kontrolu DNS" -#: admin/app_settings.py:57 admin/app_settings.py:328 +#: admin/app_settings.py:60 admin/app_settings.py:341 #, fuzzy #| msgid "Check that every domain has a valid MX record" msgid "Check if every domain has a valid SPF record" msgstr "Ověřit, zda má každá doména platný MX záznam" -#: admin/app_settings.py:62 admin/app_settings.py:332 +#: admin/app_settings.py:64 admin/app_settings.py:348 #, fuzzy #| msgid "Enable MX checks" msgid "Enable DKIM checks" msgstr "Povolit MX kontroly" -#: admin/app_settings.py:65 admin/app_settings.py:334 +#: admin/app_settings.py:67 admin/app_settings.py:350 #, fuzzy #| msgid "Check that every domain has a valid MX record" msgid "Check if every domain with DKIM signin enabled has a valid DNS record" msgstr "Ověřit, zda má každá doména platný MX záznam" -#: admin/app_settings.py:71 admin/app_settings.py:339 +#: admin/app_settings.py:72 admin/app_settings.py:358 #, fuzzy #| msgid "Enable MX checks" msgid "Enable DMARC checks" msgstr "Povolit MX kontroly" -#: admin/app_settings.py:74 admin/app_settings.py:341 +#: admin/app_settings.py:74 admin/app_settings.py:360 #, fuzzy #| msgid "Check that every domain has a valid MX record" msgid "Check if every domain has a valid DMARC record" msgstr "Ověřit, zda má každá doména platný MX záznam" -#: admin/app_settings.py:79 admin/app_settings.py:345 +#: admin/app_settings.py:78 admin/app_settings.py:367 #, fuzzy #| msgid "Enable MX checks" msgid "Enable autoconfig checks" msgstr "Povolit MX kontroly" -#: admin/app_settings.py:82 admin/app_settings.py:347 +#: admin/app_settings.py:81 admin/app_settings.py:369 #, fuzzy #| msgid "Check that every domain has a valid MX record" msgid "Check if every domain has a valid records for autoconfiguration" msgstr "Ověřit, zda má každá doména platný MX záznam" -#: admin/app_settings.py:87 admin/app_settings.py:352 +#: admin/app_settings.py:86 admin/app_settings.py:377 msgid "Enable DNSBL checks" msgstr "Povolit DNSBL kontroly" -#: admin/app_settings.py:90 admin/app_settings.py:354 +#: admin/app_settings.py:88 admin/app_settings.py:379 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:95 admin/app_settings.py:358 +#: admin/app_settings.py:92 admin/app_settings.py:386 msgid "Custom DNS server" msgstr "Vlastní DNS server" -#: admin/app_settings.py:99 admin/app_settings.py:360 +#: admin/app_settings.py:96 admin/app_settings.py:388 msgid "Use a custom DNS server instead of local server configuration" msgstr "Místo konfigurace lokálního serveru použijte vlastní server DNS" -#: admin/app_settings.py:104 admin/app_settings.py:365 +#: admin/app_settings.py:101 admin/app_settings.py:396 msgid "DKIM keys storage directory" msgstr "Složka pro uložení DKIM klíčů" -#: admin/app_settings.py:107 admin/app_settings.py:367 -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 "Absolutní cesta ke složce, kde budou uloženy privátní DKIM klíče. Ujistěte 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:104 admin/app_settings.py:398 +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 "" +"Absolutní cesta ke složce, kde budou uloženy privátní DKIM klíče. Ujistěte " +"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:115 admin/app_settings.py:373 +#: admin/app_settings.py:112 admin/app_settings.py:407 msgid "Default DKIM key length" msgstr "Výchozí délka DKIM klíče" -#: admin/app_settings.py:119 admin/app_settings.py:375 +#: admin/app_settings.py:115 admin/app_settings.py:409 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:124 admin/app_settings.py:379 +#: admin/app_settings.py:119 admin/app_settings.py:416 msgid "Default domain quota" msgstr "Výchozí kvóta domény" -#: admin/app_settings.py:127 admin/app_settings.py:381 -msgid "Default quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -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:122 admin/app_settings.py:418 +msgid "" +"Default quota (in MB) applied to freshly created domains with no value " +"specified. A value of 0 means no quota." +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:133 admin/app_settings.py:386 +#: admin/app_settings.py:128 admin/app_settings.py:426 #, fuzzy #| msgid "Default domain quota" msgid "Default domain sending limit" msgstr "Výchozí kvóta domény" -#: admin/app_settings.py:136 admin/app_settings.py:388 -msgid "Number of messages freshly created domains will be allowed to send per day. Leave empty for no limit." +#: admin/app_settings.py:131 admin/app_settings.py:428 +msgid "" +"Number of messages freshly created domains will be allowed to send per day. " +"Leave empty for no limit." msgstr "" -#: admin/app_settings.py:141 admin/app_settings.py:395 -#: admin/templates/admin/domain_detail.html:41 limits/app_settings.py:58 -#: limits/app_settings.py:119 limits/app_settings.py:187 -#: limits/app_settings.py:238 limits/constants.py:17 limits/constants.py:45 +#: admin/app_settings.py:136 admin/app_settings.py:440 +#: admin/templates/admin/domain_detail.html:41 limits/app_settings.py:55 +#: limits/app_settings.py:111 limits/app_settings.py:195 +#: limits/app_settings.py:269 limits/constants.py:31 limits/constants.py:84 msgid "Mailboxes" msgstr "Schránky" -#: admin/app_settings.py:144 admin/app_settings.py:398 +#: admin/app_settings.py:139 admin/app_settings.py:446 msgid "Handle mailboxes on filesystem" msgstr "Spravovat schránky v souborovém systému" -#: admin/app_settings.py:147 admin/app_settings.py:400 -msgid "Rename or remove mailboxes on the filesystem when they get renamed or removed within Modoboa" -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:142 admin/app_settings.py:448 +msgid "" +"Rename or remove mailboxes on the filesystem when they get renamed or " +"removed within Modoboa" +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:153 admin/app_settings.py:405 admin/forms/domain.py:49 -#: admin/models/domain.py:32 admin/templates/admin/domain_detail.html:64 +#: admin/app_settings.py:148 admin/app_settings.py:456 +#: admin/forms/domain.py:54 admin/models/domain.py:36 +#: admin/templates/admin/domain_detail.html:64 msgid "Default mailbox quota" msgstr "Výchozí kvóta schránky" -#: admin/app_settings.py:156 +#: admin/app_settings.py:151 #, fuzzy -#| msgid "Default mailbox quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgid "Default mailbox quota (in MB) applied to freshly created mailboxes with no value specified. A value of 0 means no quota." -msgstr "Výchozí kvóta mailové schránky (v MB) aplikovaná nově vytvořeným doménám, které nemají specifikovanou vlastní hodnotu. Hodnota 0 znamená neomezenou kvótu." +#| msgid "" +#| "Default mailbox quota (in MB) applied to freshly created domains with no " +#| "value specified. A value of 0 means no quota." +msgid "" +"Default mailbox quota (in MB) applied to freshly created mailboxes with no " +"value specified. A value of 0 means no quota." +msgstr "" +"Výchozí kvóta mailové schránky (v MB) aplikovaná nově vytvořeným doménám, " +"které nemají specifikovanou vlastní hodnotu. Hodnota 0 znamená neomezenou " +"kvótu." -#: admin/app_settings.py:162 admin/app_settings.py:413 +#: admin/app_settings.py:157 admin/app_settings.py:467 #, fuzzy #| msgid "Default mailbox quota" msgid "Default mailbox sending limit" msgstr "Výchozí kvóta schránky" -#: admin/app_settings.py:165 admin/app_settings.py:415 -msgid "Number of messages freshly created mailboxes will be allowed to send per day. Leave empty for no limit." +#: admin/app_settings.py:160 admin/app_settings.py:469 +msgid "" +"Number of messages freshly created mailboxes will be allowed to send per " +"day. Leave empty for no limit." msgstr "" -#: admin/app_settings.py:171 admin/app_settings.py:420 +#: admin/app_settings.py:166 admin/app_settings.py:477 msgid "Automatic account removal" msgstr "Automatické odstranění účtu" -#: admin/app_settings.py:174 admin/app_settings.py:422 +#: admin/app_settings.py:169 admin/app_settings.py:479 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:178 admin/app_settings.py:426 +#: admin/app_settings.py:174 admin/app_settings.py:488 msgid "Automatic domain/mailbox creation" msgstr "Automatické vytvoření domény/schránky" -#: admin/app_settings.py:181 admin/app_settings.py:428 -msgid "Create a domain and a mailbox when an account is automatically created." +#: admin/app_settings.py:177 admin/app_settings.py:491 +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:187 admin/app_settings.py:434 +#: admin/app_settings.py:182 admin/app_settings.py:500 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:190 admin/app_settings.py:436 +#: admin/app_settings.py:185 admin/app_settings.py:503 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." +msgstr "" +"Vytvořit alias použitím původní adresy, pokud je mailová schránka " +"přejmenována." -#: admin/app_settings.py:407 +#: admin/app_settings.py:458 #, fuzzy -#| msgid "Default mailbox quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgid "Default mailbox quota (in MB) applied to freshly created domains with no value specified. A value of 0 means no quota." -msgstr "Výchozí kvóta mailové schránky (v MB) aplikovaná nově vytvořeným doménám, které nemají specifikovanou vlastní hodnotu. Hodnota 0 znamená neomezenou kvótu." +#| msgid "" +#| "Default mailbox quota (in MB) applied to freshly created domains with no " +#| "value specified. A value of 0 means no quota." +msgid "" +"Default mailbox quota (in MB) applied to freshly created domains with no " +"value specified. A value of 0 means no quota." +msgstr "" +"Výchozí kvóta mailové schránky (v MB) aplikovaná nově vytvořeným doménám, " +"které nemají specifikovanou vlastní hodnotu. Hodnota 0 znamená neomezenou " +"kvótu." -#: admin/app_settings.py:451 admin/app_settings.py:453 +#: admin/app_settings.py:522 admin/app_settings.py:527 msgid "Administration" msgstr "Správa" -#: admin/constants.py:28 admin/forms/alias.py:43 +#: admin/constants.py:23 admin/forms/alias.py:43 #: admin/templates/admin/_per_domain_statistics_widget.html:7 #: admin/templates/admin/domains_quota_headers.html:2 msgid "Domain" msgstr "Doména" -#: admin/constants.py:29 +#: admin/constants.py:24 msgid "Relay domain" msgstr "Relay doména" -#: admin/constants.py:44 +#: admin/constants.py:39 msgid "Opened" msgstr "" -#: admin/constants.py:45 +#: admin/constants.py:40 #, fuzzy #| msgid "Close" msgid "Closed" msgstr "Zavřít" -#: admin/forms/account.py:32 admin/templates/admin/domain_detail.html:159 -#: core/forms.py:23 pdfcredentials/documents.py:80 +#: admin/forms/account.py:29 admin/templates/admin/domain_detail.html:159 +#: core/forms.py:21 pdfcredentials/documents.py:98 msgid "Username" msgstr "Uživatelské jméno" -#: admin/forms/account.py:34 -msgid "The user's name. Must be a valid e-mail address for simple users or administrators with a mailbox." -msgstr "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:31 +msgid "" +"The user's name. Must be a valid e-mail address for simple users or " +"administrators with a mailbox." +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:39 admin/templates/admin/account_detail.html:29 +#: admin/forms/account.py:36 admin/templates/admin/account_detail.html:29 #: core/templates/core/information.html:37 msgid "Role" msgstr "Role" -#: admin/forms/account.py:40 +#: admin/forms/account.py:37 msgid "Choose" msgstr "Vybrat" -#: admin/forms/account.py:41 +#: admin/forms/account.py:38 msgid "What level of permission this user will have" msgstr "Jaká úroveň oprávnění bude tomuto uživateli nastavena" -#: admin/forms/account.py:44 admin/forms/domain.py:248 +#: admin/forms/account.py:41 admin/forms/domain.py:262 msgid "Random password" msgstr "Náhodné heslo" -#: admin/forms/account.py:46 -msgid "Generate a random password. If you're updating this account and check this box, a new password will be generated." -msgstr "Vygenerovat náhodné heslo. Pokud upravujete tento účet a zaškrtnete tuto položku, bude vygenerováno nové heslo." +#: admin/forms/account.py:43 +msgid "" +"Generate a random password. If you're updating this account and check this " +"box, a new password will be generated." +msgstr "" +"Vygenerovat náhodné heslo. Pokud upravujete tento účet a zaškrtnete tuto " +"položku, bude vygenerováno nové heslo." -#: admin/forms/account.py:52 core/forms.py:27 pdfcredentials/documents.py:81 +#: admin/forms/account.py:49 core/forms.py:25 pdfcredentials/documents.py:99 msgid "Password" msgstr "Heslo" -#: admin/forms/account.py:57 core/forms.py:48 +#: admin/forms/account.py:55 core/forms.py:45 msgid "Confirmation" msgstr "Potvrzení" -#: admin/forms/account.py:60 +#: admin/forms/account.py:57 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:72 +#: admin/forms/account.py:71 msgid "Enabled" msgstr "Povoleno" -#: admin/forms/account.py:167 +#: admin/forms/account.py:175 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:186 +#: admin/forms/account.py:193 msgid "The two password fields didn't match." msgstr "Obě pole s heslem se neshodují." -#: admin/forms/account.py:199 +#: admin/forms/account.py:206 msgid "You can't disable your own account" msgstr "Nemůžete zakázat váš vlastní účet" -#: admin/forms/account.py:226 +#: admin/forms/account.py:234 msgid "E-mail" msgstr "E-mail" -#: admin/forms/account.py:228 +#: admin/forms/account.py:236 msgid "Create an alias using the old address" msgstr "Vytvořit alias použitím původní adresy" -#: admin/forms/account.py:233 admin/forms/domain.py:41 +#: admin/forms/account.py:241 admin/forms/domain.py:46 #: admin/templates/admin/account_detail.html:45 -#: admin/templates/admin/domain_detail.html:49 limits/app_settings.py:78 -#: limits/app_settings.py:204 limits/constants.py:30 +#: admin/templates/admin/domain_detail.html:49 limits/app_settings.py:73 +#: limits/app_settings.py:218 limits/constants.py:59 msgid "Quota" msgstr "Kvóta" -#: admin/forms/account.py:236 -msgid "Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a custom value or use domain's default one. Leave empty to define an unlimited value (not allowed for domain administrators)." -msgstr "Kvóta pro tuto poštovní schránku může být vyjádřena v KB, MB (výchozí) nebo GB. Definujte vlastní hodnotu nebo použijte výchozí pro doménu. Nechte prázdné pro definování neomezené hodnoty (není povoleno pro správce domény)." +#: admin/forms/account.py:244 +msgid "" +"Quota for this mailbox, can be expressed in KB, MB (default) or GB. Define a" +" custom value or use domain's default one. Leave empty to define an " +"unlimited value (not allowed for domain administrators)." +msgstr "" +"Kvóta pro tuto poštovní schránku může být vyjádřena v KB, MB (výchozí) nebo " +"GB. Definujte vlastní hodnotu nebo použijte výchozí pro doménu. Nechte " +"prázdné pro definování neomezené hodnoty (není povoleno pro správce domény)." -#: admin/forms/account.py:246 admin/models/domain.py:36 -#: admin/models/mailbox.py:99 admin/templates/admin/account_detail.html:50 +#: admin/forms/account.py:254 admin/models/domain.py:39 +#: admin/models/mailbox.py:92 admin/templates/admin/account_detail.html:50 #: admin/templates/admin/domain_detail.html:69 msgid "Message sending limit" msgstr "" -#: admin/forms/account.py:250 admin/models/mailbox.py:101 +#: admin/forms/account.py:257 admin/models/mailbox.py:95 msgid "Number of messages this mailbox can send per day" msgstr "" -#: admin/forms/account.py:253 admin/forms/domain.py:31 +#: admin/forms/account.py:262 +msgid "Block IMAP connection and incoming mails for this mailbox" +msgstr "" + +#: admin/forms/account.py:266 admin/forms/domain.py:35 #: admin/templates/admin/domain_headers.html:4 msgid "Alias(es)" msgstr "Alias(y)" -#: admin/forms/account.py:256 -msgid "Alias(es) of this mailbox. Indicate only one address per input, press ENTER to add a new input. To create a catchall alias, just enter the domain name (@domain.tld)." -msgstr "Alias(y) této schránky. V rámci vstupu vložte pouze jeden alias, stiskněte ENTER pro vložení dalšího aliasu. Pro vytvoření doménového koše vložte '*' (např. *@domena.cz)." +#: admin/forms/account.py:269 +msgid "" +"Alias(es) of this mailbox. Indicate only one address per input, press ENTER " +"to add a new input. To create a catchall alias, just enter the domain name " +"(@domain.tld)." +msgstr "" +"Alias(y) této schránky. V rámci vstupu vložte pouze jeden alias, stiskněte " +"ENTER pro vložení dalšího aliasu. Pro vytvoření doménového koše vložte '*' " +"(např. *@domena.cz)." -#: admin/forms/account.py:262 +#: admin/forms/account.py:275 msgid "Sender addresses" msgstr "Adresa odesílatele" -#: admin/forms/account.py:265 -msgid "Additional sender address(es) for this account. The user will be allowed to send emails using this address, even if it does not exist locally. Indicate one address per input. Press ENTER to add a new input." -msgstr "Další adresa(y) odesílatele pro tento účet. Uživatel bude moci posílat e-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:278 +msgid "" +"Additional sender address(es) for this account. The user will be allowed to " +"send emails using this address, even if it does not exist locally. Indicate " +"one address per input. Press ENTER to add a new input." +msgstr "" +"Další adresa(y) odesílatele pro tento účet. Uživatel bude moci posílat " +"e-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:325 admin/forms/alias.py:88 -#: admin/models/mailbox.py:313 +#: admin/forms/account.py:339 admin/forms/alias.py:95 +#: admin/models/mailbox.py:308 msgid "Domain does not exist" msgstr "Doména neexistuje" -#: admin/forms/account.py:361 +#: admin/forms/account.py:376 msgid "Local domain does not exist" msgstr "Lokální doména neexistuje" -#: admin/forms/account.py:476 +#: admin/forms/account.py:503 msgid "Domain(s)" msgstr "Doména(y)" -#: admin/forms/account.py:478 +#: admin/forms/account.py:505 msgid "Domain(s) that user administrates" msgstr "Doména(y) pod správou uživatele" -#: admin/forms/account.py:525 admin/forms/account.py:615 -#: admin/forms/domain.py:365 admin/forms/domain.py:436 core/apps.py:19 -#: core/apps.py:21 imap_migration/app_settings.py:14 -#: imap_migration/app_settings.py:64 maillog/forms.py:20 -#: pdfcredentials/app_settings.py:20 pdfcredentials/app_settings.py:123 +#: admin/forms/account.py:552 admin/forms/account.py:652 +#: admin/forms/domain.py:373 admin/forms/domain.py:445 core/apps.py:19 +#: core/apps.py:24 imap_migration/app_settings.py:17 +#: imap_migration/app_settings.py:99 maillog/apps.py:14 maillog/forms.py:20 +#: pdfcredentials/app_settings.py:23 pdfcredentials/app_settings.py:195 +#: postfix_autoreply/forms.py:118 msgid "General" msgstr "Obecné" -#: admin/forms/account.py:529 core/templates/core/user_profile.html:3 -#: core/templatetags/core_tags.py:116 +#: admin/forms/account.py:560 core/templates/core/user_profile.html:3 +#: core/templatetags/core_tags.py:133 msgid "Profile" msgstr "Profil" -#: admin/forms/account.py:533 admin/forms/account.py:621 +#: admin/forms/account.py:566 admin/forms/account.py:659 msgid "Mail" msgstr "Mail" -#: admin/forms/account.py:536 +#: admin/forms/account.py:573 msgid "Permissions" msgstr "Oprávnění" -#: admin/forms/account.py:604 +#: admin/forms/account.py:642 msgid "Account updated" msgstr "Účet aktualizován" -#: admin/forms/account.py:629 +#: admin/forms/account.py:668 msgid "New account" msgstr "Nový účet" -#: admin/forms/account.py:639 +#: admin/forms/account.py:679 msgid "Account created" msgstr "Účet vytvořen" @@ -539,69 +636,84 @@ msgid "Email address" msgstr "Emailová adresa" #: admin/forms/alias.py:25 -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)." +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:31 admin/templates/admin/alias_detail.html:37 msgid "Recipients" msgstr "Příjemci" -#: admin/forms/alias.py:33 -msgid "Addresses this alias will point to. Indicate only one address per input, press ENTER to add a new input." -msgstr "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:34 +msgid "" +"Addresses this alias will point to. Indicate only one address per input, " +"press ENTER to add a new input." +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:114 +#: admin/forms/alias.py:119 msgid "No recipient defined" msgstr "Nebyl určen příjemce" -#: admin/forms/domain.py:28 +#: admin/forms/domain.py:32 #: admin/templates/admin/_global_statistics_widget.html:7 msgid "Type" msgstr "Typ" -#: admin/forms/domain.py:34 -msgid "Alias(es) of this domain. Indicate only one name per input, press ENTER to add a new input." -msgstr "Alias(y) 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:38 +msgid "" +"Alias(es) of this domain. Indicate only one name per input, press ENTER to " +"add a new input." +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:39 +#: admin/forms/domain.py:43 msgid "Key selector" msgstr "Identifikátor klíče" -#: admin/forms/domain.py:52 -msgid "Default quota applied to mailboxes. Can be expressed in KB, MB (default) or GB. A value of 0 means no quota." -msgstr "Výchozí kvóta pro poštovní schránky. Lze vyjádřit v KB, MB (výchozí) nebo GB. Hodnota 0 znamená žádnou kvótu." +#: admin/forms/domain.py:57 +msgid "" +"Default quota applied to mailboxes. Can be expressed in KB, MB (default) or " +"GB. A value of 0 means no quota." +msgstr "" +"Výchozí kvóta pro poštovní schránky. Lze vyjádřit v KB, MB (výchozí) nebo " +"GB. Hodnota 0 znamená žádnou kvótu." -#: admin/forms/domain.py:97 admin/handlers.py:166 +#: admin/forms/domain.py:106 admin/handlers.py:185 msgid "domain alias" msgstr "doménový alias" -#: admin/forms/domain.py:100 admin/forms/domain.py:176 -#: admin/forms/domain.py:184 +#: admin/forms/domain.py:109 admin/forms/domain.py:185 +#: admin/forms/domain.py:192 #, python-format msgid "A %s with this name already exists" msgstr "%s s tímto názvem již existuje" -#: admin/forms/domain.py:120 +#: admin/forms/domain.py:130 msgid "DKIM keys storage directory not configured" msgstr "Není nastavena složka pro ukládání DKIM klíčů" -#: admin/forms/domain.py:155 +#: admin/forms/domain.py:166 msgid "You can't define an unlimited quota." msgstr "Neomezená kvóta nelze definovat." -#: admin/forms/domain.py:176 admin/forms/domain.py:181 +#: admin/forms/domain.py:185 admin/forms/domain.py:189 policyd/core.py:107 msgid "domain" msgstr "doména" -#: admin/forms/domain.py:230 +#: admin/forms/domain.py:246 msgid "Create a domain administrator" msgstr "Vytvořit správce domény" -#: admin/forms/domain.py:233 +#: admin/forms/domain.py:248 msgid "Automatically create an administrator for this domain" msgstr "Automaticky vytvořit správce této domény" -#: admin/forms/domain.py:238 admin/templates/admin/domain_detail.html:159 +#: admin/forms/domain.py:252 admin/templates/admin/domain_detail.html:159 #: admin/templates/admin/domain_headers.html:3 #: admin/templates/admin/identity_headers.html:2 #: admin/templates/admin/mx_domain_detail.html:9 @@ -610,51 +722,54 @@ msgstr "Automaticky vytvořit správce této domény" msgid "Name" msgstr "Jméno" -#: admin/forms/domain.py:241 -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:255 +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:251 +#: admin/forms/domain.py:264 msgid "Generate a random password for the administrator." msgstr "Generovat náhodné heslo pro administrátora." -#: admin/forms/domain.py:257 +#: admin/forms/domain.py:269 msgid "With a mailbox" msgstr "S mailovou schránkou" -#: admin/forms/domain.py:260 +#: admin/forms/domain.py:271 msgid "Create a mailbox for the administrator." msgstr "Vytvořit mailovou schránku pro administrátora." -#: admin/forms/domain.py:266 +#: admin/forms/domain.py:276 msgid "Create aliases" msgstr "Vytvořit aliasy" -#: admin/forms/domain.py:269 +#: admin/forms/domain.py:278 msgid "Automatically create standard aliases for this domain" msgstr "Automaticky vytvořit běžné aliasy pro tuto doménu" -#: admin/forms/domain.py:285 +#: admin/forms/domain.py:294 msgid "Invalid format" msgstr "Neplatný formát" -#: admin/forms/domain.py:426 +#: admin/forms/domain.py:433 msgid "Domain modified" msgstr "Doména upravena" -#: admin/forms/domain.py:447 +#: admin/forms/domain.py:458 msgid "Options" msgstr "Možnosti" -#: admin/forms/domain.py:455 +#: admin/forms/domain.py:467 msgid "New domain" msgstr "Nová doména" -#: admin/forms/domain.py:468 +#: admin/forms/domain.py:481 msgid "Domain created" msgstr "Doména vytvořena" -#: admin/forms/export.py:9 admin/forms/import_.py:13 +#: admin/forms/export.py:9 admin/forms/import_.py:12 msgid "Separator" msgstr "Oddělovač" @@ -662,23 +777,23 @@ msgstr "Oddělovač" msgid "Recipient(s)" msgstr "Příjemce(i)" -#: admin/forms/forward.py:16 +#: admin/forms/forward.py:15 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:19 +#: admin/forms/forward.py:18 msgid "Keep local copies" msgstr "Ponechat místní kopie" -#: admin/forms/forward.py:22 +#: admin/forms/forward.py:21 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:11 +#: admin/forms/import_.py:10 msgid "Select a file" msgstr "Vybrat soubor" -#: admin/forms/import_.py:19 +#: admin/forms/import_.py:18 msgid "Continue on error" msgstr "Při výskytu chyby pokračovat" @@ -686,7 +801,7 @@ msgstr "Při výskytu chyby pokračovat" msgid "Don't treat duplicated objects as error" msgstr "Nepovažovat duplikáty objektů za chybu" -#: admin/forms/import_.py:38 +#: admin/forms/import_.py:37 msgid "Crypt passwords" msgstr "Zašifrovat hesla" @@ -694,95 +809,95 @@ msgstr "Zašifrovat hesla" 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:215 +#: admin/handlers.py:233 #, python-format msgid "Account import failed (%s): domain does not exist" msgstr "Import účtu nebyl úspěšný (%s): doména neexistuje" -#: admin/handlers.py:228 admin/models/mailbox.py:342 +#: admin/handlers.py:248 admin/models/mailbox.py:340 msgid "Mailbox {} already exists" msgstr "Schránka {} již existuje" -#: admin/handlers.py:236 +#: admin/handlers.py:257 #, python-format msgid "Account import failed (%s): wrong quota value" msgstr "Import účtu selhal (%s): chybná hodnota kvóty" -#: admin/handlers.py:276 +#: admin/handlers.py:298 #: admin/templates/admin/_global_statistics_widget.html:17 #: admin/templates/admin/_per_domain_statistics_widget.html:8 #: admin/templates/admin/identities.html:5 msgid "Identities" msgstr "Identity" -#: admin/handlers.py:292 admin/templates/admin/forward.html:2 +#: admin/handlers.py:316 admin/templates/admin/forward.html:2 msgid "Forward" msgstr "Přeposlat" -#: admin/lib.py:48 +#: admin/lib.py:47 msgid "A mailbox is required" msgstr "Schránka je vyžadována" -#: admin/lib.py:138 +#: admin/lib.py:141 msgid "You are not allowed to import domains" msgstr "Nemáte oprávnění pro import domén" -#: admin/lib.py:149 +#: admin/lib.py:150 msgid "You are not allowed to import domain aliases." msgstr "Nemáte oprávnění pri import doménových aliasů" -#: admin/lib.py:199 admin/tests/test_mx.py:152 admin/tests/test_mx.py:161 -#: admin/tests/test_mx.py:164 +#: admin/lib.py:201 admin/tests/test_mx.py:154 admin/tests/test_mx.py:167 +#: admin/tests/test_mx.py:172 #, fuzzy, python-format #| msgid "No DNS records found for %s" msgid "No DNS record found for %s" msgstr "Nenalezeny žádné DNS záznamy pro %s" -#: admin/lib.py:202 +#: admin/lib.py:204 #, fuzzy, python-format #| msgid "No MX record for %s" msgid "No %(type)s record for %(name)s" msgstr "Žádný MX záznam pro %s" -#: admin/lib.py:206 admin/tests/test_mx.py:156 +#: admin/lib.py:208 admin/tests/test_mx.py:157 msgid "No working name servers found" msgstr "Nenalezeny žádné funkční DNS servery" -#: admin/lib.py:209 admin/tests/test_mx.py:158 +#: admin/lib.py:211 admin/tests/test_mx.py:161 #, 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:212 +#: admin/lib.py:215 #, python-format msgid "DNS name is too long: %s" msgstr "" -#: admin/lib.py:239 +#: admin/lib.py:246 #, python-brace-format msgid "Invalid IP address format for {domain}; {addr}" msgstr "Neplatný formát IP adresy pro {domain}; {addr}" -#: admin/lib.py:309 +#: admin/lib.py:319 #, python-format msgid "Object already exists: %s" msgstr "Objekt již existuje: %s" -#: admin/lib.py:313 +#: admin/lib.py:323 #, python-format msgid "%d objects imported successfully" msgstr "%d objektů úspěšně importováno" -#: admin/management/commands/subcommands/_import.py:93 +#: admin/management/commands/subcommands/_import.py:99 msgid "CSV file is not encoded in UTF-8, attempting to guess encoding" msgstr "Soubor CSV není kódován v UTF-8, pokouším se odhadnout kódování" -#: admin/management/commands/subcommands/_import.py:105 +#: admin/management/commands/subcommands/_import.py:114 #, python-format msgid "Reading CSV file using %(encoding)s encoding" msgstr "Čtu CSV soubor pomocí %(encoding)s kódování" -#: admin/management/commands/subcommands/_import.py:116 +#: admin/management/commands/subcommands/_import.py:125 #, python-format msgid "Unable to decode CSV file using %(encoding)s encoding" msgstr "Soubor CSV nelze dekódovat pomocí %(encoding)s kódování" @@ -791,27 +906,27 @@ msgstr "Soubor CSV nelze dekódovat pomocí %(encoding)s kódování" msgid "DKIM path non-writable" msgstr "" -#: admin/management/commands/subcommands/_mx.py:121 +#: admin/management/commands/subcommands/_mx.py:133 msgid "MX {} listed by DNSBL provider {}" msgstr "" -#: admin/management/commands/subcommands/_mx.py:169 +#: admin/management/commands/subcommands/_mx.py:174 #, fuzzy #| msgid "Domain {} has no MX record" msgid "Domain has no MX record" msgstr "Doména {} nemá MX záznam" -#: admin/management/commands/subcommands/_mx.py:173 +#: admin/management/commands/subcommands/_mx.py:177 msgid "Domain {} has no MX record" msgstr "Doména {} nemá MX záznam" -#: admin/management/commands/subcommands/_mx.py:193 +#: admin/management/commands/subcommands/_mx.py:195 #, fuzzy #| msgid "MX records of {}" msgid "Invalid MX record: {}" msgstr "MX záznamy pro {}" -#: admin/management/commands/subcommands/_mx.py:199 +#: admin/management/commands/subcommands/_mx.py:202 #, python-brace-format msgid "MX record for domain {0} is invalid: {1}" msgstr "MX záznam pro doménu {0} je neplatný: {1}" @@ -820,160 +935,156 @@ msgstr "MX záznam pro doménu {0} je neplatný: {1}" msgid "[modoboa] MX issue(s) for domain {}" msgstr "[modoboa] MX problém(y) pro doménu {}" -#: admin/management/commands/subcommands/_mx.py:271 +#: admin/management/commands/subcommands/_mx.py:269 msgid "[modoboa] DNSBL issue(s) for domain {}" msgstr "[modoboa] DNSBL problém(y) pro doménu {}" -#: admin/models/alias.py:32 +#: admin/models/alias.py:36 msgid "Domain not found." msgstr "Doména nebyla nalezena." -#: admin/models/alias.py:37 -#, fuzzy -#| msgid "Alias with this name already exists" -msgid "An alias with this name already exists." -msgstr "Alias s tímto názvem již existuje" - -#: admin/models/alias.py:71 admin/models/mailbox.py:92 +#: admin/models/alias.py:91 admin/models/mailbox.py:85 msgid "address" msgstr "adresa" -#: admin/models/alias.py:73 +#: admin/models/alias.py:93 msgid "The alias address." msgstr "Adresa aliasu." -#: admin/models/alias.py:78 admin/models/domain.py:43 -#: admin/models/domain_alias.py:41 +#: admin/models/alias.py:97 admin/models/domain.py:45 +#: admin/models/domain_alias.py:45 postfix_autoreply/models.py:23 msgid "enabled" msgstr "povoleno" -#: admin/models/alias.py:79 admin/models/domain_alias.py:42 +#: admin/models/alias.py:98 admin/models/domain_alias.py:46 msgid "Check to activate this alias" msgstr "Zatrhněte pole pro povolení tohoto aliasu" -#: admin/models/alias.py:84 admin/templates/admin/alias_detail.html:32 +#: admin/models/alias.py:102 admin/templates/admin/alias_detail.html:32 #: core/templates/core/information.html:17 msgid "Description" msgstr "Popis" -#: admin/models/alias.py:86 admin/templates/admin/alias_detail.html:29 +#: admin/models/alias.py:103 admin/templates/admin/alias_detail.html:29 msgid "Expire at" msgstr "Vyprší o" -#: admin/models/alias.py:127 +#: admin/models/alias.py:144 msgid "alias" msgstr "alias" -#: admin/models/alias.py:159 +#: admin/models/alias.py:177 msgid "Invalid address" msgstr "Neplatná adresa" -#: admin/models/alias.py:180 +#: admin/models/alias.py:196 msgid "Local recipient {}@{} not found" msgstr "Lokální příjemce {}@{} nebyl nalezen" -#: admin/models/alias.py:215 +#: admin/models/alias.py:245 #, fuzzy #| msgid "Invalid line: %s" msgid "Invalid line: {}" msgstr "Neplatný řádek: %s" -#: admin/models/domain.py:26 admin/models/domain_alias.py:33 +#: admin/models/domain.py:27 admin/models/domain_alias.py:33 msgid "name" msgstr "název" -#: admin/models/domain.py:27 +#: admin/models/domain.py:30 msgid "The domain name" msgstr "Doménové jméno" -#: admin/models/domain.py:39 +#: admin/models/domain.py:42 msgid "Number of messages this domain can send per day" msgstr "" -#: admin/models/domain.py:44 +#: admin/models/domain.py:46 msgid "Check to activate this domain" msgstr "Zatrhněte pole pro povolení této domény" -#: admin/models/domain.py:49 +#: admin/models/domain.py:51 msgid "Enable DNS checks" msgstr "Zapnout kontrolu DNS" -#: admin/models/domain.py:50 +#: admin/models/domain.py:53 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:57 +#: admin/models/domain.py:61 msgid "Enable DKIM signing" msgstr "Povolit DKIM podepisování" -#: admin/models/domain.py:59 -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:63 +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:65 +#: admin/models/domain.py:70 msgid "Key length" msgstr "Délka klíče" -#: admin/models/domain.py:357 admin/models/domain_alias.py:66 -#: core/models.py:320 relaydomains/lib.py:13 +#: admin/models/domain.py:368 admin/models/domain_alias.py:70 +#: core/models.py:329 relaydomains/lib.py:13 msgid "Invalid line" msgstr "Neplatný řádek" -#: admin/models/domain.py:367 +#: admin/models/domain.py:378 #, fuzzy #| msgid "No authorized MX record found for domain {}" msgid "{}: no authorized MX record found for domain" msgstr "Nenalezeny žádný autorizovaný MX záznam pro doménu {}" -#: admin/models/domain.py:374 +#: admin/models/domain.py:383 #, fuzzy #| msgid "Invalid quota value for domain '{}'" msgid "{}: invalid quota value for domain" msgstr "Neplatná hodnota kvóty pro doménu '{}'" -#: admin/models/domain.py:381 +#: admin/models/domain.py:388 #, fuzzy #| msgid "Invalid default mailbox quota value for domain '{}'" msgid "{}: invalid default mailbox quota value for domain" msgstr "Neplatná výchozí hodnota kvóty schránky pro doménu '{}'" -#: admin/models/domain.py:386 +#: admin/models/domain.py:395 #, fuzzy #| msgid "Default mailbox quota cannot be greater than domain quota" 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:34 +#: admin/models/domain_alias.py:36 msgid "The alias name" msgstr "Název aliasu" -#: admin/models/domain_alias.py:36 +#: admin/models/domain_alias.py:40 msgid "target" msgstr "cíl" -#: admin/models/domain_alias.py:37 +#: admin/models/domain_alias.py:41 msgid "The domain this alias points to" msgstr "Doména, na kterou tento alias odkazuje" -#: admin/models/domain_alias.py:75 +#: admin/models/domain_alias.py:79 #, python-format msgid "Unknown domain %s" msgstr "Neznámá doména %s" -#: admin/models/mailbox.py:94 +#: admin/models/mailbox.py:87 msgid "Mailbox address (without the @domain.tld part)" msgstr "Adresa schránky (bez části @doména.tld)" -#: admin/models/mailbox.py:156 +#: admin/models/mailbox.py:153 #, python-format msgid "Failed to retrieve mailbox location (%s)" msgstr "Nebylo možné zjistit umístění schránky (%s)" -#: admin/models/mailbox.py:254 +#: admin/models/mailbox.py:249 msgid "A quota is required" msgstr "Kvóta je vyžadována" -#: admin/models/mailbox.py:261 +#: admin/models/mailbox.py:256 #, fuzzy #| msgid "Domain quota exceeded" msgid "{}: domain quota exceeded" @@ -983,8 +1094,9 @@ msgstr "Kvóta domény byla překročena" #: admin/templates/admin/_domain_dkim_key.html:20 #: core/templates/core/user_security.html:83 #: core/templates/core/user_security.html:99 -#: templates/common/generic_modal.html:6 templates/common/generic_modal.html:13 -#: templates/common/wizard_forms.html:6 templates/common/wizard_forms.html:27 +#: templates/common/generic_modal.html:6 +#: templates/common/generic_modal.html:13 templates/common/wizard_forms.html:6 +#: templates/common/wizard_forms.html:27 msgid "Close" msgstr "Zavřít" @@ -1035,9 +1147,9 @@ msgstr "Počet" #: admin/templates/admin/_global_statistics_widget.html:14 #: admin/templates/admin/domain_detail.html:37 -#: admin/templates/admin/domain_detail.html:87 limits/app_settings.py:47 -#: limits/app_settings.py:108 limits/app_settings.py:178 -#: limits/app_settings.py:229 limits/constants.py:13 limits/constants.py:41 +#: admin/templates/admin/domain_detail.html:87 limits/app_settings.py:45 +#: limits/app_settings.py:101 limits/app_settings.py:183 +#: limits/app_settings.py:257 limits/constants.py:22 limits/constants.py:76 msgid "Domain aliases" msgstr "Doménové aliasy" @@ -1072,7 +1184,7 @@ msgstr "Vytvořeno" msgid "Last login" msgstr "Poslední přihlášení" -#: admin/templates/admin/account_detail.html:38 core/models.py:69 +#: admin/templates/admin/account_detail.html:38 core/models.py:70 msgid "Secondary email" msgstr "Sekundární email" @@ -1081,7 +1193,7 @@ msgstr "Sekundární email" msgid "Not defined" msgstr "Není definováno" -#: admin/templates/admin/account_detail.html:41 core/models.py:67 +#: admin/templates/admin/account_detail.html:41 core/models.py:68 msgid "Phone number" msgstr "Telefonní číslo" @@ -1159,7 +1271,7 @@ msgstr "" #: admin/templates/admin/domain_alarms.html:25 #: admin/templates/admin/domains_log_headers.html:3 #: admin/templates/admin/messages_log_headers.html:3 -#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:106 +#: core/templates/core/logs.html:6 lib/templatetags/lib_tags.py:119 msgid "Date" msgstr "Datum" @@ -1185,9 +1297,9 @@ msgstr "Datum vytvoření" msgid "Last modification date" msgstr "Datum poslední změny" -#: admin/templates/admin/domain_detail.html:45 limits/app_settings.py:68 -#: limits/app_settings.py:129 limits/app_settings.py:196 -#: limits/app_settings.py:246 limits/constants.py:20 limits/constants.py:48 +#: admin/templates/admin/domain_detail.html:45 limits/app_settings.py:64 +#: limits/app_settings.py:120 limits/app_settings.py:207 +#: limits/app_settings.py:280 limits/constants.py:39 limits/constants.py:92 msgid "Mailbox aliases" msgstr "Aliasy schránek" @@ -1246,11 +1358,12 @@ msgid "Warning" msgstr "" #: admin/templates/admin/domain_detail.html:139 -msgid "DKIM keys already exist for this domain. Do you want to overwrite them?" +msgid "" +"DKIM keys already exist for this domain. Do you want to overwrite them?" msgstr "" #: admin/templates/admin/domain_detail.html:142 core/constants.py:53 -#: lib/form_utils.py:397 +#: lib/form_utils.py:400 msgid "No" msgstr "Ne" @@ -1258,7 +1371,7 @@ msgstr "Ne" msgid "Generate new key" msgstr "Vygenerovat nový klíč" -#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:396 +#: admin/templates/admin/domain_detail.html:143 lib/form_utils.py:400 msgid "Yes" msgstr "Ano" @@ -1271,7 +1384,7 @@ msgid "Administrators" msgstr "Správci" #: admin/templates/admin/domain_detail.html:168 -#: admin/templatetags/admin_tags.py:279 +#: admin/templatetags/admin_tags.py:306 msgid "Remove this permission" msgstr "Odstranit toto oprávnění" @@ -1308,13 +1421,13 @@ msgstr "" #: admin/templates/admin/domains_log_headers.html:4 #: admin/templates/admin/messages_log_headers.html:4 -#: lib/templatetags/lib_tags.py:104 +#: lib/templatetags/lib_tags.py:117 postfix_autoreply/forms.py:20 msgid "From" msgstr "Od" #: admin/templates/admin/domains_log_headers.html:5 #: admin/templates/admin/messages_log_headers.html:5 -#: lib/templatetags/lib_tags.py:105 +#: lib/templatetags/lib_tags.py:118 msgid "To" msgstr "Komu" @@ -1345,9 +1458,10 @@ msgstr "zákázáno" 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:88 +#: admin/templates/admin/forward.html:9 admin/views/alias.py:84 #: core/templates/core/api_access.html:35 -#: core/templates/core/user_profile.html:19 lib/form_utils.py:354 +#: core/templates/core/user_profile.html:19 lib/form_utils.py:356 +#: postfix_autoreply/templates/modoboa_postfix_autoreply/autoreply.html:10 msgid "Update" msgstr "Aktualizovat" @@ -1364,11 +1478,31 @@ msgid "Fullname/Recipient" msgstr "Celé jméno/Příjemce" #: admin/templates/admin/import_domains_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:

The first element of each line is mandatory and must be equal to one of the previous values.

You can use a different character as separator.

" -msgstr "Nahrajte CSV soubor, který bude mít jednotlivé řádky v některém z uvedených formátů:

První element každého řádku je povinný a musí být shodný s některou z předchozích hodnot.

Můžete také použít jiný oddělovač hodnot.

" +msgid "" +"Provide a CSV file where lines respect one of the following formats:

The first element of each line is " +"mandatory and must be equal to one of the previous values.

You can " +"use a different character as separator.

" +msgstr "" +"Nahrajte CSV soubor, který bude mít jednotlivé řádky v některém z uvedených " +"formátů:

První element každého " +"řádku je povinný a musí být shodný s některou z předchozích " +"hodnot.

Můžete také použít jiný oddělovač hodnot.

" #: admin/templates/admin/import_identities_form.html:6 -msgid "Provide a CSV file where lines respect one of the following formats:

The first element of each line is mandatory and must be equal to one of the previous values.

You can use a different character as separator.

" +msgid "" +"Provide a CSV file where lines respect one of the following formats:

The first element of each line " +"is mandatory and must be equal to one of the previous values.

You can" +" use a different character as separator.

" msgstr "" "Nahrajte CSV soubor, který bude mít jednotlivé řádky v některém z uvedených formátů:\n" "